3、日志文件导入与界面布局:如何将飞行日志导入地面站,认识回放界面各模块
好,我们正式开始动手操作。前面两章我们把理论基础和工具链捋了一遍,现在该让地面站真正「吃」进一份日志了。
很多新手拿到日志文件,第一反应是双击打开——结果弹出一堆乱码或者干脆没反应。嗯,这很正常。飞行日志不是普通文本,它需要专门的解析器。今天我就带你走一遍完整的导入流程,再把回放界面的每个角落都认清楚。
3.1 日志文件从哪来?先搞清楚格式
在导入之前,你得知道自己手里拿的是什么文件。不同飞控产出的日志格式完全不同,我整理了一张对照表,你一看就明白:
| 飞控品牌 | 日志后缀 | 典型文件名示例 | 地面站支持情况 |
|---|---|---|---|
| Pixhawk / ArduPilot | .bin / .log | 2024-10-15 15-32-08.bin | Mission Planner / QGC 原生支持 |
| PX4 Pro | .ulg | log_1_2024-10-15.ulg | QGC 直接打开,MP 需转换 |
| DJI 系列 | .dat / .txt | DJI_ASSISTANT_EXPORT_001.dat | DJI Assistant 2 导出,第三方工具解析 |
| CUAV / Holybro | .bin / .ulg | 同 Pixhawk 格式 | 兼容 ArduPilot 或 PX4 工具链 |
3.2 导入操作:两种主流地面站实战
我以 Mission Planner 和 QGroundControl 为例,这两个你迟早都会用到。别的地面站操作逻辑大同小异,学会了这两套,剩下的触类旁通。
3.2.1 Mission Planner 导入流程
- 打开软件,确保已连接飞控或处于离线模式。
- 点击顶部菜单栏 「Flight Data」 进入飞行数据界面。
- 在左侧面板找到 「Log」 标签页,点击 「Load Log」 按钮。
- 在弹出的文件选择器中,定位到你的 .bin 或 .log 文件。
- 选中文件后,地面站会自动解析。你会看到进度条走完,然后图表区域出现数据。
md5sum 校验一下文件完整性。尤其是从 SD 卡直接拷贝的日志,强烈建议做这一步。
3.2.2 QGroundControl 导入流程
- 打开 QGC,进入 「Analyze View」(分析视图)。
- 点击右上角的 「Load Log」 按钮。
- 选择 .ulg 或 .bin 文件。QGC 支持拖拽操作,你也可以直接把文件拖进窗口。
- 加载完成后,左侧会出现日志列表,右侧显示时间轴和图表。
QGC 的解析速度比 MP 快不少,尤其是处理 .ulg 格式时。我个人更倾向用 QGC 做日常快速回放,MP 则留着做深度参数分析。
3.3 回放界面模块拆解:每个区域都有它的脾气
日志加载完成后,你看到的界面不是随便排的。每个模块都有明确的设计目的。我把它拆成五个核心区域,你对照着看:
你想想看,这五个模块其实对应了故障诊断的五个视角:时间轴告诉你「什么时候」、3D 视图告诉你「在哪飞」、仪表盘告诉你「当前状态」、曲线图告诉你「趋势变化」、事件日志告诉你「发生了什么异常」。缺一个,诊断链条就不完整。
3.4 各模块的实战用法
3.4.1 时间轴控制区
这是整个回放的大脑。你可以用播放按钮让数据动起来,也可以拖拽进度条跳到任意时刻。速度调节我一般用 2x 或 5x 快速扫一遍全流程,发现可疑时刻再切回 1x 细看。
Ctrl 键再拖拽进度条,可以进入「逐帧模式」,每次移动一帧数据。这对分析炸机前最后几秒的细节极其有用。
3.4.2 3D 飞行轨迹视图
说白了就是把你飞过的路径在三维空间里重建出来。我习惯先看这个视图,因为一眼就能看出飞行轨迹是否异常——比如突然的掉高、诡异的绕圈、或者航线偏移。
在 QGC 里,你可以用鼠标右键拖拽旋转视角,滚轮缩放。我个人喜欢开启「跟随模式」,让视角始终锁定飞机,这样回放时更有沉浸感。
3.4.3 仪表盘与状态面板
这个区域模拟了真实座舱的仪表。人工地平仪(ADI)显示飞机的俯仰和横滚,空速/地速表告诉你速度变化,电池电压条则直接反映供电健康度。
我记得有一次排查返航失败问题,就是靠盯着仪表盘发现:飞机在切到 RTL 模式后,空速突然掉到 0,但地速还有 8m/s——明显是空速管堵了。这个细节在曲线图里也能看到,但仪表盘的直观性让我第一时间锁定了方向。
3.4.4 曲线图 / 数据图表区
这是最硬核的区域。你可以把任意两个参数拉出来对比。比如把「高度」和「油门输出」放在同一张图里,就能看出飞机在爬升时油门是否跟得上。
操作上,MP 和 QGC 都支持多曲线叠加。我的习惯是:先选一个怀疑的参数(比如振动值),再叠加电机转速,看两者是否有相关性。如果振动峰值正好对应某个电机转速区间,那大概率是动平衡问题。
3.4.5 消息 / 事件日志区
这个区域经常被新手忽略,但它往往是破案的关键。飞控在运行过程中会记录各种事件:GPS 从 3D 定位降级到 2D、遥控器信号丢失、电压过低报警、模式切换……每一条都带时间戳。
我曾经处理过一个案例:飞机在空中突然失控坠毁。从曲线图看,所有传感器数据都正常。但事件日志里有一条「EKF variance warning」——扩展卡尔曼滤波方差警告。这说明飞控内部已经检测到状态估计不可靠,但外部数据看起来没问题。顺着这条线索,最终定位到 IMU 温度漂移问题。
3.5 导入失败怎么办?常见问题与对策
日志导入不是每次都一帆风顺。我遇到过的情况,列出来给你参考:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 地面站提示「无法识别文件格式」 | 文件后缀错误或日志格式不兼容 | 确认飞控型号,使用对应地面站;尝试用 pyulog 或 mavlogdump.py 转换格式 |
| 导入后图表空白 | 日志中未记录该参数,或采样率过低 | 检查飞控参数 LOG_BITMASK 是否包含了所需数据流 |
| 进度条卡住不动 | 日志文件过大或损坏 | 用 md5sum 校验文件;尝试用 mavlogdump.py --types GPS,IMU 只提取关键数据 |
| 3D 视图显示飞机位置偏移 | GPS 坐标参考系不一致或日志中缺少原点信息 | 在 MP 中手动设置 Home 点坐标;或重新导出日志时勾选「包含原点」 |