60 秒回答模板

多传感器融合的核心是先定义系统状态,比如位置、速度、姿态、角速度、bias 等,再定义每种传感器能观测状态的哪一部分以及噪声水平。卡尔曼滤波可以理解成预测和更新两步:预测阶段用运动模型和上一时刻状态估计当前状态,同时协方差变大;更新阶段用传感器观测和观测模型计算残差,根据预测不确定性和观测噪声得到 Kalman Gain,再修正状态和协方差。多传感器场景下,高频 IMU 可做预测,低频 GPS、视觉、编码器或磁力计按时间戳异步更新。工程重点是时间同步、坐标系和外参、Q/R 协方差设置、异常观测 gating、丢帧处理和数值稳定。线性系统用 KF,非线性用 EKF/UKF 或误差状态滤波,最后用日志回放和真值对比验证误差、漂移和延迟。

考点 两步循环
难度 真实面经题
回答目标 用状态、预测、观测更新、协方差和异常处理解释卡尔曼滤波式多传感器融合。

深入解析

01

融合先定义状态

不能一上来就说套滤波器。要先定义需要估计的状态,例如位置、速度、姿态、角速度、传感器 bias 或尺度,再定义每个传感器的观测模型和噪声。

02

预测反映模型可信度

预测阶段用运动模型从上一时刻推到当前时刻,例如匀速模型、IMU 积分或系统动力学。过程噪声 Q 表示模型不确定性,Q 越大代表越不相信预测,协方差会增大。

03

更新反映观测可信度

更新阶段比较预测观测和真实观测的残差,用观测噪声 R 和预测协方差计算 Kalman Gain。观测越可信、预测越不确定,更新权重越大;观测噪声大时,滤波器更相信模型预测。

04

多传感器通常异步

实际系统中 IMU 高频、GPS 或视觉低频,传感器延迟也不同。常见做法是按时间戳维护状态预测,某个观测到来时执行对应观测更新,必要时插值、外推或做延迟补偿。

05

异常值不能直接更新

传感器会跳变、遮挡、磁干扰或通信异常。更新前要检查残差、协方差、物理边界和数据新鲜度,异常观测要拒绝、降权或触发故障状态,否则一次坏观测就可能把状态拉偏。

06

验证参数不是靠感觉

Q/R 调参要结合传感器标定、静态噪声、动态残差和真值轨迹。验证看估计误差、协方差一致性、收敛速度、漂移、延迟和失效恢复,不能只看曲线变平滑。

text

多传感器滤波更新伪代码

predict(dt):
  x = f(x, u, dt)
  P = F * P * F^T + Q

update(z, sensor):
  y = z - h_sensor(x)
  S = H * P * H^T + R_sensor
  if y^T * S^-1 * y > gate: reject z
  K = P * H^T * S^-1
  dx = K * y
  x = boxplus(x, dx)     # pose/orientation states use manifold update
  P = (I - K*H) * P * (I - K*H)^T + K * R_sensor * K^T
  • 姿态、bias 等非线性状态不要简单逐元素相加,工程上常用 error-state 或 boxplus 更新;Joseph form 协方差更新更利于保持 P 对称正定,异常观测先用 Mahalanobis gating 拒绝。

易错点

  • 把多传感器融合说成取平均,没有状态模型和观测模型。
  • 只背预测更新公式,不解释 Q、R、协方差和 Kalman Gain 的意义。
  • 忽略时间同步、坐标系和外参,导致不同传感器观测不可比。
  • 坏观测直接更新,没有残差 gating 和失效处理。
  • 调参只追求曲线平滑,牺牲响应速度或掩盖真实误差。

面试官追问

Q 和 R 怎么调?

先根据传感器静态噪声、标定数据和模型误差给初值,再看动态残差、协方差一致性和真值误差。Q 大更相信观测,R 大更相信预测。

EKF 和普通 KF 区别是什么?

普通 KF 假设线性状态转移和观测模型;EKF 用非线性模型,并在当前估计附近线性化,用雅可比矩阵近似传播协方差。

异步传感器怎么融合?

按时间戳驱动状态预测,哪个传感器观测到来就用对应观测模型更新;延迟观测需要缓存状态、回溯更新或做时间补偿。