Robotics: Computational Motion Planning(路径规划)笔记(完):人工势场法(Artificial Potential Fields)

在上一个章节中,我们讨论了基于采样的方法-PRM和RRT算法,在本章节中,我们将讨论人工势场法(Artificial Potential Fields),这是另一种路径规划方法,主要思想就是在配置空间内构造一个平滑函数,机器人会根据函数的梯度方向向目标点移动,同时躲避障碍物。

人工势场法(Artificial Potential Fields)

人工势场法的主要内容就是构造一个函数,当机器人靠近障碍物时,其值会变高,当机器人靠近目标点时,其值会变低。同时,我们还希望此函数在所需的目标位置具有最低值。如果我们可以构造这样一个函数,我们可以使用它的梯度来引导机器人到达目标点。

构造引力场(Constructing an Attractive Potential Field)

构建引力场其实很简单,只需要考虑当前时刻机器人与目标点的位置,那么我们可以用一个度量距离的方法,比如欧氏距离,这样就会在目标处的值为零,并且其值会随着机器人远离它而增加:

其中,\textbf{x} 为配置空间中的某一个位置,\textbf{x}_g 为目标点的位置, \xi 只是一个缩放因子(常数值),这个函数我们就称之为引力函数,能将机器人吸引到目标点。

这样子我们就得到一个引力场,它的样子是这样的:

 引力场的样子就像一个坡,越远离目标点的地方越高,目标点的地势最低

构造斥力场(Constructing a Repulsive Potential Field) 

除了到达目标点,我们还希望机器人避开环境中的障碍物。为此我们也会构建一个斥力函数,让机器人远离障碍物:

其中 \rho (\textbf{x}) 表示机器人在当前位置距离最近障碍物的值,\eta 也只是一个缩放因子(常数值),d_0 控制斥力函数的影响范围,当机器人与障碍物的距离大于 d_0,这个函数的值就为0。

这样子我们就可以根据地图的障碍物信息得到一个斥力场,它的样子是这样的:

通过将引力场和斥力场相加,就可以得到:

那么我们可以把机器人的位置当作一个小球,那么小球就可以根据梯度移动到目的点,就好像由于重力从高处向低处滚落。 

局限性

通过人工势场法进行路径规划有时候会出现局部最小值的问题,例如我们考虑下面这种情况,地图是这样的,机器人在左上方,目标点在右下方(红点处): 

下图就是小球通过人工势场法移动的结果,可以看到,小球卡在了中间的障碍物里,这表明小球现在处于吸引力和排斥力相加的局部最小值的位置。这意味着, 简单的基于梯度的控制策略可能会也可能不会收敛于目标点,这取决于机器人起点的位置。

所以现在主流的路径规划算法都不会单纯地只使用这种基于梯度的算法,但是这种算法可以当作路径规划算法中的一部分,比如用在局部规划器或者重规划中,用来保证机器人快速向目标点靠近。

猜你喜欢

转载自blog.csdn.net/qq_42286607/article/details/124899831