3. 故障节点检测的数据基础

故障节点检测不是“看一眼谁掉线了”这么简单。集群中每个节点是否健康,需要由多源数据共同支撑:机载传感器给出本体的运动与执行状态,状态遥测给出飞控与动力系统的内部量,链路质量反映通信是否可靠,位置与姿态数据则决定编队几何关系是否被破坏。只有把这些数据在时间上对齐、在坐标上统一,后续的残差计算、阈值判断和隔离决策才有意义。本节围绕“数据从哪里来、怎么采、怎么对齐、在哪里验证”展开。

一、四类数据源及其故障指示意义

机载传感器是节点自感知的底层来源。惯性测量单元(IMU)输出三轴加速度与三轴角速度,典型采样率 100~1000 Hz;磁力计提供航向参考;气压计给出高度;GNSS 接收机输出经纬高与地速。这些量本身不直接等于“故障”,但它们的突变、漂移或长时间不变,往往是传感器失效、卡死或饱和的前兆。

状态遥测来自飞控与动力系统,包括电池电压/电流、剩余电量、电机转速指令与实际转速、PWM 输出、飞控模式、解锁状态、CPU 负载与温度。遥测的典型频率为 1~50 Hz,低于 IMU,但它直接反映执行机构是否按指令动作。例如某节点位置仍被 GNSS 拉回编队,但电机实际转速持续低于指令值,说明动力衰减而非定位故障。

链路质量数据包括接收信号强度指示(RSSI)、信噪比(SNR)、丢包率、往返时延(RTT)与邻居表。链路质量是区分“节点真故障”与“通信暂时拥塞”的关键。若某节点 RSSI 骤降、丢包率升高,但遥测与姿态仍连续,则更可能是链路问题而非节点失效。

位置与姿态数据是集群层面的观测量,包括各节点的本地位置估计、姿态四元数/欧拉角,以及由邻居相对测距或视觉得到的相对位置。编队一致性检测通常比较“期望队形位置”与“实际位置”,或比较相邻节点间的相对距离与期望基线。姿态异常(如滚转角持续偏离)常与执行机构或传感器融合故障相关。

多源数据采集与同步链路(单节点视角) 机载传感器 IMU 100–1000 Hz 磁力计 / 气压计 GNSS 经纬高/地速 → 加速度/角速度/高度 状态遥测 电池电压/电流/电量 电机指令/实际转速 飞控模式/解锁状态 1–50 Hz 链路质量 RSSI / SNR 丢包率 / RTT 邻居表 / 拓扑变化 1–10 Hz 位置与姿态 本地位置估计 (x,y,z) 姿态四元数/欧拉角 邻居相对距离/方位 10–100 Hz 时间戳对齐 + 坐标统一 + 质量标记(数据汇聚层) 同步方法 硬件触发/PPS NTP/PTP 网络对时 插值重采样 滑动窗口缓存 对齐后的多源特征向量 残差 / 阈值 / 一致性 → 故障判定

二、数据采集与同步方法

采集的第一原则是“带时间戳”。每个数据包在产生时刻打上本地单调时钟时间戳,避免使用可被外部调整的墙钟。若节点具备 GNSS 秒脉冲(PPS),可用 PPS 作为硬件触发基准,将 IMU 采样与整秒对齐,误差可控制在微秒级;无 PPS 时,可用 PTP(IEEE 1588)或 NTP 做网络对时,典型精度分别为亚微秒级与毫秒级。

不同频率的数据不能直接拼成一条记录,需要重采样到统一时间栅格。常用做法是选一个基准频率(如 50 Hz),对高频 IMU 做滑动平均或抽取,对低频遥测做零阶保持或线性插值。以 100 Hz IMU 与 10 Hz 遥测对齐到 50 Hz 为例:IMU 每 2 个样本取均值,遥测每 5 个栅格保持同一值,并在插值跨越数据缺口时打上“无效”标记,防止把外推值当作真实观测。

坐标统一同样关键。位置数据可能来自 GNSS 的 WGS-84 经纬高、飞控的本地 NED 坐标或视觉里程计的相机坐标系。检测前应统一到同一参考系,例如以集群起飞点为原点的 ENU 或 NED。约定:本文采用 NED,x 指向北、y 指向东、z 指向地,姿态角按“先滚转、再俯仰、后偏航”的 Z-Y-X 顺序解算。若切换参考系,必须在数据记录中显式标注,避免残差符号相反。

同步质量本身要可观测:为每条对齐记录附加“时间偏差估计”和“插值标志”。当某节点时间偏差超过阈值(如 20 ms)时,其数据在故障判定中应降权,而不是直接判为故障。

三、典型数据集与仿真环境

真实飞行数据获取成本高、故障样本稀少,因此教学与算法验证通常采用“仿真为主、实飞为辅”的组合。常用仿真环境包括:基于 ROS/Gazebo 的多无人机仿真,可加载 PX4 SITL 飞控,注入 IMU 偏置、GNSS 跳变、电机失效等故障;基于 AirSim 的视觉与动力学仿真,适合验证视觉相对定位;以及 MATLAB/Simulink 的编队控制与故障注入模型,便于快速扫描参数。

公开数据方面,可参考多旋翼飞行日志数据集(如 PX4 ULog、ArduPilot DataFlash 日志格式),它们包含 IMU、姿态、位置、电池、RC 输入等完整字段,适合练习解析与特征提取。故障注入数据集通常由研究机构发布,包含正常飞行与人为注入的执行器卡死、传感器漂移、通信丢包等场景。使用时应核对采样率、时间基准与坐标系定义,避免直接套用阈值。

数据源典型频率关键字段故障指示
IMU100–1000 Hz加速度、角速度突变、卡死、噪声异常
GNSS5–20 Hz经纬高、地速、卫星数跳变、失锁、精度下降
状态遥测1–50 Hz电压、电流、转速、模式动力衰减、电量骤降
链路质量1–10 HzRSSI、SNR、丢包率、RTT通信中断、拥塞
位置与姿态10–100 Hz位置、四元数、相对距离编队偏差、姿态失控

四、一个可复现的采集与对齐示例

假设用 PX4 SITL + Gazebo 仿真 5 架无人机,以 50 Hz 作为统一栅格。操作流程如下:启动仿真后,通过 MAVROS 订阅 /uavN/mavros/imu/data、/uavN/mavros/global_position/raw/fix、/uavN/mavros/battery 与 /uavN/mavros/state;在接收回调中记录 ros::Time::now() 作为接收时间戳,并读取消息头中的采样时间戳;将各话题写入 rosbag 后离线处理。

# 示例:将 100 Hz IMU 与 10 Hz 遥测对齐到 50 Hz 栅格(伪代码)
grid_dt = 0.02                     # 50 Hz
for t in grid_times:
    imu_win = imu[(imu.t >= t-0.01) & (imu.t < t+0.01)]
    imu_aligned = mean(imu_win.accel), mean(imu_win.gyro)
    telem = telem_hold_last(telem, t)   # 零阶保持
    if abs(telem.t - t) > 0.05:
        telem.valid = False             # 超时标记无效
    record = {t, imu_aligned, telem, link, pose}

对齐完成后,先做数据质量检查:统计每架无人机的丢包率、时间偏差分布、IMU 方差与 GNSS 卫星数。若某节点 IMU 方差突然增大且 GNSS 卫星数正常,优先怀疑 IMU 故障;若丢包率升高但姿态连续,则优先怀疑链路。只有排除数据质量问题后,才进入残差与阈值判定,避免把采集缺陷误判为节点故障。

仿真环境中的故障注入参数(如 IMU 偏置 0.05 m/s²、GNSS 跳变 5 m)仅用于教学演示,不能直接作为实飞阈值。实飞前必须用本机日志重新统计正常工况下的均值与标准差,再设定阈值。

综上,故障节点检测的数据基础可以概括为:四类数据源提供互补证据,时间戳与坐标系统一保证可比性,重采样与质量标记保证可用性,仿真与日志数据提供可复现的验证条件。把这一层做扎实,后续的残差计算、隔离与重构才有可靠输入。