MAVLink协议详解

MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。

MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol

  用户手册:https://docs.qgroundcontrol.com/en/

https://mavlink.io/zh/(开发手册)

 

1、 common文件夹:原始的MAVLink消息,包括各种消息的头文件

    common.h:定义MAVLink各个消息包中用到的枚举类型,各个消息包对应的CRC—EXTRA值、LENGTH值,包含(include)各个消息包的头文件

    各个消息的头文件:1)定义消息内容对应的数据结构,2)打包、发送消息的便捷函数,3)消息包解析并获取各个参数

2、 au

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MAVLink是一种轻量级的、可扩展的通讯协议,用于在无人机和地面站之间传输数据。MAVLink协议使用UDP、TCP、串口等传输方式。以下是MAVLink协议的详细介绍。 1. MAVLink协议的数据包格式 MAVLink协议的数据包格式分为两个部分:头部和数据。头部包含了数据包的长度、序列号、系统ID、组件ID、消息ID和CRC校验码。数据部分包含了数据包的内容。 头部的格式如下: ``` typedef struct MAVLink_header_t { uint16_t len; // 数据包长度 uint8_t seq; // 数据包序列号 uint8_t sysid; // 发送者的系统ID uint8_t compid; // 发送者的组件ID uint8_t msgid; // 消息ID uint8_t crc[2]; // CRC校验码 } MAVLink_header_t; ``` 数据部分的格式根据消息ID的不同而不同。MAVLink定义了一系列消息ID,包括心跳消息、状态消息、姿态消息、传感器消息等。每个消息的数据部分都包含了特定的字段,用于描述该消息的内容。 2. MAVLink协议的数据包传输 MAVLink协议支持UDP、TCP、串口等多种传输方式。在使用UDP传输时,MAVLink协议将数据包封装为UDP数据报进行传输。在使用TCP传输时,MAVLink协议将数据包封装为TCP数据流进行传输。在使用串口传输时,MAVLink协议将数据包封装为帧格式进行传输。 3. MAVLink协议的数据包解析 MAVLink协议的数据包解析主要包括以下几个步骤: (1)接收数据包:从传输通道中接收到一个MAVLink数据包。 (2)校验数据包:使用CRC校验码对接收到的数据包进行校验。 (3)解析头部:解析数据包头部,得到数据包的长度、序列号、系统ID、组件ID、消息ID和CRC校验码。 (4)解析数据:根据消息ID解析数据包的数据部分,得到数据包的内容。 以上是MAVLink协议的详细介绍。在使用MAVLink协议进行通讯时,需要根据具体的应用场景选择合适的传输方式,并根据消息ID解析数据包的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值