4、ArduPilot日志系统:日志类型、配置与下载
做飞控调试这么多年,我越来越觉得日志系统就是飞行器的「黑匣子」。飞机在天上飞了啥、姿态怎么抖的、传感器有没有抽风,全得靠它说话。今天咱们就好好聊聊ArduPilot的日志系统——说白了,就是怎么让飞机老老实实把飞行数据记下来,再想办法弄出来分析。
4.1 日志类型:LOG、BIN、KMZ
ArduPilot支持三种日志格式,我刚开始接触时也搞混过。其实它们各有各的用处,咱们一个一个说。
4.1.1 LOG格式(.log)
这是最原始的文本格式。说白了就是纯文本,每行一条数据,用逗号分隔。优点是你能用记事本直接打开看,缺点嘛……文件大、解析慢。我早期做原型验证时喜欢用这个,因为调试方便,看一眼就知道数据对不对。
4.1.2 BIN格式(.bin)
这是二进制格式,也是我最常用的。文件小、写入快,对SD卡的压力也小。你想想看,飞控在高速飞行时每秒要记录几百个数据点,如果用文本格式,SD卡根本扛不住。BIN格式压缩率高,一个小时的飞行数据也就几十兆。
4.1.3 KMZ格式(.kmz)
这个其实是Google Earth用的压缩包。里面包含了飞行轨迹的KML文件和一堆截图。我一般用来做飞行演示或者给客户看航线效果。嗯,这里要注意:KMZ不是原始数据,它只是可视化产物,不能用于深度分析。
| 格式 | 扩展名 | 特点 | 推荐场景 |
|---|---|---|---|
| LOG | .log | 文本格式,可读性好 | 调试阶段 |
| BIN | .bin | 二进制,体积小 | 量产/正式飞行 |
| KMZ | .kmz | 可视化压缩包 | 汇报/演示 |
4.2 日志参数配置
日志不是你想记就能记的,得先配参数。ArduPilot里跟日志相关的参数主要分三块:开关控制、采样率、消息类型。
4.2.1 核心参数
- LOG_BACKEND_TYPE:日志存储方式。默认是1(SD卡),也可以设成2(内部闪存)或者3(两者都用)。我建议用SD卡,容量大、好取数据。
- LOG_BACKEND_RATE:日志写入速率。单位是Hz,默认50。如果你在做高频振动分析,可以调到100甚至200,但要注意SD卡写入速度。
- LOG_DISARMED:解锁前是否记录日志。默认是0(不记录)。我建议设成1,因为很多故障发生在解锁前——比如传感器预热异常、GPS搜星慢,这些数据丢了很可惜。
4.2.2 消息类型配置
ArduPilot的日志消息是按类型分的。比如ATT(姿态)、GPS(定位)、IMU(惯性测量)。你可以通过LOG_BITMASK参数来控制记录哪些消息。我个人习惯是:
- 日常飞行:只开ATT、GPS、IMU、RCIN、RCOU
- 故障排查:全开,包括CTUN(控制)、NTUN(导航)、MAG(磁力计)
- 传感器标定:只开IMU、MAG、BARO
4.3 日志文件结构
打开一个BIN文件,你看到的不是乱码,而是有规律的数据流。ArduPilot的日志结构其实很简单,就三个层次:
4.3.1 文件头
每个日志文件开头都有一段元数据,记录了飞控固件版本、参数列表、硬件信息。我经常用这个来确认飞机用的是不是最新固件,有没有人偷偷改过参数。
4.3.2 消息体
这是核心部分。每条消息由三部分组成:
- 时间戳:微秒级,从飞控启动开始算
- 消息ID:比如ATT是0x01,GPS是0x07
- 数据负载:具体数值,比如姿态角、位置坐标
举个例子,一条ATT消息大概长这样:
时间戳: 1234567890
消息ID: ATT
Roll: 1.23
Pitch: -0.45
Yaw: 89.12
4.3.3 文件尾
日志结束时会有个结束标记。如果文件突然中断(比如掉电),这个标记就没了。我判断日志是否完整,第一件事就是看有没有文件尾。
4.4 日志下载方式
数据记下来了,怎么拿出来?我常用的有三种方式:
4.4.1 SD卡直读
最直接的方法。把SD卡拔出来,插电脑上拷贝。优点是速度快,一个G的数据几秒钟就传完了。缺点嘛……你得拆飞机。我一般只在实验室或者维修时用这个。
4.4.2 Mavlink下载
通过数传或者USB线,用Mission Planner或者QGroundControl下载。操作步骤:
- 连接飞控(USB或数传)
- 打开Mission Planner的「MAVLink Log Download」页面
- 选择要下载的日志文件
- 点击下载,等进度条走完
这个方法不用拆飞机,但速度慢。我记得有一次下载一个200MB的日志,用了将近20分钟。嗯,如果你在野外调试,建议用这个。
4.4.3 远程下载(高级玩法)
如果你装了4G模块或者数传电台,可以远程下载日志。我有个项目在山区,每次飞完直接远程拉数据,省得爬山了。不过要注意信号稳定性,断连了得重传。
好了,日志系统这块就聊到这儿。记住一句话:日志是飞控的「黑匣子」,配置好了、下载对了,你才能知道飞机在天上到底经历了什么。