Graph SLAM

SLAM 的另一种求解方法是基于图(或网络,Graph)的 SLAM,称之为 Graph SLAM或基于图优化的 SLAM。在 Graph SLAM 中,移动机器人的位姿通过 Graph中的节点(Nodes)表示。由观测或航迹推测得到的位姿之间的约束通过节点之间的边(Edges)进行编码。Graph SLAM 需要考虑两个问题。一是如何通过传感器数据识别约束,即数据关联问题。该问题的解决方法称之为 SLAM 前端(Front-End),其直接处理传感器数据。二是如何校正机器人的位姿以便在给定约束的条件下获得一致的环境地图。这部分的方法称为优化或者SLAM 后端(Back-End)。为了解决该问题,要寻找所有节点的构形(Configuration)以使编码在约束中的观测似然最大化。通常,人们将负的观测似然称为误差或者网络中的能量。该问题的另外一种观点是物理学中的弹簧-质点模型,节点视为质点,约束视为连接质点的弹簧。弹簧和质点的最小能量构形即为建图问题的解。Graph SLAM 由 Lu 和 Milios在1997年提出。其后许多研究者在此基础上对Graph SLAM进行了研究。Gutmann 和 Konolige提出一个在运行增量估计算法时构筑网络和探测闭环的有效途径。Howard 等应用松弛算法定位机器人和建图。Frese 等提出一个高斯赛德尔(Gauss-Seidel)松弛的一个变种,命名为多层次松弛(multi-level relaxation,MLR)。Dellaert
和 Kaess首次使用稀疏矩阵分解解决离线 SLAM 中的线性化问题。随后,Kaess 等提出iSAM,一个利用空间记录计算稀疏分解的在线版本。最近,Konolige 等提出一种基于位姿图(Pose-Graph)方法的开源实现,用于以一种有效途径构筑线性系统。Olson 等提出一个基于随机梯度下降的有效优化方法,该方法可以有效校正即使是很大的位姿图。Valiente 等针对全景视觉的应用,提出一种改进的随机梯度下降优化方法。为了提高收敛速度,Grisetti 等
对 Olson 的方法进行了扩展,使用 2D 和 3D 节点的树参数化(Tree Parameterization)。Graph SLAM应用变量消除技术降低优化问题的维数。Bosse构建了一个两层的图结构,称之为ATLAS 框架。ATLAS 框架底层使用卡尔曼滤波构建;顶层利用全局优化方法使局部地图对齐。类似于 ATLAS,Estrada 等提出使用独立局部地图的分层(Hierarchical)SLAM。吕瑞等
提出一种基于先验点图模型的后端优化算法,依据前端提供姿态点精度的差异,为每个姿态赋予权值,然后采用改进的 Levenberg 算法进行全局优化。de la Puente 等采用期望最大化(expectation maximization,EM)方法求解 Graph SLAM 问题。Dubbelman 等针对 GraphSLAM 后端问题提出一种封闭形式的求解方法。针对 SLAM 前端问题,Olson提出一个基于谱聚类(Spectral Clustering)的带有杂点拒绝(Outlier Rejection)的前端方法。为了实现 SLAM前端的数据关联, 测试或联合相容性(Joint Compatibility)测试。
为了防止因航迹推测数据噪声过大造成 Graph SLAM 后端陷入局部极小,Hu 等采用 M 估计方法作为自举(bootstraping)技术获得可靠地初始位姿猜想。
上述三类地图创建方法中,EKF SLAM 和 RBPF SLAM 将地图创建视为最优估计问题,通过概率分布的形式进行定义,采用滤波方法对状态变量进行估计;而 Graph SLAM 将其视为最优化问题,通过定义目标函数和约束条件的形式进行定义,采用数学规划方法进行求解。与后者相比,前者的优点在于其所采用的滤波方法能够以在线方式估计地图的全后验概率;而后者则是在采集完所有传感器数据后,在建立好所有约束条件的前提下进行离线位姿估计和地图创建。EKF SLAM 与 RBPF SLAM 的最终目的是创建一致的环境地图,是否能够实现正确闭环是方法自身性能的一种体现;而 Graph SLAM 是一种基于闭环消除定位误差的地图创建方法,在通过航迹推测所估计的位姿误差较大的情况下,只能通过辅助方法建立约束条件,即在建立正确闭环的前提下,再通过优化方法校正机器人位姿和创建环境地图。


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1]。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser scan构成。将一个laser scan插入其对应的submap时,会基于submap已有的laser scan及其它传感器数据估计其在该submap中的最佳位置。submap的创建在短时间内的误差累积被认为是足够小的。然而随着时间推移,越来越多的submap被创建后,submap间的误差累积则会越来越大。因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累积误差,这就将问题转化成一个位姿优化问题。当一个submap的构建完成时,也就是不会再有新的laser scan插入到该submap时,该submap就会加入到闭环检测中。闭环检测会考虑所有的已完成创建的submap。当一个新的laser scan加入到地图中时,如果该laser scan的估计位姿与地图中某个submap的某个laser scan的位姿比较接近的话,那么通过某种 scan match策略就会找到该闭环。Cartographer中的scan match策略通过在新加入地图的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能的匹配,如果找到了一个足够好的匹配,则会将该匹配的闭环约束加入到位姿优化问题中。Cartographer的重点内容就是融合多传感器数据的局部submap创建以及用于闭环检测的scan match策略的实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值