新闻动态

11(0)-AirSim+四旋翼仿真-人工势场法避障_airsim避障_k

发布日期:2025-05-21 17:45 点击次数:83
1.基本原理

人工势场法的基本原理为,根据地图内障碍物、目标点等的分布,构造一个人工势场,无人机由势能较高的位置向势能较低的位置移动。就好比是一个电场,电场内不同位置的电势能不同,对带电物体产生的力也不同,但这个力对物体运动的影响一定是由高势能到低势能的。只不过电场内的势能是物理上定义的,而人工势场的势能是根据我们的需求自己定义的。只需要定义合适的势函数,使得障碍物附近的势能大、目标点附近的势能小,就可以引导无人机飞往目标点而原理障碍物。这种方法不依赖于全局的障碍物信息,可以实现局部范围内的障碍物检测+避障。

这里使用常见的势函数定义,在python实现避障仿真,并参考文献[^1]中方法,针对人工势场法可能出现的局部极小值等问题进行改进。

2.势函数和势场

在单机飞行的避障中,对无人机产生影响的因素有障碍物和目标点,如果是多机编队还需考虑机间的影响。这里只考虑障碍物产生的斥力场和目标点产生的引力场。

常见的斥力势函数为 U r e p ( P ) = { 1 2 η ( 1 d ( P , P o b ) − 1 Q ) 2 , i f d ( P , P o b ) ≤ Q 0 , i f d ( P , P o b ) > Q U_{rep}(P)= \left\{

12η(1d(P,Pob)−1Q)2,ifd(P,Pob)≤Q0,ifd(P,Pob)>Q" role="presentation" style="position: relative;">12η(1d(P,Pob)−1Q)2,ifd(P,Pob)≤Q0,ifd(P,Pob)>Q12η(1d(P,Pob)−1Q)2,ifd(P,Pob)≤Q0,ifd(P,Pob)>Q\right. Urep​(P)=⎩ ⎨ ⎧​21​η(d(P,Pob​)1​−Q1​)2,ifd(P,Pob​)≤Q0,ifd(P,Pob​)>Q​ 其中 P P P为无人机当前坐标, P o b P_{ob} Pob​为被计算势函数的障碍物坐标; Q Q Q为障碍物作用范围,该范围外的障碍物不会对无人机飞行产生影响; η \eta η为比例系数。

常见的引力势函数为 U a t t ( P ) = 1 2 ξ d 2 ( P , P g o a l ) U_{att}(P)=\frac{1}{2}\xi d^2(P,P_{goal}) Uatt​(P)=21​ξd2(P,Pgoal​) 其中 P P P为无人机当前坐标, P g o a l P_{goal} Pgoal​为目标点坐标, ξ \xi ξ为比例系数。

在以上势函数的定义下,物体距离目标点越近,目标点产生的引力势越小;物体距离障碍物越近,障碍物产生的引力势越大。物体向势较小的位置移动,故能接近目标点而远离障碍物。

得到势场内势的分布后,可以通过两种方法引导无人机飞行。一种为计算无人机周边位置的势,以势能最小的位置作为下一位置,由于只使用位置控制而不考虑速度和加速度,故在复杂场景下使用这种方法,得到的仿真轨迹不平滑。

另一种方法为对势能计算负梯度得到下降方向,以该方向作为加速度的方向,通过加速度-速度-位置的方法实现控制。具体计算方法为

F a t t = − ∇ U a t t ( P ) = − ξ ( P − P g o a l ) F r e p i = − ∇ U r e p ( P ) = { η ( 1 d ( P , P o b ) − 1 Q ) ⋅ 1 d ( P , P o b ) 3 ⋅ ( P − P o b ) , i f d ( P , P o b ) ≤ Q 0 , i f d ( P , P o b ) > Q F r e p = ∑ i F e q p i

Fatt=−∇Uatt(P)=−ξ(P−Pgoal)Frepi=−∇Urep(P)={η(1d(P,Pob)−1Q)·1d(P,Pob)3·(P−Pob),ifd(P,Pob)≤Q0,ifd(P,Pob)>QFrep=∑iFeqpi" role="presentation" style="position: relative;">FattFirepFrep=−∇Uatt(P)=−ξ(P−Pgoal)=−∇Urep(P)=⎧⎩⎨⎪⎪η(1d(P,Pob)−1Q)⋅1d(P,Pob)3⋅(P−Pob),ifd(P,Pob)≤Q0,ifd(P,Pob)>Q=∑iFieqpFatt=−∇Uatt(P)=−ξ(P−Pgoal)Frepi=−∇Urep(P)={η(1d(P,Pob)−1Q)·1d(P,Pob)3·(P−Pob),ifd(P,Pob)≤Q0,ifd(P,Pob)>QFrep=∑iFeqpi Fatt​Frepi​Frep​​=−∇Uatt​(P)=−ξ(P−Pgoal​)=−∇Urep​(P)=⎩ ⎨ ⎧​η(d(P,Pob​)1​−Q1​)⋅d(P,Pob​)31​⋅(P−Pob​),ifd(P,Pob​)≤Q0,ifd(P,Pob​)>Q​=i∑​Feqpi​​​ 3.方法改进

如果仅使用以上的方法,笔者遇到的主要问题有:

局部极小值,这是梯度下降算法中的一个常见问题。某一位置处势能低于其周边所有点,但是它并不是目标点,就好比是一个小球自上而下滚落,途中落入一个小坑,如下图所示(图片来源[^2])。由于物体移动的趋势为向势能更低处,所以此时它无论如何是无法离开这个极小值点的。

图片

或者是如下图所示的情况,障碍物产生的斥力和目标点产生的引力方向相反,

图片

物体没有纵向的力,无法越过障碍物。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b5jM8Ghv-1658911680145)(https://cdn.jsdelivr.net/gh/kun-k/blogweb/imageimage-20220715112653149.png)]

目标点与障碍物过于接近时,物体总是无法到达。由于障碍物存在斥力,目标点存在引力,如果此时斥力大于引力,则物体只能在目标点附近徘徊。如果设置参数、调小引力,则可能导致物体在移动过程中与障碍物过近或撞上障碍物。

目标点产生的势与距离正相关,物体距离目标点很远时,引力远大于斥力,导致斥力相对小、避障效果差。

接下来针对以上3个问题设计解决方案。

针对局部极小值问题,首先需对是否陷入局部极小进行检测,方法为在时间 t t t内计算物体的位移,如果该位移小于某一阈值,则认为陷入局部极小值。论文[^1]中提出的方法为,计算时间 t t t内物体相对目标点的位移 V r a = Δ X t = ∣ ∣ P 0 − P G ∣ ∣ − ∣ ∣ P 1 − P G ∣ ∣ t V_{ra}=\frac{\Delta X}{t}=\frac{

欧尚体育商城位置在哪介绍 产品展示 新闻动态
电话:
邮箱:
地址:
欧尚体育商城位置在哪

Powered by 欧尚体育商城位置在哪 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024