基于人工势场法的路径规划
APF (Artificial Potential Field)人工势场法模拟电荷在电场中的受力运动,将机器人在障碍物环境中的运动看作是由目标点产生的引力和由障碍物产生的斥力共同作用的结果。算法将障碍物环境 抽象成一个特殊的人工势场,该势场由目标点产生的引力场和由障碍物产生的斥力场叠加形成,生成人工势场后,使用梯度下降算法引导机器人向目标点移动。故该算法可以分为两个部分,即构建人工势场和利用人工势场进行运动规划。人工势场的构建包括引力势场和斥力势场的构建。引力势场主要是由规划的终点生成,具有吸引的特性,引导机器人向规划终点运动;斥力势场则由空间中的障碍物生成,具有排斥的特性,避免机器人与障碍物碰撞。势场常用势场函数构建,常见的引力势场有:
其中, 即为引力势场函数, 为缩放系数, 为规划终点的坐标, 为机器人当前坐标;
常见的斥力势场有:
其中 ,即为斥力势场函数, 为放缩系数,是一个特殊的函数,其会计算当
利用人工势场进行运动规划可使用梯度下降算法,由高等数学的知识 kezhi ,梯度方向是函数增长最快的方向,利用人工势场求解运动路径,只需从当前位置开始,沿着负梯度的方向不断前进,直至达到梯度为 0 的位置即可。
在 MATLAB 中使用 Robotic Tool Box 工具箱构建一个 600*600 的地图,使用上述的引力函数与斥力函数构建人工势场,设置绿色点位起点,黄色点为终点,红色连线即为 APF 算法规划的路径。
图 2-6 所示即为生成的人工势场,图 2-7 中的小箭头代表当前位置的梯度大小和方向,靠近障碍物位置的梯度呈现排斥的趋势,且越靠近障碍物排斥力越大;自由空中点的梯度指向终点,且越远离终点引力越大。人工势场法具有良好的实时性,对于实时性要求较高的场景能够有良好的表现,但存在陷入局部最优解的问题。