• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

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

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

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

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

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

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

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

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

單個消息不超過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”,而飛行器默認(rèn)使用“1”()。地面站或飛行控制器的組件ID通常為“1”。飛行器上的其他支持MAVLink的設(shè)備(如伴侶計(jì)算機(jī)云臺)應(yīng)使用與飛行控制器相同的系統(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ā)故障安全(機(jī)制),然后直升機(jī)降落、繼續(xù)執(zhí)行任務(wù)或者返航(也稱為 RTL)。故障安全選項(xiàng)可以在 MP 中的配置/設(shè)置故障安全選項(xiàng)中啟用/禁用。但一般不會禁用。

2) MAVLINK_MSG_ID_REQUEST_DATA_STREAM: 66

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

3)MAVLINK_MSG_ID_COMMAND_LONG: 76

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

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

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

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

APM(ArduPilot Mega)

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

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

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

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

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

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

PX4

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

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

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

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

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

●?提供API接口,便于集成到其他應(yīng)用中。

二者的主要區(qū)別

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

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

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

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

相關(guān)推薦