MAVLink认识、使用、自定义
对mavlink的认识
MAVLink是针对小型飞行器(MAV)的一个lightweight, header-only message marshalling library(由头文件构成的信息编组库)
它被封装成C结构,可以通过串行总线把数据包发送到地面站,与地面站进行数据通信,它在PX4,PIXHAWK,Parror AR.Drone平台上得到广泛测试,作为MCU/IMU通信以及Linux和地面站通信的主要方式
它可以通过串行通道高效率地包装C结构,并将这些数据包发送到地面控制站。它在PX4,PIXHAWK,APM和Parrot AR.Drone平台上进行了广泛的测试,作为MCU / IMU通信以及Linux进程间和地面链路通信的通信骨干。
| 数据帧头信息(6 Byte) | 有效数据信息 nByte | 校验信息 2Byte |
字节帧 | 0 | 1 | 2 | 3 | 4 | 5 | 6-(6+n) | (n+7)-n+8 |
---|---|---|---|---|---|---|---|---|
含义 | 开始标志 | 载荷长度 | 包序列 | SystemID | DeviceID | MesgID | 消息内容 | 哈希校验 |
范围 | v1(FE) v0.9(55) | 0-255 | 0-255循环 | 0-255 | 0-255 | 0-255 | 0-255Byte | |
OO心跳信息 | fe | 09 | ce | 01 | 01 | 00 | 00 00 01 00 02 0c 41 03 03 | 25 5d |
01状态信息 | fe | 1f | cf | 01 | 01 | 01 | 00 00 00 00 00 00 00 00 00 00 00 00 14 01 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ff | 00 9d |
74 fe 14 86 01 01 4a 00 00 00 00 00 00 00 00 1f 8b ab 45 00 00 00 80 5c 00 00 00 6f db |
性能
链路速度 | 硬件 | 更新速率 | 负载 |
---|---|---|---|
115200baud | XBee Pro 2.4 GHz | 50Hz | 224bytes |
9600 baud | XBee Pre XSC | 50Hz | 13bytes |
mavlink的使用
MAVLink的板载移植
MAVLink是一个header–only库,所以MCU不用编译它。只需要添加mavlink/include到自己的包含目录的列表中(通常是你的Makefile)。
注意!! MAVLink的连接是无状态的
- 但是QGroundControl要跟踪系统是否使用心跳消息。因此,请确保每60s/ 30s/10s或1s发送心跳(建议使用1Hz)。一旦心跳到达,系统只会被视为连接。
- MAVLink并不是板载架构的核心部分。它仅仅提供的任务栏处理参数和任务/航点传输,自动驾驶仪只需要从相应的数据结构中读取值。
- MAVLink具有非常稳定的消息格式,这是许多GCS和自动驾驶仪支持它的主要原因之一
附录使用mavlink协议的项目
1) 使用MAVLink的自动驾系统
ArduPilotMega (mainprotocol)
pxIMU Autopilot (mainprotocol)
SLUGS Autopilot (mainprotocol)
FLEXIPILOT (optionalprotocol)
UAVDevBoard/Gentlenav/MatrixPilot (optionalprotocol)
SenseSoarAutopilot (main protocol)
SmartAPAutopilot (main protocol)
AutoQuad 6 AutoPilot (mainprotocol)
2) 使用MAVLink的软件包
QGroundControl(Windows/Mac/Linux)
HK GroundControl Station (Windows)
APMPlanner (Windows/Mac)
QGroundControlw/ AutoQuad MainWidget (Windows/Mac/Linux)
Copter GCS(Android)
AutoQuadGCS (Android)
ROS to MAVLink bridge: https://github.com/mavlink/mavlink-ros 【还有mavros】
MAVCONN Lightweight Aerial Middleware http://pixhawk.ethz.ch/software/middleware/start
oooArk / MAVSim http://www.youtube.com/watch?v=-wQVrM5SL2o&fe
MAVLinkpython bindings
MAVProxy (allows toconnect multiple UDP/serial links, including flightgear):
3) 使用MAVLink的项目
ArduPilotMega http://code.google.com/p/ardupilot-mega/
MatrixPilot UAVDevBoard http://code.google.com/p/gentlenav/
PIXHAWK http://pixhawk.ethz.ch/
ETH Flying MachineArena http://www.idsc.ethz.ch/Research_DAndrea/FMA
ETH SenseSoarSolar Airplane Project http://www.sensesoar.ethz.ch/doku.php?id=news
ETH Skye BlimpProject http://www.projectskye.ch/
UC Santa CruzSLUGS http://slugsuav.soe.ucsc.edu/index.html
ArduCAMOSD http://code.google.com/p/arducam-osd/
Sky-Drones - UAVFlight Control Systems http://www.sky-drones.com/
AutoQuad -Autonomous Multirotor Vehicle controller http://autoquad.org/
Mavlink地面站编写之二–Mission PLanner地面站构架分析之MAVLINK航点读写
Mavlink地面站编写之三–Mission PLanner地面站构架分析之MAVLINK航点写入
Mavlink地面站编写之四-Mission Planner中ProgressReporterDialogue和读串口线程serialreaderthread的分析
更多推荐
所有评论(0)