Mavlink微型航空器鏈接協(xié)議

01/27 10:10 來源:直觀解
2318
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

MAVLink的全稱是Micro Air Vehicle Link(微型航空器鏈接)。它是一種輕量級通信協(xié)議,主要用于無人機和其他小型飛行器的數(shù)據(jù)交換。這個協(xié)議設計得非常高效,適用于資源受限的系統(tǒng),并且能夠通過串行通信或者無線網(wǎng)絡(如Wi-Fi或無線電)傳輸控制指令和傳感器數(shù)據(jù)。

Mavlink消息(我們稱之為'msg')是由任務規(guī)劃器(MP),也就是地面站控制(GCS),編碼后通過USB串行或遙測(就是遙控器)發(fā)送給飛行器的飛控軟件(APM(或者PX4)的字節(jié)流。編碼只是將數(shù)據(jù)放入數(shù)據(jù)幀中,并通過通道以字節(jié)形式發(fā)送,同時添加一些錯誤校正。

每個message是由一系列消息幀frame組成,幀的數(shù)據(jù)結構就是byte數(shù)組,每個幀的結構如下:

最前面6個字節(jié)(0-5)是消息頭

消息頭后面是可變長度0-255個字節(jié)的傳輸數(shù)據(jù)payload

最后兩個字節(jié)是校驗和。

單個消息不超過263字節(jié)(Mavlink版本1.0)或280字節(jié)(Mavlink版本2.0)。

發(fā)送方始終填寫系統(tǒng)ID和組件ID字段,以便接收方知道數(shù)據(jù)包的來源。

系統(tǒng)ID是每個飛行器或地面站的唯一ID。地面站通常使用較高的系統(tǒng)ID,如“255”,而飛行器默認使用“1”()。地面站或飛行控制器的組件ID通常為“1”。飛行器上的其他支持MAVLink的設備(如伴侶計算機、云臺)應使用與飛行控制器相同的系統(tǒng)ID,但使用不同的組件ID。

消息ID字段表示消息的類型,可以在common.xml和ardupilot.xml中看到。例如,HEARTBEAT消息的ID是“0”。以下舉例三種最常見的消息類型:

1) MAVLINK_MSG_ID_HEARTBEAT: 0

a. 這是最重要的信息。GCS 不斷向 APM/PX4 發(fā)送消息(每 1 秒一次),以確定是否與之連接。這是為了確保在您更新一些參數(shù)時,MP 與 APM 同步。如果錯過一定數(shù)量的心跳,就會觸發(fā)故障安全(機制),然后直升機降落、繼續(xù)執(zhí)行任務或者返航(也稱為 RTL)。故障安全選項可以在 MP 中的配置/設置故障安全選項中啟用/禁用。但一般不會禁用。

2) MAVLINK_MSG_ID_REQUEST_DATA_STREAM: 66

傳感器、遙控通道、GPS位置、狀態(tài)等等數(shù)據(jù)

3)MAVLINK_MSG_ID_COMMAND_LONG: 76

表示消息是對無人機的操作命令,比如懸停、返回、著陸、任務開始、上/下動力(Arm/Disarm)、重啟等等。

不要誤會,Arm/Disarm和武器沒有關系。這個命令用于啟用或禁用飛行器的動力系統(tǒng)。"Arm" 表示啟用動力系統(tǒng),準備起飛;而"Disarm" 表示禁用動力系統(tǒng),防止意外起飛。

最后,說一下常見的自動駕駛儀軟件系統(tǒng)

APM(ArduPilot Mega)和PX4(Proton eXtended 4)都是開源的自動駕駛儀軟件系統(tǒng),用于控制無人機、機器人和其他無人駕駛車輛。它們提供了豐富的功能,包括飛行控制、導航、傳感器融合等,并且可以在多種硬件平臺上運行。

APM(ArduPilot Mega)

● 用途:主要用于固定翼飛機、多旋翼無人機和地面車輛。

●?開發(fā)語言:C/C++。

●?社區(qū)支持:擁有龐大的開發(fā)者和用戶社區(qū),提供豐富的教程和文檔。

●?特點:支持多種傳感器(如IMU、GPS、氣壓計等)。

●?提供多種飛行模式(手動、穩(wěn)定、定高、自駕等)。

●?可以通過地面站軟件(如Mission Planner)進行配置和監(jiān)控。

PX4

●?用途:主要用于多旋翼無人機和固定翼飛機。

●?開發(fā)語言:C/C++。

●?社區(qū)支持:同樣擁有龐大的開發(fā)者和用戶社區(qū),提供詳細的文檔和教程。

●?特點:支持廣泛的硬件平臺(如Pixhawk系列、NuttX RTOS)。

●?強大的傳感器融合算法,提高飛行穩(wěn)定性。

●?提供API接口,便于集成到其他應用中。

二者的主要區(qū)別

●?架構:APM使用的是模塊化的架構,而PX4采用的是更現(xiàn)代的微服務架構。

●?傳感器融合:PX4的傳感器融合算法更為先進,能夠提供更高的精度和穩(wěn)定性。

●?擴展性:PX4在擴展性和可配置性方面更具優(yōu)勢,更適合復雜的應用場景。

●?用戶界面:APM提供了較為友好的地面站軟件(如Mission Planner),而PX4則依賴于QGroundControl等第三方地面站軟件。

相關推薦