书中定义:slam是指移动智能体从一个未知环境里未知地点出发,在运动过程中通过自身传感器观测周围环境,并根据环境定位自身位置,再根据自身的位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。
slam(Simultaneous Localization and Mapping)
首先,移动的智能体。移动的智能体是要像人一样的,要包含大脑(芯片)、眼睛(传感器)。所以这里的智能体可以包含机器人、自动驾驶汽车。而根据传感器的不同,比如有的机器人使用相机作为传感器、有的机器人使用激光作为传感器,所以由此slam技术可以分为视觉、激光slam。
接下来,详细说明。
机器人在一个未知的环境中运动时,第一点就是要清楚自己的位置,即(localization)。第二点要清楚机器人自身周围的环境,要对周围的环境进行建模,即建图(mapping)。这是机器人规划路径的基础。
第三点就是要规划自己的路径到达目的地,即(motion planning)。
经典的slam框架可以表示为:传感器信息读取、前端视觉里程计、后端优化、建图、闭环检测五部分。
初学者经典问题:为什么不是用GPS来完成这些任务?
精度。北斗、gps这些导航设备功能很强大,但是精度在米级,无法在室内使用。而slam的精度可以达到厘米甚至是毫米级别。
自由度不够。定位软件通常只有一个二维的平面,也就是只有x,y两个自由度。而机器人需要6个自由度。在slam中朝向称作姿态,而位置+姿态统称为位姿,位姿有6个自由度