目录
相机
按照相机的工作方式,我们把相机分为单目(Monocular)、双目(Stereo)和深度相机(RGB-D)三个大类。
单目相机
只使用一个摄像头进行 SLAM
的做法称为单目 SLAM(
Monocular SLAM)。 这种传感器结构特别的简单、成本特别的低,所以单目
SLAM 非常受研究者关注。照片,本质上是拍照时的场景(Scene),在相机的成像平面上留下的一个投影。它以二维的形式反映了三维的世界。显然,这个过程丢掉了场景的一个维度:也就是所谓的深度(或距离)。在单目相机中,我们无法通过单个图片来计算场景中物体离我们的距离(远近)。
我们必须移动相机之后,才能估计它的运动(Motion
),同时估计场景中物体的远近和大小,不妨称之为
结构
(
Structure
)。
双目相机 (Stereo)
双目相机由两个单目相机组成,但这两个相机之 间的距离(称为基线
(
Baseline))是已知的。我们通过这个基线来估计每个像素的空间位置。
深度相机(RGB-D)
它最大的特点是可以通过红外结构光或 Time-of-Flight
(ToF)原理,像激光传感器那样,通过主动向物体发射光并接收返回的光,测出物体离相机的距离。 这部分并不像双目那样通过软件计算来解决,而是通过物理的测量手段,所以相比于双目可节省大量的计算量。
不过,现在多数
RGB-D 相机还存在测量范围窄、噪声大、视野小、易受日 光干扰、无法测量透射材质等诸多问题,在
SLAM
方面,主要用于室内
SLAM,室外则较难应用。
经典视觉 SLAM 框架
我们把整个视觉 SLAM
流程分为以下几步:
1.
传感器信息读取:在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
2.
视觉里程计
(Visual Odometry, VO):视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子。
VO
又称为前端(
Front End)。
3.
后端优化
(
Optimization):后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在
VO 之后,又称为后端(
Back End)。
4.
回环检测
(
Loop Closing):回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
5.
建图
(
Mapping
):它根据估计的轨迹,建立与任务要求对应的地图。
视觉里程计
叫它为“里程计”是因为它和实际的里程计一样,只计算相邻时刻的运动,而和再往前的过去的信息没有关联。估计了两张图像间的相机运动。那么,只要把相邻时刻的运动“串”起来,就构成了机器人的运动轨迹,从而解决了定位问题。然而,
仅通过视觉里程计来估计轨迹,将不可避免地出现累计漂移(Accumulating Drift)。这是由于视觉里程计(在最简单的情况下)只估计两个图像间运动造成的。
后端优化
后端优化主要指处理 SLAM
过程中
噪声的问题。后端优化要考虑的问题,就是如何从这些带有噪声的数据中,估计整个系统的状态,以及这个状态估计的不确定性有多大——这称为
最大后验概率估计(Maximum-a-Posteriori,MAP)。
回环检测
回环检测,又称闭环检测(Loop Closure Detection
),主要解决位置估计
随时间漂移的问题。
为了实现回环检测,我们需要让机 器人具有
识别曾到达过的场景的能力。在检测到回环之后,我们会把“
A
与
B
是同一个点”这样的信息告诉后端优化算法。
建图
建图(Mapping)是指构建地图的过程。地图是对环境的描述,但这个描述并不是固 定的,需要视
SLAM
的应用而定。
![](https://img-blog.csdnimg.cn/direct/36d356612dd048b4af78a95c8625ea65.png)
大体上讲,它们可以分为
度量地图
与
拓扑地图
两种。
度量地图(Metric Map)
度量地图强调精确地表示地图中物体的位置关系,通常我们用稀疏(Sparse)与稠密(
Dense
)对它们进行分类。
拓扑地图(Topological Map)
相比于度量地图的精确性,拓扑地图则更强调地图元素之间的关系。拓扑地图是一个图(Graph
),由节点和边组成,只考虑节点间的连通性。
SLAM 问题的数学表述
“小萝卜携带着传感器在环境中运动”,由如下两件事情描述:
1.
什么
是运动
?我们要考虑从
时刻到
时刻,小萝卜的位置
是如何变化的。
运动方程:
其中,
和
表示小萝卜在
和
时刻的位置,
是
是运动传感器的读数(有时也叫
输入
),
为噪声。
2.
什么
是观测
?假设小萝卜在
时刻,于
处探测到了某一个路标
,我们要考虑 这件事情是如何用数学语言来描述的。
其中,
是第
个路标点,
是在
位置上观测
产生的观测数据,
表示噪声。