一、日志分析概述:无人机日志的价值、常见格式与工具链

各位同学好,我是老张。干无人机系统这行十几年了,今天咱们聊聊日志分析。

说实话,刚入行那会儿我也不太重视日志。飞机能飞就行,看什么日志?直到有一次,一架六旋翼在农田里突然掉高,差点砸到人。事后翻出 BIN 文件一查,发现电调过温已经持续了 30 秒,飞控一直在降功率——但地面站上啥告警都没有。嗯,从那以后,我养成了一个习惯:每次飞行结束,第一件事就是导出日志。

1.1 无人机日志到底值钱在哪儿?

日志不是给飞机看的,是给我们看的。说白了,它是飞控系统在飞行过程中记录下来的“黑匣子”。

我个人觉得,日志的价值可以归纳为三点:

  • 故障定位:飞机炸了、飘了、抖了,日志能告诉你“哪一秒、哪个传感器、什么参数”出了问题。我在项目里遇到过一架飞机总是偏航,查了三天机械结构,最后日志显示磁罗盘校准参数超限——两分钟搞定。
  • 性能调优:PID 参数合不合理?电池放电曲线平不平?电机响应有没有滞后?日志里全都有。我建议每个飞手至少学会看“期望值 vs 实际值”的对比曲线。
  • 合规与复现:有些行业应用(比如植保、巡检)要求飞行数据可追溯。日志就是你的证据。另外,复现异常场景时,日志比任何口头描述都靠谱。

一句话总结:没有日志的飞行,等于闭着眼睛开车。你永远不知道下一秒会发生什么。

1.2 常见日志格式:ULog、BIN、CSV

目前主流的飞控系统,日志格式就那么几种。我按使用频率排个序:

格式 来源飞控 特点 我的使用建议
ULog PX4(主力) 二进制,体积小,带时间戳,支持嵌套数据结构 日常分析首选,工具链最成熟
BIN ArduPilot 二进制,按消息 ID 存储,解析依赖参数文件 老项目还在用,新项目建议转 ulog
CSV 部分商业飞控 / 自研飞控 纯文本,可读性好,但文件大、精度有限 适合快速查看,不适合深度分析

你可能会问:为什么不用 CSV 一统天下?原因很简单——无人机每秒记录几百个数据点,CSV 写几十分钟,文件能上 GB,而且浮点数精度还会丢。ULog 和 BIN 都是二进制格式,压缩率高,解析快。

小技巧:如果你手头只有 CSV 日志,可以用 Python 的 pandas 库先做一次重采样,把 200Hz 的数据降到 50Hz,文件能缩小 4 倍,关键特征基本保留。

1.3 日志分析工具链概览

工具链这件事,我踩过不少坑。早期我用 Excel 打开 CSV,手动画图——那叫一个痛苦。后来慢慢摸索出一套趁手的组合,分享给你:

1.3.1 图形化工具(适合快速查看)

  • Flight Review(PX4 官方):网页版,拖入 ULog 就能看。姿态、位置、电池、电机四个核心面板,一目了然。我一般先用它扫一遍,看有没有明显异常。
  • Mission Planner(ArduPilot):自带日志分析模块,支持 BIN 格式。功能很全,但界面有点老派。
  • QGroundControl:也能看日志,但功能偏弱,适合现场快速确认。

1.3.2 命令行 / 脚本工具(适合批量处理)

  • pyulog:Python 库,专门解析 ULog。我写自动化脚本时必用。
  • ulog2csv:把 ULog 转成 CSV,方便导入其他工具。
  • MAVLink Inspector:实时抓取 MAVLink 消息,适合调试阶段。

1.3.3 我的个人工作流

嗯,这里给你看看我平时怎么干的:

  1. 飞行结束后,从 SD 卡拷贝 ULog 文件。
  2. 用 Flight Review 快速浏览,截图异常段。
  3. 用 pyulog 提取关键话题(比如电池电压、电机转速、GPS 状态)。
  4. 用 Matplotlib 画对比曲线,定位问题区间。
  5. 如果问题复杂,导出 CSV 给团队用 MATLAB 做频谱分析。

注意:不要一上来就全量分析。先问自己三个问题:这次飞行出了什么问题?哪个传感器最可疑?哪个时间段最值得看?带着问题去翻日志,效率能翻倍。

1.4 本章知识体系总览

下面这张图,是我自己梳理的日志分析知识框架。你把它存下来,后面每学一章,都可以回来对照一下,看看自己处在哪个位置。

无人机日志分析知识体系 无人机日志分析知识体系 日志来源 ULog(PX4) BIN(ArduPilot) CSV(通用) 图形化工具 命令行 / 脚本工具 实时调试工具 故障定位 性能调优 合规与复现 可执行的改进方案 核心逻辑:从原始日志到可执行方案,每一步都有对应的工具和方法

这张图把整个知识体系分成了五层:日志来源 → 格式 → 工具链 → 分析目标 → 输出方案。你会发现,每一层都依赖下一层。没有正确的格式解析,工具链就白搭;没有清晰的分析目标,再好的工具也出不来方案。