本发明涉及自动控制技术领域,特别是涉及一种基于改进烟花爆炸算法的机器人路径规划方法。
背景技术:
目前,进行移动机器人路径规划的方法有两类:传统算法和智能算法。传统算法有自由空间法、可视图法、栅格法等。随着研究的不断深入,发现传统算法都存在一定的局限性。例如栅格法,就是将机器人的运动空间划分为大小相同的栅格,再进行路径规划,但是栅格多少的划分直接关系到对实际环境的精准程度,是一个较难抉择的问题。
近些年来,随着智能算法的逐渐发展和应用,为路径规划提供了新的解决方法。常用的智能算法有遗传算法、粒子群算法、蚁群算法、神经网络算法等,这些算法虽然能够解决机器人路径规划问题,但是仍处于不成熟的发展时期,存在机器人路径规划效率低的问题。
技术实现要素:
本发明的目的是提供一种高效的基于改进烟花爆炸算法的机器人路径规划方法。
为实现上述目的,本发明提供了如下方案:
一种基于改进烟花爆炸算法的机器人路径规划方法,所述方法包括:
初始化烟花种群,设置障碍物,生成机器人从起点到终点的若干条路径作为初始烟花路径;
采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群;
在所述变异后的烟花种群中,根据交叉概率χ将各所述烟花路径向第一最优烟花路径所在位置移动,得到交叉后的烟花种群;
在所述交叉后的烟花种群中,将覆盖不可行域的烟花路径进行映射,使所有烟花路径都位于可行域范围内,得到映射后的烟花种群,所述不可行域为所述障碍物所在的区域;
在所述映射后的烟花种群中,选出第二最优烟花路径;
判断当前迭代数是否达到最大迭代数,得到第一判断结果;
若所述第一判断结果表示是,则输出所述第二最优烟花路径;
若所述第一判断结果表示否,则采用轮盘赌的方法在所述映射后的烟花种群中,再选出n-1个烟花路径;
将选出的所述第二最优烟花路径与所述n-1个烟花路径进行爆炸,产生机器人从起点到终点的新路径,得到下一代烟花种群;
当前迭代数加1,返回步骤“采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群”。
可选的,所述初始化烟花种群,设置障碍物,生成机器人从起点到终点的若干条路径作为初始烟花路径,具体包括:
采用二维平面表示机器人的运动空间,采用任意不规则的多边形图形表示障碍物,建立模型;
在所述二维平面内以任意参考位置为原点建立直角坐标系;
将移动机器人的起点标记为a(x0,y0),终点标记为b(xf,yf);
在起点a与终点b之间的横坐标线段上,标记d个等分点,划分成d个维度,所述d个等分点的横坐标依次为x1,x2…xi…xd;
分别在以x1,x2…xi…xd为横坐标的直线上随机选取一个点,构成d组离散点,记为(x1,y1),(x2,y2)…(xi,yi)…(xd,yd),其中y1,y2…yi…yd分别为以x1,x2…xi…xd为横坐标的直线上选取点的纵坐标;
依次连接(x0,y0)、(x1,y1)、(x2,y2)…(xi,yi)…(xd,yd)、(xf,yf)得到从a到b的一条初始路径;
重复执行步骤“分别在以x1,x2…xi…xd为横坐标的直线上随机选取一个点,构成d组离散点,记为(x1,y1),(x2,y2)…(xi,yi)…(xd,yd),其中y1,y2…yi…yd分别为以x1,x2…xi…xd为横坐标的直线上选取点的纵坐标”到步骤“依次连接(x0,y0)、(x1,y1)、(x2,y2)…(xi,yi)…(xd,yd)、(xf,yf)得到从a到b的一条初始路径”,直到得到预设数量的烟花路径。
可选的,所述采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群,具体包括:
随机选择一条烟花路径;
随机选择一定数量的维度;
在所选择的烟花路径上,对应所选维度的点的纵坐标根据公式
可选的,所述在所述变异后的烟花种群中,根据交叉概率χ将各所述烟花路径向第一最优烟花路径所在位置移动,得到交叉后的烟花种群,具体包括:
在所述变异后的烟花种群中,根据公式f(xi)=1/s分别计算各条烟花路径的适应度值,其中s为第i条烟花路径的长度;
选取适应度值最大的一条烟花路径为所述第一最优烟花路径gbesty;
对于任意一条烟花路径i,生成第一随机数rd;
判断所述第一随机数rd是否小于所述交叉概率χ,得到第二判断结果;
若所述第二判断结果表示是,则再生成第二随机数β,进行交叉计算yi'=βyi+(1-β)gbesty,其中,rd,β均为[0,1]之间的随机数,yi'为第i条烟花路径交叉后产生的新烟花路径,yi为第i条烟花路径;
若所述第二判断结果表示否,则结束交叉。
可选的,所述在所述交叉后的烟花种群中,将覆盖不可行域的烟花路径进行映射,使所有烟花路径都位于可行域范围内,得到映射后的烟花种群,具体保包括:
根据映射规则公式
可选的,所述在所述映射后的烟花种群中,选出第二最优烟花路径,具体包括:
在所述映射后的烟花种群中,根据公式f(xi)=1/s分别计算各条烟花路径的适应度值,其中s为第i条烟花路径的长度;
选出适应度值最大的一条烟花路径为所述第二最优烟花路径。
可选的,所述将选出的所述第二最优烟花路径与所述n-1个烟花路径进行爆炸,产生机器人从起点到终点的新路径,得到下一代烟花种群,具体包括:
分别计算各烟花路径的爆炸强度,所述爆炸强度为烟花路径爆炸产生的下一代烟花路径的条数;
分别计算各烟花路径的爆炸幅度,在所述爆炸幅度范围内产生下一代烟花路径,所述爆炸幅度为烟花路径进行爆炸时,产生下一代烟花路径的范围;
计算各烟花路径在各自的爆炸幅度范围内爆炸产生的位移。
可选的,所述分别计算各烟花路径的爆炸强度,具体包括:
第i条烟花路径生成下一代烟花路径的个数为:
其中,m为常数限制产生烟花路径的总数,f(xi)是第i条烟花路径的适应度值,其中ymax=maxf(xi),ε表示一个无穷小的实数,避免分母为零。
可选的,所述分别计算各烟花路径的爆炸幅度,在所述爆炸幅度范围内产生下一代烟花路径,具体包括:
第i条烟花路径爆炸幅度范围根据公式
可选的,所述计算各烟花路径在各自的爆炸幅度范围内爆炸产生的位移,具体包括:
在任意一条发生爆炸的烟花路径i上,随机选出若干个维度;
对所选择维度的纵坐标按照公式
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的基于改进烟花爆炸算法的机器人路径规划方法,通过定义交叉概率χ,使每一个烟花路径都有一定概率与最优的烟花路径进行交叉,向最优烟花路径所在位置移动,加快收敛速度,从而加快机器人路径规划速度,提高路径规划效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于改进烟花爆炸算法的机器人路径规划方法流程图;
图2为本发明实施例提供的初始路径生成图;
图3为利用本发明实施例提供的环境模型1及改进烟花爆炸算法进行路径规划形成的路径图;
图4为利用本发明实施例提供的环境模型2及改进烟花爆炸算法进行路径规划形成的路径图;
图5为利用本发明实施例提供的环境模型3及改进烟花爆炸算法进行路径规划形成的路径图;
图6为本发明实施例提供的环境模型1下,遗传算法进行路径规划收敛过程图;
图7为本发明实施例提供的环境模型1下,烟花爆炸算法进行路径规划收敛过程图;
图8为本发明实施例提供的环境模型1下,改进烟花爆炸算法进行路径规划收敛过程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种高效的基于改进烟花爆炸算法的机器人路径规划方法。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例提供的基于改进烟花爆炸算法的机器人路径规划方法流程图,图2为本发明实施例提供的初始路径生成图,图3为利用本发明实施例提供的环境模型1及改进烟花爆炸算法进行路径规划形成的路径图,图4为利用本发明实施例提供的环境模型2及改进烟花爆炸算法进行路径规划形成的路径图,图5为利用本发明实施例提供的环境模型3及改进烟花爆炸算法进行路径规划形成的路径图;如图1-5所示,一种基于改进烟花爆炸算法的机器人路径规划方法,所述方法包括:
步骤100:初始化烟花种群,设置障碍物,生成机器人从起点到终点的若干条路径作为初始烟花路径;
步骤200:采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群;
步骤300:在所述变异后的烟花种群中,根据交叉概率χ将各所述烟花路径向第一最优烟花路径所在位置移动,得到交叉后的烟花种群;
步骤400:在所述交叉后的烟花种群中,将覆盖不可行域的烟花路径进行映射,使所有烟花路径都位于可行域范围内,得到映射后的烟花种群,所述不可行域为所述障碍物所在的区域;
步骤500:在所述映射后的烟花种群中,选出第二最优烟花路径;
步骤600:判断当前迭代数是否达到最大迭代数,得到第一判断结果;
步骤700:若所述第一判断结果表示是,则输出所述第二最优烟花路径;
步骤800:若所述第一判断结果表示否,则采用轮盘赌的方法在所述映射后的烟花种群中,再选出n-1个烟花路径;
步骤900:将选出的所述第二最优烟花路径与所述n-1个烟花路径进行爆炸,产生机器人从起点到终点的新路径,得到下一代烟花种群;
步骤1000:当前迭代数加1,返回步骤“采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群”。
如图2所示,所述初始化烟花种群,设置障碍物,生成机器人从起点到终点的若干条路径作为初始烟花路径,具体包括:
步骤一:采用二维平面表示机器人的运动空间,采用任意不规则的多边形图形表示障碍物,建立模型;
步骤二:在所述二维平面内以任意参考位置为原点建立直角坐标系;
步骤三:将移动机器人的起点标记为a(x0,y0),终点标记为b(xf,yf);
步骤四:在起点a与终点b之间的横坐标线段上,标记d个等分点,划分成d个维度,所述d个等分点的横坐标依次为x1,x2…xi…xd;
步骤五:分别在以x1,x2…xi…xd为横坐标的直线上随机选取一个点,构成d组离散点,记为(x1,y1),(x2,y2)…(xi,yi)…(xd,yd),其中y1,y2…yi…yd分别为以x1,x2…xi…xd为横坐标的直线上选取点的纵坐标;
步骤六:依次连接(x0,y0)、(x1,y1)、(x2,y2)…(xi,yi)…(xd,yd)、(xf,yf)得到从a到b的一条初始路径;
步骤七:重复执行步骤“分别在以x1,x2…xi…xd为横坐标的直线上随机选取一个点,构成d组离散点,记为(x1,y1),(x2,y2)…(xi,yi)…(xd,yd),其中y1,y2…yi…yd分别为以x1,x2…xi…xd为横坐标的直线上选取点的纵坐标”到步骤“依次连接(x0,y0)、(x1,y1)、(x2,y2)…(xi,yi)…(xd,yd)、(xf,yf)得到从a到b的一条初始路径”,直到得到预设数量的烟花路径。
本发明的建模方法,根据机器人运动的实际环境特点,能够解决环境信息复杂的问题,并且耗资少,算法简单。
在初始化烟花路径过程中,程序实现过程为:
每一个离散点的横坐标位置固定,其纵坐标变化。首先计算纵坐标的上下边界,上边界为终点的纵坐标,下边界为起点的纵坐标。烟花爆炸算法初始化烟花的位置的纵坐标是通过随机函数band与边界范围的乘积叠加下边界获得。
所述采用高斯变异法对烟花种群进行变异操作,得到变异后的烟花种群,具体包括:
步骤一:随机选择一条烟花路径;
步骤二:随机选择一定数量的维度;
步骤三:在所选择的烟花路径上,对应所选维度的点的纵坐标根据公式
所述在所述变异后的烟花种群中,根据交叉概率χ将各所述烟花路径向第一最优烟花路径所在位置移动,得到交叉后的烟花种群,具体包括:
步骤一:在所述变异后的烟花种群中,根据公式f(xi)=1/s分别计算各条烟花路径的适应度值,其中s为第i条烟花路径的长度;
步骤二:选取适应度值最大的一条烟花路径为所述第一最优烟花路径gbesty;
步骤三:对于任意一条烟花路径i,生成第一随机数rd;
步骤四:判断所述第一随机数rd是否小于所述交叉概率χ,得到第二判断结果;
步骤五:若所述第二判断结果表示是,则再生成第二随机数β,进行交叉计算yi'=βyi+(1-β)gbesty,其中,rd,β均为[0,1]之间的随机数,yi'为第i条烟花路径交叉后产生的新烟花路径,yi为第i条烟花路径;
步骤六:若所述第二判断结果表示否,则结束交叉。
通过定义交叉概率χ,使每一个烟花路径都有一定概率与最优的烟花路径进行交叉,向最优烟花路径所在位置移动,加快收敛速度,从而加快机器人路径规划速度,提高路径规划效率。
所述在所述交叉后的烟花种群中,将覆盖不可行域的烟花路径进行映射,使所有烟花路径都位于可行域范围内,得到映射后的烟花种群,具体保包括:
根据映射规则公式
所述在所述映射后的烟花种群中,选出第二最优烟花路径,具体包括:
步骤一:在所述映射后的烟花种群中,根据公式f(xi)=1/s分别计算各条烟花路径的适应度值,其中s为第i条烟花路径的长度;
步骤二:选出适应度值最大的一条烟花路径为所述第二最优烟花路径。
所述若所述第一判断结果表示否,则采用轮盘赌的方法在所述映射后的烟花种群中,再选出n-1个烟花路径,具体包括:
步骤一:采用欧氏距离度量两个个体位置,根据公式
步骤二:根据公式
步骤三:将计算得到的概率从小到大排序,选出前n-1个烟花路径。
所述将选出的所述第二最优烟花路径与所述n-1个烟花路径进行爆炸,产生机器人从起点到终点的新路径,得到下一代烟花种群,具体包括:
步骤一:分别计算各烟花路径的爆炸强度,所述爆炸强度为烟花路径爆炸产生的下一代烟花路径的条数;
所述分别计算各烟花路径的爆炸强度,具体包括:
第i条烟花路径生成下一代烟花路径的个数为:
其中,m为常数限制产生烟花路径的总数,f(xi)是第i条烟花路径的适应度值,其中ymax=maxf(xi),ε表示一个无穷小的实数,避免分母为零。
同时,为了避免出现火花产生过多或过少,特设定限制产生火花数量公式为:
步骤二:分别计算各烟花路径的爆炸幅度,在所述爆炸幅度范围内产生下一代烟花路径,所述爆炸幅度为烟花路径进行爆炸时,产生下一代烟花路径的范围;
所述分别计算各烟花路径的爆炸幅度,在所述爆炸幅度范围内产生下一代烟花路径,具体包括:
第i条烟花路径爆炸幅度范围根据公式
步骤三:计算各烟花路径在各自的爆炸幅度范围内爆炸产生的位移;
在任意一条发生爆炸的烟花路径i上,随机选出若干个维度;
对所选择维度的纵坐标按照公式
传统的烟花爆炸算法中,上一代的最好烟花爆炸幅度为0,在爆炸产生下一代种群过程中,相当于最优烟花路径没有产生火花,直接复制上一代的最有烟花路径,不仅使计算量加大,还使搜索机会减小。
本发明中在烟花爆炸产生下一代种群时,根据公式
本实施例中,将遗传算法、烟花爆炸算法求解的3种环境模型的最优路径结果与改进烟花爆炸算法最优路径进行对比,分析改进烟花爆炸算法在寻优效果和收敛速度的性能。
遗传算法、烟花爆炸算法与改进的烟花爆炸算法结果对比如表ⅰ所示,遗传算法、烟花爆炸算法、改进的烟花爆炸算法收敛过程对比如表ⅱ所示。如图3-5所示,分别在三种环境模型下绘制运用改进烟花爆炸算法进行路径规划得到的最优路径。
表ⅰ遗传算法、烟花爆炸算法与改进的烟花爆炸算法结果对比表
对比表ⅰ数据,可知在环境模型1、2、3中,采用改进烟花爆炸算法路径规划的最优路径长度最短,说明改进烟花爆炸算法的寻优效果更好。
表ⅱ给出了在环境模型1、2、3中,三种路径规划方法结果收敛到最优路径的迭代次数。从表ⅱ可以看出,相同环境模型下,改进烟花爆炸算法的迭代次数最小,说明改进烟花爆炸算法的收敛速度更快。
表ⅱ遗传算法、烟花爆炸算法、改进的烟花爆炸算法收敛过程对比
图6-8分别给出了在环境模型1下,遗传算法、烟花爆炸算法以及改进烟花算法进行路径规划收敛过程图,如图6-8所示,能够得到改进遗传算法的迭代次数最少,收敛速度最快
本发明的基于改进烟花爆炸算法的机器人路径规划方法,通过定义交叉概率χ,使每一个烟花路径都有一定概率与最优的烟花路径进行交叉,向最优烟花路径所在位置移动,加快收敛速度,从而加快机器人路径规划速度,提高路径规划效率。
本发明的基于改进烟花爆炸算法的机器人路径规划方法,在烟花爆炸产生下一代种群时,根据公式
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。