当前位置: 首页 > 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;当你将一段普通的视频应用边…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...