MAVLink协议通信分析——(三)消息解析

2023-05-16

第三章   消息解析

分析过消息包的结构后,继续向消息包的内部探索,开始分析负载信息PAYLOAD。

在消息库中,每条消息都作为一个类存在(Java版本),类中的注释文本详细地注明了每个成员变量代表的含义。这些成员变量不仅包括STX、SEQ这些包的描述信息,还包括封装入PAYLOAD的各个参数。在消息类中,还包含了pack() 打包方法和 unpack() 解包方法,为地面站和飞行控制软件的开发、应用提供了接口。

负载信息PAYLOAD内,大部分数据以Byte类型存储,同时也存在float型、short型等类型。需要注意的是,在Java中byte类型有符号位,能够覆盖-128—127范围,而C中byte为无符号位,覆盖范围为0—255。这一类差异在MavLink提供的方法中已经得到了妥善处理,使用MavLink协议提供的方法封装信息时无需担心,但如果是自己写封包解包方法,需要注意解析后读取参数值的类型转换问题。

负载信息的长度和格式并不统一,这是由于不同类型的消息包所需要传递的参数不一致而形成的。通过自己编写的“伪飞控”向地面站发送消息并接收,可以从Mission Planner地面站获取一系列消息包。查询各消息包内PAYLOAD含义,翻译后得到如下文本。

msg_request_data_stream:该消息的作用在上一章里已讲,现在读取其负载信息。

……

消息ID

两次该类型消息的

接收间隔(Short)

目标

系统

目标

组件

请求数据流

ID

开始/停止

标识

校验和

A  B

……

66

1000

1

1

11

1

255 104

req_message_rate:该类型消息请求间隔,用于控制飞控板向地面站发送指定类型消息的频率。

target_system,target_component:目标系统ID,笔者使用的Pixhawk飞控板这两项参数为1,1。

req_stream_id:请求数据流ID。非常重要的属性!该参数将直接影响飞控板返回数据流内信息包的类型,数据流ID为11时可以周期性收到VFR_HUD消息包和GLOBAL_POSITION_INT消息包,分别储存了平视显示器所需数据和GPS信息。

start_stop:数据流开始发送或停止发送标识。设为1则代表开始发送该数据流。

 

其他消息包内容由控制台打印,挑选部分展示。

 

MAVLINK_MSG_ID_ATTITUDE -time_boot_ms:16777195 roll:0.021675825 pitch:0.012977336 yaw:1.3565465rollspeed:-8.172542E-5 pitchspeed:-3.5201595E-4 yawspeed:3.577727E-4

Attitude状态报告,包括滚转角、偏航角、俯仰角(及其速度)等信息。

 

MAVLINK_MSG_ID_VFR_HUD -airspeed:0.0 groundspeed:0.0 alt:-0.07 climb:0.02 heading:77 throttle:0

共有 64 字节

平视显示器数据 Head Up Display

 

地面站接收到数据:

MAVLINK_MSG_ID_GLOBAL_POSITION_INT -time_boot_ms:16777215 lat:0 lon:0 alt:0 relative_alt:-70 vx:0 vy:0 vz:0hdg:7772

共有 36 字节

GPS定位信息

 

 

地面站接收到数据:

MAVLINK_MSG_ID_SYS_STATUS -onboard_control_sensors_present:16776207onboard_control_sensors_enabled:16751631onboard_control_sensors_health:16776207 load:130 voltage_battery:0current_battery:-1 drop_rate_comm:0 errors_comm:0 errors_count1:0errors_count2:0 errors_count3:0 errors_count4:0 battery_remaining:-1

常规系统状态信息

onboard_control_sensors_present:以位掩码表示控制器及传感器的存在状态,16776207(十进制)= 111111111111110000001111(二进制)

onboard_control_sensors_enabled:以位掩码表示控制器及传感器的启用状态,16751631(十进制)= 111111111001110000001111(二进制)

onboard_control_sensors_health:以位掩码表示控制器及传感器处于可用状态还是存在错误。转换为二进制同上。

以上掩码信息中,第一位表示gyro陀螺仪,第二位表示accelerometer加速度计,第六位表示GPS……详情见MAV_SYS_STATUS文件。

Load Maximum usage in percent of the mainloop time,主循环内时间的最大使用比例,1000表示100%,该值应保持小于1000

voltage_battery:电池电压,单位毫伏特。

current_battery:当前电池(电流),单位毫安。-1表示飞控未测量。

drop_rate_comm:通信丢失百分比,1000表示100%

errors_comm:通信错误 (UART, I2C, SPI, CAN),丢包。

Errors_countX:Autopilot-specific errors,飞控特定错误,未知含义。

battery_remaining:剩余电量,1表示1%-1autopilot estimate the remainingbattery,飞控估计电量。

 

 

MAVLINK_MSG_ID_POWER_STATUS -Vcc:4962 Vservo:21 flags:4

Vcc5V rail voltage in millivolts5V轨道电压,单位为毫伏。

Vservoservo rail voltage in millivolts,伺服(电机?)轨道电压,单位为毫伏。

Flagspower supply status flags,供电状态标识,4表示MAV_POWER_STATUS_USB_CONNECTEDUSB供电。详见MAV_POWER_STATUS

 

MAVLINK_MSG_ID_MEMINFO - brkval:0freemem:52240

位于Ardupilotmega包内,记录内存信息

Brkvalheap top,堆顶

Freemem:空闲内存大小,单位为字节。

 

MAVLINK_MSG_ID_MISSION_CURRENT -seq:0

声明当前活动任务项的序列号

 

MAVLINK_MSG_ID_GPS_RAW_INT -time_usec:0 lat:0 lon:0 alt:0 eph:0 epv:65535 vel:0 cog:0 fix_type:0satellites_visible:0

The global position, as returned by the Global PositioningSystem (GPS). This is NOT the global position estimate of the system, butrather a RAW sensor value. See message GLOBAL_POSITION for the global positionestimate. Coordinate frame is right-handed, Z-axis up (GPS frame)

全球定位,并非系统估计位置,而是RAW传感器值。(Raw Sensor 原始传感器?)——右手坐标系,Z轴向上。

time_usec:时间戳,单位为microseconds微秒。

LatLatitude (WGS84), in degrees * 1E7,纬度,单位为度数*107次方。

LonLongitude (WGS84), in degrees * 1E7,经度,单位为度数*107次方。

altAltitude (AMSL, NOT WGS84), in meters * 1000 (positive for up).Note that virtually all GPS modules provide the AMSL altitude     in addition to the WGS84 altitude.高度,单位为km,向上为正。注意所有GPS模块除了WGS84高度以外,均提供AMSL(平均海平面以上)高  度。

EphGPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: UINT16_MAXGPS水平精度因子,单位为厘米。

Epv GPS VDOP vertical dilution of position in cm (m*100). Ifunknown, set to: UINT16_MAXGPS垂直精度因子,单位为厘米。

Vel GPS ground speed (m/s * 100). If unknown, set to: UINT16_MAX,全球定位系统地速度,单位为百米每秒。

CogCourse over ground (NOT heading, but direction of movement) indegrees * 100, 0.0..359.99 degrees. If unknown, set to: UINT16_MAX

 实际航迹向,单位为百分之一度。

fix_type0-1: no fix, 2: 2D fix, 3: 3D fix, 4: DGPS, 5: RTK.GPS修正类型。

satellites_visible:卫星可见数,未知则填写255

 

MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT- nav_roll:0.0 nav_pitch:0.0 alt_error:0.14554046 aspd_error:0.0xtrack_error:0.0 nav_bearing:77 target_bearing:0 wp_dist:0

Outputs of the APM navigation controller. The primary use ofthis message is to check the response and signs of the controller before actualflight and to assist with tuning controller parameters.

APM导航控制器的输出,该信息主要功能为检查实飞前控制器的回复和信号,辅助调整控制参数。

nav_roll:当前所需的滚转角

……

alt_error:高度误差

aspd_error当前空速误差 m/s

xtrack_erroCurrent crosstrack error on x-y plane in meters.当前x-y平面横向轨迹误差  单位m

nav_bearingCurrent desired heading in degrees.前任务/目标方位单位

target_bearingBearing to current MISSION/target in degrees.当前任务/目标方位单位

wp_distDistance to active MISSION in meters就,至当前任务点的距离,单位为m

共有 147 字节

 

地面站接收到数据:

MAVLINK_MSG_ID_RAW_IMU -time_usec:4287561674 xacc:11 yacc:-9 zacc:-995 xgyro:0 ygyro:0 zgyro:0 xmag:25ymag:-133 zmag:325

The RAW IMU readings for the usual 9DOF sensor setup. Thismessage should always contain the true raw values without any scaling to allowdata capture and system debugging.

RAW IMU惯性测量单元此消息始终只包含原始信息

time_usec:时间戳

XaccX acceleration (raw) X轴向加速度

YaccY acceleration (raw) Y轴向加速度

ZaccZ acceleration (raw) Z轴向加速度

Xgyro Angular speed around X axis (raw) X轴旋转角速度

Ygyro Angular speed around Y axis (raw) Y轴旋转角速度

Zgyro Angular speed around Z axis (raw) Z轴旋转角速度

XmagX Magnetic field (raw) X磁场

YmagY Magnetic field (raw) Y磁场

ZmagZ Magnetic field (raw) Z磁场

 

MAVLINK_MSG_ID_SCALED_IMU2 -time_boot_ms:16777099 xacc:21 yacc:-6 zacc:-986 xgyro:-2 ygyro:3 zgyro:-6xmag:0 ymag:0 zmag:0

The RAW IMU readings for secondary 9DOF sensor setup. Thismessage should contain the scaled values to the described units

各项参数含义同上

 

MAVLINK_MSG_ID_SCALED_PRESSURE -time_boot_ms:16777099 press_abs:959.9057 press_diff:-0.0509375 temperature:3720

The pressure readings for the typical setup of one absolute anddifferential pressure sensor. The units are as specified in each field.绝对压强和压差传感器的读数。

time_boot_ms:时间戳

press_absAbsolute pressure (hectopascal),绝对压强,单位百帕斯卡

press_diffDifferential pressure 1 (hectopascal),压差,单位百帕斯卡

temperatureTemperature measurement (0.01 degrees celsius) 温度,单位为0.01摄氏温度

 

MAVLINK_MSG_ID_SERVO_OUTPUT_RAW -time_usec:4287561666 servo1_raw:1016 servo2_raw:1016 servo3_raw:1016servo4_raw:1016 servo5_raw:0 servo6_raw:0 servo7_raw:0 servo8_raw:0 port:0

The RAW values of the servo outputs (for RC input from theremote, use the RC_CHANNELS messages). The standard PPM modulation is asfollows: 1000 microseconds: 0%, 2000 microseconds: 100%. 伺服系统输出原始值,(远程RC输入使用RC_CHANNELS消息)标准PPM调制如下:1000微秒:0%2000微秒100%

time_usec:时间戳

servo1_rawServo output 1 value, in microseconds,伺服输出1的值,单位微秒。

……

PortServo output port (set of 8 outputs = 1 port). MostMAVs will just use one, but this allows to encode more than 8 servos.

      伺服输出端口,多数MAV只使用一个端口,最多可支持8伺服的编码。

 

MAVLINK_MSG_ID_RC_CHANNELS_RAW -time_boot_ms:16777099 chan1_raw:0 chan2_raw:0 chan3_raw:0 chan4_raw:0chan5_raw:0 chan6_raw:0 chan7_raw:0 chan8_raw:0 port:0 rssi:0

The RAW values of the RC channels received. The standard PPMmodulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%.Individual receivers/transmitters might violate this specification. RC通道接收的原始值,标准PPM调制如下:1000微秒:0%2000微秒100%。不同接收器或转换器可能违反该规范。

time_usec:时间戳

chan1_raw:0 RC channel 1 value, in microseconds. A value ofUINT16_MAX implies the channel is unused.遥控通道1,单位为微秒。设为无符号位16位整数最大值表示该通道未使用。

……

port:0 Servo output port (set of 8 outputs = 1 port). Most MAVswill just use one, but this allows for more than 8 servos.

rssi:0 Receive signal strength indicator, 0: 0%, 100: 100%, 255:invalid/unknown.接收信号强度指示器,最小为0,最大为100

 

MAVLINK_MSG_ID_AHRS -omegaIx:-3.326245E-5 omegaIy:-1.11720045E-4 omegaIz:-3.0743552E-4accel_weight:0.0 renorm_val:0.0 error_rp:0.0013528633 error_yaw:0.0010219128

Status of DCM attitude estimator

omegaIx: X gyro drift estimate rad/s  X轴方向陀螺仪漂移量

omegaIy: Y gyro drift estimate rad/s

omegaIz: Z gyro drift estimate rad/s

accel_weight: average accel_weight.  平均加速权重(?)

renorm_val: average renormalisation value   平均重正化值(?)

error_rp: average error_roll_pitch value 

error_yaw: average error_yaw value  

 

MAVLINK_MSG_ID_HWSTATUS - Vcc:4962I2Cerr:0

Status of key hardware  关键硬件状态

Vccboard voltage (mV)  飞控电压  毫伏

I2CerrI2C error count I2C错误计数

 

MAVLINK_MSG_ID_SYSTEM_TIME -time_unix_usec:0 time_boot_ms:16777100

The system time is the time of the master clock, typically thecomputer clock of the main onboard computer.

系统时间

time_unix_usecTimestamp of the master clock in microseconds sinceUNIX epoch. 主时钟UNIX时间戳,1970-1-1

time_boot_msTimestamp of the component clock since boot time inmilliseconds. 自启动开始计时,时钟组件时间戳单位毫秒

 

共有 212 字节

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

MAVLink协议通信分析——(三)消息解析 的相关文章

  • Linux 通过 SSH 挂载远程文件夹

    前言 在两台Linux电脑之间 xff0c 我们可以通过ssh方便的登录另一台电脑并访问它的文件或者文件夹 但这都是我们用户在进行操作 想要在一台电脑上运行程序 xff0c 处理放在另一台电脑上的文件时 xff0c 我们应该如何设置呢 xf
  • ROS节点的初始化及退出详解(ros::init、SIGINT、ros::ok、ros::NodeHandle)

    希望大家收藏 xff1a 本文更新地址 xff1a https haoqchen site 2018 04 28 ROS node init 左侧专栏还在更新其他ROS实用技巧哦 xff0c 关注一波 xff1f 很多ROS新手编写节点的时
  • Ubuntu 终端前多了个 base

    Ubuntu 终端前多了个 base xff0c 想将base去掉 xff0c 如何操作 xff1f 原文 xff1a https blog csdn net qq 35544714 article details 109270602 装完
  • GNU __attribute__浅析

    GNU attribute 浅析 1 介绍 attribute 是GCC的特性 xff0c 其实是个编译器指令 xff0c 告诉编译器声明的特性 xff0c 或者让编译器进行更多的错误检查和高级优化 attribute 可以设置函数属性 x
  • FreeRTOS学习(一)

    1 FreeRTOS任务基础 1 1 多任务系统 在51单片机 AVR STM32裸机编程时 xff0c 我们通常都是用一个main函数里面加一个while 1 做一个大循环来完成所有的事务处理 xff0c 同时在加上中断处理一些较为紧急的
  • FreeRTOS学习(四)

    4 FreeRTOS信号量 4 1 信号量简介 信号量主要是用于对共享资源的访问和任务同步 具体的使用例子就不进行展开 4 2 二值信号量 4 2 1 二值信号量简介 二值信号量通常用于互斥访问或同步 xff0c 二值信号量与互斥信号量非常
  • FreeRTOS学习(七)

    7 系统裁剪 7 1 简介 FreeRTOS中的系统裁剪和配置其实是通过条件编译的方法来实现的 xff0c 不止FreeRTOS这么干 xff0c 很多的协议栈 RTOS系统和GUI库都是使用条件编译的方法来完成配置和裁剪的 在第二章使用静
  • 【APM】第一个应用程序

    第一个应用程序 此部分对应教程原文 http ardupilot org dev docs learning ardupilot the example sketches html HelloWorld 代码编写及编译 学习任何一种平台都从
  • 无人机定高算法

    高度控制 高于目标值时应该减速 xff0c 要输出负值 xff0c 所以高度差 61 目标高度 当前高度 速度控制 xff1a 向上时 速度为正 应该减速 xff0c 要输出负值 xff0c 所以速度差 61 高度差的速度 当前速度 如果只
  • Git -- 子模块

    子模块 如果想直接上手操作 xff0c 可以只看 适用场景 定义 快速使用 小节 否则看这篇文章或者 原文 都可以 文章目录 子模块适用场景定义快速使用添加子模块同步本地到远程克隆带有子模块的仓库分支操作同步远程到本地 相关命令信息补充遇到
  • 神经网络的参数为什么需要它的值很小,且变化范围小

    Tips xff1a 只不过是本人的感觉 xff0c 未经过试验验证 xff0c 同样也没有任何依据 值小的话在计算上基本不会出现上溢出由于目前在深度学习中数据都是用多维表示 xff0c 比如词向量的维度就有128 256维或者更高 xff
  • java:N的N次方

    题目描述 现给你一个正整数N xff0c 请问N N的最左边的数字是什么 xff1f 输入格式 输入包含多组测试数据 每组输入一个正整数N xff08 N lt 61 1000000 xff09 输出 对于每组输入 xff0c 输出N N的
  • ACM:入口的选择------深度优先搜索

    入口的选择 Time Limit 1000MS Memory Limit 32768K Description Zeism玩的赛车游戏中 xff0c 有一种树形的赛道 树根表示赛道的终点 xff0c 任何一个叶子结点表示一个赛道的入口 xf
  • 在服务端没接显示器的情况下,nomachine远程连接客户端看到的是黑屏的问题

    这里遇到一个问题 xff0c 在服务端没接显示器的情况下 xff0c nomachine远程连接客户端看到的是黑屏 xff08 我这里服务器是ubuntu18 04 xff09 参考链接 xff1a https blog csdn net
  • ACM:n!的位数 :斯特林公式

    n 的位数 Time Limit 2000MS Memory Limit 65536K Description 针对每个非负整数n xff0c 计算其n 的位数 Input 输入数据中含有一些整数n xff08 0 n xff1c 10 7
  • java 自定义封装jdbc dao类

    手动封装jdbc和dao层 xff0c 体会其中的优点与不足 注 xff1a 本次采用的mysql数据库记得添加数据库的驱动包 Dbhelper类 xff1a 对jdbc进行封装 xff0c 采用单例模式 xff0c 不用每次都去连接数据库
  • Mybatis 二级缓存

    mybatis的缓存分为一级缓存和二级缓存 xff0c 缓存是用来缓存部分经常性访问的数据 xff0c 而不必每一次都跑到数据库获取或运算 xff0c 目标是提高系统的性能 一级缓存 对于每一个sqlSession 其中有一个HashMap
  • win10系统下CUDA示例项目编译出错MSB3721解决

    在win10系统下安装好cuda9 1后 xff0c 在VS2017中打开cuda corporation中的项目 xff0c 编译发现一直报错MSB3721 xff0c 无法导入windows h文件 xff0c 错误提示如下 xff1a
  • Wi-Fi放大器、中继、桥接和mesh组网的理解

    前言 针对路由器其实有很多的知识可以去学习 xff0c 包括路由器的路由功能 Wi Fi放大功能 中继 桥接和近几年才流行的mesh组网功能 xff0c 下面我将针对这几个功能说说我自己的通过相关资料的学习形成自己的一些理解 xff0c 强
  • MAC下虚拟机PD转换成win上可以用的vmware

    最近是需要mac机子转windows xff0c 然后之前在mac上面安装的虚拟机Ubuntu需要移到window上面使用 xff0c mac上面是使用Parallel Desktop安装的虚拟机 xff0c 在windows上面使用的是V

随机推荐

  • Openresty之实现http访问请求

    如果是第一次看这个文章 xff0c 可以先看下这篇openresty介绍性的文章 xff1a Openresty概述介绍 在openresty里面可能有访问其他服务的需求 xff0c 我们当时是需要定时去另外一个服务拉取一些配置信息 xff
  • 服务器系统缓存问题总结

    做后端的同学都知道缓存 xff0c 而且越是大的访问量的后端服务 xff0c 缓存的作用越是重要 最近看了些大佬的解说 xff0c 觉得说的很好 xff0c 在此将我理解的记录下来 xff0c 下面总结下后端缓存的一些知识点 顾名思义 xf
  • fwknop的安装和使用测试

    SPA名为单包授权 xff0c 是一种认证方法 xff0c 它是一种端口敲门的方法 xff0c 是之前早起端口敲门的升级版本 目的是为了隐藏服务端口 xff0c 防止DOS等其他网络攻击 xff0c 保证服务端的安全 SPA的具体定义这里不
  • win7连接共享“请检查名称的拼写.否则网络可能有问题”

    我他妈也是这个问题 xff0c 折腾了我好多天 xff0c 我的win7电脑突然就不能连接FTP的服务器 xff0c 然后我虚拟机的samba共享也连接不上 xff0c 终于找到解决办法 xff0c 别人的电脑没事 xff0c 就我的电脑有
  • Intel RealSense D435i + BundleFusion 实现实时三维建图

    内容概览 摘要操作环境RealSense D435i 介绍BundleFusion工程环境配置安装 RealSense SDKRealSense SDK 本地环境配置BundleFusion 工程属性表相机类型设置修改 GlobalAppS
  • CrazePony与计算机视觉

    大家好 我是CrazePony的视觉攻城狮 Ziv Lin 我擅长的部分是计算机视觉和嵌入式编程 非常荣幸地能够加入CrazePony团队 众所周知 一个飞行器想要做到悬停的话 xff0c 必须引入一个位置环进行反馈 xff0c 也就是说需
  • Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿

    来这里找解决方案的童鞋 xff0c 如果你的机器还没过保 果断去找官修 xff0c 忽略这篇文章 xff01 心急的童鞋直接看目录 xff0c 有传送门 xff01 但是仔细看文章可能有奇效 xff01 最近博客更新进度严重滞后 因为我遭遇
  • linux环境打包python工程为可执行程序

    本次又个需求 xff0c 在ubuntu上面开发的python代码程序需要打包成一个可执行程序然后交付给甲方 xff0c 因为不能直接给源码给甲方 xff0c 所以寻找方法将python开发的源码打包成一个可执行程序 xff0c 注意是打包
  • windows下python调用海康威视网络摄像头sdk

    本文参考以下博文加自己的实践 xff0c 发现有些步骤是不必要的 xff0c 例如不需要为opencv等第三方库指定路径 运行环境 xff1a 准备工作 1 海康SDK下载 2 下载安装vcpkg 3 安装Swig 4 下载OpenCV s
  • Apollo代码学习(七)—MPC与LQR比较

    Apollo代码学习 MPC与LQR比较 前言研究对象状态方程工作时域目标函数求解方法 前言 Apollo中用到了PID MPC和LQR三种控制器 xff0c 其中 xff0c MPC和LQR控制器在状态方程的形式 状态变量的形式 目标函数
  • 27 | Ubuntu18.04.5 安装python3.7及卸载

    目录 1 前期准备1 1安装所需依赖 重要 1 2 配置Python版本切换1 2 1 查看候选列表中已有的Python版本1 2 2 添加 python amp python3 指向选择1 2 3 查看候选列表中已有的Python版本1
  • opencv库作为第三方库

    在编译一个依赖opencv库的库时 xff0c 报出以下错误 xff1a undefined reference to symbol ZN2cv6imreadERKNS 6StringEi libopencv core so 2 4 err
  • 银河麒麟V10系统NetworkManager服务启动失败的解决方法

    目录 一 NetworkManger网络服务启动失败 二 故障定位过程 xff08 一 xff09 重装NetworkManager未解决 xff08 二 xff09 重装openssl未解决 三 解决方案 xff08 一 xff09 修改
  • argparse模块

    1模块简介2Example3argparse三个主要函数 parser argparseArgumentParserparseradd argumentargs parserparse args 4ArgumentParser对象 对象参数
  • 【Docker】非root用户加入docker用户组省去sudo (三)

    你问我爱你有多深 xff0c 这坑后面还有坑 为什么需要创建docker用户组 xff1f Docker守候进程绑定的是一个unix socket xff0c 而不是TCP端口 这个套接字默认的属主是root xff0c 其他是用户可以使用
  • 带你玩转Jetson Xavier NX系列教程 | Xavier NX刷机教程

    写在最前 xff1a xff08 转载请注明文章出处 xff09 NVIDIA AGX Jetson Xavier NX 开发人员套件终于拿到手了 xff0c Nx的性能虽然被砍了不少 xff0c 但是完全碾压了Nano和TX2 xff0c
  • 使用Intel RealSense D435i自制离线数据集跑通BundleFusion

    内容概览 摘要操作环境大致流程录制数据集格式转换解析 bag文件时间戳对齐制作源格式封装为 sens格式 离线三维重建修改 zParametersDefault txt修改 zParametersBundlingDefault txt重建效
  • 互斥量、临界区、信号量、事件标志组和消息邮箱

    为了好的理解互斥量 临界区 信号量 事件标志组和消息邮箱 xff0c 下面一些知识对初学者来说很重要 xff1a 为了实现各任务之间的合作和无冲突的运行 xff0c 在有关联的任务之间必须建立一些制约关系 这些制约关系主要有两种 xff1a
  • MAVLink协议通信分析——(二)消息结构

    消息结构 一 消息包结构 消息包结构定义了消息包在发送 接收 初次解析中所需信息的存储规则 在MavLink 1 0版本中 xff0c 消息包结构如下图表所示 首部由STX段引导 xff0c 具体含义可在表中查询 xff0c 其中校验位标记
  • MAVLink协议通信分析——(三)消息解析

    第三章 消息解析 分析过消息包的结构后 xff0c 继续向消息包的内部探索 xff0c 开始分析负载信息PAYLOAD 在消息库中 xff0c 每条消息都作为一个类存在 xff08 Java版本 xff09 xff0c 类中的注释文本详细地