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