当前位置: 首页 > news >正文

MAVlink协议 部分通用消息集解析

文章目录


MAVLink是一种非常轻量级的消息传输协议, 用于地面控制终端(地面站)与无人机之间 (以及机载无人机组件之间) 进行通信, 为一种设计用于资源受限系统及带宽受限链路的二进制遥测协议。

  • HEARTBEAT
    检测信号消息显示系统或组件存在并正在响应。type 和 autopilot 字段(以及消息组件 id)允许接收系统适当地处理来自该系统的进一步消息(例如,通过基于 autopilot 的用户界面布局)
    在这里插入图片描述

  • SYS_STATUS
    常规系统状态。如果系统遵循 MAVLink 标准,则系统状态主要由三种正交状态/模式定义:系统模式,即 LOCKED(电机关闭和锁定)、MANUAL(RC 控制下的系统)、GUIDED(具有自主位置控制、位置设定点手动控制的系统)或 AUTO(由路径/航路点规划器引导的系统)。NAV_MODE定义了当前的飞行状态:LIFTOFF(通常是开环机动)、LANDING、WAYPOINTS 或 VECTOR。这表示内部导航状态机。系统状态显示系统当前是否处于活动状态,以及是否发生了紧急情况。在 CRITICAL 和 EMERGENCY 状态下,MAV 仍被视为活动状态,但应自动启动紧急程序。发生故障后,它应首先从活动状态变为紧急状态,以允许人工干预,然后在一定超时后状态变为紧急状态。
    在这里插入图片描述

  • SYSTEM_TIME
    系统时间是主时钟的时间,通常是主机载计算机的计算机时钟。
    在这里插入图片描述

  • PING
    请求或响应 ping 的 ping 消息。这允许测量系统延迟,包括串行端口、无线电调制解调器和 UDP 连接
    在这里插入图片描述

  • CHANGE_OPERATOR_CONTROL
    请求控制此 MAV
    在这里插入图片描述

  • CHANGE_OPERATOR_CONTROL_ACK
    接受/拒绝对此 MAV 的控制
    在这里插入图片描述

  • AUTH_KEY
    发出标识此系统的加密签名/密钥。请注意:此协议一直保持简单,因此传输密钥需要一个加密通道才能真正安全
    在这里插入图片描述

  • LINK_NODE_STATUS
    在通信链中的每个节点中生成状态,并注入到 MAVLink 流中
    在这里插入图片描述

  • SET_MODE
    设置系统模式,如 enum MAV_MODE 所定义。没有目标组件 ID,因为根据定义,模式是针对整个飞机的,而不仅仅是针对一个组件
    在这里插入图片描述

  • PARAM_REQUEST_READ
    请求读取具有 param_id 字符串 id 的 onboard 参数。板载参数存储为 key[const char*] -> value[float]。这允许将参数发送到任何其他组件(例如 GCS),而无需事先了解可能的参数名称。因此,相同的 GCS 可以为不同的自动驾驶仪存储不同的参数。
    在这里插入图片描述

  • PARAM_REQUEST_LIST
    请求此组件的所有参数。在此请求之后,将发出所有参数。
    在这里插入图片描述

  • PARAM_VALUE
    发出板载参数的值。消息中包含 param_count 和 param_index 使收件人能够跟踪收到的参数,并允许他在丢失或超时后重新请求缺少的参数。
    在这里插入图片描述

  • PARAM_SET
    设置参数值。接收组件应通过广播 PARAM_VALUE 消息来确认新参数值(广播可确保多个 GCS 都具有所有参数的最新列表)。如果发送 GCS 在其超时时间内未收到 PARAM_VALUE,则应重新发送 PARAM_SET 消息。PARAM_SET也可以在事务的上下文中调用(以 MAV_CMD_PARAM_TRANSACTION 开头)。在事务中,接收组件应以 PARAM_ACK_TRANSACTION 响应 setter 组件(而不是广播PARAM_VALUE),如果未收到 ACK,则应重新发送 PARAM_SET
    在这里插入图片描述

  • GPS_RAW_INT
    全球定位系统 (GPS) 返回的全局位置。
    在这里插入图片描述

  • GPS_STATUS
    GPS 报告的定位状态。此消息旨在显示接收器可见的每颗卫星的状态信息
    在这里插入图片描述

  • SCALED_IMU
    通常 9DOF 传感器设置的 RAW IMU 读数。此消息应包含按所述单位缩放的值。
    在这里插入图片描述

  • RAW_IMU
    9DOF 传感器的 RAW IMU 读数,由 id(默认 IMU1)标识。此消息应始终包含真实的原始值,不进行任何缩放,以允许数据捕获和系统调试。
    在这里插入图片描述

  • RAW_PRESSURE
    一个绝对压力传感器和一个差压传感器的典型设置的 RAW 压力读数。传感器值应为原始的 UNSCALED ADC 值。
    在这里插入图片描述

  • SCALED_PRESSURE
    一个绝压和差压传感器的典型设置的压力读数。单位与每个字段中的指定相同。
    在这里插入图片描述

  • ATTITUDE
    航空坐标系中的姿态(右手、Z 轴下、Y 轴右、X 轴前、ZYX、内在)
    在这里插入图片描述

  • ATTITUDE_QUATERNION
    航空坐标系中的姿态(右手、Z 轴下、X 轴前、Y 轴右),以四元数表示。四元数顺序为 w、x、y、z,零旋转将表示为 (1 0 0 0)。
    在这里插入图片描述

  • LOCAL_POSITION_NED
    过滤后的局部位置(例如,融合的计算机视觉和加速度计)。坐标系为右手,Z 轴向下(航空坐标系,NED / 东北向下约定)
    在这里插入图片描述

  • GLOBAL_POSITION_INT
    过滤后的全局位置(例如,融合的 GPS 和加速度计)。位置在 GPS 框架中(右手,Z 轴向上)
    在这里插入图片描述

  • RC_CHANNELS_SCALED
    接收到的 RC 通道的缩放值:(-100%) -10000、(0%) 0、(100%) 10000。处于非活动状态的频道应设置为 INT16_MAX
    在这里插入图片描述

  • RC_CHANNELS_RAW
    接收到的 RC 通道的 RAW 值。标准 PPM 调制如下:1000 微秒:0%,2000 微秒:100%。值 UINT16_MAX 表示通道未使用。
    在这里插入图片描述

  • SERVO_OUTPUT_RAW
    被 ACTUATOR_OUTPUT_STATUS 取代。伺服输出的 RAW 值(对于来自遥控器的 RC 输入,请使用 RC_CHANNELS 消息)。标准 PPM 调制如下:1000 微秒:0%,2000 微秒:100%。
    在这里插入图片描述

相关文章:

MAVlink协议 部分通用消息集解析

文章目录 MAVLink是一种非常轻量级的消息传输协议, 用于地面控制终端(地面站)与无人机之间 (以及机载无人机组件之间) 进行通信, 为一种设计用于资源受限系统及带宽受限链路的二进制遥测协议。 HEARTBEAT 检测信号消息显示系统或组件存在并正…...

c++实现跳表

原理 跳表(Skip List) 是一种随机化数据结构,用于高效查找、插入和删除,尤其适用于有序数据集合。相比链表,跳表通过多层索引结构加速查找,期望时间复杂度接近 O(log⁡n)。跳表的主要思想是: …...

新探索研究生英语读写教程pdf答案(基础级)

《新探索研究生英语读写教程》的设计和编写充分考虑国内研究生人才培养目标和研究生公共英语的教学需求, 教学内容符合研究生认知水平, 学术特征突出;教学设计紧密围绕学术阅读、学术写作和学术研究能力培养;教学资源立体多元&…...

管道与共享内存

一,命名管道 管道的限制就是他只能在有血缘关系(父子进程)的进程中,允许互相访问,这是有局限性的,所以我们想在毫无关系的进程中允许他们相互访问,这就是命名管道的定义。 总结:命名…...

ES 自定义排序方式

es默认score是根据query的相关度进行打分的,具体打分机制可以参见:官方文档。如果召回时既希望有相关性又能根据其他信息进行排序。 例如小红书搜索的时候,可能既希望有召回相关度又能根据热度信息(如果喜欢、收藏等等参数去进行召…...

在vue中,编写一个li标签同时使用v-for和v-if,谁的优先级更高

在 Vue 中,v-if 和 v-for 是两个常用的指令,但它们的优先级不同。当二者一起使用时,v-for 的优先级高于 v-if。这意味着,v-for 会先执行,即使列表中的某些元素不满足 v-if 条件,它们仍会被遍历和渲染。 由…...

Java 后端开发面试题及其答案

以下是一些常见的 Java 后端开发面试题及其答案,涵盖了 Java 基础、面向对象、并发、多线程、框架等多个方面: 1. Java 中的基本数据类型有哪些? 答案: Java 中的基本数据类型有 8 种: int:32 位整数lon…...

C++,STL 045(24.10.24)

内容 1.对set容器的大小进行操作。 2.set容器的交换操作。 运行代码 #include <iostream> #include <set>using namespace std;void printSet(set<int> &s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it <…...

二叉树习题其五【力扣】【算法学习day.12】

前言 书接上篇文章二叉树习题其四&#xff0c;这篇文章我们将基础拓展 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一…...

【数据库】Mysql的锁类型

Mysql中的锁机制主要是为了保证数据的一致性和完整性&#xff0c;在并发的情况下起着至关重要的作用。其中锁的类型主要是分为以下几种&#xff1a; 按照粒度分类 全局锁&#xff1a;对于整个数据库实例进行枷锁&#xff0c;加锁后整个实例就处于只读的状态。局锁通常用于需要…...

自媒体短视频制作素材下载网站推荐,让创作更简单

随着自媒体行业的火爆&#xff0c;视频质量要求也越来越高。想要找到无版权的高清视频素材并不容易&#xff0c;但别担心&#xff01;今天为大家整理了5个国内外高质量的素材网站&#xff0c;让你轻松获取自媒体短视频素材&#xff0c;快收藏起来吧&#xff01; 蛙学网 蛙学网是…...

Altium Designer 入门基础教程(五)

本文章继续接着《Altium Designer 入门基础教程&#xff08;四&#xff09;》的内容往下介绍&#xff1a; 七、AD画板的整个流程步骤 I.集成库的制作 AD元件库有2种&#xff1a;1、原理图元件库SCH.LIB 2、印刷电路板&#xff08;PCB&#xff09;元件库 PCB.LIB 印刷电路…...

Java题集练习3

Java题集练习3 1 什么时候用instanceof instanceOf关键字主要用于判断一个对象是否为某个类的子类或是接口的实例&#xff0c;通常用于类型转换和运行时类型判断的场景&#xff0c;比如继承和多态中。比如&#xff0c;创建一个Animal类及其子类Cat和Cat子类Hat&#xff0c;可…...

【部署篇】Haproxy-01安装部署(源码方式安装)

‌一、HAProxy概述‌ HAProxy是一款免费、快速且可靠的代理软件&#xff0c;提供高可用性、负载均衡&#xff0c;支持TCP和HTTP应用代理&#xff0c;HAProxy凭借其卓越的性能和灵活性&#xff0c;成为众多知名网站和系统的首选代理软件。‌ ‌核心特点‌&#xff1a; ‌高性能…...

开拓鸿蒙测试新境界,龙测科技引领自动化测试未来

在当今科技舞台上&#xff0c;鸿蒙 OS 以非凡先进性强势登场&#xff0c;打破传统操作系统格局&#xff0c;为软件测试领域带来全新机遇与艰巨挑战。 一、鸿蒙 OS 的辉煌崛起 &#xff08;一&#xff09;壮丽发展历程与卓越市场地位 鸿蒙 OS 的发展如波澜壮阔的史诗。2023 年…...

Java项目-基于springboot框架的自习室预订系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…...

调整数组奇偶数顺序

今天给大家分享一道题目&#xff0c;要求我们输入一个数组&#xff0c;将全部奇数放在偶数前面&#xff08;无需比较大小&#xff09;&#xff0c;下面是我写的代码 这个方法比使用三个数组进行数据传输要节省不少程序运行时间&#xff0c;缺点是使用了较多的while循环&#xf…...

Electron调用nodejs的cpp .node扩展【非安全】

Electron调用nodejs的cpp .node扩展【非安全】 环境&#xff1a; electron: 30.1.1 nodejs: 20.14.0前言 Electron中可以非常容易的调用nodejs的js代码&#xff0c;但是对于cpp .node扩展需要一定的配置才能调用&#xff0c;下面介绍一种最简单的cpp扩展的调用方法&#xff…...

一文了解AOSP是什么?

一文了解AOSP是什么&#xff1f; AOSP基本信息 基本定义 AOSP是Android Open Source Project的缩写&#xff0c;这是一个由Google维护的完全免费和开放的操作系统开发项目。它是Android系统的核心基础&#xff0c;提供了构建移动操作系统所需的基本组件。 主要特点 完全开源…...

ffmpeg视频边缘模糊,打造梦幻般的视觉效果!

在视频编辑的世界里&#xff0c;细节决定成败。边缘模糊效果是一种强大的工具&#xff0c;可以让你的作品瞬间提升质感。通过简单的命令&#xff0c;你可以轻松实现视频边缘的柔和化处理&#xff0c;创造出梦幻般的视觉效果。 想象一下&#xff0c;当你将一段普通的视频应用边…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...