3. 日志数据字段解析:时间戳、姿态、位置、传感器与遥控信号

拿到一份 QGC 日志,很多人第一反应是「这么多字段,从哪看起?」。我刚开始带项目时也犯过这毛病——恨不得把所有曲线都拖出来,结果看了一下午,啥也没分析出来。

其实,日志里真正核心的字段就那么几类。你只要把这五类数据看懂了,80% 的飞行问题都能定位。今天我就把这五类数据掰开揉碎了讲给你听。

3.1 时间戳:所有数据的「对齐基准」

时间戳是日志的灵魂。没有它,姿态、位置、传感器数据全是孤立的碎片。

QGC 日志里时间戳通常有两种:

  • 系统启动时间(单位:微秒 µs)—— 飞控上电开始计时
  • UTC 时间(单位:秒)—— GPS 锁定后提供

我个人习惯优先看系统启动时间。为什么?因为 GPS 可能在室内或搜星不足时丢失,但系统时间永远不会断。

小技巧: 在 QGC 的「Analysis」工具里,把鼠标悬停在任意数据点上,底部状态栏会显示对应的时间戳。你可以用这个功能快速定位异常时刻。

举个例子,有一次我在分析一台炸机的日志,发现 GPS 时间在 120 秒处突然跳变。当时以为是 GPS 故障,后来对照系统时间才发现——其实是飞控重启了。嗯,这就是时间戳对齐的价值。

3.2 姿态数据(ATT):飞机的「体态语言」

姿态数据告诉你飞机是平飞、倾斜还是倒扣。核心字段就四个:

字段名 含义 单位 正常范围
Roll 横滚角 度 (°) -45 ~ +45(正常飞行)
Pitch 俯仰角 度 (°) -30 ~ +30(正常飞行)
Yaw 偏航角 度 (°) 0 ~ 360
Heading 航向角(相对磁北) 度 (°) 0 ~ 360

你想想看,如果 Roll 突然跳到 90°,那基本可以断定飞机已经侧翻了。我在项目中遇到过一架六轴,日志里 Roll 在 3 秒内从 5° 飙到 80°,紧接着就是 IMU 报错——后来查出来是减震棉老化导致传感器共振。

注意: 姿态数据要结合时间戳看。如果 Roll 在 0.1 秒内跳变超过 30°,大概率是传感器数据异常,而不是真实姿态变化。

3.3 位置数据(GPS):飞机的「地理坐标」

GPS 数据是飞行安全的最后一道防线。我建议你重点关注这几个字段:

  • Lat / Lon:经纬度,定位的基础
  • Alt:海拔高度(椭球高或 MSL)
  • HDOP / VDOP:水平/垂直精度因子,越小越好
  • Satellites:可见卫星数
  • Fix Type:定位类型(0=无定位,2=2D,3=3D,4=RTK 固定解)

说白了,GPS 数据好不好,先看 Fix Type 和 Satellites。Fix Type 低于 3 的日志,基本可以放弃位置分析——数据不可信。

我曾经帮一个飞友排查「自动返航偏航」的问题。日志里 Fix Type 一直是 3,但 Satellites 从 18 颗慢慢掉到 7 颗,HDOP 从 0.8 涨到 3.5。返航时飞机直接偏了 50 米。原因很简单:GPS 天线被机臂遮挡了。

核心指标:
  • HDOP < 1.0:优秀
  • HDOP 1.0 ~ 2.0:良好
  • HDOP > 2.5:谨慎飞行
  • Satellites < 10:建议不要起飞

3.4 传感器数据(IMU/磁力计/气压计):飞控的「感知器官」

这部分数据最杂,但也最能暴露问题。我按传感器类型给你拆开讲。

3.4.1 IMU(加速度计 + 陀螺仪)

加速度计测的是比力(单位 m/s²),陀螺仪测的是角速度(单位 rad/s)。日志里通常有两条 IMU 数据流(IMU0 和 IMU1),用于冗余校验。

我习惯先看加速度计的模长:

accel_norm = sqrt(accel_x² + accel_y² + accel_z²)

悬停时,这个值应该在 9.8 m/s² 左右(1g)。如果偏差超过 0.5g,说明传感器可能坏了。

避坑指南: 我曾经遇到过一台飞机,日志里 IMU0 的加速度计模长只有 8.2 m/s²,但 IMU1 是正常的 9.8 m/s²。飞控没有报错,但飞行时明显漂移。后来拆机发现 IMU0 的减震胶垫脱落了。所以,一定要对比两条 IMU 数据。

3.4.2 磁力计(Magnetometer)

磁力计提供航向参考,但也是最容易受干扰的传感器。日志里看 MagX / MagY / MagZ 三个分量。

正常情况,飞机水平旋转时,三个分量应该呈现平滑的正弦波。如果出现毛刺或跳变,说明有电磁干扰。

我记得有一次排查「罗盘异常」故障,日志里 MagZ 在某个方向突然跳变 200 个单位。后来发现是机臂上的 LED 灯带电源线离磁力计太近了——电流变化产生的磁场干扰。

3.4.3 气压计(Barometer)

气压计用于高度估算,字段通常是 BaroAlt(单位米)。它的特点是:短期精度高,长期会漂移。

我建议你看气压计时,关注它的变化率。如果 BaroAlt 在 1 秒内变化超过 5 米,而飞机实际没有快速升降,那基本可以断定气压计被风干扰了——比如飞控舱没有做密封。

3.5 RC 输入与输出:飞手的「指令」与飞机的「响应」

这部分数据用来判断:飞手发了什么指令,飞机实际执行了什么。

字段前缀 含义 典型值(PWM)
RCIN 遥控器输入信号 1000 ~ 2000 µs
RCOUT 飞控输出到电机的信号 1000 ~ 2000 µs
Servo 舵机输出(如果有) 1000 ~ 2000 µs

对比 RCIN 和 RCOUT 是排查「飞手说打了杆但飞机没反应」这类问题的关键。如果 RCIN 有变化但 RCOUT 没变,说明飞控没有响应遥控指令——可能是模式设置问题,也可能是飞控死机了。

我曾经遇到一个案例:飞手说推油门没反应,日志里 RCIN[2](油门通道)从 1100 变到 1800,但 RCOUT 始终卡在 1100。后来发现是飞控的油门限位被误设为 50%。

注意: RCIN 和 RCOUT 的数值范围可能不同。有些飞控会对输出做映射,比如 RCIN 是 1000~2000,但 RCOUT 可能是 1100~1900。你需要先确认飞控的配置。

3.6 知识体系总览

下面这张图把这五类数据的关系串起来了。你可以把它当作日志分析的「导航地图」。

日志数据字段知识体系 QGC 日志 时间戳 姿态 (ATT) 位置 (GPS) 传感器 (IMU/磁/气压) RC 输入 / 输出 系统时间 UTC 时间 Roll Pitch HDOP Satellites 加速度计 陀螺仪 磁力计 气压计 RCIN RCOUT 分析建议 先看时间戳对齐 → 再查姿态和位置 → 最后对比传感器与 RC 数据 异常往往出现在「数据交叉验证」时

这张图你看懂了吗?核心逻辑就是:时间戳是骨架,姿态和位置是表象,传感器是内因,RC 数据是验证手段。排查问题时,按这个顺序走,基本不会漏。