背景技术
移动机器人的路径规划是指机器人根据传感器摄像头获得的信息对所处环境进行感知并自主的规划出一条抵达目标状态的路线。
传统的移动机器人的路径规划方法存在如下问题:
文献1(宋勇,李贻斌,李彩虹.移动机器人路径规划强化学习的初始化[J].控制理论与应用,2012,29(012):1623-1628)针对现有路径规划算法收敛慢的特点,提出了一种基于人工势场的Q学习初始化算法,根据人工势场来得到环境的先验知识,使得算法中Q值初始化为更好的参数,加快收敛速度,但算法是应用在离散栅格的环境中,与现实应用不符。
文献2(柳长安,鄢小虎,刘春阳,等.基于改进蚁群算法的移动机器人动态路径规划方法[J].电子学报,2011,39(5):1220-1224)提出了一种基于改进蚁群算法的路径规划算法,克服了局部最优问题,但同样对环境做了栅格化处理,不能处理环境信息完全未知的路径规划问题。
文献3(陈世明,江冀海,吴龙龙,等.受限空间自适应区域栅格化的优化路径规划[J].控制与决策,2012,27(7))针对环境中障碍物分布复杂且存在封闭边界的受限空间的情况,采用粒子群算法提出了一种环境自适应区域栅格化的优化路径规划算法,但论文中并没有对复杂的非凸障碍物进行分析而今采用简单的圆形障碍物进行了仿真。
文献4(乔俊飞,樊瑞元,韩红桂,等.机器人动态神经网络导航算法的研究和实现[J].控制理论与应用,2010,27(1):111-115)提出了根据机器人所处环境状态自适应的调整网络结构的动态神经网络导航算法,通过神经网络来实现机器人状态与动作间的映射关系,但论文中的机器人的动作空间只有五个离散的动作,大大降低了***的自由度。
文献(王梅,王叶婷,屠大维,等.基于混合势场法的移动机器人路径规划[J].计算机应用研究,2012,29(7):2447-2449)针对人工势场法中的局部最优、目标不可达等问题,在斥力场函数中加入斥力因子,克服了上述缺陷,但算法中对于传感器信息的处理过多的依赖于专家知识。
文献(郜园园,阮晓钢,宋洪军,等.一种基于混合学习策略的移动机器人路径规划方法[J].控制与决策,2012,27(12))采用模糊推理***和学习自动机的原理,提出了一种混合学习策略,能够与未知环境实时交互并自适应的学习规划策略,但同样算法需要依据较多的专家知识来获取合适的模糊规则。
人工鱼群算法是由文献(李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].***工程理论与实践,2002,22(11):32-38)提出的一种多点启发式随机搜索算法,算法基于自然界中鱼群觅食的自然行为,使得算法具有优良的寻优能力,但是该算法泛用性低,对每个新地图都需要重新进行训练。
发明内容
基于此,针对上述技术问题,提供一种移动机器人的路径规划方法。
为解决上述技术问题,本发明采用如下技术方案:
一种移动机器人的路径规划方法,包括:
1)通过多个距离传感器探测移动机器人与障碍物之间的距离si,所述多个距离传感器均匀分布于所述移动机器人的周向正面,该移动机器人采用差分驱动小车模型,其运动学方程如下:
,i为所述距离传感器的数量,(x,y,θ)表示所述移动机器人在惯性系下的坐标以及该移动机器人的朝向与惯性系x轴之间的夹角,v、ω分别为机器人的速度与角速度;
2)提供一具有淘汰机制的鱼群算法,该算法包括:
觅食行为:在一标号为1,2,…,M的人工鱼集合F中,设当前第i条人工鱼状态Xi∈Rn,n为求解空间维数,鱼在自身视野范围内的求解空间中随机搜索新的状态Xj,并加以判断是否满足移动条件,即若P(Xj)>P(Xi),其中P(·):Rn→R为目标函数,则按下式更新自身的状态:
Xi(k+1)=(1-α)Xi(k)+αXj (2)
,其中0<α≤1为觅食学习率;
若反复搜索次数达到最大搜索次数,则在视野范围以n维高斯分布取样一点作为下一个状态,即有:
Xi(k+1)~N(Xi(k),σ2) (3)
聚群行为:对当前人工鱼i,定义邻接人工鱼集合:
Ni={j∈F|‖Xi-Xj‖≤d∩j≠i} (4)
,其中‖·‖为欧氏范数,d表示人工鱼最大视野距离,判断视野范围内的所有人工鱼的状态中心是否拥挤,若不拥挤,即若P(Xc)/|Ni|>δ·P(Xi),其中δ用拥挤度因子,则按下式更新人工鱼i的状态:
,γ为算法迭代步长,若不满足拥挤度条件,则执行觅食行为。
追尾行为:人工鱼i在视野范围内搜索目标函数值最大的邻接人工鱼j,有
j=argmaxj′{P(Xj′)|j′∈Ni} (6)
且判断该人工鱼周围是否拥挤,即若P(Xj)/|Ni|>δ·P(Xi),则依下式更新人工鱼i的状态:
淘汰机制:依据目标函数的值,淘汰m条低适应度的人工鱼,0≤m<M为预设的淘汰数目;依次从M-m条人工鱼中以等概率选取一条鱼设为人工鱼i,将人工鱼i的状态Xi作为高斯分布的期望,通过式(3)在人工鱼i附近生成一条鱼,重复上述过程直到生成m条鱼;
3)所述移动机器人由具有神经网络的控制器控制,所述神经网络的输入I以及输入O分别为:
I=(rd,θd,s1,s2,…,s5)∈R7
O=Φ(G(IW1)W2)∈R2
,rd以及θd分别为碰撞点与目标的距离偏差以及角度偏差,rd=‖(x,y)-(xg.yg)‖,θd=θ-argtan(yg/xg)∈(-π,π];
在每个离散步骤内,若检测到满足如下任意一个结束条件:
距离偏差rd=‖(x,y)-(xg.yg)‖≤ε,ε>0为设定的距离容许误差;
ti=tf,即迭代时间等于最大迭代时间;
则,结束当前试验,返回目标函数的值为
K为尺度因子;
4)所述神经网络通过所述鱼群算法更新神经网络权值,即人工鱼的状态X:
4a)初始化鱼群最优状态以及最优目标函数值公告板,在[-3,3]的取值范围内随机初始化鱼群状态X;
4b)若满足鱼群聚群条件,则执行聚群行为,否则执行觅食行为;
4c)若满足鱼群追尾条件,则执行追尾行为,否则执行觅食行为;
4d)更新所述公告板,执行淘汰机制;
4e)若到达最大迭代次数,则结束鱼群算法并将人工鱼群的状态X以及目标函数的值输出至公告板,用以记录最优参数,否则返回4b)步骤;
人工鱼的状态其中表示矩阵拉直为行向量;
5)通过已知训练地图模板训练所述神经网络;
6)通过训练过的神经网络规划所述移动机器人在环境信息未知的环境空间中的行走路径。
所述神经网络为三层前馈网络。
所述距离传感器采用激光传感器或超声传感器。
本发明采用加入淘汰机制的鱼群算法针对具有神经网络结构的控制器对移动机器人进行控制,机器人只需要在一个模板地图里进行训练,就可凭借神经网络的泛化性能来学习到壁障和到目的地的行为,即算法学习出的是一种泛化的行为而不是特定地图的路径轨迹,即属于环境未知基于行为学习的路径智能规划方法,增强了机器人对于复杂位置环境的适应能力。
具体实施方式
一种移动机器人的路径规划方法,包括:
一、环境假定为二维平面,移动机器人在二维平面可自由移动,环境中设定有目标物体(坐标为(xg,yg))及若干障碍物且目标物体与障碍物间没有交集,控制目标为确定一个控制策略使得机器人最终抵达目标且在移动过程中不与障碍物接触。
本发明通过多个距离传感器2探测移动机器人1与障碍物之间的距离si,多个距离传感器均匀分布于移动机器人的周向正面,该移动机器人采用差分驱动小车模型,其运动学方程如下:
,i为所述距离传感器的数量,(x,y,θ)表示所述移动机器人在惯性系下的坐标以及该移动机器人的朝向与惯性系x轴之间的夹角,v、ω分别为机器人的速度与角速度。
具体地,距离传感器为5个,且采用激光传感器或超声传感器,具体分布位置如图1所示。
五个传感器可探测到环境中的障碍物并返回对应传感器与障碍物的距离si,i=1,2,…,5,传感器有一定的感知范围,且设定传感器在没有检测到障碍物时则返回最大感知半径Rs,即图中圆形标识距机器人中心的距离。考虑到实际应用,机器人的控制量应有上界约束,有v≤vmax,ω≤ωmax。
二、提供一具有淘汰机制的鱼群算法。
鱼群算法为多点搜索的启发式随机搜索算法,因为是随机搜索,所以算法本身并不需要知道待解问题的模型,多点搜索的特性使得算法更容易跳出局部最优解,而且鱼群算法较之其他的启发式搜索算法有着较快的收敛速度,可以在较短的时间内找到待解决的问题一个可行解。
鱼群算法模拟了自然界中鱼群搜索实物的自然生物特性,其中主要包含三种行为:觅食行为、聚群行为和追尾行为。本发明对机器人路径规划这一具体问题,对三种基本行为加以细节修改,使算法更适合路径规划问题,具体如下:
1、觅食行为:在一标号为1,2,…,M的人工鱼集合F中,设当前第i条人工鱼状态Xi∈Rn,n为求解空间维数,鱼在自身视野范围内的求解空间中随机搜索新的状态Xj,并加以判断是否满足移动条件,即若P(Xj)>P(Xi),其中P(·):Rn→R为目标函数,则按下式更新自身的状态:
Xi(k+1)=(1-α)Xi(k)+αXj (2)
,其中0<α≤1为觅食学习率;
若反复搜索次数达到最大搜索次数,则在视野范围以n维高斯分布取样一点作为下一个状态,即有:
Xi(k+1)~N(Xi(k),σ2) (3)
聚群行为:对当前人工鱼i,定义邻接人工鱼集合:
Ni={j∈F|‖Xi-Xj‖≤d∩j≠i} (4)
,其中‖·‖为欧氏范数,d表示人工鱼最大视野距离,判断视野范围内的所有人工鱼的状态中心是否拥挤,若不拥挤,即若P(Xc)/|Ni|>δ·P(Xi)(聚群条件),其中δ用拥挤度因子,则按下式更新人工鱼i的状态(聚群行为):
,γ为算法迭代步长,若不满足拥挤度条件,则执行觅食行为。
追尾行为:人工鱼i在视野范围内搜索目标函数值最大的邻接人工鱼j,有
j=argmaxj′{P(Xj′)|j′∈Ni} (6)
且判断该人工鱼周围是否拥挤,即若P(Xj)/|Ni|>δ·P(Xi)(追尾条件),则依下式更新人工鱼i的状态(追尾行为):
淘汰机制:依据目标函数的值,淘汰m条低适应度的人工鱼,0≤m<M为预设的淘汰数目;依次从M-m条人工鱼中以等概率选取一条鱼设为人工鱼i,将人工鱼i的状态Xi作为高斯分布的期望,通过式(3)在人工鱼i附近生成一条鱼,重复上述过程直到生成m条鱼。
淘汰机制类似于遗传算法中的选择机制,即依据适应度的高低来选择下一代,这里的适应度可直接由目标函数来计算或者是目标函数的倒数等(取决于寻优目标是找最大值还是最小值)。
需要指出的是,式(3)中高斯分布的期望为Xi表示当前人工鱼的下一状态Xj将以式(3)的概率分布率在Xi附近生成,这样做的原因是若觅食行为再尝试到最大搜索次数后,仍不能找到目标函数值比当前状态高的状态,则表示当前状态为局部较优的一个状态,因此下一人工鱼的状态应尽量与此状态接近,而高斯分布恰恰迎合这一特点。
三、移动机器人由具有神经网络的控制器控制。
生物***通常被认为是设计优良的自主智能***的最好参照,所以对于有多种策略可供选择的问题,通常选取更符合自然生物***的策略。这种选择策略的方法被称作生物合理性最优选择原则(The Best BiologicallyPlausible Choice Principle)。依据此原则,移动机器人的控制器相当于生物中的大脑,因此应具有神经网络的结构。考虑到算法的实时性及算法的复杂度,如图2所示,本实施例采用简单的三层前馈网络作为移动机器人的“大脑”,其隐层激发函数选择为中心对称的S形函数。理论上已经证明,三层前馈网络可在紧集范围内逼近任意连续函数,可保证算法拥有足够的泛化性。
图2中,为输入层到隐层权值矩阵,为隐层到输出层权值矩阵,ni,no分别表示输入与输出向量维数,p为隐层神经元数。定义隐层激发函数为G(z)=[g1(z),g2(z),…,gp(z)]。其中:
同样的,有输出层激发函数为其中:
,λi为激发函数尺度因子,约束输出向量元素取值范围,ò为斜率因子。
据此,神经网络的输出O为:O=Φ(G(IW1)W2)∈R2。
与鱼群算法进行结合,神经网络的输入I为:I=(rd,θd,s1,s2,…,s5)∈R7。
其中,rd以及θd分别为碰撞点与目标的距离偏差以及角度偏差,rd=‖(x,y)-(xg.yg)‖,θd=θ-argtan(yg/xg)∈(-π,π]。
下面对目标函数进行定义。
针对移动机器人路径规划这一实际问题,目标函数的定义将直接影响到最终的控制结果。首先定义如下三个单次试验(trial)的结束条件:
1、距离偏差rd=‖(x,y)-(xg.yg)‖≤ε,ε>0为设定的距离容许误差。
2、即存在一个传感器的读数小于等于距离容许误差。
3、ti=tf,即迭代时间等于最大迭代时间。
在每个离散步骤内,若检测到满足其中任意一个条件,则结束当前试验返回目标函数的值为
K为尺度因子。
其中,实验是指算法过程中的单次迭代,亦指强化学习(ReinforceLearning)中的单次尝试,具体到本专利是指机器人由初始位置开始直至满足结束条件的一个过程。
据此可看出,寻优算法的目标是寻找到目标函数的最大值即使得距离偏差最小。
结束条件1为成功条件,达成此的条件的试验将返回相比于后两个失败条件最大的目标函数值,因此由鱼群算法中觅食行为可使得机器人学习到抵达目标的行为。
结束条件2确保了机器人在移动过程中对壁障行为的学习,因为若机器人在移动过程中与障碍物放生接触,则此次试验结束,返回上式的值,此时的目标函数值实际上反映了碰撞点与目标的距离偏差,则当碰撞点距目标函数越远,返回的值越低,则越可能被鱼群算法中的淘汰机制淘汰掉,相当于机器人对壁障的学习。
结束条件3则保证了机器人不会出现在不碰撞的条件下循环打转的行为,且一定程度上约束了机器人抵达目标的时间。
需要指出的是,结束条件3还能使得机器人学习到在目标附近徘徊的行为,即对于一个中心在目标点的球域,存在一个球域半径R>0,使得在此次试验时间内机器人位置始终位于此球域内,即
四、神经网络通过所述鱼群算法更新神经网络权值,即人工鱼的状态X:
1、初始化鱼群最优状态以及最优目标函数值公告板,在[-3,3]的取值范围内随机初始化鱼群状态X;
2、若满足鱼群聚群条件,则执行聚群行为,否则执行觅食行为;
3、若满足鱼群追尾条件,则执行追尾行为,否则执行觅食行为;
4、更新所述公告板,执行淘汰机制;
5、若到达最大迭代次数,则结束鱼群算法并将人工鱼群的状态X以及目标函数的值输出至公告板,用以记录最优参数,否则返回步骤2。
人工鱼的状态其中表示矩阵拉直为行向量。
需要指出的是,上述鱼群算法不同于标准的鱼群算法,这里的鱼群算法并没有约束人工鱼状态元素的取值范围,这样做的目的是为了使三种基本行为找到的较优解不至于因为状态边界限制而丢失。依据鱼群算法的三种行为对神经网络权值(神经网络拓扑图中边的权值),即人工鱼群的状态X的更新策略,对单个权值的调整来说类似于二维随机游走,这样在有限的迭代步数内,权值可在合适的区间内。
五、通过已知模板地图训练神经网络,考虑到神经网络的泛化性需求,训练所采用的模板地图必须具备使机器人能够学习到避障行为的前提下到达目的地。
六、通过训练过的神经网络规划移动机器人在环境信息未知的环境空间中的行走路径。
下面本实施例对上述算法进行了仿真,首先设定算法相关参数如表1所示:
表1
采用的训练地图模板如图3所示。该地图对于机器人1的初始位置及目的地位置G来说在第一个拐角处存在着一局部最优点,即图中A点,因为机器人到达A点后不论是向x轴负向移动还是x轴正向移动均会使得目标函数减少,即为一局部最优点。事实上,对于机器人与目的地的相对位置来说,A点处的障碍物3为非凸障碍物,传统的基于人工势场的壁障策略在遇到非凸障碍物时会出现所谓的“死锁”现象,即停滞在A点徘徊不前,无法跳出局部最优。
采用表1参数对网络进行训练。为了保证仿真的准确,这里采用定步长四阶龙哥库塔法对单次试验的移动机器人进行迭代计算。仿真结果如图4(a)(b)所示。
从图4(b)中可看出,算法在第二次迭代即找到局部最优点,此时目标函数值为5左右(即对应图3中A点附近),然后仅仅经过了五次迭代便跳出了局部最优找到了全局最优点,表明了算法优越的寻优能力。
为了测试算法的泛化能力,选择不同的地图对算法进行测试,选取算法参数为迭代过程中产生的最优参数,并画出机器人运动轨迹。
仿真结果如图5所示。图中有意忽略了结束条件,旨在观察在机器人抵达目的地后的行为,从图中可看出机器人自发涌现出了在“目标周围徘徊”的行为,这可间接从目标函数的设置上体现出来,同时体现了算法在全局最优的局部收敛性。通过四种不同地图的测试,可看出不论是障碍物的设置、地图边界的设置还是目标位置的改变,算法都能够避开障碍抵达目标点附近区域并始终在其周围徘徊,特别是在图5(d)中障碍物的设置相当复杂,但从图中机器人运行轨迹可看出机器人涌现出了“沿墙行走”的行为,并能够在抵达目的地附近时停止沿墙行走,转而进行“目标周围徘徊”。由此,这两种涌现行为确保机器人可在复杂甚至是动态的环境中躲避障碍抵达目的地。
在本实施例中,移动机器人的速度控制量为连续标量且属于[-λ1,λ1],依据图1中传感器的配置,显然x轴正向为移动正方向,在算法训练的初期可看出机器人随机的采取前进和后退的行为,但由于后退时传感器无法接受到有效信息,因此后退的行为很快便被淘汰掉了,在算法训练的中后期又可观察到,当机器人距离障碍物非常近的时候,机器人会临时做出“倒退行为”以躲避障碍物,这一点可从图4中看出,机器人在A点附近做了小幅度的倒退,又重新前进,并“沿墙行走”跳出了了局部最优点。
但是,本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围内。