一种基于人工势场的简化算法

2018-10-20 02:16江本赤
新乡学院学报 2018年9期
关键词:势场吸引力障碍物

周 辉,李 震,江本赤,钱 乘

(安徽工程大学 机械与汽车工程学院,安徽 芜湖241000)

在德国率先提出工业4.0后,机器人话题迅速升温。机器人在工业、军事、空间探索等方面得到长足发展[1]。同时,人们对机器人运动路径规划方面也提出了更为严格的标准,保证在到达目标点的过程中,机器人可对运动路径进行智能判断,包括避让运动路径上的障碍物,规划最佳运动路径等。机器人无碰撞路径规划是目前机器人路径规划环节中较为困难的一项。传统的算法主要有可视图法、栅格法和自由空间法等。这些算法主要用在静态情况,即障碍物的位置和大小已知的情况下,而无法满足现实生活中的各种突发情况。对此问题,目前应用较为广泛的解决方法有神经网络算法、人工势场算法、A+算法和模糊逻辑算法等。其中,人工势场算法相对简单、对环境适应性强,但存在局部最小点和振动激荡,在面对大量障碍物时计算量较大、对计算机硬件要求较高的问题。

斯坦福大学教授Khatib最早提出基于人工势场的机器人路径规划问题[2]。人工势场算法是在机器人的运动空间内人为构建出一种抽象的引力场:目标点对机器人产生吸引力,当目标点与机器人距离较远时,吸引力较大;障碍物对机器人产生排斥力,当障碍物与机器人距离较近时,排斥力较大[3],避免机器人与障碍物发生碰撞。机器人每前进一步都检测与目标点及障碍物之间的距离,计算在运动区域中受到的合力,在合力的作用下,进行下一步运动。

1 传统人工势场算法

图1所示为传统人工势场算法的基本思想。如图1所示,起点位置定义为坐标原点Oi,定义目标点位置为Oe,并在目标点Oe处构建一个吸引力场Uatt。其中,吸引力场形状为V字形,也称之为圆锥形势阱[4–7]。

图1 传统人工势场算法示意图

机器人受到的吸引力大小与机器人和目标点的距离成反比,距离越长,目标点对机器人的牵引作用越强。吸引力场方程为

其中,Oi(q)表示机器人运行至第i点位置时指向目标点的位置矢量,Oi(qf)表示机器人在下一步长将到达点的位置矢量。

吸引力场在除目标位置外的任何位置均可能存在不可导点,会产生运动的不稳定性。为此,我们采用距离的平方产生连续可导的势场

由于机器人处于吸引力场内,在机器人运动空间中,目标点对机器人产生的吸引力为

为防止机器人与障碍物发生碰撞,需要在机器人运动空间中构建以障碍物位置为基础的排斥力场。排斥力场形状也如同倒立的V字形状,表达式为:

障碍物对机器人的排斥力为

机器人所受到的合力为

传统人工势场算法存在的缺陷是:在机器人运动区域内的障碍物密集度足够大的情况下,对非必要障碍物进行筛选时,传统人工势场中的障碍物距离影响系数作用并不显著,对周围障碍物的筛选能力较弱,尤其当周围障碍点较密集时,大部分无关障碍点也被计算机纳入计算,计算量较大,对计算机硬件要求较高,可能会导致计算机系统崩溃。为此,我们提出一种简化算法。

2 人工势场算法的简化

2.1 斥力场函数的改进

我们对人工势场函数进行的改进是在排斥力场函数上引入斥力场增益函数。斥力场函数为:

障碍物对机器人的排斥力函数为

2.2 仿真实验与分析

为了验证该算法,我们在MATLAB中采用宽度为5、步速为10的移动机器人为仿真对象。为去除大部分不必要的影响因素,在障碍物的选取上只考虑对机器人运动影响最大的障碍物。得到简化算法流程如图2所示,简化前后的机器人路径规划图如图3所示。

图2 简化算法流程图

图3 简化前后机器人路径规划图

现有的基于人工势场的MATLAB程序采用分组设计,分别由参数化模块、引力计算模块、斥力计算模块、合力计算模块和绘图模块组成。其中,斥力计算模块主要用于计算在每一步长下所有障碍物对机器人产生斥力的大小及方向。我们修改斥力计算模块,在其中添加斥力增益函数来达到简化的目的。通过图3中简化前后的运动轨迹可以看出,采用简化算法后所生成的避障路径并未发生明显变化且均能到达目标点,对运动轨迹的生成并未造成干扰。

在地图中设置4组障碍点,在机器人完成目标点运动后,在 MATLAB 编辑器中输入 feature(“memstats”)命令,查看采用简化算法前后计算机运行内存占用情况。生成计算机运存占用情况如图4所示。通过图4可以看出,在障碍物只有4个的情况下,简化前后的人工势场程序在计算机中占用运行内存的大小,运行内存占用下降约60 MB,下降幅度约为1.6%。

在地图中设置10组障碍点,计算内存情况如图5所示。从图5可以看出,在障碍物数量为10时,运存下降约200 MB,下降幅值约为4%。如图6所示,随着障碍物的增多,机器人所受的影响逐渐增大。仿真结果表明:在两种算法均能到达目标点的情况下,简化算法对计算机硬件要求更低,占用计算机资源计算空间更少。

图5 10组障碍点所需内存大小

图6 计算机运行内存随障碍点的变化

3 结论

分析了传统人工势场所存在问题,提出了一套简化方案:在不改变目标点位置的情况下,当机器人运动路径周围存在较多障碍物时,通过筛选留下影响最大的障碍物,去除非必要障碍物,避免过多冗余变量的产生。通过MATLAB仿真实验证明:该算法更加精简,对电脑硬件要求更低,能够有效降低电脑运存,提高电脑使用效率。

猜你喜欢
势场吸引力障碍物
基于Frenet和改进人工势场的在轨规避路径自主规划
融合前车轨迹预测的改进人工势场轨迹规划研究
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
赶飞机
人工势场法与A*算法结合的机械臂避障路径规划研究
基于势场搜索的无人车动态避障路径规划算法研究
吸引力1
吸引力2
跟踪导练(三)4