APP下载

改进人工势场法的室内移动机器人的局部规划研究*

2022-06-16张铠翔姜文刚

计算机与数字工程 2022年5期
关键词:步长障碍物引力

张铠翔 姜文刚 薛 慧

(1.江苏科技大学电子信息学院 镇江 212000)(2.江苏科技大学计算机学院 镇江 212000)

1 引言

随着机器人控制技术不断发展,智能机器人被应用到各行各业,并发挥着重要的作用,因此机器人的自主导航成为研究的热点。而路径规划作为自主导航的核心技术主要解决机器人在静态和动态环境中如何行走问题,主要完成从起始点到目标点搜索一条最优的无障碍安全路径[1]。路径规划可以分为完全已知环境下的全局规划和部分已知环境下的的局部规划。全局规划是在完全已知的环境下进行的,因此缺乏实时性与实用性。针对局部路径规划问题,目前方法有人工势场法[2]、神经网络算法[3]、蚁群算法[4]、模糊控制[5]、RRT 算法[6]等。在这些局部规划的方法中人工势场法由于计算方便,实时性好,因此被研究者广泛用于存在较多障碍物的未知环境下的路径规划。

目前移动机器人应用较多的环境是室内,而针对室内多障碍物,更加容易导致传统人工势场法的目标不可达和局部最优的问题,为解决这一问题,众多学者对人工势场法进行深入研究,总结了四个改进方向。一是基于传统势场模型,消除或逃拖局部极小值;二是改进或使用新的势场函数;三是融合其他算法结合;四是分步控制[7]。文献[8]设置虚拟障碍物在极值点附近,解决传统势场力出现的局部最优的问题。文献[9]提出了一种基于栅格地图并在蚁群算法中利用人工势场重构启发函数去寻找最优路径的算法。文献[10]通过改进传统人工势场的斥力场结构,解决目标不可达问题。但由于室内环境较为复杂,存在不同材质与形状的障碍物,这些方法都在遇到特殊障碍物的时候都无法起到作用。

针对室内出现的V 型障碍物以及玻璃障碍物会导致应用势场法后的移动机器人陷入局部极小值的问题,本文在加入机器人安全半径的改进斥场力函数的基础上,设计判断陷入局部极小值阈值因子,建立边界虚拟目标点的方法,用来解决局部极小值问题;同时加入自适应逃脱步长因子,使机器人在建立虚拟拉点后让机器人更快地逃脱极小值点。经仿真实验得出改进后的人工势场法可以有效地解决了传统人工势场的极值点和目标不可达问题。

2 传统人工势场法

2.1 传统人工势场法基本模型

传统的人工势场法因为其独特的优点而被广泛应用,该算法起初是由Khatib.O[11]提出的。其主要思想是在将机器人的移动环境虚拟成具有斥力与引力的人工势场,将机器人所要到达的目标点施加引力场,可以来牵引机器人,而在移动的过程中遇到的障碍物则对机器人具有斥力作用,因此机器人在引力与斥力的共同作用下,躲避障碍物,一步一步地控制机器人到达目标点。移动机器人在运动过程的受力分析如图1所示。

图1 运动受力模型

设机器人的移动空间大小为一个二维空间W=[X Y]T,机器人在空间的位置为p=(x,y),目标点的位置是pgoal=(xgoal,ygoal) ,障碍物的位置pobs=(xo,yo),在势场中机器人受到目标点的牵引会生成引力场Uatt,障碍物对机器人的斥力作用则会使机器人产生斥力场为Urep。

2.2 引力函数与斥力函数

引力函数主要是根据人工势场中引力与目标和机器人距离成正比[12]。

引力势场函数公式表示为

式中ε为引力势能的增益系数;ρ(p,pgoal)为机器人与目标点的相对距离。

根据引力场的负梯度得出引力Fatt为

斥力函数则是通过障碍物使机器人周围产生一定的斥力场,对机器人具有斥力,斥力与机器人具障碍物的距离成反比。

斥力势场函数表示为

式中,η为斥力势能增益系数;ρ0为障碍物斥力场对机器人的影响距离,则表示当机器人在影响距离内收到斥力,影响距离外受到斥力为0;d=ρ(p,pobs)为障碍物与机器人的相对距离。

则通过斥力场的负梯度得出斥力公式为

由引力函数与斥力函数得出机器人受到的合力为

2.3 传统人工势场法存在的问题

通过进行机器人路径规划和避障时,传统人工势场法一般存这三点问题。

1)当机器人周围的障碍物产生的斥力总和等于引力大小,并且方向是相反时,则机器人会陷入锁死状态无法移动[13]。

2)在所要到达目标点附近有一定数量的障碍物存在时,使得机器人目标点的牵引力小于障碍物对机器人产生的斥力的总和,那么有可能使机器人无法到达目标点[14]。

3)当机器人在空间的某一点所受到的合力为零或者合力方向与引力和斥力共线时,机器人将会陷入局部极值点,将会停滞或在此处发生振荡[15]。

4)由于每次规划路径的时候都要计算与障碍物的距离,因此随着障碍物的增多,则会影响计算效率。

3 改进传统人工势场法

3.1 改进斥力函数

针对目标不可达的问题,文献[10]将目标与机器人的相对距离引入到斥力函数中,可以很好地解决目标达不到问题,本文在此基础上给机器人加入安全半径,其中障碍物只与加入安全半径后机器人的边界圈发生斥力场,可以避免引力过大造成机器人与障碍物碰撞,可以更好地远离障碍物,为机器人的路径规划提供一个更安全的路径。

改进后斥力场函数为

式中,η为斥力势能增益系数;ρ0为障碍物斥力场对机器人的影响距离;dR=ρ(pR,pobs)为障碍物与机器人安全边界的相对距离;n为大于零的调节参数。

得到改进后的斥场力为

式中

其中Frep1力的方向是由障碍物指向移动机器人,Frep2力的方向是由机器人指向目标点。

3.2 局部最优问题的改进

3.2.1 局部极值点检测

在判断机器人是否陷入局部最优造成停止或者徘徊的问题上,文献[10]采用单位时间内检测运动距离,由于陷入局部震荡时也存在距离,所以此方法存在一定的不合理性,因此本文采用机器人到目标点的距离作为检测的标准,只要机器人单位时间内的,机器人距离目标点的距离在这个阈值内,则可判点是否陷入局部最优。同时此方法在面对室内的玻璃障碍物时也可以很好地判断,由于激光测距仪是很难检测到玻璃障碍物的,所以当遇到玻璃障碍物的时候,移动机器人也会陷入局部最优,可以根据此方法来判定。

单位时间阈值表达式为

式中dg表示机器人与目标点的距离;α表示单位时间内机器人与目标点距离徘徊的阈值。

3.2.2 局部最优问题解决方案

在斥力函数中加入了目标点与机器人的距离因子后虽然可以解决目标不可达问题,在斥力势场中引入距离因子可以解决目标点附近有障碍物导致的目标不可达问题,但是对于局部最优的两种情况是不适用的,需要进一步改进人工势场模型。文献[10]只是针对合力为零的情况分析,其模型具有局限性,因此本文将对两种情况分析,并采用改进后的人工势场模型。

对偶存在模态算子

针对两种情况本文将采用设置虚拟目标点的方式,在虚拟目标点作用的过程中,真正的目标点不提供引力,障碍物也不会提供斥力,并且将机器人牵引出局部最优区域后,恢复真正目标点作用,虚拟目标点消失。

1)目标点、障碍物、机器人三个点共线。这种情况会导致机器人在局部极值点周围徘徊。国内外学者通过旋转斥力法或增加逃逸力的方法解决局部最优,但是具体的逃逸力参数没有具体说明[7]。改进后的人工势场模型如图2所示。

图2 共线人工势场模型

假设机器人的坐标为A=(x0,y0),且设机器人的初始方向是指向目标点,障碍物的坐标为B=(xobs,yobs),机器人的安全半径为R,障碍物的似然半径Robs。虚拟目标点为机器人可到达的点C=(x,y),与障碍物相切,Q1,Q2为切点,O为交点,E为圆心C投影到AB上的点,这样可以使机器人以最短路径到达虚拟目标点。

则虚拟牵引点的坐标函数求解如下:

虚拟目标点与障碍物的距离为

由相似定理可得:

由勾股定理得

相应的引力函数为

其中Fvir_att为虚拟目标点的引力;pvir为虚拟目标点;ρ(p,pvir)为机器人与虚拟目标点的距离。

障碍物与机器人的内切线还有与图中对称的一条,同理可求得另一个虚拟目标点,人工势场法过程选其中一个即可。

2)由于室内障碍物较多经常会堆积出各种形状阻碍移动机器人,不难发现大多数障碍物的堆积都会成V 型区域,且V 型区域中障碍物之间的距离是机器人无法通过的,而这类障碍物往往会导致机器人引力与斥力相抵消陷入局部极小值,因此加入虚拟目标点,建立改进的人工势场模型。改进的人工势场模型如图3所示。

图3 V型区域人工势场模型

针对V 型区域虚拟目标点的设置需要先进行最优障碍物的检索,本文提出一种最优虚拟目标点的搜索法。具体步骤如下:

以障碍物、机器人、目标点形成的夹角为第一判断标准,夹角最大的障碍物旁边设置虚拟目标点,且夹角范围设定为[0,π)。

根据1)的判定方法,可能存在多个符合1)标准的障碍物,则进行第二个评判标准,通过判断这些障碍物与机器人的距离,找出与机器距离最短的障碍物。

在此处找出的障碍物周围设置虚拟目标点,由于按照第一种情况的方法设定虚拟目标点可能会使机器人再次陷入局部极值点,本文结合第一种情况方法进行优化,将虚拟目标点设在目标点与障碍物的连线与机器人与障碍物的切线的交点上,计算过程在情况一的基础上稍作改进。这样可以保证在多障碍物的环境下,机器人可以顺利地到达目标点。

3.2.3 自适应逃脱步长因子

为了提高逃脱局部最优点的效率,本文设计一种自适应步长因子,当检测到机器人陷入局部最优时,步长将会自动调整,增大步长,帮助机器人快速到达虚拟目标点,逃脱局部最优。

改进后的步长如:

式中L0正常规划的固定步长;ω为开关值;k任意大于的调节参数;ρ(p,pvir)为机器人与虚拟目标点的距离,加入到指数函数中可以形成衰减趋势,保证逃脱速率的稳定性。

4 仿真结果与分析

为了验证本文提出的改进的人工势场法在路径规划的可行性。在Matlab2018a仿真软件上分别改进前后的人工势场法进行仿真对比,仿真环境为14m*14m,起始点为(0,0),目标点为(10,10)。

仿真参数如表1所示。

表1 仿真基本参数

4.1 目标点未到达

1)在目标点(10,10)的附近存在障碍物,进行传统人工势场法仿真,得出机器人在并没有到达目标点。仿真结果如图4所示。

图4 传统人工势场法

2)下面进行改进后的人工势场法的仿真,其中添加了障碍物的似然半径与机器人的安全半径。灰色圆圈为机器人的安全半径,黑色的为障碍物的似然半径。仿真结果如图5所示。

图5 改进人工势场法

从改进前后的对比图可以看出,在斥力函数中加入了目标点与机器人的相对距离之后,机器人可以平稳地到达目标点。引入了机器人的似然半径和机器人的安全半径之后,保证了机器人与障碍物的距离,大大降低了机器人的碰撞几率。

根据上面实验对比可以得出以下数据对比。改进前后性能对比表如表2所示。

表2 改进前后性能对比

由规划长度和迭代次数可知,传统的人工势场在目标点附近发生振荡导致无法到达目标点。而改进后的人工势场法规划长度为17.6m,迭代次数44 次,运行时间为1.0545s 成功地使机器人到达目标点。

4.2 局部极值点

1)局部最优情况一仿真如图6所示。

图6 情况一

当障碍物和机器人,目标点三点共线的时候,斥力与引力方向在同一线上,这个时候机器人在局部极值点徘徊。

根据改进后的人工势场法成功绕过障碍物到达目标点,仿真结果如图7所示。

图7 情况一改进方案

可见采用在障碍物与机器人内切线位置设置虚拟目标点改进人工势场法可以有效逃脱局部极小值。

2)局部最优情况二,当机器人身处在V 型区域的障碍物中,多个障碍物的合斥力与目标点的引力相抵消。机器会陷入局部最优出现停止与振荡,无法进行下一步运动。如图8所示。

图8 V型区域局部最优

通过本文提出的搜索方案确定最优障碍物,并将虚拟目标点设在机器人与最优障碍物的内切线与最优障碍物和目标点的连线的交点上可以有效使机器人逃脱V型区域。如图9所示。

图9 V型区域改进方案

为了加快逃脱局部最优限制,在改进的基础上引入自适应逃脱步长因子,提高虚拟目标点的作用效率,运行轨迹相对平稳。当达到虚拟目标点的时候,步长因子恢复到固定步长。如图10所示。

图10 融入自适应逃脱半径改进方案

对比加入自适应逃脱步长因子后,规划长度比加入后缩短了0.4813m,迭代次数少了4 次,运行效率相对提高了一点,可见加入了自适应半径后,整体规划效率明显提高。

表3 改进前后数据对比

5 结语

本文主要针对传统人工势场法存在的目标不可达以及局部极值点的问题提出相应的改进策略。本文在传统人工势场的模型中给机器人加入了安全半径以及障碍物的似然半径,为了保证机器人与障碍物的距离,在此基础上给人工势场模型的斥力势能函数中加入目标点与机器人的距离来解决机目标点附近有障碍物的导致目标问题不可到达问题。在解决局部极小值点导致机器人停止或徘徊无法进行下一步规划的问题上,本文创新性的设计判断机器人是否陷入局部极小值的阈值,其中此判断方法在玻璃障碍物也一样适用,并提出一种设置虚拟目标点方法,将机器人拉出局部极小值点,并通过两种常见的障碍物区域进行具体分析来确定虚拟目标点,其中主要采用切线法与搜索法相结合的方法来确定。并引入自适应逃脱步长因子帮助机器人快速逃脱局部极值。通过仿真验证,结果表明本算法的可行性和优越性。本研究为室内移动机器人在实际环境中的应用提供了一定的理论基础。

猜你喜欢

步长障碍物引力
延安新引力
高低翻越
赶飞机
董事长发开脱声明,无助消除步长困境
步长制药50亿元商誉肥了谁?
步长制药50亿元商誉肥了谁?
起底步长制药
月亮为什么会有圆缺
感受引力
A dew drop