基于势场栅格法的机器人全局路径规划文档格式.docx
《基于势场栅格法的机器人全局路径规划文档格式.docx》由会员分享,可在线阅读,更多相关《基于势场栅格法的机器人全局路径规划文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
A 文章编号:
1006-7043(200302-0170-05
Potentialgridbasedglobalpathplanningforrobots
WANGXing2ce,ZHANGRu2bo,GUGuo2chang
(SchoolofComputerScienceandTechnology,HarbinEngineeringUniversity,Harbin150001,China
Abstract:
Thepotentialwayiscombinedwiththegridwaytoformanewpotentialgridway,whichisveryeffectiveinreducingcomputationalworkandavoidinglocalminima,andcanautomaticallycreategrids.Thefactorshavingin2fluenceontheaccuracyofcalculationareanalyzedandthefeasibilityandthevalidityofthemehtodproposedisveri2fiedthroughsimulation.
Keywords:
potentialgridmethod;
globalpathplanning;
intelligentrobot
全局路径规划技术是智能机器人领域中的核心问题之一,也是机器人学中研究人工智能的一个重要方面.解决全局路径规划问题的基本的方法有:
几何法[1]、单元分解法[2]、人工势场法[3]和数学分析法等.全局路径规划方法的一般步骤为:
1划分状态空间;
2形成包含状态空间信息的搜索空间;
3在形成的搜索空间上应用各种搜索策略进行搜索.
势场的方法是由Khatib[4]最先提出的.他把机械手或者是移动机器人在环境中的运动视为在一种抽象的人造受力场中运动:
目标点对机器人产生引力,障碍物对机器人产生斥力,最后根据合力来确定机器人的运动.应用势场法规划出来的路径一般是比较平滑并且安全,但是这种方法存在局部最优点问题(localminima.为了解决这个问题,许多的学者进行了研究:
如Rimon[5],Shahid[6]和Khosla[7]等等.他们期望通过建立统一的势能函数来解决这一问题.但这就要求障碍物最好是规则的,否则算法的计算量将很大,有时甚至是无法计算的.
栅格法是由W.E.Howden在1968年提出的.他在进行路径规划时采用了栅格(grid表示地图,在处理障碍物的边界时,避免了复杂的计算.可以看出,栅格粒度越小,障碍物的表示会越精确,但同时会占用大量的存储空间,算法的搜索范围将按指数增加.栅格的粒度太大,规划的路径会很不精确.所以栅格粒度大小的确定,是栅格法中的主要问题.
本文针对多机器人编队任务的需要,综合了栅格法和势场法的优点,提出一种新的方法,势场栅格法.
一般全局路径规划主要是为了满足单机器人的需要,这里针对多机器人的编队任务,考虑到路径安全性和可靠性要比路径长短重要得多,所以采用势场法.为了降低势场法的计算量,应用栅格法表示地图.针对势场法和栅格法的自身的缺陷,在整个的路径规划的算法中进行了相应的改进.算法的特点有以下几个:
收稿日期:
2002-05-27.
作者简介:
王醒策(1977-,女,博士研究生.研究方向为智能控制,路径规划,多机器人协调.
1系统根据地图中障碍物的疏密自主决定栅格粒度.因为系统规划出的路径还要依靠势场的作用,所以即使栅格粒度较大时,也能规划出比较好的路径.
2由于应用栅格的方法,在计算整个的地图中的函数势时就只要计算栅格点的时函数,根本地解决了传统势场法的大计算量问题.整个的算法中只计算最近障碍物对机器人的排斥,终点对机器人的吸引是由启发函数来完成的,避免了局部最优点问题.
1 基于势场栅格法的路径规划算法
应用势场栅格法来规划路径的过程:
在平面内,首先系统根据地图中障碍物的疏密来决定栅格的粒度;
然后求出每一个栅格中心点的势能值;
经过g函数变换后,再利用A3搜索,综合栅格的g函数结果与栅格与终点的距离,通过启发函数的运算,得到一条自始至终的路径.
1.1 栅格粒度的确定
系统会根据地图中障碍物疏密来决定栅格粒度的大小.在得到地图之后,首先计算地图中所有障碍物面积和.凸多边形以某一顶点进行三角剖分,椭圆和其它的不规则图形则按照能够对它们进行最小覆盖的长方形进行计算.然后根据障碍物的面积在整个地图中所占的比例来决定地图中的栅格粒度.
栅格粒度大小生成方法:
1在地图中任选一个障碍物.
2判断此障碍物是否为凸多边形?
3如果是,则以某一个顶点为起始点,把多边形划分为多个互不相交的三角形.
4如果不是,则找出这个障碍物所有顶点中的xmax,ymax,xmin,ymin,然后分别以(xmin,ymin和(xmax,ymax为对角顶点绘制一个长方形;
以长方形某一顶点为起始点,把长方形划分为两个不相交的三角形.
5按照公式S=
2
×
a×
b×
sinα,计算各三角形的面积.其中a,b是以剖分顶点为顶点的三角形的两边,α是a,b所夹的角度.
6地图中还有没计算的障碍物吗?
如果有,则转1.
7计算障碍物的面积和Sob=∑
l∈Ω
Sl,Ω是整个障碍物集合,l是Ω中的一个元素.
8计算栅格粒度:
计算ltemp=
S总
lmax,得到l=
ltemp,ifltemp>
lmin;
lmin,其他
.
(1式中:
lmax是定义的栅格的最大边长,lmin是栅格的最小边长,l是最终的栅格边长.
9算法结束.
图1给出了不同形状障碍物的剖分结果
图1 不同形状障碍物的剖分
Fig.1 Thetriangulatingofdifferentobstacles
1.2 势场的构造
传统势场法里势场构造是应用引力与斥力共同对机器人产生作用.表示为
Uart=Uo+Ug.(2式中:
Uart表示总势场,Uo表示斥力场,Ug表示引力场.势场中的力表示为
Fart=Fg+Fo.(3式中:
Fg是引力,Fo是斥力,Fart是合力.其中Fg=-grad(Ug=
-xi+yj+zk,(4Fo=-grad(Uo=
-xi+yj+zk,(5 可能会有Fart=0,因为引力和斥力共同对机器人作用,当目标点对机器人的引力等于障碍物对其产生的斥力的时候,算法会产生局部极小点,需要引入其它的量对机器人进行控制.
而在这个算法中,障碍物产生的斥力场构造出整个势场,表示栅格的安全程度.路径终点对障碍物的吸引体现在启发函数中路径预测长度上.机器人行走的方向由启发函数来决定,而非引力和斥力来决定.由于没有力的矢量计算,从根本上解决了局部最优点的问题.
・171
・
第2期 王醒策,等:
在算法中先计算势能值,应用g函数对势能值变换构造出势场.这里势能值定义为栅格中心点到最近障碍物的距离,表示此栅格点的危险程度.利用扫描法计算每一个栅格势能值.具体方法为:
1地图中选择一个栅格;
2初始化圆的半径r=r0;
3以栅格中心点n为圆心,以r为半径画圆;
4判断圆与障碍物是否相交;
5如果相交,则返回栅格中心点的势能的值为
D(n=r-lp;
6如果不相交,则r=r+lp,转3;
7地图中是否还有没有计算的栅格?
若是,则
转1;
8算法结束.
这里r0是圆半径的初始值,lp是等势圈的半径差.
由图2可以看到,在某栅格中心点a处,进行等势波样扩张,直到等势圈与障碍物相交
图2 栅格中的势能值的选取
Fig.2 Thepotentialvalueofthegrid
栅格的势能值就是栅格与离其最近的障碍物的距离.这是因为对栅格的安全影响最大的是距栅格最近的障碍物.
D(n=minp∈
Ωdis(n,p.
(6
式中:
n是某栅格,Ω是整个的障碍物集合,p是Ω集合中元素,dis(n,p是n到p经过扫描法计算出来的距离.
计算好地图中的各个栅格节点势能值之后,进行g函数变换,g函数为
g(n=100×
exp(-D(n/40.
(7
D(n是势场中栅格n的势能值.当栅格n距障碍物的距离越大,则它的g函数将越小.函数变换使势能与栅格中点与路径终点的距离在大致
相等的数量级上,可以共同对节点的选择起作用.地图的势场,表示为不同栅格节点的g函数值.总势场为
Uart=Uo={g(n|g(n=
100×
exp(-D(n/40,n∈Ψ}(8
Ψ是地图中所有栅格中心点的集合.
图4是地图3由此算法产生的势场三维图
图3 一幅地图
Fig.3 A
map
图4 地图3的势场三维图
Fig.4 The32Dmapofthefigure3′spotentialfield
1.3 全局路