即时定位与地图构建(SLAM)的相关研究
即时定位与地图构建(SimultaneousLocalization AndMapping)指的是机器人在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。
SLAM问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和传感器数据进行自身定位,同时建造增量式地图。
(1)定位(localization):机器人必须知道自己在环境中位置。
(2)建图(mapping):机器人必须记录环境中特征的位置(如果知道自己的位置)
(3)SLAM:机器人在定位的同时建立环境地图。其基本原理是运过概率统计的方法,通过多特征匹配来达到定位和减少定位误差的。
图 SLAM的基本过程
移动机器人自定位与环境建模问题是紧密相关的。环境模型的准确性依赖于定位精度,而定位的实现又离不开环境模型。在未知环境中,机器人没有什么参照物,只能依靠自己并不十分准确的传感器来获取外界信息,如同一个盲人在一个陌生环境中摸索的情况。这种情况下,定位是比较困难的。有地图的定位和有定位的地图创建都是容易解决的,但无地图的定位和未解决定位的地图创建如同\鸡--蛋\问题,无从下手。已有的研究中对这类问题的解决方法可分为两类:一类利用自身携带的多种内部传感器(包括里程仪、罗盘、加速度计等),通过多种传感信息的融合减少定位的误差,使用的融合算法多为基于卡尔曼滤波的方法。这类方法由于没有参考外部信息,在长时间的漫游后误差的积累会比较大。另一类方法在依靠内部
传感器估计自身运动的同时,使用外部传感器(如激光测距仪、视觉等)感知环境,对获得的信息进行分析提取环境特征并保存,在下一步通过对环境特征的比较对自身位置进行校正。但这种方法依赖于能够取得环境特征。
SLAM的三个基本问题
Leonard和Durrant-Whyte将移动机器人完成任务定义为三个问题“Wheream I?”、“Wheream I going?”和“Howdo I getthere”,就是定位、目标识别和路径规划,为了能实现导航,移动机器人需要靠本体感受传感器和环境感知传感器来实现对本体位姿估计和外部环境位姿的定位。依据环境空间的描述方法,Desouza等将视觉导航的方法化为三类:
(1)已知地图的导航(Map-BasedNavigation):表示地图的方法几何特征
(GeometricPrimitives)、拓扑特征(TopologicalFeatures)或占据栅格(OccupancyGrids)移动机器人依据这些已知的环境地图进行导航。
(2)地图建立的导航(Map-Building-BasedNavigation):在没有已知环境地图的情况下,移动机器人通过自身的导航运动和传感器的不断感知更新来进行导航。
(3)未知环境的导航(MaplessNavigation):相对于上面两种方法,在实时的动态环境中无法建立明确的地图表达形式,更多的是通过传感器获得的观测信息用来识别或者跟踪环境中的物体来导航。
但是由于感知信息的不确定性,移动机器人很难实现定位的准确,因而,在未知环境中的定位成为最关键的问题
定位(Wheream I?)是实现自主能力的最基本问题,是为了确定机器人在运行环境中相对于世界坐标系的位置及其本身的位姿。
移动机器人的定位与其它领域研究课题的关系如图所示:
图 SLAM与各领域关系图
现有的移动机器人自主定位方法主要是局部定位和全局定位。局部是通过测量相对于机器人初始位姿的距离和方向来确定当前的位姿,但随着时间的累计造成定位的误差较大,无法精确定位。全局定位则通过测机器人的绝对位置来定位,定位的精度较高,并且可以用来修正局部定位的定位误差。
现在移动机器人定位的方法大致可分为三类
(1)相对定位(RelativePositionMeasurements):主要依靠内部本体感受传感器如里程计(Odometry)、陀螺仪(Gyroscopes)等,通过给定初始位姿,来测量相对于机器人初始位姿的距离和方向来确定当前机器人的位姿,也叫做航迹推测(DeadReckoning, DR)。
(2)绝对定位(AbsolutePosition Measurements):主要采用主动或被动标识(Activeor Passive Beacons)、地图匹配(MapMatching)、全球定位系统(GlobalPositioning System,GPS)、或导航信标(LandmarkNavigation)进行定位。位置的计算方法包括有三角测量法(Triangulation)、三边测量法(Trilateration)和模型匹配算法(ModelMatching)等。
(3)组合定位(CombinedPositionMethod):虽然相对定位这种方法能够根据运动学模型的自我推算移动机器人的位姿和轨迹而且具有自包含的有点。但是不可避免地会存在随时间的增加和距离的增加而增加的累积航迹误差。在绝对定位中,地图匹配技术处理数据速度较慢,而信标或标识牌的建设和维护成本太高,GPS又只能在室外使用。由于单一定位的方法的缺陷,移动机器人定位仍然是基于航迹的推算与绝对位姿和轨迹矫正相结合起来。 ----------------------------------------------------------------
我已在Github Pages 上搭建了个人博客,欢迎访问:http://xiongxiaoxx.github.io/
视觉SLAM漫谈(一)
1. 前言
开始做SLAM(机器人同时定位与建图)研究已经近一年了。从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解。然而越了解,越觉得这个方向难度很大。总体来讲有以下几个原因:
? 入门资料很少。虽然国内也有不少人在做,但这方面现在没有太好的入门教程。《SLAM for dummies》可以算是一篇。中文资料几乎没有。
? SLAM研究已进行了三十多年,从上世纪的九十年代开始。其中又有若干历史分枝和争论,要把握它的走向就很费工夫。
? 难以实现。SLAM是一个完整的系统,由许多个分支模块组成。现在经典的方案是“图像前端,优化后端,闭环检测”的三部曲,很多文献看完了自己实现不出来。
? 自己动手编程需要学习大量的先决知识。首先你要会C和C++,网上很多代码还用了11标准的C++。第二要会用Linux。第三要会cmake,vim/emacs及一些编程工具。第四要会用openCV, PCL, Eigen等第三方库。只有学会了这些东西之后,你才能真正上手编一个SLAM系统。如果你要跑实际机器人,还要会ROS。
当然,困难多意味着收获也多,坎坷的道路才能锻炼人(比如说走着走着才发现Linux和C++才是我的真爱之类的。)鉴于目前网上关于视觉SLAM的资料极少,我于是想把自己这一年多的经验与大家分享一下。说的不对的地方请大家批评指正。
这篇文章关注视觉SLAM,专指用摄像机,Kinect等深度像机来做导航和探索,且主要关心室内部分。到目前为止,室内的视觉SLAM仍处于研究阶段,远未到实际应用的程度。一方面,编写和使用视觉SLAM需要大量的专业知识,算法的实时性未达到实用要求;另一方面,视觉SLAM生成的地图(多数是点云)还不能用来做机器人的路径规划,需要科研人员进一步的探索和研究。以下,我会介绍SLAM的历史、理论以及实现的方式,且主要介绍视觉(Kinect)的实现方式。 2. SLAM问题
SLAM,全称叫做Simultaneous Localization and Mapping,中文叫做同时定位与建图。啊不行,这么讲下去,这篇文章肯定没有人读,所以我们换一个讲法。 3. 小萝卜的故事
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库即时定位与地图构建(SLAM)的相关研究在线全文阅读。
相关推荐: