历史上的今天
今天是:2025年06月25日(星期三)
2021年06月25日 | 浅谈SLAM中的回环检测
2021-06-25 来源:OFweek机器人网
随着路径的不断延伸,机器人在建图过程中会存在一些累计误差,除了利用局部优化、全局优化等来调整之外,还可以利用回环检测来优化位姿。回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。
意义
1.前端提供特征点的提取和轨迹、地图的初值,而后端负责对这所有的数据进行优化。然而,如果像VO那样仅考虑相邻时间上的关联,那么,之前产生的误差将不可避免地累计到下一个时刻,使得整个SLAM会出现累积误差。
2.回环检测模块能够给出除了相邻帧之外的,一些时隔更加久远的约束。之所以它们之间会有约束是因为我们察觉到相机经过了同一个地方, 采集到了相似的数据。而回环检测的关键,就是如何有效地检测出相机经过同一个地方这件事。如果我们能够成功地检测这件事,就可以为后端的Pose Graph提供更多的有效数据,使之得到更好的估计,特别是得到一个全局一致的估计。
3.回环检测一方面关系到我们估计的轨迹和地图在长时间下的正确性。另一方面,由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失之后,我们还可以利用回环检测进行重定位。因此,回环检测对整个 SLAM 系统精度与鲁棒性的提升是非常明显的。
方法
1.最简单的方式就是对任意两张图像都做一遍特征匹配,根据正确匹配的数量确定哪两个图像存在关联:缺点在于,我们盲目地假设了“任意两个图像都可能存在回环”,使得要检测的数量实在太大在大多数实时系统当中是不实用的。
2.另一种朴素的方式是随机抽取历史数据并进行回环检测,比如说在n帧当中随机抽 5 帧与当前帧比较。这种做法能够维持常数时间的运算量,但是这种盲目试探方法在帧数 N 增长时,抽到回环的几率又大幅下降,使得检测效率不高。
3.我们至少希望有一个“哪处可能出现回环”的预计,才好不那么盲目地去检测。这样的方式大体分为两种思路:基于里程计的几何关系(Odometry based),或基于外观(Appearance based)。基于几何关系的做法假设了“相机回到之前位置附近”,才能检测回环有倒果为因的嫌疑。基于外观的方法仅根据两张图像的相似性确定回环检测关系。这种做法摆脱了前后端数据和估计的累计误差,使回环检测模块成为 SLAM 系统中一个相对独立的模块(当然前端可以为它提供特征点),成为了视觉 SLAM 中主流的做法。
史海拾趣
|
转自:NI 概览 为您下一个嵌入式项目或想法创建功能原型系统是得到预算和从高层管理获得批准的重要步骤。在开始原型开发之前,考虑一下您所有需要的工具。另一个需要记住的重要原则是原型开发应该足够快速,不应该在原型系统上花费过多的时间,投 ...… 查看全部问答> |
|
设计了一个5.0V输入,可调输出buck电路,1.5M固定频率但是在较大电流输出,并直接开关电源的时候,时不时出现不稳定情况不稳定时前几个占空比很大,直至输出电压过高仿真上非常稳定,PM也足够这可能是什么原因造成的?请教各位!… 查看全部问答> |
|
模拟信号都好采集,但是有的传感器是BCD码输出的,每个传感器的引脚是24条线输出,有4个,请问怎么设计和选型? 这里面可能要用到数据选择器或者寄存器;还有USB控制器… 查看全部问答> |
|
[#TK1117] 4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙 用89c2051做了一个键盘,P1.0-P1.3接上拉电阻,程序如下: uchar getkey() { uchar recode,key;   ...… 查看全部问答> |
|
请教,我用ads1.2编译c++程序总是报一些头文件找不到,我把system path加了vc的库,结果有出了“only win32 and Mac supported\"这个问题,请问怎么办?ads1.2上可以编译c++吗?要怎么做? … 查看全部问答> |




