基于滤波的方法已经在SLAM场景中占据主导地位多年,其越来越多地被基于优化的方法所取代。位姿图优化(PGO)首次在Lu等人的工作(Globally Consistent Range Scan Alignment for Environment Mapping)中被引入,但是由于计算效率低的原因,它并不是非常流行。如今,随着计算能力的提高,PGO方法已经成为最先进的方法,并且能够快速且精确地求解SLAM优化和估计问题。
基于优化的SLAM方法通常由两部分组成。第一部分通过基于传感器数据的对应关系来识别新观测数据和地图之间的约束。第二部分计算给定约束情况下的机器人位姿和地图,这能够被分为图和平滑方法。当前最先进的基于优化方法的一个例子为g2o(A general framework for graph optimization),它是一种针对非线性最小二乘问题的通用优化框架。最初的平滑方法之一为\sqrt{SAM},它由Dellaert等人提出(Square root SAM: Simultaneous localization and mapping via square root information smoothing)。一种对该方法的改进为增量式的平滑和建图(iSAM),它由Kaess等人引入(iSAM: Incremental smoothing and mapping)。iSAM对\sqrt{SAM}进行扩展以通过更新稀疏平滑信息矩阵的因子分解为整个SLAM问题提供一种有效的求解方式。iSAM的升级版本iSAM2由Kaess等人提出(ISAM2: Incremental smoothing and mapping using the Bayes tree)。这些平滑方法在GTSAM(https://gtsam. org)中实现,它是另一个最先进的优化库。
SLAM问题的一个很好的例子是所谓的位姿SLAM,它避免了构建环境的显式地图。位姿SLAM的目标是要在给定回环和里程计约束的情况下估计机器人的轨迹。这些相对的位姿测量通常使用自身运动估计、扫描匹配、迭代最近点(ICP)或者一些最小化视觉重投影误差的形式,从IMU、激光传感器、相机或者轮式里程计中获取。值得注意的是,Eustice等人和Lenac等人提出的方法为基于滤波的位姿SLAM算法,但是本文的关注点为实现基于优化的位姿SLAM的方法。
最流行的优化方法有g2o、Ceres Solver(http:// http://ceres-solver.org)、GTSAM和SE-Sync(特殊欧式群SE(n)上的同步)(SE-Sync: A certifiably correct algorithm for synchronization over the special Euclidean group)。文献中很少有比较这些方法的工作。例如,Latif等人提供了视觉SLAM的概述,并且将g2o、GTSAM和HOG-Man作为后端进行比较。Carlone等人讨论位姿图估计中旋转估计的重要性,并且在基准数据集上将g2o和GTSAM与不同的旋转估计技术进行比较。Li等人在g2o框架下比较不同的优化算法。Zhao等人提出统一的SLAM框架——GLSLAM,它提供了各种SLAM算法的实现,还能够对不同的SLAM方法进行基准测试。然而,据我们所知,目前没有一种统一的方式来比较g2o、Ceres、GTSAM和SE-Sync。本文的目的为以统一的方式来描述这些方法,并且在一系列公开可用的合成位姿图数据集和真实世界位姿图数据集上对它们进行评估,如下图所示。
本文的目标是要通过实验评估上一节中描述的优化框架,并且比较它们。出于这个目的,本文在总计算时间和目标函数的最终值(由公式(2)描述)方面考虑它们的性能。本文使用公开可用的合成基准数据集和真实世界的基准数据集。 A.实验设备
实验是在配备有八核Intel Core i7-6700HQ CPU、2.60GHz运行频率和16GB内存的Lenovo ThinkPad P50上进行的。该计算机运行Ubuntu 20.04系统。g2o、Ceres和GTSAM框架选择相同的求解器Levenberg-Marquardt,而SE-Sync使用黎曼置信域(RTR)方法。每种算法限制最大迭代100次。停止条件基于达到最大迭代次数和相对误差减少。SE-Sync使用一种稍微不同的方法,所以必须指定一种额外的基于黎曼梯度范数的条件。相对误差减少的公差范围被设置为10^{-5},以及梯度的范数被设置为10^{-2}。根据SE-Sync工作中的建议来选择参数。Carlone等人研究姿态初始化对于寻找全局最优的影响(Initialization techniques for 3D SLAM: A survey on rotation estimation and its use in pose graph optimization)。受到该工作的启发,我们还在优化过程之前进行位姿图初始化。为了取得更好的结果,我们使用生成树方法来获取初始的位姿图。 B.基准数据集
Carlone等人获取六个两维的位姿图,包括两个真实世界的位姿图和四个在仿真中创建的位姿图。INTEL和MIT位姿图是真实世界的数据集,它们通过处理在西雅图Intel Research Lab和MIT Killian Court采集的原始轮式里程计和激光雷达传感器测量数据来创建。M3500位姿图是一个仿真的曼哈顿世界(Fast iterative alignment of pose graphs with poor initial estimates)。M3500a、M3500b和M3500c数据集是M3500数据集的变体,它们在相对姿态测量数据中加入高斯噪声。噪声的标准偏差分别为0.1、0.2和0.3弧度。Carlone等人还获取六个三维的数据集。位姿图Sphere-a、Torus和Cube在仿真中创建,其中Sphere-a数据集是由Stachniss等人发布的一个有挑战性的问题(http://www.openslam.org/)。其它三个位姿图数据集是真实世界的数据集。Kummerle等人引入Garage数据集(Autonomous driving in a multi-level parking structure),Cubicle和Rim数据集是通过在来自佐治亚理工学院RIM中心的3D激光传感器的点云上使用ICP方法来获取的。所有这些位姿图在本文第一张图中可视化,图中显示它们的里程计和回环约束。表格I中包含每个数据集的节点和边的数量。这些数量确定了优化过程中参数的数量和问题的复杂度。