MAVLink学习

来源:互联网 发布:mg汽车 知乎 编辑:程序博客网 时间:2024/05/24 06:49

MAVLink是针对小型飞行器的一个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进程间和地面链路通信的通信骨干。

MAVLink的板载移植
MAVLink是一个header–only库,所以MCU不用编译它。只需要添加mavlink/include到自己的包含目录的列表中(通常是你的Makefile)。

注意!! MAVLink的连接是无状态的
但是QGroundControl要跟踪系统是否使用心跳消息。因此,请确保每60s/ 30s/10s或1s发送心跳(建议使用1Hz)。一旦心跳到达,系统只会被视为连接。

MAVLink并不是板载架构的核心部分。它仅仅提供的任务栏处理参数和任务/航点传输,自动驾驶仪只需要从相应的数据结构中读取值。

MAVLink具有非常稳定的消息格式,这是许多GCS和自动驾驶仪支持它的主要原因之一

发送心跳信号

MAVLink 官方全部源码

Mavlink地面站编写之–协议分析

Mavlink资源及其相关索引

移植mavlink协议到STM32详细教程

mission planner发送数据之mavlink

Mavlink地面站编写之二–Mission PLanner地面站构架分析之MAVLINK航点读写

Mavlink地面站编写之三–Mission PLanner地面站构架分析之MAVLINK航点写入

Mavlink地面站编写之四-Mission Planner中ProgressReporterDialogue和读串口线程serialreaderthread的分析