本發(fā)明涉及一種室內慣性導航方法,尤其涉及一種室內慣性導航方法。
背景技術:
隨著現(xiàn)代定位導航技術的發(fā)展,基于位置的服務(LBS)逐漸成為智能生活中不可獲取的一部分,全球導航系統(tǒng)提供了全球化的定位服務,由于建筑物對信號的遮擋,在室內無法使用GPS服務,由此應運而生的室內定位技術得到的迅速的發(fā)展,人們也逐漸開始適應各種室內定位服務。
慣性導航系統(tǒng)(inertial navigation system,INS)采用加速度計和陀螺儀測量定位目標的加速度和角速度,利用這些數(shù)據(jù)計算出定位目標的位置、姿態(tài)、速度,在航天、航海、制導武器、車輛等領域廣泛應用。
隨著MEMS的發(fā)展和大量使用,小型INS開始出現(xiàn),并成為室內定位領域的熱點。在室內定位領域使用航位推算(Dead-reckoning,DR)為行走的用戶定位的系統(tǒng)常常被稱為步行者航位推算(PDR)系統(tǒng),PDR系統(tǒng)中除了使用INS外,比較常見的是步伐航向系統(tǒng)(Step-and-Heading System,SHS),PDR系統(tǒng)都是利用一段一段的位移從前一刻的位置推算下一刻的位置。INS是在全三維的空間中利用每個時刻的傳感器數(shù)據(jù)計算和跟蹤目標的軌跡,而SHS專門用于行人的位置估計,通過一個位移向量[distance,heading](代表每一步的步長和方向)推算行人的當前位置。
PDR系統(tǒng)成本低,使用方便,并且不依賴外部信息,也不對環(huán)境產(chǎn)生影響,但是PDR系統(tǒng)是相對定位,需要有一個外部的位置初始化,或者只能從預設原點開始定位,且僅在短期內擁有較高的精度和可靠性,隨著時間和距離的增加,PDR系統(tǒng)的累計誤差會越來越嚴重。
步伐檢測和步伐識別的準確度對PDR系統(tǒng)的定位精度起決定性的作用,目前,利用加速度計檢測人行走的步伐已經(jīng)可以達到很高的準確率,但是步伐長度的估計誤差較大。傳統(tǒng)的捷聯(lián)式慣導采取對加速度數(shù)據(jù)進行二次積分的方法來估計步長,但是和高精度的專業(yè)慣導設備比,MEMS測量到的加速度原始數(shù)據(jù)誤差較大,因此慣導定位得到的誤差會迅速增大。有一些方法將傳感器固定在鞋底、腿部、腰部等位置,通過零速修正來對每一小段位移分別進行積分運算,能達到相對較高的精度,但是將傳感器固定在特定的位置和姿態(tài)在很多情況下是不適用的。
神經(jīng)網(wǎng)絡(NN)是非線性輸入輸出映射最有效的方法之一,可以逼近任意復雜的非線性關系,并具有強大的學習能力、記憶能力和計算能力。神經(jīng)網(wǎng)絡由大量的神經(jīng)元以及神經(jīng)元之間的連接組成,在不同程度和層次上模仿人腦實際系統(tǒng)的信息處理。
技術實現(xiàn)要素:
本發(fā)明提供一種可以改善定位精度的室內慣性導航方法,技術方案如下:
一種基于bp神經(jīng)網(wǎng)絡改善的室內慣性導航方法,包括離線訓練階段與在線定位階段:
1)離線訓練階段,包括以下步驟
a.建立一個bp神經(jīng)網(wǎng)絡的步長估計模型;設置神經(jīng)網(wǎng)絡層數(shù)與神經(jīng)元數(shù)目,構建一個具有2k0個輸入和單個輸出的神經(jīng)網(wǎng)絡模型,輸入為當前時刻k之前k0個時刻的加速度與角速度數(shù)據(jù),輸出為步伐的長度;
b.獲取原始數(shù)據(jù)并進行預處理:用戶攜帶移動設備在室內移動,由移動設備中的三軸加速度傳感器與三軸角速度傳感器實時獲取,分別包含三個維度上的標量大小,記錄為時序信號序列,并進行低通濾波預處理;
c.步伐識別模型的訓練:分別收集大量各種狀態(tài)下經(jīng)步驟b預處理后的加速度與角速度數(shù)據(jù),將每一段完整的步伐所對應的各數(shù)據(jù)作為一組訓練數(shù)據(jù),對基于bp神經(jīng)網(wǎng)絡的步長估計模型進行訓練,確定模型各參數(shù)的初始值,得到初始的步伐識別模型;
2)在線定位階段,包括以下步驟
a.獲取原始數(shù)據(jù)并進行預處理:由用戶攜帶的移動設備中的三軸加速度傳感器與三軸角速度傳感器實時獲取,分別包含三個維度上的標量大小,記錄為時序信號序列,并進行低通濾波預處理;
b.步伐檢測;設置時間窗口,更新當前時間窗口的加速度和角速度;通過加速度數(shù)值與上下閾值的比較來檢測是否產(chǎn)生新的步伐;如果步伐檢測成功,則進入步驟c,否則繼續(xù)檢測;
c.步伐長度估計;將當前時間窗口中的加速度與角速度數(shù)據(jù)輸入訓練好的神經(jīng)網(wǎng)絡模型,輸出當前的步伐長度;
d.方向估計;利用設備內的磁力計測量地磁強度,估計運動方向,計算運動方向與北的夾角;
e.定位;由當前時刻k的位移計算坐標偏移,最后根據(jù)上一刻的位置,在定位過程中使用擴展卡爾曼濾波算法計算當前位置。
本發(fā)明將步伐長度的估計問題處理成加速度、角速度數(shù)據(jù)與步伐長度的映射,采集大量數(shù)據(jù)來訓練相應的基于bp神經(jīng)網(wǎng)絡步伐長度估計模型,從而獲得高精度的步長估計,在此基礎上進行室內慣性導航,改善其定位精度。
附圖說明
圖1是示出了本發(fā)明整體方法的關系框圖。
圖2是示出了使用bp神經(jīng)網(wǎng)絡改善的室內慣性導航方法的流程框圖。
具體實施方式
下面結合附圖對本發(fā)明的基于bp神經(jīng)網(wǎng)絡改善的室內慣性導航方法做進一步的描述。
以智能手機為具體實例進行說明,利用加速度計、角速度計、磁力計記錄用戶行走的數(shù)據(jù)并進行室內導航。本發(fā)明的基于bp神經(jīng)網(wǎng)絡改善的室內慣性導航方法,包括離線訓練階段與在線定位階段:
1)離線訓練階段,包括以下步驟
a.建立一個bp神經(jīng)網(wǎng)絡的步長估計模型。設置神經(jīng)網(wǎng)絡層數(shù)與神經(jīng)元數(shù)目,構建一個具有2k0個輸入和單個輸出的神經(jīng)網(wǎng)絡模型f(·),可表示為
y(k)=f(A(k-k0),…,A(k),Ω(k-k0),…,Ω(k))
其中輸入為當前k0時刻的加速度數(shù)據(jù)A(k)與角速度數(shù)據(jù)Ω(k),輸出步伐的長度。選擇激勵函數(shù)為雙曲正切函數(shù),
tanh(x)=(ex-e-x)/(ex+e-x)。
本實例中,神經(jīng)網(wǎng)絡包含一個輸入層,一個輸出層和一個隱藏層,隱藏層的結點數(shù)目為10。
b.獲取原始數(shù)據(jù)并進行預處理。由用戶攜帶的移動設備中的三軸加速度傳感器與三軸角速度傳感器實時獲取,分別包含三個維度上的標量大小,記錄為時序信號序列ax(t)、ay(t)、az(t)、ωx(t)、ωy(t)、ωz(t),分別進行實時的低通濾波,本實施例中使用一階低通濾波,如x(t)=0.7x(t)+0.3x(t-1),分別濾波之后得到的數(shù)據(jù)為a′x(t)、a′y(t)、a′z(t)、ω′x(t)、ω′y(t)、ω′z(t),
A(k)={a′x(k),a′y(k),a′z(k)},
Ω(k)={ω′x(k),ω′y(k),ω′z(k)}。
c.步長估計模型的訓練。分別收集大量各種狀態(tài)下經(jīng)步驟二預處理后的的加速度與角速度數(shù)據(jù),將每一段完整的步伐所對應的各數(shù)據(jù)的時間序列及其步伐狀態(tài)作為一組訓練數(shù)據(jù),對基于bp神經(jīng)網(wǎng)絡的步長估計模型進行訓練。
具體的,每次從訓練數(shù)據(jù)中隨機選出一組數(shù)據(jù)來訓練模型,初始化神經(jīng)網(wǎng)絡各權值參數(shù),通過前向傳播計算出神經(jīng)網(wǎng)絡模型對該數(shù)據(jù)的預測結果,與真實結果進行比較,然后后向反饋回各神經(jīng)元結點,更新個結點間的權值參數(shù),不斷重復這一過程,使結果趨于收斂。最后,通過交叉驗證確定模型各參數(shù)的初始值,得到初始的步伐識別模型f(·)。
2)在線定位階段,包括以下步驟
a.獲取原始數(shù)據(jù)并進行預處理。由行人攜帶的移動設備中的三軸加速度傳感器與三軸角速度傳感器實時獲取,分別包含三個維度上的標量大小,記錄為時序信號序列ax(t)、ay(t)、az(t)、ωx(t)、ωy(t)、ωz(t),分別進行實時的低通濾波,得到濾波后的數(shù)據(jù)為a′x(t)、a′y(t)、a′z(t)、ω′x(t)、ω′y(t)、ω′z(t),
b.步伐檢測。更新當前時間窗口的加速度和角速度分別為
Wa(k)={Ag(k-k0),Ag(k-k0+1),…,Ag(k)}
Wω(k)={ω(k-k0),ω(k-k0+1),…,ω(k)}
k0為預設的時間窗口常數(shù)。通過加速度數(shù)值與上下閾值的比較來檢測是否產(chǎn)生新的步伐。如果步伐檢測成功,則進入步驟c,否則繼續(xù)檢測。
c.步伐長度估計。將當前時間窗口中的加速度與角速度數(shù)據(jù)輸入訓練好的神經(jīng)網(wǎng)絡模型f(·),
y(k)=f(A(k-k0),…,A(k),Ω(k-k0),…,Ω(k))
即可輸出當前的步伐長度。
d.方向估計。利用設備內的磁力計測量地磁強度,估計運動方向,計算運動方向與北的夾角α。
e.定位。計算相對位移,
Δx(k)=l(k)cos(α)
Δy(k)=l(k)sin(α)
最后,根據(jù)上一刻的位置,在定位過程中使用擴展卡爾曼濾波計算當前位置。具體的,設上一時刻的位置為(x(t-1),y(t-1)),則當前時刻的位置為:
x(k)=(1-Kg)[x(k-1)+Δx(k)]+KgZy(k|k-1)
y(k)=(1-Kg)[y(k-1)+Δy(k)]+KgZy(k|k-1)
其中,Kg為計算出的卡爾曼增益,Zx和Zy為根據(jù)上一時刻位置與速度估計出的本時刻的位置。
表1是示出了一組直線行走時測試的誤差。
表1