熊華捷,蔚保國,易卿武,何成龍
(衛(wèi)星導(dǎo)航系統(tǒng)與裝備技術(shù)國家重點實驗室,石家莊 050081)
無人機集群導(dǎo)航規(guī)劃是無人機協(xié)同執(zhí)行任務(wù)的關(guān)鍵技術(shù)之一.導(dǎo)航規(guī)劃是指考慮地形、威脅等因素,在滿足無人機自身性能約束和環(huán)境條件約束情況下,為無人機制定從初始點到目標點的最優(yōu)飛行路徑[1].而集群協(xié)同導(dǎo)航規(guī)劃又不同于單個無人機導(dǎo)航規(guī)劃,需要考慮的因素更加復(fù)雜,要解決飛行過程中無人機之間避碰問題以及同步時間到達等,并使整個集群飛行代價最小.當前無人機集群導(dǎo)航規(guī)劃解決的主要方式已逐漸由傳統(tǒng)的后臺控制導(dǎo)航規(guī)劃飛行轉(zhuǎn)變?yōu)闄C上自主感知與決策飛行[2-3],以滿足導(dǎo)航?jīng)Q策規(guī)劃的實時性,但仍存在機載算力要求過高、機上導(dǎo)航?jīng)Q策的可信程度不足等問題.尤其在面臨集群導(dǎo)航規(guī)劃問題時,設(shè)計具有速度快、精度高、信息全等特點的導(dǎo)航規(guī)劃算法和技術(shù)成為了關(guān)鍵[4].本文充分考慮無人機集群導(dǎo)航規(guī)劃的應(yīng)用要求與當前研究現(xiàn)狀,提出一種機上群智能決策算法+云后臺輔助導(dǎo)航的無人機智能導(dǎo)航規(guī)劃算法.經(jīng)仿真驗證,該算法能充分滿足無人機集群導(dǎo)航規(guī)劃各項要求,并提高了導(dǎo)航規(guī)劃控制的有效性與實時性.
機載導(dǎo)航控制算法主要解決無人機集群無后臺通信鏈路下的機上自主導(dǎo)航?jīng)Q策問題,因此需要兼顧可信性與快速實時性的需求.本文采用粒子群優(yōu)化算法(particle swarm optimization,PSO)解決該問題.
在PSO 中粒子的速度和位置更新如式(1)和式(2)所示[5]:
式(1)是標準粒子群算法速度更新和位置更新公式,其中涉及到的主要參數(shù)包括慣性權(quán)重 ω、學(xué)習(xí)因子c1和c2,以及起到約束作用的粒子種群規(guī)模Ns和最大飛行速度vmax.在粒子群算法中,較小的慣性權(quán)重有利于算法的精細收縮,而較大的慣性權(quán)重則有利于算法的快速全局搜索,因此動態(tài)改變的慣性權(quán)重能夠取得比固定值更好的尋優(yōu)結(jié)果.本研究的改進方式為
式中,δ 為連續(xù)k代更新后粒子的位置變化程度,若連續(xù)k代更新后粒子的位置變化超過 λ1,則判定算法處于快速全局搜索階段,可以令 ω 取較小值 ωmin,減慢搜索速度,防止算法因搜索速度過快錯過最優(yōu)解;若連續(xù)k代更新后粒子的位置變化不超過 λ2則判定算法已經(jīng)陷入局部最優(yōu),令 ω 取較大值 ωmax,可以加快算法搜索速度,使算法跳出局部最優(yōu).k、λ1和 λ2的取值是由無人機集群導(dǎo)航規(guī)劃問題的復(fù)雜程度、要求的搜索速度和精度等因素共同決定的.
僅依靠對粒子群算法公式原有的參數(shù)進行自適應(yīng)調(diào)整還不能完全解決算法容易陷入局部最優(yōu)的問題,需要對其粒子更新策略進行改進.在粒子群算法中,粒 子是通過跟蹤個體極值pbest和全局極值gbest來更新自己的速度和位置.這樣就使得粒子每次迭代都要受到個體的歷史最優(yōu)位置和當前群體的最優(yōu)位置所吸引,導(dǎo)致在迭代后期,粒子的多樣性變得很差.若這兩個位置都僅僅是局部最優(yōu)甚至非優(yōu)位置,則粒子將徹底無法搜索到全局最優(yōu)解而過早的早熟結(jié)束.因此,需要引入一種機制,使得粒子能夠“跳出”局部最優(yōu)[7].
通過上文提到的方式判斷,若粒子已經(jīng)陷入局部最優(yōu),則令
式中,rand1、rand2為取值范圍在 (0,1) 的隨機數(shù).通過這種對全局最優(yōu)位置和局部最優(yōu)位置的擾動方式使得算法可以跳出局部最優(yōu)解.
與機上智能導(dǎo)航規(guī)劃算法不同,后臺導(dǎo)航控制算法設(shè)計可依托高算力平臺,無需考慮機載算力平臺限制,因此可以采用較為復(fù)雜的智能優(yōu)化算法,但要考慮導(dǎo)航規(guī)劃實時性的問題[8].同時要考慮通信鏈路的限制,若不具備與前端無人機的通信條件,則只能依靠無人機機載智能規(guī)劃算法實現(xiàn)導(dǎo)航飛行.因此本文后臺導(dǎo)航控制算法采用自主模塊+人工控制模塊結(jié)合的方式,在具備前端到后端的通信鏈路時作為無人機集群導(dǎo)航規(guī)劃的輔助決策.在可滿足導(dǎo)航規(guī)劃實時性條件下,利用后臺自主模塊規(guī)劃滿足要求的合理航跡點并發(fā)送至前端無人機實施導(dǎo)航飛行;在環(huán)境較為復(fù)雜的情況下,利用人工控制模塊直接人為發(fā)送航跡點至無人機實現(xiàn)導(dǎo)航.
自主模塊算法采用改進粒子群算法結(jié)合禁忌搜索算法的混合群智能算法,通過禁忌表和候選解的設(shè)置,解決粒子群優(yōu)化算法容易陷入局部最優(yōu)的問題.算法流程圖如圖1 所示.
圖1 混合群智能導(dǎo)航規(guī)劃算法流程
人工控制模塊主要基于無人機平臺前端和云后臺端的上行和下行通信鏈路,通過Rviz 實現(xiàn)無人機的環(huán)境信息展現(xiàn)和目標航跡點設(shè)置[9].
Rviz 是一款三維可視化工具,兼容了各種基于ROS 軟件框架的機器人平臺.如圖2 所示,在Rviz中,可以通過圖形化的方式,實時顯示無人機傳感器的信息、無人機的運動狀態(tài)、周圍環(huán)境的變化等.
圖2 Rviz 界面
首先需要建立無人機集群導(dǎo)航規(guī)劃狀態(tài)空間,包括環(huán)境信息、威脅信息,以及無人機各項約束條件和優(yōu)化指標等信息.環(huán)境信息和威脅信息的建模包括基準地形模型、威脅區(qū)域以及障礙區(qū)域3 部分.基準地形建模設(shè)置飛行區(qū)域設(shè)為直角坐標區(qū)域;威脅區(qū)域一般指電磁干擾區(qū)域以及敵方探測區(qū)域[10-11]等,可采用半球形模型對威脅區(qū)域建模,其數(shù)學(xué)描述為
式中:(xi,yi,0) 為威脅 區(qū)域的中心;Wi(x,y,z) 為第i個威脅區(qū)域;ri為威脅區(qū)域半徑.障礙區(qū)域建模采用山峰模型,其數(shù)學(xué)描述為
式中:z(x,y) 為地形中每個點的高度;(x,y) 為地形中每個點投 影到平 面的點坐標;hi為第i座山的高度;(xi,yi) 為山峰的地理中心坐標;xsi,ysi分別為山峰在x軸和y軸方向的坡度向量.
無人機約束條件包含自身物理性能約束和飛行任務(wù)約束,由此確定各項航跡評價函數(shù)的優(yōu)化指標.一般個體無人機執(zhí)行飛行任務(wù)所考慮的優(yōu)化指標包括以下幾項:
1)航跡長度Lp:無人機一次任務(wù)的總飛行路程.
2)剩余飛行時間tp:無人機在執(zhí)行任務(wù)過程中,最大飛行時間與已飛行時間的差值.
3)最低飛行高度h:無人機在飛行中與地形之間允許的最短距離,h太小會增加無人機與地面碰撞的概率.
由此得出的導(dǎo)航規(guī)劃評價函數(shù)為
式中:Li為第i段節(jié)點間的距離約束;ti為到第i個節(jié)點的剩余時間;Hi為第i個節(jié)點處的高度威脅值;φ1、φ2和φ3為權(quán)重系數(shù),通過調(diào)整它們的大小來改變各項約束對導(dǎo)航規(guī)劃評價函數(shù)的影響.N為設(shè)定航跡規(guī)劃的節(jié)點總數(shù).
本文考慮到無人機集群執(zhí)行飛行任務(wù)的情形,為減小無人機機間碰撞概率,選擇增加基于勢函數(shù)的避碰函數(shù)作為優(yōu)化指標.一般斥力勢函數(shù)公式為
式中:η 為斥力增益系數(shù);ρ(q,q′) 為一架無人機到相鄰無人機的距離;ρ0為設(shè)定的機間最小避碰距離.當鄰居無人機進入本機安全距離后,勢函數(shù)斥力開始作用,當兩機達到最小避碰距離時,排斥力達到最大,并趨向于無窮.將避碰勢函數(shù)產(chǎn)生的斥力作為航跡優(yōu)化指標的一項,與前面航跡規(guī)劃函數(shù)的指標進行綜合,最終保證無人機集群飛行過程避碰.
針對本文提出的無人機集群云端協(xié)同導(dǎo)航控制算法,利用MATLAB R2016b 進行仿真對比實驗和分析,并利用無人機平臺和云后臺端進行實際飛行實驗.
無人機數(shù)量設(shè)為20,任務(wù)目標點個數(shù)設(shè)為10,分布在(2 000,200,300)、(2 000,400,600)、(2 000,500,500)、(2 000,650,380)、(2 000,800,430)、(2 000,1 000,580)、(2 000,1 350,680)、(2 000,1 500,300)、(2 000,1 800,650)、(2 000,2 000,580).
地形參數(shù)設(shè)置為:飛行區(qū)域2 000×2 000×1 000;障礙參數(shù)為(x,y,h):(500,1 500,400)、(500,500,200);威脅區(qū)域參數(shù)為(x,y,r):(1 000,1 000,400)、(500,500,200)、(500,1 200,200)、(1 500,500,200).
傳統(tǒng)機上單一導(dǎo)航規(guī)劃算法即標準粒子群算法按照航跡規(guī)劃最通用方式設(shè)置,慣性權(quán)重 ω=0.9,學(xué)習(xí)因子c1=c2=2,本文所提改進算法的參數(shù)設(shè)置為:初始種群數(shù)量Ns=30,最大迭代次數(shù)T=50,粒子最小飛行速度vmin,最大飛行速度vmax;改進粒子群算法參數(shù)設(shè)置慣性權(quán)重 ω選擇策略中 ωmax, ωmin, λ1=0.3,λ2=0.1,k=5.
測試步驟為
步驟一:啟動MATLAB 軟件,選擇無人機集群云端協(xié)同導(dǎo)航控制算法;
步驟二:設(shè)置環(huán)境條件和算法參數(shù);
步驟三:設(shè)置任務(wù)目標點并進行分配;
步驟四:開始仿真;
步驟五:重復(fù)步驟一至步驟四,選擇傳統(tǒng)單一的機載標準粒子群導(dǎo)航規(guī)劃算法模塊,觀察并記錄兩種算法的導(dǎo)航規(guī)劃結(jié)果;
步驟六:繪制兩種算法的迭代次數(shù)和評價函數(shù)曲線圖并進行對比分析;
步驟七:完成本項實驗.
傳統(tǒng)單一機上導(dǎo)航規(guī)劃結(jié)果與無人機集群云端協(xié)同導(dǎo)航控制結(jié)果如圖3 所示.
圖3 導(dǎo)航規(guī)劃結(jié)果
由圖3 可以直觀看出,本文提出的無人機集群云端協(xié)同導(dǎo)航控制算法與傳統(tǒng)單一機上導(dǎo)航規(guī)劃相比,導(dǎo)航規(guī)劃的航跡更加平滑,且各架無人機的航跡長度更短.
為了評估本文提出算法的性能,將兩種算法迭代次數(shù)與目標函數(shù)值的關(guān)系對比如圖4 所示.
圖4 算法迭代次數(shù)與目標函數(shù)值關(guān)系對比
由圖4 可知,本文所提算法目標函數(shù)值總體更小,比標準PSO 算法收斂時的目標函數(shù)值約下降41%,表明本文的無人機集群云端協(xié)同導(dǎo)航控制算法應(yīng)用在集群導(dǎo)航規(guī)劃時可以取得更好的效果.
仿真算法的主程序運行時間如圖5 所示,可以看出在主程序運行150 次中,算法所用時間絕大數(shù)不超過0.05 s,最大所用時間也不超過0.09 s,證明算法是快速可行的,能夠保障在線航跡規(guī)劃的實現(xiàn).
圖5 算法運行所用時間
利用裝載云端協(xié)同無人機集群智能導(dǎo)航規(guī)劃算法嵌入式軟件的Jetson TX2 模塊的無人機平臺以及Dell Inspiron 15-1745 云后臺電腦進行室內(nèi)環(huán)境低速實際飛行測試,并在Rviz 界面進行效果展現(xiàn).飛行測試結(jié)果如圖6 所示,可以看出個體無人機較好的完成了導(dǎo)航與避障飛行任務(wù).
圖6 個體無人機實際避障飛行測試
開展3 次飛行測試試驗,分別記錄算法程序完成1 次航跡規(guī)劃的平均時間,如表1 所示.
表1 實際飛行測試算法運行時間 s
由表1 可知,在無人機低速飛行條件下,該算法可完全滿足導(dǎo)航規(guī)劃避障飛行的時效性需求.
本文提出了一種無人機集群云端協(xié)同導(dǎo)航控制算法,將機上智能導(dǎo)航?jīng)Q策算法與后臺智能導(dǎo)航規(guī)劃算法相結(jié)合,對機上粒子群智能導(dǎo)航?jīng)Q策算法進行慣性權(quán)重的優(yōu)化改進并進行仿真分析,設(shè)計自主模塊+人工控制模塊的后臺輔助導(dǎo)航規(guī)劃算法,并對混合群智能導(dǎo)航規(guī)劃算法和人工控制的導(dǎo)航規(guī)劃避障進行實驗分析.
通過多無人機仿真實驗和單無人機實際飛行實驗,表明該算法可以滿足集群導(dǎo)航規(guī)劃要求,對比傳統(tǒng)單一機載粒子群導(dǎo)航規(guī)劃方法收斂時目標函數(shù)值約降低41%,表明算法的尋優(yōu)能力得到顯著改進,同時實際無人機飛行測試可滿足避障導(dǎo)航需求,驗證了所提算法的可行性和優(yōu)越性.
該算法策略可以很好地滿足無人機集群導(dǎo)航規(guī)劃對于高精度和實時性的需求,但仍存在一些不足之處,比如在線規(guī)劃時采用集中式計算負擔(dān)過大可能會導(dǎo)致算法強度過高進而影響航跡規(guī)劃的效率等.后續(xù)將在降低算法強度方面尋求突破,重點關(guān)注分布式算法架構(gòu)的建立,完善本文所提出的無人機集群導(dǎo)航規(guī)劃策略.