SLAM—simultaneous localization and mapping 同时定位与地图构建—它是指搭载特定传感器的主体,在没有环境先验信息的情况下,与运动过程中建立环境的模型,同时估计自己的运动。
课后题:
1、 A x = b Ax=b Ax=b 求解 x x x
涉及到一个定理:
线性方程组有解的充分必要条件是其系数矩阵与增广矩阵有相同的秩。
单目视觉存在的问题:(1)在单目相机中,无法通过单个图片来计算场景中的物体离我们的距离(深度信息)—通过移动相机,琮琤视差,通过视察判断物体的远近。近处物体移动快,远处的物体运动缓慢
(2)如果计算出深度信息,但是深度信息是相对值,无法确定真实尺度(scale),因此,单目SLAM 估计的轨迹和地图,将与真实的轨迹、地图,相差一个因子,也就是所谓的尺度(scale)。由于单目SLAM无法仅凭图像确定这个真实尺度,所以又称为尺度不确定性。
双目视觉存在的问题: 配置和标定较为复杂,深度量程和精度收双目的基线和分辨率限制,而且视差的计算非常消耗计算资源。目前,计算量是双目的主要问题。
深度相机(RGB-D相机): 主要是通过红外结构光或Time-of-Flight(TOF)原理(当前也有采用双目的),测定物体距离。优点:直接通过物理手段测深度,计算量小。缺点:测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等诸多问题。在SLAM方面主要用于室内,室外较难应用。
经典的SLAM框架:
1.传感器信息读取
2.视觉里程计(Visual Odometry, VO)是估算相邻图像间相机的运行,以及局部地图的样子。VO又称为前端(Front End)。
3.后端优化(Optimization)接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对他们进行优化,得到全局一致的轨迹和地图。又称为后端(Back End)。
4 .回环检测(Loop Closing) 判断机器人是否曾到达过先前的位置。
5.建图(Mapping)建立对应的地图。
如果把工作环境限定在静态、刚体,光照变化不明显、没有人为干扰的场景,那么,这个SLAM 系统是相当成熟的了。
视觉里程计
VO能够通过相邻帧间的图像估计相机运动,并且恢复场景的空间结构,即里程计。只计算相邻时刻的运动,而和再往前的过去的信息没有关联。只要把相邻时刻的里程计串起来,就构成了机器人的运动轨迹。
累计漂移(Accumulating Drift):是由于视觉里程计只估计两个图像间运动造成的。
后端优化
后端优化主要负责处理SLAM过程中的噪声的问题。(传感器带来的噪声)
后端优化主要考虑的问题:如何从这些带有噪声的数据中,估计整个系统的状态,以及这个状态估计的不确定性有多大,这成为最大后验概率估计(Maximum a Posteriori, MAP)
在视觉SLAM中,前端和计算机视觉研究领域有关,后端则主要是滤波和非线性优化算法。
回环检测(闭环检测 Loop Closure Detection)
回环检测主要解决位置估计随时间漂移的问题。
对于图像本身可以判断图像见的相似性来完成回环检测。
如果回环检测成功,可以显著地减小累积误差。所以视觉回环检测,实质上是一种计算图像数据相似性的算法。由于图像的信息非常丰富,使得正确检测回环的难度也降低了不少。
建图(Mapping)
度量地图和拓扑地图
度量地图(Metric Map)强调精确地表示地图中物体的位置关系,通常我们用稀疏(Sparse)与稠密
(Dense)对它们进行分类。
拓扑地图(Topological Map)相比于度量地图的精确性,拓扑地图则更强调地图元素之间的关系。拓扑地图是一个图(Graph),由节点和边组成,只考虑节点间的连通性。