1.导言:
机器人的研讨越来越多的得到重视和投入,跟着核算机技能和人工智能的开展,智能自主移动机器人成为机器人范畴的一个重要研讨方向和研讨热门。移动机器人的定位和地图创立是自主移动机器人范畴的热门研讨问题。关于已知环境中的机器人自主定位和已知机器人方位的地图创立现已有了一些有用的处理办法。可是在许多环境中机器人不能运用大局定位体系进行定位,并且事前获取机器人工作环境的地图很困难,乃至是不或许的。这时机器人需求在本身方位不确认的条件下,在彻底不知道环境中创立地图,一起运用地图进行自主定位和导航。这便是移动机器人的一起定位与地图创立(SLAM) 问题,最先是由SmithSelf 和Cheeseman在1988年提出来的,被认为是完结真实全自主移动机器人的要害。
SLAM问题能够描绘为:机器人在不知道环境中从一个不知道方位开端移动,在移动进程中依据方位估量和传感器数据进行本身定位,一起制作增量式地图。在SLAM中,机器人运用本身带着的传感器辨认不知道环境中的特征标志,然后依据机器人与特征标志之间的相对方位和路程计的读数估量机器人和特征标志的大局坐标。这种在线的定位与地图创立需求坚持机器人与特征标志之间的具体信息。近几年来,SLAM的研讨取得了很大的发展,并已运用于各种不同的环境,如:室内环境、水下、室外环境。
2.SLAM的要害性问题
2.1地图的标明办法
现在各国研讨者现已提出了多种标明法,大致可分为三类:栅格标明、几许信息标明和拓扑图标明,每种办法都有自己的优缺陷。
栅格地图标明法行将整个环境分为若干相同巨细的栅格,关于每个栅格各指出其间是否存在障碍物。这种办法最早由Elfes和Moravec提出,然后Elfes进行了进一步的研讨。它的长处在于创立和保护简略,尽量的保留了整个环境的各种信息,一起借助于该地图,能够方便地进行自定位和途径规划。缺陷在于:当栅格数量增大时(在大规模环境或对环境区分比较具体时),对地图的保护行为将变得困难,一起定位进程中查找空间很大,假如没有较好的简化算法,完结实时运用比较困难。
几许信息地图标明法是指机器人搜集对环境的感知信息,从中提取更为笼统的几许特征,例如线段或曲线,运用这些几许信息描绘环境。该办法更为紧凑,且便于方位估量和方针辨认。几许办法运用卡尔曼滤波在部分区域内可取得较高精度,且核算量小,但在广域环境中却难以坚持精确的坐标信息。但几许信息的提取需求对感知信息作额定处理,且需求必定数量的感知数据才干得到成果。
拓扑地图笼统度高,特别在环境大而简略时。这种办法将环境标明为一张拓扑含义中的图(graph),图中的节点对应于环境中的一个特征状况、地址。假如节点间存在直接衔接的途径则相当于图中衔接节点的弧。其长处是:
(1)有利于进一步的途径和使命规划,
(2)存储和查找空间都比较小,核算功率高,
(3)能够运用许多现有老练、高效的查找和推理算法。
缺陷在于对拓扑图的运用是树立在对拓扑节点的辨认匹配基础上的,如当环境中存在两个很类似的地方时,拓扑图办法将很难确认这是否为同一点。
2.2不确认信息的描绘
在彻底不知道环境中由机器人依托其本身带着的传感器所供给的信息树立环境模型是移动机器人进行自主定位和导航的条件之一。所谓彻底不知道环境是指机器人对环境一窍不通不存在任何先验信息,如环境形状、障碍物方位、人为设定的参照物等。在这种环境下,移动机器人有必要依托传感器所取得的信息,如路程计、声纳、激光测距仪、视觉等。因为传感器本身的束缚,感知信息存在不同程度的不确认性,例如激光测距仪的不确认性首要来自距离的测量差错以及反光镜旋转和激光散射引起的测量角差错。如图1-1所示,感知信息的不确认性必定导致所构建的环境模型也不或许是彻底精确的,相同,当依托模型和感知进行决议计划时也带有不确认性,即不确认性具有传递性。
对不确认性进行衡量的办法首要有概率衡量、信赖衡量、或许性衡量、含糊衡量和依据理论等。现在,在AMR地图构建中运用较多的是概率衡量和含糊衡量。概率衡量首要存在两种办法:
(1)以均值、方差和协方差等概率特征来描绘不确认信息。这种衡量办法的长处是均值等概率特征具有清晰的几许含义,缺陷是概率特征的离散核算公式还没有确认的办法;
(2)以概率模型来描绘不确认信息,首要选用Bayes规律与Markov假定。这种衡量办法的长处是以随机概率模型描绘机器人的位姿和环境信息,鲁棒性非常好,缺陷是概率模型的核算量非常大并且有必要事前知道模型的先验概率,给实践运用造成了困难。
2.3定位与环境特征提取
移动机器人自定位与环境建模问题是严密相关的。环境模型的精确性依托于定位精度,而定位的完结又离不开环境模型。在不知道环境中,机器人没有什么参照物,只能依托自己并不非常精确的传感器来获取外界信息,好像一个盲人在一个生疏环境中探索的状况。这种状况下,定位是比较困难的。有地图的定位和有定位的地图创立都是简略处理的,但无地图的定位和未处理定位的地图创立好像鸡–蛋问题,无从下手。已有的研讨中对这类问题的处理办法可分为两类:
1) 运用本身带着的多种内部传感器(包含路程仪、罗盘、加速度计等),经过多种传感信息的交融削减定位的差错,运用的交融算法多为依据卡尔曼滤波的办法。这类办法因为没有参阅外部信息,在长期的周游后差错的堆集会比较大。
2) 在依托内部传感器估量本身运动的一起,运用外部传感器(如激光测距仪、视觉等)感知环境,对取得的信息进行剖析提取环境特征并保存,鄙人一步经过对环境特征的比较对本身方位进行校对。但这种办法依托于能够取得环境特征。环境特征提取的办法有:
(1) Hough transform是一类依据灰度图检测直线和其他曲线的办法。该办法需求一簇能被查找的预先预备的特定曲线,并依据显现的灰度图中一簇曲线发生曲线参数。
(2) Clustering剖析是一种数据勘探东西,关于未分类样例是有用的,一起,它的方针便是把所针对方针分组成天然类别或依据类似性或距离的簇类。在被提取方针类别不知道的状况中,簇技能是一类比HoughTransform更有用的技能。簇类应是以“凝集”为中心,而不是四分五裂的、不相交的。而环境特征有时是很难提取出的,例如:环境特征不行显着时或许传感器信息比较少,难以从一次感知信息中取得环境特征。
2.4数据相关
数据相关是对两个特征标志进行匹配,确认它们是否对应环境中的同一物体。SLAM中的数据相关首要需求完结三个使命:1)新特征标志的检测2)特征标志的匹配3)地图之间的匹配。尽管在方针盯梢、传感交融等范畴,数据相关现已得到较好的处理,可是这些办法的核算量大,不能满意SLAM的实时性要求。完结m个标志与具有n个标志的地图之间的数据相关的杂乱度与m之间呈指数联系,假定每个观测到的标志i有 个或许的匹配,那么关于m个标志需求在指数空间 = 中查找正确的匹配。数据相关的查找空间与环境的杂乱程度以及机器人的定位差错有关,环境的杂乱程度的添加会使m增大,而差错的增大会使Ni 增大。
2.5累积差错
SLAM中的差错首要来自三个方面:1)观测差错2)路程计的差错3)过错的数据相关带来的差错。当机器人在已知地图的环境中进行定位时,机器人能够经过观测方位已知的特征标志对路程计的差错进行补偿,每一次观测使机器人的方位差错趋向于观测差错与特征标志的方位差错之和。可是在SLAM中,因为机器人的方位和环境中的特征标志的方位都是不知道的,观测信息不能有用纠正路程计的差错,机器人的方位差错跟着机器人的运动距离而增大。而机器人的方位差错的增大将导致过错的数据相关,然后增大特征标志的方位差错:反过来,特征标志的差错又将增大机器人的方位差错。因而,机器人的方位差错与特征标志的方位差错密切相关。它们之间的彼此影响使机器人和特征标志的方位估量发生累计差错,难以确保地图的一致性。
3.SLAM的完结办法
现在SLAM办法大致可分为两类:1)依据概率模型的办法:依据卡尔曼滤波的彻底SLAM、紧缩滤波、FastSLAM等2)非概率模型办法:SM-SLAM、扫描匹配、数据交融(dataassociaTIon)、依据含糊逻辑等。
3.1依据卡尔曼滤波器的完结办法
从统计学的观念看,SLAM是一个滤波问题,也便是依据体系的初始状况和从0到t时间的观测信息与操控信息(路程计的读数)估量体系的当时状况。在SLAM中,体系的状况 = ,由机器人的位姿r和地图信息m组成(包含各特征标志的方位信息)。假定体系的运动模型和观测模型是带高斯噪声的线性模型,体系的状况 遵守高斯散布,那SLAM能够选用卡尔曼滤波器来完结。依据卡尔曼滤波器的SLAM 包含体系状况猜测和更新两步,一起还需求进行地图信息的办理,如:新特征标志的参加与特征标志的删去等。
卡尔曼滤波器假定体系是线性体系,可是实践中机器人的运动模型与观测模型对错线性的。因而一般选用扩展卡尔曼滤波器(Extended Kalman Filter),扩展卡尔曼滤波器经过一阶泰勒展开来近似标明非线性模型。另一种适用于非线性模型的卡尔曼滤波器是UKF(Unscented Kalman Filter),UKF选用条件高斯散布来近似后验概率散布,与EKF比较,UKF的线性化精度更高,并且不需求核算雅可比矩阵。
卡尔曼滤波器现已成为完结SLAM的根本办法。其协方差矩阵包含了机器人的方位和地图的不确认信息。当机器人接连地观测环境中的特征标志时,协方差矩阵的任何子矩阵的行列式呈单调递减。从理论上讲,当观测次数趋向于无量时,每个特征标志的协方差只与机器人开始方位的协方差有关。卡尔曼滤波器的时间杂乱度是O( ),因为每一时间机器人只能观测到少量的几个特征标志,依据卡尔曼滤波器的SLAM的时间杂乱度能够优化为O( ),n标明地图中的特征标志数。
3.2部分子地图法
部分子地图法从空间的视点将SLAM分解为一些较小的子问题。子地图法中首要需求考虑以下几个问题:1)怎么区分子地图2)怎么标明子地图间的彼此联系3)怎么将子地图的信息传递给大局地图以及能否确保大局地图的一致性。
最简略部分子地图办法是不考虑各子地图之间的彼此联系,将大局地图区分为包含固定特征标志数的独立子地图,在各子地图中别离完结SLAM,这种办法的时间杂乱度为O(1)。可是,因为丢掉了标明不同子地图之间相相联系的有用信息,这种办法不能确保地图的大局一致性。
对此,Leonard 等人提出了DSM(DecoupledStochasTIc Mapping)办法,DSM中各子地图别离保存自己的机器人方位估量,当机器人从一个子地图A进入另一个子地图B时,选用依据EKF的办法来将子地图A中的信息传送给子地图B;B.Williams等人提出了一种依据CLSF(ConstrainedLocal Submap Filter)的SLAM办法,CLSF在地图中创立大局坐标已知的子地图,机器人行进进程中只运用观测信息更新机器人和部分子地图中的特征标志的方位,并且按必定的时间距离把部分子地图信息传送给大局地图。尽管试验标明这两种算法具有很好的功能,可是没有从理论上证明它们能够坚持地图的一致性。J.Guivant等人提出了一种没有任何信息丢掉的SLAM优化算法CEKF(CompressedExtended Kalman Filter)。CEKF将现已观测到的特征标志分为A与B部分,A标明与机器人当时方位相邻的区域,被称为活动子地图。当机器人在活动子地图A中运动时,运用观测信息实时更新机器人的方位与子地图A,并选用递归的办法记载观测信息对子地图B的影响;当机器人脱离活动子地图A时,将观测信息无损失地传送给子地图B,一次性地完结子地图B的更新,一起创立新的活动子地图。该办法的核算时间由两部分组成:活动子地图中的SLAM,其时间杂乱度为O( ), 是活动子地图A中特征标志的数目;子地图B的更新,其时间杂乱度为O( ) , 是地图B中特征标志的数目。当子地图兼并的时间距离较大时,CEKF能有用削减SLAM的核算量。
3.3去相关法
下降SLAM杂乱度的另一种办法是将标明相相联系的协方差矩阵中一些取值较小的元素疏忽掉,使其变为一个稀少矩阵。可是这也会因信息的丢掉而使地图失掉一致性。可是,假如能改动协方差矩阵的标明办法,使其间的许多的元素接近于零或等于零,那么就能够将其安全地疏忽了。依据扩展信息滤波器EIF(ExtendedInformaTIon Filter)的SLAM便是出于这一思维。EIF EKF的依据信息的表达办法,它们的差异在于标明信息的办法不一样。EIF选用协方差矩阵的逆矩阵来表征SLAM中的不确认信息,并称之为信息矩阵。两个不相关的信息矩阵的交融能够简略地标明为两个矩阵相加。信息矩阵中每个非对角线上的元素标明机器人与特征标志之间或特征标志与特征标志之间的一种束缚联系,这些束缚联系能够经过体系状况的信联系进行部分更新。这种部分更新使得信息矩阵近似于稀少矩阵,对其进行稀少化发生的差错很小。依据这一点,S.Thrun等人提出了一种依据稀少信息滤波器SEIF(Sparse Extended InformaTIonFilter)的SLAM办法,并证明运用稀少的信息矩阵完结SLAM的时间杂乱度是O(1)。尽管EIF能够有用下降SLAM的时间杂乱度,可是在地图信息的标明和办理方面还存在一些问题。首要,在常数时间内只能近似算得体系状况的均值;其次,在依据EIF 的SLAM 办法中,特征标志的增删不方便。
3.4分解法(FastSLAM)
M.Montemerlo 等人提出了一种依据粒子滤波器(ParticleFilter) FastSLAM 办法。FastSLAM 将SLAM分解为机器人定位和特征标志的方位估量两个进程。 粒子滤波器中的每个粒子代表机器人的一条或许运动途径,运用观测信息核算每个粒子的权重,以点评每条途径的好坏。关于每个粒子来说,机器人的运动途径是确认的,因而特征标志之间彼此独立,特征标志的观测信息只与机器人的位姿有关,每个粒子能够选用n个卡尔曼滤波器别离估量地图中n个特征的方位。假定需求k个粒子完结SLAM、FastSLAM,总共有kn个卡尔曼滤波器。FastSLAM的时间杂乱度为O(kn),经过运用树型的数据结构进行优化,其时间杂乱度能够到达O(klog n)。Fast2SLAM办法的另一个首要长处是经过选用粒子滤波器估量机器人的位姿,能够很好地标明机器人的非线性、非高斯运动模型。
3.5依据多机器人协作的SLAM
一些研讨者对依据多机器人协作的一起定位与地图创立CSLAM(CooperativeSimultaneous Localizationand Mapping)进行了讨论和研讨。 与单机器人比较,经过机器人之间的彼此和谐与协作以及信息同享,CSLAM能够进步地图创立的功率和进步定位与地图的精度。CSLAM依照地图的存储与处理办法的不同能够分为两大类型:集中式CSLAM和散布式CSLAM。在集中式CSLAM中,存在一个中心处理模块,每个机器人别离在自己地点的部分地图中进行定位与地图创立,然后运用无线通信设备将在部分地图中取得的信息传送给中心模块。这种办法经过子地图的匹配,能够充分运用子地图间的冗余信息进步定位与地图创立的精度。可是,当机器人数量添加时中心模块的核算量会明显增大,并且集中式的信息传递需求很大的带宽;体系的可靠性也比较低,一旦中心模块呈现毛病,整个体系都会堕入瘫痪状况。在散布式CSLAM中,不存在中心模块,每个机器人都具有自己的大局地图,在每一时间机器人把来自其他相邻机器人的信息和自己的观测信息交融到自己的大局地图中,然后以点对点的办法将新的信息传送给其他机器人。每个机器人只能取得与其相邻的机器人的方位信息,不知道整个体系的拓扑结构。这种办法与散布式的信息交融非常类似,能够运用信息滤波器来完结。因为两个不相关信息矩阵的信息交融能够经过两个矩阵的相加而完结,所以运用信息滤波器完结散布式CSLAM能够防止杂乱的核算。
4.研讨方向与开展趋势
综上所述,近几年来机器人范畴的研讨者对SLAM进行了很多的研讨,特别是在下降核算杂乱度、进步鲁棒性等方面取得了很大的发展。跟着研讨的深化,以下的几方面成为了当时SLAM的研讨热门方向。
1. 扩展SLAM的运用环境:将现在限制二维静态环境中的研讨与运用扩展到与实际中的环境切合的动态的三维环境;
2. 深化研讨依据多机器人协作的SLAM,进步其运用水平;
3. 研讨更有用的SLAM完结办法,将人工智能、智能操控等范畴的办法引进到SLAM中,开发更有用的SLAM算法.;
4. 研讨更好的地图表达办法,特别是杂乱地势和大环境中的地图表达办法;
5. 研讨更好的将视觉处理与其他传感器结合,进步环境特征提取的精度,削减差错,进步定位和构图的精确性。