申 海, 于長敏, 林雨奇
(沈陽師范大學 物理科學與技術(shù)學院, 沈陽 110034)
隨著無人機技術(shù)的蓬勃發(fā)展,單架無人機已經(jīng)不能滿足軍用及民用的需求?;谏镄袨榈难芯坑楷F(xiàn)出眾多集群智能算法,由集群智能引發(fā)的無人機集群系統(tǒng)恰好可彌補該不足。無人機集群除了具有數(shù)量上的優(yōu)勢外,還具有成本低、靈活性好和魯棒性強等特點。目前,生物集群智能算法是無人機集群協(xié)同問題研究的新方法,此類方法在軍用及民用中具有廣泛應(yīng)用,因而受到了國內(nèi)外學者的廣泛關(guān)注[1-2]。
無人機集群協(xié)同飛行是無人機集群協(xié)同問題之一,要求多架無人機通過群體內(nèi)的協(xié)作,能夠?qū)崿F(xiàn)自主協(xié)同飛行。另外,由于飛行區(qū)域內(nèi)存在障礙物,還需要無人機集群躲避障礙物。因此,無人機集群協(xié)同飛行問題的研究應(yīng)包括協(xié)同飛行和協(xié)同避障2個子問題的研究。首先,本文介紹了集群智能及無人機集群的產(chǎn)生背景和目前研究情況;其次,介紹了可實現(xiàn)協(xié)同飛行的LFPSO(leader-follower-particle swarm optimization)算法,并進行了仿真測試,驗證了LFPSO算法可實現(xiàn)協(xié)同飛行,基于避障問題,設(shè)計了無人機協(xié)同避障算法;最后,將協(xié)同飛行LFPSO算法與協(xié)同避障算法相結(jié)合,形成了ALFPSO算法。仿真測試結(jié)果驗證了此算法的正確性和魯棒性。
集群智能(swarm intelligence,SI)的研究,源于1959年法國生物學家PierrePaul Grasse的研究。他發(fā)現(xiàn)昆蟲之間存在著簡單的溝通,但憑借這種簡單溝通,生物群體能夠完成一些復雜的任務(wù)[3-4],執(zhí)行任務(wù)的效率也遠遠超過單個個體的效率。這種利用單個個體間簡單的溝通協(xié)作從而完成復雜任務(wù)的行為就是生物集群智能的雛形,顯示出生物群體的集體智慧行為。通過對昆蟲間集體智慧行為的研究逐漸衍生出許多集群智能算法,如粒子群算法、蜂群算法和狼群算法等[5-7]。
從生物集群智能的研究獲得靈感,無人機集群技術(shù)應(yīng)運而生[8-10]。無人機技術(shù)向無人機集群技術(shù)的轉(zhuǎn)變,不僅是數(shù)量上的改變,更重要的是集群智能與無人機技術(shù)的結(jié)合。無人機與生物個體有許多共同點,比如都是單一智能個體,且執(zhí)行任務(wù)的效率遠不如群體帶來的優(yōu)勢。將集群智能引入到無人機技術(shù)中,能夠使無人機集群自主協(xié)同飛行,避免增加額外的地面操作和人工操作。因此,無人機集群成為現(xiàn)代戰(zhàn)爭的主要研究方向,可以以無人、自主和協(xié)同3個方面特征取得戰(zhàn)爭的優(yōu)勢[11]。
粒子群優(yōu)化算法(particle swarm optimization,PSO),也稱粒子群算法或鳥群覓食算法,是由Kennedy和Eberhart等[12]于1995年提出的一種生物啟發(fā)式算法。在粒子群算法中,粒子群中的每個粒子都可以看作鳥群中的鳥,且存在社會認知和個體認知,粒子尋找最優(yōu)解過程代表鳥群不斷覓食過程。在每次迭代過程中,粒子群里離食物源最近的粒子設(shè)定為全局最優(yōu)解,即社會認知;每個粒子曾飛行的歷史最優(yōu)位置為個體認知。每個迭代過程代表社會認知的個體并不是固定的。粒子通過當前位置、社會認知和個體認知的綜合決策后決定下一時刻的位置。粒子群算法是一種基于群體的隨機優(yōu)化算法,在解空間中較容易找到全局最優(yōu)解,因而被廣泛應(yīng)用。
無人機編隊是指無人機飛行過程中的隊伍形狀,此問題的研究源于無人機集群飛行中需要靈活地調(diào)整隊形以適應(yīng)不同任務(wù)不同環(huán)境的要求[13]。目前常用的無人機編隊方法有長機-僚機法、虛擬結(jié)構(gòu)法和行為法等。其中,長機-僚機可類比為大雁的飛行方式,由頭雁帶領(lǐng)其他大雁飛行。多架無人機飛行中,設(shè)置一架無人機為長機,其余無人機為僚機[14]。長機可以理解為管理者,負責任務(wù)的統(tǒng)籌;僚機屬于附屬者,主要任務(wù)是完成管理者的任務(wù),或配合管理者來完成任務(wù)。長機根據(jù)目標的識別情況或感知情況進行飛行,僚機通過調(diào)整自身的速度和偏航角等信息實現(xiàn)跟隨狀態(tài),從而達到保持編隊隊形的目的。由于此編隊方法較為成熟,易于實現(xiàn),因而本文采用此種方法實現(xiàn)無人機集群飛行的隊形保持。
本文將長機-僚機編隊方法與PSO算法相結(jié)合,設(shè)計了可實現(xiàn)無人機集群協(xié)同飛行的算法,即LFPSO算法。在LFPSO算法中,設(shè)定每個粒子僅有社會認知,沒有個體認知。社會認知代表全局最優(yōu)解,即長機-僚機編隊方法中的長機。長機和僚機均具有不同的位置信息和速度信息,長機運動具有隨機性,僚機跟隨長機飛行。無人機協(xié)同飛行相對運動如圖1所示。
圖1 無人機協(xié)同飛行相對運動Fig.1 Relative motion of UAV cooperative flight
如圖1所示,長機A在坐標系內(nèi)坐標為(xA,yA),速度大小為vA,航向角為φA。飛行過程中,長機航向角φA隨機變化,長機位置坐標不斷更新。僚機B在坐標系內(nèi)坐標為(xB,yB),速度為vB。長機運動模型如式(1)所示。
(1)
僚機跟隨長機運動,規(guī)定僚機B朝向長機A下一位置運動,引入僚機位置分量ratio,如式(2)所示。
(2)
式中:(xB,yB)為僚機B當前時刻位置坐標;vB為僚機B的速度。
通過僚機B位置分量計算其下一時刻位置,如式(3)所示。將式(2)代入式(3),得到式(4)所示的僚機B運動數(shù)學模型。
設(shè)定飛行區(qū)域為100×100,長機和僚機均在飛行區(qū)域內(nèi)進行飛行,要求不能越過邊界或與邊界發(fā)生碰撞。長機和僚機開始下一時刻飛行之前,通過計算當前位置與限定飛行區(qū)域邊界之間的距離是否小于速度×單位時間進行判斷。長機如即將越過邊界或與邊界碰撞,則長機速度調(diào)整為原來一半,并重復調(diào)整航向角,直至長機判斷出下一時刻不會越過邊界或與邊界不發(fā)生碰撞為止;如不能越過邊界或與邊界碰撞,則根據(jù)判斷后的最佳航向角完成下一時刻飛行。僚機計算與長機之間的位置分量ratio,通過ratio計算僚機下一時刻位置。僚機如不能越過邊界或與邊界碰撞,則完成下一時刻飛行;如即將越過邊界或與邊界碰撞,則在下一時刻暫停飛行,即保持當前位置和速度不變。由于長機位置不斷變化,因而僚機預(yù)估的下一時刻位置也在不斷變化,直至判斷不能越過邊界或與邊界發(fā)生碰撞為止。LFPSO算法具體流程如圖2所示。
圖2 無人機協(xié)同飛行算法流程圖Fig.2 Flow chart of UAV cooperative flight algorithm
為驗證本文提出的無人機集群協(xié)同飛行算法的有效性,本文選取1架長機和4架僚機進行仿真測試,測試結(jié)果如圖3所示。本文主要采用的計算機硬件CPU為AMD Ryzen 5 5600G,主內(nèi)存為16GB,操作系統(tǒng)為Windows 10,利用Matlab 2019軟件編寫程序并進行測試。飛行區(qū)域限定為100×100,長機和僚機位置均隨機產(chǎn)生。從圖3中可看出,本文設(shè)計的LFPSO算法能夠滿足在各個無人機初始位置不同的前提下,僚機不斷向長機方向進行飛行,最終完成與長機的匯集,同時也避免了在設(shè)定的飛行領(lǐng)域發(fā)生飛出范圍的情況。
圖3 1架長機與4架僚機協(xié)同飛行測試圖Fig.3 Cooperative flight test of 1 leader and 4 followers
無人機避障行為是指無人機在移動過程中感知到預(yù)定路線上所存在的障礙物時,為防止碰撞,通過算法計算避障路線,實時更新路徑,從而成功避開障礙物的一種行為模式[15]。無人機協(xié)同避障是指多個無人機飛行過程中,除了需要避開已有障礙物外,為防止無人機之間發(fā)生碰撞,還需要無人機之間進行避障。因此,無人機協(xié)同避障包括2個方面的問題,一方面是飛行路徑上的障礙物避障;另一方面是無人機之間進行避障。本文采用人工勢場法實現(xiàn)上述2個方面的避障。
人工勢場法(artificial potential field)是無人機避障研究中最為常見的一種方法,是由Khatib[16]于1986年提出的。此方法有著簡單實用、與工程結(jié)合緊密和實踐性強等諸多優(yōu)點。算法將物體運動區(qū)域視為勢力場,勢力場包括引力勢場和斥力勢場。引力勢場主要與距離成正比,距離越大,物體之間所受引力勢場的勢能值則越大;距離越小,物體之間所受引力勢場的勢能值則越小。引力勢場函數(shù)及相應(yīng)的負梯度函數(shù)如式(5)和式(6)所示。
式中:Fatt(X)為引力場負梯度;η為正比例增益系數(shù);ρ(q,qg)表示物體之間的距離,距離值為|q-qg|。
斥力勢場的勢能值大小同樣與物體間距離有關(guān), 在安全閾值ρ0范圍外, 勢能值為0; 反之, 勢能值與距離呈反比例函數(shù)。 斥力勢場的勢能值勢場函數(shù)及相應(yīng)的斥力場負梯度函數(shù)如式(7)和式(8)所示。
式中:Frep(X)為斥力場負梯度;k為負比例增益系數(shù);ρ0為常數(shù),表示物體之間的安全閾值;ρ(q,q0)表示物體當前位置與安全閾值間的距離,距離值為|q-q0|。
本文基于人工勢場法,設(shè)計了無人機集群協(xié)同避障算法。 設(shè)定無人機飛行區(qū)域為(0,0)至(100,100),飛行區(qū)域內(nèi)的障礙物周圍及每個無人機周圍都存在引力場和斥力場。 設(shè)定(100,0)為長機初始位置,(0,100)為長機目標位置。僚機初始位置在飛行區(qū)域內(nèi)隨機產(chǎn)生,飛行目標區(qū)域為x∈[0,10],y∈[90,100]組成的方形區(qū)域。 長機從初始位置出發(fā),在目標點的引力勢場作用下向目標位置飛行, 僚機則通過長機引力場作用向長機方向運動。 飛行過程中,長機和僚機均受障礙物斥力作用, 從而躲避障礙物。為保障無人機之間不碰撞,無人機之間也存在斥力場。 無人機在勢力場的作用下飛行示意圖如圖4所示。
圖4 無人機在力的作用下飛行示意圖Fig.4 UAV flight diagram under the action of force
長機所受的合力為受目標點的引力,由僚機間的斥力及與障礙物間的斥力組成,如式(9)所示。 僚機所受的合力為受長機的引力和斥力, 由其他僚機間的斥力及與障礙物間的斥力組成, 如式(10)所示。
式中:FZ為長機所受的合力;Fatt(G)為長機受目標點的引力;Frep(L)為長機與僚機間的斥力;Frep(obs)表示長機與障礙物間的斥力;FL為單架僚機所受到的合力;Fatt(Z)為僚機受長機的引力;Frep(Z)為僚機與長機間的斥力;Frep(Li)為僚機與其他僚機之間的斥力;Frep(obs)表示僚機與障礙物之間的斥力。各項引力值和斥力值的計算方法采用式(6)和式(8)進行計算。
協(xié)同避障算法具體實現(xiàn)步驟如下:
Step 1 確立無人機的飛行區(qū)域范圍,并設(shè)置長機、僚機和障礙物的相關(guān)信息。
Step 2 長機向目標點運動。在運動過程中,計算長機與目標點的引力,與障礙物間及與其他僚機間的斥力。將長機所受的引力與斥力進行矢量疊加,并在合力的作用下運動。
Step 3 僚機向長機方向運動。在運動過程中,僚機計算與長機之間的引力和斥力、與障礙物間的斥力,以及與其他僚機間的斥力。將僚機所受的引力與斥力進行矢量疊加,并在合力的作用下向長機周圍運動。
Step 4 判斷長機是否到達目標點,若長機未到達目標點,則重復Step 2;若長機到達目標點,則長機停止飛行。判斷僚機是否到達飛行目標區(qū)域,若到達,則僚機停止飛行;若未到達,則繼續(xù)重復Step 3,直至到達飛行目標區(qū)。
算法流程如圖5所示。
圖5 無人機協(xié)同避障算法流程圖Fig.5 Flow chart of UAV cooperative obstacle avoidance algorithm
本文將提出的協(xié)同飛行算法和協(xié)同避障算法相結(jié)合,形成無人機集群協(xié)同飛行避障算法,即ALFPSO算法。為測試ALFPSO算法的有效性,選取1架長機和4架僚機進行仿真測試,測試結(jié)果如圖6所示。測試采用的計算機硬件CPU為AMD Ryzen 5 5600G,主內(nèi)存為16GB,操作系統(tǒng)為Windows 10,利用Matlab 2019軟件編寫程序并進行測試。
如圖6所示,圖6(a)至圖6(d)各子圖中的左圖均為無人機集群運動軌跡圖,右圖均為各無人機位置分布圖。圖6(a)為飛行起始圖,長機在(100,0)位置,僚機位置隨機產(chǎn)生;圖6(d)為飛行結(jié)束圖,長機到達(0,100)位置,僚機跟隨;圖6(b)和圖6(c)分別表示長機從起點到達目標點期間,長機和僚機協(xié)同飛行及避障情況。通過各子圖的左圖可觀測出,長機從初始位置出發(fā),最終到達目標位置。僚機跟隨長機飛行,最終所有僚機均順利到達飛行目標區(qū)域,實現(xiàn)了無人機集群協(xié)同飛行。通過各子圖的右圖可觀測出,無人機集群飛行過程中,無人機之間不發(fā)生碰撞,且長機和僚機都能夠?qū)︼w行路徑上的障礙物進行有效避障,從而滿足無人機集群飛行的協(xié)同避障要求。
圖6 1架長機和4架僚機協(xié)同飛行及避障仿真測試圖Fig.6 Cooperative flight and obstacle avoidance test of 1 leader and 4 followers
本文主要對無人機集群協(xié)同飛行避障問題進行討論,并提出了可實現(xiàn)協(xié)同飛行且避障的ALFPSO算法。ALFPSO算法中,由長機-僚機編隊方法和粒子群算法相結(jié)合的LFPSO算法實現(xiàn)了協(xié)同飛行功能;基于人工勢場法設(shè)計的無人機協(xié)同避障方法實現(xiàn)了協(xié)同避障功能。通過仿真測試可看出,在靜態(tài)飛行區(qū)域和已知障礙物環(huán)境下,本文設(shè)計的ALFPSO算法能有效實現(xiàn)由1架長機和4架僚機組成的無人機集群,在設(shè)定的飛行區(qū)域內(nèi),自主協(xié)同飛行且自動規(guī)避障礙物,并順利到達飛行目標點。因此,該算法具有正確性與魯棒性。在實際的無人機飛行過程中,飛行環(huán)境是不可預(yù)知的,障礙物可隨時出現(xiàn)在飛行區(qū)域內(nèi),下一階段可對動態(tài)飛行環(huán)境的協(xié)同飛行避障問題進行深入研究。