竺超明,華子雯,陳立建,徐 慧,毛科技*
(1.浙江廣播電視大學(xué)蕭山學(xué)院,杭州 310000;2.浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310032)
無(wú)線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Networks)主要用來(lái)監(jiān)測(cè)網(wǎng)絡(luò)部署區(qū)域中各種環(huán)境特性,比如溫濕度、光照強(qiáng)度、磁場(chǎng)強(qiáng)度、受力強(qiáng)度、速度或加速度、化學(xué)物質(zhì)濃度等等,但是只有在知道節(jié)點(diǎn)位置信息的情況下很多監(jiān)測(cè)的數(shù)據(jù)才有意義。換句話說(shuō),傳感器節(jié)點(diǎn)的定位在無(wú)線傳感器網(wǎng)絡(luò)的諸多應(yīng)用中有著十分重要的意義。目前室外定位方法主要是通過全球定位系統(tǒng)GPS(Global Positioning System),GPS衛(wèi)星通過發(fā)射電磁波信號(hào)計(jì)算距離,從而實(shí)現(xiàn)定位功能,然而GPS信號(hào)在室內(nèi)環(huán)境或信號(hào)穿透比較差的場(chǎng)景中,不能實(shí)現(xiàn)高精度定位,因此很難滿足室內(nèi)定位的需求。室內(nèi)定位方法與成熟的室外定位方法存在較大差異,主要包括:一、室內(nèi)定位方法需要解決復(fù)雜的定位環(huán)境對(duì)定位精度帶來(lái)的影響,目前在室內(nèi)定位中常見的Wi-Fi、藍(lán)牙、Zigbee等定位技術(shù)存在多徑效應(yīng)、成本昂貴等問題。二、室內(nèi)定位方法對(duì)環(huán)境的依賴性較大,當(dāng)環(huán)境發(fā)生變化時(shí)很可能導(dǎo)致之前部署的定位系統(tǒng)失效。三、對(duì)定位的精度要求不同,室外定位的精度沒有嚴(yán)格的要求,而室內(nèi)環(huán)境本身比較小,所以室內(nèi)定位需要較高的精度,一般為米級(jí)甚至厘米級(jí)[1-5]。
目前室內(nèi)定位最常見的是測(cè)距定位方法,包括利用藍(lán)牙、Wifi、Zigbee等技術(shù)進(jìn)行測(cè)距定位,該定位技術(shù)通過信號(hào)的衰減從而實(shí)現(xiàn)距離的測(cè)量,信號(hào)衰減越多,認(rèn)為傳輸?shù)木嚯x越遠(yuǎn)。然而在復(fù)雜環(huán)境下,利用信號(hào)強(qiáng)度RSSI進(jìn)行測(cè)距存在諸多問題,測(cè)距誤差較大[6]。文獻(xiàn)[7]提出了無(wú)線傳感器節(jié)點(diǎn)在空間環(huán)境上的RSSI相似度概念,采用RSSI相似度作為權(quán)重因子,改進(jìn)了加權(quán)質(zhì)心算法;文獻(xiàn)[8]針對(duì)基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)室內(nèi)移動(dòng)目標(biāo)定位算法易受干擾、波動(dòng)較大等問題,提出一種改進(jìn)的RSSI多維標(biāo)度室內(nèi)定位算法;文獻(xiàn)[9]提出了一種基于RSSI和輔助節(jié)點(diǎn)協(xié)作的Wi-Fi室內(nèi)定位方法,適用于基于Wi-Fi的室內(nèi)定位系統(tǒng);文獻(xiàn)[10]提出一種用于室內(nèi)定位的基于接收信號(hào)強(qiáng)度的二次定位方法;還有很多文獻(xiàn)[11-15]都是關(guān)于室內(nèi)定位的,但是在室內(nèi)場(chǎng)景中需要部署大量的基站節(jié)點(diǎn)才能進(jìn)行定位,成本昂貴,因此很難在實(shí)際場(chǎng)景中應(yīng)用?;谥讣y的室內(nèi)定位方法是通過采集室內(nèi)定位場(chǎng)景中的固有特征或部署特征,構(gòu)建定位指紋數(shù)據(jù)庫(kù),然后通過匹配指紋數(shù)據(jù)庫(kù)從而實(shí)現(xiàn)精度較高的室內(nèi)定位。
基于信號(hào)強(qiáng)度測(cè)距的定位方法能夠?qū)崿F(xiàn)較高精度的定位,定位精度一般在毫米到米之間,但是由于測(cè)距定位本身存在的缺點(diǎn),很難應(yīng)用于實(shí)際場(chǎng)景中,而指紋定位方法雖然平均定位精度略低于測(cè)距定位,但是指紋定位方法成本低,可靠度高,抗干擾能力強(qiáng),因此是較好的選擇[16-18]。
基于上述分析,本文研究了一種基于信號(hào)強(qiáng)度特征的指紋定位方法,該方法通過構(gòu)建定位區(qū)域RSSI特征,構(gòu)建多維向量指紋實(shí)現(xiàn)較高精度定位,且指紋構(gòu)建方法能夠當(dāng)定位環(huán)境發(fā)生變化是快速重建指紋,因此能夠較好的應(yīng)用于實(shí)際場(chǎng)景中。
傳感器節(jié)點(diǎn)采集的原始數(shù)據(jù)如圖1所示,在發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)固定的情況下,采集的RSSI值波動(dòng)比較大,這對(duì)定位精度存在巨大的影響,因此本文Kalman濾波算法對(duì)原始數(shù)據(jù)進(jìn)行濾波處理,去除噪聲,經(jīng)過處理后的RSSI值如圖2所示。
圖1 RSSI原始數(shù)據(jù)圖
圖2 RSSI濾波后結(jié)果圖
Kriging插值算法主要是對(duì)樣本的待估計(jì)位置相互間的空間位置關(guān)系進(jìn)行了考慮,通過加權(quán)平均來(lái)估計(jì)預(yù)測(cè)未知區(qū)域的情況,從而使插值結(jié)果呈現(xiàn)出線性、無(wú)偏和最小方差估計(jì)的特點(diǎn)[19-20]。由于這種算法是一種光滑內(nèi)插方法,因此結(jié)果隨著樣本點(diǎn)的增多而更加精確。由于復(fù)雜環(huán)境的干擾導(dǎo)致RSSI強(qiáng)度不總是呈現(xiàn)出理想情況下以節(jié)點(diǎn)為同心圓分布,本文需要一種能在有限的樣本點(diǎn)構(gòu)建出比較符合實(shí)際情況的RSSI分布,采用Kriging算法對(duì)RSSI進(jìn)行預(yù)測(cè),能根據(jù)樣本點(diǎn)的數(shù)據(jù)構(gòu)建出最能符合實(shí)際情況的RSSI分布。本文對(duì)傳統(tǒng)Kriging算法進(jìn)行改進(jìn),使算法在預(yù)測(cè)模型選擇階段能夠根據(jù)數(shù)據(jù)樣本自動(dòng)選擇匹配度最高的經(jīng)典模型作為最終的預(yù)測(cè)模型,因此算法具有較強(qiáng)的自適應(yīng)性。
經(jīng)過處理后的RSSI值構(gòu)建定位區(qū)域D的指紋數(shù)據(jù)庫(kù),如圖3所示。定位區(qū)域中總共部署了25個(gè)Micaz普通節(jié)點(diǎn),其中包括5個(gè)信標(biāo)節(jié)點(diǎn)和20個(gè)輔助節(jié)點(diǎn),這些傳感器節(jié)點(diǎn)都能發(fā)射和接收信號(hào)。首先錨節(jié)點(diǎn)A向外廣播信號(hào),其他24個(gè)節(jié)點(diǎn)能夠接收到廣播的信號(hào),并從信號(hào)中獲取RSSI值,由于每個(gè)傳感器節(jié)點(diǎn)的位置是已知的,因此可獲得節(jié)點(diǎn)的RSSI與節(jié)點(diǎn)間距離d的關(guān)系對(duì)Pair,然后利用Kriging插值算法可構(gòu)建錨節(jié)點(diǎn)A對(duì)應(yīng)的定位區(qū)域指紋。然后用同樣的方法分別為錨節(jié)點(diǎn)B、C、D、E構(gòu)建定位區(qū)域指紋,最終將構(gòu)建個(gè)5個(gè)單維指紋做并集,形成一個(gè)5維的定位區(qū)域向量指紋。利用Kriging插值算法構(gòu)建一個(gè)信標(biāo)節(jié)點(diǎn)(信標(biāo)節(jié)點(diǎn)A)的單維定位指紋具體過程如圖4所示,具體步驟如下:
圖4 定位指紋構(gòu)建圖
第1步:將長(zhǎng)為L(zhǎng),寬為W的定位區(qū)域D均勻劃分為m行n列,定位區(qū)域D被劃分為m×n個(gè)方格,每個(gè)方格的長(zhǎng)度為cl=L/m,寬度為cw=W/n。
第2步:利用信標(biāo)節(jié)點(diǎn)和輔助節(jié)點(diǎn)采集的RSSI值訓(xùn)練Kriging插值算法,然后對(duì)步驟一劃分的小格子進(jìn)行插值,這樣就建立了錨節(jié)點(diǎn)A對(duì)應(yīng)的單維RSSI指紋VA,其中VA表示定位區(qū)域中每個(gè)方格子(子區(qū)域)對(duì)應(yīng)的RSSI值和坐標(biāo)。
第3步:對(duì)錨節(jié)點(diǎn)B、C、D、E重復(fù)步驟二,此時(shí)能構(gòu)建單維RSSI定位指紋VB、VC、VD、VE,最后將構(gòu)建的5個(gè)單維指紋做并集,得到一個(gè)5維的RSSI指紋FingerP,如式(1)所示。
FingerP[m×n][5]=VA[m×n]∪VB[m×n]∪
VC[m×n]∪VD[m×n]∪VE[m×n]
(1)
圖3 定位區(qū)域節(jié)點(diǎn)部署圖
當(dāng)目標(biāo)節(jié)點(diǎn)進(jìn)入定位區(qū)域后會(huì)固定時(shí)間向傳感器網(wǎng)絡(luò)的5個(gè)信標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,表示開始定位,錨節(jié)點(diǎn)收到數(shù)據(jù)包后立刻向目標(biāo)節(jié)點(diǎn)發(fā)送空的數(shù)據(jù)包,目標(biāo)節(jié)點(diǎn)收到5個(gè)錨節(jié)點(diǎn)的數(shù)據(jù)包后,從數(shù)據(jù)包中獲得RSSI值,然后對(duì)RSSI值進(jìn)行異常處理,形成一個(gè)可靠的5維向量,如式(2)所示,這個(gè)5維向量和定位指紋地圖中的m×n個(gè)方格對(duì)應(yīng)的5維RSSI向量進(jìn)行余弦相似度匹配,匹配結(jié)束后選擇相似度最高的前num個(gè)方格作為目標(biāo)節(jié)點(diǎn)所在位置的范圍,實(shí)現(xiàn)初步的定位。
圖5 障礙物影響圖
(2)
表1 向量組合匹配方法
圖6 匹配結(jié)果圖
如圖6所示。虛陰影部分表示誤差較大的格子,實(shí)陰影部分表示誤差較小的方格子,圓表示目標(biāo)節(jié)點(diǎn)的實(shí)際位置。為了排除定位誤差較大的方格子,本文采用文獻(xiàn)[21]的K-means聚類算法提高定位精度。首先利用K-means聚類算法將num個(gè)方格子聚為Nc類,最后選擇元素最多的一類作為目標(biāo)節(jié)點(diǎn)的真實(shí)位置范圍,而其他元素較少的類認(rèn)為是定位誤差,需要排除。最后將元素最多的一類的重心作為最終的定位結(jié)果,如圖7所示。
圖7 定位結(jié)果圖
定位區(qū)域?yàn)橐粋€(gè)3 m×3 m的室內(nèi)環(huán)境,在定位區(qū)域中部署25個(gè)傳感器節(jié)點(diǎn)(Micaz節(jié)點(diǎn)的主頻為4 MHz,功率:3 mW),其中5個(gè)錨節(jié)點(diǎn)、20個(gè)位輔助節(jié)點(diǎn),驗(yàn)證定位算法的抗干擾能力,定位場(chǎng)景如圖8所示。系統(tǒng)中的定位目標(biāo)為一輛搭載目標(biāo)傳感器節(jié)點(diǎn)的小車,如圖9所示,目標(biāo)小車通過藍(lán)牙與手機(jī)連接,目標(biāo)小車在定位區(qū)域內(nèi)行走,定位系統(tǒng)的界面中存在一個(gè)虛擬的定位區(qū)域,實(shí)時(shí)畫出目標(biāo)小車的位置,如圖10所示。
圖8 定位場(chǎng)景圖
圖9 定位目標(biāo)圖
圖10 系統(tǒng)界面圖
3.2.1 Kriging插值精度
為構(gòu)建精確的定位指紋地圖,本實(shí)驗(yàn)在定位區(qū)域中均勻部署不同數(shù)量的傳感器節(jié)點(diǎn),實(shí)驗(yàn)中選擇定位區(qū)域內(nèi)4個(gè)不同位置作為插值準(zhǔn)確性的驗(yàn)證點(diǎn),這4個(gè)點(diǎn)的坐標(biāo)分別為a(0.75,0.75)、b(2.25,0.75)、c(0.75,2.25)、d(2.25,2.25),實(shí)驗(yàn)中在定位區(qū)域中心部署一個(gè)傳感器節(jié)點(diǎn),該節(jié)點(diǎn)向外廣播信號(hào),而定位區(qū)域中其他節(jié)點(diǎn)接收信號(hào)并獲得RSSI值。分別實(shí)際采集4個(gè)實(shí)驗(yàn)點(diǎn)的RSSI值和Kriging插值得到的RSSI值,最后將4個(gè)實(shí)驗(yàn)點(diǎn)的平均RSSI值作為實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如圖11所示,橫坐標(biāo)表示定位區(qū)域中部署節(jié)點(diǎn)的數(shù)量,這些節(jié)點(diǎn)用于采集Kriging算法的樣本點(diǎn),縱坐標(biāo)表示4個(gè)實(shí)驗(yàn)點(diǎn)的平均RSSI值。
圖11 插值結(jié)果對(duì)比圖
實(shí)驗(yàn)結(jié)果表明在前期定位區(qū)域中部署的傳感器節(jié)點(diǎn)增加,利用Kriging算法插值得到的RSSI值逐漸靠近真實(shí)采集的RSSI值,當(dāng)傳感器節(jié)點(diǎn)數(shù)量大于18個(gè)以后,插值得到的RSSI值與實(shí)際采集的RSSI值基本相同,但是任存在微小差別,因?yàn)閭鞲衅鞴?jié)點(diǎn)的信號(hào)受自身的影響,接收節(jié)點(diǎn)采集的RSSI值任存在跳動(dòng)的情況,另一方便插值算法計(jì)算得到的RSSI值也收到樣本RSSI的影響,但是誤差是在可接受的范圍內(nèi)。實(shí)驗(yàn)結(jié)果表明在長(zhǎng)為3 m,寬為3 m的定位區(qū)域中部署傳感器節(jié)點(diǎn)的數(shù)量不少于18個(gè)時(shí),利用Kriging算法構(gòu)建定位區(qū)域指紋是可靠的。
3.2.2 區(qū)域劃分對(duì)定位精度的影響
本文的指紋定位方法將定位區(qū)域劃分為m×n個(gè)格子,每個(gè)格子的大小相同,利用Kriging插值算法為每個(gè)格子預(yù)測(cè)其對(duì)應(yīng)的RSSI值。實(shí)驗(yàn)中傳感器節(jié)點(diǎn)的部署方式如圖8所示,均勻的部署25個(gè)傳感器節(jié)點(diǎn),其中5個(gè)錨節(jié)點(diǎn),20個(gè)輔助節(jié)點(diǎn),將定位結(jié)果均勻的劃分為若干方格子,實(shí)驗(yàn)結(jié)果如圖12所示,橫坐標(biāo)為將定位區(qū)域劃分的精細(xì)程度,縱坐標(biāo)為定位系統(tǒng)的定位誤差,實(shí)驗(yàn)結(jié)果是20次隨機(jī)定位的平均結(jié)果。
圖12 定位區(qū)域劃分效果圖
實(shí)驗(yàn)結(jié)果顯示初始時(shí)刻隨著定位區(qū)域劃分越來(lái)越精細(xì),定位系統(tǒng)的定位誤差逐漸減小,當(dāng)定位誤差減小到10 cm左右后隨著定位區(qū)域劃分的越來(lái)越精細(xì),定位誤差降低的幅度逐漸減小,最后趨于穩(wěn)定。當(dāng)定位區(qū)域被劃分為50×50的精細(xì)度時(shí),定位誤差逐漸穩(wěn)定下來(lái),因?yàn)榇藭r(shí)每個(gè)方格的長(zhǎng)度為6 cm,寬度為4 cm,這和傳感器節(jié)點(diǎn)的表面積大小接近,因此即使對(duì)定位區(qū)域劃分的更精細(xì),定位的精度也不會(huì)有大幅度提高。通過本次實(shí)驗(yàn)得出結(jié)論:定位區(qū)域劃分的精細(xì)程度和算法的定位精度有很大的關(guān)系,在一定程度上,劃分的越精細(xì),定位精度越高,但是當(dāng)每個(gè)小格子面積與傳感器節(jié)點(diǎn)面積接近時(shí),定位精度也就趨于穩(wěn)定。
3.2.3 定位算法抗干擾性
為了使室內(nèi)定位算法具有較強(qiáng)的抗障礙物干擾性,設(shè)計(jì)了基于組合匹配的定位方法。假設(shè)多個(gè)錨節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的視距通訊鏈路被障礙物干擾的數(shù)量有Onum條,則只需要滿足Bnum-Onum≥3即可對(duì)目標(biāo)節(jié)點(diǎn)進(jìn)行正常定位,其中Bnum為錨節(jié)點(diǎn)的數(shù)量。定位系統(tǒng)的節(jié)點(diǎn)部署方式如圖8所示。錨節(jié)點(diǎn)節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)被障礙物遮擋的情況如圖9所示。本次實(shí)驗(yàn)驗(yàn)證目標(biāo)節(jié)點(diǎn)ob(1.6,1.4)的定位精度與5個(gè)錨節(jié)點(diǎn)被遮擋視距鏈路數(shù)量的關(guān)系,實(shí)驗(yàn)結(jié)果如圖13所示,橫坐標(biāo)表示被遮擋的鏈路數(shù)量,縱坐標(biāo)表示對(duì)目標(biāo)節(jié)點(diǎn)的定位誤差,實(shí)驗(yàn)結(jié)果是系統(tǒng)重復(fù)定位的20次平均結(jié)果。
圖13 組合匹配結(jié)果圖
實(shí)驗(yàn)結(jié)果表明當(dāng)被遮擋的鏈路數(shù)量分別為0、1、2時(shí)(總共有5個(gè)錨節(jié)點(diǎn)),系統(tǒng)的定位誤差約為6 cm~8 cm,定位誤差比較小,當(dāng)被障礙物干擾的鏈路數(shù)量分別為3、4、5時(shí),能夠與目標(biāo)節(jié)點(diǎn)視距通訊的鏈路數(shù)量分別為2、1、0,此時(shí)的定位誤差較大,基本為1.5 m、1.8 m、2.2 m,而定位的范圍僅僅是一個(gè)邊長(zhǎng)為3m的正方形區(qū)域,因此這么大的誤差并不能被接受。實(shí)驗(yàn)結(jié)果表明本文提出的基于組合匹配的方法有較好的抗障礙物干擾能力。
3.2.4 定位優(yōu)化結(jié)果
僅采用與定位指紋匹配度最高的一個(gè)位置作為定位結(jié)果存在較大的偶然性,因此本文選擇匹配度最高的前n個(gè)位置作為初步的定位結(jié)果范圍,然后采用K-means聚類算法對(duì)定位結(jié)果范圍進(jìn)行聚類。通過實(shí)際的定位系統(tǒng)實(shí)驗(yàn)驗(yàn)證在沒有采用K-means聚類方法(直接計(jì)算n個(gè)定位結(jié)果的重心作為定位結(jié)果)和采用了K-means聚類方法對(duì)系統(tǒng)整體定位精度的影響,實(shí)驗(yàn)結(jié)果如圖14所示,橫坐標(biāo)為實(shí)驗(yàn)次數(shù),縱坐標(biāo)為系統(tǒng)的平均定位誤差。每次實(shí)驗(yàn)都是隨機(jī)定位10次的平均結(jié)果。
圖14 定位結(jié)果優(yōu)化圖
實(shí)驗(yàn)結(jié)果表明采用K-means聚類算法的定位誤差約為7 cm左右,而沒有采用K-means聚類算法排除誤差項(xiàng)的平均定位誤差約為10 cm左右,因此采用K-means聚類算法排除誤差能夠提高定位精度。
更直觀的來(lái)看,目標(biāo)小車在定位區(qū)域中行走,系統(tǒng)界面每隔0.5 s對(duì)小車進(jìn)行一次定位,小車的定位軌跡如圖15所示,圖中黑色圓形表示定位點(diǎn),連續(xù)定位形成小車的運(yùn)動(dòng)軌跡,圖中白色圓圈表示輔助節(jié)點(diǎn)。
圖15 定位系統(tǒng)界面圖
定位結(jié)果表明小車的軌跡不存在較大幅度的跳動(dòng)現(xiàn)象,且定位結(jié)果連續(xù),因此表明系統(tǒng)對(duì)目標(biāo)小車的定位精度較高,穩(wěn)定性好。
本文實(shí)現(xiàn)的基于Zigbee的位置指紋定位方法,該方法在定位區(qū)域指紋構(gòu)建方面與傳統(tǒng)的方法有較大的差異,能夠基于少量傳感器節(jié)點(diǎn)快速的構(gòu)建定位區(qū)域的指紋,即使在定位環(huán)境發(fā)生變化后本文的指紋構(gòu)建方法也能夠快速的重建指紋,從而降低了人工采集的成本,提高了效率。在定位階段,本文設(shè)計(jì)了合理的組合匹配方法,該方法能夠一定程度的降低室內(nèi)環(huán)境中障礙物對(duì)定位精度的影響,具有較好的抗干擾性。最后通過實(shí)物實(shí)驗(yàn)驗(yàn)證了定位算法在指紋構(gòu)建方面的快速和準(zhǔn)確性,且具有較強(qiáng)的抗障礙物干擾能力,最重要的是定位精度較高。
通過實(shí)物實(shí)驗(yàn)對(duì)算法的各方面進(jìn)行驗(yàn)證,證明了本文提出的定位算法能夠滿足實(shí)際環(huán)境的應(yīng)用要求,并且在實(shí)際應(yīng)用場(chǎng)景中能夠方面快捷的進(jìn)行定位指紋構(gòu)建和重建工作,節(jié)約了大量的人力物力。