路径规划算法3.1 人工势场法APF

前言

人工势场法APF(Artificial Potential Field),是非场经典的寻路方法,常用于移动机器人的局部路径规划,其主要思想是通过目标的引力与障碍物的斥力共同引导机器人的移动。

电场与电势场

回顾电学中的正负电荷,同性电荷相斥,异性电荷相吸。如下图所示,黑色电荷位置固定。左边红色的正电荷一方面受到黑色正电荷的斥力,远离正电荷;另一方面受到负电荷的引力,靠近正电荷。

进一步,固定的黑色电荷在空间中形成了电场,场中的每个位置都存在电势。红色电荷受电场方向的力影响而运动,也就是向电势场的负梯度方向运动,势能下降。

在这里插入图片描述

人工势场

通过模仿电势场,我们制造了一个人工场,根据场景中的障碍物和目标点计算场景中每个位置的势能,然后让机器人沿着负梯度方向(势能下降的方向)前进,就能够到达目标点,如下图所示。
在这里插入图片描述
其中,峰值凸包表示障碍物及其附近,红色点线表示机器人移动的路径,路径的终点势能最低。

人工势场的构建

人工势场包括引力场(Attractive)和斥力场(Repulsive)两部分组成:
U ( q ) = U a t t r ( q ) + U r e p ( q ) U(q)=U_{attr}(q)+U_{rep}(q) U(q)=Uattr(q)+Urep(q)
引力场和斥力场可以自行设定,不过实际应用中通常需要遵守一定的设计准则。常用的引力场函数如下:
U a t t r ( q ) = { 1 2 λ d ( q , q g o a l ) 2 , d ( q , q g o a l ) ≤ d t h r e s λ d ( q , q g o a l ) d t h r e s − 1 2 λ d t h r e s 2 , d ( q , q g o a l ) > d t h r e s d ( q , q g o a l ) = ∣ ∣ q − q g o a l ∣ ∣ 2 U_{attr}(q)= \begin{cases} \frac{1}{2} \lambda d(q,q_{goal})^2, \quad \quad \quad \quad \quad \quad\quad d(q,q_{goal})\le d_{thres} \\ \lambda d(q,q_{goal})d_{thres} -\frac{1}{2}\lambda d_{thres}^2, \quad d(q,q_{goal})>d_{thres} \end{cases} \\ \quad \\ d(q,q_{goal})= ||q - q_{goal}||_2 \\ Uattr(q)={21λd(q,qgoal)2,d(q,qgoal)dthresλd(q,qgoal)dthres21λdthres2,d(q,qgoal)>dthresd(q,qgoal)=qqgoal2
其梯度可表示为:
∇ U a t t r = { λ ( q − q g o a l ) , d ( q , q g o a l ) ≤ d t h r e s λ d t h r e s ( q − q g o a l ) d ( q , q g o a l ) , d ( q , q g o a l ) > d t h r e s \nabla U_{attr} = \begin{cases} \lambda (q-q_{goal}), \quad d(q,q_{goal})\le d_{thres} \\ \frac{\lambda d_{thres}(q-q_{goal})}{d(q,q_{goal})} , \quad d(q,q_{goal})>d_{thres} \end{cases} \\ \quad \\ Uattr={λ(qqgoal),d(q,qgoal)dthresd(q,qgoal)λdthres(qqgoal),d(q,qgoal)>dthres
在这个引力场设计中,考虑了机器人位置与目标位置的距离阈值,当前距离小于阈值时,距离越远梯度越大,机器人受到的引力越大;当前距离大于阈值时,距离越大梯度越小,机器人受到的引力越小,这就能避免由于距离过大导致引力太大导致碰撞障碍物的问题。



斥力场函数可设计为:
U r e q ( q ) = { 1 2 μ ( 1 D ( q , q o b s t ) − 1 D t h r e s ) 2 , D ( q , q o b s t ) ≤ D t h r e s 0 , D ( q , q o b s t ) > D t h r e s D ( q , q o b s t ) = ∣ ∣ q − q o b s t ∣ ∣ 2 U_{req}(q)= \begin{cases} \frac{1}{2} \mu (\frac {1}{D(q, q_{obst})}-\frac{1}{D_{thres}})^2, \quad D(q,q_{obst})\le D_{thres} \\ 0, \quad \quad \quad \quad \quad \quad \quad \quad \quad D(q,q_{obst}) > D_{thres} \end{cases} \\ \quad \\ D(q,q_{obst}) = ||q-q_{obst}||_2\\ Ureq(q)={21μ(D(q,qobst)1Dthres1)2,D(q,qobst)Dthres0,D(q,qobst)>DthresD(q,qobst)=qqobst2
梯度为:
∇ U r e q = { − μ ( 1 D ( q , q o b s t ) − 1 D t h r e s ) ( 1 D ( q , q o b s t ) ) 2 ( q − q o b s t ) D ( q , q o b s t ) , D ( q , q o b s t ) ≤ D t h r e s 0 , D ( q , q o b s t ) > D t h r e s \nabla U_{req} = \begin{cases} -\mu (\frac {1}{D(q, q_{obst})}-\frac{1}{D_{thres}})(\frac{1}{D_(q,q_{obst})})^2 \frac{(q-q_{obst})}{D(q,q_{obst})}, \quad D(q,q_{obst})\le D_{thres} \\ 0, \quad \quad \quad \quad \quad \quad \quad \quad \quad D(q,q_{obst}) > D_{thres} \end{cases} \\ \quad \\ Ureq={μ(D(q,qobst)1Dthres1)(D(q,qobst)1)2D(q,qobst)(qqobst),D(q,qobst)Dthres0,D(q,qobst)>Dthres
当前位置距离障碍物位置越近,梯度越大,机器人受到的斥力越大;当前位置与障碍物位置大于阈值时,机器人不再受到该障碍物的斥力。

将引力场与斥力场叠加获得人工势场:
U ( q ) = U a t t r ( q ) + ∑ i = 1 n U r e q i ( q ) F ( q ) = − ∇ U ( q ) U(q)=U_{attr}(q)+\sum_{i=1}^n U_{req}^i(q) \\ F(q) = -\nabla U(q) U(q)=Uattr(q)+i=1nUreqi(q)F(q)=U(q)

梯度下降与局部最小问题

根据获得的人工势场,从起点开始,计算当前位置的梯度,向梯度的负方向前进,然后再次计算当前位置的梯度,再往梯度的负方向前进,直至到达终点。这就是通过梯度下降进行寻路的过程。

然而,我们知道,优化理论中的梯度下降法容易陷入局部最优解。相同地,路径规划也有容易陷入局部最优的缺点。

一个很简单的例子是,机器人的当前位置与障碍物,目标点共线,如下图所示。机器人将在直线上左右摇摆,无法到达终点。此时需要给机器人一个扰动,令其逃出局部最小。
在这里插入图片描述

后记

人工势场还有许多变种方法,后续有机会我还会对这些变种进行学习记录。

  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
人工势场法(Artificial Potential Field,简称APF)是一种在路径规划中常用的算法。其基本原理是将机器人或无人机等移动物体视为带电荷的粒子,通过电势场的理论来进行路径规划APF算法首先定义了一个目标点,即机器人的目标位置,然后将目标点设为正电荷,环境中的障碍物设为负电荷。随着机器人的移动,其周围会存在的电势场会受到这些电荷的影响。机器人会根据电势场的大小和方向来选择合适的方向进行移动。 具体来说,APF算法会计算每个位置的斥力和吸引力。斥力是由障碍物产生的,相当于推动机器人远离障碍物。吸引力是由目标点产生的,相当于吸引机器人朝目标点移动。通过斥力和吸引力的叠加,机器人可以找到一条避开障碍物,同时朝目标点靠近的路径。 在具体实现APF算法时,需要考虑一些问题。比如,如果机器人陷入局部最小值,即在一个较小的势能坑中无法继续前进,此时可能需要采取一些策略来使机器人能够绕过障碍物。另外,对于多个目标点的情况,需要对多个目标点的电势场进行叠加,然后再进行路径规划APF算法是一种简单而有效的路径规划方法,但也存在一些限制。比如,当机器人数量增加或者环境复杂度增加时,APF算法容易陷入局部最小值,导致无法找到最优解。此外,APF算法对环境中障碍物的准确模型要求较高,如果障碍物模型不准确,可能会导致规划出的路径不可行。 总的来说,APF算法通过电势场的概念进行路径规划,具有简单、高效的特点。在一些简单环境下,APF算法可以得到较好的路径规划结果。但在复杂环境下,可能需要结合其他算法或进行改进,以提高路径规划的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值