4. 状态估计与传感器融合高频题:卡尔曼滤波、扩展卡尔曼、粒子滤波、IMU/编码器融合、常见追问
知识结构速览:本模块覆盖四大核心融合算法(KF、EKF、PF、IMU+编码器),高频考点集中在算法原理、适用场景、工程调参与追问陷阱。
状态估计方法对比表
| 方法 | 适用系统 | 噪声假设 | 计算量 | 面试关键词 |
|---|---|---|---|---|
| 卡尔曼滤波 (KF) | 线性高斯 | 高斯白噪声 | 低 | 预测-更新闭环,协方差递推 |
| 扩展卡尔曼 (EKF) | 弱非线性/可微 | 高斯 | 中 | 一阶泰勒展开,雅可比矩阵 |
| 粒子滤波 (PF) | 非线性非高斯 | 任意分布 | 高 | 重要性采样,重采样,退化和贫化 |
| IMU+编码器融合 | 轮式/足式机器人 | 互补滤波或KF | 低-中 | 航迹推算漂移,零点偏置,松/紧耦合 |
面试问答卡 1:卡尔曼滤波基本原理与步骤
面试问题:请解释卡尔曼滤波的基本原理和核心步骤。
面试官考察点:基础是否扎实;能否清晰讲清预测-更新闭环;是否理解协方差传播与卡尔曼增益含义。
回答框架:
- 定性说明:KF是最优线性状态估计器,利用系统模型和观测数据递推。
- 两步走:时间更新(预测状态与协方差)→ 测量更新(计算增益、修正状态、更新协方差)。
- 关键变量:状态向量x、协方差P、过程噪声Q、观测噪声R。
- 适用条件:线性系统、高斯白噪声。
简短示例回答:卡尔曼滤波分两步:第一步根据系统模型预测下一时刻状态和协方差;第二步利用传感器观测计算卡尔曼增益,融合预测与观测得到最优估计。核心假设是线性系统且噪声均为高斯白噪声,实际调试时需重点调整Q和R矩阵。
可能追问:Q和R矩阵如何设定?协方差初值P0的影响?卡尔曼增益的物理意义?如果系统模型不准会怎样?
避坑提醒:不要只背诵公式;一定要手动推导一遍两步更新公式(尤其是一维情形)。面试中常见陷阱是混淆“状态更新”和“协方差更新”的顺序。另外,强调Q/R对角矩阵假设。
面试问答卡 2:扩展卡尔曼滤波 (EKF) vs 标准卡尔曼滤波
面试问题:扩展卡尔曼滤波与标准卡尔曼滤波的核心区别是什么?什么场景下必须用EKF?
面试官考察点:对非线性处理的理解;能否讲清泰勒展开与雅可比矩阵的作用;是否知道EKF的局限(线性化误差、发散风险)。
回答框架:
- 区别:EKF对非线性函数在估计点做一阶泰勒展开,用雅可比矩阵代替状态转移/观测矩阵。
- 适用场景:系统模型或观测模型为弱非线性(如带IMU的姿态估计、机器人的里程计融合)。
- 局限性:线性化导致误差累积,强非线性下发散风险高;雅可比计算复杂。
- 替代方案:UKF(无迹变换)或PF(粒子滤波)。
简短示例回答:EKF将非线性模型在当前状态处做一阶泰勒展开,用雅可比矩阵替换线性KF中的矩阵。适用于弱非线性系统,如机器人轮速+IMU的航迹推算。缺点是线性化误差可能发散,此时可改用UKF或粒子滤波。
可能追问:写出EKF的预测和更新方程?雅可比矩阵如何推导?EKF发散如何诊断和补救?对比UKF优缺点?
加分点:回答时手动写出
F = ∂f/∂x 和 H = ∂h/∂x,并说明为什么常用一阶而非二阶(计算量/精度权衡)。能主动提到UKF的sigma点采样更优会更受青睐。
面试问答卡 3:IMU与编码器融合(常见场景)
面试问题:轮式机器人中,IMU和编码器如何融合实现定位?常见的融合框架及注意事项。
面试官考察点:实际工程经验;是否理解航迹推算漂移根源;能否区分松耦合和紧耦合;对IMU零偏和编码器滑移的处理。
回答框架:
- 任务:编码器提供轮速(短时准确长时累积误差),IMU提供加速度/角速度(高频但零偏漂移)。
- 常见方法:互补滤波(低通+高通)、KF/EKF融合(状态量:位置、速度、姿态、零偏)。
- 松耦合:分别解算再融合;紧耦合:原始数据级融合(如预积分)。
- 工程痛点:编码器滑移、IMU零偏温漂、坐标系对齐、传感器时间同步。
简短示例回答:常用方案:将编码器线速度和IMU角速度作为输入,状态量包括位置、姿态和IMU零偏,用EKF进行融合。编码器估计短期位姿,IMU修正姿态并积分加速度,零偏作为状态实时估计。需注意编码器打滑时的异常检测和IMU温补。
可能追问:互补滤波和KF的适用边界?如何检测编码器打滑?IMU预积分原理?零偏收敛需要多长时间?
避坑提醒:不要直接说“把IMU和编码器数据加权平均”。面试官希望听到状态估计框架(如EKF),并需要明确状态向量包含零偏。另外,强调“时间戳对齐”是工程关键。