MAVLINK协议理解

2023-05-16

mavlink协议的载体是一下格式:
载体格式
这是载体格式
载体说明

这是载体的具体格式说明

mavlink的结构

主要有3部分

mavlink messages

比如#0–心跳包
心跳包说明
这个message 就是各种数据帧里的数据,
例如,基本的心跳包
FE 09 D3 01 01 00 02 00 00 00 02 03 51 03 03 6E 99
第六个byte的00就是心跳包的代码#0,
后面9个byte是这一帧的payload,心跳包的数据,格式参考上图的说明
也就是说所有帧中第六位byte所指的为messages的编号。

特别提醒一个关于发送指令的message,为common_long(#76)
command_long数据包格式
代码实例

MAVLinkPacket packet=new MAVLinkPacket();
    packet.len=msg_command_long.MAVLINK_MSG_LENGTH;
    packet.seq=seq++;
    packet.compid=compID;
    packet.sysid=sysID;
    packet.msgid=msg_command_long.MAVLINK_MSG_ID_COMMAND_LONG;
    MAVLinkPayload payload=new MAVLinkPayload();
    payload.putByte(sysID);
    payload.putByte(compID);
    payload.putInt(MAV_CMD.MAV_CMD_NAV_TAKEOFF_LOCAL);
    payload.putByte(seq++);
    payload.putFloat((float)0);
    payload.putFloat((float)0);
    payload.putFloat((float)0);
    payload.putFloat((float)angle);
    payload.putFloat(lat);
    payload.putFloat(lon);
    payload.putFloat(alt);
    packet.payload=payload;

mav_cmd

在前面的command_long里,msgid为command_long这个枚举,
payload的里面填充的command就是说要发送的mav_cmd指令枚举(比如mav_cmd_nav_waypoint),在payload中7个参数对应mav_cmd中的7个参数
mav_cmd示例

其他枚举

其他枚举都是在消息包里的枚举,或者command_long中7个参数对应的枚举。

总结

也就是说,
消息包包含mavink_message,packet.msgID->mav_msgID
mavlink_message里面的对应payload使用相应枚举
特殊的mav_cmd中7个参数使用其他枚举
至此,把mavlink协议的结构说明清楚

当然,mav_msg中也有发送指令的数据包格式,和mav_cmd重叠,只不过参数格式不一。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MAVLINK协议理解 的相关文章

  • 第六章 信号量集

    第六章 信号量集 6 1 信号量集的结构 6 1 1 基本概念 信号量集 xff1a 信号量集实质上就是一个多输入 多输出的组合逻辑 xff0c 输入为其他任务发出的多个信号 xff0c 输出为这多个输入逻辑运算的结果 6 1 2 信号量集
  • 嵌入式软件工程师岗位需求

    嵌入式软件工程师岗位需求 A 嵌入式软件开发工程师岗位职责 a 负责嵌入式操作系统的移植和应用开发 xff1b b 负责移动互联网的应用开发 xff1b c 负责嵌入式系统图形界面的开发 xff1b d 负责系统及软件设计文档的编写 xff
  • Marlink通信协议简介

    http qgroundcontrol org mavlink start mavlink协议介绍 https pixhawk ethz ch mavlink 消息简介 MAVLink简介 Mavlink协议最早由 苏黎世联邦理工学院 计算
  • List、Stack、Queue、Set和Map定义和常用方法

    集合 Java容器类库中的两种主要类型 1 每个槽只保存一个元素 Collection xff1a 描述所有序列容器的共性的根接口 xff1b List xff1a 以特定的顺序保存一组元素 xff1b Set xff1a 元素不能重复 x
  • MDK移植freeRTOS及多任务创建

    MDK移植freeRTOS及多任务创建 一 移植前准备二 freeRTOS移植三 创建任务 本文所使用的硬件为野火的指南者开发板 xff0c 购买后 xff0c 商家会提供已经移植好freeRTOS的工程可以直接使用进行开发 但如果没有现成
  • ubuntu如何进入修复模式,单用户模式,在进入系统前调出root用户的终端进行修复

    在进入Ubuntu界面前选择 Advanced options for Ubuntu 这一项进入 进入后在当前界面选择 recovery mode 这一项进入 进入后在当前界面选择 root 这一项进入 此时会在底部出现这样的画面 xff0
  • Semaphore的注意点

    seamphore大家玩的都比较多 xff0c 使用起来也很简单 xff0c 获取令牌和释放 xff0c 但是其中坑却不少 xff0c 而且会让人很难发现 xff0c 希望能通俗易懂的小例子讲明白其中的几个道理 一 线程都被阻塞了 xff1
  • tinymix的命令格式

    come from https blog csdn net jinchengzhou article details 82796888 最近在调试安卓系统的alsa驱动 xff0c 一开始搞不清楚tinymix要怎么用 xff0c 今天终于
  • Ubuntu Core 20新系统介绍

    Ubuntu Core 20是一个轻量 xff0c 容器化 xff0c 基于Ubuntu 20 04 LTS且为物联网设备和嵌入式系统所打造的版本 xff0c 现在已经普遍可用 新版本内建的安全更新严格限制策略使创新者能够开发高安全的产品和
  • python库Argparse中的可选参数设置 action=‘store_true‘ 的用法

    store true 是指带触发action时为真 xff0c 不触发则为假 通俗讲是指运行程序是否带参数 看例子就明白了 一 没有default import argparse parser 61 argparse ArgumentPar
  • 小熊派鸿蒙开发板环境搭建过程(HarmonyOS BearPi-HM Nano)

    小熊派鸿蒙开发板环境搭建过程 实验环境 xff1a 小熊派开发板 xff0c 基于Hi3861V100海思芯片Win10系统Oracle VM VirtualBox虚拟机Ubuntu系统安装包官方提供环境教程 xff08 基本按照这个步骤来
  • ubuntu安装新版本的clang-format 9

    ubuntu安装新版本的clang format 默认可能是clang format 6 0 旧版本的某些配置比如AlignConsecutiveMacros不支持 sudo apt get update sudo apt get inst
  • Android 视频 YUV i420格式转换为位图Bitmap

    Android 视频 YUV i420格式转换为位图Bitmap YUV基础描述 YUV YCbCr xff0c 图像除了RGB xff0c 还有YUV 定义 xff1a 是电视系统所采用的一种颜色编码方法 Y 标识明亮度 xff0c 也就
  • 谷粒学院——第二章、项目搭建

    一 创建父工程 1 创建sprigboot工程guli parent 在idea开发工具中 xff0c 使用 Spring Initializr 快速初始化一个 Spring Boot 模块 xff0c 版本使用 xff1a 2 2 1 R
  • 欧美网站风格特点

    评论一 xff1a 1 简洁 xff0c 平淡 xff0c 严谨 xff08 不习惯艳丽 xff0c 花销的色彩 xff09 2 倾向于将首页做成各类功能 板块的引导界面 xff0c 首页不会放置太多的内容 xff0c 即使有内容表现 xf
  • 2012年展望

    由于各种原因 xff0c 客观的 主观的 不过归根结底还是主观的多一些 xff0c 2011年整体过的很颓废 xff0c 上班大多在上网 xff0c 工作上几乎没有一点成绩 xff0c 自己也是很不满意 2012年世界末日都快来了 xff0
  • Ubuntu允许root远程登陆方法

    Ubuntu中允许root用户远程登录 编辑配置文件 xff1a sudo vim etc ssh sshd config 将PermitRootLogin prohibit password更改为 xff1a PermitRootLogi
  • 航模的遥控与电调

    遥控接收机解码出遥控器的信号 xff0c 有多少路的解多少路 xff0c 解出来的其实就是pwm的脉冲信号 xff0c T 61 20ms 脉宽是1 2ms xff0c 脉宽1ms时表示最小值 xff0c 脉宽2m时表示最大值 xff08
  • Flash某些错误解决

    运行是提示VerifyError 1014 无法找到类 修改文件后 xff0c 加载的总是旧文件 xff1f 清理IE缓存试试
  • Shell编程入门学习

    文章目录 Shell编程Shell脚本的执行方式Shell的变量Shell的变量的介绍shell变量的定义 设置环境变量位置参数变量介绍基本语法 预定义变量基本介绍基本语法 运算符基本语法 条件判断判断语句常用判断条件 流程控制if 判断c

随机推荐

  • module.exports与exports,export与export default之间的关系和区别

    module exports与exports xff0c export与export default之间的区别及使用 这里我就以最简单的方法 xff0c 举例说明 CommonJS xff1a 使用module exports与export
  • Recipe terminated with error. Retry building the project.

    Recipe terminated with error Retry building the project 在vscode中运行latex中出现此错误时 xff0c 但之前又输入正常 首先检查文件是否保存在有中文路径中 试着将文件更换一
  • 在命令窗口如何退出命令窗口的文本输入回到命令行

    退出文本编辑或运行的程序 第一种情况 进入命令窗口下的文本输入 xff0c 或正在执行的代码 情况如图1所示 xff1a 图1 在这种情况下则按Ctrl 43 C则可退出 xff01 xff01 第二种情况 使用vi命令进入文本编辑器时退出
  • Latex/Markdown中将字母上下方插入字母数字

    Latex Markdown中将字母上下方插入字母数字 演示在typora软件里面插入Latex公式 通常在字母前面加入 mathop将 中的字母数字当作数学符号使用 xff1b 都加 mathop xff1a 1 xff1a 不加 lim
  • Python实例5:身体质量指数BMI问题分析

    Python实例5 xff1a 身体质量指数BMI问题分析 问题需求 xff1a 1 xff09 输入 xff1a 给定体重和身高值 xff1b 2 xff09 输出 xff1a BMI指标分类信息 xff08 国际和国内 xff09 xf
  • Python实例7:七段数码管绘制

    Python实例7 xff1a 七段数码管绘制 基本思路 xff1a 绘制单个数字对应的数码管 xff1b 获得一串数字 xff0c 绘制对应的数码管 xff1b 获取当前系统时间 xff0c 绘制对应的数码管 xff1b 步骤 xff1a
  • Python实例13:体育竞技分析

    Python实例13 xff1a 体育竞技分析 8 1 1 问题分析 需求 xff1a 毫厘是多少 xff1f 如何科学分析体育竞技比赛 xff1f 输入 xff1a 球员的水平 xff1b 输出 xff1a 可预测的比赛成绩 xff1b
  • 解决anaconda虚拟环境连接不上jupyter的kernel的方法(无法连接服务)

    jupyter日志 xff1a ImportError cannot import name AsyncGenerator 问题 xff1a 在anaconda中创建conda虚拟环境后安装ipykernel xff0c 在jupyter中
  • Tensorflow代码学习-8-3下载google图像识别网络inception-v3并查看结构

    下载google图像识别网络inception v3并查看结构 课程 xff1a 炼数成金GITHUBCSDN知乎欢迎点亮star span class token keyword import span tensorflow span c
  • Tensorflow代码学习-10-3验证码识别

    验证码识别 课程 xff1a 炼数成金GITHUBCSDN知乎欢迎点亮star span class token comment coding utf 8 span span class token keyword import span
  • 腾讯云ubuntu远程桌面

    1 首先要连接上你的服务器 xff0c 然后安装vncserver xff0c 这个是用来远程连接用的 命令如下 apt get install vnc4server 2 安装图形界面 apt get install xfce4如果安装不上
  • 如何快速上手期刊、会议论文latex的小技巧

    来自学习经验 xff0c 如有更好可评论告知 xff01 适用于各种期刊 会议的小技巧 xff01 xff01 可节省非常多时间 xff01 xff01 知乎专栏 简单描述如下 xff1a 1 找一篇与要投的期刊一篇论文 2 去arxiv网
  • 解决 树莓派自带的VNC版本不能进行文件传输

    在树莓派4B上使用的VNCSERVER是可以进行文件传输的 xff0c 就想应该是树莓派3B 43 上的操作系统自带的VNC版本太旧 xff0c 因此就想直接用命令sudo apt upgrade tightvncserver更新 xff0
  • Git submodule - Git子模块简介

    目录 建立仓库 1 1 创建主仓库 1 2 创建子仓库提交内容 2 1 提交到主工程的仓库 2 2 提交到子模块的仓库克隆带子模块的仓库到本地更新子仓库总结参考文档 正文 软件开发中有一个DRY Don t Repeat yourself
  • IR2101驱动

    下面是datasheet上的内部框图及应用电路 xff1a 由内部框图及输入输出时序图可知 xff1a HIN输入高则HO输出高 xff0c 输入低则输出低 低端也一样 由典型应用电路图分析 xff1a 当HIN LIN同时输入高 xff0
  • Cannot convert a symbolic Tensor to a numpy array错误的解决

    最近写代码的时候发生了一件奇怪的错误 NotImplementedError Cannot convert a symbolic Tensor bert encoder layer 0 attention self strided slic
  • ubuntu进入tty1、tty2等界面的操作

    想要进入tty1或者tty2 xff0c 需要ctrl 43 alt 43 f1 xff0c 注意如果是笔记本电脑 xff0c 需要输入ctrl 43 alt 43 fn 43 f1 xff0c 注意如果tty1界面进入不了的时候 xff0
  • 移植Mavlink协议到STM32F103详细教程

    环境配置 win10系统 43 STM32F103ZET6 步骤 参考MAVLINK官网 1 安装python3 6以上的版本 xff0c 我安装的是python3 8 Python3 8下载地址 详细安装步骤可参考 xff1a pytho
  • pid调试

    1 PID调试步骤 没有一种控制算法比PID 调节规律更有效 更方便的了 现在一些时髦点 的调节器基本源自PID 甚至可以这样说 xff1a PID 调节器是其它控制调节算法的吗 为什么PID应用如此广泛 又长久不衰 xff1f 因为PID
  • MAVLINK协议理解

    mavlink协议的载体是一下格式 xff1a 这是载体格式 这是载体的具体格式说明 mavlink的结构 主要有3部分 mavlink messages 比如 0 心跳包 这个message 就是各种数据帧里的数据 xff0c 例如 xf