1. 课程导入
做飞控调试这些年,我见过太多人一上来就问我:“飞机炸了,怎么查原因?”说实话,没有日志,你连猜都没法猜。日志就是飞控的“黑匣子”,记录着每一毫秒发生了什么。
这一章,我们先把这个“黑匣子”拆开看看。
1.1 为什么需要日志系统?
你想想看,飞机在天上飞,你在地上看。出了抖动、偏航、甚至炸机,你靠肉眼能看出啥?
日志系统的作用,说白了就是三个:
- 故障排查:飞机出问题后,回放日志能还原现场
- 性能调优:PID参数调得好不好,日志里一清二楚
- 数据验证:新固件、新硬件靠不靠谱,跑一遍日志分析就知道
核心观点:没有日志的飞行,等于盲飞。我个人的习惯是,每次试飞必开日志,哪怕只是在地面测试。
1.2 日志类型:DATAFLASH vs Telemetry
ArduPilot的日志分两种,很多人搞混过。我刚开始也踩过坑——以为遥测日志就够了,结果炸机后数据不全。
| 特性 | DATAFLASH(板载日志) | Telemetry(遥测日志) |
|---|---|---|
| 存储位置 | 飞控板载SD卡或内部Flash | 地面站电脑(通过数传接收) |
| 数据完整性 | 完整,不掉帧 | 受信号质量影响,可能丢包 |
| 采样率 | 最高(可配置,通常50-400Hz) | 较低(受数传带宽限制) |
| 适用场景 | 故障分析、高精度调试 | 实时监控、常规飞行记录 |
| 文件格式 | .bin(二进制) | .log(文本,TLog格式) |
避坑指南:我曾经只依赖Telemetry日志做分析,结果有一次数传在关键阶段断连了,丢失了炸机前最后5秒的数据。从那以后,我强制要求所有飞机必须同时开启DATAFLASH日志。
1.3 日志文件结构:.bin 与 .log
这两种文件,你都得会看。
.bin 文件(DATAFLASH)
二进制格式,体积小、写入快。飞控每毫秒都在往里面塞数据。你直接用记事本打开是乱码,得用专用工具。
内部结构其实很简单——就是一条一条的“消息”串在一起。每条消息有:
- 头标识:比如 ATT(姿态)、GPS(定位)、IMU(惯性数据)
- 时间戳:从飞控启动开始的微秒数
- 数据体:具体数值,比如 Roll/Pitch/Yaw
.log 文件(Telemetry)
文本格式,可读性高。你可以直接用文本编辑器打开看。但文件体积大,长时间飞行可能几百MB。
举个例子,打开一个 .log 文件,你会看到类似这样的内容:
ATT, 154321, 0.01, -0.02, 1.57
GPS, 154322, 31.2304, 121.4737, 50.2, 12
IMU, 154323, 0.98, -0.12, 9.81
每一行就是一条消息,逗号分隔。第一列是消息类型,第二列是时间,后面是具体数据。
个人经验:我习惯用 .bin 做正式分析,用 .log 做快速预览。因为 .bin 数据更全,但 .log 可以直接 grep 关键词,查起来快。
1.4 常用日志查看工具
工具选对了,效率翻倍。我推荐两个:
Mission Planner(MP)
这是最常用的地面站,自带日志分析功能。操作简单,适合新手。
- 打开方式:菜单栏 → Flight Data → Log → Download/Review
- 支持 .bin 和 .log 直接拖入
- 可以回放飞行轨迹、查看曲线、导出CSV
我个人觉得MP的曲线查看功能最实用。选一个参数,比如 Roll,就能看到整段飞行的变化曲线。哪里抖了、哪里超调了,一眼就能看出来。
MAVExplorer
这是命令行工具,功能更强大。适合批量处理、脚本分析。
基本用法:
# 查看日志基本信息
mavlogdump.py --types ATT,GPS flight.bin
# 导出特定参数为CSV
mavlogdump.py --types IMU --format csv flight.bin > imu_data.csv
# 图形化查看
mavgraph.py flight.bin 'ATT.Roll' 'ATT.Pitch'
为什么我推荐MAVExplorer?因为它可以写脚本批量处理。比如你一次试飞了10架次,用MP一个个打开看太慢了。写个脚本,一键生成所有架次的姿态曲线对比图,效率高得多。
我的建议:新手先用Mission Planner上手,熟悉日志结构后,再学MAVExplorer。两条腿走路,走得更稳。
1.5 日志系统整体架构
下面这张图,是我自己总结的日志系统工作流程。你看一遍,就能理解数据从传感器到你电脑屏幕的完整路径。
这张图你看懂了吗?核心流程就是:传感器 → 飞控主循环 → 日志缓冲区 → 两种输出路径。嗯,这里要注意,缓冲区是环形队列,满了会覆盖旧数据。所以日志文件大小是固定的,你不用担心SD卡被写爆。
1.6 本章小结
这一章我们讲了日志系统的三个核心点:
- 两种日志类型:DATAFLASH(完整可靠)和 Telemetry(实时但可能丢包)
- 两种文件格式:.bin(二进制,专用工具查看)和 .log(文本,可直接打开)
- 两个常用工具:Mission Planner(图形化,适合新手)和 MAVExplorer(命令行,适合批量处理)