樂燕芬,羅紅玉,趙 妍,施偉斌
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
室內(nèi)定位是在室內(nèi)環(huán)境下對移動物體進行定位,也是物聯(lián)網(wǎng)的關(guān)鍵技術(shù)之一。由于室內(nèi)環(huán)境下GPS信號快速衰減,因此國內(nèi)外的研究人員提出了多種不同的技術(shù)方案,如紅外線技術(shù)、射頻識別技術(shù)等來實現(xiàn)室內(nèi)定位。微軟研究院在2000年公布了基于WLAN的RADAR定位系統(tǒng)[1],隨著無線局域網(wǎng)的快速發(fā)展,基于WLAN的定位技術(shù)越來越受到研究人員的青睞,已成為實現(xiàn)室內(nèi)定位系統(tǒng)的重要研究方向[2-7]。在無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)中,大量低功耗的分布式傳感節(jié)點協(xié)同工作,可完成網(wǎng)絡(luò)控制、環(huán)境監(jiān)測、目標(biāo)定位與跟蹤等諸多復(fù)雜的任務(wù)。在很多應(yīng)用中,傳感數(shù)據(jù)必須攜帶位置信息才有意義,因此實現(xiàn)傳感器節(jié)點的自定位成為提供監(jiān)測目標(biāo)信息的必要條件。如何設(shè)計穩(wěn)定、高精度的定位算法也成為傳感器網(wǎng)絡(luò)研究中的熱點問題之一。在眾多的算法中,基于接收信號強度(RSS)實現(xiàn)定位的算法由于不需額外的硬件設(shè)施而受到較多的關(guān)注[8-9]。
RSSI(Received Signal Strength Indication)定位的基本思想是未知位置的移動物體/用戶,也稱盲節(jié)點,通過測量所接收到的有著確定位置的參考節(jié)點(也稱錨節(jié)點)所發(fā)射信號的強度來估計自身位置。RSSI定位實現(xiàn)方案主要有2類:(1)利用射頻信號傳播模型確定RSS與傳播距離之間的關(guān)系,再利用三邊測量、三角定位等算法估計移動目標(biāo)的位置;(2)位置指紋匹配算法,包含離線指紋數(shù)據(jù)庫構(gòu)建和在線指紋數(shù)據(jù)匹配2個階段。在第1階段首先將待定位區(qū)域劃分出多個參考點,并采集每個參考點接收到的錨節(jié)點的RSS值作為指紋信息,構(gòu)建充分描述該區(qū)域的RSS特性指紋庫;在第2階段,移動目標(biāo)獲取錨節(jié)點的RSS值,并與參考點的指紋信息匹配以估計自身位置。常用的匹配方法包括最近鄰算法(Nearest Neighbor,NN)、K近鄰算法(K-Nearest Neighbor,KNN)以及K加權(quán)近鄰算法等[3-4,10]。由于實際物理環(huán)境存在隨機干擾,尤其是在室內(nèi)環(huán)境復(fù)雜、人員走動頻繁的情況下,RSS信號具有時變性,很難精確匹配指紋信息,導(dǎo)致基于RSS的定位算法在一定范圍內(nèi)存在位置信息抖動,定位的穩(wěn)定性及精度不足以滿足實際應(yīng)用需求。
針對移動互聯(lián)網(wǎng)時代,室內(nèi)導(dǎo)航、導(dǎo)購、公共安全緊急事件中人員的高精度室內(nèi)定位需求,綜合考慮跟蹤精度、算法復(fù)雜度和存儲要求等因素,本文提出了基于核函數(shù)結(jié)合卡爾曼濾波[11-12]的位置指紋匹配算法,對區(qū)域內(nèi)的移動目標(biāo)進行初步定位,再利用卡爾曼濾波算法對目標(biāo)進行跟蹤,設(shè)計并實現(xiàn)了基于WSN和移動智能終端的室內(nèi)定位系統(tǒng)[13],最后通過實驗驗證了該算法的有效性和系統(tǒng)的可行性。
位置指紋算法在位置估計階段,需要根據(jù)移動目標(biāo)接收的RSS值與指紋庫進行匹配,根據(jù)匹配方式不同,有最近鄰算法(NN)、K近鄰算法(KNN)以及K加權(quán)近鄰算法等。這些算法通過比較移動目標(biāo)接收的RSSI值與各參考點的RSSI值之間的歐式距離來確定匹配指紋位置。最近鄰算法,是把距離最小的位置指紋作為移動節(jié)點的估計值;而K近鄰算法,則是找出K個距離最小的指紋位置,并把其平均值作為移動節(jié)點的估計值。這些傳統(tǒng)定位算法雖然簡單、易實現(xiàn),但室內(nèi)無線信號傳播過程中存在的多徑效應(yīng)、陰影效應(yīng),會使得信號的強度與傳播距離具有較強的時變特性。圖1給出了在某一測試點獲取的來自同一個錨節(jié)點的RSS信號分布直方圖和概率密度函數(shù)。從圖中可看出即使在同一位置,來自同一個錨節(jié)點的RSS也是隨時間變化的。由于RSS值存在不確定性和高非線性,使得基于歐式距離的指紋匹配算法定位精度不高。
圖1 RSS信號強度分布直方圖
根據(jù)模式識別理論,低維空間中的非線性數(shù)據(jù)集可以通過非線性映射到高維特征空間,在高維空間中實現(xiàn)線性可分。利用核函數(shù)技術(shù),將原始空間的數(shù)據(jù)映射到特征空間,在特征空間上實現(xiàn)線性可分是常用的特征提取技術(shù)??疾鞜o線傳感器網(wǎng)絡(luò)節(jié)點間信號強度與距離的關(guān)系時可發(fā)現(xiàn),射頻信號衰減模型和基于距離的徑向核函數(shù)具有等價函數(shù)形式。在使用核函數(shù)來度量測量RSS值與指紋間的相似度時可以充分利用RSS之間的非線性相關(guān)性,從而實現(xiàn)更精確的指紋匹配[14-15]。高斯核函數(shù)具有良好的局部特征提取能力和平滑能力,因此本文選擇高斯核函數(shù)進行指紋匹配。
基于高斯核函數(shù)的位置指紋定位實施步驟可歸納如下:
(1)將待測區(qū)域劃分為確定大小的N個網(wǎng)格,每一個網(wǎng)格即為一個參考點;
(2)離線訓(xùn)練,遍歷定位區(qū)域內(nèi)全部參考點,采集q次RSS信號,均值處理后作為該參考點的位置指紋信息值,保存到數(shù)據(jù)庫中。區(qū)域的RSS空間特性指紋圖可表示為
(1)
式(1)中,ri,j表示第i個參考點接收到的來自第j個錨節(jié)點的平均RSS值,Pi是第i個參點的位置信息,L表示待測區(qū)域放置的錨節(jié)點個數(shù);
(3)未知節(jié)點在線接收當(dāng)前t時刻的RSS值;
(4)利用高斯核函數(shù)計算權(quán)重系數(shù),權(quán)重系數(shù)越大,說明在線接收的RSS值與離線采集的指紋信息值的相似度越大。t時刻第i個參考點Pi的指紋信息權(quán)重計算公式如下
(2)
其中,rt=(rsst1,rsst2,…,rsstL)是t時刻未知節(jié)點在線接收的來自L個參考點的RSS值;ri=(rssi1,rssi2,…,rssiL),i∈{1,2,…,N}是離線采集的指紋信息值,N表示待測區(qū)域劃分的網(wǎng)格總個數(shù);h為核函數(shù)的寬度,‖rt-ri‖2是t時刻在線接收的RSS值與采集的樣本指紋值的歐式距離;
(5)根據(jù)所得權(quán)重值,找出相似度權(quán)重值最大的前k個指紋;
(6)估算t時刻未知節(jié)點的位置
(3)
在移動節(jié)點定位過程中,對定位有一定的實時要求,需要利用較短時間內(nèi)采集的RSS值來估算位置。樣本采集量少、環(huán)境噪聲較大可能導(dǎo)致定位出現(xiàn)大的偏差??柭鼮V波是以最小均方誤差為估計準(zhǔn)則的一種最優(yōu)回歸數(shù)據(jù)處理算法。該算法屬于遞歸估計算法,利用信號與噪聲的狀態(tài)空間模型,用前一時刻的狀態(tài)估計值和當(dāng)前的測量值來估計當(dāng)前狀態(tài),在運動目標(biāo)跟蹤中有廣泛的應(yīng)用[16]。在WSN定位中引入卡爾曼濾波具有以下優(yōu)勢:首先濾波算法所采用的迭代運算對存儲空間要求不高,適合傳感器節(jié)點運算;其次濾波算法可有效減小測量隨機噪聲,使定位輸出更平滑。
在WSN定位中,設(shè)二維平面上運動物體的位置坐標(biāo)為(x,y),在x軸和y軸方向上的速度分別為vx,vy,在x軸和y軸方向上的加速度分別為ax,ay,運動物體t時刻的位置坐標(biāo)為(xt,yt)。以時間間隔T進行采樣,根據(jù)離散化的運動方程可得
Xk=FXk-1+GWk
(4)
其中
(5)
當(dāng)采樣間隔T較小,如1 s時,運動物體可以看作是近勻速運動。根據(jù)卡爾曼濾波原理,式(4)表示的無線傳感器網(wǎng)絡(luò)中移動節(jié)點位置的運動規(guī)律滿足卡爾曼濾波的狀態(tài)方程,Xk作為運動狀態(tài)變量,采樣間隔內(nèi)運動加速度部分作為過程噪聲,彼此互相獨立??柭鼮V波觀測方程的觀測值為基于RSS的位置指紋獲取的移動節(jié)點位置。式(6)給出了卡爾曼濾波的觀測方程,根據(jù)卡爾曼濾波算法,表1給出了運動估計中的遞推公式,表2為相應(yīng)的參數(shù)說明。
(6)
其中,Wk和Vk是不相關(guān)的零均值高斯白噪聲。
表1 卡爾曼濾波的遞推公式
表2 相關(guān)參數(shù)說明
首先對基于RSS的最近鄰算法、K近鄰算法和核函數(shù)算法進行了仿真實驗。實驗環(huán)境是一個長為20 m,寬為20 m的區(qū)域,網(wǎng)格大小是1 m×1 m的正方形,離線階段與在線階段的RSS值計算所采用的信號傳輸損耗模型如式(7)所示
Pi,j=Po-(P(d0)+10αlg(di,j))+Xσ
(7)
Pi,j表示在第i個網(wǎng)格點接收到的第j個錨節(jié)點的RSS值,其中i∈{1,2,…,N},j∈{1,2,…,L};L表示待測區(qū)域放置的錨節(jié)點個數(shù);N表示待測區(qū)域劃分的網(wǎng)格總個數(shù);Po是錨節(jié)點的發(fā)射功率;P(d0)是在參考距離d0處的路徑損耗;α表示路徑損耗系數(shù),di,j是第i個網(wǎng)格點到第j個錨節(jié)點的距離;Xσ表示均值為0、方差為σ2的高斯白噪聲,用于模擬室內(nèi)多徑傳播、障礙物等因素對RSS值的影響。實驗過程中相關(guān)參數(shù)取值如表3所示。
表3 仿真參數(shù)設(shè)定
未知節(jié)點以坐標(biāo)(3,1)為起點開始運動,在行走路徑上設(shè)置68個測試點。仿真實驗結(jié)果如圖2所示。
圖2 位置指紋定位算法路徑估計
圖2中星號標(biāo)識點為錨節(jié)點的放置位置,灰點線是移動節(jié)點的實際路徑,圖中分別給出了基于核函數(shù)的指紋算法和在此基礎(chǔ)上再經(jīng)卡爾曼濾波所估算的運動路徑。從圖3可看出,核函數(shù)結(jié)合卡爾曼濾波算法保證定位精度在1.5 m內(nèi)的概率為90%,優(yōu)于基于核函數(shù)的指紋算法。
圖3 累計誤差概率
圖4給出了基于位置指紋定位中常用的3種匹配算法進行路徑估計的累計誤差概率分布圖。
圖4 位置指紋定位中不同匹配算法的精度比較
從圖4可以看出指紋匹配方式的選擇對定位精度有較大的影響。基于核函數(shù)的匹配方式精度最高,而最近鄰算法的精度最低。K近鄰算法定位精度略低于核函數(shù)算法,但其算法相對簡單且計算量小。在處理器計算性能有限的情況下,使用K近鄰算法也是較好的選擇。
仿真實驗是驗證算法性能的重要途徑,多徑衰減、斑塊效應(yīng)的存在使得室內(nèi)環(huán)境復(fù)雜多變,因此需要在實際環(huán)境中對算法進行實驗研究??紤]到目前智能終端在移動互聯(lián)網(wǎng)中扮演的重要作用,本文設(shè)計并實現(xiàn)了基于Android智能終端的移動節(jié)點實時定位系統(tǒng),定位系統(tǒng)的框架如圖5所示。
圖5 定位系統(tǒng)架構(gòu)圖
布置在監(jiān)控區(qū)域的無線傳感器網(wǎng)絡(luò)由參考節(jié)點、未知節(jié)點和網(wǎng)關(guān)節(jié)點組成。參考節(jié)點位置確定;未知節(jié)點由移動目標(biāo)攜帶,并獲取與參考節(jié)點的RSSI值;網(wǎng)關(guān)節(jié)點負(fù)責(zé)RSSI數(shù)據(jù)在WSN與PC服務(wù)器端的傳輸。PC服務(wù)器端與網(wǎng)關(guān)節(jié)點通過串口或USB接口通信,獲取無線傳感器網(wǎng)絡(luò)采集的定位數(shù)據(jù)并通過Socket通信發(fā)送給Android智能終端。Android智能終端作為客戶端,接收PC服務(wù)器端發(fā)送的定位數(shù)據(jù),并利用位置指紋算法進行處理,實時動態(tài)顯示移動目標(biāo)的位置。
實驗監(jiān)控區(qū)域是一個長為10.4 m,寬為6.6 m的教室,有人員隨機走動。在四周同一高度(1.2 m)布置了10個錨節(jié)點,參考網(wǎng)格按1.05 m×2.2 m劃分,并對每個網(wǎng)格經(jīng)過多次RSS采樣(最高80次),計算均值后作為作為位置指紋。圖6(a)中三角標(biāo)志點是錨節(jié)點放置位置,菱形點為位置指紋離線采樣點位置。圖6(b)給出了某一時刻Android智能終端上顯示的移動目標(biāo)的位置,此時移動目標(biāo)實際位置是(4,6)。通過核函數(shù)估計的未知節(jié)點的坐標(biāo)為(4.5,5.13),通過卡爾曼濾波估計的未知節(jié)點的坐標(biāo)約為(4.6,5.22),定位結(jié)果可在1 s內(nèi)給出。
圖6 監(jiān)控環(huán)境布局和Android終端位置顯示
實驗過程中,移動節(jié)點在教室內(nèi)各位置的定位誤差如表4所示。從表中可看出平均誤差控制在2 m內(nèi)。多次實驗也證明在人員走動頻率的情況下,定位精度會有所降低??柭鼮V波算法的使用在一定程度上消減了這種隨機噪聲的影響??偟膩碚f,核函數(shù)結(jié)合卡爾曼濾波的算法能滿足一般應(yīng)用的需求,算法的計算量也在智能終端的處理性能內(nèi)。
表4 實驗數(shù)據(jù)比較
由于室內(nèi)環(huán)境復(fù)雜多變,障礙物、人員走動等都會使信號傳輸存在多徑效應(yīng),使得基于接收信號RSSI的信號強度與距離的關(guān)系模型無法與實際情況精確匹配。本文提出了基于位置指紋的室內(nèi)定位算法,通過離線訓(xùn)練,得到充分描述監(jiān)控區(qū)域空間特性的指紋庫,并利用核函數(shù)對在線定位時的指紋匹配進行優(yōu)化,同時采用卡爾曼濾波對移動目標(biāo)進行追蹤。理論仿真以及基于Android智能終端的實驗表明,所提出的定位算法在保證定位實時性的同時可有效提高定位的精度。