资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
基于改进人工势场法的移动机器人路径规划
摘要: 由于传统人工势场法存在局部极小值问题而导致路径规划失败。提出了一种新的角度偏移法, 使机器人迅速逃离局部极小值点, 成功规划出一条平滑无碰撞路径。仿真实验证明了该方法规划的有效性。
关键词: 移动机器人, 路径规划, 人工势场法, 角度偏移法, 局部极小值
路径规划是指移动机器人按照某些性能指标, 寻找出一条从起始状态到目标状态的无碰撞路径[1]。人工势场法是由Khatib 等提出的一种虚拟方法,她把移动机器人在环境中的运动视为在一种抽象的人造受力场中的运动: 目标点对移动机器人产生引力, 障碍物对移动机器人产生斥力, 最后根据合力来确定机器人的运动。然而人工势场法存在局部最优解, 可能使移动机器人在到达目标点之前就停留在局部最小点, 找不到路径到达目标点[2-5]。本文提出了一种基于改进人工势场的角度偏移法, 在机器人陷入局部极小点时的运动方向上增加一个随机的角度使其发生偏转, 从而找到一条新的路径逃离局部极小点。
1 人工势场算法模型
图1 移动机器人在多障碍物下的受力分析
常见的势场法是梯度势场法[6], 机器人在势场中具有一定的抽象势能, 它的负梯度方向表示机器人系统所受到抽象力的方向, 正是这种抽象力促使机器人绕过障碍物, 朝目标前进[7]。在势场中机器人的受力分析如图1所示。
假设机器人的二维工作空间为,势场的构造是应用引力与斥力共同对机器人产生作用(在势场构造中, 下标o表示障碍物, 下标a表示目标点)为:
(1)
其中为引力场, 为斥力场。故此, 势场中机器人的合力表示为:
(2)
其中: 引力, 斥力。
机器人在二维空间中所受到的合力即为:
(3)
目标对机器人的引力势函数为:
(4)
其中为引力增益系数, 为当前机器人在二维空间中的坐标, 为目标点位置, 为机器人与目标点之间的相对距离, 相应的引力可转化为。
障碍物的斥力势函数定义为:
(5)
其中为斥力增益系数, 是一个常数, 代表障碍物的影响距离, 为机器人与障碍物的最短距离。则相应的斥力为:
(6)
其中。
当机器人遇到多个障碍物的时候, 采用势场的迭加来求得多个障碍物对机器人的斥力势场。
2 改进人工势场算法及实现
2.1 解决目标不可达
目标不可达问题存在的主要原因是当目标在障碍物的影响范围之内时,整个势场的全局最小点并不是目标点。因为当机器人向目标逼近时, 障碍物的势场快速增加, 使机器人偏离目标点移动[7]。如图2(a)所示(图中蓝色圆圈为所设环境中的障碍物, 红色圆点为机器人走过的路径点, 小三角形为目标点), 如果能在机器人向目标逼近时, 斥力场趋于零, 那么目标点将是整个势场的全局最小点, 因此在定义斥力势场函数时, 应把机器人与目标之间的相对距离也考虑进去。从而建立一个新的斥力势场函数[7]。
改进的斥力势场函数为:
(7)
其中, 表示目标物与机器人的相对距离。是大于零的任意实数。
机器人在势场中相应的斥力为:
(8)
其中:
(9)
改进的斥力场函数中,增加一个调节因子, 当引力势场增加时, 斥力势场随之减小, 使得整个势场中仅在目标点全局最小。如图2(b)所示。
(a)目标不可达路径 (b)目标可达路径
图2 采用改进人工势场法使目标可达
2.2 解决局部最小值
移动机器人寻找路径的过程中, 可能会出现一种特殊的情况——陷入局部极小值点。当机器人进行路径搜索时, 如果在机器人与目标之间出现一个或多个障碍物, 而且障碍物对机器人产生的斥力与机器人受到的引力大小相等而且两个力在同一条直线上, 则机器人所受到的势场合力, 此时机器人会停止前进, 陷入局部极小值点, 从而导致路径规划失败。
N
Y
N
初始化
根据合力方向与步长计算机器人下一步位置
结束
计算障碍物对机器人产生的斥力
计算机器人与目标点间的引力
给机器人一个角度偏移量,以确定下一步位置
判断斥力与引力合力是否为0
是否到达目标点
本文采用了一种角度偏移的方法来解决机器人陷入局部极小值点的问题。当机器人陷入局部极小值点时, 给予机器人一个角度偏移量来改变机器人的运动方向, 沿着机器人当前位置与目标点连线的方向顺时针偏转一个的角度, 将偏转 角度后的方向作为机器人下一步移动的方向, 其中的取值为之间的逐渐增加的实数。如果机器人转动一个角度后能走出局部极小点, 那么机器人就会在势场力的作用下继续寻找通往目标的路径, 如果没有走出局部极小点那么继续增大偏移角度给予机器人较大的偏转方向, 直到逃离局部极小值点。在机器人前进的过程中步长仍采用初始化中的步长。上述算法路径规划流程图如图3所示。
在仿真试验中, 本文将工作环境设为一个的二维空间,将原点[0,0] 设为机器人的初始位置, 点[13,12]设为目标点,障碍物个数N设为17, 引力势场增益系数的值设为2, 斥力势场增益系数的值设为5, 机器人步长。当机器人陷入局部极小点时, 斥力与引力的合力为零, 此时给机器人一个角度偏移, 改变机器人的运动方向找到下一步位置, 判断此时是否逃离局部极小值点, 如果仍没有逃离, 则继续改变k的值直至机器人逃离局部极小值点。
图3 改进算法的路径规划流程图
图4(a)所示为改进算法前文献中传统路径规划[6], 机器人陷入局部极小值点, 无法规划出一条到达目标点的路径。图4(b)为改进算法后机器人逃离局部较小值点的路径图, 实验证明利用本文提出的新算法, 机器人能够有效的逃离局部极小点并规划出一条通往目标的路径。
(a) 机器人陷入局部极小值点的路径 (b)改进算法后的机器人逃离极小值点路径
图4机器人陷入局部极小值点的路径与逃离路径
3 结 语
对传统人工势场法所遇到的目标不可达和局部极小值点问题做了详细的分析。对于障碍物与目标点过于接近而引起的斥力势场和引力势场同时增大而出现的目标不可达问题, 采用在斥力势场函数中增加一个调节因子的方法来使机器人能准确找到目标点。当多个小障碍物聚集在(或大障碍物挡在)机器人与目标物之间, 机器人很容易陷入局部极小值点的情况, 采用了增加角度偏移量的方法使机器人逃离极小点, 绕开障碍物而迅速向目标点移动, 这样就解决了机器人找不到路径的问题, 从而节省了规划的时间。仿真结果表明上述方法的有效性。
展开阅读全文