劉 鋆, 趙爾敦, 陳 怡
(1. 華僑大學(xué) 信息化建設(shè)與管理處, 福建 廈門(mén) 361021; 2. 華中師范大學(xué) 計(jì)算機(jī)學(xué)院, 武漢 430079)
·計(jì)算機(jī)技術(shù)應(yīng)用·
ZStack傳感器網(wǎng)絡(luò)定位系統(tǒng)設(shè)計(jì)
劉 鋆1, 趙爾敦2, 陳 怡2
(1. 華僑大學(xué) 信息化建設(shè)與管理處, 福建 廈門(mén) 361021; 2. 華中師范大學(xué) 計(jì)算機(jī)學(xué)院, 武漢 430079)
在無(wú)線傳感器網(wǎng)絡(luò)定位系統(tǒng)中,由于元器件品控和外界環(huán)境等因素的差異,以往測(cè)出的衰減模型參數(shù)的經(jīng)驗(yàn)值并不能適應(yīng)當(dāng)下的定位環(huán)境,以至定位精度很低,實(shí)驗(yàn)過(guò)程不具重復(fù)性。根據(jù)待定位節(jié)點(diǎn)臨近的參考節(jié)點(diǎn)多次互發(fā)報(bào)文,經(jīng)過(guò)最小二乘法擬合出衰減模型參數(shù)。算法對(duì)所有參考節(jié)點(diǎn)根據(jù)RSSI值進(jìn)行排序,選取RSSI值最小的3個(gè)節(jié)點(diǎn)用三邊定位算法計(jì)算待定位節(jié)點(diǎn)坐標(biāo)。最后,設(shè)計(jì)了一個(gè)基于ZStack協(xié)議棧的定位原型系統(tǒng)。算法經(jīng)過(guò)進(jìn)一步簡(jiǎn)化,大幅度減小了由于衰減模型參數(shù)不準(zhǔn)確對(duì)定位精度的影響,為今后深入研究室內(nèi)定位打下基礎(chǔ)。
無(wú)線傳感器網(wǎng)絡(luò); 定位; 衰減模型; ZStack
近年來(lái),基于位置服務(wù)(LBS)[1]和大數(shù)據(jù)[2]技術(shù)進(jìn)一步的挖掘了移動(dòng)終端的服務(wù)潛力,增加了用戶的可選度,為用戶提供了更有價(jià)值的決策支持信息。隨著應(yīng)用展示越來(lái)越多樣化,現(xiàn)有的基于位置服務(wù)已經(jīng)不能滿足用戶需求,仍舊停留在室外定位,如區(qū)域定位、街道定位等。而諸如停車(chē)位尋找,大型展覽館導(dǎo)航等室內(nèi)定位項(xiàng)目,定位精度仍然達(dá)不到用戶需求。
全球定位系統(tǒng)(GPS)早已成為室外定位中的主要支撐技術(shù),民用級(jí)別的精度是1 m。但由于室內(nèi)建筑材料復(fù)雜,GPS的信號(hào)無(wú)法穿透,使其無(wú)法應(yīng)用于室內(nèi)環(huán)境的定位。超聲波定位精準(zhǔn),得益于其測(cè)距精確度高的優(yōu)點(diǎn)(實(shí)驗(yàn)環(huán)境中,超聲波測(cè)距精度能達(dá)到1 cm)[3]。但對(duì)超聲收發(fā)元器件的品控要求較高,也和項(xiàng)目實(shí)施過(guò)程中節(jié)點(diǎn)的擺放位置和角度有直接影響[4]?;赗SSI的定位系統(tǒng)[5],不依賴于捆綁其他的傳感器,在組網(wǎng)的同時(shí)利用無(wú)線信號(hào)接收強(qiáng)度進(jìn)行測(cè)距,即可達(dá)到定位的目的。隨著傳感器的軟、硬件技術(shù)的成熟和無(wú)線技術(shù)的快速發(fā)展,行業(yè)內(nèi)已經(jīng)可以實(shí)現(xiàn)1 000個(gè)以上的無(wú)線傳感器節(jié)點(diǎn)大規(guī)模自組織組網(wǎng),針對(duì)大規(guī)模部署產(chǎn)生的漏斗效應(yīng),也有了較好的解決方案[6]。并且,無(wú)線傳感器節(jié)點(diǎn)量產(chǎn)成本很低,適合大規(guī)模部署。因此,在無(wú)線傳感器網(wǎng)絡(luò)收集數(shù)據(jù)的項(xiàng)目中,添加定位功能,無(wú)論在經(jīng)濟(jì)上和技術(shù)上都是具有可行性的。本文將進(jìn)一步探究基于信號(hào)接收強(qiáng)度和距離的轉(zhuǎn)換關(guān)系,及其參數(shù)如何適應(yīng)不同環(huán)境的解決方案。
ZStack是德州儀器公司專門(mén)為cc243x和cc253x芯片組定制的一個(gè)小型的假實(shí)時(shí)操作系統(tǒng)。它優(yōu)異地集成ZigBee,ZigBee PRO的絕大部分特性,被ZigBee測(cè)試機(jī)構(gòu),國(guó)家技術(shù)服務(wù)公司(NTS)評(píng)為ZigBee聯(lián)盟業(yè)內(nèi)最高水平[7]。
ZStack協(xié)議棧的任務(wù)調(diào)度機(jī)制是非常經(jīng)典的輪詢機(jī)制。作為一個(gè)增強(qiáng)型的單片機(jī),輪詢無(wú)疑是最簡(jiǎn)潔高效的。每個(gè)任務(wù)鏈表都有一個(gè)單獨(dú)的消息隊(duì)列,消息隊(duì)列由各種事件產(chǎn)生的標(biāo)志位組成,系統(tǒng)通過(guò)判斷標(biāo)志位進(jìn)而對(duì)相應(yīng)的事件進(jìn)行響應(yīng)。標(biāo)志位的修改可以通過(guò)輪詢或中斷來(lái)實(shí)現(xiàn)。當(dāng)傳感器節(jié)點(diǎn)上電,系統(tǒng)會(huì)初始化任務(wù)鏈表,配合OSAL完成整個(gè)協(xié)議棧的穩(wěn)定運(yùn)行[8]。
在基于測(cè)距的定位算法中,信號(hào)衰減模型被用于信號(hào)強(qiáng)度與距離的轉(zhuǎn)換。
(1)
表1 路徑衰減系數(shù)經(jīng)驗(yàn)值
在環(huán)境中存在的阻擋越多,信號(hào)強(qiáng)度衰減得越多。因此,n值大致能說(shuō)明傳播介質(zhì)的通過(guò)率。實(shí)際工程中,經(jīng)常把一些尚未研究出規(guī)律的、影響無(wú)線信號(hào)傳播的因素歸入信號(hào)噪聲。式(1)中的ε,代表環(huán)境的噪聲干擾,ε是一個(gè)服從高斯分布(0,δdB)的隨機(jī)數(shù)。δdB為遮蔽方差(Shadowing deviation),不同環(huán)境下,測(cè)量出來(lái)的遮蔽方差是不一樣的[9]。
在實(shí)際的工程中,往往會(huì)使用衰減模型的另一種形式,即
(2)
式中:A為單位距離的信號(hào)強(qiáng)度;n為定位環(huán)境的衰減系數(shù),這2個(gè)參數(shù)直接決定了測(cè)距的精準(zhǔn)度。
為了使衰減模型中的參數(shù)實(shí)時(shí)適應(yīng)測(cè)量環(huán)境,本文將通過(guò)修改通信協(xié)議,選擇待定位節(jié)點(diǎn)周?chē)膮⒖脊?jié)點(diǎn)并讓它們發(fā)送探測(cè)報(bào)文,提取RSSI值和參考節(jié)點(diǎn)的位置信息,從而計(jì)算出A和n。如果在每一次計(jì)算待定位節(jié)點(diǎn)之前,都進(jìn)行一次A、n的測(cè)算,那么即使定位區(qū)域的環(huán)境發(fā)生變化,A和n也將隨環(huán)境而改變。這種利用待定位節(jié)點(diǎn)附近的參考節(jié)點(diǎn)信息使定位計(jì)算適應(yīng)定位環(huán)境的方法,可進(jìn)一步簡(jiǎn)化定位算法,屏蔽A、n計(jì)算過(guò)程。
在定位系統(tǒng)中,有m個(gè)參考節(jié)點(diǎn),它們之間相鄰的距離為d1,d2,d3,…,dm,對(duì)應(yīng)的節(jié)點(diǎn)接受到報(bào)文的信號(hào)強(qiáng)度為|RSSI|1,|RSSI|2,|RSSI|3,…,|RSSI|m。則有
(3)
式(3)可以寫(xiě)成Y=bX的形式:
(4)
式中:
左乘bT,矩陣可以降至2維
bTY=bTbX
(5)
式中:
結(jié)合提取到的待定位節(jié)點(diǎn)的信號(hào)接收強(qiáng)度均值|RSSI|,可列出下面的方程組,解出的r即為待定位節(jié)點(diǎn)與參考節(jié)點(diǎn)的距離
(6)
在基于測(cè)距的定位算法中,三邊定位算法是經(jīng)典算法。在所有參考節(jié)點(diǎn)中,選擇RSSI值最小的3個(gè)節(jié)點(diǎn)與待定位節(jié)點(diǎn)的距離用于計(jì)算坐標(biāo)
(7)
式中,(x,y)為待定位節(jié)點(diǎn)的坐標(biāo),(x1,y1) (x2,y2) (x3,y3)是參考節(jié)點(diǎn)的坐標(biāo)。當(dāng)3個(gè)參考節(jié)點(diǎn)不在同一條直線,方程組有解,即
實(shí)時(shí)計(jì)算衰減模型中的參數(shù),對(duì)定位結(jié)果的精準(zhǔn)度有非常重要的意義。本節(jié)將設(shè)計(jì)并實(shí)現(xiàn)一個(gè)對(duì)環(huán)境自適應(yīng)的定位系統(tǒng),在該系統(tǒng)中,將不需要再考慮衰減模型參數(shù)對(duì)測(cè)距的影響。
4.1 系統(tǒng)總體框架
圖1所示為經(jīng)典的無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用的系統(tǒng)原型。無(wú)線傳感器負(fù)責(zé)組織網(wǎng)絡(luò)和數(shù)據(jù)采集(比如溫度、濕度和震動(dòng)等),通過(guò)一個(gè)或者多個(gè)網(wǎng)關(guān)節(jié)點(diǎn)傳輸至上位機(jī),上位機(jī)進(jìn)行數(shù)據(jù)處理和展示。本文的定位原型系統(tǒng)也是依據(jù)此框架設(shè)計(jì)的。
圖1 定位系統(tǒng)項(xiàng)目框架
4.2 系統(tǒng)的軟、硬件平臺(tái)
4.2.1 無(wú)線傳感器節(jié)點(diǎn)
本系統(tǒng)將使用由TI公司研發(fā)的CC2530芯片為主控的無(wú)線傳感器。它們有配套的ZStack協(xié)議棧,實(shí)現(xiàn)了Zigbee2007 Pro中的幾乎所有功能。不僅如此,作為增強(qiáng)型的單片機(jī),只需適當(dāng)?shù)男薷尿?qū)動(dòng),就能支持諸如msstatePAN、TinyOS[13]和FreakZ等開(kāi)源協(xié)議棧。目前TI公司的CC253X芯片在市場(chǎng)上的占有率穩(wěn)定,投入到生產(chǎn)環(huán)境中的案例很多。
4.2.2 定位系統(tǒng)軟件開(kāi)發(fā)平臺(tái)
(1) 協(xié)議棧開(kāi)發(fā)工具。底層的無(wú)線傳感器網(wǎng)絡(luò)使用TI公司開(kāi)發(fā)的ZStack協(xié)議棧中的CC2530版本作為軟件系統(tǒng)。使用瑞典IAR公司的C編譯器IAR Embedded Workbench for 8051,并結(jié)合芯片配置文件CC2530.i51,便可在ZStack協(xié)議棧上開(kāi)發(fā)。
(2) 定位系統(tǒng)和展示界面開(kāi)發(fā)工具。上位機(jī)的數(shù)據(jù)處理程序和核心算法是在.Net 3.5框架上由C#實(shí)現(xiàn)。每輪定位后,使用GDI+實(shí)時(shí)繪出。GDI+是Windows的一個(gè)子系統(tǒng),主要負(fù)責(zé)在打印設(shè)備和顯示屏輸出。GDI+屏蔽了應(yīng)用程序和圖形輸出設(shè)備之間的復(fù)雜細(xì)節(jié),開(kāi)發(fā)人員只需要編寫(xiě)設(shè)備無(wú)關(guān)的應(yīng)用程序,提高了開(kāi)發(fā)效率。
4.3 系統(tǒng)設(shè)計(jì)
4.3.1 數(shù)據(jù)采集系統(tǒng)
ZigBee協(xié)議中,無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)被分為3類:協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)。為了敘述方便,系統(tǒng)將延用ZStack中的定位例程的節(jié)點(diǎn)分類:Dongle、Router和Blind。Dongle在系統(tǒng)初始化時(shí)創(chuàng)建網(wǎng)絡(luò),并在系統(tǒng)運(yùn)行過(guò)程中對(duì)網(wǎng)絡(luò)進(jìn)行維護(hù)。它通過(guò)仿真器與電腦連接,系統(tǒng)運(yùn)行過(guò)程中,不處理任何來(lái)自Router的RSSI數(shù)據(jù),透明傳輸至上位機(jī)。Router負(fù)責(zé)RSSI收集,并在網(wǎng)絡(luò)傳輸過(guò)程起路由作用。Blind是待定位節(jié)點(diǎn),不工作時(shí)處于深度睡眠狀態(tài),每隔一段時(shí)間由定時(shí)器喚醒。
在圖2中,Dongle只有1個(gè),Router和Blind有多個(gè),其中Router的數(shù)目為3個(gè)以上。系統(tǒng)中有9類報(bào)文,它們以Cluster ID作為標(biāo)識(shí)。
圖2 ZStack應(yīng)用層通信協(xié)議
節(jié)點(diǎn)發(fā)送報(bào)文之前,必須定義報(bào)文中的Cluster ID。當(dāng)傳感器接收到一個(gè)報(bào)文,會(huì)依據(jù)報(bào)文中的Cluster ID做出不同的處理。報(bào)文的發(fā)送由定時(shí)器或者回調(diào)函數(shù)觸發(fā),按照序號(hào)的字典順序執(zhí)行。
0. LOCATION_ROUTER_KEEP_ALIVE
1. LOCATION_ROUTER_TABLE_CREATE
2. LOCATION_ROUTER_INFO
3. LOCATION_ROUTER_RSSI_REQUEST
4. LOCATION_ROUTER_UNICAST
5. LOCATION_ROUTER_RSSI_RESPONSE
6. LOCATION_BLIND_RSSI_REQUEST
7. LOCATION_BLIND_BLAST
8. LOCATION_BLIND_RSSI_RESPONSE
本系統(tǒng)應(yīng)用于室內(nèi)定位,Dongle和Router均由外接電源持續(xù)供電,Blind由于是待定位節(jié)點(diǎn),需要不斷移動(dòng),由5號(hào)電池供電。系統(tǒng)上電初始化,Dongle進(jìn)行硬件上電核查、短地址初始化、節(jié)點(diǎn)ID寫(xiě)入,選擇信道并開(kāi)始廣播網(wǎng)絡(luò)組建幀。Router和Blind進(jìn)行硬件上電核查、短地址初始化,開(kāi)始尋找和加入網(wǎng)絡(luò)。如果Router和Blind沒(méi)有接收到Dongle廣播的網(wǎng)絡(luò)組建幀,將進(jìn)入等待狀態(tài)。當(dāng)加入網(wǎng)絡(luò)的Router和Blind的數(shù)目滿足后,Dongle將啟動(dòng)應(yīng)用層路由表創(chuàng)建。
當(dāng)無(wú)線傳感器網(wǎng)絡(luò)組建完成,并且網(wǎng)絡(luò)上的節(jié)點(diǎn)足夠時(shí),Dongle采用多播的方式每隔3 s發(fā)送Cluster ID為L(zhǎng)OCATION_ROUTER_TABLE_CRE-ATE的報(bào)文給Router。Router接收后,將以單播的形式、Cluster ID為L(zhǎng)OCATION_ROUTER_INFO,發(fā)送其短地址和上電時(shí)寫(xiě)入的節(jié)點(diǎn)ID給Dongle。Dongle接收此類報(bào)文后,提取節(jié)點(diǎn)ID和短地址,按節(jié)點(diǎn)ID的字典順序插入路由表。應(yīng)用層路由表的結(jié)構(gòu)如下:
struct _router table
{
struct _router_talbe *next;
uint8 node_id;
uint16 short_addr;
uint8 alive_count;
}
路由表是一個(gè)按節(jié)點(diǎn)ID從小到大的單循環(huán)鏈表,每條路由信息包括節(jié)點(diǎn)id,短地址和存活計(jì)數(shù)。維護(hù)路由表借鑒了經(jīng)典的心跳機(jī)制。Dongle每隔3 s向Router多播Cluter ID為L(zhǎng)OCATION_-ROUTER_KEEP_ALIVE的報(bào)文,并將路由表中的所有節(jié)點(diǎn)的alive_count加1。Router收到后將立即觸發(fā)回調(diào)函數(shù),以LOCATION_ROUTER_INFO為Cluster ID的報(bào)文單播Router節(jié)點(diǎn)信息給Dongle。Dongle將會(huì)順序查找路由表,如果路由表中已有這條路由信息,則此節(jié)點(diǎn)的alive_count重置為初始化值0。Dongle通過(guò)osal_timer函數(shù)向任務(wù)鏈表中添加定時(shí)任務(wù),每隔60 s執(zhí)行alive_count參數(shù)巡查。當(dāng)路由表中某個(gè)Router的alive_count超過(guò)10,該節(jié)點(diǎn)的路由信息將會(huì)從路由表中刪去。
應(yīng)用層路由表形成后,Dongle遍歷路由表,提取目的節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)的短地址填充報(bào)文中的destID,將此報(bào)文的Cluster ID設(shè)為L(zhǎng)OCATION_-ROUTER_RSSI_REQUEST,以單播的形式發(fā)送給Router。報(bào)文結(jié)構(gòu)如表2。Router收到后,提取報(bào)文中的destID,以單播的形式向destID發(fā)送Cluster ID為L(zhǎng)OCATION_ROUTER_UNICAST的報(bào)文。短地址為destID的節(jié)點(diǎn)接收到報(bào)文后,調(diào)用回調(diào)函數(shù)?;卣{(diào)函數(shù)將提取RSSI值,發(fā)送地址和接收地址填充報(bào)文,以LOCATION_ROUTER_RSSI_RESPON-SE為Cluster ID單播給Dongle。Dongle接收后,將觸發(fā)串口發(fā)送函數(shù),通過(guò)串口原樣發(fā)送至上位機(jī)處理。在ZStack中,多播和單播在網(wǎng)絡(luò)層有校驗(yàn)、重傳等糾錯(cuò)機(jī)制的,但在串口傳輸過(guò)程,需要手工添加校驗(yàn)字段,本系統(tǒng)選擇CRC16算法。
表2 LOCATION_ROUTER_RSSI_REQUEST報(bào)文格式
當(dāng)Dongle發(fā)送完一輪Cluster ID為L(zhǎng)OCATION_ROUTER_RSSI_RESPONSE報(bào)文后,立即以單播的形式向Blind發(fā)送Cluster ID為L(zhǎng)OCATION_BLIND_RSSI_REQUEST的報(bào)文。Blind收到后,將廣播50個(gè)路由超時(shí)跳數(shù)為1的,Cluster ID為L(zhǎng)OCATION_BLIND_BLAST的空數(shù)據(jù)報(bào)文。相鄰的Router收到后,提取RSSI值,以單播的形式發(fā)送Cluster ID為L(zhǎng)OCATION_BLIND_-RSSI_RESPONSE的報(bào)文給Dongle,Dongle接收后,調(diào)用串口發(fā)送函數(shù)原樣發(fā)送給上位機(jī)??紤]到在實(shí)際應(yīng)用中,待定位節(jié)點(diǎn)是不斷移動(dòng)的,因此Blind在第1次廣播完成后,為了盡量節(jié)能,電源模式置為PM2模式。當(dāng)芯片進(jìn)入PM2模式,電壓調(diào)節(jié)器到數(shù)字核心是不工作,16 MHz的RC振蕩器和32 MHz晶振都不運(yùn)行,耗電非常低。由于CC2530主控不支持睡眠中被無(wú)線信號(hào)喚醒,每隔1 s,定時(shí)器將喚醒節(jié)點(diǎn)并且廣播50次Cluster ID為L(zhǎng)OCATION_BLIND_BLAST的報(bào)文,又立即進(jìn)入PM2模式。Blind在定位系統(tǒng)中因?yàn)槭且苿?dòng)的,它的代碼量最小,絕大多數(shù)時(shí)間處于睡眠狀態(tài)。為了定位不斷出現(xiàn)的待定位節(jié)點(diǎn),Dongle每隔2 s發(fā)送1次LOCATION_BLIND_RSSI_REQUEST報(bào)文。
4.3.2 核心定位系統(tǒng)
為了盡量降低系統(tǒng)模塊的耦合性,底層的數(shù)據(jù)采集系統(tǒng)和上位機(jī)中的定位數(shù)據(jù)處理系統(tǒng)沒(méi)有交互。數(shù)據(jù)采集系統(tǒng)只是將數(shù)據(jù)單向傳遞至上位機(jī),上位機(jī)并不發(fā)送任何指令或數(shù)據(jù)給底層的數(shù)據(jù)采集系統(tǒng)。獨(dú)立的設(shè)計(jì)能降低系統(tǒng)的開(kāi)發(fā)成本和調(diào)試的難度,使定位原型系統(tǒng)架構(gòu)清晰。圖3展示了上位機(jī)定位系統(tǒng)的流程,在實(shí)現(xiàn)過(guò)程中,如果不注意一些細(xì)節(jié),會(huì)直接影響定位效果。
圖3 上位機(jī)定位系統(tǒng)流程圖
底層的數(shù)據(jù)發(fā)送周期可以根據(jù)待定位節(jié)點(diǎn)的廣播報(bào)文周期調(diào)整。當(dāng)上位機(jī)接收到底層傳來(lái)的一個(gè)報(bào)文的周期數(shù)據(jù)后,將判斷數(shù)據(jù)量是否足夠。由于計(jì)算坐標(biāo)位置需要3個(gè)以上的參考節(jié)點(diǎn)的RSSI值,并且還要進(jìn)行濾波運(yùn)算,如果數(shù)據(jù)量不夠,將繼續(xù)接受下一輪數(shù)據(jù)。在ZStack中,信號(hào)單元結(jié)構(gòu)體中是采用鏈路質(zhì)量指示LQI來(lái)代表信號(hào)強(qiáng)度的,因此,在使用衰減模型之前,需要將LQI轉(zhuǎn)換成RSSI。LQI與RSSI的關(guān)系為
LQI=255×(RSSI+81)/91
(8)
在德州儀器出具的Datasheet明確建議使用-95~-40之間的RSSI值用作計(jì)算,如果超出該區(qū)間,RSSI值的參考性將降低。因此,當(dāng)RSSI值不在區(qū)間內(nèi),對(duì)應(yīng)的數(shù)據(jù)將丟棄,不用于計(jì)算。經(jīng)過(guò)濾波算法后,將一個(gè)節(jié)點(diǎn)的RSSI數(shù)據(jù)集,收斂成一個(gè)RSSI值。再用于計(jì)算坐標(biāo)位置,最后通過(guò)GDI+實(shí)時(shí)繪出待定位節(jié)點(diǎn)所在位置。
定位系統(tǒng)測(cè)試在節(jié)點(diǎn)距離為3、8和12 m時(shí),定位精度分別為0.3、0.8和1.5 m,節(jié)點(diǎn)平均距離增大,定位誤差將增大。
圖4所示為定位原型系統(tǒng)的展示界面,由4個(gè)參考節(jié)點(diǎn)組成的3 m×3 m的正方形區(qū)域,藍(lán)色的待定位節(jié)點(diǎn)放置在(1.5,3)位置,系統(tǒng)定位的結(jié)果為(1.33,2.93),誤差為0.184 0 m。
圖4 定位原型系統(tǒng)展示界面
本文通過(guò)研究傳統(tǒng)的基于測(cè)距的定位算法易產(chǎn)生誤差的原因,著重闡述了由于硬件品質(zhì)及環(huán)境因素對(duì)定位計(jì)算的影響。利用參考節(jié)點(diǎn)信息,解決了衰減模型參數(shù)不適用實(shí)際定位環(huán)境的問(wèn)題。并進(jìn)一步提出了無(wú)需計(jì)算衰減模型參數(shù)的算法,使得定位算法具有自適應(yīng)環(huán)境的能力。降低外部環(huán)境對(duì)定位的影響,為今后定位算法的深入和追蹤算法的研究打下基礎(chǔ)。
[1] 劉學(xué)斌, 程朋根, 徐云和. 基于位置服務(wù)的關(guān)鍵技術(shù)與應(yīng)用[J]. 江西科學(xué), 2005, 23(1): 43-48.
[2] 王 珊, 王會(huì)舉, 覃雄派, 等. 架構(gòu)大數(shù)據(jù): 挑戰(zhàn), 現(xiàn)狀與展望[J]. 計(jì)算機(jī)學(xué)報(bào), 2011, 34(10): 1741-1752.
[3] 趙海鳴, 卜英勇, 王紀(jì)嬋. 一種高精度超聲波測(cè)距系統(tǒng)的研制[J]. 礦業(yè)研究與開(kāi)發(fā), 2006, 26(3): 62-65.
[4] 孫牽宇, 童 峰, 許肖梅. 一種大角度范圍的高精度超聲波測(cè)距處理方法[J]. 廈門(mén)大學(xué)學(xué)報(bào) (自然科學(xué)版), 2006, 45(4): 513-517.
[5] Zàruba G V, Huber M, Kamangar F A,etal. Indoor location tracking using RSSI readings from a single Wi-Fi access point[J]. Wireless Networks, 2007, 13(2): 221-235.
[6] 張 磊,周 福. 基于圖論的溫室WSN測(cè)控系統(tǒng)冗余節(jié)點(diǎn)部署算法[J].農(nóng)機(jī)化研究, 2011(6):14-17.
[7] 李曉維,徐永軍,任豐原. 無(wú)線傳感器網(wǎng)絡(luò)技術(shù)[M]. 北京:北京理工大學(xué)出版社, 2007.
[8] 李戰(zhàn)明, 劉 寶, 駱東松. Zigbee 技術(shù)規(guī)范與協(xié)議棧分析[J]. 信息化縱橫, 2009(5): 45-48.
[9] 王繼春. 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位若干問(wèn)題研究[D]. 合肥: 中國(guó)科技大學(xué),2009.
[10] Hossain A, Van H N, Soh W S. Fingerprint-Based location estimation with virtual access points[C]//Computer Communications and Networks, 2008. ICCCN'08. Proceedings of 17th International Conference on. IEEE, 2008: 1-6.
[11] Bahl P, Padmanabhan V N. RADAR: An in-building RF-based user location and tracking system[C]//INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE, 2000, 2: 775-784.
[12] Lorincz K, Welsh M. Motetrack: A robust, decentralized approach to RF-based location tracking[C]∥Location-and Context-Awareness. Berlin Heidelberg: Springer, 2005: 63-82.
[13] 劉信新, 邵明凱. 無(wú)線傳感器網(wǎng)絡(luò)操作系統(tǒng) TinyOS 研究[J]. 計(jì)算機(jī)與數(shù)字工程, 2008 (7): 66-68.
Design of the Localization System in Wireless Sensor Networks
LIUJun1,ZHAOErdun2,CHENYi3
(1. Information Construction and Management,Huaqiao University, Xiamen 361021, Fujian, China; 2. Department of Computer Science,Central China Normal University, Wuhan 430079,China)
In the localization system of wireless sensor networks, due to differences in quality control and external environment, empirical value of attenuation model cannot meet the current environment, the result may lead to low positioning accuracy and non-repeatable experiment. In this paper, the parameters of the model are fitted by the least square method, according to the reference nodes which send messages mutually close to the nodes to be located. All the reference nodes are sorted by their RSSI values, and the three nodes with the smallest RSSI values are selected to calculate the coordinates of the nodes to be located. Finally, a prototype system is designed and implemented for localization based on protocol stack of ZStack. Further simplifying algorithm greatly reduces model parameter inaccuracies on positioning accuracy, it provides the foundation for further research.
wireless sensor networks; localization; attenuation model; ZStack
2016-05-12
國(guó)家自然科學(xué)基金項(xiàng)目資助(61202470)
劉 鋆(1987-),男,福建廈門(mén)人,助理工程師,研究方向:無(wú)線定位,智慧校園。E-mail:liuj@hqu.edu.cn
TN 929.5; TP 393
A
1006-7167(2017)02-0112-05