涂巧玲,鄧 英,余成波
(重慶理工大學(xué) 電氣與電子工程學(xué)院,重慶 400054)
近年來(lái),隨著人們對(duì)位置服務(wù)需求的逐漸擴(kuò)大,不管是基于GPS或是北斗的室外定位都已在實(shí)際生活中廣為所用。但很多時(shí)候人們從室外進(jìn)入室內(nèi)環(huán)境后,會(huì)發(fā)現(xiàn)定位精度逐漸降低,這是由于GPS和北斗定位在室內(nèi)環(huán)境中易受非視距與多徑效應(yīng)的影響,從而使其衛(wèi)星信號(hào)衰減嚴(yán)重,因此室內(nèi)定位逐步成為新的研究熱點(diǎn)[1-7]。手機(jī)作為目前發(fā)展最迅速的產(chǎn)業(yè),因其感知前端具有多傳感器融合、多媒體信息傳輸和存儲(chǔ)等突出優(yōu)點(diǎn),而被作為新的室內(nèi)定位研究技術(shù)要點(diǎn),直接利用手機(jī)內(nèi)置的慣性傳感器[2],包括加速度傳感器、陀螺儀、方向傳感器以及磁力計(jì)等進(jìn)行行人航位推算(PDR),實(shí)現(xiàn)室內(nèi)定位。
單一使用手機(jī)內(nèi)置慣性傳感器進(jìn)行定位推算,很容易出現(xiàn)累積誤差導(dǎo)致定位結(jié)果精度以及可靠性偏低的問(wèn)題,故可將不同定位技術(shù)進(jìn)行融合,以獲得更高的定位精度。文獻(xiàn)[3]提出了PDR與WiFi進(jìn)行融合定位;文獻(xiàn)[4]融入了地磁數(shù)據(jù)進(jìn)行定位,但在PDR中,除了消除累積誤差以外,在實(shí)際應(yīng)用中,由于室內(nèi)環(huán)境人員非步態(tài)干擾以及手機(jī)設(shè)備抖動(dòng)等影響,采集的多種傳感器信號(hào)易產(chǎn)生漂移和失真,即使行人航位推算算法精度再高也無(wú)法消除信號(hào)強(qiáng)度失真造成的定位誤差,所以必須對(duì)采集到的信號(hào)進(jìn)行濾波去噪處理。文獻(xiàn)[5-6]中采用單一的卡爾曼濾波和粒子濾波對(duì)信號(hào)作處理,但對(duì)于信號(hào)波動(dòng)明顯的采樣點(diǎn),其濾波效果不明顯,同時(shí)會(huì)制約卡爾曼濾波的收斂速度。
針對(duì)多傳感器中信號(hào)易受室內(nèi)復(fù)雜環(huán)境、人員非步態(tài)干擾以及自身漂移的影響,導(dǎo)致定位精度低、實(shí)時(shí)性差和魯棒性不強(qiáng)等問(wèn)題,本文提出一種改進(jìn)的卡爾曼濾波對(duì)多傳感器信號(hào)進(jìn)行處理,用于推算用戶最優(yōu)估計(jì)位置,提高實(shí)際定位精度和穩(wěn)定性。
利用智能手機(jī)內(nèi)置的慣性傳感器實(shí)現(xiàn)多傳感器融合的室內(nèi)定位方法,主要采用方向傳感器和加速度傳感器。其中,方向傳感器是一種合成傳感器,可為用戶提供一個(gè)相對(duì)于正北方向的磁偏角,直接作為行人航位推算的基本角度數(shù)據(jù)。加速度傳感器可為用戶提供實(shí)時(shí)的加速度數(shù)據(jù),并顯示行人的運(yùn)動(dòng)狀態(tài),將兩者信息經(jīng)過(guò)行人航位推算算法(pedestrian dead reckoning,PDR)[8],獲得行人運(yùn)動(dòng)軌跡,其原理如圖1所示。
圖1 PDR原理示意圖
由圖1所示,已知行人t0時(shí)刻初始位置為:(X0,Y0),Ln為tk時(shí)刻的步伐長(zhǎng)度,θn為tk時(shí)刻航向角,則tk時(shí)刻的位置用式(1)計(jì)算:
可見(jiàn),直接影響室內(nèi)定位行人航位推算精度的主要因素為初始位置坐標(biāo)、方向傳感器的航向數(shù)據(jù)、計(jì)步數(shù)據(jù)的準(zhǔn)確性以及可靠的步長(zhǎng)估計(jì)模型。
由于人體在長(zhǎng)時(shí)間內(nèi)的行為習(xí)慣以及路面情況的多變性,造成步伐長(zhǎng)度的估計(jì)困難。目前對(duì)行人步伐長(zhǎng)度的估計(jì)主要有3種模型:常數(shù)模型、線性模型和非線性模型。其模型計(jì)算公式如下:
常數(shù)模型:
通過(guò)預(yù)期對(duì)大量的已知長(zhǎng)度的步伐進(jìn)行測(cè)量,比較建模后,得出一個(gè)在短距離估計(jì)下的步伐長(zhǎng)度平均值A(chǔ)。
線性模型:
式中:a、b、c均為通過(guò)訓(xùn)練求解得出的線性回歸參數(shù);f為當(dāng)前的周期頻率值;v為當(dāng)前步伐加速度的方差;γ為高斯噪聲[9]。但由于環(huán)境因素的干擾以及智能手機(jī)系統(tǒng)存在一定的延誤,會(huì)造成步伐頻率和加速度統(tǒng)計(jì)量的誤差和不規(guī)律性。
非線性模型:
式中:amax、amin為三軸加速度的最大值和最小值;K為模型參量[10],但針對(duì)不同行人的不同環(huán)境情況建立不同非線性模型,其模型參量K值也不同。
由于采用變長(zhǎng)會(huì)增加算法時(shí)間復(fù)雜度,且本文主要研究濾波算法對(duì)多傳感器融合的室內(nèi)定位精度的提高,在短距離內(nèi)對(duì)行人信息的采集和定位,選用常數(shù)步長(zhǎng)模型就能滿足本文的步伐長(zhǎng)度估計(jì)要求[9]。本文選取了10名成年志愿者對(duì)其在正常狀態(tài)下的多組步伐長(zhǎng)度進(jìn)行測(cè)量,得出步伐長(zhǎng)度均在0.5~0.7 m,故本文步伐長(zhǎng)度取值為L(zhǎng)=0.6 m。
研究行人步數(shù)特征,引入了X、Y、Z三軸加速度參數(shù),通過(guò)計(jì)算三軸加速度矢量和的方法,來(lái)進(jìn)一步統(tǒng)計(jì)行人步數(shù),如式(5)所示。
理論上,行人在靜止情況下,手握手機(jī)設(shè)備進(jìn)行數(shù)據(jù)獲取,得到的X、Y、Z三軸加速度矢量和應(yīng)等于重力加速度g,但是在實(shí)際測(cè)量中,手機(jī)內(nèi)置的多種傳感器檢測(cè)精度有限[11],且存在行人非步態(tài)動(dòng)作的干擾,在靜止?fàn)顟B(tài)測(cè)得的加速度數(shù)據(jù)也會(huì)出現(xiàn)輕微的抖動(dòng)現(xiàn)象,如圖2所示,并求出X、Y、Z三軸加速度矢量和。經(jīng)過(guò)多次測(cè)量,得出加速度傳感器采集X、Y、Z三軸方向上的加速度,受非步態(tài)干擾的波動(dòng)范圍約為0.3 m/s2,為降低這些干擾數(shù)據(jù)的影響,行人航位推算算法應(yīng)首先對(duì)原始加速度數(shù)據(jù)進(jìn)行預(yù)處理。
圖2 靜止?fàn)顟B(tài)下三軸加速度以及矢量和曲線圖
為了進(jìn)一步統(tǒng)計(jì)行人步數(shù),在運(yùn)動(dòng)過(guò)程中引入上述三軸加速度矢量和A,其值在重力加速度g附近上下波動(dòng),且具有周期性。因此,本文采用設(shè)置上下閾值的方法來(lái)確定加速度矢量和的波峰波谷。假定選取的上閾值為(g+f),下閾值為(gf),對(duì)閾值上下值進(jìn)行分級(jí)處理[11-12]。如式(6)所示:
式中:i為采樣點(diǎn)個(gè)數(shù);Ai表示第i個(gè)樣本點(diǎn)經(jīng)過(guò)預(yù)處理濾波后的加速度矢量和,其中g(shù)=9.8 m/s2,f=Ai-g∈[Amin,Amax],即為加速度矢量和減去重力加速度[12],考慮到運(yùn)動(dòng)過(guò)程中非步態(tài)以及其他運(yùn)動(dòng)動(dòng)作的干擾,f取值為0.5[13]。
依據(jù)行人步伐特征,只有當(dāng)連續(xù)檢測(cè)到的狀態(tài)為“波峰狀態(tài)-過(guò)度狀態(tài)-波谷狀態(tài)”時(shí)[13],才能判斷為一個(gè)有效的步數(shù)周期,以此來(lái)統(tǒng)計(jì)行人的步數(shù)。
針對(duì)多傳感器信息采集階段,易受行人非步態(tài)干擾,直接采集加速度傳感器數(shù)據(jù)而不做任何處理,即使在靜止?fàn)顟B(tài)下也會(huì)出現(xiàn)跳躍不穩(wěn)定或推擠的現(xiàn)象,使得讀取的數(shù)據(jù)波動(dòng)明顯、誤差大且穩(wěn)定性差,因此在采集階段,利用卡爾曼濾波器對(duì)非步態(tài)特征下的數(shù)據(jù)進(jìn)行最優(yōu)預(yù)測(cè),消除線性隨機(jī)微分系統(tǒng)和測(cè)量過(guò)程產(chǎn)生的高斯白噪聲。
卡爾曼濾波算法(Kalman filter algorithm)是一種線性最小方差估計(jì),其主要過(guò)程包括預(yù)估與校正,是以最小均方誤差為最佳估計(jì)準(zhǔn)則,建立信號(hào)和噪聲狀態(tài)空間模型,利用前一時(shí)刻的估計(jì)值和當(dāng)前時(shí)刻的觀測(cè)值來(lái)更新對(duì)狀態(tài)變量的估計(jì),求出當(dāng)前時(shí)刻的估計(jì)值[14],具有最優(yōu)化自回歸數(shù)據(jù)處理算法的特點(diǎn)。其流程如圖3所示。圖3中A、B為系統(tǒng)參數(shù)、U(k)是k時(shí)刻對(duì)系統(tǒng)的控制量、Z(k)是k時(shí)刻的測(cè)量值、H是測(cè)量系統(tǒng)的參數(shù)、W(k)和V(k)分別表示過(guò)程和測(cè)量的噪聲、Q和R分別為過(guò)程噪聲和觀測(cè)噪聲的協(xié)方差、U(k)為現(xiàn)在狀態(tài)的控制量、A′表示A的轉(zhuǎn)置矩陣。
由于加速度傳感器測(cè)量在實(shí)際環(huán)境中存在人員擾動(dòng)及其他設(shè)備的干擾,使得加速度傳感器讀出的數(shù)值和真實(shí)加速度存在一定的偏差,其影響測(cè)量結(jié)果的因素主要包括:直流分量和隨機(jī)噪聲,即:
其中,A為測(cè)量加速度值;a為真實(shí)加速度值;a′為直流分量值;n為隨機(jī)噪聲[15]。在系統(tǒng)初始化時(shí),對(duì)加速度傳感器進(jìn)行多次測(cè)量,利用均值的方法預(yù)先對(duì)直流分量加以矯正[15]。但是由于隨機(jī)噪聲的不可測(cè)量性,無(wú)法采用多次實(shí)驗(yàn)進(jìn)行預(yù)先矯正,所以本文采用卡爾曼濾波的方法消除隨機(jī)噪聲。其過(guò)程如圖4所示。
圖3 卡爾曼濾波流程框圖
圖4 加速度信號(hào)濾波流程框圖
根據(jù)以上條件得到加速度信號(hào)采集系統(tǒng)狀態(tài)模型如下[16]:
同理可得Y軸和Z軸加速度信號(hào)采集系統(tǒng)狀態(tài)模型為:
在實(shí)驗(yàn)室環(huán)境下,采用華為榮耀8X智能Android手機(jī)作為測(cè)試機(jī),已知初始位置信息,打開(kāi)采樣App,其加速度傳感器采樣頻率為100 Hz,運(yùn)動(dòng)學(xué)指出行人正常行走的步伐頻率約在0.5~5 Hz,為便于測(cè)量,確定實(shí)際行人步伐頻率約為1 Hz。將手機(jī)平移到距地面1.2 m左右的高度按照預(yù)定路線做勻速移動(dòng),實(shí)際行走步數(shù)為30步,對(duì)采集到的X、Y、Z三軸加速度進(jìn)行卡爾曼濾波處理后,求取三軸加速度矢量和,再根據(jù)閾值分級(jí)的步態(tài)檢測(cè)方法,得出經(jīng)卡爾曼濾波處理后的行人步數(shù)值。其濾波結(jié)果如圖5所示。
未經(jīng)卡爾曼濾波處理前的加速度矢量和噪聲波動(dòng)大,經(jīng)閾值分級(jí)步態(tài)檢測(cè)方法得到步數(shù)統(tǒng)計(jì)值為48步,與實(shí)際行走步數(shù)值相差較大。
由圖5可知:將卡爾曼濾波應(yīng)用在多傳感器信號(hào)處理上,可以有效濾除由于人員擾動(dòng)、信號(hào)多徑效應(yīng)等因素引起的信號(hào)噪聲,其步數(shù)統(tǒng)計(jì)值為37步,提高了步數(shù)檢測(cè)精度;但在加速度數(shù)據(jù)噪聲過(guò)大時(shí),其收斂速度變慢,且數(shù)據(jù)穩(wěn)定性也較差。
針對(duì)上述單獨(dú)使用卡爾曼濾波處理加速度數(shù)據(jù)時(shí),對(duì)于數(shù)據(jù)輸出波動(dòng)明顯的采集點(diǎn),在環(huán)境干擾下產(chǎn)生的噪聲較大時(shí)會(huì)直接影響卡爾曼濾波的收斂速度變慢、數(shù)據(jù)穩(wěn)定性變差[17]。所以,結(jié)合系統(tǒng)響應(yīng)速度以及濾波效果,將濾波算法作改進(jìn),結(jié)合均值濾波對(duì)干擾幅度較大、瞬時(shí)的脈沖信號(hào)具有較好的消除效果。采用多次濾波算法作為加速度數(shù)據(jù)的預(yù)處理,以均值濾波中連續(xù)N次采集數(shù)據(jù)為一組,進(jìn)行一次濾波,將濾波結(jié)果作為卡爾曼濾波的輸入量,進(jìn)行二次濾波[18],得到穩(wěn)定性、可靠性以及實(shí)時(shí)性更好的濾波效果。
經(jīng)典均值濾波基本原理為:
該算法針對(duì)連續(xù)采樣得到的數(shù)據(jù),首先定義一個(gè)固定長(zhǎng)度為M的觀察窗,將新采集到的樣本點(diǎn)數(shù)據(jù)放入隊(duì)首,并將隊(duì)尾的數(shù)據(jù)刪除,計(jì)算觀察窗中最新的M個(gè)數(shù)據(jù)的平均值作為濾波后的結(jié)果[20]。其基本原理如圖6所示。
圖6 均值濾波器基本原理框圖
在多傳感器信號(hào)采集階段,考慮到濾波效果和算法對(duì)內(nèi)存的消耗會(huì)影響運(yùn)行時(shí)間,故對(duì)加速度傳感器測(cè)得的X、Y、Z三軸加速度分別取M=10、M=15和M=20作均值濾波處理[19],以處理后的數(shù)據(jù)作為一次測(cè)量值,再利用卡爾曼濾波進(jìn)行遞歸運(yùn)算[21],求取三軸加速度矢量和以及行人步數(shù)值。其實(shí)驗(yàn)結(jié)果如圖7所示。
對(duì)比圖7(a)~(c)可知:當(dāng)M取10~20時(shí),隨著M值的增大,濾波算法對(duì)加速度結(jié)果的優(yōu)化效果越明顯,但當(dāng)M取20時(shí),會(huì)丟失掉有用的加速度數(shù)據(jù),故結(jié)合濾波效果、步數(shù)檢測(cè)結(jié)果以及運(yùn)行時(shí)間,當(dāng)M取15時(shí),其濾波效果優(yōu)于單獨(dú)使用卡爾曼濾波,并且得到的步數(shù)檢測(cè)值為28步,與實(shí)際步數(shù)值更加接近。綜上,采用均值濾波+卡爾曼濾波對(duì)加速度數(shù)據(jù)處理,可以有效抑制信號(hào)干擾,提高相應(yīng)速度,降低平均運(yùn)行時(shí)間,提高步數(shù)檢測(cè)精度,并為實(shí)時(shí)定位提供更為穩(wěn)定、平滑的數(shù)據(jù)值。
圖7 不同M取值下的加速度矢量和以及步數(shù)檢測(cè)值
根據(jù)以上改進(jìn)卡爾曼濾波處理,得到優(yōu)化后的多傳感器室內(nèi)定位流程[22],如圖8所示。
圖8 多傳感器室內(nèi)定位流程框圖
實(shí)驗(yàn)驗(yàn)證本文對(duì)濾波算法的改進(jìn),實(shí)驗(yàn)區(qū)域選用10 m×36 m的辦公區(qū)域,其環(huán)境平面如圖9所示,包括辦公室和走廊,室內(nèi)環(huán)境復(fù)雜度較高。為了加大實(shí)驗(yàn)數(shù)據(jù),增加路徑2進(jìn)行數(shù)據(jù)分析,實(shí)際行走步數(shù)為30步,其中黑色線路代表路徑1,灰色線路代表路徑2。
圖9 實(shí)驗(yàn)環(huán)境平面示意圖
改進(jìn)卡爾曼濾波對(duì)路徑1和路徑2的加速度信號(hào)作處理,得到優(yōu)化后的傳感器數(shù)據(jù),進(jìn)行行人航位推算,得到路徑實(shí)驗(yàn)結(jié)果,如圖10所示。
圖10 不同濾波處理下的路徑結(jié)果
在行人非步態(tài)干擾和傳感器自身測(cè)量漂移下,改進(jìn)的卡爾曼濾波對(duì)加速度處理后得到的定位路徑相比單一的卡爾曼濾波處理更加貼近真實(shí)路徑[23],且步數(shù)檢測(cè)也更加接近真實(shí)值。
由圖11可知:在本次定位處理中,無(wú)濾波處理的定位精度較低,在短距離4 m內(nèi)的定位精度只有26.8%;在經(jīng)過(guò)卡爾曼濾波處理后,3 m內(nèi)的定位精度可達(dá)70.7%,但在2 m內(nèi)的定位精度只有31.7%。為此,以均值濾波處理后的數(shù)據(jù)作為一次測(cè)量值再利用卡爾曼濾波進(jìn)行遞歸運(yùn)算,其定位精度在2 m 內(nèi)達(dá)到89%,在1 m 內(nèi)達(dá)到68.2%。
Android手機(jī)端實(shí)時(shí)采集信號(hào)及定位結(jié)果如圖12所示。
圖11 不同濾波處理下的位置誤差累積概率
圖12 Android端信號(hào)采集及定位結(jié)果示意圖
表1為對(duì)路徑1和路徑2總的采樣點(diǎn)作濾波處理,對(duì)多個(gè)待測(cè)點(diǎn)進(jìn)行平均定位誤差、誤差標(biāo)準(zhǔn)差計(jì)算得到的定位精度與實(shí)時(shí)性效果。
表1 幾種濾波算法定位精度與實(shí)時(shí)性效果
對(duì)表1進(jìn)行分析,改進(jìn)爾曼濾波相對(duì)于無(wú)濾波處理和卡爾曼濾波,在平均定位精度方面分別提高84.61%、69.14%;定位最大誤差也在減小,同時(shí)定位穩(wěn)定性也隨著濾波處理方法的改進(jìn)而增強(qiáng)。但由于改進(jìn)濾波處理方法的復(fù)雜性和多樣性,平均運(yùn)行時(shí)間會(huì)有所增加,故會(huì)犧牲一部分運(yùn)算速度,以獲得定位精度更高、魯棒性更強(qiáng)的定位效果,從而說(shuō)明本文中所提改進(jìn)卡爾曼濾波算法對(duì)加速度處理、步數(shù)檢測(cè)、定位精度以及系統(tǒng)魯棒性有改善作用。
針對(duì)多傳感器中信號(hào)易受室內(nèi)復(fù)雜環(huán)境、人員非步態(tài)干擾以及自身漂移的影響,提出一種改進(jìn)卡爾曼濾波對(duì)加速度信號(hào)進(jìn)行處理。實(shí)驗(yàn)結(jié)果表明:所提出的濾波算法相較于卡爾曼濾波算法,在2 m內(nèi)的定位精度由31.7%提高到89%,其平均定位精度提高69.14%,同時(shí)運(yùn)行穩(wěn)定性也有所加強(qiáng),但多傳感器信息融合定位在長(zhǎng)時(shí)間的定位過(guò)程中,會(huì)出現(xiàn)累積誤差,所以下一步的改進(jìn)方向?yàn)獒槍?duì)累積誤差進(jìn)行多種定位方法的融合,進(jìn)一步提高定位精度和穩(wěn)定性。