陳麒杰,晉玉強,王陶昱
(海軍航空大學(xué),煙臺 264001)
隨著世界科學(xué)技術(shù)的發(fā)展和應(yīng)用,無人機的性能發(fā)展越來越全面[1]。近年來,無人機不論在軍事還是民用領(lǐng)域都發(fā)揮著越來越重要的作用,發(fā)展?jié)撃芤仓饾u被挖掘[2],具有自主執(zhí)行任務(wù)能力的無人機是未來發(fā)展的必然趨勢。路徑規(guī)劃則是保證無人機自主飛行,提高生存能力和安全指標(biāo)的關(guān)鍵技術(shù)[3]。
無人機路徑規(guī)劃是綜合考慮無人機在有障礙物或者威脅環(huán)境中,以一定的控制算法,尋找一條從起始位置到達目標(biāo)位置的無碰撞路徑,綜合考慮了障礙目標(biāo)導(dǎo)引[4]。近年來,國內(nèi)外的眾多學(xué)者對路徑規(guī)劃問題做了大量的研究,并提出了許多可行的算法,如隨機路圖法(Probabilistic Road Maps,PRM)、A*算法、快速擴展隨機樹法(Rapidly Exploring Random Tree,RRT)以及他們的改進算法,到遺傳算法等智能算法[6],再到蟻群算法[7]、鴿群算法[8]、魚群算法[9]等生物仿真算法。以上的各類算法在進行單機避障路徑計算時,都有較好的避障性能,但進行多機協(xié)同避障時,計算量會成幾何倍數(shù)增長,實時控制性不夠好,最終導(dǎo)致避障失敗。
無人機單機執(zhí)行任務(wù)時,生存率低,完成任務(wù)失敗率高,偵察效率低,因此無人機機群控制成為必然。目前,無人機機群控制多基于長機-僚機[10]的主從關(guān)系控制,在一定程度上解決了無人機機群協(xié)同控制問題,但此方法降低了每一架無人機的靈活度,限制了其中個體無人機的性能發(fā)揮。本文基于改進的人工勢場[11],提出了一種適合于無人機群的控制方法,該方法中,重新定義的斥力函數(shù)作為障礙物對無人機的斥力,解決了無人機因為目標(biāo)點附近障礙物斥力較大無法到達目標(biāo)點的問題; 新增加了前置形心的概念,前置形心對無人機之間有相應(yīng)的引力,解決了無人機陷入局部極小值的問題。
人工勢場法最初是由Khatib[12]提出的一種解決路徑規(guī)劃問題的方法。路徑規(guī)劃的方法是將機器人在環(huán)境中的運功,設(shè)計成為一種抽象的人造引力場中的運動,目標(biāo)點對無人機的移動提供引力[13],障礙物對移動的無人機提供斥力,最后通過求合力以達到控制無人機避障的目的[14]。該方法優(yōu)點在于規(guī)劃的路徑較為光滑,避免了大角度的轉(zhuǎn)彎造成無人機失速引起的危險;缺點一是容易陷入極小值點[15],二是在離目標(biāo)點較近,且目標(biāo)點周圍有較大障礙物時,障礙物斥力大于目標(biāo)引力,無人機不能到達目標(biāo)點。
為了解決人工勢場法存在的缺陷,本文定義了一個新的引力源,即前置形心(如圖1所示)。前置形心為無人機機群形心位置向目標(biāo)點方向固定步長的點,在無人機前方無障礙物,目標(biāo)引力和障礙物斥力相等時,以前置形心作為無人機群的另一引力源,引力源對無人有機引力作用,打破了無人機的受力平衡,使無人機向目標(biāo)點方向機動。
圖1 前置形心示意圖Fig.1 Pre-centroid diagram
目標(biāo)點對該前置點的引力Fat歸一化后的方向作為前置形心前進的目標(biāo)方向,即
(1)
前置形心的計算公式為
(2)
目標(biāo)對無人機的引力場,目的在于導(dǎo)引無人機向目標(biāo)點飛行,定義目標(biāo)引力場為
(3)
其中,Ka是引力增益常數(shù);Pa是單位向量,方向由無人機指向目標(biāo)點;ρgoal為無人機距離目標(biāo)的距離;ρmax為設(shè)定的目標(biāo)點對無人機作用的最大距離。當(dāng)無人機距離目標(biāo)點較遠(yuǎn)時,對無人機的引力過大,可能因為障礙物的斥力不夠,導(dǎo)致避障失敗。所以設(shè)定閾值,避免目標(biāo)點的引力過大,造成避障失敗。
飛行過程中,前置形心對無人機產(chǎn)生引力,避免無人機陷入極小值點,前置形心的引力定義為
Fatp=KbρupPup
(4)
式中,Kb為前置形心引力增益常量;ρup為無人機距離前置形心的距離;Pup為單位向量,方向由無人機指向前置形心。
障礙物斥力場,目的在于對無人機飛行產(chǎn)生斥力,使無人機適時做出避障動作。由于改進的人工勢場函數(shù)中,對斥力的定義容易造成無人機在到達目標(biāo)點附近時,引力不夠大,從而造成無人機在目標(biāo)點附近徘徊,達不到目標(biāo)點的位置。因此在原有斥力的基礎(chǔ)上,增加與目標(biāo)點距離的影響因子,構(gòu)造新的斥力函數(shù)為
(5)
其中,Ke為障礙物斥力增益常量;ρobs為無人機距離障礙物的距離;ρ0為障礙物斥力作用的范圍;λ為根據(jù)障礙物和ρmax可調(diào)整的常數(shù);Poe為單位向量,方向由障礙物指向無人機。
在無人機飛行過程中,添加無人機之間的斥力,將無人機的當(dāng)前位置信息作為新的障礙點,使無人機之間產(chǎn)生斥力,避免了無人機之間的撞擊,斥力方程定義為
(6)
其中,Ku無人機斥力增益常數(shù),ρuu為2架無人機之間的距離;ρu0為無人機之間作用力的距離,當(dāng)超過該距離時,無人機之間無影響力;Puu為單位向量,方向由編號在前的無人機指向編號在后的無人機。
因此,無人機在人工勢場中的受力為
(7)
圖2所示為無人機在飛行過程中受到目標(biāo)點的引力和障礙物的斥力的示意圖。
圖2 無人機受力示意圖Fig.2 Force diagram of UAV
圖3所示為無人機飛行過程中,無人機之間斥力示意圖。
圖3 無人機之間斥力示意圖Fig.3 Diagram of repulsion between UAVs
假設(shè)在規(guī)定的飛行區(qū)域內(nèi),有n架無人機進行編組飛行,第i架無人機在T時刻的位置信息為(xi,yi),計算無人機到目標(biāo)點的距離ρgoal,同時計算目標(biāo)點對無人機的引力fatt,根據(jù)公式
(8)
由于無人機飛行過程中,存在很多障礙物,有些障礙物對無人機并不造成影響,因此在避障過程中,規(guī)定無人機避開目標(biāo)方向上距離自己最近的障礙物即為避障成功。由此可取距離無人機最近的障礙物計算障礙物斥力。由無人機信息采集功能測得無人機距離最近障礙物的距離為ρobs,根據(jù)式(5)計算障礙物斥力Fre,根據(jù)式(7)計算無人機所受合力。
為了驗證試驗猜想,下面使用MATLAB2014a進行仿真,仿真流程圖如圖4所示。
圖4 仿真流程示意圖Fig.4 Schematic diagram of simulation process
設(shè)定1號無人機初始位置為(x1,y1)=(450,150),2號無人機初始位置為(x2,y2)=(350,250),3號無人機初始位置為 (x3,y3)=(250,350),4號無人機初始位置為(x4,y4)=(150,450);無人機速度為10;無人機大小設(shè)置為10;引力場增益系數(shù)Ka為30;斥力場增益系數(shù)Kb設(shè)置為30;得到如圖5所示的仿真結(jié)果。
圖5 4臺無人機路徑規(guī)劃仿真圖Fig.5 Simulation diagram of path planning for four UAVs
從圖5可以看出,無人機在勻速向目標(biāo)點前進的過程中,遇到障礙物時,能夠及時做出相應(yīng)的避障動作,并且因為2號無人機和3號無人機之間避障路徑相似,使無人機之間產(chǎn)生相應(yīng)的斥力,可以看出,2號無人機在前進過程中對于3號機的避讓效果。在無人機飛出障礙區(qū)之后,1號無人機和2號無人機之間,由于無人機之間的斥力和目標(biāo)點對于無人機的引力,1號無人機和2號無人機重新規(guī)劃了相應(yīng)的飛行路徑。
當(dāng)增加無人機目標(biāo)區(qū)域障礙物,其余條件不變,設(shè)定無人機初始位置為(x1,y1)=(450,150)、(x2,y2)=(350,250)、(x3,y3)=(250,350)、(x4,y4)=(150,450),使編隊處于無序狀態(tài)時,其余參數(shù)不變,得到如圖6所示的仿真結(jié)果。
圖6 4臺無人機目標(biāo)區(qū)域有障礙物路徑規(guī)劃仿真圖Fig.6 Simulation diagram of obstacles path planning for four UAVs in target area
由圖6可以看出,在無人機開始避障之前,由于無人機之間相互斥力的作用,每一架無人機的路徑規(guī)劃都有明顯的避讓行為。以5號無人機為例,在進入障礙區(qū)前,該機將序號靠前的無人機的路徑點作為當(dāng)前障礙物點,并重新規(guī)劃路徑;進入障礙區(qū)之后,以其他無人機和障礙物的斥力為依據(jù),規(guī)劃路徑,成功避障。在所有無人機到達目標(biāo)區(qū)域時,由圖可以看出,由于改進了斥力函數(shù),增加了目標(biāo)點距離的影響因子,從而使得無人機在目標(biāo)區(qū)域周圍有障礙物時,也能夠成功到達目標(biāo)區(qū)域。
本文針對無人機編隊飛行中的路徑規(guī)劃問題,提出了一種基于改進人工勢場的無人機路徑規(guī)劃方法,通過實驗仿真可以看出:
1)飛行過程中,避免了無人機進入極小值點,造成避障失敗的問題。本文提出的增加前置形心引力和無人機之間的斥力的合力,有效避免了無人機進入極小值點之后的受力平衡。
2)編隊飛行過程中,在前置形心引力和無人機之間斥力的作用下,既保證了編隊飛行的穩(wěn)定性,又保證了單架無人機的自主性,提高了整體的魯棒性。本文只對無人機所受的虛擬力進行定義和約束,對無人機的行為不做約束,因此在遇到外界新增障礙物時,能夠有效地做出避障動作。
3)到達目標(biāo)點后,基于改進勢場的斥力函數(shù),由于指數(shù)函數(shù)的存在,衰減得更快,避免了無人機到達目標(biāo)點附近,卻不能到達目標(biāo)點的情況,有效增強了無人機到達目標(biāo)點的能力。