APP下载

基于改进人工势场法的移动机器人避障研究

2021-03-12任工昌郭维鹏

软件导刊 2021年2期
关键词:极小值势场移动机器人

任工昌,郭维鹏,刘 朋

(陕西科技大学机电工程学院,陕西西安 710021)

0 引言

移动机器人自主避障是指从初始位置运动到目标位置的过程中,机器人在外部条件约束下能安全地避开各种障碍物,最终抵达目标位置[1]。常见的避障算法有神经网络算法[2]、模糊逻辑算法[3]、人工势场法[4-6]和A*算法[7]等。

人工势场法是Khatib[8]在研究机械臂时构建的一种虚拟势场法,其原理是将机器人放置于一个由障碍物与目标点共同作用的势场中,目标点引力势场对其有吸引作用,而障碍物斥力势场对其有排斥作用,两个势场的共同作用使机器人进行移动。

人工势场法因其具有数学分析简单、轨迹光滑等特点被广泛应用于移动机器人避障与路径规划中[9]。但经典人工势场法尚存在一些不足[10-12],而且在实际应用过程中,动态障碍物也是机器人在运动时要考虑避开的对象,使得经典人工势场法无法满足避障要求,因此需要对该方法进行一定改进。对于动态避障问题,Ge 等[13]针对目标点和障碍物位置都发生变化的问题,提出一种新的势能方法,从而定义新的势能函数解决该问题;韩永等[14]通过引用速度势场的概念,改进传统势场函数,有效解决了动态避障问题;翟红生等[15]在传统势力场基础上引入相对速度场,并结合量子粒子群算法,实现机器人的动态路径规划。

本文一方面对经典势场函数进行改进,以解决目标点不可达问题,并通过调整引力在坐标轴上的分量,从而改变合力方向,解决局部极小值问题;另一方面考虑障碍物运动速度,将其与机器人相对速度纳入势场函数,从而重新建立斥力势场,实现动态避障。

1 经典人工势场法

人工势场法的核心思想是受物理学中自然势场启发而产生的,如电势场与重力势场[16]。将这种作用机制的数学函数应用在移动机器人环境模型中,通过给定初始点、目标点和各障碍物位置坐标,根据三者之间的相对位置关系建立人工势场以模拟自然势场,这就是经典人工势场法。

利用势场函数U建立人工势场,在平面空间中,机器人初始位置坐标为q=(x,y)T,目标位置坐标为qgoal=(xg,yg)T,此处的引力势场会对机器人产生一个引力,方向由机器人指向目标点;障碍物qobs=(xo,yo)T处的斥力势场会对机器人产生一个斥力,方向由障碍物指向机器人。q处的势场函数U(q)可表示为:

其中,引力势场函数公式为:

则引力为:

式中,λ为非负常数,是引力势场的增益系数,实验时可根据具体情况改变λ值,以增加或减少引力势场作用强度。ρ(q,qgoal)表示机器人当前位置q点与要到达目标点qgoal之间的距离。

斥力势场函数公式为:

式中,μ为非负常数,表示斥力势场增益系数,其作用与引力势场中的λ类似,用来调整斥力势场大小;ρ0为障碍物作用距离阈值,其作用是考虑目标点附近障碍物对机器人的影响;ρ(q,qobs)表示机器人所在位置q点与阈值内障碍物qobs之间的距离。

2 改进人工势场法

2.1 目标不可达问题及其改进

由势场函数可以看出,当目标点附近存在障碍物时,移动机器人与目标点位置越接近,其所受引力越小,但斥力受目标点附近障碍物影响而逐渐增大,则移动机器人受斥力作用还会运动一段距离,即出现目标点不可达的情况。因此,可将机器人与目标位置之间的相对距离加入到斥力势场函数中,减小目标点附近障碍物的斥力势场。斥力势场函数公式如下:

由斥力场可得斥力Frep(q)的分量为:

其中,参数n为正实数,Frep1(q)方向从障碍物指向机器人,对机器人有排斥作用;Frep2(q)方向从机器人指向目标位置,对机器人有吸引作用。由式(3)与式(6)可知,若机器人到达目标位置,此时引力为零,同时靠近目标位置的障碍物产生的斥力势场也为零,符合避障要求。

2.2 局部极小值问题与改进

若存在障碍物分布在移动机器人与目标点连线上的情况,移动机器人在向目标位置运动时合力方向始终不变,则运动方向也始终不变,从而无法避开障碍物。为解决局部极小值问题,可对引力进行改进,若作用在机器人上的引力与斥力共线时,可调整引力在坐标轴上的分量,从而改变合力方向,解决局部极小值问题。

当斥力与引力共线时,改进后的引力在坐标轴x、y 上的分力如下:

式(9)与式(10)是改进后引力Fatt(q)在坐标轴x、y上的分量,其中α、β∈(-1,1),通过改变参数α与β值可以调整引力大小与方向,合力方向也随之改变,使机器人能够绕过障碍物,离开局部极小值点。其中,θ为改进后引力与x轴正方向的夹角,如式(11)所示。

3 引入障碍物速度斥力势场函数

为实现移动机器人在动态环境中的自主避障,提高其动态避障能力,可在斥力势场函数中加入移动机器人与障碍物的相对速度。在向目标点前进时,移动机器人可以实时获得距离本身最近障碍物的速度vobs,两者相对速度在其连线上的分量vro为:

式中,nro是相对速度的单位向量,方向由机器人指向障碍物,如图1 所示。

Fig.1 Speed relationship between robot and obstacle图1 机器人与障碍物之间速度关系

考虑到实际运动过程中机器人自身大小对避障有一定影响,因此在斥力势场函数中加入机器人半径R。改进后的斥力势场函数为:

其中,η为常数,表示相对速度影响因子。通过改变参数η可调整相对速度对势场的影响,当障碍物为静态时,η=0。

对斥力势场函数Urep(q,v)求负梯度可得:

其中,Frepq是斥力场关于位置q的梯度,Frepv为斥力势场关于速度v的梯度。由式(12)可知,vro相对于速度和位置的梯度为:

4 实验及仿真

为验证改进后算法的动态避障能力,在MATLAB 环境下对算法进行仿真,观察改进算法针对局部极小值、目标不可达以及动态避障等问题的改进效果,仿真参数设置如表1 所示。

4.1 目标不可达与局部极小值问题解决后仿真结果

设置机器人初始坐标位置(0,0),沿与x轴正方向夹角为45°的方向运动,目标点坐标位置(8,8),靠近目标点的障碍物坐标位置(7,7.8),图2、图3 分别为目标不可达问题改进前后仿真结果对比。

Table 1 Simulation parameter setting表1 仿真参数设置

Fig.2 Simulation results before improvement of target unreachable problem图2 目标不可达问题改进前仿真结果

Fig.3 Improved simulation result of target unreachable problem图3 目标不可达问题改进后仿真结果

由图2 可以看出,当机器人抵达目标位置周围时,其所受引力较小,因此机器人受斥力影响偏离目标位置向前运动,不能抵达目标位置。图3 为改进后的斥力势场,改进后的斥力势场可减小目标附近障碍物对机器人的影响,从而成功达到目标点位置。

在机器人与目标点连线上设置障碍物,其位置为(4,4)。由图4 可以看出,算法改进后的机器人可成功避开障碍物并到达目标位置,不会陷入局部极小值点。该算法对动态障碍物同样适用,如图5、图6 所示。从图中可看出,机器人能够调整运动方向,避免陷入局部极小值。

Fig.4 Obstacle avoidance process when the obstacle is static图4 障碍物为静态时避障过程

Fig.5 Obstacles and robots move towards the obstacle avoidance position图5 障碍物与机器人相向运动避障位置

Fig.6 The whole process of obstacle and robot moving towards each other图6 障碍物与机器人相向运动全过程

4.2 移动机器人动态避障仿真结果

设置初始点位置坐标(-4,-4),目标点位置坐标(11.5,3.5),并在移动机器人所在运动环境中设置4 个障碍物,其中两个静态障碍物位置坐标分别为(-1,4.8)和(1,1.7),两个动态障碍物起始位置坐标分别为(4,8)和(6,6),其运动方向如图7 所示。其中,所选取障碍物位置以及运动轨迹都会干扰到机器人,机器人在此环境下避障仿真结果如图7、图8 所示。其中,图7 是移动机器人在遇到第一个动态障碍物时的避障轨迹,图8 是移动机器人整体避障轨迹。从图中可以看出,机器人能够根据障碍物运动情况及时调整位姿,从而避开障碍物。

Fig.7 The robot avoids the first dynamic obstacle图7 机器人躲避第一个动态障碍物

Fig.8 The whole process of robot avoidance图8 机器人避障全过程

机器人在避障过程中与第一个动态障碍物之间距离变化情况如图9 所示,由图可知,其最小距离约为0.7m,可保证机器人与障碍物之间有一个足够的安全距离。在整个避障过程中,移动机器人角度变化情况如图10 所示,可看出机器人避障时角度变化比较平稳,最大变化仅为46°,在合理范围内。仿真结果表明,移动机器人通过使用本算法能有效避开静态及动态障碍物。

5 结语

本文通过对经典人工势场法存在的问题进行改进,以解决原算法中的目标不可达与局部极小值问题,并通过在斥力势场函数中引入障碍物速度,以满足机器人在动态环境中的避障要求。仿真结果显示,改进算法对于移动机器人在静态、动态环境中的避障有着良好效果,而且对机器人运动过程中的角度变化以及与障碍物的最小距离都能实现较好的控制。

Fig.9 Change of distance between robot and obstacle图9 机器人与障碍物距离变化

Fig.10 Robot angle change图10 机器人角度变化情况

然而,本算法主要解决经典人工势场法存在的问题,并通过改进算法满足机器人对动态障碍物的避障要求,但并没有对避障路径进行优化,仍存在路径非最短等问题,有待后续进一步完善。

猜你喜欢

极小值势场移动机器人
移动机器人自主动态避障方法
基于Frenet和改进人工势场的在轨规避路径自主规划
基于改进人工势场方法的多无人机编队避障算法
一道抽象函数题的解法思考与改编*
构造可导解析函数常见类型例析*
极小值原理及应用
库车坳陷南斜坡古流体势场对陆相油气运聚的控制
基于Twincat的移动机器人制孔系统
基于庞特里亚金极小值原理的多运载体有限时间编队控制
基于偶极势场的自主水下航行器回坞导引算法