APP下载

基于改进人工势场法的小车避障路径规划研究

2021-08-02范玉龙陈贺军

软件导刊 2021年7期
关键词:势场引力障碍物

范玉龙,黄 波,周 仟,陈贺军

(上海工程技术大学机械与汽车工程学院,上海 201620)

0 引言

路径规划任务是规划出一条从起点到目标点的安全无碰撞的最优路径。近几年研究者不断提出新方法应用于各类路径规划,主要有栅格法、离散人工势场法、模糊算法、模型预测算法和遗传算法等。人工势场法模型设计简单、易于理解,能够规划出较为平滑的路径,同时具有很强的实时性,因此被广泛应用于机器人和智能车路径规划中。文献[1]首次提出人工势场法理论,其原理是将运动物体的运动空间看作虚拟力场空间,由目标点吸引力和障碍物斥力的共同作用规划物体运动路径。文献[2]分析了传统人工势场法存在的一些缺陷:当目标点附近有障碍物或障碍物处于运动物体与目标点之间时会存在目标不可达问题;当环境中某点的斥力与引力相等且方向相反时,物体会出现停摆不前而无法逃出局部极小值点的问题。

对于上述传统人工势场法存在的问题,很多学者都提出了改进方法。如文献[3]改进了函数形式,通过选取适当的增益系数解决了目标不可达问题;文献[4]在斥力势场函数中加入目标与障碍物距离调节因子,使得在目标点附近斥力为零;文献[5]提出在局部极小点改变斥力角度和设定虚拟最小区域的方案;文献[6]针对机器人无法到达目标点的问题,提出改进势场模型中的斥力构成以及采用虚拟水流法解决局部最小陷阱问题;文献[7]通过“沿边规划”解决局部极小值问题;文献[8]将模糊控制与人工势场法相结合,在相应时刻改变运动物体的合力大小及方向,从而避免在局部极小点出现震荡;文献[9]提出设置中间目标点的方法,给机器人一个外力以确保机器人能够逃出最小值陷阱;文献[10]、[11]通过改变斥力解决合力为零的问题,通过将斥力旋转一定角度,依据障碍物距离大小采用相应的斥力和引力,并设置障碍物影响范围以解决极小值问题;文献[12]基于改进人工势场法提出一种救灾机器人路径规划方法,将障碍填充法与扰动场法相结合以解决局部最小点问题;文献[13]重新定义了引力公式,以提高机器人避障和动态目标追踪的灵活性;文献[14]提出在动态不确定环境下快速调整移动路径的方法,以调整当前状态与目标状态之间的移动路径;文献[15]、[16]考虑机器人与目标点的相对位置及相对速度因素,构建引力势场和引力函数,以提高动态环境下机器人的避障能力;文献[17]通过改变斥力方向和添加距离因子避免了传统人工势场法的目标不可达问题;文献[18]基于最小转向半径对算法作进一步改进,以满足小车的转向行驶要求;文献[19]引入斥力偏转模型,增加了斥力增益系数函数,以优化路径规划中航向改变过大的问题;文献[20]在斥力函数中引入距离影响因子,以解决目标点旁存在障碍物时的目标不可达问题,通过引入动态法向力以消除由单个障碍物形成的局部极值点振荡。

本文基于改进的人工势场法,通过动态改变障碍物影响范围来解决目标点附近存在障碍物时的目标不可达问题。对于局部极小值,当小车陷入局部极小点时,通过设置虚拟障碍物,由虚拟障碍物提供额外的逃逸力以引导小车逃离局部极值点。通过设置合适的对比实验,在单个和多个障碍物的条件下,比较传统算法和改进算法的实际规划效果,最后在MATLAB 仿真环境中对规划算法进行验证。

1 传统人工势场法

小车在虚拟势场中运动时受到两种势场力影响:障碍物的斥力Fr,方向由障碍物指向小车;目标点的引力Fa,方向由小车指向目标点。其中,L0表示静态障碍物作用范围,受力情况如图1 所示。

在二维空间中,忽略小车自身几何大小,即把小车简化为质点模型。考虑到所有研究对象的平面坐标,假设小车坐标为L=(xv,yv),目标点位置坐标为Lg=(xg,yg),定义目标点对小车的引力势场为两者欧式距离的函数:

Fig.1 Schematic diagram of traditional artificial potential field method图1 传统人工势场法原理示意图

式中,η是引力势场的系数,令上式中的相对距离为D:

对引力势场Ua求解偏导数,即为小车所受目标点的引力:

假设运动空间中障碍物坐标为Lb=(xb,yb),则小车所受障碍物斥力的势场函数为:

其中,μ是斥力势场的系数,L0是斥力势场的最大作用距离,Lvb是障碍物到小车的距离,即认为在L0范围内时小车才会受到障碍物的斥力作用。Lvb可采用以下公式计算:

根据式(5)计算出运动小车受到的障碍物斥力为:

通过以上分析,小车在虚拟势场中运动时假设受到n个障碍物的斥力作用,其所受合力为:

2 改进人工势场法模型

2.1 目标不可达问题

当小车行驶的目标位置附近存在障碍物时,小车受到的引力变得越来越小,障碍物的斥力变得越来越大。因此,小车可能会处于停止或振荡状态而不能到达目标点(见图2)。

Fig.2 Target unreachable diagram图2 目标不可达示意图

在原斥力势场函数中,通过改变障碍物影响范围,使得目标点不再受到障碍物斥力的作用,从而使小车继续向目标点行进。改进后的斥力势场函数如下:

式中,用新的范围s 替代原先的障碍物影响范围,使小车顺利到达目标。

2.2 局部极小点问题

当小车、障碍物、目标点在同一条直线上,且障碍物处于中间位置时,小车会处于一个临界状态,此时小车会出现振荡或停滞。当小车陷入局部极小点时,将障碍物当作质点,以障碍物影响的最大距离为半径画圆。以小车质心与障碍物质心的连线作为参考线,从小车质心作圆的切线,以与参考线夹角较小的切线为参考方向。然后在参考方向上设置虚拟障碍物,由虚拟障碍物提供额外的逃逸力引导小车逃离局部极小值点(见图3)。

Fig.3 Schematic diagram of virtual obstacle method图3 虚拟障碍物法示意图

假设虚拟障碍物的斥力势场函数为:

其中,μ′为大于零的虚拟斥力势场常数,Lvb′为小车与虚拟障碍物之间距离,Lv是虚拟障碍物对小车的影响距离。只有小车与虚拟障碍物之间距离小于Lv时,虚拟障碍物才会对小车产生斥力,则虚拟斥力为:

为实现上述算法,设计算法流程如图4 所示。

Fig.4 Algorithm flow图4 算法流程

3 仿真模拟

实验步骤如下:①在MATLAB2018 中建立工作空间坐标系,设置合理的汽车起点、目标点、引力常数、斥力常数、障碍物个数、步长、迭代次数等参数;②根据改进的人工势场法进行引力、斥力与合力计算;③判断是否存在局部极小点,若存在,则利用作切线的方法设置虚拟目标点,通过虚拟斥力使得车辆逃离平衡点;④根据改进的人工势场法计算下一步要到达的坐标,判断目标点附近是否存在影响车辆到达目标的障碍物,若存在,动态改变障碍物影响距离以消除斥力的作用,使得车辆可以顺利抵达目标点;⑤判断计算出的坐标点是否与目标点重合,若重合,则结束算法流程,否则重新回到步骤③继续计算,直到抵达目标点为止。

为了验证上述算法在实际应用中的有效性与可行性,在MATLAB 仿真环境下设计实验,分别用来说明传统人工势场法与改进后的人工势场法在目标不可达、局部极小点问题上的对比。首先对原算法进行仿真,可看出传统人工势场法存在目标不可达问题,这是因为目标点附近存在障碍物,障碍物的斥力作用使得小车出现振荡或停滞,从而导致小车不能顺利到达目标点。考虑在单个障碍物情况下,传统人工势场法与改进后的人工势场法在目标不可达问题上的表现,仿真结果如图5 所示。

Fig.5 Single obstacle target unreachable图5 单个障碍物目标不可达

通过分析可知,由于单个障碍物在目标点附近对小车的斥力,导致其不能顺利抵达目标点,动态改变障碍物影响距离后,小车可按照规划出的平滑路径到达目标点。进一步考虑在多个障碍物的情况下,改进后的人工势场法能否保证小车到达目标点。为此,在单个障碍物基础上添加多个障碍物,以研究在多个障碍物综合影响下的小车运动情况。仿真结果如图6 所示。

Fig.6 Multiple obstacles target unreachable图6 多个障碍物目标不可达

由图6 可知,传统人工势场法规划出的路径不能到达目标,目标点附近存在两个障碍物并且对小车的行进造成了影响,因此红线在两个障碍物中间附近不能继续前进,小车在这里处于受力平衡状态而出现停滞。蓝线是改进后的人工势场法规划路线,当小车在两个障碍物中间停滞不前时,通过动态缩小障碍物影响范围,使得小车能够在引力作用下继续行进。由图6 可以看到,小车能够避开目标点附近障碍物,成功到达目标点。

为验证局部极小点的路径规划问题,考虑在目标、障碍物、小车共线的情况下,单个与多个障碍物作用对最终结果的影响。首先,当小车、障碍物、目标点在同一条直线上,且障碍物处于中间位置时,小车在障碍物影响范围内会出现振荡或停滞,因此不能继续前进。为验证改进后的虚拟障碍物可以帮助小车逃离局部极小值点,在MATLAB中进行仿真,结果如图7 所示。

Fig.7 Local minima of single obstacle图7 单个障碍物局部极小点

通过分析图7 可知,改进后的人工势场法可以较为平滑地规划出路径,引导小车顺利到达目标点。

进一步考虑在多个障碍物情况下的避障能力,仿真结果如图8 所示。

Fig.8 Local minima of multiple obstacles图8 多个障碍物局部极小点

通过进一步分析可知,在多个障碍物存在的情况下,传统人工势场法由于陷入局部极小值点而不能到达目标。改进后的人工势场法利用虚拟障碍物的逃逸力引导小车绕开局部极小点,可在多个障碍物的间隙中规划出一条避开局部极小点、整体比较平顺、长度合适的路径。

4 结语

为解决传统人工势场法存在的目标不可达、局部极小值等问题,本文主要作了以下几方面改进:首先,通过动态改变障碍物影响范围,使得目标点附近障碍物不影响小车继续前进,并在具有单个和多个障碍物情况下进行仿真,结果表明改进后的算法能够引导小车抵达目标点;其次,当小车陷入局部极小点时,将障碍物当作质点,以障碍物影响的最大距离为半径画圆,以小车质心与障碍物质心的连线作为参考线,从小车质心作圆的切线,以与参考线夹角较小的切线为参考方向,之后在参考方向上设置虚拟障碍物,由虚拟障碍物提供的额外逃逸力引导小车逃离局部极小点。MATLAB 仿真结果表明了改进后算法的有效性,但小车在实际复杂环境下的避障能力有待后续进一步研究。

猜你喜欢

势场引力障碍物
基于Frenet和改进人工势场的在轨规避路径自主规划
基于改进人工势场方法的多无人机编队避障算法
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
库车坳陷南斜坡古流体势场对陆相油气运聚的控制
引力
基于偶极势场的自主水下航行器回坞导引算法
感受引力
土钉墙在近障碍物的地下车行通道工程中的应用