slam的三大模块
众所周知,目前阶段,SLAM的框架大体上已经固定了,分为前端里程计模块,后端优化模块,以及回环检测模块。
前端里程表
无人车利用相机(单目、双目、RGB-D)观测,得到一帧帧图像,然后对于相邻的帧,我们先提取特征点,然后进行特征点匹配,然后通过得到的两帧之中相同的特征点来进行计算(对极、三角化等等),得到位姿变换,上述过程确定了无人车相对于初始时刻以及相对于每帧数据到来时的位姿变换。
后端优化
无论我们在前端得到的数据多么准确,都会有误差,误差会不断累积,最终导致较大的路线偏差,所以我们必须优化以减少甚至消除误差。我们的目的是获得整体最优。一般来说,我们使用最小二乘法来寻找当前情况下无人车概率最大的位姿(虽然每个误差项都是针对单个位姿和道路标点),我们使用图结构进行整体优化以减少错误。
环回检测
俗话说“好模型经不起坏数据”,后端优化再好,前端提供的数据再差,也无济于事。所以我们要给后端加一个强约束,想象一下如果我们两次经过一个地方,我们肯定可以判断是同一个地方,那么,如果无人驾驶汽车也能判断是同一个地方,那么我们对无人驾驶车辆在这个循环的所有帧中都进行了处理,那么无人驾驶车辆的轨迹可以被强校正吗?答案是肯定的。
我们使用词袋模型在不同帧之间进行“单词匹配”,并选择相似度高的正确帧。我们可以把这个约束作为一个新的非常强的约束输入到后端优化过程中,通过这个强约束,当我们完成优化时,可以大大消除误差。
文章出处登录后可见!
已经登录?立即刷新