【路径规划】局部路径规划算法——人工势场法(含python实现)

Python119
  • 1986 年 Khatib 首先提出人工势场法,并将其应用在机器人避障领域, 而现代汽车可以看作是一个高速行驶的机器人,所以该方法也可应用于汽车的避障路径规划领域。

  • 人工势场法的基本思想是在障碍物周围构建障碍物 斥力势场,在目标点周围构建 引力势场,类似于物理学中的电磁场

  • 被控对象在这两种势场组成的复合场中受到斥力作用和引力作用, 斥力和引力的合力指引着被控对象的运动,搜索无碰的避障路径。
  • 更直观而言, 势场法是将障碍物比作是平原上具有高势能值的山峰, 而目标点则是具有低势能值的低谷。

2.1 引力势场

引力势场主要与汽车和目标点间的距离有关, 距离越大, 汽车所受的势能值就越大; 距离越小, 汽车所受的势能值则越小, 所以引力势场的函数为:
U a t t ( q ) = 1 2 η ρ 2 ( q , q g ) (1) \tag{1} U_{a t t}(q)=\frac{1}{2} \eta \rho^{2}\left(q, q_{g}\right)U a t t ​(q )=2 1 ​ηρ2 (q ,q g ​)(1 )
其中 η \eta η 为正比例增益系数, ρ ( q , q g ) \rho\left(q, q_{g}\right)ρ(q ,q g ​) 为一个 矢量, 表示汽车的位置 q q q 和目标点位置 q g q_{g}q g ​ 之间的欧式距离 ∣ q − q g ∣ \left|q-q_{g}\right|∣q −q g ​∣, 矢量方向是从汽车的位置指向目标点位置。

相应的引力 F att ( q ) F_{\text {att }}(q)F att ​(q ) 为引力场的负梯度,代表引力势场函数U a t t ( q ) U_{att}(q)U a t t ​(q )的变化最快方向。
F a t t ( q ) = − ∇ U a t t ( q ) = − η ρ ( q , q g ) (2) \tag{2} F_{a t t}(q)=-\nabla U_{a t t}(q)=-\eta \rho\left(q, q_{g}\right)F a t t ​(q )=−∇U a t t ​(q )=−ηρ(q ,q g ​)(2 )

2.2 斥力势场

  • 决定障碍物斥力势场的因素是汽车与障碍物间的距离, 当汽车未进入障碍物的影响范围时, 其受到的势能值为零; 在汽车进入障碍物的影响范围后, 两者之间的距离越大, 汽车受到的势能值就越小, 距离越小, 汽车受到的势能值就越大。
  • 斥力势场的势场函数为:
    U r e q ( q ) = { 1 2 k ( 1 ρ ( q , q 0 ) − 1 ρ 0 ) 2 , 0 ≤ ρ ( q , q 0 ) ≤ ρ 0 0 , ρ ( q , q 0 ) ≥ ρ 0 (3) \tag{3} U_{r e q}(q)=\left{\begin{array}{lc} \frac{1}{2} k\left(\frac{1}{\rho\left(q, q_{0}\right)}-\frac{1}{\rho_{0}}\right)^{2} ,& 0 \leq \rho\left(q, q_{0}\right) \leq \rho_{0} \ 0 ,& \rho\left(q, q_{0}\right) \geq \rho_{0} \end{array}\right.U r e q ​(q )={2 1 ​k (ρ(q ,q 0 ​)1 ​−ρ0 ​1 ​)2 ,0 ,​0 ≤ρ(q ,q 0 ​)≤ρ0 ​ρ(q ,q 0 ​)≥ρ0 ​​(3 ) 其中 k k k 为正比例系数, ρ ( q , q 0 ) \rho\left(q, q_{0}\right)ρ(q ,q 0 ​) 为一矢量, 方向为从障碍物指向汽车, 大小为汽车与障碍物间的欧式距离 ∣ q − q 0 ∣ , ρ 0 \left|q-q_{0}\right|, \rho_{0}∣q −q 0 ​∣,ρ0 ​ 为一常数, 表示障碍物对汽车产生作用的最大影响范围。 由公式(3)可知,斥力势场不同于引力势场,智能汽车不总是受到障碍对它的斥力作用。当汽车与障碍物之间的相对距离超过ρ 0 \rho_{0}ρ0 ​时,就判定此障碍对汽车不再有影响作用。当汽车进入障碍物的影响范围之后,即汽车与障碍的相对距离小于ρ 0 \rho_{0}ρ0 ​时,汽车开始受到障碍物的斥力影响。汽车与障碍物的相对距离越小,斥力影响越大,自身势能升高。汽车与障碍物的相对距离越大,斥力影响越小,自身势能降低。
输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长