type
date
slug
category
icon
password
姿态控制(包含定深模式)控制油门、高度、爬升率等信息默认存储在日志文件中,通过分析日志文件,我们可以还原出姿态控制过程,分析控制效果,排查控制异常原因。
日志记录源码
分析 【ArduSub/Log.cpp 】源码可知,程序在
log_Control_Tuning
结构体中定义了日志需记录的字段,写日志接口Log_Write_Control_Tuning
实例化 为struct log_Control_Tuning pkt
,并将每个字段赋值,调用写日志接口存储进入日志文件中。- 油门控制输入(
throttle_in
)和输出 (throttle_out
);
- 期望深度
desired_alt
通过pos_control
对象提供的get_pos_target_z_cm()
接口获取,并除以100,单位转换为m。结合定深模式源码分析 中深度控制逻辑中,调用了pos_control
对象提供的set_pos_target_z_cm
和set_pos_target_z_from_climb_rate_cm
接口,而日志获取的期望深度就是获取深度控制中设置的值;
- 气压计高度
BarAlt
直接从压力深度传感器获取;
- 对于装载测距仪机器,
desired_rangefinder_alt
和rangefinder_alt
为测距仪期望高度和采集的实际高度;
- 期望爬升率
target_climb_rate
通过get_vel_target_z_cms()
获取,又油门控制输入指定。
导出日志分析
日志文件中的记录格式由
LOG_PACKET_HEADER_INIT(LOG_CONTROL_TUNING_MSG)
指定。通过查看日志文件中 CTUN(Control Tuning
)包,结合文件中LoggerMessage
字段说明,记录字段含义如下:序号 | 缩写 | 全称 | 中文 | 单位 |
1 | ThI | Throttle Input | 油门输入 | (0,1000) |
2 | ABst | Angle Boost | 飞行器倾斜时的油门补偿 | (0,1000) |
3 | ThO | Throttle Output | 油门输出 | (0,1000) |
4 | DAlt | Desired Altitude | 期望高度 | 米(m) |
5 | Alt | Achieved Altitude | 真实高度 | 米(m) |
6 | BAlt | Barometric Altitude | 气压计高度 | 米(m) |
7 | DSAlt | Desired Rangefinder Altitude | 声呐期望高度 | 米(m) |
8 | SAlt | Achieved Rangefinder Altitude | 声呐高度 | 米(m) |
9 | TAlt | Terrain Altitude | 地形高度 | 米(m) |
10 | DCRt | Desired Climb Rate | 期望爬升速率 | cm/s |
11 | CRt | Climb Rate | 加速度计和气压计计算的爬升速率 | cm/s |

- Author:felixfixit
- URL:http://www.felixmicrospace.top/article/althold_mode_log
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!