產(chǎn)品中心 應(yīng)用方案 技術(shù)文摘質(zhì)量保證產(chǎn)品選型 下載中心業(yè)內(nèi)動(dòng)態(tài) 選型幫助 品牌介紹 產(chǎn)品一覽 聯(lián)系我們
- 傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的測(cè)距與定位
- 來源:賽斯維傳感器網(wǎng) 發(fā)表于 2011/7/26
摘 要:無線傳感器網(wǎng)絡(luò)是以傳感探測(cè)、通信及計(jì)算機(jī)等科學(xué)技術(shù)為依托而構(gòu)筑的目標(biāo)感知和監(jiān)測(cè)系統(tǒng),由于其巨大的應(yīng)用前景而備受學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。定位問題是傳感器網(wǎng)絡(luò)設(shè)計(jì)與應(yīng)用中的一個(gè)重要問題。傳感器節(jié)點(diǎn)的位置信息在傳感器網(wǎng)絡(luò)的協(xié)議設(shè)計(jì)、網(wǎng)絡(luò)管理、節(jié)點(diǎn)間協(xié)作、目標(biāo)跟蹤等方面都具有重要的理論和實(shí)際意義。本文詳細(xì)闡述了基于聲波測(cè)距的傳感器網(wǎng)絡(luò)定位算法的實(shí)現(xiàn)策略,對(duì)具體實(shí)現(xiàn)機(jī)制進(jìn)行了分析并給出相關(guān)結(jié)論。
關(guān)鍵詞:傳感器網(wǎng)絡(luò) 定位算法 聲波測(cè)距
1.引言
處理器、存儲(chǔ)和無線通信技術(shù)的不斷進(jìn)步為網(wǎng)絡(luò)化傳感器開辟了新的發(fā)展空間,網(wǎng)絡(luò)化傳感器不僅僅是一個(gè)簡(jiǎn)單的傳感器,它由處理器、存儲(chǔ)器、無線收發(fā)機(jī)、電池和一組傳感器構(gòu)成,具有傳感、計(jì)算和通信等多種功能。而且伴隨著制造工藝的不斷革新,網(wǎng)絡(luò)化傳感器的體積變得越來越小,因此人們形象的稱它為“智能塵埃”。由這種“智能塵埃”組成的無線傳感網(wǎng)絡(luò)被廣泛的應(yīng)用到各方面,例如環(huán)境監(jiān)測(cè)、軍事偵察等。定位問題是傳感器網(wǎng)絡(luò)設(shè)計(jì)與應(yīng)用中的一個(gè)重要問題。傳感器節(jié)點(diǎn)的位置信息在傳感器網(wǎng)絡(luò)的協(xié)議設(shè)計(jì)、網(wǎng)絡(luò)管理、節(jié)點(diǎn)間協(xié)作、目標(biāo)跟蹤等方面都具有重要的理論和實(shí)際意義。
2. 基于測(cè)距的定位
2.1 軟硬件環(huán)境及可行性分析
我們使用的節(jié)點(diǎn)是CrossBow公司的MPR400CB,節(jié)點(diǎn)上所使用的處理器是ATmega128L。ATmega128L處理器的約為主頻 7.4MHz,CPU時(shí)鐘周期是136ns,另外ATmega128L處理器使用的是精簡(jiǎn)指令集和流水線技術(shù),大部分指令的執(zhí)行周期都只占用一個(gè)CPU時(shí)鐘周期,中斷的響應(yīng)周期占4個(gè)CPU時(shí)鐘周期。如果測(cè)10cm的距離,聲速假設(shè)是340m/s,那么則ΔT應(yīng)該大約為0.294ms;假設(shè)每條指令的執(zhí)行時(shí)間都是136ns,那么在ΔT這段時(shí)間內(nèi)節(jié)點(diǎn)可以大約執(zhí)行2161條指令,所以說處理器在處理速度上是足夠了。另外處理器中計(jì)數(shù)器晶振的頻率最快可以達(dá)到每毫秒7373次,所以計(jì)時(shí)器也具有足夠的精確度用來計(jì)時(shí)。所以,聲波法測(cè)距中,計(jì)時(shí)的環(huán)節(jié)上不存在問題。
我們所用的傳感器板是CrossBow公司的MTS310CA。MTS310CA傳感器板上同時(shí)集成了蜂鳴器和麥克風(fēng)。蜂鳴器是一個(gè)簡(jiǎn)單的4KHz壓電共鳴器。它的驅(qū)動(dòng)和頻率控制電路是內(nèi)部集成的。對(duì)它的操作只需控制開關(guān)就行了。MTS310CA傳感器板提供了麥克風(fēng),有兩個(gè)主要用途,一個(gè)用途是用來做聲音的測(cè)距,另一個(gè)用途是用來錄音和測(cè)量聲音。其中麥克風(fēng)自帶了濾波器和聲音解碼器,可以用來對(duì)MTS310CA傳感器板上蜂鳴器發(fā)出的4kHz的聲音進(jìn)行監(jiān)聽。
節(jié)點(diǎn)上運(yùn)行的操作系統(tǒng)為TinyOS。TinyOS是一種源代碼開放的操作系統(tǒng),是美國(guó)加州大學(xué)伯克利分校為低功率的嵌入式網(wǎng)絡(luò)傳感器而設(shè)計(jì)的基于事件驅(qū)動(dòng)的嵌入式操作系統(tǒng),它以最少的硬件配置支持網(wǎng)絡(luò)化傳感器所需的并發(fā)密集操作,是一種微線程、事件觸發(fā)的操作系統(tǒng)。它保持了網(wǎng)絡(luò)化傳感器所特有的諸多特性,高效的管理硬件系統(tǒng),同時(shí)支持并發(fā)密集操作,從某種意義上達(dá)到高效的模塊化和運(yùn)行的健壯性。
2.2 算法實(shí)現(xiàn)
為了用聲波測(cè)距且將距離的最小分辨率提高到至少10厘米,我們必須對(duì)TinyOS提供的定時(shí)器TimerC進(jìn)行改造?紤]到TinyOS本身的一些其他重要組件,如節(jié)點(diǎn)間無線通信模塊GenericComm.nc、模數(shù)轉(zhuǎn)換器ADCC等都用到了系統(tǒng)提供的TimerC組件。所以我們?nèi)绻脑?TimerC,那么在改造的同時(shí)還要保證原來的功能不變。另外一種方法是利用處理的另外一個(gè)硬件資源,也就是Timer/Counter1,自己編寫一個(gè)專用的Timer。比較兩種方法,前一種在原來的基礎(chǔ)上稍加改進(jìn)節(jié)省硬件資源;后一種方法的話比較簡(jiǎn)單,但專門用了處理器的一個(gè)定時(shí)計(jì)數(shù)器只實(shí)現(xiàn)一個(gè) Timer,從硬件角度看浪費(fèi)較大,不過它可以達(dá)到很高的計(jì)時(shí)速度,可以用來進(jìn)行高頻率的采樣。
這種方法的基本思想為:Beacon節(jié)點(diǎn)以固定的時(shí)間間隔先通過無線發(fā)射裝置向Listener節(jié)點(diǎn)發(fā)射一條準(zhǔn)備測(cè)距的消息,其中包含一個(gè)時(shí)間戳,沒法一次準(zhǔn)備測(cè)距的消息時(shí)Beacon節(jié)點(diǎn)將時(shí)間戳加1。這里Beacon節(jié)點(diǎn)是用兩個(gè)定時(shí)器,第一個(gè)定時(shí)器用來控制向Listener發(fā)送準(zhǔn)備測(cè)距的消息的時(shí)間間隔,第二個(gè)定時(shí)器用來控制蜂鳴器的發(fā)聲時(shí)間。這里兩節(jié)點(diǎn)通過Beacon使用的SendMsg接口的 SendMsg.sendDone(TOS_MsgPtr sent, result_t success)事件和Listener使用的 ReceiveMsg接口的event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr m)事件達(dá)到兩節(jié)點(diǎn)間的同步。也就是說,對(duì)于Beacon來說,當(dāng)SendMsg的發(fā)送完成時(shí)即產(chǎn)生SendMsg.sendDone事件,Beacon將蜂鳴器打開一段時(shí)間;對(duì) Listener來說當(dāng)ReceiveMsg產(chǎn)生ReceiveMsg.receive事件時(shí),Listener節(jié)點(diǎn)開始計(jì)時(shí)。
2.3 結(jié)果分析
程序在傳感器節(jié)點(diǎn)上運(yùn)行,在基站接收到的數(shù)據(jù)(如圖1)是兩節(jié)點(diǎn)距離20厘米時(shí)的測(cè)量結(jié)果,其中發(fā)回基站標(biāo)出的數(shù)值乘以10厘米就是兩節(jié)點(diǎn)間的實(shí)際距離。
圖1 基站接收到原始數(shù)據(jù)
圖1中橫線的數(shù)據(jù)表示節(jié)點(diǎn)測(cè)量到的距離,比例因子是10厘米。從數(shù)據(jù)流可以看出,測(cè)量的結(jié)果不穩(wěn)定,有漂流而且較大。但其中有正確的結(jié)果02也就是 20厘米,同樣,將兩節(jié)點(diǎn)的距離放置30厘米、40厘米、50厘米、60厘米、70厘米和80厘米,得到的數(shù)據(jù)有類似的特點(diǎn)。仔細(xì)對(duì)聲波測(cè)距的誤差分布圖分析后,發(fā)現(xiàn)其誤差的分布以一種比較隨意的分布,不能用我們常用的例如正態(tài)分布等分布來對(duì)其進(jìn)行擬合。然而,我們使用一種比較簡(jiǎn)單的最小值濾波得到了比較好的效果。因?yàn)閷?duì)接收到的數(shù)據(jù)流仔細(xì)觀察,雖然在同一距離中測(cè)量值偏差的分布沒有任何規(guī)律,但是從某一寬度的時(shí)間窗口,也就是同一距離時(shí)連續(xù)測(cè)到的一組數(shù)據(jù)(例如連續(xù)的10個(gè)測(cè)量值),內(nèi)中必有和真實(shí)距離相符的正確的測(cè)量值,而且在這一組數(shù)據(jù)中值最小。
由上面分析得到數(shù)據(jù)的特點(diǎn)我們決定采用最小值濾波法來改進(jìn)測(cè)量,也就是在一組連續(xù)的數(shù)據(jù)(試驗(yàn)中發(fā)現(xiàn)10個(gè)連續(xù)的數(shù)據(jù)長(zhǎng)度是在可以保證數(shù)據(jù)的正確率大于98%的情況下的最短距離)中找出這些數(shù)據(jù)中值最小的那個(gè)值來代表著一段時(shí)間內(nèi)測(cè)距結(jié)果。這樣兩節(jié)點(diǎn)的一次測(cè)距,通過10對(duì)他們的10次連續(xù)測(cè)距并采用最小濾波得到。不過這種方法的缺點(diǎn)也是比較明顯的,也就是增加了節(jié)點(diǎn)之間的測(cè)距所需要的時(shí)間,如果原來是每一秒鐘測(cè)一次距離,那么用這種算法如果濾波的長(zhǎng)度取10的話,變成每10秒鐘測(cè)一次距離,也就是10秒定一次位。這使測(cè)量的實(shí)時(shí)性降低,為了提高實(shí)時(shí)性,可以縮短Beacon每次發(fā)射準(zhǔn)備測(cè)距信號(hào)的時(shí)間間隔,如每100毫秒進(jìn)行一次,這樣就使得同樣的算法情況下定位測(cè)距的時(shí)間縮短到1秒鐘一次。
將算法改進(jìn),對(duì)兩節(jié)點(diǎn)的一次測(cè)距值,通過連續(xù)的10測(cè)距并采用最小濾波得到。將改進(jìn)的程序燒上載到傳感器節(jié)點(diǎn),將兩節(jié)點(diǎn)的距離分別放置為10厘米、 20厘米、30厘米……200厘米,觀察基站接收到的數(shù)據(jù)。接收到的數(shù)據(jù)也就是測(cè)量值比較穩(wěn)定且與兩節(jié)點(diǎn)之間實(shí)際的距離最大誤差在正負(fù)10厘米之內(nèi)。
在這里我們使用最小值濾波的原因是,我們對(duì)時(shí)間的讀數(shù)總不可能比聲音到達(dá)的時(shí)間快,所以這里用最小的值估計(jì)應(yīng)該是最接近真實(shí)值的。
3. 結(jié)論
由于在傳感器網(wǎng)絡(luò)中,時(shí)間同步是一個(gè)需要解決的核心科學(xué)問題,同時(shí)也是一個(gè)難題,而在節(jié)點(diǎn)的測(cè)距和定位過程中,我們又需要精確的時(shí)間同步。采用對(duì)特定的聲音頻率(4kHz蜂鳴器發(fā)出的聲音)產(chǎn)生中斷來判斷聲音是否到達(dá)從而進(jìn)行測(cè)距的方法,我們得出以下幾點(diǎn)結(jié)論:
l 外界環(huán)境對(duì)于測(cè)距的影響較大,尤其是外界噪聲和蜂鳴器發(fā)出的聲音的回聲;
l 當(dāng)測(cè)距較遠(yuǎn)時(shí),如果是在室內(nèi)回音對(duì)于測(cè)距結(jié)果影響很大,即使采用最小值濾波法也不會(huì)得到穩(wěn)定的值。為了消除回音的影響,應(yīng)該將蜂鳴器的發(fā)聲時(shí)間間隔取小,兩次發(fā)聲之間的時(shí)間間隔取大,從而消除室內(nèi)回音影響,在采用上述方法消除回音的影響之后,在長(zhǎng)距離的測(cè)量中得到穩(wěn)定而正確的數(shù)據(jù);
l 對(duì)于距離的分辨率,可以通過改變Listener計(jì)時(shí)器觸發(fā)的時(shí)間間隔來控制,也就是 call Timer.start2(TIMER_REPEAT,10),將第二個(gè)參數(shù)的數(shù)值變小可以提高,但不能變得太小,太小的話會(huì)使其負(fù)載增大,反而使測(cè)量結(jié)果不準(zhǔn)確。另外由于麥克風(fēng)不夠靈敏的原因?qū)⑵渲翟O(shè)置得太小對(duì)測(cè)量結(jié)果影響不大。實(shí)驗(yàn)表明10厘米的分辨率是一個(gè)比較好的取值,而且國(guó)外大部分采用聲音測(cè)距的誤差也是10厘米,由于硬件本身的因素,誤差無法進(jìn)一步減小;
l 該方法的定位時(shí)間比較長(zhǎng),不如信號(hào)強(qiáng)度定位好,適用于節(jié)點(diǎn)間相對(duì)位置較為穩(wěn)定或者變化速度不是很快的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的定位。
本文作者創(chuàng)新點(diǎn):通過簡(jiǎn)單而有效的時(shí)間戳來達(dá)到近似的時(shí)間同步并對(duì)測(cè)量數(shù)據(jù)進(jìn)行最小濾波來實(shí)現(xiàn)測(cè)距和定位。
參考文獻(xiàn):
[1] Bahl P, Padmanabhan VN. RADAR: An in-building RF-based user location and tracking system. In: Proc. of the IEEE INFOCOM 2000. Vol.2, Tel Aviv: IEEE Computer and Communications Societies, 2000.
[2] Savarese C, Rabaey JM, Beutel J. Locationing in distributed ad-hoc wireless sensor network. In: Proc. of the 2001 IEEE Int’l Conf. on Acoustics, Speech, and Signal. Vol.4, Salt Lake: IEEE Signal Processing Society, 2001.
[3] Doherty L, Pister KSJ, Ghaoui LE. Convex position estimation in wireless sensor networks. In: Proc. of the IEEE INFOCOM 2001. Vol.3, Anchorage: IEEE Computer and Communications Societies, 2001.
[4] Piyush Gupta,P.R.Kumar,The Capacity of Wireless Networks. IEEE Transactions on information theory, 2000,46(2)
[5] 代慶瑜,季振洲. 聲音傳感器節(jié)點(diǎn)的設(shè)計(jì). 微計(jì)算機(jī)信息, 2006, 5-1期, P.146-147
轉(zhuǎn)載請(qǐng)注明來源:賽斯維傳感器網(wǎng)(m.fineinshow.com)
- 如果本文收錄的圖片文字侵犯了您的權(quán)益,請(qǐng)及時(shí)與我們聯(lián)系,我們將在24內(nèi)核實(shí)刪除,謝謝!