第2章 SLAM基础理论:状态估计、卡尔曼滤波、BA原理
本章定位:面试中最核心的“数学功底”考察章节。面试官会从概率框架、线性代数、优化理论三个维度快速判断你的基础扎实程度。回答需展示公式推导能力、算法演进脉络以及工程落地意识。
问答卡片1:状态估计与 MAP / MLE
| 面试问题 | 请解释SLAM中的状态估计问题,并说明最大后验估计(MAP)与最大似然估计(MLE)的区别。 |
|---|---|
| 面试官考察点 | 概率基础、贝叶斯框架、先验理解;能否用数学语言简洁描述SLAM优化本质。 |
| 回答框架 |
|
| 示例回答 | “SLAM状态估计本质是求解后验概率最大化。MAP包含先验,形如 X̂ = argmax ∏P(z|x) P(x);MLE忽略先验,只依赖观测。在ORB-SLAM中,局部BA使用MAP约束运动先验,而初始化通常用MLE。” ✅ 加分点:说出“贝叶斯网络”或“因子图” |
| 可能追问 | 追问1:为什么SLAM中MAP更常用?追问2:若先验不准确会怎样?追问3:如何避免MAP陷入局部最优? |
| 避坑提醒 | ❌ 不要只背公式,必须举例说明SLAM场景中的先验来源(如IMU预积分、匀速运动模型)。 |
问答卡片2:卡尔曼滤波与 EKF 在 SLAM 中的应用
| 面试问题 | 请讲解卡尔曼滤波的5个公式,并说明在SLAM中如何应用扩展卡尔曼滤波(EKF)? |
|---|---|
| 面试官考察点 | KF数学框架、线性化手段(雅可比)、EKF局限性;能否自然引出UKF或ESKF。 |
| 回答框架 |
|
| 示例回答 | “KF由预测和更新两步构成:x̂ₖ⁻=A x̂ₖ₋₁ + Buₖ,Pₖ⁻=APₖ₋₁Aᵀ+Q;Kₖ= Pₖ⁻Hᵀ(HPₖ⁻Hᵀ+R)⁻¹。EKF通过雅可比线性化非线性模型,在MonoSLAM中用于实时估计相机位姿和稀疏地图点。但它假设高斯噪声,且雅可比近似可能引入误差。” ✅ 加分点:提到“ESKF(误差状态卡尔曼)”处理SLAM中旋转的局部线性化 |
| 可能追问 | 追问1:EKF与UKF的本质差异?追问2:为什么EKF在SLAM中逐渐被图优化取代?追问3:ESKF如何解决方向表示问题? |
| 避坑提醒 | ❌ 切忌只背诵公式不解释“SLAM状态向量如何随时间增加?”务必说明新增路标点时的协方差扩张机制。 |
问答卡片3:光束法平差(BA)原理与作用
| 面试问题 | 请解释光束法平差(BA)的原理,以及其在SLAM后端优化中的作用。 |
|---|---|
| 面试官考察点 | 最小二乘优化理解、稀疏性利用、Schur消元、BA与图优化的关系。 |
| 回答框架 |
|
| 示例回答 | “BA通过最小化所有观测的重投影误差来联合优化相机位姿和3D点。其Hessian矩阵是稀疏的,可利用Schur消元先求相机增量再反算路标。在ORB-SLAM中,局部BA优化共视关键帧和局部地图点,全局BA在回环矫正后运行,将误差分散至整个轨迹。” ✅ 加分点:指出BA可以看作最大似然估计(高斯噪声假设下) |
| 可能追问 | 追问1:Schur消元的实现细节?追问2:BA如何应用核函数抑制外点?追问3:Huber核函数对代价的影响? |
| 避坑提醒 | ❌ 不要只说BA概念而忽略“为什么要用Schur消元”?必须解释计算复杂度从O(N³)降至O(M³)(M为相机数,N为路标数)。 |
📌 进阶思考: 面试官常会追问“为什么现代SLAM更倾向图优化而非EKF?”核心差异在于:图优化通过迭代线性化(多轮)逼近非线性最优解,而EKF只做一次线性化。尤其在大场景、长时间运行时,BA/图优化的全局一致性远超EKF。