1.一种复杂环境下的机器人路径规划方法,其特征在于,方法包括:步骤一,选用栅格法进行对机器人的工作环境进行环境建模;
步骤二,使用粒子群算法进行全局路径规划;
步骤三,利用混沌函数对灰狼粒子群进行初始化,并在算法的迭代过程中使用混沌序列对陷入局部最优的粒子进行处理,同时结合粒子的适应度值构建自适应惯性权重;
步骤四,使用人工势场法对局部路径进行规划,构造斥力势场函数,并引入了相对距离因子;
步骤五,将全局路径规划和局部路径规划结合成混合路径规划,利用本发明灰狼粒子群进行全局路径规划,针对于机器人在运行过程中遇到的未知障碍物使用人工势场法进行局部路径规划,并最终到达预期的目标点。
2.根据权利要求1所述的机器人路径规划方法,其特征在于,步骤一中,
(1)对地图上的障碍物形状进行分析并选定;
(2)将障碍物所有顶点的坐标构成一个包含障碍物的矩形,得出边长的最大和最小值lmax、lmin;
(3)求解每个矩形的i的面积:Si=ai×bi (2.1)式中的ai为矩形的长,bi为矩形的宽,i为第i个矩形;
(4)求解m个矩形的面积Sm:Sm=∑Si (2.2)式中Sm为所有矩形面积的总和;
(5)第i个栅格的长度为:
栅格粒度长度:
栅格总数:
式中:L为地图的长;
W为地图的宽;
M的值为:100~900。
3.根据权利要求1所述的机器人路径规划方法,其特征在于,对于环境中的不规则障碍物膨胀设置为矩形状规则障碍物,同时利用V‑rep仿真软件建立了真实环境下的地图模型,并在Matlab中对所得地图进行处理,最终得到栅格地图模型;
膨胀的模型如式所示:
式中A表示将要进行处理的栅格,B表示基本元素,C表示膨胀处理之后栅格信息,(x,y)表示栅格的坐标;整个膨胀处理的过程用数学形态学解释D是通过结构元素B对A进行边缘膨胀所得,最终以D在栅格地图中进行表示。
4.根据权利要求3所述的机器人路径规划方法,其特征在于,创建障碍物的3D模型,然后将障碍物模型导入V‑rep仿真软件中建立实际的空间环境模型;
将搭建好的带有激光雷达的机器人模型置于空间内;
使用Python编写机器人控制程序,控制程序在仿真软件运行之后通过V‑rep所提供的联调接口对环境空间内的小车进行移动控制,V‑rep通过所创建的Socket接口将雷达传感器所获取的数据传送给Matlab模块,Matlab模块通过对雷达的实时数据进行处理,进而转化为地图模型;
运行V‑rep软件后,机器人所携带的激光雷达开始向机器人前方发射激光;
最后运行机器人控制程序和Matlab地图绘制程序,通过键盘控制机器人在空间内进行移动,使雷达传感器能够扫描完整个空间;在机器人运动过程中,经雷达扫描过的空间信息通过Matlab实时处理后,得到的原始环境地图模型;
对雷达数据生成的原始环境地图模型使用Matlab模块进行二值处理,转化为二值图像;再通过rgb2gray函数将二值图像转换为灰度图,最后转换为栅格图,得到栅格地图模型。
5.根据权利要求1所述的机器人路径规划方法,其特征在于,方法涉及的粒子群算法步骤包括:(1)对种群规模、学习因子、迭代次数等相关参数进行初始化;
(2)在搜索空间内对粒子的速度和位置进行初始化,粒子的个体最优位置为初始化粒子的位置向量,并利用公式
对种群位置最优值进行更新;
(3)根据下述方式对粒子的速度进行更新;
粒子i在d维上k+1次迭代的计算公式如下面公式所示:其中,c1和c2表示学习因子,c1作用是用来控制个体朝着最优值飞行的步长,c2的作用是用来控制种群朝着最优值飞行的步长;
表示在粒子在寻优过程中的历史最优值; 表示所有粒子达到的最优值,即种群的最优值;rand()函数用来随机产生(0,1)之间的数,用来保持种群的多样,d(1≤d≤D)表示速度和位置的维数;粒子群优化算法的速度由三部分组成: 表示粒子第k次迭代时的速度信息, 表示粒子自身的信息; 表示种群中粒子进行协作和信息共享的部分;
再按照公式 对粒子进行约束,如果存在着超出搜索空间的粒子还必须对其进行相关的处理;
(4)计算适应度值,并且根据下述方式更新粒子的个体和整体适应度值;
在粒子群算法的迭代计算中,粒子个体位置最优值可以用以下的函数进行更新:种群最优值可以用以下的函数进行更新,其中f(·)为适应度函数值:(5)判断是否满足程序结束条件,如果满足,停止算法迭代并且给出最优解;若不满足,跳转到(3)继续运行。
6.根据权利要求1所述的机器人路径规划方法,其特征在于,方法中:使用混沌函数对灰狼粒子群算法的步骤如下:
1)应用Logistic函数的下述方式对种群粒子的位置和速度进行混沌初始化;
Zi+1=μZi(1‑Zi)i=0,1,2,...;μ∈(0,4](3.18)式中,0≤Z0≤1,Zi为第i个变量,μ代表控制变量,当μ=4时,系统处于完全混沌的状态,其混沌空间的范围为[0,1];
2)评估出粒子的适应度值,并将前三个适应度值最优的粒子设置为α、β和δ;
3)使用 对粒子α、β和δ的位置进行更新,剩余粒子使用进行位置更新;
粒子的速度用
更新;
4)使用下述群体适应度方差,判断算法是否陷入早熟,若是,对早熟的粒子进行混沌处理,然后再跳转到3);
上式中n为种群规模大小,fi代表第i个粒子的适应度值,favg代表当前粒子群的平均适2
应度值;群体方差σ反映了粒子的早熟状态;
5)判断算法是否满足终止条件,若满足停止迭代并输出结果,不满足继续跳转到3)进行计算。
7.根据权利要求1所述的机器人路径规划方法,其特征在于,方法中,当机器人在某种环境下进行路径规划时,其人工势场法的步骤为:S101,对各项参数进行初始化,并给出预设目标点的位置、机器人本身的位置;
S102,根据势场的引力函数和斥力函数对机器人所受到的合力进行计算,并且推出与x轴的夹角θ;
S103,根据机器人位置的更新公式计算机器人下一步的位置;
S104,根据目标点对机器人的引力是否为零判断机器人是否到达目标点;
S105,如果机器人未到达目标点,转回S102;如果已经到达,则算法结束。
8.根据权利要求7所述的机器人路径规划方法,其特征在于,斥力势场函数的表达式为:
式中,krep代表增益系数,p代表机器人本身坐标,pobs代表障碍物位置坐标,pg代表目标点坐标,ρ0代表障碍物斥力范围,ρ(p,pobs)代表机器人与障碍物之间的距离,ρ(p,pg)代表机器人与目标点的距离,m代表调节因子,其取值范围0≤m≤1;
m
随机机器人与目标点之间距离的减小,机器人受到的斥力会受到调节函数ρ(p,pg)的影响,当m=0时,调节函数为1,此时机器人不受到与目标点距离的影响;
当m≥1时,斥力与目标点距离成正比;将式(4.17)加入负梯度公式后,得到本发明后的斥力势场函数表达式:
其中ρ0代表障碍物的影响范围;故根据公式(4.18)可知,当ρ(p,pobs)>ρ0时,斥力为0;
当ρ(p,pobs)≤ρ0时,机器人受到合成斥力,合成斥力分别由以下两个力组成:其中, 代表障碍物对机器人的斥力, 代表目标点对机器人的引力;
根据斥力势场函数,分析调节因子m对斥力势场函数 的影响,具体分为以下四种情况:
(1)当m=0时, 斥力分量 故斥力势场函数和未本发明前相同,所以障碍物对机器人的斥力不受机器人与目标点之间距离的影响;
(2)当0
(3)当m=1时,机器人与障碍物之间的相对距离ρ(p,pobs)<ρ0且ρ(p,pobs)≠0,斥力势场函数分量如下式所示:
由公式(4.23)、(4.24)可知,当机器人向障碍物移动时ρ(p,pobs)趋向于0,分量 趋向于0,而分量 趋向于常数a,机器人的合力方向为指向目标点,从而机器人达到目标点;
(4)当m>1时,式中的 是连续的,根据定义可知,机器人向障碍物移动时ρ(p,pg)减小,分量 减小,当机器人到达目标点时ρ(p,pg)=0, 故机器人到达目标点。
9.根据权利要求7所述的机器人路径规划方法,其特征在于,通过实时计算机器人所处位置的势能,并与单位时间内可到达区域势能进行比较,根据两个势能的大小进行检测机器人是否陷局部最小值,实现步骤如下:S201,根据机器人传感器获取到的位置距离信息,对距离信息进行实时计算得到机器人所处位置受到的势能合力值U(p),其中p代表机器人的位置;
S202,根据机器人的步长计算出单位时间内可以到达的位置,设该位置为R(p),并实时* *
计算机器人到达R(p)时任意一点的势能;设p为R(p)区域内的任意位置,则U(p)代表此位置的势能值;
S203,机器人所处位置需满足以下函数:根据上式可知,当机器人的引力和斥力都不为零且单位时间内能够到达位置的势能都大于当前位置的势能时,机器人进入了局部最小值。
10.根据权利要求9所述的机器人路径规划方法,其特征在于,当检测到机器人陷入局部最小值时,增加子目标,子目标的位置应满足以下约束:* + +
U(ptg)
当目标点在机器人与障碍物之间时,机器人陷入局部最优;此时在目标点附近增设虚拟目标点,机器人合力为零的状态被打破,使机器向目标点继续移动;
当障碍物位置在机器人与目标点之间时,机器人陷入局部最优;此时在障碍物周围增设虚拟目标点,机器人的合力平衡被打破从而向虚拟目标点移动,当到达子目标后,虚拟目标点消失,继续以原来的目标点进行路径规划;
当目标点被L型障碍物包围时,在距离机器人比较近的障碍物周围增设虚拟目标点,此时,机器人二力平衡被打破而向虚拟目标点移动;当机器人到达虚拟目标点时,虚拟目标点消失,机器人继续以原来的目标带你进行路径规划;
当障碍物呈U型时,当机器人运行到障碍物的缺口处时,机器人无法从另一面跳出,此时选择距离机器人较近的一侧障碍物的后方处增设虚拟目标点;虚拟目标点会取代原目标点,机器人在其引力作用下走出缺口,从而绕过障碍物,如果障碍物较大的话,多次增设虚拟目标点,使机器人跳出局部最优。