胡夢瑤
四川大學電子信息學院 四川 成都 610065
在不久的將來,為人們提供各種類型服務的成百上千架無人機將會共享同一空域,在這樣擁擠的空域中,需要進行集中式航跡規劃管理來確保所有的無人機可以避免碰撞沖突,從而實現安全飛行。因此,在密集城市空域環境下,無人機動態檢測避障機制將發揮巨大的作用,類比而言,無碰撞航跡規劃之于無人機使用等同于交通規則之于城市道路交通。因此,能夠在符合相關自動化UAV的法規的前提下,設計出一種可以在多無人機場景中實現完全無碰撞的航跡規劃是十分有意義和具有挑戰性的。
本文的研究目的就是實現在多無人機系統中的實時碰撞避免。當前,針對此領域的國內外避障技術有很多,如勢場法、進化算法、基于圖像的算法,在狀態空間中搜索幾何關系、力和速度的方法[1]。在本文中,則提出了一種去中心化機制的避障技術,是一種基于速度障礙法的改進算法,該算法通過避障機制使得陷入碰撞沖突的無人機偏離原有飛行航跡,并在無人機成功脫離碰撞沖突之后進行航跡恢復。仿真實驗表明,使用基于速度障礙法的改進RVO算法,可大大減少傳統算法的時空復雜度和計算成本,同時還有著不錯的運算效率。
設定某個移動智能體Agent表示符號為a,智能體a在t時刻的速度向量為則是智能體a的位置向量,則該智能體在運動空間中的狀態可以表示如下:

在分布式多智能體運動避碰問題中,每個智能體相對于其他智能體而言都是一個移動障礙物。因此,在建立速度障礙法計算模型時,我們有以下幾點假設和設定:
在進行碰撞沖突檢測和避免時,將智能體和障礙物簡化為具有一個半徑的圓形,這個半徑就是它們的安全半徑。并且為了方便計算,通過相對擴展障礙物的安全半徑,智能體則可以從一個圓形簡化為一個質點[2]。
通過相對速度的處理可以將移動障礙物轉換為靜止障礙物[3]。
在無人機避障算法中,第一個關鍵環節就是實時準確地檢測到是否會發生碰撞沖突,因此,本文首先研究的就是避障算法中的碰撞沖突檢測機制。首先,我們設定一組表示在任何給定時刻的無人機飛行狀態集合,表示如下:

其中,ai代表每個無人機的狀態向量,表示如下:

而在每個無人機狀態向量中有幾個分向量,數學公式如下:

其中,pi∈P是位置分向量,由三維空間坐標(px,py,pz)組成,pi∈P是速度分向量,由(xi,yi,zi)組成。另外,Rsafety是無人機的安全飛行區域半徑。并且,在這種機制中,我們假設所有的無人機都飛行于同一個高度,即我們所研究的是二維平面的動態避碰問題,也就是說zi和為一個常數向量。當無人機a1和a2的安全飛行區域出現交匯的時候就會產生碰撞沖突。本文中設定所有的無人機都是同一型號的無人機,具有一樣的安全區域半徑r,因此,上述發生碰撞沖突的條件可以用數學公式表示如下:

首先,設定一個全局坐標系OXY,無人機a1的位置向量為,速度向量為,同理,無人機a2的位置向量和速度向量分別為,。將無人機a2視作移動障礙物,根據無人機a1的安全半徑大小進行擴展,a2的安全半徑擴展為r0,這個時候就可以將無人機a1看作為一個質點。
我們所求的就是相對碰撞速度區域RCV,位于這個區域的速度是會導致無人機a1和a2發生碰撞的速度區域,無人機a1和無人機a2的相對速度為。
根據上面的理論分析,下面進行多無人機實時避障實驗設計,我們將無人機簡化為圓形圖標,設定為兩組共10架無人機和,每組5架分別置于場景的上下兩側。初始化無人機a0~a9的起飛坐標如下:

初始化無人機a0~a9的目的點坐標如下:

初始化無人機最大變化速度為1.0,運行時間設置為10s,迭代步長為0.01s?;谒俣日系K法的實時多無人機避障系統仿真結果表明,所有的無人機一開始朝向各自的目的地前進,然后發生交匯陷入碰撞沖突之中,解脫沖突并恢復航跡,最后都順利地抵達了各自的目的地[4]。

圖1 無人機集群解脫沖突后恢復航跡
本文提出了一種適用于多無人機動態避障的算法機制,解決了n個無人機在朝向目標點移動的過程中,對于其他智能體或者障礙物進行動態避碰,并搜尋最佳移動路徑的問題。相對于基礎VO算法而言,本文使用了改進的相對速度障礙法,用于改善下一時刻速度選擇的隨意性所導致的速度抖動現象,并降低了計算成本。仿真實驗驗證了該算法的有效性,數量眾多的無人機在短時間內可以有效地進行動態實時避障并成功抵達各自的目的地,提高了無人機的自主避障能力。