83【无人机】002 mavlink协议

MAVLink 基础知识 如果仅能够理解 MAVLink1 的设备收到包含附加字段(在 MAVLink2 下添加)的消息,则该设备将仅看到原始字段。地面站通常使用较高的系统 ID,如“255”,车辆默认使用“1”(可以通过设置。MAVLink2 通过允许将新字段添加到现有 MAVLink1 消息中来扩展 MAVLink1,支持超过“255”的新消息并添加对签名消息的支持。通过将参数设置为“2”(其中“x”是飞行控制器上的串行端口号),可以将飞行控制器的串行端口(大概连接到遥测无线电)设置为使用 MAVLink2。 阅读详情

1 引言

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

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

2 mavlink协议

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

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

mavlink v1.0数据帧结构

┌─────────────────────────────────────────────────────────────┐
│                    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字节)

mavlink v2.0数据帧结构

┌───────────────────────────────────────────────────────────────────────────────────────┐
│                        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.youkuaiyun.com/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!

MAVLink 协议详解与实战:原理、结构、函数与开发指南 这篇 MAVLink 协议博客文章,对mavlink深入的介绍、更多实战内容、代码范例、调试建议与进阶使用方式 阅读详情

相关推荐

ArduSub故障诊断分层指南:从电源到MAVLink的ROV排错实战

水下机器人(ROV)系统调试中,ArduSub并非孤立固件,而是深度耦合Pixhawk飞控、QGroundControl地面站、MAVLink通信协议与水下物理环境的技术栈。其典型故障如姿态抖动、深度跳变或通信断连,往往源于供电不稳、传感器温漂或链路干扰等基础环节,而非代码逻辑错误。理解电源轨动态压降、I²C传感器地址冲突、MAVLink心跳超时机制等原理,可显著提升现场排查效率。本文聚焦ArduSub在真实水下场景中的可靠性失效模式,结合供电拓扑分析、水陆对比实验与日志切片方法,为高校ROV团队和工程实践

weixin_30596023的博客 364

【无人机开发】通讯协议MavLink详解

1. MAVLink简介 MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试。 2.发明者Lorenz Meier简介 MAVLink的...

宝爷的专栏 5万+

PX4 SITL+Gazebo+QGC闭环仿真系统深度解析

无人机飞控仿真本质上是构建高保真数字孪生验证环境,其核心在于软件在环(SITL)逻辑、物理引擎(Gazebo)建模与地面站协议交互(QGC)的毫秒级时序闭环。SITL复用真实PX4固件控制律与EKF2状态估计,Gazebo基于ODE求解刚体动力学并注入IMU/GPS噪声,QGC则通过MAVLink实现指令下发与数据可视化——三者协同才能支撑抗风扰、GPS拒止等极端工况验证。该架构显著优于纯数学仿真或单点工具链,在农业植保、物流配送等工程场景中可替代90%实飞测试,大幅降低硬件试错成本。本文聚焦PX4 SIT

weixin_34025051的博客 163

无人机、无人船通信协议——MAVLink(V1.0、V2.0,心跳包,GPS定位,7种飞行模式)

1、什么是MAVLink 在无人机、无人船控制中,由于无人机等控制为切入式设备而地面站为高级计算机(常为Windows或Linux),因此两者之间存在着不同系统的问题,不同系统之间如何进行通信保证互相理解对方发来的信息就成为一个问题。 打一个比方一个中国人和一个日本人进行交流,中国人说汉语,日本人说日语,显然无法沟通。这个时候,全球规定英语为通用语言,中国人和日本人都学习英语后,两者就可以进行...

国庆的博客 3万+

Pixhawk振动测量:从IMU噪声到飞行抖动的频谱诊断全流程

振动测量是无人机飞控系统稳定性保障的基础技术,其本质是通过分析机体机械振动对IMU传感器的干扰效应,揭示姿态解算失准的物理根源。核心原理在于高频振动(200–800Hz)会污染加速度计与陀螺仪原始数据,导致EKF滤波器产生姿态估计偏差,进而引发PID控制震荡、高度漂移等典型故障现象。该技术具有明确的工程价值:可量化定位结构共振、电机电磁谐波、安装应力等多类根因,并支撑减振设计、参数优化与硬件选型决策。典型应用场景涵盖多旋翼调试、植保机稳定性提升、航拍平台云台协同优化等。本文聚焦Pixhawk平台在PX4固件

weixin_30684743的博客 366

mavlink协议从入门到放弃(一)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_43046763的博客 4294

进度感知双无人机空中对接系统设计与实现

空中对接是多无人机协同作业的关键技术,其本质是在动态空域中实现高精度、强鲁棒的物理级连接。传统方案依赖空间距离触发,易受GNSS误差、环境扰动和任务脱节影响;而进度感知将控制逻辑从‘空间域’迁移至‘任务状态域’,融合姿态、资源、通信与环境等多维状态,构建可量化、可同步、可验证的进度模型。该技术显著提升强风、高原、电磁复杂等真实场景下的对接成功率与系统可信度,广泛适用于电力巡检、应急投送、模块化作业等需要硬连接的工业级无人系统应用。

weixin_33851429的博客 352

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4251

低空无人机视觉模组选型:轻量裸板双目+IMU深度方案

深度相机是嵌入式视觉系统的核心感知单元,其技术原理涵盖主动结构光、飞行时间(ToF)与被动双目立体匹配三大路径。在资源严苛的边缘场景中,硬件同步精度、功耗密度与抗环境干扰能力共同决定系统鲁棒性。轻量设计需兼顾结构净重、热功耗与散热约束;裸板形态则保障寄存器级控制自由度,支撑视觉惯性里程计(VIO)紧耦合实现。典型应用如低空巡检、电力避障与GPS拒止定位,均依赖高帧率、低延迟、稠密可靠的深度输出。本文聚焦小四旋翼平台,详解如何基于OV9281全局快门传感器与BMI088高稳IMU构建可量产的裸板双目深度模组。

weixin_33796177的博客 223

无人机通信协议MAVLink简介

无人机集成了特殊的硬件和软件,通过这些硬件和软件实现自动驾驶。地面控制站与无人机之间通过交换MAVLink消息实现通信。MAVLink协议规则在2009年由Lorenz Meier以LGPL授权的方式发布。从发布至今,MAVLink由于消息短小,通信开销小,效率高等特点在无人机通信中得到广泛应用。下面分别介绍版本1.0和版本2.0的MAVLink消息结构。MAVLink 2.0版本是在1.0版本的基础上扩展了消息类型和安全性签名的版本。

zxm8513优快云博客 3023

全桥LLC谐振变换器设计与双环控制策略详解

LLC谐振变换器作为高频开关电源的核心拓扑,通过谐振腔实现软开关特性,显著提升转换效率(可达96%以上)。其工作原理基于谐振电感、电容的协同作用,当开关频率接近谐振点时实现ZVS/ZCS。在工业电源、电动汽车充电等场景中,电压电流双环控制策略通过引入电流内环和竞争仲裁机制,有效改善动态响应(实测负载跳变时电压跌落减少60%)。数字控制实现时需注意ADC采样同步和PWM更新时序,而谐振参数测量与温升管理则是工程实践的关键。

weixin_29189987的博客 257

一篇文章讲明白什么是mavlink(不玩飞控,但是想用mavlink协议)

通信协议是一种规定了数据传输格式、传输速率、错误检测和纠正等通信过程中所需的规则和约定的标准或约定。侠义的讲,只要你用串口了,就必定要用到通信协议,无论是调试,打印错误代码或者进行平衡车控制,大家都要约定好通信速率,数据是16进制还是ascii码。对于普通的调试打印大多数只是ascii(UTF-8等)码显示,这时候只要规定好通讯速率就好。

ben392797097的专栏 9738

如何选择StandardScaler、MinMaxScaler和RobustScaler做标准化的对比解释和示例代码

选择合适的标准化方法取决于数据的特点和需求。如果数据分布接近正态分布且无异常值,可以使用。如果需要将数据映射到特定范围内并保持相对关系,可以使用。如果数据中存在异常值或离群点,可以使用进行鲁棒标准化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好(避免不同量纲对方差、协方差计算的影响);在不涉及距离度量、协方差、数据不符合正态分布、异常值较少的时候,可使用MinMaxScaler。

qq_36001281的博客 4940

MAVLink 飞控通讯协议开发详解

介绍无人机和地面站之间的通讯协议(MAVLink飞控通讯协议)、开发流程、报文格式和通用消息集,方便操控无人机。

zhoubiaodi的博客 1万+

手把手教你安装 Vivado2019.2(附安装包)

Vivado 2019.2 作为 Xilinx 公司发布的一款设计套件版本,具有多个显著的优点,以下是对其优点的详细归纳

dpwkj的博客 1万+

读书笔记 | 财务会计理论(第7版 William R.Scott)(中):契约视角下的会计信息价值

本文从契约理论视角深入剖析了财务会计信息的核心价值。文章指出,会计信息作为关键的“契约润滑剂”,通过债务合同与薪酬合同等具体形式,有效解决了公司内外的信息不对称与道德风险问题,协调了股东、债权人及管理层等多方利益,是公司治理与资本市场有效运转的基石。

mac99的博客 330

MAVLink协议:原理、应用与实践

在无人机以及航空航天等众多领域,设备之间高效、可靠的数据通信是实现诸多高级功能的关键。MAVLink (Micro Air Vehicle Link)协议作为一款轻量级、高性能的消息传递协议,广泛应用于无人机地面站与飞行器、飞行器与传感器等设备之间的通信,为这些复杂系统的协同工作提供了坚实的基础。本文将全面深入地介绍 MAVLink 协议,通过通俗易懂的讲解、丰富的实例以及详细的 Python 代码实现,助力读者快速掌握这一关键协议,为在相关领域的开发实践铺平道路。

橙色小博的博客,励志在人工智能领域发光发热! 5004

时间卷积网络(TCN):结构+pytorch代码

文章目录TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构pytorch代码讲解 TCN   TCN(Temporal Convolutional Network)是由Shaojie Bai et al....

Leon_winter的博客 11万+

MAVLink 通信协议简介:无人机与机器人系统的轻量级解决方案

MAVLink 是一种轻量级、二进制的消息传输协议,广泛应用于无人机和机器人系统中,用于系统与控制台或地面站之间的通信。MAVLink 的全称是 Micro Air Vehicle Link,它最早由 Lorenz Meier 在 2009 年开发,并逐渐成为开源无人机控制软件如 PX4 和 ArduPilot 的标准通信...

weixin_41417788的博客 4712

用RK3588+FPGA搞定Cameralink高速相机?这份保姆级硬件选型与接口配置指南请收好

本文详细介绍了如何利用RK3588与FPGA构建Cameralink高速相机系统,涵盖硬件选型、接口配置及性能优化等关键步骤。通过异构计算架构和精准的带宽分配,实现工业视觉检测和科研成像领域的高效解决方案,特别适合需要实时处理的复杂应用场景。

weixin_30493401的博客 642

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

Mavlink协议

Mavlink协议简介Mavlink协议简介 一Mavlink协议 二数据结构 三协议支持的数据类型 四性能 五航点协议 读取MAV的航点列表 写MAV的航点列表 清除MAV的航点列表 设置当前MAV航点 六参数的读写 读取参数列表 读取单个参数 写参数 七增加新的mavlink消息 XML文件中消息的定义 建立消息定义文件 编绎XML文件 八消息的发送与解析 九通用的Mavlink消息 参考资料

pengl的博客 2万+

Experion PKS系列开发:I_O模块_ExperionPKS与第三方I-O模块的集成

通过上述步骤,可以成功将第三方I/O模块集成到Honeywell Experion PKS系统中,实现对现场设备的监视和控制。集成过程中需要注意选择合适的第三方模块,配置正确的通信参数,编写正确的控制逻辑,并进行充分的测试,以确保系统的稳定性和可靠性。不同的通信协议(如Modbus、Profibus、Ethernet/IP、CANopen、OPC UA)有其独特的配置和编程方法,但总体流程相似。在实际应用中,根据项目需求选择合适的协议和模块,可以有效提高系统的灵活性和适应性。

zhubeibei168的博客 1102

Marlink通信协议简介

http://qgroundcontrol.org/mavlink/start mavlink协议介绍 https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的 Lorenz Meier于2009年发布,并遵循LGPL开源协议。Mavlink协议是在串口通讯基础上的一种更高

zm1_1zm 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

二、MAVROS和MAVLINK的关联和区别

MAVROS和MAVLINK的关联和区别

qq_35598561的博客 2454

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

PX4模块设计之四:MAVLink简介

基于PX4开源软件框架简明简介的框架设计,逐步分析内部模块功能设计。前面了解了三种消息中间件中的一种uORB消息中间件,接下来看下MAVLink中间件。PX4使用MAVLink与QGroundControl(或者其他地面站软件),并且也用于飞控以外的伴飞电脑和摄像头通信与控制。目前,MAVLink作为轻量级的通信协议,已被广泛应用与无人机系统。随着应用的拓展,基于该协议定义了一系列标准的消息和微服务用于飞控系统内的数据交互。PX4开源代码将mavlink作为一个submodule集成到/src/module

lida2003的专栏 5157

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 82 【无人机】001 RID远程识别信息广播
下一篇: 84【无人机】003 六步换相 驱动无刷电机
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值