SLAM 简介
SLAM 简介
1. SLAM 简介
机器人研究的问题包含许许多多的领域,我们常见的几个研究的问题包括:建图(Mapping)、定位(Localization)和路径规划(Path Planning),如果机器人带有机械臂,那么运动规划(Motion Planning)也是重要的一个环节。而同步定位与建图(SLAM)问题位于定位和建图的交集部分。
SLAM 需要机器人在未知的环境中逐步建立起地图,然后根据地区确定自身位置,从而进一步定位。
随着传感器种类和安装方式的不同,SLAM 的实现方式和难度会有很大差异。按传感器来分,SLAM 主要分为激光、视觉两大类。其中,激光 SLAM 研究较早,理论和工程均比较成熟。视觉方案目前(2016)尚处于实验室研究阶段,极少看到实际产品应用。
SLAM 研究自 1988 年提出以来,已经过了近三十年。早期 SLAM 研究侧重于使用滤波器理论,最小化运动体位姿和地图的路标点的噪声。21 世纪之后,学者们开始借鉴SfM(Structure from Motion)中的方式,以优化理论为基础求解 SLAM 问题。这种方式取得了一定的成就,并且在视觉 SLAM 领域中取得了主导地位。
下图为建图(Mapping)、定位(Localization)和路径规划(Path Planning)三者关系。
2. 选择地图
和人类绘制地图一样,机器人描述环境、认识环境的过程主要就是依靠地图。它利用环境地图来描述其当前环境信息,并随着使用的算法与传感器差异采用不同的地图描述形式。
机器人学中地图的表示方法有四种:栅格地图、特征点地图、直接表征法以及拓扑地图。
2.1 栅格地图
机器人对环境地图的描述的方式最常见的为栅格地图(Grid map)或者称为 Occupancy Map。栅格地图就是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率。
一般来说,采用激光雷达、深度摄像头、超声波传感器等可以直接测量距离数据的传感器进行 SLAM 时,可以使用该地图。这种地图也可以通过距离测量传感器、超声波(早期)、激光雷达(现在)绘制出来。
2.2 特征点地图
特征点地图,是用有关的几何特征(如点、直线、面)表示环境,常见于 vSLAM(视觉 SLAM)技术中。
相比栅格地图,这种地图看起来就不那么直观了。它一般通过如 GPS、UWB 以及摄像头配合稀疏方式的 vSLAM 算法产生,优点是相对数据存储量和运算量比较小,多见于最早的 SLAM 算法中。
2.3 直接表征法
直接表征法中,省去了特征或栅格表示这一中间环节,直接用传感器读取的数据来构造机器人的位姿空间。
上图就是直接记录了屋子内天花板画面的图像地图。这种方法就像卫星地图一样,直接将传感器原始数据通过简单处理拼接形成地图,相对来说更加直观。
2.4 拓扑地图
拓扑地图,是一种相对更加抽象的地图形式,它把室内环境表示为带结点和相关连接线的拓扑结构图,其中结点表示环境中的重要位置点(拐角、门、电梯、楼梯等),边表示结点间的连接关系,如走廊等。这种方法只记录所在环境拓扑链接关系,这类地图一般是由前几类地图通过相关算法提取得到。
比如扫地机器人要进行房间清扫的时候,就会建立这样的拓扑地图:
3. 总结
在机器人技术中,SLAM的地图构建通常指的是建立与环境几何一致的地图。
一般算法中建立的拓扑地图只反映了环境中的各点连接关系,并不能构建几何一致的地图,因此,这些拓扑算法不能被用于 SLAM。
直接表征法类似卫星地图,它是直接使用传感器(一般是图像传感器)构建得到。这种方法的信息冗余度最大,对于数据存储是很大的挑战,同时,机器人要从中提取出有用的数据也要耗费一番周折,因此在实际应用中很少使用。
特征点地图又是另一个极端,虽然数据量少,但是它往往不能反应所在环境的一些必须的信息,比如环境中障碍物的位置。vSLAM 技术中,多采用这种地图来解决机器人定位问题。想让机器人进行自主避障和路径规划,还需要额外配置距离传感器,如激光雷达、超声波来完成。
栅格地图,或者 Occupancy Map(占据地图)恰好介于其中,一方面它能表示空间环境中的很多特征,机器人可以用它来进行路径规划,另一方面,它又不直接记录传感器的原始数据,相对实现了空间和时间消耗的最优。因此,栅格地图是目前机器人所广泛应用的地图存储方式。