陶毅峰,江金光,方 偉
(武漢大學 衛(wèi)星導航定位技術研究中心,湖北 武漢 430079)
基于捷聯(lián)慣性導航系統(tǒng)和GPS(global positioning system)技術,在GPS信號良好的情況下可以有效地進行導航[1]。卡爾曼濾波(Kalman filtering)技術由于其高精度,設計簡單等優(yōu)點成為了最廣泛使用的技術。因為高精度慣性測量單元(inertial measurement unit,IMU)成本昂貴,大部分情況下IMU只是MEMS(microelectro mechanical systems)級別的,這種級別的INS(inertial navigation system)/GPS組合導航系統(tǒng)的定位精度極大地依賴于GPS信號[2],而GPS信號極易受到高樓、樹蔭等遮擋而失鎖[3-5];此時INS/GPS組合導航系統(tǒng)僅能依靠純慣導進行機械編排,定位結果會隨著時間的積累發(fā)散[6],導致解算精度迅速下降。而神經(jīng)網(wǎng)絡作為近幾年火熱的技術,已有許多結合神經(jīng)網(wǎng)絡與INS/GPS的研究[7,8]。如利用BP(back propagation)神經(jīng)網(wǎng)絡[9]、多層感知器(multi-layer perceptron,MLP)[10]來輔助組合導航系統(tǒng)。這些模型將各時刻的輸入與輸出視為獨立的元素,但是實際的組合導航系統(tǒng)顯然是一個連續(xù)的、各時刻位置相關的系統(tǒng)。循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)可以將過去時刻的位置信息與當前時刻的輸出聯(lián)系起來,恰好與上述問題契合。因此本文使用循環(huán)神經(jīng)網(wǎng)絡中的一種變體結構GRU(gated recurrent unit)算法輔助組合導航系統(tǒng),以解決GPS失鎖時定位精度迅速發(fā)散的問題。
INS/GPS組合導航系統(tǒng)的組合方式有:松組合、緊組合、深組合等。其中松組合是基于GPS導航結果的數(shù)據(jù)組合,即Kalman的觀測向量為GPS和INS的速度、位置的數(shù)據(jù)組合。松組合結構簡單,計算負擔低,易實現(xiàn),可靠性很高,但所需衛(wèi)星數(shù)最少為4顆,粗差探測能力弱。緊組合是基于GPS觀測量的數(shù)據(jù)組合,即Kalman的觀測向量為GPS的偽距、偽距率的數(shù)據(jù)組合。緊組合結構復雜,計算負擔較高,可靠性也不如松組合,但是其粗差探測能力強,可觀測衛(wèi)星數(shù)少于4顆時也可以正常工作。深組合是基于GPS信號的組合,采用了矢量環(huán)路的方法,通道間互相輔助,提高了信號跟蹤環(huán)路性能和系統(tǒng),降低了載體動態(tài)變化的影響[11],但該技術還不成熟,實現(xiàn)難度高。
由于本文側重點為解決GPS失鎖時的精度問題,故本文選取了結構較為簡單,計算量小的松組合作為組合方式。INS/GPS松組合的結構如圖1所示,其中INS輸出慣導推算得到的信息PINS(位置)、VINS(速度)、AINS(姿態(tài)角);GPS提供位置信息,與INS的位置信息相減作為觀測向量ZK[12]輸入到卡爾曼濾波模塊;卡爾曼濾波模塊輸出改正信息δp,δv,δA對INS的輸出值進行修正,得到最終的組合結果。
圖1 INS/GPS松組合結構框架
本文松組合采用15維卡爾曼濾波,坐標系采用北東地地理坐標系,狀態(tài)變量為
(1)
觀測向量為
Z=[PINS-GPS]
(2)
觀測值的量測矩陣為
(3)
狀態(tài)轉(zhuǎn)移矩陣為
(4)
卡爾曼濾波預測部分
(5)
更新部分
(6)
其中,φk,k-1為離散化后的狀態(tài)轉(zhuǎn)移矩陣,Qk-1為離散化后的系統(tǒng)狀態(tài)噪聲方差陣,Pk,k-1為一步預測狀態(tài)協(xié)方差矩陣,Kk為卡爾曼濾波增益,Pk為估計狀態(tài)協(xié)方差矩陣[13]。GPS信號正常時,每一秒內(nèi)的純慣導推算帶來的誤差會被卡爾曼濾波后的δp,δv,δA所補償?shù)?。但是一旦GPS失鎖,卡爾曼濾波就失去了觀測向量,無法繼續(xù)進行組合,也就無法產(chǎn)生δp,δv,δA對INS結果進行反饋。這部分的誤差一直累計,會隨時間產(chǎn)生二次發(fā)散。因此GPS失鎖時松組合退化為純慣導推算無法滿足正常的導航需求,需要其它觀測或算法輔助,本文的輔助導航方法在第3章中繼續(xù)詳細闡述。
傳統(tǒng)的神經(jīng)網(wǎng)絡為前饋神經(jīng)網(wǎng)絡(feed-forward neural network,F(xiàn)NN),通常包含輸入層、隱藏層和輸出層。各層之間互相連接,訓練時每一層的權值更新就是通過這些連接進行傳遞;但是每一層內(nèi)的神經(jīng)元互相獨立,不存在環(huán)路,因此FNN僅適用于觀測數(shù)據(jù)互相獨立的情況,而對于上下文有聯(lián)系的時間序列數(shù)據(jù)就效果欠佳。
為了彌補這一不足,RNN在隱藏層加入了回路連接,前一時刻的網(wǎng)絡狀態(tài)會傳遞到下一時刻,因此當前時刻的輸出不僅受到當前時刻的輸入影響,還與之前時刻的數(shù)據(jù)輸入產(chǎn)生了聯(lián)系。而對于權值參數(shù)的問題,RNN借鑒了隱馬爾可夫模型(hidden Markov model,HMM)參數(shù)共享的概念。HMM廣泛應用于語音處理、文字處理等領域,對于序列數(shù)據(jù)建模取得很好的效果。這二者利用內(nèi)部狀態(tài)來衡量數(shù)據(jù)間的依賴關系,參數(shù)共享減少了訓練的參數(shù),提高了效率。RNN的參數(shù)更新和傳統(tǒng)的神經(jīng)網(wǎng)絡類似,使用了反向傳播算法(backpropagation algorithm),其前向傳播如圖2所示,由于每個時刻的隱藏狀態(tài)都與前一時刻的產(chǎn)生聯(lián)系,因此進一步產(chǎn)生了長距離的依賴。
圖2 RNN前向傳播結構
RNN適用于處理時間序列數(shù)據(jù),可以將當前時刻的輸出和狀態(tài)當作輸入傳遞到下一時刻,因此這種串型結構可以保持各時刻間的數(shù)據(jù)關系。但是RNN很難保持長期的依賴性,且存在梯度消失、梯度爆炸的問題[14],因此在RNN基礎上進一步產(chǎn)生了許多優(yōu)秀的演化模型,如長短期記憶網(wǎng)絡(long short-term memory,LSTM)和GRU。這些模型通過加入記憶單元來解決長期依賴的問題,通過門控單元來避免梯度爆炸。而GRU相較于LSTM參數(shù)更少,訓練更快,因此人工智能(artificial intelligence,AI)模塊選擇GRU算法。
GRU單元結構如圖3所示,ht-1是前一時刻的隱藏狀態(tài),ht為當前時刻的隱藏狀態(tài)輸出,xt是當前時刻的數(shù)據(jù)輸入。該單元結構有2個門,更新門和重置門,更新門用于控制前一時刻的狀態(tài)信息對當前時刻的影響程度,輸出為rt,更新門的值越大,狀態(tài)信息保留越多;重置門用于忽略前一時刻的部分狀態(tài)信息,輸出為zt,重置門的值越小,狀態(tài)信息忽略越多。
圖3 GRU單元結構
具體前向傳播公式如下
(7)
其中,Wxr為輸入層到更新門的權重矩陣,Whr為隱藏狀態(tài)到更新門的權重矩陣,Wxz為輸入層到重置門的權重矩陣,Whz為隱藏狀態(tài)到重置門的權重矩陣,Wxh為輸入層到隱藏狀態(tài)的權重矩陣,Whh為隱藏狀態(tài)之間的連接權重矩陣;br,bz,bh分別為更新門、重置門、隱藏單元的偏置向量。
循環(huán)神經(jīng)網(wǎng)絡相較于普通神經(jīng)網(wǎng)絡最大的區(qū)別就是存在time step(時間步長)參數(shù),GRU也同樣存在這個參數(shù)。這個參數(shù)的選擇決定了訓練時利用多少步長內(nèi)的時序關系,即輸出與前多少個陸續(xù)的數(shù)據(jù)輸入有關系。具體GRU和循環(huán)神經(jīng)網(wǎng)絡的結構與推導公式見文獻[14]。
目前關于GPS失鎖時使用AI技術進行輔助的模型主要有3種,分別是OINS-δPINS模型、OINS-Xk模型和OINS-ΔPGPS模型,都有著不錯的效果[15]。OINS-δPINS模型輸入為INS信息,輸出為GPS和INS的誤差;OINS-Xk模型輸入為INS信息,輸出為Kalman濾波后的狀態(tài)向量;OINS-ΔPGPS模型輸入為INS信息,輸出為GPS增量信息。前兩種模型的預測值既包含INS信息,也包含GPS信息,而第三種模型的預測值僅與GPS信息相關,因此前兩種模型相較于第三種模型會引入額外的混合誤差,所以本文采用OINS-ΔPGPS模型。ΔPGPS的具體推導公式如下
(8)
(9)
具體工作流程如圖4所示,在GPS信號鎖定時,使用GRU循環(huán)神經(jīng)網(wǎng)絡進行實時訓練,輸入為IMU提供的三軸加速度計數(shù)據(jù)fb、三軸陀螺儀數(shù)據(jù)ωb、INS輸出的速度信息VINS和航向角ψINS。因此在GPS信號良好時GRU模塊可以找到IMU、INS信息與GPS增量信息之間的映射關系。
圖4 GRU輔助INS/GPS組合導航訓練過程
當GPS失鎖后,GPS模塊不再提供位置信息,IMU和INS模塊繼續(xù)向GRU模塊輸入傳感器數(shù)據(jù),慣導推算結果等相關信息,由已訓練好的GRU循環(huán)神經(jīng)網(wǎng)絡根據(jù)輸入來預測ΔPGPS。將上述GPS增量信息進行積分,就可以得到一個模擬的GPS位置信息[16],也叫作偽GPS位置信息,效果等同于GPS信號鎖定時的GPS定位結果。將該結果與PINS作差后送入KF模塊即可繼續(xù)進行卡爾曼濾波,用來對位置、速度、姿態(tài)進行修正,如圖5所示。此時原本只能通過慣導進行推算的純慣導模塊,有了偽GPS信息對其進行修正,抑制了MEMS級慣導的誤差發(fā)散速度。
圖5 GRU輔助INS/GPS組合導航預測過程
為驗證算法,使用邁普時空的M39設備所采的數(shù)據(jù)進行仿真,采樣輸出頻率為200 HZ,利用SPAN-CPT設備作為參考系統(tǒng),二者的IMU性能參數(shù)見表1。數(shù)據(jù)采集地點為武漢市佛祖嶺附近,所采數(shù)據(jù)共4500 s,選取中段的4000 s數(shù)據(jù)來進行仿真,前3000 s用于訓練,3000 s-3200 s用于驗證,3200 s-4000 s用于測試。
表1 仿真設備與參考設備的IMU性能參數(shù)
GRU模型的輸入為IMU的三軸陀螺儀數(shù)據(jù)、三軸加速度計數(shù)據(jù)、速度矢量、航向角共10個特征維度,輸出為GPS增量信息。訓練時由于輸入層的IMU傳感器數(shù)據(jù)、速度、航向角等INS信息為1 s 200次,而GPS增量信息1 s僅有1次,所以訓練時需要將1 s內(nèi)的所有信息一起作為輸入層的輸入。進一步地,由于GRU模型存在time step參數(shù),即存在時間上的維度,結合上述的10個特征和信息頻率以及訓練時長為3000 s,因此輸入層的數(shù)據(jù)為大小為(3000,time step,2000);而輸出層的數(shù)據(jù)顯然為GPS增量信息,大小為(3000,3)。此數(shù)據(jù)量非常龐大,隱藏層的神經(jīng)元個數(shù),time step的參數(shù)選擇都會影響到訓練的效率和最終精度,因此本文先對輸入層和輸出層數(shù)據(jù)進行了歸一化處理,預測模型預測時再反歸一化,以加快訓練時的收斂速度。并且對于相關參數(shù)的調(diào)節(jié)也進行了實驗,見表2。
表2 不同time step和隱藏層單元數(shù)的性能對比
表2中為不同time step和隱藏層單元數(shù)的調(diào)節(jié)情況??紤]到效率和精度,最終本文中GRU模塊優(yōu)化器選擇為adam算法,隱藏層神經(jīng)元個數(shù)設置為128個,time step參數(shù)選擇為4,其它參數(shù)變量的值見表3。
表3 GRU模塊參數(shù)設置
由于本文采用的實驗環(huán)境為車載環(huán)境,高程在精度上的變化與影響較小,因此下述實驗僅考慮和分析水平誤差。圖6、圖7分別為測試集GRU預測的緯度、經(jīng)度增量和真實的緯度、經(jīng)度增量的比較,可以看出二者趨勢基本一致。具體的平均絕對誤差(mean absolute error,MAE)和均方誤差(mean square error,MSE)統(tǒng)計見表4。
圖6 GRU預測緯度增量與真值的對比
圖7 GRU預測經(jīng)度增量與真值的對比
表4 GRU預測的經(jīng)緯度增量誤差統(tǒng)計
圖8是將800 s預測的ΔPGPS累加畫出的水平軌跡圖與真實軌跡的比較。起點處二者重合,誤差逐漸增大,最大誤差不超過50 m。從圖8中也可以看出,雖然全程誤差都在發(fā)散,軌跡逐漸分離,但是誤差陡增的幾處基本為拐彎處,直線行駛時誤差增加很小。這是因為車載環(huán)境下直線行駛的情況較多,相應地,訓練集中直線行駛的數(shù)據(jù)就更豐富,GRU模型更容易找到直線行駛時INS、IMU信息和GPS增量的關系。同時,相較于拐彎,直線行駛時的IMU測得的數(shù)據(jù)更準,慣導推算結果也更精確,這也導致了上述結果。
圖8 GRU預測的軌跡與實際軌跡對比
上述仿真是采用了組合導航的結果進行預測,目的是為了驗證GRU模型應用于GPS增量預測時的可行性,并調(diào)節(jié)GRU網(wǎng)絡的參數(shù),使得該預測模型達到最優(yōu);實際使用本模型時,由于一次次的預測會導致速度、航向、位置等信息的誤差累積,因此選取其中200 s(202100 周秒-202300 周秒)的時間完整模擬本模型方法。為了進一步說明GRU循環(huán)神經(jīng)網(wǎng)絡相較于普通神經(jīng)網(wǎng)絡的優(yōu)越性,下述圖中還加入了MLP的預測情況。圖9(a)、圖9(b)分別為GPS失鎖200 s時GRU循環(huán)神經(jīng)網(wǎng)絡模型輔助的組合導航與GPS失鎖時純機械編排的北向/東向速度漂移對比。GRU、MLP算法輔助的北向、東向速度漂移要優(yōu)于純慣導、其中GRU效果更好。純慣導推算北向、東向最大速度漂移分別為4.61 m/s,3.37 m/s;MLP輔助的北向、東向最大漂移分別為4.55 m/s、2.83 m/s,與純慣導推算相當,略小于純慣導結果,但是整體要優(yōu)于純慣導;GRU輔助的北向,東向最大速度漂移為1.55 m/s,1.17 m/s。GRU輔助相較于純慣導推算,北向和東向最大速度漂移分別降低66.4%和65.3%。GRU輔助相較于MLP輔助,北向和東向最大速度漂移分別降低65.9%和56.7%。
圖9 不同算法輔助的速度漂移
圖10、圖11、圖12分別為GPS失鎖200 s時GRU循環(huán)神經(jīng)網(wǎng)絡模型輔助的組合導航與GPS失鎖時純機械編排的緯度、經(jīng)度、水平位置漂移對比。純慣導緯度、經(jīng)度、水平最大漂移分別為394.51 m、294.66 m、492.40 m;MLP輔助的緯度、經(jīng)度、水平最大漂移分別為370.23 m、166.78 m、406.06 m;GRU輔助的緯度、經(jīng)度、水平最大漂移分別為86.88 m、69.07 m、87.14 m。GRU輔助相較于純慣導推算、緯度、經(jīng)度和水平方向最大位置漂移分別降低78.0%、76.6%和82.3%;GRU輔助相較于MLP輔助、緯度、經(jīng)度和水平方向最大位置漂移分別降低76.5%、58.6%和78.5%。上述所有統(tǒng)計結果總結見表5。
圖10 不同算法輔助的緯度位置漂移
圖11 不同算法輔助的經(jīng)度位置漂移
圖12 不同算法輔助的水平位置漂移
表5 GPS失鎖200 s的3種方法最大誤差統(tǒng)計結果
圖13為這200 s仿真結果在Google Earth上的軌跡。黑色的兩條線分別為真實軌跡和GRU輔助軌跡,其中真實軌跡的圖標為黑色實心圓,GRU輔助軌跡的圖標為黑色正方形;白色的兩條線為MLP輔助軌跡和純慣導軌跡,其中MLP輔助軌跡的圖標為白色空心三角形,純慣導軌跡的圖標為白色空心圓??梢钥闯鼋?jīng)過一個彎道后,3種方法與真實軌跡的誤差已經(jīng)有了明顯的差距,GRU輔助的最為接近,MLP輔助的次之,純慣導推算最差;經(jīng)過2個彎道后只有GRU輔助的軌跡仍與真實軌跡趨勢接近,其它軌跡都發(fā)散嚴重。
圖13 不同算法輔助的地圖軌跡
表6為GPS失鎖200 s的3種方法RMS統(tǒng)計結果,可以看出使用MLP、GRU輔助的結果各方面都要優(yōu)于純慣導推算,其中GRU輔助最優(yōu),水平誤差54.20 m相較于純慣導的204.80 m和MLP輔助的153.40 m有巨大提升。
表6 GPS失鎖200 s的3種方法RMS統(tǒng)計結果
本文為了解決GPS失鎖時純慣導推算發(fā)散嚴重的問題,采用了GRU輔助INS/GPS的方法。在GPS鎖定時使用INS速度、姿態(tài)角信息、IMU加速度計、陀螺儀數(shù)據(jù)和GPS增量進行訓練,找到相應的映射關系;GPS失鎖后,向訓練好的GRU模型繼續(xù)輸入INS和IMU信息,該模型就可以提供預測的GPS增量信息,將之積分得到偽GPS位置。此時就可以進行卡爾曼濾波,以抑制原本純MEMS級慣導推算時的誤差快速發(fā)散。并且本文與MLP輔助INS/GPS的方法進行了比較,驗證了GRU循環(huán)神經(jīng)網(wǎng)絡對于連續(xù)時間軌跡推算的優(yōu)越性。由于GPS失鎖時,里程計在車載導航中對精度有著極為明顯的提升,且技術較為成熟,因此,下一步工作將結合里程計與本方法進行進一步實驗。