【论文笔记】Global Localization of a Mobile RobotUsing Lidar and Visual Features
~~~ ~~~~ 全局定位是一个众所周知的问题,即在不知道机器人初始姿势的情况下估计其在学习地图中的姿势。当只有有限的激光雷达扫描时,很难用激光雷达实现全球定位,特别是在具有简单和重复的局部几何特征的环境中。相机的优点是信息丰富,但缺乏可靠和有效的定位算法,而且计算负担相对较高。在本文中,我们提出了一种快速可靠的全局定位方法,能够解决被绑架的机器人问题,其中激光雷达和相机传感器都被集成。在SLAM过程中,我们将一系列视觉关键帧引入环境地图与激光雷达。全局描述符被用来减少姿势搜索空间,局部描述符被用来进一步提高定位精度,重新定位触发机制被用来有效地解决被绑架机器人问题。 在不同条件下的室内环境中进行了一些实验,以验证所提出方法的有效性。
方法框架
~~~
~~~~
在本文中,我们提出了一种通过使用视觉特征来协助激光雷达进行全局定位的方法。同时,我们可以适应光照和场景中移动物体的变化。具体的算法框架如图1所示。首先,我们需要在预处理离线SLAM阶段创建一个混合激光雷达和视觉信息图。对于SLAM地图,我们使用占用网格的方法,用激光雷达数据表示环境,并包含一系列的关键帧及其Gist描述符,而不建立3D点地图。在相似性测量中,我们只考虑查询和关键帧之间的Gist距离中排名靠前的关键帧来进行聚类。然后使用ORB描述符进行局部2D-3D匹配,计算出查询图像和候选关键帧之间的姿势变换矩阵。在下一阶段,使用Scan2Mapscore进行定位评估,以进一步确定是否在重新定位触发机制中再次定位。如果给定了一个全局姿势,机器人将使用AMCL进入姿势跟踪过程,除非重新定位机制被触发。
场景代表
~~~
~~~~
在预处理阶段,进行离线SLAM,以建立激光雷达扫描和图像的混合地图。与传统的激光雷达SLAM方法一样,如GMapping[14]或Karto SLAM[15],环境被离散为二维的正方形单元,每个单元与[0, 1]之间的值相关联,表示单元被占领的概率。为了在激光雷达方法中引入基于图像的定位,一组关键帧通过在机器人上配备RGB-D相机来表示被占领的网格地图上的场景,这允许直接检索用于跟踪初始化的姿势建议。关键帧的选择对于实现有效的特征匹配非常有用,因为连续的帧在短时间内几乎是相同的。机器人运动的变化将导致环境中观察到的景观的变化。其次,即使机器人是静止的,周围的物体也可能随着时间的推移而移动,所以我们收集了视觉关键帧KFi,包括里程表间隔Δxi的RGB图像和深度图像。最后,建立一个帧/姿势对图。见图2。有很多方法可以解决IBL问题,但是要建立一个全局的SFM(Structure from Motions)[16]地图,会有相对较高的计算负担。在我们的方法中,局部三维点在通过全局描述符过滤后,将被用于匹配合格的关键帧,这将在下面的部分讨论。
基于关键帧的定位
~~~
~~~~
1) Gist全局描述符:Gist是图像的低维表示法。它通过将图像分割成块来编码图像的结构信息,从而提供图像的粗略描述[18]。在我们的系统中,Gist全局场景描述器被用于在跟踪初始化中快速检索姿势建议。这种方法与传统的场景分类处理步骤不同。输入的图片被作为一个整体特征来描述图像的统计或语义低维特征。这种方法的目的是为了提高场景分类的鲁棒性。因为自然图像很容易掺杂随机噪声,这种噪声会对局部处理产生灾难性的影响,而对于全局图像,可以通过平均化来减少这种影响[19]。基于上下文的方法,通过识别一个全局物体而不是场景中的一小部分物体或区域的确切边界,不需要处理孤立区域的噪声和低层次图像的变化,这就解决了分割和目标识别分类的问题[18]。从每个关键帧KFi开始,关键帧图像被分割成4乘4的瓦片,每个瓦片由3个颜色通道中每个刻度[8,8,4]方向的过滤器的平均值表示。最后,为每个关键帧计算出一个长度为960的Gist向量(344(8+8+4)=960)。有许多与使用Gist在户外场景中识别有关的工作。
2) 相似性测量:一旦每个关键帧被转化为Gist向量,我们就可以将查询图像与数据库中的关键帧进行比较,测量两个特征向量之间的不相似性。如果drs是图像各自的Gist特征向量grandgs之间的距离,那么Minkowski距离,这是一个在欧几里得空间上的度量,其有序p定义为。
在这篇文章中,数据库中每个关键帧和查询图像之间的长度为k=960的Gist向量的L2距离被详尽地计算出来。如果距离最接近顶点N,则该关键帧被认为是一个候选帧。将信息加到候选帧的地图上可以直接估计出机器人在环境中的位置。然而,由于关键帧间隔的存在和摄像机视角的不同,这个位置的估计非常粗糙。我们对候选帧进行分组,这将在重新定位触发机制中讨论,并输出一些建议的关键帧来优化摄像机的姿势。
3)进一步的姿势精炼:为了进一步提高定位精度,如果在RANSAC之后,通过ORB[20]在提议的帧中发现超过12个匹配的离群点,那么图像就会被注册,并使用PnP(n-pointperspective)[21]估计其姿势。ORB是一个快速而稳健的局部特征检测器,面向多尺度的FAST角,每个角有256位描述符,由Ethan Rublee等人在2011年首次提出[20]。由于它的计算和匹配速度非常快,而且它们对视角高度不变,这使得它们在不同视觉帧之间的特征匹配中非常稳健。12个离群值的阈值是由[22]提出的,在本文的实验中也很有效。如果应用RANSAC后的离群值大于12,那么所提出的关键帧可以用于进一步的姿势精炼。在下一阶段,PnP方法被用来估计摄像机的姿势。首先,在预处理的离线SLAM阶段,我们通过RGB图像和深度图像计算全局框架中摄像机的局部三维点。然后,给定本地和全局坐标中的点的位置,我们可以计算查询图像和建议的关键帧之间的变换矩阵,以估计查询图像的更准确的姿势。
重定位触发机制
~~~
~~~~
由于大多数最先进的定位算法不能保证永远不会失败,因此我们的方法整合了一个重新定位的触发机制,使其在某些严重的条件下更加强大。
如图4所示,在整个算法流程中,有两种基于运动连续性假设的策略。第一种是利用当前的图像检索结果Rt来预测下一个图像检索结果Rt+1的相应情况,在红框中显示为关键帧聚类。另一种是将激光雷达数据考虑在内,进一步评估机器人更可能处于图像检索和关键帧聚类提供的拟议分布中。这就是Scan2Map评分的第二个红框的内容。1)关键帧聚类:根据k-means聚类后是否有一个新的关键帧聚类,我们将决定进入下一环节的重新定位触发机制或继续跟踪机器人的姿势的时间。在相似度测量(SimilarityMeasure)过程中计算出图像之间的距离后,我们得到了n个排名靠前的候选关键帧的索引。然后我们使用k-means聚类方法对n个候选关键帧的索引进行聚类,而聚类的中心被替换成最匹配的候选帧的索引。聚类范围C由落在聚类上的候选关键帧KF的数量决定,用KFfallCi(k)t表示。
这个范围被用来评估下一个运动的可能分布,这也表明移动机器人的运动连续性。所以α-ωvmax是一个最大速度权重,用来衡量每个运动的最大距离。当下一个查询帧到来时,进行同样的聚类并比较聚类结果。只有当k-means聚类的中心不在上一个聚类结果的范围内时,这个聚类才被确认为一个新的聚类。一般来说,当机器人发生较大位移或图像相似度匹配发生较大错误时,会触发重新定位机制。见图5。
这种方法的好处是在每个循环中充分利用图像检索的结果,避免过度信任一个优秀的值而造成重复的重新定位。在聚类和确定之后,聚类中心关键帧被认为是优化摄像机姿势的拟议关键帧。
2) Scan2Map Score:一般来说,使用纯粹的基于图像的定位方法可以迅速将机器人的可能位置集中到几个可能的区域。在我们的方法中,我们将视觉和激光雷达信息整合在一起,在最大似然框架中完善了机器人的姿势。机器人在时间上的姿势被确定如下
在(3)中,概率yp(xt|zvt,mv)代表基于图像的定位模型来预测机器人的姿势。而p(xt|ˆxt-1,zvt,mv)代表关键帧聚类对连续姿势评估的影响,这是重新定位机制的第一步,已经在前面的标题中讨论过。根据[23],我们采用一种有效的方法来计算ep(zlt|xt,ml)。设ml为激光雷达平面图,zlt={z1t,z2t,znt}为激光雷达扫描图,包含n个单独的测量值(n个对应的激光雷达波束)。我们首先根据提议的机器人姿势在全局坐标参考下进行优化,将测距读数转化为激光雷达地图。被激光雷达端点zkt击中的网格单元表示为bymhit(k)。如果单元mhit(k)被占用,该单元的占用值将被添加到一个投票分数中。传感器测量的可能性由最终的投票得分来表示
我们根据Scan2Map的得分来更新关键帧集群的排序。如果在Scan2Map重新排序后,新的集群得到最高分,就可以确认发生了排序。它触发了使拟议帧的对应位置成为拟议位置估计的机制。
实验结果与讨论
A. 实验规范
如图6(a)所示,我们的实验平台是通过在Hansbot AGV上安装一个激光雷达(Hokuyo UST-10LX)和一个Xtion Pro的深度相机来实现的。该算法最终在一台装有英特尔Corei5(2.30GHZ)CPU和12GB内存的计算机上运行。在预处理阶段,在不同的环境条件下,按照图6(b)所示的路径,在GIIM办公楼的Hansboton 6楼进行了SLAM。在SLAM之后,建立了如图2所示的激光雷达扫描和图像相结合的混合地图。在我们的实验中,测绘时记录了389个关键帧。
我们测试并验证了我们的定位方法的可行性和稳健性。如图7中(a)至(f)所示,在两个典型的场景中,实验是在不同的时间进行的。在一个场景中,物品被移动。在另一个场景中,由于是晴天和阴天,室内的光照度不一样,而且有动态的人在场景中行走。在实验过程中,Hansbot被随机放置在不同的起始点(如图6(b)中的A和B)。然后,Hansbot试图在没有任何定位通知的情况下从头开始定位自己。通过我们的算法,Hansbot能够在第一眼看到场景时将自己定位在全球地图的真实位置附近,然后逐步转换到更准确的位置。当它实现了良好的定位后,我们把它传送到其他地方,测试它是否能从被绑架的机器人问题中恢复过来。
B. 实验结果与讨论
图8(a)表明,机器人处于错误的位置,它应该在图6(b)所示的位置A附近。我们的方法是在系统第一次获得图片时,公布一个全局位置进行初始化。一旦机器人得到一张输入图片(如图9所示为Query0图片),我们可以看到Hansbot很快就在全局地图中找到了自己的真实位置(如图8(b)所示),以便进一步搜索姿势。然后,另一张查询图像(如图9中的查询1图像)帮助它找到更准确的位置。图8(d)表明,机器人被绑架时,它仍然相信它的原始位置。然而,被绑架后的新查询图像触发了重新定位机制,并在全局地图上恢复了自己。
图9显示了与所选场景接近的前5个候选帧。事实上,我们在实验中选择了前20个结果作为候选帧。从图9的第一栏可以看出,即使场景中有一个移动的人,并且桌子被清除,图像检索的最佳结果(No.339、No.339和No.172)也非常接近真实场景。这是因为Gist全局场景描述符不依赖于光照变化和场景中的局部物体。同时,第一行的第94号和第121号以及其他关键帧的检索是可以预期的,因为这些场景是非常相似的。图10显示了查询图像的Gist描述符与数据集中所有关键帧之间距离的更多细节。请注意,红色的曲线与蓝色和黑色的曲线有明显的不同。这证明了在对错误的结果进行适当过滤后,使用图形可以识别机器人是否被绑架。
在下面的讨论中,你会发现,那些不受欢迎的匹配结果将被赋予较低的概率。在这个实验中,我们根据实验经验,在使用k-means对前20个关键帧进行聚类时,设置k=3。在一定程度上,这个值反映了你的算法在使用Gist描述符进行匹配时的相信程度。分配的k值越小,算法对匹配结果的信心就越高。图11展示了关键帧聚类的结果,包括中心(数字表示聚类的中心位置)和聚类的范围(梯度矩形表示聚类的范围面积),以及Scan2Map得分排名。我们观察到,那些零星的不需要的匹配结果,如121号画面被放弃了,339号画面被提议为图11中的查询0。查询1图像的聚类结果表明,该场景很可能属于第339号和第93号图像周围的聚类,这一假设在使用Scan2Mapscore打分后得到了验证。我们方法的另一个特点是,当机器人被绑架时,它可以很快恢复到正确的位置。完全不同的聚类结果触发了重新定位机制,该机制由Scan2Map得分进一步决定,以发布新的姿势信号。图12直观地显示了姿势优化前后激光雷达扫描与地图的匹配。蓝色箭头显示的是数据集被保存时关键帧的位置。绿色箭头显示的是基于当前查询的姿势优化后在地图上的位置。这说明我们选择后者来计算Scan2Map得分是合理和准确的。
结论
~~~ ~~~~ 在本文中,我们提出了一种可靠的全局定位方法,能够解决被绑架的机器人问题,其中同时使用了激光和摄像机传感器。首先,我们在预处理的离线SLAM阶段用视觉关键帧创建一个混合网格图。然后,我们应用Gist描述符来快速搜索数据集中的最佳匹配关键帧,并使用局部描述符来进一步提高定位精度。与之前的工作相比,我们引入了一个重新定位的触发机制,包括将关键帧聚类和Scan2Map得分排名纳入匹配结果的评估,这可以用来解决被绑架机器人的问题。在不同条件下的室内环境中进行了一些实验,以证明所提出的方法的有效性。这项工作的改进之一是将关键帧聚类扩展到二维或三维姿势空间,而不是对候选关键帧的序列号进行聚类。另一种提高重新定位性能的可能性是考虑根据聚类数据的特点自动确定聚类的数量,我们算法的可靠性也将在大规模环境中进行测试。