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