[SLAM](2-1):经典视觉SLAM框架、视觉里程计、后端优化、回环检测

结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。


1.经典视觉SLAM框架

   一共由两条主线构成,且这两条主线同时进行:

  1. 传感器数据——>>前端视觉里程计——>>后端非线性优化——>>建图
  2. 传感器数据——>>回环检测——>>后端非线性优化——>>建图
  • 传感器信息读取: 在视觉SLAM中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
  • 视觉里程计(VisualOdometry,VO): 视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子。VO又称为前端(Front End)。
  • 后端优化(Optimization): 后端接收不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
  • 回环检测(Loop Closing): 回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
  • 建图(Mapping):它根据估计的轨迹,建立与任务要求对应的地图。

2.视觉里程计

     视觉里程计关心相邻图像之间的相机运动。图像在计算机里只是一个数值矩阵,这个矩阵里面表达着什么东西,计算机毫无概念。所以,为了定量地估计相机运动,必须在了解相机与空间点的几何关系之后进行。

     VO能够通过相邻帧间的图像估计相机的运动,并恢复相机的空间结构。叫它为“里程计“是因为他和实际的里程计一样,只计算相邻时刻的运动,而和再往前的过去的信息没有关联。

    假定我们已有了一个视觉里程计,估计了两张图像间的相机运动。那么只要把邻时刻的运动”串起来”就构成了机器人的运动轨迹,从而解决了定位问题。另一方面,我们根据每个时刻的相机位置,计算出各像素点对应的空间点位置,就得到了地图。

    仅通过视觉里程计来估计轨迹,将不可避免地出现累计漂移。这是由于视觉里程计只顾及两个图像间运动造成的。

3.后端优化

    笼统地说,后端优化主要指处理SLAM过程中噪声的问题。后端优化要考虑的问题,就是如何从这些带有噪声的数据中,估计整个系统的状态,以及这个状态估计的不确定性有多大——这称为最大后验概率估计。SLAM问题的本质,是对运动主体自身和周围环境空间不确定性的估计。为了解决SLAM,我们需要状态估计理论,把定位和建图的不确定性表达出来,然后通过采用滤波器或非线性优化,去估计状态的均值和不确定性(方差)。

   在视觉SLAM中,前段和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波和非线性优化算法。

4.回环检测

   回环检测,又称为闭环检测(Loop Closure Detection)主要解决位置估计随时间漂移的问题。如果有某种手段,让机器人知道“回到了原点”,或者把“原点识别出来,我们再把位置估计值“拉”过去,就可以消除漂移了。这就是所谓的回环检测。 

   地图存在的主要意义,是为了让机器人知晓自己到达过的地方。为了实现回环检测,我们需要让机器人具有识别曾到达过的场景的能力。例如:我们可以判断图像间的相似性。来完成回环检测。所以视觉回环检测,实质上是一种计算图像数据相似性的算法。

   在检测到回环之后,我们会把"A与B是同一个点”这样的信息告诉后端优化算法。然后,后端根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。


《视觉SLAM十四讲:从理论到实践》 PDF资源

下载链接:https://download.csdn.net/user/robot_starscream/uploads  仅供各位研究员试读,请购买纸质书籍。

你可能感兴趣的:(「,SLAM,」)