|
|
@@ -988,6 +988,30 @@ comp_id 为 0 时, 飞控将回复多个消息逐个返回所有可获取设备
|
|
|
| accuracy | baseline 精度 mm |
|
|
|
| iar_num_hypotheses | 暂未用 |
|
|
|
|
|
|
+### 2.32 里程计导航数据 ODOMETRY
|
|
|
+
|
|
|
+飞控外接 VINS LIVO 等导航里程计系统, 里程计系统向飞控发送 ODOMETRY数据.
|
|
|
+ODOMETRY 需要至少10hz的更新率, 水平位置 xy 和水平速度 vx xy 应具有较好的质量, 才可用于飞行控制.
|
|
|
+xyz的坐标系需按定义对齐. 坐标定义支持两种, 由 frame_id 指定.
|
|
|
+
|
|
|
+* MAV_FRAME_LOCAL_NED
|
|
|
+ 原点为里程计解算初始化原点, x为北向, y为东向, z为地向.
|
|
|
+* MAV_FRAME_LOCAL_FRD
|
|
|
+ 原点为里程计解算初始化原点, x为飞机平台前向, y为飞机平台右向, z为地向. 注意z与重力平行.
|
|
|
+ (飞控会记录里程计初始化时的飞机机头航向, 用于将xyz转到ned)
|
|
|
+
|
|
|
+| 字段 | 说明 |
|
|
|
+| ------------- | ----------------------------------------------------- |
|
|
|
+| x | x向位移 m |
|
|
|
+| y | y向位移 m |
|
|
|
+| z | z向位移 m |
|
|
|
+| vx | x向速度 m/s |
|
|
|
+| vy | y向速度 m/s |
|
|
|
+| vz | z向速度 m/s |
|
|
|
+| quality | 0表示里程计位置速度可用, 其它表示里程计位置速度不可用 |
|
|
|
+| reset_counter | 里程计初始化计数, 每次里程计重启算法时加1 |
|
|
|
+| frame_id | MAV_FRAME_LOCAL_NED 或 MAV_FRAME_LOCAL_FRD |
|
|
|
+
|
|
|
## 3 参数设置
|
|
|
|
|
|
飞控的参数修改、读取方法参考 [mavlink services parameter](https://mavlink.io/en/services/parameter.html). 使用16字节的 paramid 作为每各参数的唯一表示码.
|
|
|
@@ -1604,14 +1628,57 @@ param1~param5中,
|
|
|
* param1
|
|
|
0停止跟随, 1跟随吊舱目标
|
|
|
|
|
|
-## 6 飞控 LOG 读取
|
|
|
+## 6 飞控数据 LOG 读取
|
|
|
+
|
|
|
+### 6.1 获取日志列表
|
|
|
+地面站向飞控发送 LOG_REQUEST_LIST 消息获取所有日志列表, 飞控回复 LOG_ENTRY 信息. 每个日志文件一条 LOG_ENTRY 信息.
|
|
|
+飞控默认以解锁-上锁存一个数据文件, 最多50个.
|
|
|
|
|
|
* LOG_REQUEST_LIST
|
|
|
+ | 字段 | 说明 |
|
|
|
+ | ---------------- | ----------------- |
|
|
|
+ | start | 0~49 |
|
|
|
+ | end | 0~49 |
|
|
|
+ | target_system | 目标飞控的 sysid |
|
|
|
+ | target_component | 目标飞控的 compid |
|
|
|
+
|
|
|
* LOG_ENTRY
|
|
|
+ | 字段 | 说明 |
|
|
|
+ | ------------ | --------------------- |
|
|
|
+ | time_utc | LOG utc时间 |
|
|
|
+ | id | 0~49 |
|
|
|
+ | size | LOG 字节数 |
|
|
|
+ | num_logs | LOG 文件总数 |
|
|
|
+ | last_log_num | 最后一次记录的 LOG id |
|
|
|
+
|
|
|
+### 6.2 读取数据日志
|
|
|
+
|
|
|
+地面站向飞控发送 LOG_REQUEST_DATA 读取给定 id 的日志数据, 飞控回复 LOG_DATA.
|
|
|
+LOG_REQUEST_DATA 一次读取的 count 如果超过一条 LOG_DATA 能发送的数据量, 飞控将拆分多条 LOG_DATA 进行发送.
|
|
|
+
|
|
|
+地面站若一次读取较多包数据, 应注意检查中间是否错包丢包, 并具有对应错丢包的重读机制以避免丢失数据.
|
|
|
+
|
|
|
* LOG_REQUEST_DATA
|
|
|
+
|
|
|
+ | 字段 | 说明 |
|
|
|
+ | ---------------- | -------------------------- |
|
|
|
+ | ofs | 本次要读取开始位置字节偏移 |
|
|
|
+ | count | 本次要读取的字节数 |
|
|
|
+ | id | 本次要读取的LOG ID |
|
|
|
+ | target_system | 目标飞控的 sysid |
|
|
|
+ | target_component | 目标飞控的 compid |
|
|
|
+
|
|
|
* LOG_DATA
|
|
|
-* LOG_ERASE
|
|
|
-* LOG_REQUEST_END
|
|
|
+
|
|
|
+ | 字段 | 说明 |
|
|
|
+ | ----- | -------------------- |
|
|
|
+ | ofs | 本包数据字偏移 |
|
|
|
+ | id | 本包数据的 LOG ID |
|
|
|
+ | count | 本包数据的有效字节数 |
|
|
|
+ | data | LOG数据内容 |
|
|
|
+
|
|
|
+读取过程中可发送 LOG_REQUEST_END 立刻停止读取, 飞控收到后会停止当前正在进行的LOG数据传输流程.
|
|
|
+可向飞控发送 LOG_ERASE 消息, 擦除飞控内所有的 LOG 数据. 擦除后需要重新上电.
|
|
|
|
|
|
## 7 固件下载
|
|
|
|