01_初识SLAM

什么是 slam

SLAM 是 Simultaneous Localization and Mapping 的缩写, 中文译作 “同时定位与地图构建”。它是指搭载特定传感器的主体 , 在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为 “视觉 SLAM”。

  • 简单理解:假如我们有一个机器人,它的眼睛就是相机,它在一个空间不停运动。机器人需要知道自己所处的位置信息和运动轨迹,然后对自己所看到的周围环境进行建图,这就是 slam。
  • 定位与建图等于内外兼修,定位侧重于对于自身的了解,建图侧重对外在的了解。但是他们又是相互关联,因为我为了了解自身的位置,又必须知道周围的环境信息,还有就是说如果我们定位就是错误的,那肯定构建地图也是错误的。

传感器

传感器分为两类,一种是外质的(安装在环境中),另一种是内质的(安装在机器人本身,可以随时移动)。

  • 内质:IMU、激光、相机(感受机器人本体信息)
  • 外质:二维码 Marker、GPS、导轨等等,这种有环境限制

这里我们讨论相机,主要是分为单目相机(Monocular)、双目相机(Stereo)和深度相机(RGB-D)三大类。

  • 单目相机:没有深度,需要使用其它手段进行估计,它会存在一个尺度不确定性,因为位置是相对的
  • 双目相机:通过视差计算深度,通过基线来估计每个像素的空间位置,但是计算量很大
  • 深度相机(RGB-D):通过物理方法测量深度,好处是可以直接测量,但是对环境要求高
01_初识SLAM

经典视觉SLAM框架

我们先来看下整体的宏观架构图:

01_初识SLAM

这里通俗的理解就是假如一个机器人,通过传感器获取到了一些列数据,经过一顿的折腾,最后知道原来我在这里,周围原来是这个样子。

整个视觉 slam 流程如下

1.传感器信息读取。在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果是在机器人中 、还可能有码盘 、惯性传感器等信息的读取和同步。(简单理解就是获取我们需要的数据)

2.前端视觉里程计(Visual Odometry, VO)。视觉里程计的任务是估算相邻图像间相机的运动 , 以及局部地图的样子。VO 又称为前端(Front End)。

  • 主要方法:特征点法,直接法
  • 这里需要注意的是,因为是相邻的图像做计算,所以构建的是局部地图。
  • 通过 VO 我们得到自己轨迹和各个空间点的位置,这里会出现一个累计漂移,其实就是我们每次估计带来的误差。因此需要后面的后端优化和回环检测。

3.后端(非线性)优化(Optimization)。后端接受不同时刻视觉里程计的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 VO 之后,又称为后端(Back End)

  • 位姿:位置(空间坐标)和姿态(角度)
  • 前端主要是和计算机视觉相关,后端主要是滤波和非线性优化算法,对数学水平要求较高

4.回环检测(Loop Closure Detection)。同环检测判断机器人是否到达过先前的位置。如果检测到同环,它会把信息提供给后端进行处理。

  • 检测到同样的位置,然后把误差给拉回来

5.建图(Mapping) 。它根据估计的轨迹,建立与任务要求对应的地图。


01_初识SLAM

SLAM 问题的数学描述

01_初识SLAM

参考文献

《视觉 SLAM 十四讲从理论到实践》 高翔,张涛

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章