无人机 MAVLINK 消息传输协议

MAVLINK 是一种轻量级的消息传输协议,专为无人机、机器人及其他资源受限的嵌入式系统设计,用于组件间(如飞控、地面站、传感器、执行器)的通信。其核心是定义和传输结构化的消息(报文)

解析 MAVLINK 报文的核心步骤:

  1. 识别帧头 (Magic/StX):

    • 寻找报文的起始标志。这是解析的第一步。

    • MAVLINK v1: 帧头是 0xFE

    • MAVLINK v2: 帧头是 0xFD。这是区分 v1 和 v2 的关键。

  2. 读取有效载荷长度 (Payload Length - Len):

    • 紧跟在帧头后面(v1 和 v2 都是)。

    • 一个字节 (uint8_t)。

    • 表示 payload 字段的实际字节数。注意这不是整个报文的长度。

  3. 读取不兼容标志 (Incompatibility Flags - IncompFlag) 和兼容标志 (Compatibility Flags - CompFlag):

    • 仅 MAVLINK v2: 在 Len 字段之后。

    • 各一个字节 (uint8_t)。

    • IncompFlag: 指示接收方如果不理解其中设置的标志位,必须丢弃该报文(例如 0x01 表示签名)。

    • CompFlag: 指示接收方如果不理解其中设置的标志位,可以安全忽略该标志位并继续处理报文(保留位)。

  4. 读取消息序列号 (Packet Sequence - Seq):

    • 紧跟在 Len 之后 (v1) 或在 CompFlag 之后 (v2)。

    • 一个字节 (uint8_t)。

    • 由发送方维护,每个发送通道独立递增(通常每发送一条消息加 1),用于检测丢包。接收方用它来判断是否按顺序收到或是否有报文丢失。

  5. 读取系统 ID (SysID) 和组件 ID (CompID):

    • 紧跟在 Seq 之后。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值