随着路径的不断延伸,机器人在建图过程中会存在一些累计误差,除了利用局部优化、全局优化等来调整之外,还可以利用回环检测来优化位姿。回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。
意义
1.前端提供特征点的提取和轨迹、地图的初值,而后端负责对这所有的数据进行优化。然而,如果像VO那样仅考虑相邻时间上的关联,那么,之前产生的误差将不可避免地累计到下一个时刻,使得整个SLAM会出现累积误差。
2.回环检测模块能够给出除了相邻帧之外的,一些时隔更加久远的约束。之所以它们之间会有约束是因为我们察觉到相机经过了同一个地方, 采集到了相似的数据。而回环检测的关键,就是如何有效地检测出相机经过同一个地方这件事。如果我们能够成功地检测这件事,就可以为后端的Pose Graph提供更多的有效数据,使之得到更好的估计,特别是得到一个全局一致的估计。
3.回环检测一方面关系到我们估计的轨迹和地图在长时间下的正确性。另一方面,由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失之后,我们还可以利用回环检测进行重定位。因此,回环检测对整个 SLAM 系统精度与鲁棒性的提升是非常明显的。
方法
1.最简单的方式就是对任意两张图像都做一遍特征匹配,根据正确匹配的数量确定哪两个图像存在关联:缺点在于,我们盲目地假设了“任意两个图像都可能存在回环”,使得要检测的数量实在太大在大多数实时系统当中是不实用的。
2.另一种朴素的方式是随机抽取历史数据并进行回环检测,比如说在n帧当中随机抽 5 帧与当前帧比较。这种做法能够维持常数时间的运算量,但是这种盲目试探方法在帧数 N 增长时,抽到回环的几率又大幅下降,使得检测效率不高。
3.我们至少希望有一个“哪处可能出现回环”的预计,才好不那么盲目地去检测。这样的方式大体分为两种思路:基于里程计的几何关系(Odometry based),或基于外观(Appearance based)。基于几何关系的做法假设了“相机回到之前位置附近”,才能检测回环有倒果为因的嫌疑。基于外观的方法仅根据两张图像的相似性确定回环检测关系。这种做法摆脱了前后端数据和估计的累计误差,使回环检测模块成为 SLAM 系统中一个相对独立的模块(当然前端可以为它提供特征点),成为了视觉 SLAM 中主流的做法。
本文地址: https://www.xsyiq.com/1176.html
网站内容如侵犯了您的权益,请联系我们删除。