使用书籍:《视觉SLAM十四讲从理论到实践》
定义
同时定位与地图构建SLAM(simultaneous Localization and Mapping)是指在没有环境先验信息的情况下,在运动过程中估计自己的运动并且建立环境模型
从上面定义可以看出,SLAM的目标有两个:
1、定位——确定自身的位置(状态)
2、建图——确定自身的环境(地图)
传感器
为了完成上面两个目标需要使用传感器。按照安装位置的不同,传感器可以分为两类:
1、安装于环境中的传感器(黑线、无线电定位设备等),它们需要人工布置,因此应用场合受限
2、安装于机器人上的传感器,它们通过测量间接物理量(如速度、加速度)估算自身状态,不依赖环境
视觉SLAM使用的传感器是摄像头,摄像头有单目、双目、深度摄像头等,它们的优缺点如下:
1、单目相机无法通过单张图片计算场景中物体与相机的距离。为了估计物体的远近,需要移动相机,使物体在图像上运动形成视差,通过视差定量分析物体远近。即使如此,单目SLAM不能确定物体真实尺度
2、双目和深度相机可以通过某些方法测量物体与相机的距离,因此可以通过单张图像恢复场景的三维结构,可以消除尺度不确定性(单目相机的缺点)
(1)双目相机通过两个相机之间的距离(基线)估计每个像素的空间位置
(2)深度相机向物体发射光,接收返回的光,从而测出物体与相机的距离(受日光干扰,多个未调制的深度相机也会互相干扰,视野范围小,适用于室内,多个未调制的深度相机也会互相干扰)
经典SLAM框架
1、传感器数据:包括图像数据、运动数据等
2、前端:前端是指视觉里程计,它用于估计相邻图像之间的相机运动
3、后端:后端是指优化(多指非线性优化),它接收前端测量的相机位姿信息以及回环检测信息,对这些信息进行优化,从而估计运动轨迹
4、回环检测:它的作用是判断机器人是否到达先前已经到达过的位置,用于消除累积误差
5、建图:根据后端估算的轨迹,建立地图