【论文翻译】RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for

论文:RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for large-scale and long-term online operation
作者:Mathieu Labbé | François Michaud
翻译:YC

——————————————————————————————————————————————————
 

RTAB-MAP作为一个开源激光雷达和视觉SLAM库,用于大规模和长期在线操作

摘要

自2013年以来,实时的、基于外观的建图(RTAB-Map)为一个开放源代码库被发布,作为一种基于外观的闭环检测检测方法,它与内存管理一起处理大规模和长期的在线操作。然后,它开始在各种机器人和移动平台上实现同步定位和建图(SLAM)。由于每个应用场景对传感器、处理能力和运动都有自己的限制,因此需要考虑一个问题,即在成本、准确性、计算能力和易集成性方面,哪种SLAM方法最适合某种应用。由于大多数SLAM方法都是基于视觉或激光雷达的,因此很难进行比较。因此,我们决定扩展RTAB-MAP以支持视觉和激光雷达SLAM,在一个包中提供一个工具,允许用户使用不同的机器人和传感器来实现和比较用于各种场景的3D2D解决方案。本文介绍了RTAB-MAP的扩展版本在大量流行的现实世界数据集(如KittiEurocTum rgb-dMIT Stata Center on Pr2 Robot)中的应用方面的定性的、定量的性能比较,从实践的角度概述了视觉和激光雷达SLAM在自动导航应用场景中的优势和局限性。

K E Y W O R D S

感知、位置估计、SLAM

1引言

实时基于外观的建图(rtab-map)(labb_&michaud,2013年、2017年)是我们的开源库,它使用内存管理方法实现循环关闭检测,限制了地图的大小,以便循环关闭检测始终在固定的时间限制下处理,从而满足长期和大规模环境测绘。RTAB-MAP于2009年启动,并于2013年作为开放源代码库发布,此后扩展为一种完整的基于图形的同步局部化和建图(SLAM)方法(Stachness、Leonard和Thrun,2016年),用于各种设置和应用(Chen等人,2015年;Foresti等人,2016年;Goebel,2014年;Laniel等人,2017年)。因此,RTAB-MAP已经发展成一个跨平台的独立C++库和一个机器人操作系统(ROSPACKAGE 2,由实际需求驱动,如:

•在线处理:SLAM模块的输出在接收到传感器数据后应限制为最大延迟。尤其是对于基于图的SLAM,随着图的增长,需要更多的处理时间来检测循环关闭、优化图和组装图。此外,与控制、导航、避障、用户交互、对象识别等其他处理模块集成也可能限制中央处理单元(CPU)可用于SLAM的时间。因此,有可能限制计算负载有助于避免其他模块出现滞后问题,甚至有必要防止出现不安全情况。

•稳健和低漂移里程表:虽然环路闭合检测可以纠正大部分里程表漂移,但在现实场景中,机器人通常无法在地图上正确定位自身,这可能是因为它正在探索新的领域,或者是因为环境中缺乏识别性特征。在此期间,应尽量减小里程计的漂移,以便在定位之前仍然可以进行精确的自主导航,以避免错误地覆盖地图区域(例如,在房间入口错误地添加障碍物,使其成为封闭区域)。当环境中有足够的特征时,用摄像机和激光雷达等外部感知传感器估计里程计可能非常准确,但如果环境中的跟踪特征不再可见,仅使用一种传感方式可能会有问题,并且容易出现定位故障。使用本体感知(例如,车轮编码器、惯性测量单元[IMU])和外部感知传感器的组合将增强对里程测量估计的鲁棒性。

•鲁棒的定位:SLAM方法必须能够识别何时重新访问过去的位置(用于环路闭合检测)以更正地图。动态环境、光照变化、几何变化,甚至是重复的环境都可能导致不正确的定位或定位失败,因此,该方法应该对误报具有鲁棒性。

•实际地图生成和开发:大多数流行的导航方法都基于占用网格,因此,开发能够提供3D或2D占用网格的SLAM方法是有益的,以便于集成。此外,当环境主要是静态的时,执行建图会话,然后切换到局部化、设置内存使用和节省建图管理时间更为实际。

•多次建图(又称绑架机器人问题或初始状态问题):打开时,机器人不知道其与先前创建的建图的相对位置,因此无法规划到先前访问的位置的路径。为了避免机器人从0开始重新启动建图过程 或 在启动建图之前在先前构建的地图中对自身进行定位,多次建图允许SLAM方法在启动时使用自身的参考来初始化一次新建图,并且当遇到以前访问的位置时,可以计算两个建图之间的转换。这就带来了这样的好处:当只需要重新建图一小部分或添加一个新区域时,避免重新建图整个环境。由于可用SLAM方法的多样性,确定针对特定平台和应用程序使用哪种方法是一项困难的任务,主要是因为它们之间缺乏比较分析。SLAM方法通常是基于视觉的(Fuentes‐Pacheco、Ruiz‐Ascecio和Rend‐N‐Mancha,2015)或仅基于激光雷达的(Thrun,2002),并且通常以只有照相机或激光雷达的数据集为基准进行基准测试,但不同时使用两者,因此很难对它们进行有意义的比较。更重要的是,当它们的实现不可用、只离线运行或缺少机器人平台上所需的输入格式时。ROS(Quigley等人,2009年)于2008年推出,极大地促进了传感器数据格式的标准化,从而提高了机器人平台之间的互操作性,并使比较SLAM方法成为可能。但是,集成在ROS中的视觉SLAM方法通常不会在自主机器人上进行测试:仅通过远程操作或人类移动传感器进行SLAM(Dai、Nie_ner、Zoll_fer、Izadi和Theobalt,2017年;Engel、St_ckler和Cremers,2015年;Mur-Artal和Tard_s,2017年)。这避免了一些tf(transform library;foote,2013)处理,这种处理需要根据机器人基架转换输出以满足ROS坐标框架转换。它还避免了需要与导航算法兼容的地图输出(例如,二维或三维占用网格)来规划路径和避免障碍。此外,上面概述的一些实际要求并不总是通过SLAM方法来解决,因此限制了比较。

因此,由于rtab-map的发展是为了满足这些实际需求,我们决定进一步扩展rtab-map的功能,以比较自主机器人导航的视觉和激光雷达SLAM配置。RTAB-MAP是一种以内存管理为核心的闭环方法,它独立于所使用的里程计方法,这意味着它可以通过视觉里程计、激光雷达里程计甚至车轮里程计进行反馈。这意味着RTAB-MAP可用于实现视觉SLAM法、激光雷达SLAM法或两者的混合,从而可以比较真实机器人上的不同传感器配置。本文描述了RTAB地图库的扩展版本,并演示了其用于比较最先进的视觉和激光雷达SLAM方法的用途,从而概述了两种自主导航模式之间的实际局限性。论文的组织结构如下。

第2节简要介绍了目前流行的SLAM方法,与ROS兼容,可用于机器人进行比较评估。

第3节介绍了RTAB-MAP扩展版本的主要组成部分。

第4节使用RTAB‐Map通过使用标准离线和在线数据集比较其视觉和激光雷达SLAM配置的轨迹性能:Kitti数据集用于户外立体声和3D激光雷达自动建图;Tum红绿蓝深度(rgb-d)数据集用于手持RGB-D建图;用于无人机上立体建图的欧洲数据集;以及比较PR2机器人上室内立体、RGB-D和二维激光雷达SLAM配置的麻省理工学院斯塔塔中心数据集。

第5节根据使用的传感器评估地图质量和计算性能变化,并显示在线地图的内存管理效果。

最后,第6节根据观察到的结果,提出了通过使用RTAB-MAP获得的关于自主机器人SLAM应用传感器选择的指南

2在ROS上可使用的、流行的SLAM方法

通过ROS有多种开源SLAM方法可供选择。在本节中,我们将回顾最流行的几种方法,以概述它们的特点,并根据输入和输出来定位RTABMap所涵盖的内容,以处理SLAM方法的比较研究。

让我们从以下基于激光雷达的方法开始:

•gmapping(grisetti,stachness,&burgard,2007)和tinyslam(steux&el hamzaoui,2010)是两种使用粒子过滤器估算机器人轨迹的方法。只要有足够的估计粒子,且实际位置误差与输入里程计的协方差相对应,粒子滤波器就会收敛到一个能很好地表示环境的解,特别是对于存在环路闭合的GMAPping。GMAPping是ROS的默认SLAM方法,已被广泛用于从二维激光扫描中导出环境的二维占用网格图。创建地图后,它可以与自适应蒙特卡罗定位(Fox、Burgard、Dellaert和Thrun,1999)一起用于定位和自主导航。

•Hector Slam(Kohlbrecher、Meyer、Vonstryk和Klingauf,2011年)可以利用低计算资源的二维激光雷达创建快速的二维占用网格图。事实证明,在真实的自主导航场景中,如RoboCup救援机器人联盟竞赛(Kohlbrecher等人,2016年),它可以生成非常低的漂移定位。它还可以使用外部传感器(如IMU)来估计机器人在3D中的位置。但是,Hector Slam并不完全是一种全Slam方法,因为它不检测到回路闭合,因此在访问以前的定位时,地图无法更正。Hector Slam不需要外部里程计,这在机器人没有外部里程计的情况下是一个优势,但在没有很多几何约束的环境中操作时可能是一个劣势,限制了激光扫描匹配性能。

•基于libpointmatcher库(Pomerleau、Colas、Siegwart和Magnenat,2013年),ETH苏黎世自治系统实验室(Ethzasl)ICP-Mapper4可用于创建二维激光雷达的二维占用网格图,以及二维或三维激光雷达的组装点云。但与Hector Slam类似,该方法不检测循环关闭,因此随着时间的推移地图错误无法纠正。

•Karto Slam(Vincent、Limketkai和Eriksen,2010年)、Lago Slam 5(Carlone、Aragues、Castellanos和Boanna,2012年)和Google制图师(Hess、Kohler、Rapp和Andor,2016年)是基于激光雷达图的Slam方法。它们可以从图形表示中生成二维占用网格。谷歌地图绘制器也可以作为背包地图平台,因为它支持3d激光雷达,从而提供3d点云输出。在建图时,它们创建由图中的约束链接的子对象。当检测到环路闭合时,重新优化子脉冲的位置,以纠正传感器噪声和扫描匹配精度带来的误差。与Hector Slam不同,外部里程计可以在几何复杂度较低的环境中获得更强大的扫描匹配。

•Berkeley局部化和建图(Blam)6是一个基于激光雷达图的SLAM,仅支持3D激光雷达用于环境的3D点云生成。从在线文档(这是唯一可用的文档)中,当机器人访问以前的位置时,通过扫描匹配在局部检测到环路闭合,然后使用Georgia Tech平滑和建图(GTSAM)优化地图(Dellaert,2012)。这意味着blam无法关闭大型循环,对于这些循环,局部扫描匹配将无法正确注册。

•Segmatch(Dub_et al.,2016)是一种基于3d激光雷达的环路闭合检测方法,也可用作基于3d激光雷达图的SLAM。通过匹配从激光点云创建的3D段(例如车辆、建筑物或树木的部分)来检测环路闭合。

在这些基于激光雷达的SLAM方法中,只有Segmatch可用于多次或多机器人建图(Dub_et al.,2017)。

关于视觉SLAM,存在许多开源方法,但在机器人上使用的方法不多(请咨询Zollh_fer等人。(2018年)审查以三维重建为重点的方法)。对于导航,为了避免处理尺度模糊,我们将审查限制在能够在绘制地图时估计环境真实尺度的方法(例如,使用立体和RGB-D相机或视觉-惯性里程表),从而将结构排除在运动或单目撞击方法之外,如平行跟踪和测绘(PTAM)(Klein)&Murray,2000年),半直接视觉里程测量(SVO)(Forster,Pizzoli,&Scaramuzza,2014年),规范化单目深度估计(Remode)(Pizzoli,Forster,&Scaramuzza,2014年),dt-slam(Herrera,Kim,Kannala,Pulli,&Heikkil_,2014年),大规模直接单目slam(LSD-slam)(Engel,Sch_ps,&Cremers,2014年)或定向快速旋转b里夫(Orb)Slam(Mur-Artal、Montiel和Tardos,2015年)。以下视觉SLAM方法不会随着时间的推移而受到这种尺度漂移的影响。

•Maplab(Schneider等人,2018年)和Vins‐Mono(Yi等人,2017年)最近作为基于视觉-惯性图的SLAM系统发布。仅使用IMU和摄像头,它们就可以提供用于定位的可视地图。maplab工作流程分两步完成:在开环阶段仅使用视觉-惯性里程测量法记录数据;然后离线完成地图管理(即环路闭合检测、图形优化、多次和密集地图重建)。然后可以在局部化模式下使用生成的视觉地图。相反,VIN-Mono的地图管理过程是在线完成的。对于导航,可以提供在图形处理单元(GPU)上计算的局部截断有符号距离场(TSDF)体积图,用于避障和路径规划。为了在大规模环境中保持处理时间限制,vins‐mono限制了图的大小,首先删除没有循环关闭的节点,然后根据图的密度删除其他节点。

•Orb-Slam 2(Mur-Artal&Tard_s,2017)和Stereo Parallel Tracking and Mapping(S-PTAM)(Pire等人,2017)是目前最先进的基于功能的视觉Slam方法中的两种,可用于立体摄像机。最近,Proslam(Schlegel、Coloi和Griesti,2017)发布(目前仅提供基准工具),使用著名的视觉SLAM技术提供全面的开源软件包。对于ORB-SLAM2,它也可以与RGB-D相机一起使用。它们都是基于图形的SLAM方法。对于ORB-SLAM2和S-PTAM,当使用dbow2(g_lvez-l_pez&tard_s,2012)检测到环路闭合时,使用束调整优化地图。为了避免影响相机跟踪帧速率性能,在一个单独的线程中对环路闭合后的图像进行了优化。对于Proslam,通过直接比较地图中的描述符来检测循环闭包,而不是使用一种包字方法。对于所有这些方法,环闭合检测和图形优化处理时间都随着地图的增长而增加,这使得环闭合校正在被检测到后有明显的延迟。这些方法保持稀疏的特征图。如果没有占用网格或密集点云输出,那么就很难在真正的机器人上使用。

•密集视觉里程计(DVO)-Slam(

  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值