本发明属于智能机器人技术领域,具体涉及机器人的路径规划方法。
背景技术:
移动机器人是靠自身动力和控制能力来实现各种功能的一种机器,具有通用性和智能性的特点。工业机器人被逐步应用于实际的工业生产中,代替工人进行各种操作任务,如搬运、焊接、装配等,将工人从繁琐重复的工作中解放出来。由于工业机器人的批量使用,使生产流程工序自动化、简洁化,显著降低了生产成本,提高了生产利润。
随着机器人的应用领域不断扩大,作业环境日益复杂化,机器人的自主导航成为亟待解决的首要问题。机器人的自主导航主要分为两方面技术:机器人路径规划和路径跟踪。
路径规划问题是寻找一条从初始位姿到最终位姿的路径,并满足最优,使得移动安保巡逻机器人在通过路径时不与任何静止或动态障碍物发生碰撞,这是移动机器人最基本的条件。也就是说,做好路径规划应从这3个方面出发:(1)明确起始位置及终点;(2)避开障碍物;(3)尽可能做到路径上的优化。一般的连续域范围内路径规划问题,其一般步骤主要包括环境建模、路径搜索和路径平滑三个环节。传统的路径规划算法有人工势场法、模拟退火算法、模糊逻辑算法和禁忌搜索算法等。这些传统的路径规划算法在某种程度上收敛速度慢,在概率上完备但并不完美。
专利cn10488139是一种纯路径规划类的算法,该算法是a*算法的改进,主要针对open表中节点多、耗时多的问题进行改进,主要应用与机器人二维三维空间的快速路径规划。该专利主要从路径规划方向出发,所以得出的路径有可能离障碍物很近,从而对于实际半径宽度的机器人可能在行走的过程中就会触碰障碍物,导致行走受阻。专利cn10028275是一种采用加入淘汰机制的鱼群算法针对具有神经网络结构的控制器对移动机器人进行控制,并凭借神经网络的泛化性能来学习到避障和目的地的行为的算法。该算法基于机器学习理论。但学习的过程是一个训练的过程,且需要很多的数据进行测试。
针对目前已有的研究,解决实际问题时,在机器人路径规划的合理性、避障的可靠性和路径跟踪控制的实时性、准确性等方面还存在较大的提升空间。
技术实现要素:
本发明目的在于解决现有技术中存在的问题,提供基于蝙蝠算法和强化学习相结合的机器人自主路径规划算法。
本发明解决其技术问题采用的技术手段是:基于蝙蝠算法与强化学习的路径规划方法,包括:
确定路径规划的初始位置和目标位置,采用适应度函数确定两位置的函数值,根据蝙蝠算法得到蝙蝠的初始状态和最终状态;
以<α,γ>为强化学习的动作,从蝙蝠的初始状态开始,对所述动作进行强化学习训练,使每一个状态得到一个最优动作,将训练得到的状态-动作对保存到q表中;所述<α,γ>为蝙蝠算法的响度衰减系数α和脉冲发射率增强系数γ的组合;
从q表中选取最优的状态-动作对,代入蝙蝠算法中,得到最优的蝙蝠位置;从而规划出初始位置到目标位置的最优路径。
作为本发明的一种优选方式,所述蝙蝠的初始状态和最终状态的算法过程为:
step1:种群初始化;
step2:初始化蝙蝠的位置xi,并根据适应度函数值的优劣寻找当前最优解x*;
step3:开始主循环,生成均匀分布的随机数rand,
若rand<ri,则按照下列公式分别更新蝙蝠的频率、速度和位置;
fi=fmin+(fmax-fmin)β,(4)
其中:
β:β∈[0,1]是均匀分布的随机数。
fi:第i只蝙蝠的搜索脉冲频率,fi∈[fmin,fmax];
第t-1代第i只蝙蝠的速度。
x*:当前所有蝙蝠的最优状态;
若rand≥ri,则根据公式(4)进行局部搜索,产生一个新解xnew,并对该解进行越界处理;
xnew=xold+∈lt,(7)
其中:
∈∈[-1,1]是均匀分布的随机数;lt是第t代所有蝙蝠响度的平均值;xold是当前最优个体;xnew是经局部搜索后产生的新个体;
step4:生成均匀分布的随机数rand,若rand<li且fit(xnew)<fit(x*),则接受step3产生的新解xnew,将蝙蝠位置进行更新,同时根据公式(5)和公式(6)对脉冲响度和脉冲发射率进行调整;
其中:
α称为响度衰减系数,γ称为脉冲发射率增强系数;对于任意的0<α<1和γ>0,当迭代次数t→+∞时,响度
step5:更新整个流程的最优解,判断是否到达终止条件,是则输出最优解,否则循环至step3。
作为本发明的进一步改进,所述的适应度函数为:
f=f1+penalty,(2)
其中:
(x,y):当前时刻t位置
(x′,y′):下一时刻t+1位置
(xg,yg):目标位置
f1:路径规划中下一时刻位置(x′,y′)与当前时刻位置(x,y)和目标位置(xg,yg)的欧式距离之和最小,即实现路径最短;
penalty:路径规划中不能接触环境中的障碍物(xi,yi),i∈{1,2,…n},其中n为障碍物的数量,否则添加一个大的惩罚项,即实现避障目标。
作为本发明的进一步改进,所述对动作进行强化学习训练的算法过程为:在动作集中选取最优动作进行即时奖励;所述即时奖励设置为连续迭代中相邻蝙蝠适应度值之间的差值,表达式为:
re(ri(t),<α′,γ′>)=fit(xi(t+1))-fit(xi(t))=ri(t+1)-ri(t)(12)
其中:<α′,γ′>为在<α,γ>集(动作集)中选取的最优动作;re(ri(t),<α′,γ′>)为<α′,γ′>作用于环境时得到即时奖励;x(t)定义为蝙蝠的位置,xi(t)为当前蝙蝠的位置,xi(t+1)为新蝙蝠的位置,即下一蝙蝠的位置;r(t)定义为强化学习的状态,即蝙蝠在位置x(t)时的适应度函数值,ri(t)为当前状态,ri(t+1)为下一状态;
通过公式(11)不断更新q(ri(t),<α′,γ′>),得到最优状态-动作对q表:
其中:q(st,at):智能体在环境状态为st时采取动作at后所能获得的最优奖赏折扣之和;
re(st,at):即时奖励;η是折扣因子;μ是学习率,控制着学习速度,在一定取值范围内,μ越大则收敛越快。
本发明的基于蝙蝠算法与强化学习的路径规划方法,将蝙蝠算法和强化学习相结合,确保在规避障碍物的前提下更加有效、快速的实现智能机器人路径自主规划。
附图说明
图1是根据本发明实施例的强化学习基本原理图;
图2是根据本发明实施例的qba思想框图;
图3是根据本发明实施例的qba流程图;
图4是根据本发明实施例的基于qba的路径规划流程图。
具体实施方式
下面结合附图和实施例对本发明的基于蝙蝠算法与强化学习的路径规划方法的原理、步骤、流程做出详细的阐述和介绍,以使本领域技术人员更好的理解本发明的技术思想和内涵,本发明的技术方案并不限于实施例所述的具体内容。
实施例本实施例的基于蝙蝠算法与强化学习的路径规划方法,流程如图4所示,具体包括:
一、确定路径规划的初始位置和目标位置,采用适应度函数确定两位置的函数值,搭建蝙蝠算法模型,计算得到蝙蝠的初始状态和最终状态
适应度函数的设计综合考虑了路径长度和避障两方面目标,其数学表述如式(1)-(3)所示:
f=f1+penalty,(2)
其中:
(x,y):当前时刻t位置
(x′,y′):下一时刻t+1位置
(xg,yg):目标位置
f1:路径规划中下一时刻位置(x′,y′)与当前时刻位置(x,y)和目标位置(xg,yg)的欧式距离之和最小,即实现路径最短;
penalty:路径规划中不能接触环境中的障碍物(xi,yi),i∈{1,2,…n},其中n为障碍物的数量,否则添加一个大的惩罚项,即实现避障目标。
每只蝙蝠都被视为“无质量、无大小”的粒子,分别代表着解空间中的一个可行解。对于不同的适应度函数,每只蝙蝠都有对应的函数值,通过比较各个函数值的大小确定当前最优个体。据此更新种群中各蝙蝠的速度、频率、响度和脉冲发射率,反复迭代进化,逼近并产生当前最优解,最终找到全局最优解。
蝙蝠在位置xi以速度vi随机飞行,它们可以自动调整发出脉冲的频率f,并依据目标的接近程度调整脉冲发射率r∈[0,1]。在蝙蝠算法中,假设响度l从一个最大值l0变化到固定最小值lmin。算法中每只蝙蝠的频率、速度和位置更新公式如下:
fi=fmin+(fmax-fmin)β,(4)
其中:β:β∈[0,1]是均匀分布的随机数。
fi:第i只蝙蝠的搜索脉冲频率,fi∈[fmin,fmax];
第t-1代第i只蝙蝠的速度。
x*:当前所有蝙蝠的最优位置。
蝙蝠一旦找到猎物,就会在当前最优个体附近使用局部搜索策略。此时由生成的均匀分布随机数rand作为判断阈值,如果rand>ri(第i只蝙蝠的脉冲发射率),则进行局部搜索,否则,则进行全局搜索。局部搜索的位置更新公式为:
xnew=xold+∈lt,(7)
其中:∈∈[-1,1]是均匀分布的随机数;lt是第t代所有蝙蝠响度的平均值;xold是当前最优个体;xnew是经局部搜索后产生的新个体。
蝙蝠在接近猎物的过程中,随着迭代次数的增加,响度lt会逐渐降低,同时,脉冲发射率ri会逐渐增大,其更新公式如下:
其中:α称为响度衰减系数,γ称为脉冲发射率增强系数。对于任意的0<α<1和γ>0,当迭代次数t→+∞时,响度
响度衰减系数α和脉冲发射率增强系数γ对算法性能的影响非常大。
二、采用强化学习算法对蝙蝠算法进行训练
强化学习算法的基本原理如图1所示,随机初始化q(s,a)值,在环境状态st条件下,智能体根据一定的探索策略给出动作at,得到经验知识的状态动作对<st,at,st+1,re(st,at)>。
用此经验知识根据迭代公式更新q值;在新的环境状态st+1下,继续按此方式循环直至达到目标状态。
在一定条件下,q学习算法只需要使用贪婪策略即可保证收敛。贪婪策略即每次都选择q(s,a)最大的动作,贪婪策略的优点是算法简单,容易实现和理解,表达式如下:
a=argmaxaq(s,a)。(10)
q学习算法采用策略π的经验知识更新动作值函数估计q(s,a),并在不断的“试错”过程中发现最优策略π*。其q值迭代表达式如下:
其中:q(st,at):智能体在环境状态为st时采取动作at后所能获得的最优奖赏折扣之和;
re(st,at):即时奖励;η是折扣因子;μ是学习率,控制着学习速度,在一定取值范围内,μ越大则收敛越快。
在蝙蝠算法中,优化结果的好坏由响度衰减系数α和脉冲发射率增强系数γ决定。强化学习与蝙蝠算法相结合的qba来获取最优的<α,γ>组合以提高蝙蝠算法的寻优效果。
图2中,<α,γ>集为蝙蝠算法的响度衰减系数α和脉冲发射率增强系数γ的任意值组合,定义每个<α,γ>组合为强化学习的一个动作;x(t)定义为蝙蝠的位置,xi(t)为当前蝙蝠的位置,xi(t+1)为新蝙蝠的位置,即下一蝙蝠的位置;r(t)定义为强化学习的状态,即蝙蝠在位置x(t)时的适应度函数值,ri(t)为当前状态,ri(t+1)为下一状态。
qba可以描述为通过式(10)即贪婪策略在<α,γ>集(动作集)中选取最优动作<α′,γ′>。<α′,γ′>作用于环境会得到即时奖励re(ri(t),<α′,γ′>),即时奖励re(ri(t),<α′,γ′>)设置为连续迭代中相邻蝙蝠适应度值之间的差值,表达式如下:
re(ri(t),<α′,γ′>)=fit(xi(t+1))-fit(xi(t))=ri(t+1)-ri(t)(12)
<α′,γ′>用于蝙蝠算法可以获得新的蝙蝠位置xi(t+1),并求得新状态ri(t+1)的q值。最后,通过公式(10)对q(ri(t),<α′,γ′>)进行更新。
在qba中,对于每一个状态都有一个对应的最优动作<α,γ>产生以获得最大累积奖赏值,并将训练得到的状态-动作对保存在q表中。即采用强化学习算法对蝙蝠算法中的<α,γ>参数进行训练,并将结果保存在数据集中,如图3所示。
三、训练完成后,从q表中选用最优的<α,γ>组合代入蝙蝠算法中,得到最优的蝙蝠位置,以此进行路径规划任务,从而减少了搜索最优的时间,并且可以完成最短路径的规划。
技术特征:
1.基于蝙蝠算法与强化学习的路径规划方法,其特征在于,包括:
确定路径规划的初始位置和目标位置,采用适应度函数确定两位置的函数值,根据蝙蝠算法得到蝙蝠的初始状态和最终状态;
以<α,γ>为强化学习的动作,从蝙蝠的初始状态开始,对所述动作进行强化学习训练,使每一个状态得到一个最优动作,将训练得到的状态-动作对保存到q表中;所述<α,γ>为蝙蝠算法的响度衰减系数α和脉冲发射率增强系数γ的组合;
从q表中选取最优的状态-动作对,代入蝙蝠算法中,得到最优的蝙蝠位置;从而规划出初始位置到目标位置的最优路径。
2.根据权利要求1所述的基于蝙蝠算法与强化学习的路径规划方法,其特征在于,所述蝙蝠的初始状态和最终状态的算法过程为:
step1:种群初始化;
step2:初始化蝙蝠的位置xi,并根据适应度函数值的优劣寻找当前最优解x*;
step3:开始主循环,生成均匀分布的随机数rand,
若rand<ri,则按照下列公式分别更新蝙蝠的频率、速度和位置;
fi=fmin+(fmax-fmin)β,(4)
其中:
β:β∈[0,1]是均匀分布的随机数。
fi:第i只蝙蝠的搜索脉冲频率,fi∈[fmin,fmax];
x*:当前所有蝙蝠的最优状态;
若rand≥ri,则根据公式(4)进行局部搜索,产生一个新解xnew,并对该解进行越界处理;
xnew=xold+∈lt,(7)
其中:
∈∈[-1,1]是均匀分布的随机数;lt是第t代所有蝙蝠响度的平均值;xold是当前最优个体;xnew是经局部搜索后产生的新个体;
step4:生成均匀分布的随机数rand,若rand<li且fit(xnew)<fit(x*),则接受step3产生的新解xnew,将蝙蝠位置进行更新,同时根据公式(5)和公式(6)对脉冲响度和脉冲发射率进行调整;
其中:
α称为响度衰减系数,γ称为脉冲发射率增强系数;对于任意的0<α<1和γ>0,当迭代次数t→+∞时,响度
step5:更新整个流程的最优解,判断是否到达终止条件,是则输出最优解,否则循环至step3。
3.根据权利要求2所述的基于蝙蝠算法与强化学习的路径规划方法,其特征在于,所述的适应度函数为:
f=f1+penalty,(2)
其中:
(x,y):当前时刻t位置
(x′,y′):下一时刻t+1位置
(xg,yg):目标位置
f1:路径规划中下一时刻位置(x′,y′)与当前时刻位置(x,y)和目标位置(xg,yg)的欧式距离之和最小,即实现路径最短;
penalty:路径规划中不能接触环境中的障碍物(xi,yi),i∈{1,2,…n},其中n为障碍物的数量,否则添加一个大的惩罚项,即实现避障目标。
4.根据权利要求3所述的基于蝙蝠算法与强化学习的路径规划方法,其特征在于,所述对动作进行强化学习训练的算法过程为:
在动作集中选取最优动作进行即时奖励;所述即时奖励设置为连续迭代中相邻蝙蝠适应度值之间的差值,表达式为:
re(ri(t),<α′,γ′>)=fit(xi(t+1))-fit(xi(t))=ri(t+1)-ri(t)(12)
其中:<α′,γ′>为在<α,γ>集中选取的最优动作;re(ri(t),<α′,γ′>)为<α′,γ′>作用于环境时得到的即时奖励;x(t)定义为蝙蝠的位置,xi(t)为当前蝙蝠的位置,xi(t+1)为新蝙蝠的位置,即下一蝙蝠的位置;r(t)定义为强化学习的状态,即蝙蝠在位置x(t)时的适应度函数值,ri(t)为当前状态,ri(t+1)为下一状态;
通过迭代公式(11)不断更新q(ri(t),<α′,γ′>),得到最优状态-动作对q表:
其中:q(st,at):智能体在环境状态为st时采取动作at后所能获得的最优奖赏折扣之和;
re(st,at):即时奖励;η是折扣因子;μ是学习率,控制着学习速度,在一定取值范围内,μ越大则收敛越快。
技术总结
本发明属于智能机器人技术领域,具体涉及机器人的路径规划方法。基于蝙蝠算法与强化学习的路径规划方法,包括:确定路径规划的初始位置和目标位置,采用适应度函数确定两位置的函数值,根据蝙蝠算法得到蝙蝠的初始状态和最终状态;以<α,γ>为强化学习的动作,从蝙蝠的初始状态开始,对所述动作进行强化学习训练,使每一个状态得到一个最优动作,将训练得到的状态‑动作对保存到Q表中;所述<α,γ>为蝙蝠算法的响度衰减系数α和脉冲发射率增强系数γ的组合;从Q表中选取最优的状态‑动作对,代入蝙蝠算法中,得到最优的蝙蝠位置;从而规划出初始位置到目标位置的最优路径。本发明的基于蝙蝠算法与强化学习的路径规划方法,将蝙蝠算法和强化学习相结合,确保在规避障碍物的前提下更加有效、快速的实现智能机器人路径自主规划。
技术研发人员:邱腾飞;朱敬旭辉;刘信潮;赵景波;张文彬
受保护的技术使用者:青岛理工大学
技术研发日:.09.10
技术公布日:.12.31