4. 多源数据融合方法

无人机多源定位的核心难题在于:GNSS、IMU、视觉、气压计、磁力计等传感器各有各的坐标系、采样率、噪声特性和失效模式。融合方法要回答三个问题——用什么状态量描述位姿、如何用观测修正预测、在传感器失效或切换时如何保持估计连续。本节按"滤波—优化"两条主线梳理六类主流方法,并给出适用场景判断依据。

一、核心原理:预测与校正的闭环

几乎所有融合方法都遵循同一套贝叶斯递推逻辑:用运动模型把上一时刻状态推到当前时刻(预测),再用当前观测对预测做加权修正(校正)。区别在于状态分布如何表示、线性化如何处理、历史信息保留多少。

  • 卡尔曼滤波(KF):假设状态与噪声均为高斯分布,系统线性。用均值向量和协方差矩阵完整描述不确定性,预测与更新均为闭式矩阵运算,计算量小、实时性最好。
  • 扩展卡尔曼滤波(EKF):系统非线性时,用一阶泰勒展开在工作点附近线性化。无人机姿态动力学、GNSS 伪距观测都是非线性的,EKF 是工程上最常用的折中方案。
  • 无迹卡尔曼滤波(UKF):不做线性化,而是选取一组 Sigma 点经非线性函数传播后再统计均值和协方差,能捕捉二阶以上非线性,强非线性场景下精度优于 EKF。
  • 粒子滤波(PF):用大量带权样本近似任意分布,可处理非高斯、多峰问题,如室内 GNSS 拒止下的多假设定位,但计算量随粒子数线性增长。
  • 因子图优化(FGO):把状态和观测建模为图节点与边,通过最小化所有历史观测的残差平方和求解全局最优,可回环、可重线性化,精度高但计算随历史增长。
  • 互补滤波:利用不同传感器在频域上的互补特性,用高通保留 IMU 高频动态、低通保留 GNSS/磁力计低频基准,结构极简,常用于姿态估计。
多源融合方法:状态表示与信息利用对比 IMU 高频 GNSS 低频 视觉/激光 气压/磁力 KF / EKF / UKF 高斯假设 · 递推滤波 粒子滤波 PF 非高斯 · 多假设 因子图优化 FGO 全局最优 · 可回环 互补滤波 频域互补 · 轻量 位姿估计输出 位置 / 速度 / 姿态 协方差 / 置信度 切换与重定位触发 选型判断维度 ● 非线性强度 ● 分布是否高斯 ● 是否需回环 ● 算力与功耗 ● 传感器失效频率 ● 实时性要求 ● 历史信息价值 ● 初始化与重定位 ● 可解释与调试性 典型融合流程: 传感器时间同步 → 坐标系统一 → 运动模型预测 → 观测残差计算 → 增益/权重求解 → 状态更新 → 一致性检验 → 失效检测与切换 注:滤波类在"增益求解"处递推;优化类在"残差计算"后累积历史并整体求解。

二、方法流程与关键参数

以 EKF 为例,一个可运行的融合循环包含以下步骤。参数配置直接决定切换时的平滑程度。

# EKF 融合循环伪代码(15 维状态:p, v, q, ba, bg)
predict:
  x = f(x, u, dt)                  # IMU 积分预测
  F = jacobian(f, x)               # 状态转移雅可比
  P = F @ P @ F.T + Q              # 协方差传播,Q 为过程噪声

update(gnss):
  z_pred = h(x)                    # 预测观测
  H = jacobian(h, x)               # 观测雅可比
  K = P @ H.T @ inv(H @ P @ H.T + R)
  x = x + K @ (z - z_pred)
  P = (I - K @ H) @ P

# 关键参数建议
Q_pos = 0.05 m^2/s^3    # 位置过程噪声
Q_att = 0.01 rad^2/s^3  # 姿态过程噪声
R_gnss = 1.5 m^2        # GNSS 观测噪声
R_vis  = 0.3 m^2        # 视觉观测噪声

UKF 把上述雅可比替换为 Sigma 点传播,PF 把高斯分布替换为粒子集,FGO 则把每一步的残差加入图后统一求解。互补滤波最简单,姿态估计中常用形式为:angle = α·(angle + gyro·dt) + (1-α)·acc_angle,α 通常取 0.95~0.98。

三、适用场景对照

方法分布假设非线性处理计算量典型适用场景
KF高斯仅线性极低匀速直线、简单高度融合
EKF高斯一阶线性化低GNSS/IMU 组合导航、姿态估计
UKF高斯Sigma 点传播中强机动、大姿态角变化
PF任意样本近似高室内多假设、GNSS 拒止重定位
FGO任意迭代重线性化高视觉惯性里程计、回环校正
互补滤波频域互补不显式处理极低低成本飞控姿态解算

四、案例:GNSS 失效时的融合切换

某巡检无人机在楼宇间飞行,GNSS 由 12 颗星骤降至 3 颗,水平精度从 1.2 m 恶化到 8 m。此时若继续以固定 R 值融合,位置估计会被拖偏。工程做法是:

  1. 用新息协方差与理论协方差之比做卡方检验,判定 GNSS 观测异常;
  2. 将 R_gnss 动态放大 10~50 倍,降低 GNSS 权重,让 IMU 与视觉主导;
  3. 若持续失效超过 2 s,切换到视觉惯性里程计,并启动重定位线程;
  4. GNSS 恢复后不立即全权重接入,而是用 3~5 s 斜坡恢复,避免状态跳变。
切换的本质不是"换一个滤波器",而是调整各观测的权重与置信度。滤波器的协方差 P 和观测噪声 R 就是权重的直接表达。

五、常见误区与复盘

误区一:认为 UKF 一定优于 EKF。在弱非线性、高采样率场景,EKF 精度与 UKF 接近,但计算量更小。盲目上 UKF 可能挤占飞控算力。

误区二:忽略时间同步。IMU 200 Hz、GNSS 5 Hz、视觉 30 Hz,若不做时间对齐,融合残差中会混入运动误差,表现为"越融合越漂"。

误区三:FGO 窗口无限增长。不做滑窗或边缘化,计算量会随时间线性上升,最终无法实时。通常保留最近 5~10 s 关键帧。

误区四:互补滤波参数一成不变。α 应根据机动强度自适应调整,高动态时提高陀螺权重,悬停时提高加速度计权重。

复盘时建议记录三类数据:各传感器残差序列、协方差 P 的对角线变化、切换触发时刻与恢复时间。这三组数据能直接定位是模型不准、噪声参数失配,还是切换逻辑过于激进。

选型口诀:线性低算力用 KF,常规组合用 EKF,强非线性用 UKF,多假设非高斯用 PF,要回环高精度用 FGO,姿态轻量用互补滤波。切换时先调权重,再换方法。