简介
SLAM是Simultaneous Localization and Mapping缩写,中文译作“同时定位与
地图构建”,它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动 。
当传感器主要为相机时,称为“视觉SLAM”也就是本笔记学习的重点。
SLAM 的目的:解决“定位”与“地图构建”这两个问题。也就是说,一边
要估计传感器自身的位置,一边要建立周围环境的模型
经典SLAM框架
- 传感器信息读取 在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
- 视觉里程计 (Visual Odometry, VO) 视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子。VO又称为前端(Front End)。
- 后端优化(Optimization)后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 VO 之后,又称为后端(Back End)。
- 回环检测(Loop Closing)回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
- 建图(Mapping)它根据估计的轨迹,建立与任务要求对应的地图。
SLAM 问题的数学表述
描述机器人携带传感器的运动,需要两个量,即运动和观测
运动方程:f可用于指代任意传感器的作用方式,xk-1则为上一次运动的位置,uk为传感器读数,wk为噪声(可理解为传感器误差)
f可具体化为此,即当前位置为上一次位置+移动位置+噪声
观测方程:机器人在xk位置上看到某个路标点yi,产生一个观测数据zkj,vkj为这次观测的噪声
路标点与小萝卜本体之间的距离 r 和夹角 ϕ
记路标点为y=[px,py]T,设观测数据为z=[r, ϕ]T,观测方程可具体化为
这两个方程描述了最基本的 SLAM 问题:当我们知道运动测量的读数 u,以及传感器的读数 z 时,如何求解定位问题(估计 x)和建图问题(估计 y)
参考自《视觉SLAM十四讲》张翔