一种基于改进蚁群算法的移动机器人路径规划方法与流程

文档序号:18356746发布日期:2019-08-06 23:14阅读:207来源:国知局
一种基于改进蚁群算法的移动机器人路径规划方法与流程

本发明涉及机器人路径规划技术领域,具体是一种基于改进蚁群算法的移动机器人路径规划方法。



背景技术:

路径规划技术是移动机器人研究领域的一个重要组成部分,主要目的是在有障碍物的环境中,根据一定的准则(如路径最短,位置拐点最少,用时最短等),寻求一条从起始位置节点到目标位置节点之间的最优或次优安全无碰路径。

路径规划技术的发展在一定程度上标志着机器人智能水平的高低,而路径规划方法的优劣直接影响路径规划效果。

目前,国内外许多专家学者都在致力于路径规划算法的研究,常用的优化算法主要有人工势场法、免疫算法、蚁群优化算法、神经网络、粒子群优化算法和遗传算法等。其中,蚁群算法因其具有良好的寻优能力、强鲁棒性等优点,广泛应用于移动机器人路径规划问题中。但随着研究的不断深入,应用蚁群算法进行机器人路径规划的不足逐渐被发现,例如,局部最优、较慢的收敛速度、优化结果稳定性差等。



技术实现要素:

本发明的目的在于提供一种基于改进蚁群算法的移动机器人路径规划方法,该方法能够克服传统蚁群算法收敛速度慢、易陷入局部最优等不足,不仅提高了获得机器人路径规划的全局最优解,而且提高了收敛的速度。

本发明解决其技术问题所采用的技术方案是:

一种基于改进蚁群算法的移动机器人路径规划方法,包括以下步骤:

s1、采用栅格法创建机器人工作环境地图,定义起始点与目标点;

s2、采用蚁群算法寻找环境最短路径,所述蚁群算法包含以下步骤:

s21、初始化蚁群算法的参数;

s22、将m只蚂蚁放在起始点,将起始点加入禁忌表中,开始搜索,得到可行路径节点栅格;

s23、每只蚂蚁根据公式(1)选择下一步移动栅格,并将当前栅格加入到禁忌表中;

式(1)中,s为当前有转移概率的位置节点,为蚂蚁k在位置节点i选择位置节点j的转移概率;α和β均为正实数;allowedk为t时刻允许蚂蚁k通过的位置节点集合,k=1,2,…,m;τ(i,j)表示在位置节点i与位置节点j之间的路段(i,j)上的信息素浓度;η(i,j)为距离启发函数,η(i,j)按照公式(2)计算;

η(i,j)=desire[num](2)

公式(2)中desire为距离期望系数数组,num是数组中对应的数值,desire按公式(3)定义,

公式(3)中standard为栅格标准值,一般取单位边长,repair为栅格修正值;

s24、判断所有蚂蚁是否到达目标点,如果是,则进行步骤s25;如果否,则更新禁忌表,并返回步骤s23;

s25、通过路线冗余消除策略对当前迭代所有可行路径进行优化,即对蚂蚁在寻路过程中出现的弯路进行两点直线连接处理,消除弯路点;

s26、按照公式(4)、(5)、(6)进行信息素更新:

τij(t+1)=(1-ρ)τij(t)+△τij(t)(4)

式(4)、(5)和(6)中,τij(t+1)为更新后的信息素浓度,ρ为信息素挥发系数,τij(t)为旧信息素浓度,△τij(t)为这一代所有蚂蚁走过后遗留下的信息素浓度,q为信息素常数,lk为第k只蚂蚁所寻路径长度,△τij(t)k为第k只蚂蚁留在节点(i,j)上的信息素增量;

利用路径偏差放大策略处理lk,路径偏差放大策略按公式(7)、(8)执行:

lk-new=lk-kre*lt-min(7)

kaffect=d/lt-min(8)

在式(7)、(8)中,lk-new为第t代第k只蚂蚁产生的放大路径长度,lk为其原始长度,lt-min为第t代的最小路径长度,kre为放大系数,范围(0,1);d为某路径和最短路径之间的差值,kaffect为路径偏差影响系数;

s27、判断是否达到最大迭代次数,如果是,则结束;如果否,则令迭代次数加1,并返回步骤s22;

s3、将步骤s2得到的最短路径作为规划的最优路径。

本发明的有益效果是,基于距离启发函数和路径偏差放大策略对传统蚁群算法进行改进,并且引入路线冗余消除策略,能够获得全局最优解,并且提高了路径规划求解的效率和稳定性。

附图说明

下面结合附图和实施例对本发明进一步说明:

图1是本发明的流程示意图;

图2是本发明机器人的移动方向示意图;

图3是本发明路线冗余消除策略期望三角形路径示意图;

图4是本发明路线冗余消除策略坐标系示意图;

图5是本发明路线冗余消除策略梯形弯路示意图;

图6是传统蚁群算法路径偏差模型示意图;

图7是传统蚁群算法的寻优路线示意图;

图8是本发明方法的寻优路线示意图;

图9是传统蚁群算法的收敛曲线示意图;

图10是本发明方法的收敛曲线示意图;

图11是他人改进蚁群算法在另一种栅格环境下的寻优路线示意图;

图12是他人改进蚁群算法在另一种栅格环境下的收敛曲线示意图;

图13是本发明方法在另一种栅格环境下的寻优路线示意图;

图14是本发明方法在另一种栅格环境下的收敛曲线示意图。

具体实施方式

如图1所示,本发明提供一种基于改进蚁群算法的移动机器人路径规划方法,包括以下步骤:

s1、采用栅格法创建机器人工作环境地图,定义起始点与目标点;

s2、采用蚁群算法寻找环境最短路径,所述蚁群算法包含以下步骤:

s21、初始化蚁群算法的参数;

s22、将m只蚂蚁放在起始点,将起始点加入禁忌表中,开始搜索,得到可行路径节点栅格;

s23、每只蚂蚁根据公式(1)选择下一步移动栅格,并将当前栅格加入到禁忌表中;

式(1)中,s为当前有转移概率的位置节点,为蚂蚁k在位置节点i选择位置节点j的转移概率;α和β均为正实数;allowedk为t时刻允许蚂蚁k通过的位置节点集合,k=1,2,…,m;τ(i,j)表示在位置节点i与位置节点j之间的路段(i,j)上的信息素浓度;η(i,j)为距离启发函数,η(i,j)按照公式(2)计算;

η(i,j)=desire[num](2)

公式(2)中desire为距离期望系数数组,num是数组中对应的数值,desire按公式(3)定义,

公式(3)中standard为栅格标准值,一般取单位边长,repair为栅格修正值;

结合图2所示,若目标位置在蚂蚁的右上方,同时,定义凡是能缩短蚂蚁与终点距离的位置为有效位置,那么,理想情况下,0、6和7三个位置为下一步的有效位置;同样的,当终点位于蚂蚁的上方时,0、1和7三个位置为下一步的有效位置,因此,可以知道,每次能缩短蚂蚁与终点绝对距离的位置有三个,即对于这三个位置,希望蚂蚁能尽可能的选择,故对其期望距离系数进行强化/不操作;与此同时,对其他的非有效位置,则需要进行弱化;

那么,接下来确定每个位置的距离期望系数呢,根据上述,其取决于每个位置对于全局路径最短的贡献,即距离终点的直线距离。通常情况下,先把所有邻接位置与终点的直线距离,并储存于数组a中,再新建一个数组b,储存a中数据对应的位置,例如:再对a从小到大排序,由排序产生的操作对b同样施加,依照排序后的结果,依次赋值即可;例如,初始a中最小为a[7]=12,对应b[7]=7,即位置7的距离最近,排序后,a[0]=12,b[0]=7,即位置7所对应的desire中值的位置为数字7在b中的位置,也就是0位置,这也就是公式(2)中的num值,再比如说,初始a[3]=30,b[3]=3,排序后,a[7]=30,b[7]=3,即对位置3,公式(2)中的num=7;

s24、判断所有蚂蚁是否到达目标点,如果是,则进行步骤s25;如果否,则更新禁忌表,并返回步骤s23;

s25、通过路线冗余消除策略对当前迭代所有可行路径进行优化,即对蚂蚁在寻路过程中出现的弯路进行两点直线连接处理,消除弯路点;

具体来说,结合图3所示,在寻路的过程中,可能出现局部弯路(即两条直角边是优化的路径),在此称为三角形弯路,显然,这个路径并非最优路线,期望结果是虚线的路径。一条蚂蚁经过的路线可以看成是一个一维数组,假定有n个数据,即蚂蚁走了n步,编号0~n-1,从第1个数据开始,至第n-2个数据,取每个数据为参考点,观察其前一个数据及后一个数据之间的坐标关系。结合图4所示,设当前点坐标(x,y),前一个点的坐标(x1,y1),后一个点的坐标(x2,y2),abs_x=|x1-x2|,abs_y=|y1-y2|,三种情况下可优化路线:(1)当abs_x或者abs_y为1,且abs_x+abs_y≤2,那么当前参考点必定可以去除,即连接前一个点和后一个点,去掉当前点。(2)abs_x=2且abs_y=0,若y1≠y,同时,坐标((x1+x2)/2,y)处无障碍物,那么当前点替换成新的点((x1+x2)/2,y1)。(3)abs_x=0且abs_y=2,若x1≠x,同时,坐标(x1,(y1+y2)/2)处无障碍物,那么当前点替换成新的点(x,(y1+y2)/2);

结合图4所示,在局部弯路1处,建立坐标系,取(1,1)为当前点,(x1,y1)=(2,1),(x2,y2)=(1,0),则abs_x=1,abs_y=1,观察易知,为第一种可优化情况,所以当前点(1,1)去除,完成三角形弯路优化。局部弯路2,取(1,0)为当前点,(x1,y1)=(0,1),(x2,y2)=(2,1),则abs_x=2,abs_y=0,y1≠y,同时,坐标(1,1)处无障碍,为第二种可优化情况,将(1,0)替换成(1,1)完成三角形弯路优化;

进一步地,在利用三角形弯路优化算法后,如若路线中依旧存在局部弯路,那么,都可以看成是一种梯形弯路,需要进一步优化;结合图5所示,原先的优化路径是按照梯形的腰→上底→腰的路线,该路线显然不是最优路线,最优路线应该是梯形的下底,图5中虚线所示;因此提出的解决方案是,假设将蚂蚁的行走路线存放在一个一维数组path中,从第一个点开始,到最后一个点,取出其中的一个点进行可优化检测;具体方法是,依次取这个点的邻接位置的8个方向,沿着这个方向挨个检测矩形位置是否在path中,如果在,检测两点之间的直线移动距离,记l1,计算两点在path中的距离,记l2,若l1<l2,那么就认为两点间存在弯路,处理过程是,将path中两点之间的所有数据替换成该方向上的两点之间的矩阵位置,然后,重新从第一个点开始检测,防止新产生的路线,可能构成一个新的梯形弯路,那么,在检测过程中,有几种情况是标志着该方向上无可能存在弯路,一为检测点碰到边界,二为检测到障碍物,三为检测到path中的值,但计算出的l1等于l2,碰到以上三种情况,就可以提前终止该方向上的检测;

s26、按照公式(4)、(5)、(6)进行信息素更新:

τij(t+1)=(1-ρ)τij(t)+△τij(t)(4)

式(4)、(5)和(6)中,τij(t+1)为更新后的信息素浓度,ρ为信息素挥发系数,τij(t)为旧信息素浓度,△τij(t)为这一代所有蚂蚁走过后遗留下的信息素浓度,q为信息素常数,lk为第k只蚂蚁所寻路径长度,△τij(t)k为第k只蚂蚁留在节点(i,j)上的信息素增量;

在传统蚁群算法中,信息素更新公式(6)中的lk通常在计算时,是以单位1的正方形边长作为参考的,然后直接代入公式计算总长度,那么也会存在一个问题,对于某些路径,其差值如果非常小,那么,所产生的信息素浓度差也会相应的小,后代蚂蚁就不能有效的分辨其中的优劣,进而导致收敛速度十分缓慢,结合图6所示,假设q=100,由公式(6)计算出的△τij(t)k分别为1.00与1.02,其差仅为0.02,这对蚂蚁来说,很难判断出l2为最优路径,尽管经过多次迭代后,依旧能得到最优结果,但这势必影响该算法的收敛速度;

因此,本发明利用路径偏差放大策略处理lk,路径偏差放大策略按公式(7)执行:

lk-new=lk-kre*lt-min(7)

公式(7)中lk-new为第t代第k只蚂蚁产生的放大路径长度,lt-min为第t代的最小路径长度,kre为放大系数,范围(0,1);如果在图6的模型中应用公式(7),假定第t代就这两条路径,则lt-min为98,再取kre为0.9,那么,l1-new=l1-0.9*98=11.8,l2-new=l2-0.9*98=9.8,两者之差为2,进一步引入路径偏差影响系数,即为偏差值对信息素浓度的影响,该系数定义为:

kaffect=d/lt-min(8)

公式(8)中,d为某路径和最短路径之间的差值,kaffect为路径偏差影响系数,路径放大之前d为0.02,lt-min为98,kaffect=0.02/98=0.2%,而经过路径放大处理之后,d为2,lt-min为9.8,kaffect=2/9.8=20%,kaffect系数被放大了100倍,也就是说,对于路径长度差距不大的情况,通过路径偏差放大策略,能让较短路径变得更加有优势,使得其被蚂蚁选择的几率更大,进而提高了收敛速度;

s27、判断是否达到最大迭代次数g,如果是,则结束;如果否,则令迭代次数加1,即nc=nc+1,并返回步骤s22;

s3、将步骤s2得到的最短路径作为规划的最优路径。

本发明的效果可以通过以下仿真实验进一步说明:

为验证本方法的正确性和合理性,运用python语言编程,在20×20的栅格环境模型下对该算法进行仿真,并与基本蚁群算法进行比较。算法的主要参数:信息素浓度启发因子α=1.0,距离启发因子β=3.0,信息素挥发系数ρ=0.5,蚂蚁数量m=30,最大迭代次数为g=100。

结合图7与图8所示,尽管传统蚁群算法和本发明方法都能够搜索到最优的路径(30.968),但是结合图9与图10所示,传统蚁群算法在65代以上才找到问题的最优解30.968。而本发明融入距离启发函数、路径偏差放大策略及引入路线冗余消除策略后的改进蚁群算法收敛速度更快,只需要10代左右便可以找到最优路径。

为了进一步验证本发明提出的改进算法的稳定性,将本发明与另外一种改进的蚁群算法进行比较,另一种改进的蚁群算法为期刊《计算机工程与应用》在2014年50卷第18期第63~66页《基于改进蚁群算法的机器人路径规划研究》中记载的改进蚁群算法,在该文章记载的20×20的栅格环境条件下利用本发明方法进行仿真。

由图11与图12可以看出,通过他人改进的蚁群算法需要22代才可以收敛到最优解(28.038);由图13和图14可以看出,本发明的方法只需要5代左右即可收敛到最优解。

通过对比仿真可以得出结论:使用本发明蚁群算法的路径规划效率明显优于传统蚁群算法。且使用本发明提出的蚁群算法比传统蚁群算法和他人改进的蚁群算法进化快,这说明了本发明提出的改进蚁群算法在路径优化方面的稳定性高。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。

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