王 颯,龔凡婷,耿麗麗
(自然資源部 四川基礎(chǔ)地理信息中心,成都 610041)
隨著室內(nèi)位置的服務(wù)在日常生活中需求逐漸增加[1],研究者越來越關(guān)注面向室內(nèi)區(qū)域的定位技術(shù)。文獻(xiàn)[2]結(jié)合紅外線和超聲波技術(shù),設(shè)計(jì)了實(shí)現(xiàn)方案,但需要較高的部署成本。文獻(xiàn)[3]利用RFID技術(shù)研究了倉庫安防系統(tǒng)的實(shí)現(xiàn)思路。文獻(xiàn)[4]提出了一種基于雙天線的藍(lán)牙定位技術(shù)。文獻(xiàn)[5]將超寬帶技術(shù)應(yīng)用在室內(nèi)機(jī)器人定位系統(tǒng)中取得預(yù)期定位結(jié)果。文獻(xiàn)[6]利用不同的無線保真(wireless fidelity,WiFi)定位技術(shù)實(shí)現(xiàn)單一信號(hào)源的人員定位,文獻(xiàn)[7-8]提出多種方法優(yōu)化WiFi定位的精度。文獻(xiàn)[9]實(shí)現(xiàn)了基于ZigBee信號(hào)指紋的跟蹤定位方法。文獻(xiàn)[10-11]利用計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)亞米級(jí)的定位精度。但這些定位技術(shù)多是單一信號(hào)源定位,定位精度無法滿足正常需求,再者,需要額外的硬件平臺(tái),提高了系統(tǒng)部署的成本,因此采用多源信號(hào)融合、降低硬件平臺(tái)要求成為室內(nèi)定位技術(shù)亟待解決的關(guān)鍵問題。
以開源為基礎(chǔ)的 Android智能手機(jī)獲得越來越多的應(yīng)用,除了提供友好的軟件功能外,還包括如無線信號(hào)接收器、慣性裝置等硬件模塊[12]。因此結(jié)合Android智能手機(jī)設(shè)計(jì)實(shí)現(xiàn)一個(gè)實(shí)現(xiàn)簡單、部署成本低、實(shí)用性強(qiáng)的室內(nèi)定位系統(tǒng)是一個(gè)必須和緊迫的任務(wù)。本文結(jié)合室內(nèi)普遍應(yīng)用的WiFi設(shè)備以及Android移動(dòng)設(shè)備內(nèi)嵌的加速度傳感器和方向傳感器信息,設(shè)計(jì)一種 WiFi信號(hào)輔助智能手機(jī)的室內(nèi)融合定位算法,并最終在智能手機(jī)平臺(tái)上進(jìn)行融合算法的測試。
WiFi定位一般采用信號(hào)強(qiáng)度法實(shí)現(xiàn),該方法分2大類:信號(hào)強(qiáng)度衰減模型法和信號(hào)強(qiáng)度指紋匹配法。信號(hào)強(qiáng)度衰減模型法需要在待定位區(qū)域收集相關(guān)的信號(hào)發(fā)射器的位置信息[13],由于該方法獲取結(jié)果遠(yuǎn)低于指紋匹配法的定位精度,因此采用信號(hào)強(qiáng)度指紋匹配法來實(shí)現(xiàn)WiFi定位。
指紋匹配法通過計(jì)算當(dāng)前信號(hào)強(qiáng)度值與待定位區(qū)的參考數(shù)據(jù)庫對(duì)比來估計(jì)移動(dòng)物體可能的位置。該方法包括指紋庫建立階段、數(shù)據(jù)匹配階段:指紋庫建立階段是在室內(nèi)待定位區(qū)布設(shè)的采樣點(diǎn)上逐點(diǎn)采集每個(gè)格點(diǎn)上的接收到的所有信號(hào)強(qiáng)度值,和該采樣點(diǎn)的坐標(biāo)值同時(shí)保存起來,這些信息被稱為位置指紋;數(shù)據(jù)匹配過程是把獲取到的信號(hào)強(qiáng)度值與指紋庫中的數(shù)據(jù)逐一計(jì)算,取信號(hào)值最相似的樣本點(diǎn)的位置信息作為計(jì)算結(jié)果。
在指紋庫數(shù)據(jù)記錄中,一個(gè)采樣點(diǎn)上記錄接收到的所有 WiFi信號(hào)發(fā)射器的物理地址(medium access control, MAC)和對(duì)應(yīng)信號(hào)強(qiáng)度值。然后基于信號(hào)強(qiáng)度最近鄰法[14]實(shí)現(xiàn)定位計(jì)算。實(shí)現(xiàn)思路是:獲取定位點(diǎn)接收到所有信號(hào)強(qiáng)度值,讀取每個(gè)信號(hào)值的 MAC標(biāo)識(shí),再得出每個(gè)信號(hào)強(qiáng)度值與數(shù)據(jù)庫該信號(hào)的相似度為
式中:i表示與數(shù)據(jù)庫中第i個(gè)指紋點(diǎn)計(jì)算;Smi-Rmi代表接收到的信號(hào)發(fā)射點(diǎn)和數(shù)據(jù)庫中第i個(gè)具有相同信號(hào)發(fā)射點(diǎn)對(duì)應(yīng)的信號(hào)強(qiáng)度值之差(一共有M個(gè)信號(hào)來自相同信號(hào)發(fā)射點(diǎn),m取值1~M);Dni代表到接受到信號(hào)發(fā)射點(diǎn)和數(shù)據(jù)庫中第i個(gè)具有不同信號(hào)發(fā)射點(diǎn)對(duì)應(yīng)的信號(hào)強(qiáng)度值(一共有N個(gè)信號(hào)來自不同發(fā)射點(diǎn),n取值 1~N)。求出全部指紋點(diǎn)匹配度,匹配度最高的指紋點(diǎn)的坐標(biāo)信息作為計(jì)算結(jié)果。
由于受到硬件條件的制約,WiFi信號(hào)強(qiáng)度值隨時(shí)間和周圍環(huán)境的變化存在很大的波動(dòng)性。為了直觀驗(yàn)證WiFi信號(hào)強(qiáng)度波動(dòng)性,在室內(nèi)定位區(qū)任意選擇一個(gè)采樣點(diǎn)連續(xù)掃描25次,并選取相同的5個(gè)發(fā)射點(diǎn)的信號(hào),對(duì)應(yīng)的信號(hào)強(qiáng)度變化如圖1所示。
圖1 信號(hào)強(qiáng)度
從信號(hào)強(qiáng)度圖中可以看出:5個(gè)無線網(wǎng)絡(luò)接入點(diǎn)(access point, AP)發(fā)射的強(qiáng)度大小不一,且都有較大的波動(dòng)性,這造成不同時(shí)刻定位結(jié)果差別很大。
為了直觀表示定位結(jié)果的跳動(dòng)現(xiàn)象,在實(shí)驗(yàn)區(qū)某一區(qū)域建立局部坐標(biāo)系,正東方向?yàn)閄軸正方向,正北方向?yàn)閅軸正方向,測試點(diǎn)的真實(shí)位置在局部坐標(biāo)系中坐標(biāo)為(5,5)。圖2為在任意一個(gè)位置持續(xù)定位40次的效果圖,可知跳動(dòng)顯著且分布無規(guī)律。
圖2 定位結(jié)果
行人航位推算(pedestrian dead reckoning, PDR)原理:以行人在較短的采樣時(shí)間內(nèi)做直線運(yùn)動(dòng)為前提,當(dāng)?shù)弥腥似瘘c(diǎn)位置信息、行人的朝向以及行人的位移量就可以推算出行人下一時(shí)刻的位置。PDR原理如圖3所示。
行人從(x1,y1)到(x2,y2)的計(jì)算公式為
圖3 PDR算法原理圖
式中:S12表示從坐標(biāo)(x1,y1)到(x2,y2)的距離;θ1表示(x1,y1)到(x2,y2)方向與X軸正方向夾角。由推算公式可知整個(gè)過程中有2個(gè)關(guān)鍵因素:行人位移S和行人朝向角θ。位移S可以通過已有的步頻-步長模型法來估算獲取,方向角可以通過手機(jī)方向傳感器與陀螺儀組合修正后得到。
在行人的走動(dòng)過程中,每個(gè)邁步周期產(chǎn)生的垂直方向加速度變化過程保持一致,分為以下幾個(gè)過程:
1)從腳蹬地離開地面作為一個(gè)周期的開始階段,由于地面的反向作用力導(dǎo)致垂向加速度增大;
2)當(dāng)腳離地面最遠(yuǎn)處,垂直方向加速度值增加至最大;
3)腳向下運(yùn)動(dòng)過程,垂直加速度值開始逐漸變?。?/p>
4)當(dāng)腳再次著地完成一個(gè)邁步周期,垂直方向加速度值減至最小。
前進(jìn)方向加速度是由雙腳與地面摩擦發(fā)生的,它的變化規(guī)律為:雙腳同時(shí)接觸地面時(shí)增大,在一腳離開地面時(shí)加速度值減小[15]。圖 4為行人正常步行中3個(gè)軸向(X,Y,Z)和整體加速度(α)實(shí)際檢測到的變化情況。手機(jī)在具體使用時(shí),其放置位置是隨意的,造成單一方向的加速度值無法反映真實(shí)的運(yùn)動(dòng)狀態(tài),所以使用整體加速度值來進(jìn)行計(jì)步推算。
圖4 加速度
計(jì)步算法和步長模型均采用文獻(xiàn)[13]提出的步態(tài)檢測算法,通過對(duì)23位不同測試者的4 000步數(shù)據(jù)得出步長模型為
式中:f為步頻;a、b為相關(guān)系數(shù)。步頻是步態(tài)檢測算法中得到每一步時(shí)間的倒數(shù)。
行人方向角的確定一般通過磁航向角和捷連航向角2種方式實(shí)現(xiàn)。磁航向角是通過方向傳感器直接得到相對(duì)于地磁北極的絕對(duì)方向角hmag(0~360°),計(jì)算公式為
式中mx、my為方向傳感器的橫縱軸瞬時(shí)值,通過手機(jī)磁力計(jì)可以直接獲取得到。磁航向角容易獲取,但缺點(diǎn)是易受環(huán)境的干擾。
捷連航向角是通過對(duì)陀螺儀數(shù)據(jù)進(jìn)行積分,結(jié)合初始方向角并經(jīng)過一定角度轉(zhuǎn)化得到的。捷連航向角為
式中:hk是當(dāng)前捷連航向角;hk-1是上一時(shí)刻的捷連航向角;wt是k時(shí)刻的陀螺儀讀數(shù)。
本文采用捷連航向角矯正磁航向角后的值作為方向角H,這樣既容易處理,同時(shí)減少外界環(huán)境干擾,又能一定程度上矯正長時(shí)間漂移等帶來的較大位置誤差。方向角為
式中W為權(quán)值,采用由Klingbei和Wark[14]總結(jié)的權(quán)值。
Android智能手機(jī)操作系統(tǒng)對(duì)WiFi硬件模塊和各種慣性傳感器模塊進(jìn)行了底層API封裝,開發(fā)者可以方便調(diào)用。根據(jù)實(shí)際情況和初步需求分析,選擇室內(nèi)公眾 WLAN信號(hào)輔助手機(jī)慣導(dǎo)進(jìn)行融合定位。選擇單位所在地某一普通辦公樓一層,該環(huán)境包括了實(shí)驗(yàn)所需的室內(nèi)環(huán)境和 WiFi無線信號(hào)。測試手機(jī)采用市場占用率較高的華為手機(jī)作為實(shí)驗(yàn)平臺(tái)進(jìn)行定位數(shù)據(jù)獲取和定位算法計(jì)算的平臺(tái)。
Android API提供操作WiFi硬件的函數(shù)接口:WiFiManager類,使用此接口可以方便開發(fā)信號(hào)采集軟件。考慮到采集信號(hào)的時(shí)間成本,在待定位區(qū)域共布設(shè)采樣點(diǎn) 275個(gè),根據(jù)文章[16]實(shí)驗(yàn)結(jié)果將平均間距設(shè)為2~3.5 m,圖5為指紋點(diǎn)的平面分布圖,將點(diǎn)均勻地布滿整層建筑的過道,在每個(gè)采樣點(diǎn)上連續(xù)采集 20次 WiFi信號(hào)并取均值存入指紋庫中。
圖5 采樣點(diǎn)分布
在實(shí)驗(yàn)場地任意選擇 15個(gè)測試點(diǎn),分別定位10次,計(jì)算各點(diǎn)的平均誤差和最大誤差來分析僅采用泛在 WiFi信號(hào)的定位效果。圖 6為定位誤差的統(tǒng)計(jì)結(jié)果,可以看出僅使用WiFi信號(hào)作為數(shù)據(jù)源的算法的定位穩(wěn)定性非常不好。
圖6 定位誤差
Android系統(tǒng)內(nèi)嵌了多個(gè)函數(shù)接口操作傳感器,如圖7所示接口名稱和采樣頻率。
圖7 接口和采樣頻率
由于硬件本身差異性使得加速度計(jì)的數(shù)據(jù)采樣頻率在小范圍內(nèi)變化。圖8是在測試的手機(jī)平臺(tái)上進(jìn)行加速度值采樣并記錄每次數(shù)據(jù)的采樣時(shí)間,圖 8中采樣間隔時(shí)間不是固定值而是在固定范圍內(nèi)上下波動(dòng)。為了消除這種波動(dòng)對(duì)計(jì)步算法的影響,采用更高采樣頻率采集數(shù)據(jù)。本文采用 50 Hz頻率即SENSOR_DELAY_GAME級(jí)別頻率。
圖8 加速度響應(yīng)間隔時(shí)間變化
本文分3步來實(shí)現(xiàn)手機(jī)慣導(dǎo)定位:行人狀態(tài)判別、行走距離計(jì)算、坐標(biāo)計(jì)算。
1)行人狀態(tài)判別:計(jì)算采樣間隔內(nèi)整體加速度的標(biāo)準(zhǔn)差,若小于閾值說明該采樣間隔內(nèi)行人運(yùn)動(dòng)狀態(tài)為靜止?fàn)顟B(tài),否則為行走狀態(tài)。為了獲取標(biāo)準(zhǔn)差先驗(yàn)閾值,統(tǒng)計(jì)若干行人行走和靜止各6 000次的采樣數(shù)據(jù),以1 s為計(jì)算周期得到標(biāo)準(zhǔn)差σ的分布,圖9是最終的統(tǒng)計(jì)結(jié)果:當(dāng)σ<0.5時(shí)可以推斷狀態(tài)為靜止。
圖9 行走和靜止?fàn)顟B(tài)下加速度標(biāo)準(zhǔn)差比重分布
2)行走距離計(jì)算:在行走狀態(tài)下,利用波峰檢測算法計(jì)算該間隔內(nèi)的步頻以及利用步長公式計(jì)算對(duì)應(yīng)的步長最終計(jì)算出行走的距離。
3)坐標(biāo)計(jì)算:結(jié)合朝向角,計(jì)算行人的位移量。通過位移量和起始位置坐標(biāo)可以求出行人當(dāng)前坐標(biāo)。手機(jī)慣導(dǎo)定位需獲取行人的起點(diǎn)坐標(biāo)信息,圖 10為已知起點(diǎn)坐標(biāo)時(shí)系統(tǒng)的定位結(jié)果。定位結(jié)果說明:由于手機(jī)傳感器的精度不高使得手機(jī)慣導(dǎo)定位隨著行走距離變大產(chǎn)生了較大的累計(jì)誤差。
圖10 手機(jī)慣導(dǎo)定位結(jié)果
采用融合算法,將WiFi和手機(jī)慣導(dǎo)二者優(yōu)勢結(jié)合。根據(jù)慣導(dǎo)定位數(shù)據(jù)將行人的運(yùn)動(dòng)狀態(tài)分為2種:靜止和運(yùn)動(dòng)。
1)靜止?fàn)顟B(tài)。靜止?fàn)顟B(tài)下對(duì)WiFi定位結(jié)果進(jìn)行單點(diǎn)定位濾波優(yōu)化,使得靜止時(shí) WiFi的單點(diǎn)定位精度有效提高。
在實(shí)驗(yàn)區(qū)選擇15個(gè)定位點(diǎn),連續(xù)實(shí)驗(yàn)10次,分別進(jìn)行WiFi單獨(dú)定位和WiFi融合手機(jī)慣導(dǎo)定位。對(duì)10次計(jì)算結(jié)果誤差取平均進(jìn)行對(duì)比,如圖11所示,可知融合后的計(jì)算精度有明顯改善。
2)運(yùn)動(dòng)狀態(tài)。運(yùn)動(dòng)狀態(tài)下使用文獻(xiàn)[12]的無跡卡爾曼濾波(unscented Kalman filter, UKF)融合算法對(duì)定位結(jié)果進(jìn)行融合計(jì)算。
在實(shí)驗(yàn)區(qū)從圖 10所示的起點(diǎn)走到終點(diǎn)共計(jì)220步,分別求出每一步對(duì)應(yīng)PDR定位結(jié)果、WiFi定位結(jié)果和UKF融合定位結(jié)果,并對(duì)這220步的誤差進(jìn)行統(tǒng)計(jì)得出如圖12所示的結(jié)果,可知UKF融合后定位誤差明顯優(yōu)于PDR定位和WiFi定位,實(shí)驗(yàn)結(jié)果與文獻(xiàn)[12]的實(shí)驗(yàn)結(jié)果基本吻合。
圖11 定位結(jié)果對(duì)比
圖12 定位誤差分布
在人類活動(dòng)常在的辦公室內(nèi)環(huán)境中,采用廣泛存在的 WiFi信號(hào)融合 Android智能手機(jī)內(nèi)嵌的慣導(dǎo)信息進(jìn)行了多場景、不同數(shù)據(jù)源的定位實(shí)驗(yàn)。在智能手機(jī)平臺(tái)的實(shí)驗(yàn)結(jié)果表明,此技術(shù)能夠很好融合公共WiFi信號(hào)和智能手機(jī)的慣導(dǎo)信息,得到滿足室內(nèi)定位應(yīng)用要求的結(jié)果,提升了泛在無線信號(hào)以及智能手機(jī)在室內(nèi)定位中的可用性。