袁國良, 宋顯水
(1.上海海事大學(xué),上海 200120;2.上海海事大學(xué) 信息工程學(xué)院,上海 200120)
基于WiFi和IMU結(jié)合的室內(nèi)定位方法的研究
袁國良1, 宋顯水2
(1.上海海事大學(xué),上海 200120;2.上海海事大學(xué) 信息工程學(xué)院,上海 200120)
針對(duì)單一的WiFi定位誤差較大的問題,提出了利用IMU人體姿態(tài)傳感器來輔助WiFi進(jìn)行室內(nèi)定位的方案。首先在實(shí)驗(yàn)場所建立合適的WiFi位置指紋庫,然后利用改進(jìn)的K-NN算法對(duì)終端進(jìn)行實(shí)時(shí)定位。同時(shí)利用IMU所測得的角度變化和終端前一個(gè)位置的坐標(biāo)來判斷終端處于哪一個(gè)象限,再和該象限的WiFi指紋庫進(jìn)行匹配計(jì)算出終端的坐標(biāo),從而不僅縮小了算法的復(fù)雜度,也提高了室內(nèi)定位的精確度。
WiFi指紋庫;IMU人體姿態(tài)傳感器;K-NN算法
隨著無線通信技術(shù)和互聯(lián)網(wǎng)的快速發(fā)展,基于地理位置的研究變得越來越具有商業(yè)價(jià)值和發(fā)展?jié)摿1]。傳統(tǒng)的GPS定位已經(jīng)做得十分完善和精良,但是GPS定位只是局限于室外定位,當(dāng)進(jìn)入有物體遮擋的室內(nèi)環(huán)境或是地下室等環(huán)境時(shí),GPS定位的效果就大大地減弱了,誤差往往在十幾米或是更大[2-3]。對(duì)于誤差要求低于幾米的室內(nèi)定位來說,GPS的定位精度完全不能夠滿足。
目前幾種室內(nèi)定位技術(shù)中WiFi定位技術(shù)應(yīng)用得最為廣泛。WiFi定位有以下幾點(diǎn)優(yōu)勢(shì):(1)WiFi應(yīng)用廣泛,基本上所有商場、寫字樓都有免費(fèi)的WiFi網(wǎng)絡(luò)節(jié)點(diǎn),不需要部署其他設(shè)備;(2)成本十分低,現(xiàn)在手機(jī)基本都有免費(fèi)的WiFi功能。但是WiFi定位的最大缺點(diǎn)在于傳播過程中,信號(hào)強(qiáng)度會(huì)隨著傳播而衰減,導(dǎo)致定位精度不夠高,所以僅利用WiFi定位仍然達(dá)不到所需的定位精度[4]。本文中就是利用了IMU人體姿態(tài)傳感器來輔助WiFi進(jìn)行室內(nèi)定位,提高單獨(dú)WiFi定位的精度。
1.1 基于最小二乘的TOA/RSSI定位算法
該算法是在已經(jīng)知道發(fā)射信號(hào)的強(qiáng)度和接收信號(hào)的強(qiáng)度的情況下,根據(jù)傳輸過程中信號(hào)的損耗,再根據(jù)公式(1)結(jié)合損耗的值計(jì)算出兩點(diǎn)之間的距離。
(1)
在公式(1)中,Pr為接收功率,Pt為發(fā)射功率,Gt為發(fā)射天線增益,Gr為接收天線增益,λ為信號(hào)的波長。其中Pr、Pt、Gt、λ均容易獲得,但是信號(hào)在實(shí)際傳輸過程中,由于受到人、墻壁等阻擋和干擾,誤差往往非常大且不好處理,故不選用此方法。
1.2 位置指紋定位技術(shù)
WLAN指紋定位技術(shù)主要是利用在不同地點(diǎn)手機(jī)所接收到的RSSI信號(hào)的值不同來進(jìn)行匹配定位的,也就是在不同的物理位置上RSSI信號(hào)的強(qiáng)弱。利用RSSI定位主要分為兩個(gè)過程,分別為離線采集階段和在線定位階段[5]。如圖1所示,虛線上方部分為離線階段,下方為在線定位階段。
圖1 系統(tǒng)原理圖
(1)離線采集階段
建立與物理位置相關(guān)的數(shù)據(jù)庫,該數(shù)據(jù)庫記錄了每個(gè)物理位置RSSI信號(hào)的強(qiáng)度,為了確保定位的可靠和穩(wěn)定,需要采集足夠多的數(shù)據(jù)。
(2)在線定位階段
根據(jù)手機(jī)接收到的RSSI信號(hào)強(qiáng)度數(shù)據(jù),與建立好的數(shù)據(jù)庫去匹配,從而可以得出一系列坐標(biāo)。定位過程如下:
①將定位的區(qū)域劃分為M×N個(gè)點(diǎn)。
②利用移動(dòng)用戶測試每個(gè)點(diǎn)的RSSI值,多測幾次取平均,減小誤差,建立好RSSI指紋數(shù)據(jù)庫。
③在進(jìn)行定位的時(shí)候,獲取移動(dòng)端的RSSI值大小到服務(wù)端。
④利用匹配算法與先前建立的RSSI指紋數(shù)據(jù)庫進(jìn)行匹配。
⑤計(jì)算出待測點(diǎn)坐標(biāo)。
1.3 WiFi定位數(shù)據(jù)庫
利用C#軟件獲取的在某個(gè)坐標(biāo)點(diǎn)時(shí)所獲取的所有WiFi信號(hào)的MAC地址和RSSI值的大小,利用這些數(shù)據(jù)可以建立一個(gè)(x,y)坐標(biāo)的指紋庫,為了使得定位盡量準(zhǔn)確,如每個(gè)坐標(biāo)測5組數(shù)據(jù),取均值后再將其存入該坐標(biāo)的指紋庫[6]。故當(dāng)接收到L個(gè)MAC地址的WiFi信號(hào)時(shí),第n次采集的數(shù)據(jù)坐標(biāo)可以表示為:
由于將區(qū)域劃分為M×N個(gè)點(diǎn),因此令P=M×N來表示總共的點(diǎn)數(shù),因此RSSI指紋庫可以表示為矩陣FPT(Fingerprint)如下:
(2)
但是為了計(jì)算方便,將位置信息和指紋信息分開來存放在兩個(gè)不同的矩陣中,位置信息和指紋信息分別為Loc和Fp:
(3)
(4)
在實(shí)際操作的過程中,為了提高定位的精確度,在一個(gè)位置上一般測得10組RSSI數(shù)據(jù),然后對(duì)這10組數(shù)據(jù)排除誤差較大的,再將剩余的數(shù)據(jù)取均值作為一個(gè)指紋的RSSI值。
1.4 WiFi在線定位算法
在線定位階段主要是利用用戶移動(dòng)中獲取的RSSI信號(hào)的值與指紋數(shù)據(jù)庫中的RSSI值對(duì)比,再利用算法進(jìn)行匹配運(yùn)算,求出用戶的坐標(biāo)位置,主要的定位算法有最近鄰算法、最大似然概率法和人工神經(jīng)網(wǎng)絡(luò)法等[7]。
最近鄰算法是將用戶測得的RSSI值與指紋庫中所有的RSSI值一一求出歐式距離,然后找出最小的RSSI值,那么該RSSI值所對(duì)應(yīng)的指紋庫中的坐標(biāo)就是計(jì)算出的坐標(biāo)結(jié)果。計(jì)算歐式距離的公式如下:
(5)
(6)
在公式(6)中,(x,y)表示利用K個(gè)最近鄰取均值得到的用戶的坐標(biāo)。
但是為了提高定位的精度,往往根據(jù)這K個(gè)最近鄰的RSSI值的D值大小,對(duì)其相應(yīng)的坐標(biāo)取不同的權(quán)值,也就是加權(quán)K最近鄰算法,該算法公式如下:
(7)
在公式(7)中,Di表示用戶中測得的RSSI值與第i個(gè)近鄰樣本對(duì)應(yīng)的指紋庫中的RSSI值的歐式距離,ε是為了避免由于Di等于零的情況而添加的一個(gè)非常小的值,幾乎可以忽略不計(jì),A是歸一化加權(quán)系數(shù)。該式中每個(gè)坐標(biāo)乘以該坐標(biāo)與待計(jì)算坐標(biāo)的歐式距離的倒數(shù)表示距離越大,該坐標(biāo)所占的權(quán)值越小,即權(quán)值與歐氏距離成反比。雖然利用這種加權(quán)的方法可以提高定位的精度。但是由于人體對(duì)于WiFi信號(hào)干擾十分大,導(dǎo)致對(duì)于RSSI的值影響十分大,因此還要在這個(gè)基礎(chǔ)上再加上IMU模塊來輔助WiFi進(jìn)行室內(nèi)定位,減小定位誤差,提高定位精度[9]。
IMU慣性導(dǎo)航主要是利用了加速度計(jì)和陀螺儀等慣性傳感器測量載體在慣性空間中的運(yùn)動(dòng)信息,然后再通過微分方程計(jì)算出x,y,z三個(gè)方向的實(shí)時(shí)加速度、角速度和角度值,并且其測量出的角度誤差非常小,十分精確。
圖2 RSSI象限圖
WiFi定位時(shí)會(huì)先建立WiFi指紋庫,然后通過用戶在移動(dòng)過程中獲得的RSSI值去與之前建好的WiFi指紋庫中的RSSI值匹配,利用K最近鄰方法計(jì)算出用戶的當(dāng)前坐標(biāo)。但是WiFi定位的過程中,由于人本身對(duì)WiFi信號(hào)強(qiáng)度有很大的干擾,有的時(shí)候誤差會(huì)很大。因此利用IMU來輔助定位,以此來減小定位的誤差,在WiFi定位的過程中利用實(shí)時(shí)獲得的RSSI值與指紋庫中所有的RSSI值作比較,這樣工作量比較大而且還會(huì)降低準(zhǔn)確度,利用IMU慣性傳感器可以精確測量角度的變化這個(gè)特性,可以把測得的RSSI值分為四個(gè)象限,將指紋庫中的RSSI值分別命名為RSSI1,RSSI2,RSSI3,RSSI4四個(gè)部分,根據(jù)角度的變化先判斷該點(diǎn)落在哪一個(gè)象限內(nèi),那么就利用與之相對(duì)應(yīng)的RSSI值來計(jì)算用戶的當(dāng)前位置坐標(biāo),這樣不僅大大減少了計(jì)算量,也提高了定位的精確度[10]。圖2為將RSSI分為四個(gè)象限的值。
具體步驟如下:
(1)采集實(shí)驗(yàn)用的WiFi信號(hào)強(qiáng)度數(shù)據(jù);
(2)根據(jù)采集好的數(shù)據(jù)建立RSSI指紋庫;
(3)利用K-NN算法計(jì)算出用戶的當(dāng)前位置;
(4)通過IMU檢測出用戶的方向變化;
(5)根據(jù)用戶的當(dāng)前坐標(biāo)將RSSI分為四個(gè)象限;
(6)結(jié)合前一位置的坐標(biāo)與方向,選出合適的指紋集合,利用K-NN計(jì)算出坐標(biāo)。
選取信息工程學(xué)院五樓樓層作為實(shí)驗(yàn)場所建立坐標(biāo)軸。將樓層走廊建好坐標(biāo)軸后,每隔1 m建立一個(gè)RSSI指紋庫,選取信號(hào)分別為ISMU、i-Shanghai、CMCC、CMCC-WEB、CMCC-EDU、ismu503這六個(gè)RSSI值較強(qiáng)信號(hào),將獲得的值存入對(duì)應(yīng)的指紋庫,表1為部分坐標(biāo)位置所測得的WiFi信號(hào)強(qiáng)度。
設(shè)計(jì)基于Android的定位軟件,在華為榮耀8終端中可以通過放置在人身上的IMU人體傳感器測得用戶角度在x,y,z軸的大小改變,如圖3所示。
表1 部分WiFi信號(hào)強(qiáng)度
圖3 Android軟件圖
在計(jì)算機(jī)上通過接收到的角度的變化和RSSI實(shí)時(shí)信號(hào),利用MATLAB仿真工具通過K-NN算法將終端的坐標(biāo)點(diǎn)實(shí)時(shí)畫出來,如圖4和圖5所示,圖中連起來的實(shí)線表示終端的運(yùn)動(dòng)軌跡,離散的點(diǎn)為測試出來的終端坐標(biāo)點(diǎn),可以看出在用戶轉(zhuǎn)彎的時(shí)候和轉(zhuǎn)彎過后一段路程,圖4誤差比較大。這是由于WiFi定位在人轉(zhuǎn)彎的時(shí)候出現(xiàn)遮擋的原因,測試的RSSI會(huì)不準(zhǔn),對(duì)定位影響非常大。從圖5中可以看出,結(jié)合了IMU后,定位的效果好了不少,并且兩種定位在直線過程中都比較準(zhǔn)確,誤差都非常小。計(jì)算兩者的累積誤差如圖6所示,可以看出WiFi和IMU結(jié)合的定位效果要比WiFi定位的效果好,定位精度明顯提高,并且計(jì)算量也減少了。
圖4 WiFi定位效果
圖5 WiFi和IMU結(jié)合定位效果
圖6 兩者的累積誤差和
利用IMU人體姿態(tài)傳感器來輔助進(jìn)行WiFi定位,不僅減小了單一WiFi定位的誤差,同時(shí)也降低了計(jì)算的復(fù)雜度,提高了算法計(jì)算的效率,同時(shí)還提高了定位的精度。
[1] 齊雙, 王奇, 黎海濤,等. 傳感器輔助的WiFi指紋室內(nèi)定位方法[J]. 中國電子科學(xué)研究院學(xué)報(bào), 2015, 10(1):102-106.
[2] 李紅麗. 基于WiFi的室內(nèi)定位技術(shù)的研究[D]. 北京:北京交通大學(xué), 2014.
[3] 陳姣. 基于RSSI測距的WiFi室內(nèi)定位技術(shù)研究[D]. 綿陽:西南科技大學(xué), 2015.
[4] 蔡仁欽. 基于RSSI的WiFi室內(nèi)定位算法研究與系統(tǒng)實(shí)現(xiàn)[D]. 廣州:華南理工大學(xué), 2015.
[5] 張世哲. 基于慣性傳感器和WiFi的室內(nèi)定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué), 2012.
[6] 羅利. 基于Android的WIFI室內(nèi)定位技術(shù)研究[D]. 成都:西南交通大學(xué), 2014.
[7] 周瑞, 袁興中, 黃一鳴. 基于卡爾曼濾波的WiFi-PDR融合室內(nèi)定位[J]. 電子科技大學(xué)學(xué)報(bào), 2016, 45(3):399-404.
[8] 秦泗明. 基于位置指紋的WiFi室內(nèi)定位技術(shù)研究[D]. 成都:電子科技大學(xué), 2013.
[9] 顏俊杰. 基于WIFI的室內(nèi)定位技術(shù)研究[D]. 廣州:華南理工大學(xué), 2013.
[10] 張世哲. 基于慣性傳感器和WiFi的室內(nèi)定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué), 2012.
Research of indoor position method based on WiFi and IMU combination
Yuan Guoliang1,Song Xianshui2
(1.Shanghai Maritime University,Shanghai 200120, China;2. College of Information Engineering, Shanghai Maritime University, Shanghai 200120, China)
Aiming at the problem that single WiFi positioning error is large, this paper proposed a method which uses IMU sensor to assist WiFi indoor positioning.Firstly, we need to establish proper WiFi location fingerprint in experimental places,then use the improved K-NN algorithm for real-time positioning terminal.At the same time, we use angle change measured by the IMU and the former coordinate’s position of terminal to judge terminal in which quadrant,and then match it with the WiFi fingerprint of this quadrant to calculate the coordinates of the terminal. It not only reduces the complexity of the algorithm, but also improves the accuracy of indoor positioning.
WiFi fingerprint; IMU body posture sensor; K-NN algorithm
TP92
A
10.19358/j.issn.1674- 7720.2017.08.004
袁國良, 宋顯水.基于WiFi和IMU結(jié)合的室內(nèi)定位方法的研究[J].微型機(jī)與應(yīng)用,2017,36(8):11-14.
2016-10-23)
宋顯水(1991-),男,碩士研究生,主要研究方向:室內(nèi)定位。
袁國良(1963-),男,碩士,副教授,主要研究方向:光電通信技術(shù)。
________________________