机器人学中地图的表示方法有四种:特征地图、拓扑地图、栅格地图以及直接表征法(Appearance based Methods)。特征地图用有关的几何特征(如点、直线、面)表示环境。它一般通过如GPS、UWB以及摄像头配合稀疏方式的vSLAM算法产生,优点是相对数据存储量和运算量比较小,多见于最早的SLAM算法中。
机器人学中地图的表示方法有四种:特征地图、拓扑地图、栅格地图以及直接表征法(Appearance based Methods)。特征地图用有关的几何特征(如点、直线、面)表示环境。它一般通过如GPS、UWB以及摄像头配合稀疏方式的vSLAM算法产生,优点是相对数据存储量和运算量比较小,多见于最早的SLAM算法中。
拓扑地图把室内环境表示为带结点和相关连接线的拓扑结构图,其中结点表示环境中的重要位置点(拐角、门、电梯、楼梯等),边表示结点间的连接关系,如走廊等。
栅格地图则是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率。
直接表征法省去了特征或栅格表示这一中间环节,直接用传感器读取的数据来构造机器人的位姿空间。每种方法各有自己的特点和适用范围,其中特征地图和栅格地图应用最普遍。
SLAM是同步定位与地图构建(SimultaneousLocalization And Mapping)的缩写,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。
同步定位与地图构建(SLAM或Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。
这里说的地图,是用来在环境中定位,以及描述当前环境以便于规划航线的一个概念;它通过记录以某种形式的感知获取的信息,用以和当前的感知结果相比较,以支撑对现实定位的评估。在定位评估方面,地图提供的帮助程度,与感知的精度和质量成反相关。地图通常反映了它被描绘出来的时刻的环境状态,所以它并不一定反映它被使用的时刻的环境状态。
在误差和噪音条件下,定位和地图构建技术上的复杂度不支持两者同时获得连续的解。即时定位与地图构建(SLAM)是这样一个概念:把两方面的进程都捆绑在一个循环之中,以此支持双方在各自进程中都求得连续解;不同进程中相互迭代的反馈对双方的连续解有改进作用。
地图构建,是研究如何把从一系列传感器收集到的信息,集成到一个一致性的模型上的问题。它可以被描述为第一核心问题:这个世界长什么样?地图构建的核心部分是环境的表达方式以及传感器数据的解释。
与之相比,定位,是在地图上估测机器人的坐标和姿势形态的问题;换而言之,机器人需要回答这里的第二核心问题,我在哪?典型的解包含以下两个方面:追踪——通常机器人的初始位置已知;全局定位——通常只给出很少,甚至不给出有关于起始位置环境特征的先验信息。
所以,同步定位与地图构建(SLAM)被定义为以下问题:在建立新地图模型或者改进已知地图的同时,在该地图模型上定位机器人。实际上,这两个核心问题如果分开解决,将毫无意义;必须同时求解。
在机器人能够根据一系列观测值回答“这个世界长什么样”之前,它需要知道的额外信息很多,比如以下:
它自身的运动学特征,
信息的自动获得需要什么样的品质,
附加的支持观测值能从哪些源得到。在没有地图或者方向参考的前提下,对机器人的当前位置估测是一个复杂的任务。这里的"位置"可以简单指代机器人的所处方位,也可以包括它的姿势形态。
本文采用的是旅行者号移动机器人平台,此机器人配备了个超声波传感器,每两个超声波传感器之间的夹角为度,超声波传感器测距的原理是超声波传感器向空气中发出一束超声波,超声波在空气中传播的过程中遇到障碍物就会反射回来,通过超声波在空气中传播的时间和超声波在空气中的传播速度就能准确度的计算出超声波传播的距离。旅行者号移动机器人携带的传感器的测距范围为。距离数据连续的从24感器中获取并存取在一个缓冲区中。这些原始的距离数据被用作水平反射障碍检测和避障,它可以在机器人周围构造一个可见区间描述被称作为“声纳视界”。
声纳视界是由在外部笛卡尔坐标系中的24置数组构成的,在这个数组中的点都是机器人周围可见空间这个多边形的顶点,随着声纳视界中的每个点被存取有一种不确定性也被存取。这些点和他们的不确定性依据声纳测距模型通过投射距离测量从他们的观测点获取。传感器相对于机器人原点的位置和方向定义在传感器配置表中。对于每个超声波传感器的配置表如下所示:
r表示机器人原点到传感器的距离。
γ表示机器人轴相对于机器人原点到传感器这个线段的角度。
β表示机器人轴相对于传感器方向的角度。
当机器人探测完一些环境区域后,线段特征数据存取在内存中的顺序是混乱的。机
器人如何快速的将内存中的数据还原成一幅准确的地图是问题的一个难点。
针对上述问题,我们采用线段特征编码的方法解决。在这一节中,我们将详细的介绍线
段特征编码的方法。线段特征编码法标记的对象是线段,先根据线段的连通关系判断哪
些线段属于同一障碍物,进而根据线段的邻近关系对各线段表中的线段进行标记和排
序。
线段编码法可分为线段表扫描,线段是否为在一障碍物关系判断,统一标记,标记
排序和地图创建个步聚,它的实现步聚如下:
逐行扫描内存中的初始线段表,即获取线段的线段特征信息。
根据线段的连通关系判断线段表中哪些线段属于同一障碍物,并做相应处理:
如果第条线段和第条线段相连通且第条线段还未做标记,则将第条线
段的标记赋给第条线段为线段表中线段的总数。
若第条线段和第条线段相连通且第条线段已做标记,则记下这两条线段标记间的等价关系。
若第条线段和第条线段不相连通,则赋予第条线段新的标记,并继续检测新的线段。
统一具有等价标记的同一障碍物边缘线段的标记,使得相同障碍物的边缘线段采用相同的标记。
根据线段的邻近关系和邻近度对线段进行标记和排序,方法同上。
编码完成后机器人根据内存中存取的线段表在直角坐标系中依次画出所有线段完成地图的创建。