一种基于改进可视图构造的路径规划算法的制作方法

文档序号:14910480发布日期:2018-07-10 23:16阅读:289来源:国知局

本发明属于移动机器人路径规划领域,特别涉及一种基于改进可视图构造的路径规划算法。



背景技术:

路径规划是移动机器人路径规划的主要研究内容之一,其研究的方向可以分为两部分:有起点与终点之间曲线组成的路径和构成路径策略的规划。在硬件方面,随着硬件设施的不断发展,智能小车已经从最初的单片机系统发展为嵌入式的结构,其用于探测的传感器也从原来的声波发展为现在的激光、雷达以及视觉设施。在软件方面,地图的构建和路径规划是移动机器人的两个主要研究方向。路径规划的目标在于从需要进行探测的环境寻找一条从出发点到目的地点的通畅的路径。

可视图法是一种比较常见的地图构建方法,该方法是把移动机器人本身、起点和终点用质点的方式表达出来,对于环境中级联的障碍物,用凸多边形的方式连接其边界,从而忽略边界内部的可行性,只考虑障碍物组成的凸多边形顶点与边界线的信息。而在可视图下的路径规划就是寻求一条最短的可视线组合问题。

因此在地图构建的基础上,发展和改进的各种路径规划算法,如在最早时期使用的Dijsktra算法、A*算法和D*算法,该类算法在地图已知的情况下,通过判断路径所花费的代价,寻找最小代价,从而完成路径的搜索。近些年,由于人工智能的兴起以及更高级传感器的引入和应用,蚁群算法、神经网络和遗传算法也为路径规划提供了更广泛的选择。



技术实现要素:

本发明的目的:在大多数的可视图的改进中,关注的点在于如何对障碍物模型进行简化合并,而忽略了最短路径求取的复杂度问题。由于可视图在构建的时候是将所有的顶点进行可视化判断,对于起点和终点之间无影响的可视边依旧需要考虑,从而在无形中增加了需要搜索的路径数量,造成了算法的冗余。

鉴于算法选取复杂度的考虑,本发明基于路径构建的角度,并考虑到可视图法在寻求路径中过程麻烦的情况,提出了一种基于搜索过程的简化可视边的地图构建方法。该方法结合可视图和A*算法,在地图构建的时候只考虑与最优路径相关的可视边,而将其他的边舍弃掉,从而提高了算法的效率。在保证地图自身完整性的同时,极大减少了可行路径的数量而不失判断的准确性。

本发明所提出的算法不是在搜索之前建立完整的可视图,而是将可视图的建立过程融入A*算法搜索中。搜索过程中只构造与最优路径可能有关的可视边,而忽略了大部分的可视边,提高了全局路径规划的效率。

为完成上述目的,本发明采用的技术方案是:一种基于改进可视图构造的路径规划算法,其特征在于:该算法在可视图的建立过程融入A*算法的搜索中,步骤如下:

步骤1,初始化:对A*算法搜索中Open表和Closed表进行初始化,将目标点G放入Open表中,将起始点S存放到Closed表中,定义fx=gn+hn+count×MAXDIST为评价函数,其中:MAXDIST表示访问过程中起始点到目标点可能存在的最大路径距离,gn+hn为在未被访问过的节点中选择值最小,即估计路径最短的节点扩展,gn表示起始节点到当前节点的实际路径长度,hn表示当前节点到目标节点的最短路径,count为记录当前节点的访问情况;

步骤2,取出最小评价函数值所对应的节点:用步骤1中最小评价函数值所对应的节点进行扩展;

步骤3,对步骤2节点的访问情况进行判断:即判断count值的情况,count=1表示当前节点的所有可行的路径都已经判断过,不存在到目标点的路径,从而算法结束;

步骤4,根据步骤3节点信息查找路径:根据节点的状态分为2个不同分支执行,判断当前节点status的情况,当status=0,跳转至步骤5,否则跳转至步骤6;

步骤5,根据步骤4探索上一节点到当前节点的路径:连接上一节点与当前节点,并将其连接的线段定义为穿越线,如果穿越线与障碍物无交点或该线为环境中已有的线段,则令status=1;若之前不存在此线,将其添加到可视图中作为一条新的可视边,当此线与障碍物有交点时,以出入障碍物的两个点将障碍物划分为两部分,并以障碍物为探索区域,寻找两部分中距离穿越线最远的顶点;若这两个顶点在Closed表与Open表中并不存在,则将其加入Open表中,

OPEN(size+1)={P,node,prev,0,node,prev.gn+DPP,DPG,0}

式中:P为障碍物顶点,node为拓展节点,pre表示上一节点,Dpp为上一节点与点P的欧氏距离,DPG为目标点G与点P的欧氏距离,然后将当前节点的访问次数加1;

步骤6,根据步骤4探索当前节点到目标点的路径:连接当前节点与目标点,并定义连线为穿越线,若该线以存在或者是一条可视线,则表明路径可行,即为所求的路径,若该线与障碍物存在交点,则将该节点从Open表移加到Closed表中,并将两个交点Phigh和Plow添加到Open表中,

OPEN(size+1)={P,node,0,node.gn+DCP,DPG,0}式中:P为障碍物顶点,node为拓展节点,DCP表示目标节点与顶点P间的欧式距离,DPG表示目标点G与点P的欧式距离。

该算法采用A*启发式搜索算法,其中的Open表和Closed表设置如下:

Open(i)={pre,status,gn,hn,index,count}

Closed(i)={pre,gn,index}

其中,pre与status分别为上一节点与当前节点;index表示可视图中点的标记;gn与hn的作用与A*算法中g(x)和h(x)的含义相同;

该算法采用的是以起始节点开始向外扩展的广度优先搜索策略,并且在向外扩展的同时加入权重系数,直到发现一条起点到终点的可行性路径,定义为:

f(x)=g(x)+h(x)

其中,f(x)表示从初始节点经过当前节点到目标节点的最短路径的估计值,g(x)表示起始节点到当前节点的实际路径长度,h(x)为启发函数,表示当前节点到目标节点的最短路径。

本发明的有益效果是:改进的可视图相比传统的完整可视图、导向可视图和简化可视图而言极大的简化了构造过程,搜索过程中只构造与最优路径可能有关的可视边,而忽略了大部分的可视边,由于路径的减少,算法的整体执行时间较短,地图的构建时间较短,全局路径规划的效率提高,同时对于最优路径的搜索也明显比其他算法更快;相比完整可视图、导向可视图和简化可视图的构建方法,随着障碍物数量的增加,改进可视图在执行时间和地图构建方面的优势越明显,而且最优路径的搜索时间更短;从算法复杂度的角度分析:本文改进的可视图构建方法借助启发式路径搜索策略,在进行可视图构建的时候能够有效的削减对路径规划无影响的可视边数量,在一定程度上降低了算法的时间复杂度,从而提升了地图构建速度和路径规划速度。

附图说明

图1a是现有技术算法的完整可视图;

图1b是现有技术算法的导向可视图;

图1c是现有技术算法的简化可视图;

图1d是本发明算法的可视图;

图2是本发明的算法流程图。

具体实施方式

下面结合几个具体实施例和附图对本发明作进一步详细的说明。

基于改进可视图构造的路径规划算法,从地图构建的角度出发,并考虑到可视图法在寻求路径中过程麻烦的情况,在搜索过程的基础上对可视边进行简化,并结合A*算法,能够提高算法的运行效率。并且极大减少了可行路径的数量而不失判断的准确性。

本算法采用64位win10系统,处理器为Intel i3-3220 CPU,3.3GHz,4G内存进行仿真。在建模上选取二维环境进行仿真实验,软件环境为MATLAB 2016b,在可视图的建立过程融入A*算法的搜索中,如图2所示,该算法采用A*启发式搜索算法,其中的Open表和Closed表设置如下:

Open(i)={pre,status,gn,hn,index,count}

Closed(i)={pre,gn,index}

其中,pre与status分别为上一节点与当前节点;index表示可视图中点的标记;gn与hn的作用与A*算法中g(x)和h(x)的含义相同;且该算法采用的是以起始节点开始向外扩展的广度优先搜索策略,并且在向外扩展的同时加入权重系数,直到发现一条起点到终点的可行性路径,定义为:

f(x)=g(x)+h(x)

其中,f(x)表示从初始节点经过当前节点到目标节点的最短路径的估计值,g(x)表示起始节点到当前节点的实际路径长度,h(x)为启发函数,表示当前节点到目标节点的最短路径。

步骤如下:步骤一、初始化:对A*算法搜索中Open表和Closed表进行初始化,将目标点G放入Open表中,将起始点S存放到Closed表中,定义fx=gn+hn+count×MAXDIST为评价函数,可视图将起始点、目标点、障碍物的各顶点(节点)组合连接,并保证这些连接线段是可视的,从起始点到目标点的寻迹过程中已经探索过的节点为访问过的节点,从起始点到目标点的寻迹过程中未探索但即将探索的节点为未访问的节点。其中:MAXDIST表示访问过程中起始点到目标点可能存在的最大路径距离,gn+hn为在未被访问过的节点中选择值最小,即估计路径最短的节点扩展,gn表示起始节点到当前节点的实际路径长度,hn表示当前节点到目标节点的最短路径,count为记录当前节点的访问情况;步骤二、取出最小评价函数值所对应的节点:用步骤一中最小评价函数值所对应的节点进行扩展;步骤三、对步骤二节点的访问情况进行判断:即判断count值的情况,count=1表示当前节点的所有可行的路径都已经判断过,不存在到目标点的路径,从而算法结束;步骤四、根据步骤三节点信息查找路径:根据节点的状态分为2个不同分支执行,判断当前节点status的情况,当status=0,跳转至下面的步骤五,否则跳转至下面的步骤六;步骤五、根据步骤四探索上一节点到当前节点的路径:连接上一节点与当前节点,并将其连接的线段定义为穿越线,如果穿越线与障碍物无交点或该线为环境中已有的线段,则令status=1;若之前不存在此线,将其添加到可视图中作为一条新的可视边,当此线与障碍物有交点时,以出入障碍物的两个点将障碍物划分为两部分,并以障碍物为探索区域,寻找两部分中距离穿越线最远的顶点;若这两个顶点在Closed表与Open表中并不存在,则将其加入Open表中,

OPEN(size+1)={P,node,prev,0,node,prev.gn+DPP,DPG,0}

式中:P为障碍物顶点,node为拓展节点,pre表示上一节点,Dpp为上一节点与点P的欧氏距离,DPG为目标点G与点P的欧氏距离,然后将当前节点的访问次数加1;步骤六、根据步骤四探索当前节点到目标点的路径:连接当前节点与目标点,并定义连线为穿越线,若该线以存在或者是一条可视线,则表明路径可行,即为所求的路径,若该线与障碍物存在交点,则将该节点从Open表移加到Closed表中,并将两个交点Phigh和Plow添加到Open表中,

OPEN(size+1)={P,node,0,node.gn+DCP,DPG,0}式中:P为障碍物顶点,node为拓展节点,DCP表示目标节点与顶点P间的欧式距离,DPG表示目标点G与点P的欧式距离。

实施例1:

图1a至图1d所示为仿真实验展示了本发明所提出的改进可视图、完整的可视图、导向可视图和简化的可视图四种方法,并都以A*算法作为搜索算法。从实验结果如表1,可以看出:在几种算法中、完整可视图、导向可视图和简化可视图的可视边数量分别为106、55、38,而本发明算法包括6条穿越线和4条可视边,极大简化了构造过程,同时由于路径的减少,本发明提出的改进可视图+A*算法在整体执行速度和地图构建速度上都是最快的,同时对于最优路径的搜索也明显比其他算法更快。

表1各算法时间对比

实施例2:

表2进行了随机障碍物构成环境下算法可行性的实验,选取障碍物的数量分别是5和10进行两类实验,每类实验分别进行10次,记录平均值作为实验结果:

表2一般情况下可视图对比

可以得出实验结论:即使在障碍物数量不一定的情况下,本发明所提出的改进可视图结合A*算法的平均执行时间、平均地图构建时间、平均路径搜索时间相较可视图、导向可视图、简化可视图都明显占优,而且障碍物的数目越多,算法执行的时间优势越明显。

从算法的复杂度角度进行分析:对于传统的可视图而言,地图中的每一个点都需要与其他的顶点进行可行性的判断,设n为环境中障碍物的顶点数量,则传统的可视图需要将这n个顶点分别与其他顶点进行连线和可视化判断,因此其可视线构造的复杂度为O(n2),而对于环境的预处理环节需要O(n2logn)时间。而当n的数量级很大的时候,O(n2logn)是一个不可接受的计算量。

而本发明提出的算法结合了可视图与A*算法,A*算法为Dijkstra的优化算法,其时间复杂度都为O(n2)。但由于A*在搜索时具有一定的方向性,在实际应用中会优于Dijkstra算法的无向性。当h(x)=0时,A*算法等同于Dijkstra算法。然而在路径搜索中,需要对穿越线进行判断,复杂度为O(n)。此外,还需对可视图最内层循环进行可视性的判断,其复杂度为O(n)。综上所述,本发明所提出的路径规划算法的时间复杂度为O(n3)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1