摘 要: 針對ZigBee技術(shù)廣泛采用的的三邊測量定位方法應(yīng)用于二維定位的問題,分析其因各節(jié)點(diǎn)安裝高度不同而產(chǎn)生的誤差。為維持ZigBee技術(shù)低成本的特點(diǎn),導(dǎo)出了RSSI值修正條件及RSSI修正值與實(shí)測值的函數(shù)關(guān)系。在不增加算法復(fù)雜度的情況下,對由錨節(jié)點(diǎn)安裝高度不一致造成的誤差進(jìn)行了抑制,并在CC2431模塊上實(shí)現(xiàn)了改進(jìn)后的定位算法。結(jié)果表明,改進(jìn)后的定位算法以較小的系統(tǒng)開銷提高了定位精度,具有一定的實(shí)用性和通用性。
關(guān)鍵詞: ZigBee;三邊測量;定位;誤差;CC2431
ZigBee技術(shù)以獨(dú)特的低成本、低功耗、低速率的特點(diǎn),而擁有其他無線通信技術(shù)所無可比擬的優(yōu)勢。同時在其成本變化不大的情況下,增加硬件定位引擎,僅消耗極小的硬件資源,利用原有網(wǎng)絡(luò)條件就能實(shí)現(xiàn)無線定位,進(jìn)一步拓展了ZigBee技術(shù)的應(yīng)用?;诘竭_(dá)時間(TOA)、到達(dá)時間差(ODOA)、到達(dá)角度(AOA)、接收信號強(qiáng)度(RSSI)的定位機(jī)制都適用于IEEE802.15.4網(wǎng)絡(luò)[1]。而基于RSSI的定位機(jī)制更符合ZigBee技術(shù)低成本的特點(diǎn),并能滿足大部分低精確度定位的要求。
1 三邊測量定位
1.1 原始定位方法
圖1是一個理想的定位場景,節(jié)點(diǎn)1、2、3為已知坐標(biāo)的錨節(jié)點(diǎn),節(jié)點(diǎn)4為需定位的盲節(jié)點(diǎn)。定位方法是將由RSSI值換算而來的r1、r2、r3值,及錨節(jié)點(diǎn)坐標(biāo)代入矩陣式(1),求解盲節(jié)點(diǎn)坐標(biāo)值(x,y)。
顯然若使式(1)與式(4)的x、y值同解,當(dāng)且僅當(dāng)z1=z2=z3=c。由此利用式(1)進(jìn)行定位計(jì)算時,若錨節(jié)點(diǎn)安裝高度均與盲節(jié)點(diǎn)高度相等,則安裝高度不會產(chǎn)生xy平面上的定位誤差。但在實(shí)際應(yīng)用中,因現(xiàn)場情況限制,錨節(jié)點(diǎn)往往安裝位置較高,而盲節(jié)點(diǎn)手持或安裝于移動物體上,因此錨節(jié)點(diǎn)與盲節(jié)點(diǎn)不可能安裝在同一水平面上。此時,式(1)、式(4)有不同解,這將在理論上產(chǎn)生定位誤差。
在一定值場景中,如圖2中4個錨節(jié)點(diǎn)安裝高度為3 m,各錨節(jié)點(diǎn)在xy軸的投影點(diǎn)組成一邊長為8 m的正方形。x軸和y軸均以2 m的步長取計(jì)算點(diǎn),求解式(3)時,采用有約束非線性規(guī)劃法,求得錨節(jié)點(diǎn)與盲節(jié)點(diǎn)的高差分別為2 m和3 m時的理論誤差分布,如圖3所示。由圖可知,高差越大,各點(diǎn)誤差值普遍增大,這對小空間內(nèi)的定位準(zhǔn)確度造成較大影響。
1.3 算法改進(jìn)
前述算法出現(xiàn)誤差的根本原因在于定位計(jì)算時忽略了高差因素δh,CC2431的定位引擎輸入?yún)?shù)不包括節(jié)點(diǎn)安裝高度[4]。但考慮到δh對于二維定位,如得到各錨節(jié)點(diǎn)到盲節(jié)點(diǎn)的投影距離,僅需在xy平面上進(jìn)行計(jì)算。根據(jù)式(3)消去z軸的影響因素。改造式(2)為:
為減少CC2431在進(jìn)行RSSI值修正時的系統(tǒng)開銷,預(yù)先代入A、n、δh值等常數(shù)逐點(diǎn)計(jì)算式(8),得到修正值。盲節(jié)點(diǎn)進(jìn)行修正值計(jì)算時,如修正點(diǎn)較少時可采用查表法計(jì)算,當(dāng)各錨節(jié)點(diǎn)安裝高度不同或修正點(diǎn)較多時則采用多項(xiàng)式擬合法計(jì)算。
2 實(shí)驗(yàn)對比
本實(shí)驗(yàn)場景為長寬為8 m×8 m,凈高為3.2 m的室內(nèi)空間,分別在4個墻角安裝錨節(jié)點(diǎn)CC2430,安裝高度為2.8 m。手持盲節(jié)點(diǎn)CC2431距地約0.8 m。以1 m為步長,總計(jì)測量81個點(diǎn)位接收到4個RSSI值。由式(7)、式(8)得到修正表,見表1。修正表僅占用58 B的存儲空間,本次實(shí)驗(yàn)采用查表法進(jìn)行修正。
為對改進(jìn)前后的效果進(jìn)行比較,每次定點(diǎn)測量都連續(xù)啟動定位引擎兩次,并分別輸入RSSI(實(shí)測值)和RSSI(修正值),將兩次得到的定位坐標(biāo)送至PC,經(jīng)Matlab處理后,得到改進(jìn)后與改進(jìn)前誤差的差值表,如表2所示。
由表2可見,改進(jìn)算法提高了散布在錨節(jié)點(diǎn)附近位置的定位精度,對遠(yuǎn)離錨節(jié)點(diǎn)的位置因不滿足修正條件,則保持了原算法所得到的定位坐標(biāo)。較好地解決了要求傳輸距離盡可能近與近距離時安裝高差將產(chǎn)生較大誤差之間的矛盾。
本文分析了基于ZigBee的三邊測量定位算法在二維定位上,因節(jié)點(diǎn)安裝高度差產(chǎn)生定位誤差的本質(zhì)原因,并通過Matlab實(shí)現(xiàn)了不同高差下理論誤差的對比。提出了抑制該誤差的RSSI修正值方法。最后通過實(shí)測對提出的方法進(jìn)行了驗(yàn)證,體現(xiàn)出RSSI修正值法的有效性。
參考文獻(xiàn)
[1] 高守瑋,吳燦陽.ZigBee技術(shù)實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2] FARAHANI S. ZigBee wirleless networks and transceivers[M]. USA: Newnes,2008.
[3] 孫佩剛,趙海,羅玎玎,等.智能空間中RSSI定位問題研究[J],電子學(xué)報(bào),2007,35(7):1242-1243.
[4] Chipcon Inc.CC2431 Datasheet[S].2006. 5-9.
[5] 王靜,張會清.基于ZigBee的無線網(wǎng)絡(luò)定位技術(shù)的研究與實(shí)現(xiàn)[J],傳感器與微系統(tǒng),2010,29(2):15-16.