陳世恩,黃淋云
(莆田學院 機電與信息工程學院,福建 莆田 351100)
物聯(lián)網(wǎng)和機器人技術(shù)的一項關(guān)鍵技術(shù)是利用傳感器或其他設(shè)備對人或機器人進行定位[1-2],這種技術(shù)被稱為“定位”或“節(jié)點定位”。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,關(guān)于節(jié)點定位的研究也越來越多。由于節(jié)點定位需要實時確認節(jié)點的位置,所以通常采用實時定位系統(tǒng)(real time location system,RTLS)來實時搜索節(jié)點位置。節(jié)點分為信標和接入點(access point,AP)兩種,即未知節(jié)點(信標)和已知節(jié)點(AP)。目前有多種目標定位跟蹤算法,其中常用的有:到達時間(time of arrival,TOA)[3]、接收信號強度指示(RSSI)[4]、加權(quán)質(zhì)心定位算法[5]、到達時差(time difference of arrival,TDOA)[6]、到達角(angle of arrival,AOA)[7]和到達相位(phase of arrival,POA)[8]等等。不同的算法有著不同的優(yōu)點和缺點,本文研究基于RSSI的定位方法,在原有基礎(chǔ)上,為了克服信號傳輸過程中各種效應(yīng)的影響,引入了路徑損耗和噪聲。
目標節(jié)點定位需要多個AP節(jié)點,這些AP節(jié)點包含了已知位置信息,而目標節(jié)點的位置信息跟隨節(jié)點移動而變化。因此,需要使用兩個或兩個以上包含已知位置信息的AP來確定目標節(jié)點的位置。
TOA方法通過測量傳輸時間來估算兩節(jié)點之間的距離,從而確定節(jié)點的位置信息。TOA算法具有算法簡單、易于實現(xiàn)、定位準確等優(yōu)點,但也存在以下缺點:該算法需要保持發(fā)射和接收設(shè)備之間的時間同步,同時要求傳感器節(jié)點要有較強的計算能力。采用TOA方法需要進行嚴格的時間同步匹配,但這種匹配現(xiàn)實很難實現(xiàn)。通常采用簡單網(wǎng)絡(luò)時間協(xié)議(simple network time protocol,SNTP)來實現(xiàn)時間同步。當該協(xié)議應(yīng)用于TOA方法時,AP的時間同步可以匹配,但是不可能進行標記。由于AP的時間同步精度僅為1 s,所以該方法僅限于短距離定位的時間同步[9]。
加權(quán)質(zhì)心定位算法是在質(zhì)心坐標上反映參考節(jié)點決策的大小,并利用加權(quán)因子反映每個參考節(jié)點對質(zhì)心位置的影響和它們之間的內(nèi)在聯(lián)系。該方法具有通信開銷小、硬件要求低、適合傳感器節(jié)點處理等優(yōu)點,但同時也有一些缺點:對網(wǎng)絡(luò)的連通性要求較高,對信標節(jié)點的密度要求很大[10]。
基于RSSI定位算法是通過測量接收器接收到的信號的強度來定位。與TOA、TDOA、AOA和POA等技術(shù)相比,RSSI定位算法的優(yōu)點是器件結(jié)構(gòu)簡單,易于使用。同時,算法還具有硬件系統(tǒng)可擴充、有利于節(jié)點小型化、穿越障礙物等優(yōu)點。但是,RSSI值的穩(wěn)定性受環(huán)境影響較大,相比于其他定位算法,RSSI定位算法的精度和安全性較低[11]。
對上述3種定位方法的定位精度進行對比,發(fā)現(xiàn)TOA定位算法的誤差率最小,精度最高。但是,TOA定位算法在實際應(yīng)用中很難實現(xiàn)時間同步。盡管RSSI定位算法的誤差率比TOA大,但在不增加硬件系統(tǒng)的情況下,在實際場景容易實現(xiàn)。因此,本文提出了一種基于RSSI的改進定位算法,可以應(yīng)用于機器人、物聯(lián)網(wǎng)的定位跟蹤,特別是養(yǎng)老院的老年病人監(jiān)護系統(tǒng)中。
RSSI測距是根據(jù)接收到的信號強弱來判斷信號點與接收點之間的距離。發(fā)送端與接收端之間的功率關(guān)系遵循弗林斯傳輸方程[12]:
(1)
其中:PRX表示接收端接收到的功率,PTX表示發(fā)送端的發(fā)送功率,GTX和GRX表示發(fā)送和接收增益;λ表示波長,r表示發(fā)送端和接收端的直線距離。這里,假設(shè)在嵌入式設(shè)備中GTX和GRX均為1。
在實際應(yīng)用場景中不能直接應(yīng)用式(1),因為它沒有考慮非視距環(huán)境。因此,為了能夠在實際應(yīng)用中使用式(1),引進了路徑損耗。路徑損耗公式如下[13]:
(2)
其中:PL表示路徑損耗,r表示距離。
在從節(jié)點到AP的傳輸過程中,無線電信號會受到能量強度損失的影響。無線電信號強度隨著傳播距離的增加而降低,可以得出通信距離和無線電信號強度的關(guān)系表達式[14],如式(3)所示:
(3)
其中:d是目標節(jié)點與接收端之間的距離,d0是參考點與接收端之間的距離,PRSSI表示目標節(jié)點與參考節(jié)點的無線電信號強度差,P(d)和P(d0)分別是接收端的無線電信號強度和參考點的無線電信號強度,n為損耗參數(shù)。
以式(3)為基礎(chǔ),可以測量目標和參考節(jié)點之間的信號強度PRSSI,從而獲得它們之間的通信距離。
為了模擬實際傳播過程的一些影響,我們引入了噪聲。
(4)
其中,Δ為隨機噪聲。
在仿真過程中,采用三邊定位法加RSSI的方法進行模擬。三邊定位法中可以通過已知的節(jié)點A、B、C,計算得到未知的節(jié)點D,節(jié)點D的坐標與節(jié)點A、B、C之間的關(guān)系[15]如式(5)所示:
(5)
其中:(xa,ya) 表示節(jié)點A的坐標,(xb,yb)表示節(jié)點B的坐標,(xc,yc)表示節(jié)點C的坐標,da表示節(jié)點A到未知節(jié)點D的距離,db表示節(jié)點B到未知節(jié)點D的距離,dc表示節(jié)點C到未知節(jié)點D的距離。
本文結(jié)合RSSI和三邊定位技術(shù),并考慮路徑損耗和噪聲的影響,具體的設(shè)置如圖1所示。
圖1 設(shè)計流程圖
仿真設(shè)置1個未知節(jié)點,移動未知點位置的時候,測量各參考節(jié)點的RSSI值,取離未知點附近的3個已知地址信息的節(jié)點,看成節(jié)點A,B,C,然后結(jié)合三邊技術(shù)計算出未知點的位置信息。圖2描繪了當3個節(jié)點的測量的RSSI值分別為-57.349 7、-61.3015和-64.025 4 dBm時的定位計算的結(jié)果。
圖2 實驗結(jié)果圖
其中:菱形代表節(jié)點A,五角星代表節(jié)點B,正方形代表節(jié)點C,小圓圈代表未知點位置的真實值,三角形代表未知點位置的測量值。
隨機移動未知點,并在已設(shè)置的節(jié)點中選取未知點附近的3個參考節(jié)點的RSSI值進行計算,即可計算出未知點的位置。通過多次實驗,獲得的結(jié)果如圖3、圖4所示。
圖3 實驗結(jié)果圖一
圖4 實驗結(jié)果圖二
將圖3、圖4中未知點移動過程中選取的參考節(jié)點的RSSI值與誤差值匯總, 誤差值為未知點的真實位置與測量位置之間的直線距離。實驗可以得到:誤差值最大為0.540 7 m,最小為0.115 6 m,誤差平均值約為0.373 2 m。結(jié)果如表1所示。
表1 實驗結(jié)果數(shù)據(jù)
表1將圖3、圖4中未知點位置的真實值和仿真出來的測量值匯總,得出未知點移動軌跡如圖5所示。
圖5 未知點移動圖
圖5中,未知點的真實移動軌跡與仿真出來的測量值的移動軌跡基本重合,說明在實驗誤差范圍內(nèi)能夠?qū)崿F(xiàn)良好的定位跟蹤。
本文提出了一種改進型的基于RSSI室內(nèi)定位算法,該算法可用于機器人、物聯(lián)網(wǎng)等,特別是用于優(yōu)化養(yǎng)老院的老年患者監(jiān)控系統(tǒng)。通過模擬仿真,得到基于三邊法和RSSI算法的測量結(jié)果,并給出理想點與測量點誤差距離的計算結(jié)果。在實驗過程中,為了更貼近實際,算法考慮了路徑損耗和噪聲的影響。通過計算,得出未知點的真實位置與算法測量出來的位置之間的誤差平均值為0.373 2 m的定位精度。因此,當在機器人和物聯(lián)網(wǎng)中應(yīng)用此定位算法來估計定位時,可以大大減小測量的誤差范圍。