曹雪朋,施偉斌
(上海理工大學 光電信息與計算機工程學院,上海 200093)
基于RSSI的WSN室內(nèi)定位系統(tǒng)研究
曹雪朋,施偉斌
(上海理工大學 光電信息與計算機工程學院,上海 200093)
為克服接收信號強度指示(RSSI)測量誤差對無線傳感器網(wǎng)絡節(jié)點定位精度的影響,提出使用卡爾曼濾波對RSSI值進行濾波處理。通過卡爾曼濾波可明顯降低RSSI值的波動,減小了定位算法中閾值判定的錯誤概率。該方案將整體環(huán)境進行分割,對分割后的子區(qū)域參考節(jié)點的可靠性通過權值進行衡量,取可靠性最高的3個參考節(jié)點完成定位,采用CC2430無線傳感器芯片實現(xiàn)該定位系統(tǒng)。實驗表明,該定位方法的準確度在90%以上。
無線傳感器網(wǎng)絡;室內(nèi)定位;RSSI;卡爾曼濾波
隨著無線傳感器網(wǎng)絡(WSN)技術的發(fā)展,WSN的室內(nèi)定位技術越來越受到人們的重視與關注。根據(jù)定位方法是否需要測量節(jié)點的距離,定位機制可分為基于距離和與距離無關的兩類[1]。常見的測距機制有基于接收信號強度指示(RSSI)、基于到達時間(TOA)和基于到達時間差(TDOA)、基于到達時間測角(AOA)等[2]。在獲得節(jié)點間的距離后,定位計算多采用三邊定位法、三角定位法或極大似然估計法等來計算未知節(jié)點的位置[3]。與距離無關的定位算法通常則是通過網(wǎng)絡的連通性、跳數(shù)等數(shù)據(jù)信息來確定未知節(jié)點的位置[4]。
本文在研究了兩類定位算法以及卡爾曼濾波在定位領域的使用方法的基礎上,基于室內(nèi)復雜的環(huán)境考量,提出了一種基于RSSI的優(yōu)化室內(nèi)定位算法,該定位算法使用卡爾曼濾波對RSSI值進行濾波處理。將整體環(huán)境進行分割,通過與閾值的比較,判定未知節(jié)點在哪塊區(qū)域,再選擇可靠性最高的3個參考節(jié)點完成定位。并基于CC2430的硬件平臺設計了該室內(nèi)定位系統(tǒng),利用TinyOS操作系統(tǒng)和Visual Studio集成開發(fā)環(huán)境完成了相關的開發(fā)工作。
1.1 經(jīng)典RSSI模型
RSSI 測距是一種基于測量距離的無線定位算法。其利用信號在傳播過程中的強度衰減來計算未知節(jié)點和信標節(jié)點之間的距離,再利用三邊測量法來計算未知節(jié)點的坐標[5]。
經(jīng)典RSSI對數(shù)衰減特模型為
(1)
其中,RSSI(d)是離發(fā)射源距離為d處的接收節(jié)點的RSSI強度值,單位dBm;RSSI(d0)是對應d0m處的位置節(jié)點收到的RSSI強度值,單位dBm;d為發(fā)射端與接收端的距離;d0是參考距離,單位m,通常取值為1;λ是路徑衰減指數(shù),值和實際環(huán)境和障礙物密切相關;ξσ表示標準差為σ的正態(tài)隨機變量,單位dBm;σ的具體取值也和環(huán)境有關系[6];所以在應用 RSSI 測距時,先要確定環(huán)境因素,根據(jù)不同的環(huán)境選擇合適的能量衰減模型。
1.2 卡爾曼濾波
考慮到采用信號強度測距的方法誤差波動范圍比較集中,且有時會有誤差峰值,使用卡爾曼算法能夠有效地降低這種突然出現(xiàn)的誤差峰值,該算法通過對前一階段的數(shù)據(jù)統(tǒng)計,從而估算出現(xiàn)在的數(shù)據(jù)發(fā)展趨勢。該方法優(yōu)勢是簡單且存貯量較小,適合這種仿真的應用[7]。
卡爾曼濾波主要由5個核心的方程共同組成,即卡爾曼濾波的步驟:
(1)卡爾曼濾波器方程的預測過程
(2)
P(k|k-1)=A·P(k+1|k-1)AT+Q
(3)
(2)卡爾曼濾波器方程的校正過程
K(k)=P(k|k-1)CT[CP(k|k-1)CT+R]
(4)
(5)
P(k|k)=[1-K(k)C]P(k|(k-1))
(6)
方程(2)中,X為系統(tǒng)狀態(tài),X(k|k-1)為代表k時刻的先驗估計狀態(tài)信息;A為系統(tǒng)矩陣,一般可隨著時間的變化而改變,這個公式的可理解為增益矩陣A根據(jù)系統(tǒng)k-1時刻的狀態(tài)信息通過映射的方式估計得到系統(tǒng)k時刻的信息,即我們所得到的k時刻的信息是估計值,這就需要使用下面的這些公式來進行修正[7]。
方程(3)為先驗估計誤差協(xié)方差,Q為過程噪聲,這個公式是用P在k-1時刻估計k時刻的狀態(tài)。
方程(4)中,K(k)是卡爾曼濾波增益,估計值和實際測量值中哪一個占有的比例稍大一些,就是通過卡爾曼濾波增益的大小來進行決定的。
方程(5)中,先驗的P(k|k)進行修正后,運用在下一次迭代中??柭鼮V波算法思想是通過最小均方差作為估計的標準,利用上一次迭代系統(tǒng)推算出的值和當前迭代的系統(tǒng)變量來修正當前系統(tǒng)值,經(jīng)過多次迭代,最后會收斂到一個較為穩(wěn)定的狀態(tài)[7]。
2.1 定位系統(tǒng)開發(fā)平臺介紹
本文提出的室內(nèi)定位系統(tǒng)主要是針對室內(nèi)普遍存在的一種格局。將室內(nèi)分為A、B、C、D這4個區(qū)域,每個區(qū)域4個角放置參考節(jié)點,圖中五星即為參考節(jié)點。這種室內(nèi)格局如圖1所示。
圖1 室內(nèi)格局圖
本文設計的室內(nèi)定位系統(tǒng)是由上位機、網(wǎng)關節(jié)點、參考節(jié)點以及未知節(jié)點4部分組成[8]。每個節(jié)點均是以TICC2430芯片為核心的無線傳感器模塊,節(jié)點的軟件平臺使用TinyOS操作系統(tǒng),nesC語言編寫的代碼。上位機監(jiān)控軟件開發(fā)平臺是Microsoft Visual Studio集成開發(fā)環(huán)境,使用C#編程語言。
未知節(jié)點以一定的頻率廣播測試信號。參考節(jié)點收到未知節(jié)點的測試信號時,將接收的RSSI值和自身節(jié)點號加入一個新的消息包,再將這個消息包通過CTP協(xié)議的多跳網(wǎng)絡發(fā)送給網(wǎng)關節(jié)點。網(wǎng)關節(jié)點接收參考節(jié)點發(fā)送的消息包,通過解析消息內(nèi)容,將數(shù)據(jù)通過串口上傳給上位機。上位機接收網(wǎng)關節(jié)點上傳的數(shù)據(jù),解析數(shù)據(jù)后,將數(shù)據(jù)進行卡爾曼濾波,通過定位算法計算出未知節(jié)點的位置,并在上位機的現(xiàn)實模塊上顯示。
2.2 系統(tǒng)定位算法的設計
本文的定位算法具體過程:(1)將室內(nèi)整體區(qū)域分割為A、B、C、D共4個區(qū)域;(2)定位過程將某個未知節(jié)點與所有室內(nèi)參考節(jié)點的RSSI值按從大到小排序,并取出最大的4個;(3)計算4個值中最大值與最小值的差值并與閾值(該閾值通過實地多次測量確定,該值與具體環(huán)境有關)做比較,判定未知節(jié)點在房間哪塊區(qū)域內(nèi);(4)根據(jù)步驟(3)中得到的判定結(jié)果,選取該區(qū)域內(nèi)權值最大的3個參考節(jié)點,則這3個節(jié)點作為可信度最高的參考節(jié)點完成定位。
3.1 卡爾曼濾波效果實驗
本實驗為了驗證卡爾曼濾波的效果,在空曠場地上,對發(fā)射功率為0 dBm的信號衰減實驗。每隔0.5 m取一個點測試。每組采10個數(shù)據(jù)進行平均,在Matlab中通過最小二乘法對采樣數(shù)據(jù)進行3次擬合,得到最為接近的擬合曲線,以同樣的方式做兩組實驗,一組引入卡爾曼濾波后的RSSI值,另一組則正常RSSI值。
使用卡爾曼濾波后數(shù)據(jù)繪圖,如圖2所示。未使用卡爾曼濾波數(shù)據(jù)繪圖,如圖3所示。
圖2 未使用卡爾曼濾波衰減圖
圖3 使用卡爾曼濾波衰減圖
從圖2和圖3可看出,卡爾曼濾波明顯降低了RSSI值得波動,這將有助于提高定位系統(tǒng)的定位精度。
計算卡爾曼濾波前后的RSSI值均方誤差來定量比較,均方誤差(MSE)是指參數(shù)估計值與參數(shù)真值之差平方的期望值,MSE是衡量“平均誤差”的一種較方便的方法,MSE可評價數(shù)據(jù)的變化程度。這里用MSE評價實測值與擬合值之間的誤差來判斷擬合方程的準確程度。MSE的值越小,說明擬合曲線描述實驗數(shù)據(jù)的準確度更高,數(shù)據(jù)的波動越小。反之,說明擬合曲線的準確度越低,數(shù)據(jù)的波動更大
卡爾曼濾波前:MSE=0.806 7。
卡爾曼濾波后:MSE=0.428 7。
從以上計算的結(jié)果可看出,卡爾曼濾波后的MSE值小于卡爾曼濾波前的MSE值。卡爾曼濾波明顯的降低了RSSI值得波動幅度,這將有助于提高定位系統(tǒng)的定位精度。
3.2 移動節(jié)點定位實驗
本實驗用于測量該定位系統(tǒng)在未知節(jié)點移動時定位的狀況,統(tǒng)計了該路線中幾個點的定位成功或錯誤情況,以表格的形式顯示實驗結(jié)果。按照圖4的路線,從1號位置行走到8號位置。每個位置點停留1 s記錄下定位系統(tǒng)結(jié)果。重復10次上述過程,記錄下結(jié)果。
圖4 移動節(jié)點定位實驗路線圖
處理定位結(jié)果,統(tǒng)計各位置的定位的精確度,結(jié)果如表1所示。
表1 移動節(jié)點定位正確率統(tǒng)計表
如表1所示,在移動節(jié)點定位實驗行走路線中的8個點中,除了1、2號位置,其他位置的定位精確度都為100%。1號位置的1次錯誤定位為區(qū)域D;2號位置的2次錯誤中,都定位為區(qū)域B,此時的位置已經(jīng)從區(qū)域A接近區(qū)域B,介于區(qū)域A接近區(qū)域B交界處之間容易發(fā)生誤判,認為這樣的錯誤是可以接受的,綜合以上實驗結(jié)果,可得到該定位系統(tǒng)在節(jié)點移動定位時,依然具有較高的精確度。
本文設計的基于無線傳感器網(wǎng)絡的室內(nèi)定位系統(tǒng)可實現(xiàn)對室內(nèi)的定位,對房間的定位精度,可達90%以上,基本滿足室內(nèi)定位的需求。該定位系統(tǒng)可廣泛用于大型商場、超市、車站等行業(yè),具有良好的應用前景。
[1] 趙靈鍇,洪志全.基于無線傳感器網(wǎng)絡的DV-Hop定位算法的改進[J].計算機應用,2011,31(5):1189-1192.
[2] 劉信新,陳鯤.基于RSSI與TDOA的混合測距加權定位算法[J].計算機與數(shù)字工程,2011,39(4):25-28.
[3] 孫佩剛,趙海,韓光潔,等.混沌三角形定位參考點選擇算法[J].計算機研究與發(fā)展,2007,44(12):1987-1995.
[4] Cox D C,Murray R R,Norris A W.Measurements of 800 MHz radio transmission into buildings with metallic walls[J].Bell System Technical Journal,1983,62(9):2695-2717.
[5] 安文秀.無線傳感器網(wǎng)絡定位技術的研究[D].太原:太原理工大學,2013.
[6] 周文文.無線傳感器網(wǎng)絡移動節(jié)點定位算法研究[D].西安:西安電子科技大學,2013.
[7] 孫長健.基于RSSI/TDOA的無線傳感器網(wǎng)絡移動節(jié)點定位算法研究[D].沈陽:沈陽工業(yè)大學,2015.
[8] 熊飛麗,張文娜.無線網(wǎng)絡節(jié)點區(qū)域定位系統(tǒng)的設計與實現(xiàn)[J].測控技術,2012,31(8):71-74.
Study of WSN Indoor Positioning System Based on RSSI
CAO Xuepeng,SHI Weibin
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology,Shanghai 200093, China)
In order to overcome the received signal strength indicator (RSSI) measurement error influence on wireless sensor network node location accuracy, we put forward using kalman filter to filter the RSSI value.It can significantly reduce the volatility of RSSI values, and decreased the error probability of threshold determination in localization algorithm. In this scheme, the overall environmental will be divided sub areas, and then the three reference nodes of the highest reliability which is measured by weights are taken to complete the localization.Through the experiment on CC2430 Wireless sensor chip,it shows that the accuracy of the positioning system is above 90%.
wireless sensor network; indoor localization; RSSI; kalman filter
2016- 03- 07
曹雪朋(1990-),男,碩士研究生。研究方向:無線傳感器網(wǎng)絡。
10.16180/j.cnki.issn1007-7820.2017.01.026
TN926
A
1007-7820(2017)01-094-03