馬梓元, 龔華軍
(南京航空航天大學 自動化學院,南京 211100)
群體無人機在通信覆蓋[1]、災難救援[2]、軍事行動[3]等領域具有重要的應用前景。與單體無人機相比,群體無人機具有故障容錯性、任務并行性、功能分布性等優勢,從而能夠支持更為復雜的任務,具有重要的研究價值。無人機群導航是指根據目標的位置、速度等信息,控制無人機群運動到目標區域的過程,是無人機群執行各種復雜任務的基礎和前提,也是機器人領域亟待解決的核心問題。
無人機群的導航策略包括集中式控制和分布式控制兩大類。集中式控制便于數學分析,相比分布式控制具備更豐富的理論研究基礎,但在實際的大規模、大范圍應用場景中,無人機之間的相互通信高度受限,群體的全局信息獲取十分困難,集中式控制面臨嚴重的單點失效和網絡擁塞問題而不具有實用性和可擴展性。因此,無人機群的分布式導引控制研究具有重要的理論意義和實際意義[4]。
分布式的群體編隊導航控制是當前群體機器人研究的難點問題。文獻[5]采用領航跟隨法實現多機器人便對控制,該方法結合了領航跟隨法控制簡單、編隊快速和星系動力學法編隊穩定和動態均衡的優點,實現了機器人快速編隊和動態避障的性能要求。基于虛擬結構的編隊控制方法的主要原理是把編隊結構看作是虛擬的剛體結構,其中,實際中的每個機器人都對應一個虛擬剛體結構中的頂點。虛擬結構的頂點即代表著機器人在編隊中期望的相對位置。算法的目標在于設計一個控制方法,以使得所有機器人向指定方向運動,同時盡可能保持完美的編隊,即保持其頂點位置構成的剛體虛擬結構始終維持不變[6-8]。文獻[9]中采用了虛擬機器人與人工勢場法相結合的方法,實現了多水下機器人的編隊控制。基于行為的控制方法由一系列的行為構成,不同的行為對應不同的目標,例如避免碰撞、保持距離、向目標移動等等,控制方法設計的核心是對行為的定義以及行為之間的協調機制,這類方法的優點是設計較為簡單,能夠兼顧各種行為,缺點是難以進行穩定性分析等理論分析,在復雜環境中,機器人的行為具有不可知性[10-11]。多機器人的編隊既包括拓撲結構固定的編隊,也包括拓撲結構可變的編隊。蜂群編隊是拓撲結構可變編隊的典型實例,蜂群編隊的機器人并不保持特定的拓撲結構,其拓撲結構是可變的,但該拓撲結構對應的圖應是連通的,并且機器人之間互相保持特定的期望距離,該方法具有較好的應用效果。上述相關研究主要集中在分布式的群體編隊,卻沒有同時研究導航整個群體時所需要考慮的群體機動性。此外,多數理論研究工作僅開展了模擬仿真實驗,而沒有進行基于無人機實物的實際驗證,缺乏實驗驗證無法保證方法的有效性,因此仍需尋找更好的方法。
人工勢場法在多機器人的蜂群編隊控制中有廣泛的應用[12-13]。通過在機器人之間引入人工勢場,使得當機器人之間的距離大于期望值時二者產生引力,小于期望值時二者產生斥力,從而使得機器人之間保持期望的距離。人工勢場法現在廣泛應用于無人機路徑規劃、避障等方面[14-15],并且和模糊控制法等其他方法相結合。本文針對大規模、大范圍的復雜應用場景環境,研究無人機群的分布式導航的關鍵技術與系統實現,提出一套新的完整的無人機分布式導航方法,通過在三維仿真平臺的無人機實驗,驗證了本方法的有效性。
為了實現無人機群體的分布式導航,本文首先將無人機群體看作一個整體,進行路徑規劃;然后基于文獻[16]中的分布式群集控制算法,實現無人機的分布式編隊控制;最后通過編隊控制方法與規劃路徑的結合,實現無人機的分布式導航。

圖1 路徑規劃算法流程圖
為無人機群體進行路徑規劃時,首先要有飛行場地的地圖,基于飛行場地地圖對無人機的路徑進行規劃等相關工作。在開源機器人操作系統ROS中,地圖信息由二維柵格地圖進行表示,整個地圖被等分為若干柵格,地圖的分辨率參數決定了該地圖中每個柵格的長度和寬度,每個柵格由一個狀態值描述,代表該柵格對應的區域可通行、不可同行或是信息未知。對于高分辨率的地圖,其柵格面積較小,數量較多,因而能夠更精確地表示地圖的可通行信息,但存在計算量大的問題;低分辨率的地圖則計算量較小,但對地圖的描述不如高分辨率地圖精確,因此地圖的選擇對于路徑規劃的影響較大。為有效解決這一問題,以所有柵格作為頂點,連接所有相鄰的可通行柵格,即可將二維柵格表示的地圖轉化為圖的表示。
本文將群體看作一個整體進行規劃,以無人機群的中心位置所在柵格作為路徑規劃的起點,以導航的目標點所在柵格作為路徑規劃的目標點,即可通過A*算法等圖搜索算法求得群體的最短路徑,其流程如圖1所示。路徑規劃結果即圖中兩兩相連的頂點構成的路徑,可以再一一對應到地圖的柵格。
在ROS的單體機器人路徑規劃中,為了確保機器人能夠通過所規劃出的路徑,通常會在進行路徑規劃時設置機器人的半徑參數r,將不可通過柵格(即障礙物)周圍范圍r的可通過柵格也認為是不可通過的,從而確保實際規劃出的路徑有足夠空間供機器人通過。在為群體進行規劃時,本文也引入了這種方法,根據群體的預估半徑設置參數r,從而確保規劃出的路徑能夠供整個無人機群體通過。
文獻[4]提出了一種針對多智能體系統的分布式群集控制方法,其中每個個體能夠感知周圍范圍R內的相鄰個體的位置和速度以向量q和向量p分別表示所有個體的位置和速度,則個體i的鄰居集合為:
Ni={j:||qj-qi|| (1) 通過鄰居的位置和速度信息以及個體自身的位置和速度,該控制方法即可計算出個體的加速度并據此調整個體的速度。作者證明了通過該控制方法,所有個體能夠漸進地收斂成一個群,具有相同的速度并且能夠互相保持一定的間距。該控制方法如公式所示。 (2) 其中:ui代表個體i的加速度,是控制算法的輸出,它由三項相加所得,三項的具體信息如公式所示。 fiγ= -c1(qi-qr)-c2(pi-pr) (3) 文獻[5]將第一項稱為梯度項,通過人工勢場法控制個體i與所有鄰居的距離:當距離小于給定值時,這一項表現為斥力,當距離大于給定值時,這一項表現為引力,當距離等于給定值時,這一項為0。第二項被稱為一致項,通過一致性算法與相鄰個體的速度保持一致。第三項被稱為導航項,代表群體集結的目標,這里群體集結的目標被抽象為一個虛擬的領航者,具有位置qr和速度pr,是整個群體預先知道的共識信息。 通過在每架無人機上運行該控制算法,就能夠使無人機在群體目標處群集,形成“蜂群”編隊,即整個群中的無人機之間將保持特定的距離,同時以目標速度運行,最終是實現無人機群的整體編隊控制。 通過1.1節和1.2節,已經能夠為整個無人機群體進行路徑規劃,并且群體能夠分布式自組織形成編隊,為了實現無人機群體的導航,還要使無人機編隊沿著規劃的路徑進行運動。本文首先將路徑規劃結果中的每個路徑點轉化為具有位置和速度信息的虛擬領航者的序列L1,L2……Ln,其中n為路徑點的總數,然后將1.2節中無人機群集控制第三項中的虛擬領航者替換為該序列,從而實現無人機群體的分布式導航。 每個路徑點對應的領航者的位置即是其對應柵格的中心點在地圖中的位置,除最后一點即目標點對應的領航者速度為0外,其他路徑點對應領航者的速度大小v可作為參數根據實際導航的需要進行設定,其速度方向指向下一個路徑點,如公式所示。 (4) 當無人機起飛后,每架飛機即開始運行如2.2節所述的分布式編隊控制算法,整個群體的初始虛擬領航者是虛擬領航者序列的第一個,即由路徑起點對應的虛擬領航者,其速度方向朝向路徑上第二點對應的虛擬領航者,該虛擬領航者以速度大小v進行運動。當該虛擬領航者抵達下一個路徑點對應虛擬領航者的位置時,虛擬領航者就更換為下一個路徑點對應的虛擬領航者,直到抵達最后的虛擬領航者,即路徑終點對應的虛擬領航者,導航結束,整個流程如圖2所示。 圖2 無人機群導航迭代流程圖 利用MATLAB軟件,可以構建理想的仿真環境進行無人機編隊導航的驗證。由于四旋翼無人機可以垂直起降,本文研究的重點是編隊與導航方法,本文將四旋翼無人機看作二維空間的質點模型,即每架無人機用一個二維平面的質點表示,具有的屬性包括位置、速度和加速度,如公式所示。 (5) 其中:q代表無人機的位置向量,p代表無人機的速度向量,u代表無人機的加速度向量,這樣,無人機的運動學模型就被建模為二階積分模型。 仿真模擬按照時間步進行,每個時間步的長度使0.01秒。在每個時間步中,根據控制算法計算出的無人機的加速度,對無人機的速度進行更新,而后再根據速度更新無人機的位置,最后根據無人機的位置畫出圓圈即可表示無人機,畫出箭頭即可可視化無人機的速度大小。 Gazebo是支持開源機器人操作系統ROS的三維機器人仿真器,通過內置的物理引擎對機器人的運動學進行仿真,同時進行包括碰撞檢測與響應在內的各種物理過程計算,仿真實驗效果貼近真實場景,是ROS開源社區使用的主流三維仿真器,提供了多種環境模型和機器人模型,并且支持通過插件的方式開發新的模型。 本文選取的無人機模型來自于ROS開源軟件包hector_quadrotor,實驗過程中僅在起飛時發送豎直方向速度指令,開始編隊導航后僅發送水平面的速度指令。該無人機模型以水平面的兩個正交的平移速度為控制輸入,本文為每一架飛機運行一個進程,按照0.1秒的時間步迭代執行控制算法,計算出加速度后按照時間步計算出相應速度指令,發送消息控制各自對應的無人機模型。 為了驗證所提出的導航方法的有效性,本文首先在MATLAB中進行了理想情況下的二維仿真實驗,隨機初始化50架無人機,如圖3所示。其中,圓圈代表無人機,紅色的箭頭代表無人機的當前速度,連接無人機的黑色邊代表對應的兩架無人機在通信范圍之內。 圖3 MATLAB仿真實驗初始設置 在實驗過程中,整個群體的規劃路徑如圖4(a)中的黑色粗線所示,50架無人機的運動軌跡如如圖4(a)中紅色軌跡所示,實驗過程中的群體編隊行動過程如圖4(b)至4(d)所示。 圖4 MATLAB仿真實驗結果 如圖4所示,實驗結果表明,無人機群體能夠根據2.2節所述的控制方法形成規則的編隊,與此同時整個群體能夠沿規劃的路徑進行運動,實現了導航的目標,仿真結果驗證了該方法的有效性。 為了進一步驗證本文提出方法的實用性,本文在Gazebo仿真器中設置了實驗場景,針對20架四旋翼無人機開展導航實驗,其場景如圖5所示,整個場地時邊長為150米的正方形。 圖5 四旋翼無人機仿真實驗場景 20架四旋翼無人機被隨機初始化在一排建筑物的左側,設置的導航的目標是讓四旋翼無人機群形成規則的編隊飛往建筑物的右側,利用本文提出的方法進行導航控制,導航實驗結果如圖6所示,20架四旋翼無人機準確按照既定目標準確飛往了建筑物的右側。 圖6 四旋翼無人機仿真實驗結果 在Gazebo中,通過物理引擎仿真四旋翼無人機的運動,其速度控制器和傳感器都是非理想、有誤差的,實驗結果表明,本文提出的無人機群體導航方法在這種非理想條件下,仍然能夠控制無人機群導航到目標點,驗證了本文所提出導航方法的實用性和有效性。 本文考慮現實任務場景中通信受限的實際情況,在無人機之間僅進行局部通信的前提下,設計并實現了一套無人機群的編隊與導航方法。首先基于開源機器人操作系統ROS實現了對無人機群的路徑規劃,然后將路徑規劃與一種多智能體系統群集的控制方法相結合,從而使無人機能夠僅僅依據局部的鄰域信息,一邊形成蜂群編隊一邊導航到目標位置。最后,通過在MATLAB的二維理想化環境和Gazebo三維機器人仿真器環境中進行仿真實驗,驗證了所提出方法的有效性,實現了無人機群的編隊與導航。但是,目前的方法尚未考慮動態的障礙物躲避和路徑的重規劃等問題,解決這些問題是下一步研究的內容。1.3 無人機群體分布式導航

2 實驗平臺搭建
2.1 二維仿真平臺

2.2 三維機器人仿真平臺
3 實驗驗證
3.1 二維仿真實驗


3.2 四旋翼無人機仿真實驗


4 結束語