RTAB-Map
Labbé 2019 · 论文
一句话总结 — 一个具有内存管理机制的多传感器开源SLAM库,支持RGB-D、双目和LiDAR,其有界时间的回环检测使其能够实现大规模、长时间以及多会话运行。
问题
长时间运行的SLAM会积累一个不断增长的地图,而对所有已存储位置进行扫描的回环检索方式也会随之增长——最终会违反实时性约束。对于需要运行数小时、数天甚至跨多个会话的机器人而言,无论探索时长如何,回环检测都必须在有界时间内完成。另一方面,现实世界中的机器人搭载着各种不同的传感器组合(室外用双目、室内用RGB-D、2D/3D LiDAR、轮式里程计),但大多数研究系统只支持一种特定配置,并仅在纯相机或纯LiDAR数据集上进行评测,这使得视觉与LiDAR的比较——更不用说实际部署——变得困难。
方法与架构
RTAB-Map是一个基于图优化的SLAM节点,将里程计视为外部可替换的输入。地图本身是一个图:每个节点存储一个里程计位姿、压缩后的原始传感器数据、视觉词汇以及一个局部占据栅格地图,以固定检测频率创建;边(邻居关系、回环关系、邻近关系)携带刚体变换,用以约束图优化。
- 可插拔的里程计前端:内置的视觉里程计可运行帧到帧(F2F)或帧到地图(F2M)模式:GFTT特征点(BRIEF描述子,F2M采用最近邻距离比匹配,F2F采用光流),恒速运动模型预测以限制搜索窗口,PnP RANSAC运动估计,随后进行局部光束法平差;LiDAR里程计通过libpointmatcher运行扫描到扫描或扫描到地图的ICP(点到点或点到面)。外部数据源(轮式里程计、VIO、ORB-SLAM2的跟踪模块、LOAM)可以同样的方式接入,多个残差项也可以融合为一个估计值(书中的表述形式):
- STM → WM → LTM内存管理机制:新节点先进入短期记忆(STM)缓冲区,然后进入固定大小的工作记忆(WM);只有WM参与回环检测,因此检测代价为,与地图总规模无关。一种复习(rehearsal)机制会为节点赋予权重(视觉上相似的连续节点会提高该节点的权重);当更新耗时超过固定阈值时,WM中权重最低、时间最久的节点会被转移到长期记忆(LTM)中,而一次回环检测会将某个位置的图邻域从LTM重新取回WM中。
- 基于贝叶斯外观的回环检测:特征点被量化为增量式词袋词汇;tf-idf似然值更新一个贝叶斯滤波器,用以估计当前节点是重访了WM中的某个位置,还是一个新地点。当假设通过阈值检验后,变换的计算方式与视觉里程计中相同的PnP运动估计一致,并在有扫描数据时通过ICP进行精细化。
- 邻近检测:图中距离较近的节点(搜索深度有界,因此复杂度保持有界)通过ICP扫描配准进行匹配——这使得系统在反向穿越走廊时(相机无法闭合回环的场景)也能实现定位。
- 带回环剔除的图优化:TORO、g2o或GTSAM(默认)对位姿图进行优化;若某条经过优化的边的变换变化量超过其平移方差的一个设定倍数,新的回环/邻近边就会被剔除——以防范虚假的位置识别。
- 实用输出与多会话支持:OctoMap、2D占据栅格地图以及点云输出可直接组装供ROS导航栈使用;启动时,一个新会话会开始构建自己的地图,而与过往会话的一次回环检测会计算出会话间的变换,从而合并图结构。
实验结果
这篇发表于《Journal of Field Robotics》的论文在KITTI、TUM RGB-D、EuRoC以及MIT Stata Center PR2数据集上评测了RTAB-Map的视觉与LiDAR配置。在KITTI上(ATE,单CPU核心):LiDAR S2S模式在序列00上达到1.0 m,平均里程计耗时为62毫秒/帧;双目F2M模式为1.0 m,耗时82毫秒;基于ORB-SLAM2的里程计在RTAB-Map中是精度最高的视觉方案(在11个序列中的9个上取得最佳ATE,10个上取得最佳平移误差),但在单核上每帧耗时超过100毫秒。高速公路序列01揭示了传感器模式之间的权衡:LiDAR里程计漂移严重(S2S为24.0 m,几何稀疏的扫描导致俯仰角估计不佳),而双目F2M利用远处的视觉特征达到4.7 m。在KITTI里程计排行榜上,RTAB-Map(F2M,双目)取得1.26%的平移误差/0.0026 deg/m的旋转误差——接近ORB-SLAM2(1.15% / 0.0027)和LSD-SLAM(1.20% / 0.0033),而LOAM为0.61%。最初的IROS 2014内存管理论文表明,即使在拥有数千个位置的地图上,回环检测处理时间也保持恒定——每帧低于700毫秒——而JFR版本则展示了多会话建图以及内存管理机制如何在地图不断增长时仍保持在线运行的实时性(完整的计算性能研究详见论文)。
对SLAM的意义
RTAB-Map是实际机器人应用中部署最广泛的SLAM系统之一:其有界时间回环检测、对几乎所有常见传感器配置的支持以及开箱即用的ROS集成,使非专业人士也能以最少的配置获得可靠的建图能力。当你需要的是一个鲁棒、功能齐全、可在真实机器人上运行的SLAM栈,而不是一个研究原型时,RTAB-Map是首选方案,其内存管理设计至今仍是长期SLAM可扩展性的参考方法。
相关条目
- RGBD-SLAM-V2
- 视觉地点识别(VPR)
- 位姿图优化
- ORB-SLAM2
- LOAM
- 鲁棒位姿图优化 —— RTAB-Map的剔除检验所解决的正是同一个虚假回环问题