回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。说的简单点,就是机器人在左转一下,右转一下建图的时候能意识到某个地方是“我”曾经来过的,然后把此刻生成的地图与刚刚生成的地图做匹配。回环检测之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人...
1.回环检测的必要性 因为累积误差,最后会使地图出现漂移。比如之前位姿图优化,只给后端提供相邻帧之间的约束,x1-x2,x2-x3,x1的误差就会传到x3.而回环检测能够给出时隔更久远的约束,比如x1-x100,它做的事就是检测相机经过了同一个地方,把带有累积误差的边拉回到了正确的位置。 回环检测提供了当前数据与历史数据...
那我们现在的重点就是回环检测了。其实我们完全可以把以前的所有帧都拿过来和当前帧做匹配,匹配足够好的就是回环嘛,但问题是计算量太大了,两帧匹配本来就慢,这样做的话还没有比较好的初值,需要匹配的数目又如此巨大,CPU和我们都会疯的。 但其实,任意两帧是否构成回环可以由更简单的方法做一个初步的筛选,就像一...
本讲中,介绍SLAM中的另一个主要模块:回环检测。我们SLAM的主体(前端、后端)主要的目的在于估计相机运动,而回环检测模块,无论是目标上还是方法上,都与前面讲的内容相差较大,所以通常被认为是一个独立的模块。我们将介绍主流视觉SLAM中检测回环的方式:词袋模型,并通过DBoW库上的程序实验,使读者得到更加直观的理解。
基于图优化的SLAM 3.0 算是提升机器人回环检测能力的一大突破。 SLAM 3.0采用图优化的方式进行建图,进行了图片集成与优化处理,当机器人运动到已经探索过的原环境时, SLAM 3.0可依赖内部的拓扑图进行主动式的闭环检测。当发现了新的闭环信息后,SLAM 3.0使用Bundle Adjuestment(BA)等算法对原先的位姿拓扑地图进行修正...
回环检测对于SLAM系统意义重大。它关系到我们估计的轨迹和地图在长时间下的正确性。另一方面,由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失之后,我们还可以利用回环检测进行重定位。因此,回环检测对于整个SLAM系统精度与稳定性的提升是非常明显的。
一个消除误差有效的办法是进行回环检测。回环检测判断机器人是否回到了先前经过的位置,如果检测到回环,它会把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到闭环,并对其优化,就可以让结果更加准确。
一个消除误差有效的办法是进行回环检测。回环检测判断机器人是否回到了先前经过的位置,如果检测到回环,它会把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到闭环,并对其优化,就可以让结果更加准确。
当移动机器人经过一定时间的运动后回到原点,但是由于随着时间产生位姿漂移,此时的位置估计值并不是最初值,如果知道机器人是回到原点,把位置估计值拉回去,就可以消除漂移,起到减小累积误差的作用,在地图构建上减小误差,回环检测就可以起到这样的作用,如图2所示,正确的回环信息可以修正里程计误差,从而得到信息一致的地图。
那我们现在的重点就是回环检测了。其实我们完全可以把以前的所有帧都拿过来和当前帧做匹配,匹配足够好的就是回环嘛,但问题是计算量太大了,两帧匹配本来就慢,这样做的话还没有比较好的初值,需要匹配的数目又如此巨大,CPU和我们都会疯的。 但其实,任意两帧是否构成回环可以由更...