以下出自【泡泡机器人SLAM】微信公众号,
本文决定扩展RTAB-Map以支持视觉和激光雷达SLAM,在一个软件包中提供一个工具,允许用户使用不同的机器人和传感器实现和比较各种3D和2D对于各种应用的解决方案。本文介绍了RTAB-Map的扩展版本及其在大量流行的真实数据集进行定量和定性的比较,(例如KITTI, EuRoC, TUM RGB-D, MIT Stata Center)。从自主导航应用的实用角度概述视觉和激光雷达SLAM配置的优势和局限性。
RTAB-Map,( for Real-Time Appearance-Based Mapping)用于基于外观的实时建图[Labb ́e and Michaud, 2013,Labb ́e and Michaud, 2017], 是一个通过内存管理方法实现回环检测的开源库,。从限制地图的大小以使得回环检测始终在固定的时间限制内处理,从而满足长期和大规模环境在线建图要求。 从2013年开始并于2013年作为开源库发布,RTAB-Map已经扩展到完整的基于图的SLAM方法[Stachniss et al., 2016] ,被用于各种设置和应用[Laniel et al., 2017, Foresti et al., 2016, Chen et al., 2015, Goebel, 2014] 。 因此RTAB-Map已经发展成为一个跨平台的独立C ++库和一个ROS包,且由以下实际需求驱动着:
在线处理
鲁棒而低漂移的里程计
鲁棒的定位
实用的地图生成和开发
多会话的建图(又称为机器人绑架问题或初始化状态问题)
1、RTAB-Map 整体描述
图1 RTAB-Map ROS节点的框图。所需输入是:TF,用于定义传感器相对于机器人底座的位置; 来自任何来源的里程计(可以是3DoF或6DoF); 其中一种相机输入(一个或多个RGB-D图像,或双目立体图像),且带有相应的校准消息。可选输入:2D激光的雷达扫描,或3D激光的点云。然后,来自这些输入的所有消息被同步并传递给graph-SLAM算法。输出的是:Map Data,包含最新添加的节点(带有压缩传感器数据)和Graph; Map Graph,没有任何数据的纯图;TF,矫正过的里程计; 可选的OctoMap(3D占用栅格地图); 可选的稠密点云地图; 可选的2D占用栅格地图。
2、视觉里程计
图2 RGBD里程计和双目立体视里程计的ROS节点框图。TF定义相机相对于机器人基座的位置,并作为输出来发布机器人基座的里程计变换。对于RGB-D相机或立体相机,管道是相同的,除了多计算一步相应的立体深度信息,以便稍后确定检测到的特征的深度。可以有两种里程计的方法:绿色的帧到帧(F2F)方法,红色的帧到地图(F2M)方法。
3、激光里程计
图3 ICP里程计ROS节点框图。TF定义激光雷达相对于机器人基座的位置,并作为输出以发布机器人基座的里程计变换。可以有两种里程计的方法:绿色的扫描到扫描(S2S)方法,红色的扫描到地图(S2M)方法。 这些方法还可以选择使用恒速模型(粉红色)或其他里程计(蓝色)进行运动预测。 对于后者,输入测距的校正发布在TF上。
4、局部地图
图4 STM的局部占用栅格地图创建。 依赖的参数(由椭圆显示),可选用激光扫描和点云输入(由棱形显示),局部占用栅格地图可以是2D或3D。
5、全局地图。
图5 全局地图集成。依赖于局部地图创建地图的类型(见图4)。当只有3D局部占用栅格地图可用于生成3D占用栅格地图(OctoMap)及其2D地图。
主要结果
第一部分:里程计比较
1、 KITTI数据集
表3 不同里程计方法和不同传感器的RTAB-Map在KITTI序列中相应的ATE(m)结果
表4 不同里程计方法和不同传感器的RTAB-Map在KITTI序列中相应的平均平移错误率(%)结果
表5 目前KITTI里程计的积分榜状态
2、TUM数据集
图9 三个TUM序列的轨迹,使用RGB-D的RTAB-Map里程计F2M(蓝色)Ground Truths(黑色)。 由RTAB-Map估计的位姿与Ground Truths之间的误差以红色显示。
表6 不同里程计方法和不同传感器的RTAB-Map在TUM序列中相应的ATE(cm)结果
3、EuRoC数据集
图 10 对于EuRoC三个序列的实验,上面是使用双目立体里程计F2M的RTB-Map的轨迹,下面是使用视惯里程计的OKVIS的轨迹。估计的位姿(蓝色)与Ground Truths(黑色)之间的误差以红色显示。
表7 不同里程计方法的RTAB-Map在EuRoC序列中相应的ATE(cm)结果
4、MIT Stata Center
图11 RTAB-Map的WheelIMU→S2M与其他基于激光雷达的SLAM方法的比较
第二部分:地图评估
图12 局部占用栅格地图示例。障碍细胞以红色显示,空的和地面的栅格以绿色显示。 黑色网格仅是视觉参考,单元格大小为1米。
图13 2D占用栅格地图示例
图14 使用RGB-D相机的OctoMap地图,a)深度16,b)深度14
第三部分:内存性能评估
图15(a)为没有内存管理的情况,(b)为有内存管理的情况,RTAB-Map ROS节点内的每个模块所需的处理时间。