83【无人机】002 mavlink协议

1 引言

本博客是为了记录自己处在无人机行业中,所涉及的技术成长路线。既是记录自己的成长轨迹,亦是总结所学,便于后续持续学习。

本blog记录了在无人机通信领域的mavlink学习知识点,及所遇到的问题,可能存在理解浅薄,请多包涵。

2 mavlink协议

Mavlink 是无人机、机器人系统中常见的上层软件通信协议(非物理层通信协议),采用消息包广播 的方式在总线上传输,支持点对点和广播通信 。每个消息包含目标系统/组件 ID,接收方根据 ID 决定是否处理,与发布-订阅模型类似。

截止目前为止,mavlink协议共有连个版本,分别是mavlink v1.0和mavlink 2.0,其协议帧如下所述。

bash 复制代码
┌─────────────────────────────────────────────────────────────┐
│                    MAVLink v1.0 消息帧                      
├──────┬──────┬──────┬──────┬──────┬──────┬──────────┬────────┤
│ STX  │ LEN  │ SEQ  │SYSID │COMPID│MSGID │ Payload  │Checksum│
│ 0xFE │  1   │  1   │  1   │  1   │  1   │  0-255   │   2    │
│ (1B) │ (1B) │ (1B) │ (1B) │ (1B) │ (1B) │  (变长)  │  (2B)  │
└──────┴──────┴──────┴──────┴──────┴──────┴──────────┴────────┘
  ↑      ↑      ↑      ↑      ↑      ↑        ↑         ↑
  │      │      │      │      │      │        │         └─ CRC-16校验和
  │      │      │      │      │      │        └─ 消息数据载荷
  │      │      │      │      │      └─ 消息ID (8位)
  │      │      │      │      └─ 组件ID
  │      │      │      └─ 系统ID
  │      │      └─ 序列号
  │      └─ 载荷长度
  └─ 起始标志

最小帧长: 8字节 (无载荷)
最大帧长: 263字节 (含最大载荷255字节)
bash 复制代码
┌───────────────────────────────────────────────────────────────────────────────────────┐
│                        MAVLink v2.0 消息帧                                            │
├──────┬──────┬──────────┬──────────┬──────┬──────┬──────┬──────────┬────────┬──────────┐
│ STX  │ LEN  │INC_FLAGS │CMP_FLAGS │ SEQ  │SYSID │COMPID│  MSGID   │ Payload│Checksum  │
│ 0xFD │  1   │    1     │    1     │  1   │  1   │  1   │    3     │ 0-255  │    2     │
│ (1B) │ (1B) │   (1B)   │   (1B)   │ (1B) │ (1B) │ (1B) │   (3B)   │ (变长) │   (2B)   │
└──────┴──────┴──────────┴──────────┴──────┴──────┴──────┴──────────┴────────┴──────────┘
  │      │        │           │        │      │      │       │         │         │
  │      │        │           │        │      │      │       │         │         └─ CRC-16校验和
  │      │        │           │        │      │      │       │         └─ 消息数据载荷
  │      │        │           │        │      │      │       └─ 消息ID (24位)
  │      │        │           │        │      │      └─ 组件ID
  │      │        │           │        │      └─ 系统ID
  │      │        │           │        └─ 序列号
  │      │        │           └─ 兼容性标志
  │      │        └─ 不兼容性标志
  │      └─ 载荷长度
  └─ 起始标志

可选签名 (仅当启用签名时):
┌─────────────────────────────────────────────────────────────┐
│ Signature (13字节) - 包含时间戳、链路ID和加密签名              
└─────────────────────────────────────────────────────────────┘

最小帧长: 10字节 (无载荷,无签名)
最大帧长: 280字节 (含最大载荷255字节 + 签名13字节)

字段说明:

字段 长度 (字节) 说明

STX 1 起始标志,v1为0xFE,v2为0xFD。

LEN 1 载荷(Payload)的字节长度 (0-255)。

SEQ 1 包序列号,用于检测丢包。

SYSID 1 发送方系统ID (1-255),区分不同载具。

COMPID 1 发送方组件ID (1-255),区分同一系统内的不同部件。

MSGID 1 (v1) / 3 (v2) 消息ID,决定载荷如何解析。

INC_FLAGS 1 (仅v2) 不兼容性标志,接收方不理解则丢弃。

CMP_FLAGS 1 (仅v2) 兼容性标志,接收方不理解仍可处理。

Payload 0-255 消息的实际数据。

Checksum 2 CRC-16校验和,确保数据完整性。

Signature 0或13 (仅v2) 可选的13字节数字签名,用于链路认证。

上述知识点来着链接:https://blog.csdn.net/u011487024/article/details/155912684

由上可知,mavlink 2.0 比mavlink 1.0增加了如下特性:

(1)MSGID三字节,可用于描述更多的消息对象,定义远超256个消息;

(2)增加可选的13字节签名数据,使得协议传输安全性更高;

注:最小帧字节从8字节,增长到了14字节。

SYSID系统ID:

同一总线上,不同系统有不同的ID。如:飞控、地面站(不在一个系统中的对象);

COMPID组件ID:

同一系统中,不同的组件设备。如:飞机是一个系统,飞机上有飞控、云台、相机、舵机控制模块等,每个组件都有分配的ID

待补充...

3 项目应用

项目中,使用了物理层串口+上层应用mavlink 2.0协议,实现飞机姿态信息、位置信息到RID模块的通信交互。

4 结束

over!

相关推荐
AiNightVision2 小时前
电力巡检夜视方案选型指南——无人机/机器人/固定监测三种场景怎么选
人工智能·科技·车载系统·机器人·无人机·边缘计算·视频
sxgzzn3 小时前
如何利用无人机提升光伏巡检效率?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
迅翼SwiftWing6 小时前
论文分享 | 固定翼无人机深失速栖停,NMPC 跟踪的稳定性从哪来?轨迹优化与时变终端设计
无人机
FPGA小迷弟1 天前
FPGA 与无人机:从飞控实时性到智能载荷的硬件加速实践
人工智能·ai·fpga开发·架构·无人机·ai编程
zzlyx991 天前
无电子身份无人机的精准侦测与高端反制
无人机
高升说1 天前
无人机吊舱相机选型:稳定、变焦与画质的工程权衡
数码相机·无人机
迅翼SwiftWing1 天前
论文分享|UC Berkeley 提出风感知 NMPC:固定翼无人机 10m/s 强风下稳定保持空速
无人机·固定翼·开源垂起固定翼
地图小课堂2 天前
Bigemap Pro如何打开无人机航拍影像并套合配准(有坐标 geoTiff、ecw)
无人机·软件工程
Multipath7122 天前
上车即入院,链路先到院——乾元通多链路聚合,为智慧救护车守住移动中的生命线
网络·人工智能·网络协议·udp·无人机
moonsims2 天前
AiBrainBox-UGV 通 · 感 · 算 · 控一体化地面机器人边缘智能平台 规格书
大数据·网络·人工智能·无人机