本期ROS連載系列無(wú)人機(jī)專(zhuān)輯2將向您詳細(xì)介紹微型空中飛行器鏈路通訊協(xié)議(MAVLink)。
2017年3月,上海硅步發(fā)布了專(zhuān)業(yè)教學(xué)無(wú)人機(jī)Gapter EDU,該無(wú)人機(jī)支持機(jī)器人操作系統(tǒng)(ROS),MAVLink協(xié)議和MAVROS。ROS很多用戶(hù)已經(jīng)非常熟悉,而MAVLink和MAVROS不少人則是第一次聽(tīng)說(shuō),那么什么是MAVLink和MAVROS呢?為了使用戶(hù)能夠深入了解Gapter EDU,上海硅步將從本次專(zhuān)輯開(kāi)始分2期為大家介紹一下MAVLink和MAVROS的概念及其在無(wú)人機(jī)研究和開(kāi)發(fā)中的應(yīng)用。
Gapter EDU支持MAVLink通訊協(xié)議
MAVLink是Micro Air Vehicle Link(微型空中飛行器鏈路通訊協(xié)議)的簡(jiǎn)稱(chēng),是無(wú)人飛行器與地面站(Ground Control Station,GCS)之間通訊,以及無(wú)人飛行器之間通訊最常用的協(xié)議。MAVLink可以高效地在串行通道上將C結(jié)構(gòu)體封裝成包并將其發(fā)送到地面站。作為MCU/IMU通信以及Linux進(jìn)程和地面站連接通信的骨干網(wǎng),它已經(jīng)在PX4、APM、PIXHAWK和Parrot AR.Drone飛控平臺(tái)上進(jìn)行了大量測(cè)試。
MAVLink生成器在2009年由Lorenz Meier首先發(fā)布,遵循LGPL開(kāi)源協(xié)議。MAVLink生成的消息通常與輸入的消息規(guī)范相同。
1.消息幀
MAVLink傳輸?shù)幕締挝皇窍?,每個(gè)消息幀都具有如圖1所示的結(jié)構(gòu):
MAVLink消息幀結(jié)構(gòu)
紅色是起始標(biāo)志位(STX),用于MAVLink消息幀接收端進(jìn)行消息解碼。
第二個(gè)格子代表的是PAYLOAD長(zhǎng)度(LEN),范圍從0到255。在MAVLink消息幀接收端,可以用它和實(shí)際收到的有效載荷的長(zhǎng)度比較,以驗(yàn)證有效載荷的長(zhǎng)度是否正確。
第三個(gè)格子代表的是本次消息幀的序號(hào)(SEQ),每次發(fā)完一個(gè)消息,這個(gè)字節(jié)的內(nèi)容會(huì)加1,加到255后會(huì)從0重新開(kāi)始。這個(gè)序號(hào)用于MAVLink消息幀接收端計(jì)算消息丟失比例用的,相當(dāng)于是信號(hào)強(qiáng)度。
第四個(gè)格子代表了發(fā)送本條消息幀的設(shè)備的系統(tǒng)編號(hào)(SYS),使用PIXHAWK刷PX4固件時(shí)默認(rèn)的系統(tǒng)編號(hào)為1,用于MAVLink消息幀接收端識(shí)別是哪個(gè)設(shè)備發(fā)來(lái)的消息。
第五個(gè)格子代表了發(fā)送本條消息幀的設(shè)備的單元編號(hào)(COMP),使用PIXHAWK刷PX4固件時(shí)默認(rèn)的單元編號(hào)為50,用于MAVLink消息幀接收端識(shí)別是設(shè)備的哪個(gè)單元發(fā)來(lái)的消息(暫時(shí)沒(méi)什么用)。
第六個(gè)格子代表了有效載荷中消息包的編號(hào)(MSG),這個(gè)字節(jié)很重要,MAVLink消息幀接收端要根據(jù)這個(gè)編號(hào)來(lái)確定有效載荷里到底放了什么消息包并根據(jù)編號(hào)選擇對(duì)應(yīng)的方式來(lái)處理有效載荷里的信息包。
最后兩個(gè)字節(jié)是16位校驗(yàn)位,CKB是高八位,CKA是低八位。校驗(yàn)碼由crc16算法得到。
2. MAVLink消息
MAVLink消息有多種類(lèi)型,這里以“#0”消息為例介紹一下MAVLink消息。
#0號(hào)消息叫做心跳包(heartbeat),用來(lái)表明發(fā)出該消息的設(shè)備是活躍的,飛行器和地面站都會(huì)發(fā)出這個(gè)信號(hào)(一般以1Hz發(fā)送),地面站和飛行器會(huì)根據(jù)是否及時(shí)收到了心跳包來(lái)判斷是否和飛行器或地面站失去了聯(lián)系。
心跳包由6個(gè)數(shù)據(jù)組成,第一個(gè)是占一個(gè)字節(jié)的飛行器類(lèi)型數(shù)據(jù)(type),這個(gè)數(shù)據(jù)表示了當(dāng)前發(fā)消息的是什么飛行器,比如四旋翼,固定翼等等。Type數(shù)值是0時(shí)對(duì)應(yīng)于通用飛行器,數(shù)值為1時(shí)對(duì)應(yīng)于固定翼類(lèi)型,數(shù)值為2時(shí)對(duì)應(yīng)于四旋翼。詳細(xì)的對(duì)應(yīng)關(guān)系可在官方的mavlink消息介紹網(wǎng)頁(yè)上找到(http://mavlink.org/messages/common)。
第二個(gè)參數(shù)是自動(dòng)駕駛儀(飛控)類(lèi)型,比如APM,PPZ,Pixhawk等飛控,具體定義查找和之前查找飛行器類(lèi)型時(shí)的方法一樣。同樣的,對(duì)于發(fā)送心跳包的飛行器來(lái)說(shuō)代表了自己的飛控類(lèi)性,對(duì)地面站發(fā)出的心跳包來(lái)說(shuō)意義不大。
第三個(gè)參數(shù)是基本模式(base mode),是指飛控現(xiàn)在處在哪個(gè)基本模式,對(duì)于發(fā)心跳包的地面站來(lái)說(shuō)沒(méi)有意義,對(duì)于發(fā)送心跳包的飛控來(lái)說(shuō)是有意義的。這個(gè)參數(shù)要看各個(gè)飛控自己的定義方式,MAVLink介紹網(wǎng)頁(yè)并不會(huì)給出具體的模式。一般情況下都會(huì)使用用戶(hù)模式,普通用戶(hù)不用關(guān)心這個(gè)參數(shù)。開(kāi)發(fā)者在使用MAVLink修改飛行器模式時(shí)需要注意基本模式的設(shè)置,具體請(qǐng)看PX4代碼(https://pixhawk.org/firmware/source_code)。
第四個(gè)參數(shù)是用戶(hù)模式(custom mode),它分為主模式(main mode)和子模式(sub mode):主模式分為3種,手動(dòng)(manual),輔助(assist),自動(dòng)(auto)。手動(dòng)模式類(lèi)似APM的姿態(tài)模式。在輔助模式中,又分為高度控制模式(altctl)和位置控制模式(posctl)兩個(gè)子模式,高度控制模式就類(lèi)似APM的定高模式,油門(mén)對(duì)應(yīng)到飛行器高度控制上。位置模式控制飛行器相對(duì)地面的速度,油門(mén)和高度控制模式一樣,yaw軸控制和手動(dòng)模式一樣。自動(dòng)模式里又分為3個(gè)子模式,任務(wù)模式(mission),留待模式(loiter),返航模式(return),任務(wù)模式就是執(zhí)行設(shè)定好的航點(diǎn)任務(wù),留待模式就是GPS懸停模式,返航模式就是直線返回home點(diǎn)并自動(dòng)降落。在Pixhawk中,前兩個(gè)字節(jié)(低位)是保留的,沒(méi)有用,第三個(gè)字節(jié)是主模式,第四個(gè)字節(jié)是子模式。
3.MAVLink應(yīng)用
MAVLink自發(fā)布以來(lái),受到了眾多無(wú)人機(jī)愛(ài)好者、研究者和開(kāi)發(fā)者的支持和青睞,應(yīng)用越來(lái)越廣泛。目前使用MAVLink的自動(dòng)駕駛儀包括:
ArduPilotMega(主要協(xié)議)
pxIMU Autopilot(主要協(xié)議)
SLUGS Autopilot(主要協(xié)議)
FLEXIPILOT(可選協(xié)議)
UAVDevBoard/Gentlenav/MatrixPilot(可選協(xié)議)
SenseSoar Autopilot(主要協(xié)議)
SmartAP Autopilot(主要協(xié)議)
AutoQuad 6 AutoPilot(主要協(xié)議)
目前使用MAVLink的軟件包有:
iDroneCtrl (iOS)
QGroundControl (Windows/Mac/Linux)
HK Ground Control Station (Windows)
APM Planner (Windows/Mac)
QGroundControl w/ AutoQuad MainWidget(Windows/Mac/Linux)
Copter GCS (Android)
AutoQuad GCS (Android)
ROS to MAVLink bridge:https://github.com/mavlink/mavlink-ros
MAVCONN 輕型航空中間層http://pixhawk.ethz.ch/software/middleware/start
oooArk / MAVSimhttp://www.youtube.com/watch?v=-wQVrM5SL2o&fe
MAVLink python bindings
MAVProxy(允許連接多個(gè)UDP/串行鏈路,包括 flightgear):
目前應(yīng)用MAVLink的項(xiàng)目有:
ArduPilotMegahttp://code.google.com/p/ardupilot-mega/
MatrixPilot UAV DevBoardhttp://code.google.com/p/gentlenav/
PIXHAWKhttp://pixhawk.ethz.ch/
ETH Flying Machine Arenahttp://www.idsc.ethz.ch/Research_DAndrea/FMA
ETH SenseSoar Solar Airplane Projecthttp://www.sensesoar.ethz.ch/doku.php?id=news
ETH Skye Blimp Projecthttp://www.projectskye.ch/
UC Santa Cruz SLUGShttp://slugsuav.soe.ucsc.edu/index.html
ArduCAM OSDhttp://code.google.com/p/arducam-osd/
Sky-Drones - UAV Flight Control Systemshttp://www.sky-drones.com/
AutoQuad - Autonomous Multirotor Vehiclecontrollerhttp://autoquad.org/
硅步機(jī)器人(Gaitech Robotics) 是專(zhuān)業(yè)提供機(jī)器人整體解決方案的創(chuàng)新型公司,在香港、首爾、臺(tái)北、上海、山東五地?fù)碛蟹种C(jī)構(gòu)。硅步的業(yè)務(wù)和合作伙伴遍布全球多個(gè)國(guó)家,擁有健全的銷(xiāo)售和服務(wù)網(wǎng)絡(luò)。同時(shí)硅步擁有一支國(guó)際化的高水平技術(shù)團(tuán)隊(duì),致力于為客戶(hù)提供業(yè)內(nèi)領(lǐng)先的產(chǎn)品、技術(shù)和專(zhuān)業(yè)的服務(wù)。公司目前主要業(yè)務(wù)是基于ROS(Robot Operating System)系統(tǒng)的智能機(jī)器人的集成、生產(chǎn)、銷(xiāo)售和技術(shù)支持服務(wù)。
硅步機(jī)器人于2016年3月參與投資了加拿大Agile Sensor Technologies Inc.(www.agilesensors.com),致力于機(jī)器人電機(jī)控制系統(tǒng)、無(wú)人機(jī)飛行穩(wěn)定系統(tǒng)、智能相機(jī)和高性能傳感器等技術(shù)和產(chǎn)品的研究和開(kāi)發(fā)。
硅步機(jī)器人聯(lián)合協(xié)作移動(dòng)機(jī)器人技術(shù)先驅(qū)西班牙Robotnik公司和協(xié)作機(jī)械臂國(guó)際知名公司北京遨博智能共同研發(fā)了工業(yè)智能移動(dòng)抓取機(jī)器人JR2,它代表了目前國(guó)際上協(xié)作機(jī)器人的最高技術(shù)水平,有著巨大的市場(chǎng)潛力。
考慮到山東的人文環(huán)境、地理區(qū)位、產(chǎn)業(yè)基礎(chǔ)等多個(gè)有利因素,硅步機(jī)器人于2017年3月斥資3億元在山東鄒城建造了科教無(wú)人機(jī)及工業(yè)機(jī)器人研發(fā)生產(chǎn)基地。這意味著硅步機(jī)器人正式進(jìn)入機(jī)器人生產(chǎn)、加工產(chǎn)業(yè)鏈條,與研發(fā)和銷(xiāo)售互為有效補(bǔ)充,標(biāo)志著硅步機(jī)器人的發(fā)展從此邁上一個(gè)新的臺(tái)階。
同時(shí),硅步所屬企業(yè)積極參與了多項(xiàng)國(guó)家自然科學(xué)基金和973項(xiàng)目,擁有多項(xiàng)產(chǎn)品專(zhuān)利和軟件著作權(quán)。在引進(jìn)消化吸收國(guó)際先進(jìn)技術(shù)的同時(shí),硅步所屬企業(yè)與國(guó)內(nèi)科研單位緊密合作,不斷創(chuàng)新,加速中國(guó)智造的前進(jìn)步伐。
2025-09-05 10:50
2025-09-05 10:47
2025-09-05 10:46
2025-09-05 10:45
2025-09-04 21:57
2025-09-03 14:14
2025-09-03 14:10
2025-09-03 11:09
2025-09-03 11:09
2025-09-02 22:09