我们来详细拆解一下滤波器方法(尤其是EKF-SLAM)的缺点,并系统地与图优化方法进行对比。
第一部分:滤波器方法(以EKF-SLAM为例)的缺点
扩展卡尔曼滤波器(EKF)是早期SLAM的主流解决方案,它确实基于隐马尔可夫模型(HMM) 的假设,即当前状态只依赖于上一个状态。其“预测-更新”的框架在SLAM中对应为:
- 预测: 根据机器人当前的运动(控制输入),预测它新的位姿和地图中已有路标点的位置。
- 更新: 当传感器观测到环境中的路标时,将预测值与观测值进行比较,用两者的差值( innovation )来修正整个状态向量(包括机器人位姿和所有路标点位置)。
这种方法的主要缺点如下:
-
线性化误差(Linearization Error)
- 核心问题: EKF的核心缺陷。EKF通过在均值处进行一阶泰勒展开来线性化非线性系统。当系统非线性程度高(如旋转角度大、运动模型复杂)时,这种近似会引入巨大误差。
- 后果: 导致滤波器发散(Divergence),即估计值完全偏离真实值。这要求滤波器的更新频率必须非常高,以确保线性化点与真实状态足够接近,但这在计算上往往是不可行的。
-
计算复杂度高(High Computational Complexity)
- EKF维护的状态向量的协方差矩阵的大小是
O(n²)
,其中n
是状态向量的维度(机器人位姿维度 + 3 * 路标点数量)。 - 每次更新(即使只观测到一个路标)都需要对整个协方差矩阵进行更新,计算复杂度为
O(k * n²)
,其中k
是观测到的路标数。 - 后果: 这使得EKF-SLAM无法应用于大规模环境,因为路标数量
n
增长到几千个时,计算量就会变得难以承受。
- EKF维护的状态向量的协方差矩阵的大小是
-
一致性(Consistency)问题
- 由于线性化误差,EKF往往会过度自信(Over-Confident)。它的协方差矩阵估计得过小,无法真实反映估计误差的不确定性。这意味着滤波器认为自己的估计非常准确,但实际上误差很大。
- 后果: 一个不一致的滤波器是不可靠的,因为它无法为路径规划和决策提供可信的不确定性信息。
-
脆弱的数据关联(Data Association)
- EKF严重依赖于准确的数据关联(即正确地将当前的观测与状态向量中已有的某个路标匹配)。如果数据关联出错(误匹配),错误的观测信息会通过EKF更新过程污染整个状态估计,导致灾难性的失败。
- EKF本身没有很好的机制来处理或回退错误的数据关联。
-
不是最优的(Not truly Optimal)
- 卡尔曼滤波器家族(KF, EKF)仅在系统为线性高斯模型时是最小均方误差意义下的最优估计器。EKF只是对非线性系统的近似,因此它无法保证最优性。
-
信息丢弃(Information Discarding)
- 基于马尔科夫假设,EKF只保留“当前时刻”的状态估计。它丢弃了过去的观测数据,只保留了这些信息在当前状态协方差矩阵中的“摘要”。
- 后果: 一旦发生线性化错误或数据关联错误,无法回溯和纠正,错误会一直传递下去。
第二部分:与图优化(Graph-Based Optimization)的优缺点对比
图优化是现代SLAM后端的主流方法,其代表是位姿图(Pose Graph) 和因子图(Factor Graph)。它将SLAM问题建模为一个图(Graph):
- 节点(Nodes): 表示需要估计的变量(机器人的历史位姿,有时也包括路标点位置)。
- 边(Edges): 表示节点之间的约束。包括:
- 里程计边: 连接连续位姿,由运动模型产生。
- 观测边(回环边): 连接非连续的位姿(通过回环检测),或者连接位姿与路标点。
后端优化的目标就是调整图中所有节点的位置,使得它们满足所有边构成的约束的总体误差最小。
对比表格
特性 | 滤波器方法 (EKF-SLAM) | 图优化方法 |
---|---|---|
信息利用 | 缺点: 丢弃历史信息,只保留当前状态摘要。 | 优点: 保留全部历史信息(所有位姿和观测)。 |
线性化 | 缺点: 一阶线性化,误差大,易发散。 | 优点: 通常使用非线性优化(如Gauss-Newton, Levenberg-Marquardt),多次迭代线性化,更精确,更鲁棒。 |
计算效率 | 缺点: 复杂度为 O(n²) ,不适合大规模环境。 | 优点: 利用图的稀疏性,求解器(如g2o, GTSAM)效率极高,复杂度可降至近 O(n) ,适合大规模场景。 |
一致性 | 缺点: 不一致,容易过度自信。 | 优点: 更一致,能更好地表达不确定性(尤其在优化后)。 |
回环处理 | 缺点: 处理回环困难,回环校正会影响整个状态向量,计算爆炸。 | 优点: 核心优势。增加一个回环约束就像在图中添加一条边,优化过程会全局性地调整所有相关位姿,纠正累积误差,效果显著。 |
数据关联鲁棒性 | 缺点: 非常脆弱,一次错误匹配可能导致系统崩溃。 | 优点: 相对更鲁棒。错误匹配在优化中会表现为一个“ outlier ”(异常值),可以使用鲁棒核函数(如Huber, Cauchy)来减弱其影响,或者用闭环检测的验证机制来剔除。 |
最优性 | 缺点: 次优,是近似解。 | 优点: 寻找的是全局最优(或更优)的解(在给定初始值附近)。 |
资源消耗 | 优点: 内存占用相对恒定(只维护当前状态)。 | 缺点: 内存占用随时间/位姿数量线性增长(需要存储所有节点和边)。 |
总结与比喻
-
EKF-SLAM 像一个患有短期健忘症的导航员:
- 他只看当前的一步和地图,根据上一步的位置和指南针(预测)来走,偶尔看一眼地标(更新)来纠正自己。如果他某一步走错或者看错了地标,这个错误会一直累积下去,无法回头修正,最终彻底迷路。
-
图优化 像一个拥有完美记忆和全局视野的制图师:
- 他每走一步都在地图上画一个点并记录下与前后点的关系(里程计)和看到的地标(观测)。当他走了很远突然发现回到了一个熟悉的地方(回环)时,他会把这张大地图铺开,重新审视所有走过的路径和标记,整体地进行调整和修正,从而得到一幅最准确、最一致的地图。
结论:
对于小规模、结构化、线性程度高的环境,EKF因其简单和计算量恒定仍有一定价值。然而,对于大规模、复杂、要求高精度和鲁棒性的现代SLAM应用(如自动驾驶、移动机器人),图优化方法在几乎所有方面都超越了滤波器方法,成为当今绝对的主流。其处理回环的能力和利用稀疏性的高效计算,是滤波器方法无法比拟的。