| by YoungTimes | No comments

路径规划-人工势场法(Artificial Potential Field)

人工势场法是一种经典的机器人路径规划算法。该算法将目标和障碍物分别看做对机器人有引力和斥力的物体,机器人沿引力与斥力的合力来进行运动。

2D空间的引力场。图片来自参考文献1

下图是一个机器人在有障碍物的二维环境下的运动示例,动图可以比较清晰的说明人工势场法是怎么工作的。人工势场法根据运动环境生成势力场,然后机器人沿着势力场的引导,从”山顶”出发,途中避开障碍物形成的”小山峰”,一路奔向目标位置所在的”山脚”。

有障碍物的2D机器人运动环境。图片来自参考文献3
有障碍物的2D环境中的人工势力场。图片来自参考文献3
机器人在有障碍物的2D人工势力场中运动。图片来自参考文献3

1、引力场(Attractive Field)和斥力场(Repulsive Field)

人工势场包含两种两种力场:运动目标位置所形成的引力场(Attractive Field)和障碍物所形成的斥力场(Repulsive Field)。

[公式]

其中,$U_{att}(q)$是引力场,引导机器人向目标位置运动;$U_{rep}(q)$是斥力场,引导机器人避开障碍物。

3D人工势能场。图片来自参考文献2

最常见的引力场函数(Attractive Field)如下:

[公式]

它的梯度如下:

[公式]

引力场函数是个分段函数,当$d < d_{goal}^{*}$时,引力势能的大小与当前位置到目标位置的距离的平方成正比;当$d > d_{goal}^{*}$时,降低引力计算函数的取值,从而避免远离目标位置时引力过大的问题。

引力势能效果。图片来自参考文献5

斥力场常用函数(Repulsive Potential)如下:

[公式]

它的梯度函数:

[公式]

其中,$D(q)$是距离最近障碍物的距离;$eta$是斥力增益常量;$Q^{*}$是障碍物的作用阈值范围,在该阈值范围之内,障碍物才会产生斥力,超出此范围则不产生斥力影响。

障碍物斥力场效果。图片来自参考文献5

将引力场和斥力场叠加,就形成了人工势力场。

合成人工势场。图片来自参考文献5

2、梯度下降(Gradient Descent)

从高等数学的知识中,我们知道梯度方向是函数上升最快的方向。

从人工势力场求解运动路径的过程,就是从当前位置开始,沿着负梯度方向不断前进,直至达到梯度为0的位置。

梯度下降算法

梯度下降算法的输出是路径规划点序列:

[公式]

3、 局部最优解陷阱(Local Minima Trap)

势场算法的挑战之一就是是局部最小值陷阱问题,当所有人工势场(引力势场和斥力势场)相互抵消时,比如在障碍物正好处于机器人和目标位置之间就可能会发生这种情况。虽然这些局部极小值点梯度为零,但并不是我们想要的目标位置。

局部最小值点。图片来自参考文献1

解决局部最小值陷阱的方法有很多,一种方法是引入High Level的Planner, 使得机器人不仅可以随时使用传感器的检测信息,而且仍然保持全局规划的能力。

还有一些补救式的方案,允许机器人陷入局部最优,然后再采用其它方案修复这个问题,比如我们可以在局部最小值处加入一个扰动(随机行走)或回溯,以跳出局部极小值。

参考文献

1、Path Planning Using Potential Field Algorithm。(https://medium.com/@rymshasiddiqui/path-planning-using-potential-field-algorithm-a30ad12bdb08)

2、人工势场法(Artificial Potential Field Method)的学习(https://www.jianshu.com/p/5fa50090ba99)

3、路径规划-人工势场法(https://blog.csdn.net/junshen1314/article/details/50472410)

4、Local Path Planning Using Virtual Potential Field(https://www.cs.mcgill.ca/~hsafad/robotics/)

5、Robotic Motion Planning Potential Functions(https://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf)

6、[机器人路径规划]人工势场法(https://zhuanlan.zhihu.com/p/66265861)

发表评论