视觉SLAM十四讲——学习笔记一(第2讲)

初识SLAM

本讲主要内容:

  • 什么是视觉SLAM
  • 视觉SLAM框架由哪几个模块组成
  • 各模块的任务是什么

什么是视觉SLAM

SLAM(simultaneous localization and mapping),同时定位与建图。想象一下把一台小机器人放在一个陌生环境中,我们要求它有自主运动的能力,可以在房间里*的移动,那么,其至少需要知道两件事:

  • 我在哪?——定位。
  • 周围环境怎么样?——建图。

借助摄像头完成上述两个任务,我们就称为视觉SLAM。

视觉SLAM的框架及各模块作用

经典的视觉SLAM框架包含五个模块:传感器数据采集、视觉里程计、后端非线性优化、回环检测和建图。
视觉SLAM十四讲——学习笔记一(第2讲)

  1. 传感器数据采集模块:视觉SLAM中主要是相机图像信息的读取和预处理。当然,如果是在机器人中,还可能有码盘、惯性传感器等等信息。
  2. 视觉里程计模块(Visual Odometry):视觉里程计关心的是相邻图像之间的相机运动,利用相机采集的相邻帧图像估算相机运动,建立局部地图。因为其只关心相邻帧图像,随着时间的推移,估算值会出现较大的累计误差
  3. 非线性优化模块:后端接收不同时刻视觉里程计测量的相机位姿和回环检测的信息,对他们进行优化、去噪,得到全局一致的轨迹和地图。
  4. 回环检测模块:回环检测判断机器人是否曾经到达过先前的位置,如果检测到回环,就把信息提供给后端优化模块,以此校正位置随时间漂移的问题
  5. 建图模块:根据估计的轨迹,建立与任务要求对应的地图。地图有稀疏地图和稠密地图。稀疏地图有一些路标(具有代表意义的东西)组成,主要用于定位。稠密地图着重建模所有看到的东西,需要耗费大量的存储空间,一般用于导航。

注:视觉SLAM中,前端和计算机视觉研究领域更为有关,比如图像的特征提取与匹配,后端则侧重于滤波和非线性优化的算法。

没有校正的视觉里程计得到的机器人轨迹和校正后的轨迹对比图
视觉SLAM十四讲——学习笔记一(第2讲)