一、路径规划的作用
路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。路径规划中有静态路径规划以及动态路径规划。这里仅针对静态路径规划方法进行简单的介绍,以下路径规划仅指在静态环境下的路径规划。
在进行路径规划的时候,我们首先需要考虑的有以下几个方面:
a.起点与终点的位置获取
b.障碍物的环境表示
c.规划方法
d.搜索方法
二、路径规划需要考虑的几个方面
1.起点与终点的位置获取
这个问题很简单,说白了就是我们如何让机器人知道起点和终点的位置。在静态路径规划的情况下,我们通常已知了机器人所处的环境,即地图。而地图则是一个存储着数据的二维数组。这样,我们就可以通过数组的下标唯一的确定数组中的一个或多个元素,即确定地图上的起点与终点位置。当然,在实际的情况中,可能会比这复杂得多,例如机器人在确定自身在地图中的位置时(即起点),会需要其本身所携带的各种传感器,如摄像头,激光雷达,红外传感器,陀螺仪等,通过传感器的数据来感知周围的环境,从而得知自身的位置。因为我们讨论路径规划,所以这部分不会进行很详细的介绍。
2.障碍物的环境表示
在进行路径规划的时候,我们需要让机器人知道地图上的哪些区域是可以通行的,哪些是不可以通行的,这样,我们根据一定的规则,就可以避开不可通行的区域,到达目的地。对一个机器人来说,它根据传感器的数据绘制出完整的地图后,就得到了它的活动空间的一个有效描述,即环境模型。在规划前首先要做的就是将环境的描述由外部的原始形式通过一系列处理转化围合式规划的内部的世界模型,这个过程称为环境建模,其中主要的是障碍物的表示方法。合理的环境表示有利于建立规划方法和选择合适的搜索算法,最终实现较少的时间和内存开销而规划出较为满意的路径。不同的路径规划方法正是基于不同的环境建模。
a.栅格表示法
栅格法通过使用大小相同的栅格画风空间环境,并用数组来表示环境。每个栅格点或在障碍物空间,火灾*空间。对于混合栅格点(即一部分是*空间,一部分是障碍物空间),依据其各自占据的比例将其归属于*空间或障碍物空间。障碍物在数组中表示为1 ,*空间表示为0.最短路径是通过搜索这张栅格地图来得到的。规划空间表达具有一致性、规范性和简单性,它同时具有表达不规则障碍物的能力。其缺点是存在着空间开销和求解精度之间的精度。
b.单元数法
单元数法是为了克服栅格法的缺点。其主要思想是通过将环境空间划分为大小不同的单元来进行环境的描述。常用做法是:将环境空间划分为几个比较大的单元(一般来说,二维空间划分成4部分,称为4×树,三维空间划分为8部分,称为8叉树),其划分的单元的工作空间可能是以下三个部分:*空间、障碍物空间、混合空间。其优点是自适应性较好。主要缺点是计算单元之间的邻接关系时的损失较大,并且计算的算法实现要比栅格法更加复杂。
3.规划方法
为了解决路径规划问题,人们已经探索出很多有效的求解方法。他们不是互相排斥的,并且常常结合起来共同实现路径。大致可以分为两类:传统方法和智能方法。
a.传统方法
i— 几何法
几何法抽取的是环境的几何特征。利用其结合特性将环境空间映射到一个加权(权值可以使两点之间的几何距离)图上,这样就能把避开障碍物的路径规划问题转化成一个简单的图搜索的问题上。基于几何法的路径规划方法一般分为3步:
1>.在搜索图中找到起点
2>.在搜索图中找到目标点
3>.把这两个点用图中不穿过障碍物的折线或曲线连接起来,就得到了一条无碰撞路径。
几何法包括:
a.可视图法(Visibility Graph)
该方法将所有障碍物的顶点(集合为V0)、起始点s、目标点g用直线组合相连,同时要求三者之间的连线均不能穿过障碍物,即直线是可视的,给图中的边赋权值,构造图G(V,E)。然后采用某种搜索方法规划最优路径。该方法在障碍物数目或行状不复杂的时候可以使用,但是当这二者不满足的情况下,所构造的图G(V,E)会成千成百的增加计算量,因此,有些聪明的人将其进行了一些改进,使得它不用保存那么多的信息也可以完成路径规划,这种方法叫切线法。
优点:概念直观,实现简单
缺点:缺乏灵活性,即一旦起点和目标点发生改变,就要重新构造可视图,且路径不是最优
b.Voronoi图法
该方法使用一系列的节点来定义的,这些节点到附近的两个或多个障碍物的边缘是等距的。Voronoi图把空间划分成若干个区域,每个区域只包含一个障碍物的边缘(类似于brushfram方法)
优点:路径安全性十分高
缺点:计算量十分的大,路径不是最优
c.*空间法
把环境分成两部分,即障碍物空间和*空间。用某种搜索策略在*空间中找到一条路径。按照划分*空间方法的不同又可分为:凸区法、三角形法、广义锥法。
优点:路径无碰撞,比较灵活,起始点和目标点的改变不会引起连通图的重构。
缺点:在某些情况下,路径偏离前景目标太远,另外规划出的路径形态比较复杂,精度不高。
ii— 单元划分法
单元划分的典型特征是划分空间与搜索是交叉进行的。这种方法把*空间划分为一个由简单的单元所构成的集合,各单元之间的连线的邻接关系也同时被计算。首先标识出起点和目标点的所在的单元,再连接两点之间的连续单元格,就得到了一条安全路径。单元的花粉可以依赖障碍物,也可以独立于障碍物。
对于前者,障碍物的边界用于生成单元格的边界,所得到的*单元的集合精确的定义*空间,其优点是:有效的表达了障碍物,最后所得的单元格少,相对于独立于障碍物的单元划分法搜索节点少。其缺点是:单元分解与计算单元之间的邻接关系的开销较大。
对于独立于障碍物的单元分解,环境空间被划分为一些有规则形状的单元,算法简单。在所有单元中,如没有包含障碍物,称其为空单元:若被障碍物充满,则为满单元,若部分包含障碍物,称其为混合单元。八段元视为节点,其间的相邻关系用弧线连接起来,得到一个网络连通图,于是寻找安全路径问题变为图的搜索。其优点是:划分简单,易于实现。缺点是:
不一定精确表示障碍物,改善途径是增加单元的数量,就可以提高换分的精度。
iii— 人工势场法
实际上是一种拟物方法,模拟自然界中的静电场,流体等。
iiii— 数学分析方法
这种方法将由起点到终点寻找最优路径问题转化为求一组带约束条件目标函数的极值问题,将路径规划问题转化成一个函数优化问题。由于这种优化是非线性的,并带有许多种限制条件,故往往使用离散化方法来找到最优解。
b.智能路径规划方法
i—基于模糊逻辑的路径规划
模糊逻辑避障是一种仿人控制过程,其原理就是根据总结的规则确定输出值。该方法最大的特点是参考人的驾驶经验,计算量不大,易做到边运动边规划,能够满足实时性要求。同时克服了势场法的局部最优的问题。其缺点是:人的经验也不一定是完备的;输入量增多时,推理规则和模糊表会急剧膨胀
ii— 基于神经网络方法的路径规划
路径规划是感知空间到行为空间的一种映射。映射关系可以用不同的方式表示,但很难用精确地数学方程表示。而神经网络巧妙地避开了这一难题,通过其网络的自学习来达到建立精确模型的目的。缺点是:典型样本获得难度较大,网络训练速度不一,学习机制会有缺陷。
iii—基于遗传算法的路径规划
以自然遗传机制和自然选择等生物进化理论为基础,构造了一类随机化搜索算法。他利用选择、交叉和变异等遗传操作来培养控制机构的计算过程,在某种程度上对生物进化过程做数学方式的模拟。其特点为:对参数的编码进行操作而不是参数本身;作为并行算法,在某种程度上适用于全局搜索;是用的是随机搜索过程;对于待优函数基本上没有任何要求,只利用适应度信息。缺点是:运算速度不快进行众多的规划要占用较大的存储空间和运算时间;有时候会提前收敛。
4.搜索方法
给定一种环境空间的表示方法(环境的抽象)和规划技术(数学的理论表达)后,求避障路径问题就变成了求解数学问题的最优解的问题,也就是搜索一个从起点到终点的连续节点序列问题。搜索技术分为三类:基于微积分搜索技术、有指导的随机搜索技术和枚举技术。
a.基于微积分搜索集输
该技术使用微积分理论求解满足一组充分必要条件问题的最优解。由于方法的理论工具是传统的微积分,因此利用这种搜索技术的前提是目标函数与约束条件要有解析表达式,并且可导。而避障路径规划问题很难归纳出这样的解析表达式。在人工势场方法中,实际上也还是将路径规划问题转化为求解高维度函数的极值问题。这种技术易于陷入局部最优解。
b.有指导的随机搜索技术
该技术以枚举法为基础,附加了一些指导搜索过程的信息。其两个主要的子集是模拟退火算法(SAA)和遗传算法(GA)。
c.枚举法
该技术是搜索目标函数的域空间中的每一个点,他们实现简单,但可能会需要大量的计算。常用的有深度优先搜索(DFS)、广度优先搜索(BFS)、A*搜索、Dijkstra搜索、波传播算法等。
波传播算法即是从水波中得到的启发。波传播算法就是模拟了这一过程,将环境视为水面,起点视为石子,这样,水波总能会经过目标点。波传播算法以波形分为矩形波传播算法和圆形波传播算法。
矩形波传播算优点:简单易行,只要栅格大小选取得当,并且起点与终点之间存在路径,运用该方法一定能找到到一条合适的路径。缺点:路劲不一定是最优。这种方法把路径长短用经过此格子时的波的传播圈数来度量。事实上,路径的长短和经过的波的传播圈数不是严格的单调关系。
圆形波的传播优点:可以找到比矩形波较优的路径。缺点是:栅格环境下,构造圆形波增加了复杂度。主要难点是圆形波各圈半径的确定。因为栅格的连续和形状,当波圈增加时,其半径等差增加并不是对应栅格个数的等差增加,如果半径增加选择大了,在波覆盖时就会漏掉一些格子;反之如果减小了,不仅会做一些无用的覆盖,而且会大大增加复杂度。实际上,圆形波的提出者的算法并不是真正的圆形波,还是用矩形波来传播,用类似于圆形波的距离概念进行填写的。上述的图片不是太清晰,可以看下面这一个图。
d.搜索算法的比较
基于微积分的搜索技术,可分为直接法和间接法,直接法根据目标函数的梯度来确定下一步的搜索方向,如Newton法,共轭梯度法和尺度变换法等。直接法采用的是一种爬山法,即根据最陡的方向爬上一个局部最优解。间接法则从极值的必要条件出发导出一组方程,然后求解方程组再通过比较求得极值,然而导出的方程一般是非线性的,他的求解非常困难,所以,对一些很简单的问题才使用间接法。
由于遗传算法是一种马氏链过程,虽有一些关于收敛性的研究,但是还是缺乏中肯的分析。
经典搜索算法中一些算法程序的实现非常简单,搜索出的结果非常接近最优结果,有的甚至就是最优结果。例如A*搜索算法,Dijkstra算法,贪心算法等。其中Dijkstra算法与贪心算法容易陷入局部最优而导致路径很差或路径规划失败,因此需要我们有针对性的运用他们。
本文还有一些内容没有补充完整,稍后再进行补充。内容大部分参考了一篇论文,以下是原论文的链接:
参考论文链接http://xueshu.baidu.com/usercenter/paper/show?paperid=08ed3a8e7c2e4c58411bcf4fe43590eb&site=xueshu_se
待续。。。。。