基于Android端的慣性導(dǎo)航算法研究_第1頁
基于Android端的慣性導(dǎo)航算法研究_第2頁
基于Android端的慣性導(dǎo)航算法研究_第3頁
基于Android端的慣性導(dǎo)航算法研究_第4頁
基于Android端的慣性導(dǎo)航算法研究_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于Android端的慣性導(dǎo)航算法研究

作者:徐鼎孟坤李尚同

來源:《軟件導(dǎo)刊》第04期

摘要:為了在GPS定位系統(tǒng)無法定位的地方(如室內(nèi)、地下通道、地鐵站等處)進(jìn)行定位跟蹤,提出了一種基于Android智能手機(jī)的慣性導(dǎo)航算法,通過對(duì)安卓手機(jī)傳感器數(shù)據(jù)的采集,實(shí)現(xiàn)行人軌跡跟蹤,并實(shí)時(shí)顯示在手機(jī)屏幕上。在傳統(tǒng)慣性導(dǎo)航算法基礎(chǔ)上,該算法運(yùn)用人行走過程中的周期性運(yùn)動(dòng)特點(diǎn),對(duì)傳感器數(shù)據(jù)進(jìn)行修正,精確度比傳統(tǒng)慣性導(dǎo)航算法平均提高5%。該算法不受時(shí)間、地區(qū)限制,顧客只需保持手機(jī)的對(duì)的姿態(tài),正常行走即可獲得較為精確的數(shù)據(jù),滿足了脫離GPS還能實(shí)現(xiàn)室內(nèi)導(dǎo)航的需求。核心詞:Android;慣性導(dǎo)航;傳感器DOI:10.11907/rjdk.162681中圖分類號(hào):TP312文獻(xiàn)標(biāo)記碼:A

0引言現(xiàn)有的手機(jī)導(dǎo)航系統(tǒng)大多依賴GPS系統(tǒng),現(xiàn)在民用GPS系統(tǒng)精度已經(jīng)達(dá)成5m左右。但是GPS系統(tǒng)使用條件規(guī)定較高,必須確保在空曠的地方才含有較高精度,在室內(nèi)或地下等地方無用武之地。為了在GPS無法應(yīng)用的地方實(shí)現(xiàn)導(dǎo)航功效,本文提出一種基于Android智能手機(jī)傳感器的慣性導(dǎo)航算法,實(shí)現(xiàn)在手機(jī)屏幕上實(shí)時(shí)跟蹤運(yùn)動(dòng)軌跡的慣性導(dǎo)航系統(tǒng)。

1慣性導(dǎo)航慣性導(dǎo)航系統(tǒng)(INS,InertialNavigationSystem)也稱作慣性參考系統(tǒng),是一種不依賴于外部信息、也不向外部輻射能量(如無線電導(dǎo)航)的自主式導(dǎo)航系統(tǒng)。其工作環(huán)境不僅涉及空中、地面,還能夠在水下。慣性導(dǎo)航的基本原理是以牛頓力學(xué)定律為基礎(chǔ),通過測量載體在慣性參考系的加速度,將它對(duì)時(shí)間進(jìn)行積分,變換到導(dǎo)航坐標(biāo)系中,得到在導(dǎo)航坐標(biāo)系中的速度、偏航角和位置等信息。慣性導(dǎo)航系統(tǒng)屬于推算導(dǎo)航方式,即從一已知點(diǎn)的位置根據(jù)持續(xù)測得的運(yùn)動(dòng)體航向角和速度推算出下一點(diǎn)位置[1]。慣性導(dǎo)航系統(tǒng)中的陀螺儀用來形成一種導(dǎo)航坐標(biāo)系,使加速度計(jì)的測量軸穩(wěn)定在坐標(biāo)系中,并給出航向和姿態(tài)角;加速度計(jì)用來測量運(yùn)動(dòng)體的加速度,通過對(duì)時(shí)間的一次積分得到速度,速度再通過對(duì)時(shí)間的一次積分即可得到位移[2]。

2Android傳感器大多數(shù)Android設(shè)備中都內(nèi)置有各類傳感器,用來測量運(yùn)動(dòng)、方向和多個(gè)環(huán)境條件。這些傳感器能夠提供非常精確的原始數(shù)據(jù),刻畫手機(jī)的多個(gè)狀態(tài),用于監(jiān)控設(shè)備的三維運(yùn)動(dòng),或者設(shè)備周邊的環(huán)境變化等等。Android平臺(tái)支持下列3類傳感器:①位移傳感器。沿3個(gè)軸線測量加速度和旋轉(zhuǎn),包含加速度傳感器、重力傳感器、陀螺儀傳感器和矢量傳感器;②環(huán)境傳感器。測量多個(gè)環(huán)境參數(shù),例如周邊的空氣溫度、壓力、光線和濕度,包含氣壓傳感器、光線傳感器和溫度傳感器;③位置傳感器。測量設(shè)備的物理位置包含方向傳感器和磁力傳感器。開發(fā)過程中,通過使用Android傳感器提供的框架獲取原始數(shù)據(jù)。傳感器框架提供了某些類和接口,協(xié)助開發(fā)者完畢多個(gè)與傳感器有關(guān)的任務(wù)。

3加速度傳感器和方向傳感器本文提出的算法依賴于上述傳感器中的加速度傳感器和方向傳感器實(shí)現(xiàn)。3.1加速度傳感器加速度傳感器會(huì)返回X軸、Y軸和Z軸的加速度值,此處的三軸指傳感器本身表達(dá)方向的坐標(biāo)軸,而不是手機(jī)位置的空間直角坐標(biāo)軸。在Android系統(tǒng)中,用圖1所示的3條軸線來描述加速度方向。當(dāng)手機(jī)垂直放在桌面上時(shí),X軸正向?yàn)檠刂聊幌蛴业姆较?,Y軸正向?yàn)檠刂聊幌蛏系姆较?,Z軸正向?yàn)榕c屏幕平面垂直向屏幕外的方向。各軸的數(shù)值包含引力影響,單位是m/s2;將手機(jī)屏幕朝上平放在桌面上時(shí),X軸默認(rèn)為0,Y軸默認(rèn)0,Z軸默認(rèn)9.81;將手機(jī)屏幕朝下平放在桌面上時(shí),X軸默認(rèn)為0,Y軸默認(rèn)0,Z軸默認(rèn)為-9.81;將手機(jī)沿屏幕左側(cè)的邊為軸向左翻轉(zhuǎn)時(shí),X軸為正值;將手機(jī)沿屏幕右側(cè)的邊為軸向右翻轉(zhuǎn)時(shí),X軸為負(fù)值;將手機(jī)沿屏幕上側(cè)的邊為軸向上翻轉(zhuǎn)時(shí),Y軸為負(fù)值;將手機(jī)沿屏幕下側(cè)的邊為軸向下翻轉(zhuǎn)時(shí),Y軸為正值。

3.2方向傳感器安卓方向傳感器是通過軟件模擬的基于加速度傳感器和地磁傳感器的虛擬傳感器。最底層數(shù)據(jù)來源仍是硬件傳感器。方向傳感器也有三條軸,返回的值為手機(jī)不同狀態(tài)的角度值。傳感器本身三軸的數(shù)據(jù)含義闡明:將手機(jī)平放在桌面上,帶圈的一端視為手機(jī)上邊,將手機(jī)視作一種平面矩形。以該矩形的中心為O點(diǎn),手機(jī)縱向平行于側(cè)邊且過中點(diǎn)的直線為X軸,橫向平行于上下邊且過O點(diǎn)的直線為Y軸,垂直于手機(jī)屏幕且過O點(diǎn)的直線為Z軸,建立空間直角坐標(biāo)系如圖2所示(此處的三軸為空間直角坐標(biāo)軸,而不是傳感器本身的三軸)。

方向傳感器中的X:規(guī)定坐標(biāo)軸中的X正半軸為北。手機(jī)頭部指向OF方向,此時(shí)X的值為0;如果手機(jī)頭部指向OG方向,此時(shí)X值為90;指向OH方向,X值為180;指向OE,X值為270。方向傳感器中的Y:將手機(jī)沿著BC軸慢慢向上抬起,即以手機(jī)上邊為軸翻轉(zhuǎn),直到AD落到BC右邊并落在XOY平面上,這期間Y的值將在0~180之間變動(dòng);如果手機(jī)沿著AD軸慢慢翻轉(zhuǎn),直到BC落到AD左邊并且落在XOY平面上,Y的值將在0~-180之間變動(dòng)。傳感器中的Z:將手機(jī)沿AB軸向上翻轉(zhuǎn),直到CD落到AB右邊并落在XOY平面上,Z值將在0~180之間變動(dòng);如果手機(jī)沿著CD軸翻轉(zhuǎn),直到AB跑到CD左邊并且落在XOY平面上,Z值將在0~-180之間變動(dòng)。

4Android端顯示軌跡算法Android智能手機(jī)自帶的傳感器為實(shí)現(xiàn)慣性導(dǎo)航提供了必要的硬件支持。根據(jù)慣性傳感器收集的數(shù)據(jù)進(jìn)行步態(tài)檢測、動(dòng)態(tài)步長預(yù)計(jì)以及航向擬定,并在步態(tài)檢測過程中采用多條件約束的波峰—波谷檢測辦法減少偽步態(tài)識(shí)別[3]。據(jù)此,本文提出在Android手機(jī)端實(shí)現(xiàn)慣性導(dǎo)航算法。該算法包含3個(gè)部分:運(yùn)動(dòng)距離擬定算法、運(yùn)動(dòng)角度擬定算法、屏幕顯示軌跡算法。在一次運(yùn)動(dòng)過程中,將該過程分割為多個(gè)相等的較小單位時(shí)間,分別得出每個(gè)單位時(shí)間內(nèi)的運(yùn)動(dòng)距離和運(yùn)動(dòng)角度,并在每個(gè)單位時(shí)間結(jié)束時(shí)實(shí)時(shí)更新運(yùn)動(dòng)軌跡點(diǎn),即可在屏幕上繪制出整個(gè)運(yùn)動(dòng)過程的軌跡。

4.1運(yùn)動(dòng)距離擬定算法假設(shè)手機(jī)持有者水平手持手機(jī)運(yùn)動(dòng),手機(jī)上邊頭部方向與人面對(duì)方向一致。手機(jī)持有者運(yùn)動(dòng)前先輸入步長值,然后開始運(yùn)動(dòng)。運(yùn)動(dòng)過程中,首先通過傳感器獲得傳感器3個(gè)軸的加速度大小和方向。由于手機(jī)持有者每邁進(jìn)一步都會(huì)使得加速度傳感器的Z軸數(shù)據(jù)出現(xiàn)一次波動(dòng),每次波動(dòng)狀況非??拷?,從而在整個(gè)運(yùn)動(dòng)過程中能夠獲得一條運(yùn)動(dòng)的正弦曲線軌跡。然后對(duì)運(yùn)動(dòng)過程進(jìn)行峰值檢測,與上一次統(tǒng)計(jì)的加速度大小進(jìn)行比較,得到加速度大小的變化量,從而判斷現(xiàn)在加速度的方向,并和上一次統(tǒng)計(jì)的加速度方向進(jìn)行比較,如果方向相反,則表達(dá)剛過峰值,此時(shí)執(zhí)行計(jì)步邏輯開始計(jì)步,反之則舍棄數(shù)據(jù)。在計(jì)步邏輯中,以一種峰值出現(xiàn)的周期為計(jì)步時(shí)間,在該時(shí)間內(nèi),將獲取到的加速度變化量進(jìn)行二次積分,得出該時(shí)間內(nèi)的位移。如果數(shù)據(jù)十分精確,這段位移應(yīng)當(dāng)與持有者的步長相差無幾,但實(shí)際狀況下,手機(jī)加速度傳感器的采樣頻率不高,加上人類動(dòng)作復(fù)雜,造成加速度傳感器的讀數(shù)誤差較大[4]。可在峰值檢測時(shí)加上閾值頻率判斷,過濾干擾數(shù)據(jù)。另首先,將計(jì)算出的位移與持有者步長進(jìn)行比較,如果差距較大,則取初始輸入的步長值為實(shí)際步長值,如果差距較小,則取兩者的平均值為實(shí)際步長值。最后將獲得的步數(shù)乘以實(shí)際步長值即可得出運(yùn)動(dòng)距離。

4.2運(yùn)動(dòng)方向擬定算法假設(shè)手機(jī)持有者在運(yùn)動(dòng)中水平手持手機(jī),手機(jī)上邊頭部方向與人面對(duì)方向一致。手機(jī)持有者在轉(zhuǎn)彎時(shí),通過讀取方向傳感器的X值獲得現(xiàn)在手機(jī)朝向。由于手機(jī)頭部朝向與人面對(duì)方向一致,因此該值即為手機(jī)持有者的運(yùn)動(dòng)偏轉(zhuǎn)角度。轉(zhuǎn)向過程中手機(jī)的側(cè)面會(huì)不可避免地出現(xiàn)少量抬起,造成其它軸出現(xiàn)數(shù)據(jù)波動(dòng),因此應(yīng)當(dāng)舍棄這些波動(dòng)數(shù)據(jù)。4.3屏幕顯示軌跡算法通過以上兩種方法分別獲得運(yùn)動(dòng)過程中的距離與角度,同時(shí)調(diào)用安卓程序接口,在手機(jī)屏幕上繪制有關(guān)軌跡。當(dāng)手機(jī)持有者直線行走時(shí),根據(jù)檢測到的峰值,將每個(gè)峰值在屏幕上繪制一條線段,該線段的長度與初始行走時(shí)輸入的步長形成一種固定比例,后續(xù)每次峰值出現(xiàn),就按照該比例繪制一條線段,以每次峰值出現(xiàn)到下一次峰值出現(xiàn)為一種時(shí)間戳,重復(fù)繪制線段。當(dāng)手機(jī)持有者開始轉(zhuǎn)向時(shí),方向傳感器便能讀取到X軸有較大變化,當(dāng)方向傳感器的X軸穩(wěn)定到一定程度不再出現(xiàn)較大變化時(shí),轉(zhuǎn)向結(jié)束,應(yīng)當(dāng)立刻讀取方向傳感器的角度值,并在屏幕上根據(jù)方向傳感器返回的角度立刻朝新的方向繪制線段。運(yùn)動(dòng)結(jié)束時(shí)屏幕上即可顯示運(yùn)動(dòng)軌跡。將事先制作好的地圖放在屏幕上作為背景圖片,即可顯示出地圖軌跡。

5算法測試為驗(yàn)證算法可行性,筆者根據(jù)該算法開發(fā)出了APP雛形,通過多次測試后,獲得了有關(guān)數(shù)據(jù)。

5.1測試環(huán)境測試環(huán)境地圖如圖3所示。其中橙色星標(biāo)部分為運(yùn)動(dòng)起點(diǎn)。初始狀態(tài),手機(jī)持有者打開程序,保持手機(jī)平放在手掌中,面部朝向與手機(jī)頭部朝向保持一致,輸入步長為0.6m,從起點(diǎn)開始正常行走。

5.2測試成果行走過程測試結(jié)束后,手機(jī)上繪制的途徑如圖4所示。對(duì)測試過程進(jìn)行數(shù)據(jù)取樣,摘取其中一段直線途徑的9組數(shù)據(jù)如表1所示。表1數(shù)據(jù)顯示了程序計(jì)算的距離和實(shí)際距離,將實(shí)際距離與計(jì)算距離的差值絕對(duì)值認(rèn)為是一組數(shù)據(jù)的誤差,則10組數(shù)據(jù)的平均誤差為0.18m。

6結(jié)語基于Android手機(jī)傳感器的慣性導(dǎo)航算法,運(yùn)用Android手機(jī)的加速度傳感器和方向傳感器分別獲取運(yùn)動(dòng)時(shí)的加速度和運(yùn)動(dòng)角度,通過加速度的變化規(guī)律推測步數(shù),運(yùn)用加速度變化量計(jì)算步長,并通過與預(yù)設(shè)步長比較進(jìn)行步長修正,再根據(jù)角度變化判斷運(yùn)動(dòng)轉(zhuǎn)向,從而繪制出運(yùn)動(dòng)軌跡,算法切實(shí)可行,可精確到0.2m以內(nèi),足以滿足室內(nèi)導(dǎo)航需求。

參考文獻(xiàn):[1]王凡.智能車輛中基于GPS和陀螺儀的導(dǎo)航與定位[D].北京:北京工業(yè)大學(xué),.

[2]賈振興.導(dǎo)彈飛行過程仿真軟件設(shè)計(jì)[D].北京:北京郵電大學(xué),.

[3]王旭鳳.基于慣性導(dǎo)航的室內(nèi)定位系統(tǒng)的研究[D].長春:吉林大學(xué),.

[4]王鄭合.基于智能手機(jī)的慣性導(dǎo)航軌跡生成算法[J].工礦自動(dòng)化,,41(5):8790.

[5]蘇亞光,吳亞峰,索依娜.Android平臺(tái)下傳感器技術(shù)開發(fā)計(jì)步器應(yīng)用[J].電腦編程技巧與維護(hù),(23):4046.

[6]段丙濤.基于慣性傳感器的機(jī)器人運(yùn)動(dòng)軌跡研究及實(shí)現(xiàn)[D].成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論