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!

相关推荐
XBWRJ3 小时前
职业教育专业建设:《无人机装调维修师》的课程参考价值
无人机
YOLO数据集集合1 天前
小目标无人机、飞机、直升机检测数据集 | 小目标检测 无人机检测 空中目标识别 低空安防 反无人机9090期
深度学习·yolo·目标检测·无人机·飞机·小目标·直升机
PascalXie2 天前
无人机视觉模组算力选型:端侧AI集成方案对比
计算机视觉·无人机
YOLO数据集集合2 天前
全球无人机航拍树冠覆盖数据集 | 树冠分割 语义分割 无人机航拍 全球森林监测 GeoTIFF 生态恢复9083期
深度学习·yolo·目标检测·无人机·无人机视角·全球森林
haishikeji696_2 天前
飞控管理平台源码|无人机智慧巡查系统私有化部署 低空一网统管巡检平台选型指南
架构·无人机·低空经济·无人机巡检·无人机管理系统·一网统飞·飞控管理平台
Zentceh2 天前
海洋牧场夜间监测:AI全彩夜视+水下成像集成方案
图像处理·人工智能·科技·计算机视觉·车载系统·无人机·智能家居
YOLO数据集集合2 天前
无人机树木识别检测数据集 | 树木检测 树种分类 无人机航拍 林业调查9082期
深度学习·yolo·目标检测·无人机·无人机视角·树冠识别·树冠
An独行者2 天前
物理引导机器学习:精准估算单木地上生物量新方法
无人机
XBWRJ2 天前
低空经济产业园观察:《无人机装调维修师》与维保生态构建
无人机
LONGZETECH3 天前
深入拆解无人机组装四大技术难关:焊接、接线、调参、转向校验
大数据·人工智能·系统架构·无人机