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.0mavlink 1.0增加了如下特性:

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

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

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

SYSID系统ID:

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

COMPID组件ID:

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

待补充...

3 项目应用

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

4 结束

over!

相关推荐
动物园猫1 天前
无人机灾害场景人体目标检测数据集:10,000张图像 | 目标检测
人工智能·目标检测·无人机
tianxuanjg2 天前
高精密CNC 加工厂家该如何挑选
经验分享·机器人·无人机·材质
mtouch3332 天前
全球水面海面动态仿真规划生成数字沙盘电子沙盘系统
人工智能·机器人·无人机·虚拟现实·电子沙盘·数字沙盘
GrepowTattu3 天前
新品发布 | Tattu TA75八通道智能充电器,让无人机训练补能更高效
无人机
专业工业电源打工人3 天前
无人机硬件设计:工业模块电源选型的三个核心要点|电子工程师实操指南
无人机·国产化·工业电源
数模竞赛Paid answer3 天前
2023年五一杯数学建模A题无人机定点投放问题求解全过程完整文档及程序
算法·数学建模·无人机·五一杯
一根数据线4 天前
不用无人机也不用软件,AI也能直接从地图生成3D模型?
人工智能·3d·3d建模·无人机·倾斜摄影·造形家·场地建模
这张生成的图像能检测吗5 天前
(论文速读)基于 MEMS 振动的无人机智能健康监测:螺旋桨损伤与结构松动检测
人工智能·机器学习·无人机·信号处理·故障诊断·特征提取·缺陷识别
这张生成的图像能检测吗5 天前
(论文速读)多旋翼飞行器螺旋桨损伤的检测、分类和估计
人工智能·机器学习·无人机·故障诊断·缺陷识别·旋翼故障
andxe5 天前
安科士 AndXe|光纤通信重塑无人机链路:无人机专用光纤光模块技术解析
无人机·光模块·光通信