近年來,隨著無線技術的發展,對室內外環境中人員和物體的追蹤定位引起了研究者的廣泛研究,基于位置服務(LBS)越來越受到人們的關注。位置服務即根據服務消費者所在地理位置的不同提供對應的信息服務,作為LBS的核心技術之一,室內定位是其重要的組成部分。因為可以廣泛用于室內路由、治安、消防等方面,因此定位算法的研究具有重要意義。在室內定位系統開發研究方面,常用的方法是在室內環境下建立小范圍定位網絡。目前,越來越多的定位直接利用現成的無線通訊模塊來估計對象節點(盲節點)的位置,應運而生的ZigBee技術以低成本、低功耗成為室內定位的首選。本文以ZigBee組建基本的網絡,通過節點接收RSSI值的大小來進行距離計算,最終通過距離以及參考節點的位置來計算定位節點(盲節點)位置。
1 無線網絡定位技術
在無線定位中,有基于測距和非測距兩種方式。前者需要測量相鄰節點間的絕對距離或方位,并利用節點間的實際距離來計算未知節點的位置;后者無需測量節點的絕對距離或方位,而是利用節點間的估計距離計算節點位置?;跍y距的算法主要包含以下幾種:三邊測量、三角測量、極大似然估計等;基于非測距的算法主要有質心算法、DV-Hop算法、D_distance算法、凸規劃算法等。對定位算法的性能評價指標主要有定位精度、節點密度、容錯和自適應性、功耗和代價、網絡規模等幾個部分。綜合以上因素以及結合現有的設備,本文選用基于RSSI測距的定位方式。其流程圖如圖1所示。
從圖1可以看出定位由兩部分組成:一是通過RSSI測距;二是根據距離以及參考節點位置計算盲節點位置。
2 RSSI測距模型
2.1 模型確立
無線信號傳輸中普遍采用的理論模型為Shadowing模型。該模型為:
式中:do是參考距離;po是距離為do時接收到的信號強度,其中還包含了遮蔽外衰減或環境造成的損耗參考(中值);d是真實距離;ζ是以dB為單位的遮蔽因子,其均值為O,均方差為σdb(dB)正態隨機變量;p是接收信號強度;n是路徑損耗指數,它的值依賴于環境和建筑物的類型。在實際測量中,選用以下的模型:
即不統計遮擋因子對RSSI的影響,在實際環境下對RSSI影響最大的是非視距的影響。其中,射頻參數A被定義為用dBm表示的距離發射器1 m接收到的平均能量絕對值,也就是距發射節點1 m處的接收信號強度;n為信號傳輸常數,與信號傳輸環境有關;d為距發射節點的距離。
2.2 參數優化
在使用A和n進行距離計算時,首先要面臨的一個問題是A和n的取值問題。A和n的取值不同,對測距的誤差影響很大。為了使模型能夠盡量真實地反映出當前室內環境中的傳播特性,保證RSSI測距的精度,需要對A和n進行優化,得到最適合該室內環境情況的參數值。
通過線性回歸分析來估計參數A和n的值,假設從室內環境得到的實驗測量數據為(RSSIi,di),i=1,2,…,n,RSSIi表示在距離di上所對應的RSSI測量值。
以實驗室走廊為例,測得100組數據,代入上述公式得出A=4l,n=2.3。圖2是參數優化后的RSSI測距模型曲線。在圖中可以看出,根據線性回歸分析可以很好地擬合出適應當前環境的模型曲線。
2.3 RSSI濾波處理
信號強度的定位算法中信號強度值隨環境的改變有很高的靈敏度,這會限制測量的準確度。事實上信號強度與距離之間的關系很不讓人滿意,在環境中存在很大的波動性。在室內環境下實測得到的RSSI與節點間距離的關系曲線如圖2所示。當傳輸距離較近的時候,RSSI值衰減得較快;當傳輸距離越遠,衰減得越慢,接收強度對傳輸距離的變化表現不明顯。在實際中,某一時間段內接收節點可以收到n個RSSI值,由于非視距和多徑的影響,導致這些RSSI值具有很大的波動性,在代入公式進行計算之前,先進行濾波處理,得到一個比較準確的值,然后再進行計算。
本文采用高斯濾波模型進行RSSI濾波。引入高斯模型進行處理的原則是:在自然現象和社會現象中,大量隨機變量都服從或近似正態分布,如材料性能、零件尺寸、化學成分、測量誤差、人體高度等。
高概率發生區,選擇概率大于O.6(O.6的取值是根據工程中的經驗值)的范圍。經過高斯濾波后,RSSI的取值范圍為[0.15σ+μ,3.09 σ+μ]。其中:
把該范圍內的RSSI值全部取出,再求幾何平均值,即可得到最終的RSSI值。
在d=1 m處,采集50組RSSI值,進行高斯濾波處理。
如圖3所示,濾波前RSSI波動比較大,濾波后比較平滑。濾波前|RSSI|的平均值為38.9,計算距離d=O.71 m;濾波后|RSSI|的平均值為39.42,計算距離d=O.81 m。顯然,高斯濾波能很好地提高測距精度。
3 定位算法
假設無線定位網絡中有N個已知位置的參考節點,坐標為(x1,y1),(x2,y2),…,(xN,yN),RSSI測量值為(RSSI1,RSSI2,…,RSSIN)。通過利用無線信號傳播衰落模型計算得到待定位節點到四個已知位置的參考節點的距離為R1,R2,…,RN,則可以得到以下方程:
最終定位算法的研究就是求解該方程。在求解(x,y)過程中,選用基于泰勒級數展開迭代法進行計算。選用泰勒級數的原因基于以下幾個方面:
(1)無需提供測距差測量值誤差的先驗信息。
(2)可以應用于兩個以上數目距離差測量的定位估計。
(3)對距離差統計沒有特殊要求。
(4)在適當的距離差噪聲水平上提供較準確的定位估計。
使用泰勒級數進行定位計算,首先面臨的一個問題即泰勒級數展開需要一個與實際位置差距不大的初始值,初始值的選擇越接近真實值,越可以保證算法的收斂性以及實時性。本文采用極大似然估計法來獲取初始值,求得初始值公式為:
根據取得的值作為Taylor級數展開的循環初值,然后用Taylor級數展開,進行矩陣計算,并反復迭代求精,直到誤差滿足預先設定的門限,得出最終的位置坐標。
式中:
,重復以上過程,直到△x,△y足夠小,滿足一預先設定的門限ε,即(△x+△y)<ε,此時的(x,y)即為定位節點的估計位置。
4 實驗驗證
實驗是在實驗室走廊(4 m×30 m)進行的,實驗環境如圖4所示。選用的是ZigBee硬件平臺作為通信平臺,該平臺CC2431自帶定位引擎,可以實現位置估計,并通過實驗比較兩種算法的差異。
CC2431使用的三邊測量法進行位置計算,采用均值濾波對RSSI進行濾波處理。ZigBee開發平臺如圖5所示。
在實驗環境中布置4個節點作為參考節點,位置分別定義為(O,0),(0,4),(30,O),(30,4)。確定A和n的值,實驗環境與圖2的實驗一樣??梢缘弥?,A=41,n=2.3。在環境中任取31個點,分別測得該點的實際位置(x,y);使用CC2431得到的位置(x’,y’),使用本文提
出的算法得到位置(x“,y”)。比較兩個位置的誤差大小d‘與d“,如圖6所示。
由圖6可以看出,經過線性回歸分析和高斯濾波,然后用泰勒級數展開,最終求得位置誤差大約在1 m左右,而CC2431的定位誤差在2~3 m左右。本文提出的定位算法較好地改善了定位效果,使定位誤差主要集中在1 m左右,基本能夠滿足室內定位對誤差的要求,提高了定位精度。
5 結語
對基于RSSI的室內定位算法以及RSSI測距進行了全面分析。通過線性回歸分析對參數進行優化,高斯模型對RSSI進行濾波,提高了測距的精度。最后采用泰勒級數展開法進行位置計算,比較了CC2431的定位算法,減小了定位誤差,達到了提高定位精度的目的,證實了定位算法的優越性。
責任編輯:gt
-
無線
+關注
關注
31文章
5430瀏覽量
173074 -
ZigBee
+關注
關注
158文章
2269瀏覽量
242527
發布評論請先 登錄
相關推薦
評論