張 鑫
(商洛學院電子信息與電氣工程學院 商洛 726000)
無人機(Unmanned Aerial Vehicle,UAV)是一種不搭載操作人員能夠自主飛行或進行遠程引導的航空器。針對無人機目標跟蹤問題,國內(nèi)外有較多研究。文獻[1]針對部隊轉移掩護任務研究無人機跟蹤轉移部隊的方法,該研究假設部隊位置實時發(fā)送給無人機,即目標為合作目標,因此,無人機所要考慮的問題是如何保持指定距離跟蹤轉移部隊。文獻[2]把目標的狀態(tài)估計引入到平臺的運動控制策略中進行考慮,在對移動目標跟蹤的同時,估計運動目標的狀態(tài),然后采用Lyapunov控制方法保持傳感器對目標的持續(xù)覆蓋。但這兩種方法并沒有充分考慮無人機的動力學約束。
本文考慮的是對地面/海面機動目標的視覺跟蹤,這需要對機載攝像機拍攝的圖像進行處理,識別目標并計算目標的參數(shù)信息。利用改進A*算法和文獻[3]的跟蹤算法進行了目標跟蹤,通過仿真,驗證了改進A*算法的可靠性。
機動目標的模型有很多,其中協(xié)同轉彎模型[4]和“當前”統(tǒng)計模型[5]是兩種目前最常用的機動目標運動模型,下面分別對這兩種模型進行介紹。
1)協(xié)同轉彎模型
設運動目標的狀態(tài)方程為
式中:A為狀態(tài)轉移矩陣;X(k)為目標狀態(tài)矢量,X(k)=[x(k)(k)y(k)(k)]T,x、y表示目標位置;B為噪聲驅動矩陣;W為服從N(0,Q)的高斯白噪聲,Q為協(xié)方差矩陣。
對于轉移矩陣A及噪聲驅動矩陣B分別有:
式中:T為采樣時間/s;ω為運動角速度/(rad/s),代表機動情況的參數(shù),ω>0表示左轉彎,ω<0表示右轉彎,ω=0則表示勻速直線運動。
2)“當前”統(tǒng)計模型
設目標運動的狀態(tài)方程為
式中:X(k)為目標狀態(tài)矢量,X(k)=[x(k)(k)(k)y(k)(k)(k)]T;Φ為狀態(tài)轉移矩陣;W(k)為白噪聲序列,均值為0,方差為Q(k)。
對于狀態(tài)轉移矩陣Φ及白噪聲序列方差Q(k)有:
式中:α為目標的機動頻率。
為了方便計算機解析,用航路點序列代替航路曲線[6~7]。無人機在固定高度定速飛行時,飛行軌跡從三維變?yōu)槎S。圖1表示此時的航跡點。
如圖1所示,假設在t時刻,無人機所處位置為O,最大偏航角速率為ψ?max。假設相鄰航跡點的時間間隔為Δt,每個點有3種可能,則在3Δt內(nèi)航路就有27種可能[8]。
圖1 航跡點擴展圖
設無人機航跡點為(x,y,ψ),其中x,y表示二維平面位置,ψ表示偏航角。假設t時刻航跡點O為(x0,y0,ψ0),取Δt=1,那么航跡點A的狀態(tài)信息為(x0-Rsinψ1+Rsinψ0,y0+Rcosψ1-Rcosψ0,ψ1),其中ψ1=ψ0-ψ?Δt,R=V/ψ?為無人機轉彎半徑,V為無人機的速度。同理,其他的擴展節(jié)點信息可以依次求得。
根據(jù)模型預測控制思想,航跡點的規(guī)劃步驟如下:
1)當前t0時刻,以Δt為步長,規(guī)劃以后N步最優(yōu)航跡點序列;
2)實際航跡點用前K步規(guī)劃的點代替,其中0<K<N;
3)t0+KΔt時繼續(xù)進行1)、2),直到任務終止。
目標跟蹤流程圖如圖2所示。
圖2 目標跟蹤流程圖
步驟1)中需要獲得最優(yōu)的航跡點序列。若無人機在每個位置上都有M個可以選擇的航向,規(guī)劃N步,則會有MN條不同航路可供選擇。步驟1)的任務就是在MN條路中找到最優(yōu)的航路。和TSP問題的求解類似,基于對實時性的考慮,選擇A*算法,該算法效率高、運行速度快。
A*算法是一種啟發(fā)式的最優(yōu)搜索算法。評價函數(shù)定義為
式中:f(k)為從起始節(jié)點經(jīng)過點k到目標節(jié)點的代價估計值;wg為真實代價的加權;g(k)為從起始節(jié)點到當前節(jié)點k的真實代價;wh為估計代價的加權;h(k)為從當前節(jié)點k到目標位置的代價估計值。
圖3 A*算法流程圖
若UAV在每個位置上都有M個可以選擇的航向,規(guī)劃N步,則擴展的航跡點共有∑Mi(1≤i≤N)個。設每個航跡點編碼為[mn],其中m(1≤m≤N)表示擴展的第m步,n(1≤n≤Mm)表示第m步的第n個擴展節(jié)點。求最優(yōu)航跡時將相應的航跡點編碼加入Openlist、Closelist,只求出需要的航跡點的狀態(tài)信息(x,y,ψ)。
A*算法[9]中的評價函數(shù)f(k)中包括消耗代價g(k)和估計代價h(k)。無危脅情況下,無人機在進行目標跟蹤時,可以使g(k)=0。h(k)用來選擇恰當?shù)膶?yōu)方向,又被叫做啟發(fā)函數(shù)[10]。因此,算法的可靠性和快速收斂性主要取決于h(k)。文獻[3]直接將目標點與當前點間的歐氏距離看作h(k),對于目標跟蹤的問題,h(k)設為
式中:ρi為航跡點序列中第i個航跡點與目標水平方向的距離;ρd為UAV與目標的水平期望距離。
但是隨著迭代次數(shù)的增加,采用上式會使以后增加的節(jié)點代價值增大,算法無法快速收斂。因此,根據(jù)文獻[11~12]設置h(k)為
設定無人機的最大偏航角速度ψ?max為0.2rad/s,速度是50m/s,飛行的高度1000m,北東地坐標系下的起始坐標為(0,0,-1000)。
跟蹤目標參數(shù):靜止,北東地坐標系下坐標為(2000,2000,0)。
任務要求:UAV與目標水平方向的期望距離ρd=500m。無人機先飛向目標附近,距離為期望距離時再盤旋飛行。
航路規(guī)劃算法相關參數(shù)設置如下:步長為1s,每次預規(guī)劃3步,實際執(zhí)行1步,每個航跡點有9個航向可以選擇。分別對靜止目標和機動目標進行跟蹤。
采用改進A*算法進行仿真,并與文獻[3]算法的仿真結果進行比較,對靜止目標的跟蹤結果如圖4所示,對機動目標的跟蹤結果如圖5和圖6所示。文獻[3]的跟蹤結果用虛線,改進A*算法的結果用實線表示。圖4中,黑點表示靜止實物,圖5、6中,粗線表示機動目標。
圖4 靜止目標的跟蹤結果
圖5 協(xié)調(diào)轉彎模型下跟蹤結果
圖6 “當前”統(tǒng)計模型下跟蹤結果
從圖4中可以看出,兩種算法都可以滿足任務要求,但是本文算法比文獻[3]能夠更快地收斂至500m,且震蕩較小,跟蹤效果更優(yōu)。
圖5、6為協(xié)調(diào)轉彎模型和“當前”統(tǒng)計模型下對機動目標的跟蹤結果。由跟蹤結果可知,本文算法與文獻[3]中的算法相比收斂到期望距離的速度更快,并且目標產(chǎn)生了較大的機動時本文算法也能完成跟蹤任務,偏差明顯小于文獻[3]中算法。
首先分析了無人機的協(xié)同轉彎模型和“當前”統(tǒng)計模型,在無危脅條件下,利用文獻[5]的改進A*算法和文獻[3]分別對靜止目標和機動目標進行了跟蹤,并進行了仿真對比。對比了兩種算法下的目標軌跡與UVA運動軌跡,UVA與目標的水平距離。仿真結果表明,改進A*算法能有效地實現(xiàn)目標跟蹤。