日志获取与准备:从飞控下载日志、使用QGroundControl导出日志、日志文件的基本结构

做定位分析,第一步不是看数据,而是拿到对的日志。我见过不少同事,花了大半天分析一个定位问题,最后发现日志文件本身就不完整——白忙一场。所以这一章,咱们先把基本功打扎实。

从飞控下载日志的几种方式

PX4 的日志默认存在 SD 卡里。你飞完一个架次,日志就自动写进去了。怎么把它弄出来?主要有三条路。

方式 工具 适用场景 我的建议
无线下载 QGroundControl (WiFi/数传) 现场快速查看、小文件 方便,但速度慢,大日志容易断
有线下载 QGroundControl (USB) 稳定可靠,推荐首选 我个人习惯用这个,稳
直接拔卡 读卡器 + PC 日志文件巨大、批量处理 最暴力,也最保险

嗯,这里要注意:无线下载时如果信号不好,日志可能损坏。我遇到过好几次,飞完一个长航时,日志下载到一半断连,结果文件打不开。后来我就学乖了——重要日志一定用 USB 线或者直接拔卡。

使用 QGroundControl 导出日志

QGC 是咱们最常用的地面站。导出日志的步骤其实很简单,但有几个细节容易踩坑。

标准操作流程

  1. 把飞控连上 QGC(USB 或数传都行)。
  2. 点击右上角的齿轮图标,进入「分析」视图。
  3. 在「日志下载」标签页里,你会看到飞控上存的所有日志列表。
  4. 选中你要的日志,点「下载」。
  5. 保存到本地,默认是 .ulg 格式。
小技巧:日志列表里每个文件都有时间戳和大小。我一般先看文件大小——如果一次 10 分钟的飞行,日志只有几十 KB,那大概率是没录全,别浪费时间下载了。

避坑指南

我曾经犯过一个低级错误:下载日志时飞控还在运行,结果日志文件被锁定,下载下来是空的。所以,下载前最好让飞控处于「已断开」或「待机」状态,别让它还在跑任务。

另外,QGC 默认只显示最近 20 条日志。如果你的 SD 卡里存了很多老日志,记得点一下「显示全部」按钮。不然你翻半天找不到想要的架次。

日志文件的基本结构

拿到 .ulg 文件后,咱们得知道它里面长什么样。说白了,它就是一个按时间顺序记录的数据流。

核心概念:.ulg 文件 = 文件头 + 消息流。每条消息都有一个时间戳和一个消息 ID,飞控上每个模块(比如 GPS、IMU、EKF)都会按固定频率往里面写数据。

文件内部组织

我拆开一个典型的 .ulg 文件,大致能看到这些部分:

  • 文件头(Header):包含文件格式版本号、时间戳起点、飞行器类型等元信息。
  • 定义段(Definitions):声明了后面会用到的所有消息格式。比如「消息 ID 1 是传感器加速度计数据,包含 x、y、z 三个 float 字段」。
  • 数据段(Data):真正的飞行数据。每条记录都带着时间戳,按时间顺序排列。
  • 信息段(Info):一些额外的文本信息,比如固件版本、参数列表。

你想想看,这就像一本字典:定义段是词汇表,数据段是正文。没有词汇表,你根本看不懂正文在说什么。

常见消息类型

做定位分析时,你最常打交道的消息类型就这几类:

消息名称 发布频率 包含的关键字段 用途
sensor_accel ~1000 Hz x, y, z (m/s²) IMU 加速度计原始数据
sensor_gyro ~1000 Hz x, y, z (rad/s) IMU 陀螺仪原始数据
vehicle_gps_position ~5-10 Hz lat, lon, alt, eph, epv GPS 定位结果及精度
estimator_status ~50 Hz gps_check_fail_flags, innov_* EKF 状态和健康度
vehicle_local_position ~50 Hz x, y, z, vx, vy, vz 融合后的局部位置估计

说白了,定位分析就是盯着这几条消息,看它们之间有没有矛盾。比如 GPS 说你在 A 点,IMU 积分说你已经跑到 B 点了——那肯定有问题。

日志获取与准备的知识体系

我把这一章的核心逻辑画了张图,方便你理解整个流程。

日志获取与准备流程 飞控 SD 卡存储 .ulg 获取方式:无线 / 有线 / 拔卡 QGC 分析视图 → 下载 文件结构:头 + 定义 + 数据 + 信息 关键消息:GPS / IMU / EKF 注意: 下载前确认飞控已停止任务 小提示: 检查日志文件大小是否合理

日志文件命名与版本管理

最后聊一个容易被忽视的问题:日志命名。PX4 默认的日志名是 log_0001.ulg、log_0002.ulg 这种。飞多了根本分不清哪个是哪个。

我的做法是:下载后立刻重命名,格式为 日期_飞行模式_备注.ulg。比如 2025-03-15_loiter_gps_test.ulg。这样半年后翻出来,一眼就知道当时在测什么。

警告:千万不要在飞控的 SD 卡上直接改名或删文件!飞控的文件系统很脆弱,操作不当可能导致整张卡损坏。所有整理工作都在 PC 上做。