目录
1.SLAM是什么?
SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。他是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为“视觉SLAM”。
2.传感器
为了使“小萝卜机器人”能够探索一个房间,它至少需要知道两件事:
1.我在什么地方?——定位
2.周围的环境是什么样?——建图
一类传感器是携带于机器人本体上的,例如机器人的轮式编码器、相机、激光传感器等。
另一类是安装于环境中,如导轨、二维码标志等等。
按照工作方式的不同,相机可以分为单目(Monocular)相机、双目(Stereo)相机和深度(RGB-D)相机.
2.1单目相机
只使用一个摄像头进行SLAM的做法称为单目SLAM。照片以二维的形式记录了三维的世界,这个过程丢掉了场景的一个维度,也就是深度(或距离)。由于单目相机拍摄的图像只是三维空间的二维投影,如果想恢复三维结构,必须改变相机的视角。必须移动相机,才能估计它的运动。单目SLAM估计的轨迹和地图将与真实的轨迹和地图差一个因子,也就是所谓的尺度,由于单目SLAM无法仅凭图像确定这个真实的尺度,所以又称为尺度不确定性。
2.2双目相机
由两个单目相机组成,但这两个相机之间的距离(称为基线)是已知的。我们通过这个基线来估计每个像素的空间位置。
2.3深度相机
最大特点是可以通过红外结构光或ToF原理,像激光传感器那样,通过主动向物体发射光并接受返回的光,测出物体与相机之间的距离。不过,现在多数RGB-D相机还存在测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等问题,在SLAM方面,主要用于室内,室外较难应用。
3.经典视觉SLAM框架
整个视觉SLAM流程包括以下步骤:
1.传感器信息读取:在视觉slam中主要为相机图像信息的读取和预处理。
2.前端视觉里程计:估算相邻图像间相机的运动,以及局部地图的样子。VO又称前端。
3.后端(非线性)优化:接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
4.回环检测:判断机器人是否到达过先前的位置。如果检测到回环,他会把信息提供给后端进行处理。
5.建图:根据估计的轨迹,建立与任务要求对应的地图。