曹娟, 崔學榮, 李娟, 張國平
(1.中國石油大學(華東) 計算機科學與技術(shù)學院, 山東 青島 266580;2.中國石油大學(華東) 海洋與空間信息學院, 山東 青島 266580)
在移動互聯(lián)網(wǎng)技術(shù)和通信行業(yè)快速發(fā)展的推動下,定位服務日益受到人們的關(guān)注與應用。相關(guān)研究表明,如今人們在室內(nèi)的時間已經(jīng)超過70%。但因為室內(nèi)環(huán)境復雜多變,全球定位系統(tǒng)(Global Positioning System,GPS)受建筑物等的遮擋,無法為用戶提供較為準確的定位服務。因此研究高精度的室內(nèi)定位方法是非常有必要的。常見的室內(nèi)定位技術(shù)主要有WI-FI定位[1]、藍牙定位[2]、ZigBee定位[3]和地磁定位[4]等。這些室內(nèi)定位技術(shù)存在不同缺點,例如信號不穩(wěn)定、易受干擾、成本高等缺點,所以難以實現(xiàn)廣泛推廣與應用。
行人航位推算(Pedestrian Dead Reckoning,PDR)[5-6]可在已知初始位置的情況下,推算出行人在任一時刻的位置[7]。PDR定位基于設備中集成的傳感器實現(xiàn)完全自主定位,不易受外界環(huán)境干擾[8],具有成本低且短時間定位精度高等優(yōu)點。微機電系統(tǒng)(Micro-Electro-Mechanical System, MEMS)慣性傳感器逐漸形成樣式小、功耗低的特點[9],這為使用移動終端進行PDR定位提供了可能。
文獻[10]中提出了一種借助建筑幾何信息實現(xiàn)行人航向的實時補償方案,通過提高定向精度來抑制定位誤差的累積傳遞。但是借助建筑物信息時可能會引入額外誤差;文獻[11]利用加速度二次積分及步長滑動窗口法進行在線步長估計的方法,但是加速度二次積分的誤差很難消除。文獻[12]中,提出了一種基于神經(jīng)網(wǎng)絡和智能手機內(nèi)置多傳感器融合的PDR室內(nèi)定位方法,但是計算復雜度較高,不適用于手機客戶端。通過分析行人運動模型及步行姿態(tài),設計了一種基于零速檢測的加速度量測幅值計步算法,實現(xiàn)了載體坐標系和行人地理坐標系的轉(zhuǎn)換,剔除了偽零速現(xiàn)象[13]。雖然該算法的計步準確率和環(huán)境適應度較高,但是實驗室需要慣性傳感器設備綁在腳部,應用性較差。朱莊生等[14]人提出了一種多源信息自適應步態(tài)檢測算法。該方法通過綜合考慮人體運動過程中的加速度信號和角速度信號,根據(jù)不同的步態(tài)特征通過設定不同的自適應閾值條件實現(xiàn)步數(shù)的檢測。算法可以適用于不同的運動狀態(tài),步數(shù)檢測的準確率高于峰值檢測和閾值檢測方法。文獻[15]采用的傳感器為加速度傳感器和電子羅盤,把定位結(jié)果與真實路徑進行匹配,來減小航向估計的誤差,但是地圖中采集真實路徑時容易帶入誤差;Fan Qigao等[16]人提出了一種改進的行人航位推算算法,主要包括改進的步長估計和航向估計。使用小波去噪算法對原始信號進行預處理,然后利用多閾值方法以改善步長估計算法,針對航向估計誤差和離群值的問題,提出了魯棒的自適應卡爾曼濾波算法,并結(jié)合互補濾波提高定位精度。
本文主要從步頻檢測和航向判斷兩方面對PDR算法進行改進。提出了一種相鄰波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法以及卡爾曼濾波融合多傳感器的航向估計方法。
行人航位推算是一個不斷累積迭代的過程,通過采集慣性傳感器的數(shù)據(jù),估計出行人步數(shù)、步長和航向信息,用于估算下一步位置。因此,只要知道前一時刻的位置信息,就可以計算出當前位置。令當前時刻的位置為LN,如式(1)。
(1)
本文針對步頻檢測提出了一種相鄰波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法。具體算法如下。
(1) 運動狀態(tài)判斷:采用滑動窗口方法求原始加速度的均值和方差,若方差大于某一閾值則認為處于運動狀態(tài),否則為靜止狀態(tài);
(2) 首次判斷波峰/波谷:設置校驗點,若校驗點為波峰/波谷,則對該采樣頻率內(nèi)的數(shù)據(jù)去均值化,尋找波峰和波谷,并設置一次閾值,過濾掉一部分不屬于正常行走的加速度值。設置校驗點的目的是為了減少計算量;
(3) 尋找相鄰波峰/波谷中的最大和最小值:經(jīng)過上述判斷后,從相鄰波峰/波谷中尋找最大和最小值,去掉偽波峰和偽波谷;
(4) 二次判斷波峰/波谷:根據(jù)上一步確定好的波峰波谷的狀態(tài),再次判斷校驗點是否為波峰/波谷,避免偽波峰(波谷)的干擾;
(5) 多重閾值校驗:若校驗點滿足波峰/波谷,則采用滑動窗口法,計算最近三步波峰的均值和方差,若均值和方差以及兩次波峰之間的時間差小于某一閾值,經(jīng)過多次試驗最終確定的峰值方差的閾值為σ<5,當前峰值P與均值μ滿足P-μ<2,時間差T<300即可認為是走了一步,步數(shù)加一。
采集到的原始加速度,如圖1所示。
圖1 原始加速度信號圖
采用該方法處理過的加速度數(shù)據(jù),如圖2所示。
圖2 處理后的加速度信號圖
兩圖對比發(fā)現(xiàn)該算法可以很好地過濾掉偽波峰和偽波谷。
方向傳感器獲取的是絕對方向,不存在誤差累積,但磁力計的精度容易受磁干擾的影響,而使航向估計出現(xiàn)誤差;陀螺儀短時間內(nèi)精度高,受環(huán)境干擾極小,但存在誤差累積。結(jié)合兩者的優(yōu)缺點,本文用加速度傳感器和磁力計模擬方向傳感器,其值作為狀態(tài)值,用卡爾曼濾波算法與陀螺儀進行融合,減小航向估計中的漂移現(xiàn)象。
卡爾曼濾波常用于線性模型,是一種自回歸濾波器,濾波效率很高。濾波過程可以用式(2)和式(3)表示,分為兩個過程:時間更新和測量更新。前者實際是一個預測過程,根據(jù)先驗知識預測當前狀態(tài)并計算先驗估計的協(xié)方差,后者是一個更新校正過程。
(1) 預測過程,如式(2)。
Pk-=APk-1AT+Q
(2)
(2) 更新過程,如式(3)。
K=Pk-HT(HPk-HT+R)-
Pk=(E-KH)Pk-
(3)
式中,X表示狀態(tài)值;Z表示測量值;A和B表示系統(tǒng)狀態(tài);K表示卡爾曼增益;P表示預測估計協(xié)方差矩陣;Q和R分別表示過程噪聲與測量噪聲,實驗中其初取分別取為0.01和0.05,H為觀測矩陣。
實驗時采用不同品牌不同型號的手機進行驗證,例如vivo X27、小米6、紅米note5、oppo R17等。本文的實驗結(jié)果以華為榮耀8手機為例,手機系統(tǒng)為Android7.0。實驗地點選取中國石油大學(華東)工科樓E座1樓大廳,平面圖,如圖3所示。
圖3 室內(nèi)平面圖
其中實驗區(qū)域為中間走廊,長為38.5米,寬為12.8米。
對于步頻驗證實驗,在25-200步范圍內(nèi)共采集了8個不同區(qū)間的步數(shù)。每個步數(shù)區(qū)間各進行5次試驗并取平均值作為最終的步頻計數(shù)。實驗時采集不同身高、不同體重行人的不同行走速度下的步頻情況,實驗結(jié)果,如圖4所示。
圖4 步頻估計結(jié)果對比圖
實驗步數(shù)與真實步數(shù)較為接近,步數(shù)差別在3步左右,準確率為98%。圖4中調(diào)用系統(tǒng)計步傳感器方法是指調(diào)用華為榮耀8手機中的TYPE_STEP_COUNTER傳感器。該方法采用的是系統(tǒng)回調(diào)而非查詢的方式,定位初始階段無法實時獲取步數(shù),因此并不適用于PDR定位;波峰(波谷)及時間聯(lián)合推算方法指波峰(波谷)檢測與時間閾值結(jié)合。
實驗結(jié)果表明,改進的相鄰波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法的步頻最接近真實,使步頻估計的準確率得以提高。
采用提出的卡爾曼濾波融合加速度傳感器、磁力計和陀螺儀的方法,在多次轉(zhuǎn)彎的情況下平均航向誤差為13.6°,比用互補濾波方法的航向估計誤差38°有較大提高,與真實值更接近,如圖5所示。
圖5 航向判斷結(jié)果圖
為驗證改進的相鄰波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法以及卡爾曼濾波融合多傳感器的航向估計方法對于PDR定位的準確性,選取圖6中的A點為起始點,沿圖中藍色(深色直線)線條軌跡進行實驗。先后經(jīng)過B、C、D、E和F之后,回到A,如圖6所示。
圖6 實驗結(jié)果圖
圖6中紅色(深色虛線)軌跡的航向計算采用本文提出的卡爾曼濾波融合多傳感器的方法,步頻計算為本文提出的波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法,實驗結(jié)果為圖中的步數(shù)1和距離1所示;黃色(淺色虛線)軌跡的航向計算采用互補濾波,步頻計算采用回調(diào)系統(tǒng)計步傳感器的方法,實驗結(jié)果為圖中的步數(shù)2和距離2所示。實驗中整個軌跡的真實長度為92.5 m,用本文提出的步頻推算方法結(jié)合多傳感器融合的航向判斷,單次試驗得到的結(jié)果為91 m,誤差為1.5 m。經(jīng)過多次試驗統(tǒng)計后,平均誤差為1.8 m。
對于PDR定位,本文從步頻檢測、航向判斷兩方面進行了改進,提出了一種相鄰波峰(波谷)二次判斷及多重閾值聯(lián)合的步頻推算方法,可以較好地過濾掉抖動手機產(chǎn)生的“假步”,步頻檢測的準確率可達到98%;采用提出的卡爾曼融合多傳感器的航向判斷方法平均航向誤差為13.6°。在多次轉(zhuǎn)彎后,PDR定位誤差可以達到1.8 m。
利用文中的方法并不能完全消除PDR定位中的累積誤差。文中采用的步長為固定步長,不能根據(jù)不同行人自適應步長,會使定位誤差較大。因此未來可以研究自適應步長計算方法,根據(jù)不同行人計算不同步長,以此來降低誤差。