李积云,许亚军,蒲卫华,任 辉
(宝鸡职业技术学院智能制造创新中心,陕西 宝鸡 721013)
路径规划算法和轨迹控制是移动机器人在特定环境中开展有效工作的关键因素[1]。路径规划算法的种类众多,人工势场法因算法简单、易于编程验算、实用型和安全性好,应用较为广泛。许多学者在人工势场法的算法研究和实践应用方面开展了众多研究,内容主要在于解决障碍物附近目标不可达问题(CNRON)[2-3]。该问题的第一类是因斥力过大或引力与斥力相等,导致机器人无法到达目标点,即陷入“势场陷阱”[4];另一类是环境因素,机器人的行进路线被障碍物阻挡或目标点被障碍物所包围,导致无法到达目标位置。
为解决目标不可达问题,已有多种改进型人工势场法,但缺少评价路径规划算法和优化路径轨迹的方法。本文综合各人工势场法算法的特点和应用情况,提出评价路径规划算法的代价函数,并结合轮式机器人的构造和运动特性[5],提出优化路径轨迹的算法,以提高算法在实际应用中的效果和可移植性,完善人工势场法在移动机器人路径规划中的应用。
该算法将机器人所处的运动环境虚拟成人造势场,目标点对机器人作用引力势场,障碍物在某一限定范围内对机器人作用斥力势场[4]。机器人在运行过程中受引力和斥力的合力作用,朝着目标点移动,模型如图1所示,q为机器人位置,qoi(i=1,2,…,n)为各障碍物所在位置[6],n为障碍物的个数;qg为机器人要达到的目标位置;Frepi(i=1,2,…,n)为各障碍物对机器人的斥力;Fatt(q)为目标对机器人的引力;F为目标点作用的引力和所有范围内障碍物作用的斥力的合力。
图1 人工势场模型
1.1.1 引力的计算
引力的大小与目标点到机器人当前位置间的距离成正比,方向由当前位置指向目标点,引力势场Uatt(q)为
(1)
α为引力增益系数;ρ(q,qg)为当前位置到目标点的距离。对应引力Fatt(q)为引力势场的负梯度为
Fatt(q)=-grad[Uatt(q)]=-αρ(q,qg)
(2)
1.1.2 斥力的计算
一般认为距离机器人一定范围内的障碍物都会对其产生斥力,这些斥力相迭加形成斥力的合力,其中某个障碍物形成的斥力势场Urepi(q)为
β为斥力增益系数,为正数;ρ(q,qo)为机器人当前位置与障碍物之间的距离;ρ0为设定的障碍物起作用的范围,在该范围之外的障碍物形成的斥力势场为零;斥力Frepi(q)为斥力势场的负梯度,方向由障碍物指向当前位置。
Frepi(q)=-grad[Urepi(q)]=
(4)
在ρo范围内若有n个障碍物,多个障碍物斥力矢量迭加后的斥力为
(5)
在上述势场作用下的合力F为
F=Fatt+Frep
(6)
假设合力F与水平方向的夹角为θ,机器人便以单位步长Δd从当前位置(xi,yi)移动到下一位置(xi+1,yi+1),以此类推,通过传统人工势场法路径各路径点,到达目标点。
(7)
针对GNRON问题,许多学者提出了行之有效的方法,有改进引力函数的,有引入安全距离调节因子的,有分段规划的。还有结合其他路径规划算法,诸如栅格法、人工神经法。
1.2.1 改进引力函数法
如前所述,当机器人距离目标点较远时,引力较大,斥力小,可能会使机器人在路径上碰上障碍物。这种情况可修正引力函数,引入限定目标位置与当前位置之间的距离参数d,改进后的引力函数为[7]
(8)
α,ρ(q,qg)与传统人工势场法中的参数相同
1.2.2 改进斥力函数法
当目标点附近有障碍物时,斥力变得非常大,引力相对很小,机器人很难达到目标点,此时采用改进斥力函数法。在传统斥力函数基础上,增加当前位置和目标点的距离对斥力的影响,对障碍物的作用范围进行分段:设ρ1≤ρ≤ρ0区为可控域,障碍物的斥力为ρ的线性收敛区;ρ<ρ1区域为机器人的危险区域,即将当机器人在目标附近时,斥力增大,但距离在减小,可实现对斥力场的拖拽作用[8-9]。
(9)
当ρ1≤ρ(q,qo)≤ρ0时
(10)
当ρ(q,qo)<ρ1时
(11)
m和n为大于零的实数;ρ1一般为ρ0的整数倍。
人工势场法算法原理如图2所示,机器人在某一位置,遍历限定范围内所有的障碍物,得到作用的合力,确定机器人下一步移动的方向和位置。以此类推,并时刻监控机器人在限定的迭代次数内是否能到达目标点。如果达不到,对参数进行调整,再次循环。
图2 基于势场法的路径规划流程
图3为分别对应用传统势场法、改进斥力势场法模拟得到的规划路径。本例中设定的相应参数如下:引力增益系数a=15;增益斥力系数β=5;步长λ=0.25;障碍物影响距离ρ0=0.25 mm;改进斥力函数设定距离ρ1=ρ0/2;m=n=2。由图3b可知,改进型人工势场法增强了障碍物对机器人的斥力作用,降低行进过程中与障碍物的碰撞可能性。
图3 基于势场法的算法对应规划路径
人工势场法采用的是迭代法,尽管改进势场法在路径安全性和实效性有所改善,但仍然存在图3中所示点1、点2、点3、点4、点5一样的拐点或折点,这势必会影响机器人的操控性和运动性。
机器人规划路径上若某轨迹点附近路径的曲率出现突变,机器人在这些点附近运动时会出现抖动或停顿,将这样的路径轨迹点定义为奇点。图3路径中的轨迹点1、点2、点3、点4、点5可定义为奇点。机器人若按照规划路径行驶,运行到这些点附近时,机器人必须减速或转向。
通过比对规划路径,将路径安全性、算法耗时、路径“奇点”个数作为评价规划路径的标准,从而构造如下所示的代价函数。
p(i)=EsQs(i)+EtQt(i)+EnQn(i)
(12)
p(i)为算法对应路径的总代价,i为路径标号;Qs(i)为安全代价函数;Qt(i)为时间代价函数;Qn(i)为路径平顺代价函数;Es,Et和En为各代价函数的调节参数。
a. 安全代价函数。
(13)
D为该路径中障碍物到路径的最小距离,R0为障碍物半径[10]。
b. 时间代价函数。Qt(i)以软件模拟时间为准,按照算法耗时的实际精准程度进行度量。
c. 路径平顺代价函数。
(14)
Qn(i)为标号i的路径上出现“奇点”的总次数;Δη为各奇点所在路径的曲率变化量;η0为一常数,可根据机器人的结构和路径的复杂程度取值。
表1为图3a和图3b对应2种规划算法的代价函数结果,其中各代价函数的调节参数为Es=0.2,Et=0.3,En=0.5。
表1 路径规划算法估价函数
由表1可知,在相同的工作环境条件下,改进人工势场法评价结果优于传统人工势场法。这也表明改进人工势场法在运算速率、路径安全性和平顺性方面具有更强的优势,结果与实际相符。因此,该代价函数可应用于路径算法的特性分析。
移动机器人常在后面左右两侧各安装一个驱动轮,在“奇点”附近,机器人的两轮由连续转动突变为一停一转状态,车轮与地面相对运动状态发生变化,影响机器人的运行状态[11]。为了使运行更为平顺,可设计算法对路径进行优化。
“奇点”的出现不但造成时间和能耗损失,同时对机器人的控制系统和执行系统提出了更高的要求:不但控制系统需及时响应外径路径的变化,而且在机械结构上,还要求机器人的质量分布、动力分布及结构布局合理[12-13]。因此,对规划路径进行平滑优化具有重要的意义。
算法的基本思路如图4所示,以已记录的“奇点”为依据,在其左右搜索路径上的点,以这些点组成点集,重新构造与障碍物边缘具有一定安全距离的过渡路径,该路径能保证机器人沿着平顺的路径安全准确地抵达目标。
图4 人工势场法算法基本思路
为了对路径优化算法进行验证,选用改进人工势场法的规划路径,通过对路径上的轨迹点进行分析,找出奇点,之后进行路径优化。
图5a为改进人工势场法对应规划路径,图5b为该路径上各轨迹点所在位置的曲率差。以图5a中的路径算法的验证对象,按照式(14),判定“奇点”位置。然后应用路径优化算法重新规划路径,得到图5c所示经过优化算法处理的路径。
通过对比,经算法优化后的路径在保证安全性和准确性的前提下,可实现路径的平顺处理,更符合机器人运动特性的需求。
图5 路径优化算法验证
随着传感器技术、视觉技术的发展,基于单片机控制的机器人应用将非常广泛[14],也取得丰富的研究成果。本文基于人工势场法在机器人路径规划中的应用,提出常用几种算法的评价函数,并结合移动机器人的运动特性,给出路径优化算法。从而保证机器人在安全、无碰撞中的路径轨迹中,以最优的能耗和时间损耗平顺地抵达目标。