發布日期:2022-08-21 點擊率:50
摘 要:無線傳感器網絡是以傳感探測、通信及計算機等科學技術為依托而構筑的目標感知和監測系統,由于其巨大的應用前景而備受學術界和工業界的廣泛關注。定位問題是傳感器網絡設計與應用中的一個重要問題。傳感器節點的位置信息在傳感器網絡的協議設計、網絡管理、節點間協作、目標跟蹤等方面都具有重要的理論和實際意義。本文詳細闡述了基于聲波測距的傳感器網絡定位算法的實現策略,對具體實現機制進行了分析并給出相關結論。
關鍵詞:傳感器網絡 定位算法 聲波測距
1.引言
處理器、存儲和無線通信技術的不斷進步為網絡化傳感器開辟了新的發展空間,網絡化傳感器不僅僅是一個簡單的傳感器,它由處理器、存儲器、無線收發機、電池和一組傳感器構成,具有傳感、計算和通信等多種功能。而且伴隨著制造工藝的不斷革新,網絡化傳感器的體積變得越來越小,因此人們形象的稱它為“智能塵埃”。由這種“智能塵埃”組成的無線傳感網絡被廣泛的應用到各方面,例如環境監測、軍事偵察等。定位問題是傳感器網絡設計與應用中的一個重要問題。傳感器節點的位置信息在傳感器網絡的協議設計、網絡管理、節點間協作、目標跟蹤等方面都具有重要的理論和實際意義。
2. 基于測距的定位
2.1 軟硬件環境及可行性分析
我們使用的節點是CrossBow公司的MPR400CB,節點上所使用的處理器是ATmega128L。ATmega128L處理器的約為主頻 7.4MHz,CPU時鐘周期是136ns,另外ATmega128L處理器使用的是精簡指令集和流水線技術,大部分指令的執行周期都只占用一個CPU時鐘周期,中斷的響應周期占4個CPU時鐘周期。如果測10cm的距離,聲速假設是340m/s,那么則ΔT應該大約為0.294ms;假設每條指令的執行時間都是136ns,那么在ΔT這段時間內節點可以大約執行2161條指令,所以說處理器在處理速度上是足夠了。另外處理器中計數器晶振的頻率最快可以達到每毫秒7373次,所以計時器也具有足夠的精確度用來計時。所以,聲波法測距中,計時的環節上不存在問題。
我們所用的傳感器板是CrossBow公司的MTS310CA。MTS310CA傳感器板上同時集成了蜂鳴器和麥克風。蜂鳴器是一個簡單的4KHz壓電共鳴器。它的驅動和頻率控制電路是內部集成的。對它的操作只需控制開關就行了。MTS310CA傳感器板提供了麥克風,有兩個主要用途,一個用途是用來做聲音的測距,另一個用途是用來錄音和測量聲音。其中麥克風自帶了濾波器和聲音解碼器,可以用來對MTS310CA傳感器板上蜂鳴器發出的4kHz的聲音進行監聽。
節點上運行的操作系統為TinyOS。TinyOS是一種源代碼開放的操作系統,是美國加州大學伯克利分校為低功率的嵌入式網絡傳感器而設計的基于事件驅動的嵌入式操作系統,它以最少的硬件配置支持網絡化傳感器所需的并發密集操作,是一種微線程、事件觸發的操作系統。它保持了網絡化傳感器所特有的諸多特性,高效的管理硬件系統,同時支持并發密集操作,從某種意義上達到高效的模塊化和運行的健壯性。
2.2 算法實現
為了用聲波測距且將距離的最小分辨率提高到至少10厘米,我們必須對TinyOS提供的定時器TimerC進行改造。考慮到TinyOS本身的一些其他重要組件,如節點間無線通信模塊GenericComm.nc、模數轉換器ADCC等都用到了系統提供的TimerC組件。所以我們如果要改造 TimerC,那么在改造的同時還要保證原來的功能不變。另外一種方法是利用處理的另外一個硬件資源,也就是Timer/Counter1,自己編寫一個專用的Timer。比較兩種方法,前一種在原來的基礎上稍加改進節省硬件資源;后一種方法的話比較簡單,但專門用了處理器的一個定時計數器只實現一個 Timer,從硬件角度看浪費較大,不過它可以達到很高的計時速度,可以用來進行高頻率的采樣。
這種方法的基本思想為:Beacon節點以固定的時間間隔先通過無線發射裝置向Listener節點發射一條準備測距的消息,其中包含一個時間戳,沒法一次準備測距的消息時Beacon節點將時間戳加1。這里Beacon節點是用兩個定時器,第一個定時器用來控制向Listener發送準備測距的消息的時間間隔,第二個定時器用來控制蜂鳴器的發聲時間。這里兩節點通過Beacon使用的SendMsg接口的 SendMsg.sendDone(TOS_MsgPtr sent, result_t success)事件和Listener使用的 ReceiveMsg接口的event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr m)事件達到兩節點間的同步。也就是說,對于Beacon來說,當SendMsg的發送完成時即產生SendMsg.sendDone事件,Beacon將蜂鳴器打開一段時間;對 Listener來說當ReceiveMsg產生ReceiveMsg.receive事件時,Listener節點開始計時。
2.3 結果分析
程序在傳感器節點上運行,在基站接收到的數據(如圖1)是兩節點距離20厘米時的測量結果,其中發回基站標出的數值乘以10厘米就是兩節點間的實際距離。
圖1 基站接收到原始數據
圖1中橫線的數據表示節點測量到的距離,比例因子是10厘米。從數據流可以看出,測量的結果不穩定,有漂流而且較大。但其中有正確的結果02也就是 20厘米,同樣,將兩節點的距離放置30厘米、40厘米、50厘米、60厘米、70厘米和80厘米,得到的數據有類似的特點。仔細對聲波測距的誤差分布圖分析后,發現其誤差的分布以一種比較隨意的分布,不能用我們常用的例如正態分布等分布來對其進行擬合。然而,我們使用一種比較簡單的最小值濾波得到了比較好的效果。因為對接收到的數據流仔細觀察,雖然在同一距離中測量值偏差的分布沒有任何規律,但是從某一寬度的時間窗口,也就是同一距離時連續測到的一組數據(例如連續的10個測量值),內中必有和真實距離相符的正確的測量值,而且在這一組數據中值最小。
由上面分析得到數據的特點我們決定采用最小值濾波法來改進測量,也就是在一組連續的數據(試驗中發現10個連續的數據長度是在可以保證數據的正確率大于98%的情況下的最短距離)中找出這些數據中值最小的那個值來代表著一段時間內測距結果。這樣兩節點的一次測距,通過10對他們的10次連續測距并采用最小濾波得到。不過這種方法的缺點也是比較明顯的,也就是增加了節點之間的測距所需要的時間,如果原來是每一秒鐘測一次距離,那么用這種算法如果濾波的長度取10的話,變成每10秒鐘測一次距離,也就是10秒定一次位。這使測量的實時性降低,為了提高實時性,可以縮短Beacon每次發射準備測距信號的時間間隔,如每100毫秒進行一次,這樣就使得同樣的算法情況下定位測距的時間縮短到1秒鐘一次。
將算法改進,對兩節點的一次測距值,通過連續的10測距并采用最小濾波得到。將改進的程序燒上載到傳感器節點,將兩節點的距離分別放置為10厘米、 20厘米、30厘米……200厘米,觀察基站接收到的數據。接收到的數據也就是測量值比較穩定且與兩節點之間實際的距離最大誤差在正負10厘米之內。
在這里我們使用最小值濾波的原因是,我們對時間的讀數總不可能比聲音到達的時間快,所以這里用最小的值估計應該是最接近真實值的。
3. 結論
由于在傳感器網絡中,時間同步是一個需要解決的核心科學問題,同時也是一個難題,而在節點的測距和定位過程中,我們又需要精確的時間同步。采用對特定的聲音頻率(4kHz蜂鳴器發出的聲音)產生中斷來判斷聲音是否到達從而進行測距的方法,我們得出以下幾點結論:
l 外界環境對于測距的影響較大,尤其是外界噪聲和蜂鳴器發出的聲音的回聲;
l 當測距較遠時,如果是在室內回音對于測距結果影響很大,即使采用最小值濾波法也不會得到穩定的值。為了消除回音的影響,應該將蜂鳴器的發聲時間間隔取小,兩次發聲之間的時間間隔取大,從而消除室內回音影響,在采用上述方法消除回音的影響之后,在長距離的測量中得到穩定而正確的數據;
l 對于距離的分辨率,可以通過改變Listener計時器觸發的時間間隔來控制,也就是 call Timer.start2(TIMER_REPEAT,10),將第二個參數的數值變小可以提高,但不能變得太小,太小的話會使其負載增大,反而使測量結果不準確。另外由于麥克風不夠靈敏的原因將其值設置得太小對測量結果影響不大。實驗表明10厘米的分辨率是一個比較好的取值,而且國外大部分采用聲音測距的誤差也是10厘米,由于硬件本身的因素,誤差無法進一步減小;
l 該方法的定位時間比較長,不如信號強度定位好,適用于節點間相對位置較為穩定或者變化速度不是很快的網絡拓撲結構中的定位。
本文作者創新點:通過簡單而有效的時間戳來達到近似的時間同步并對測量數據進行最小濾波來實現測距和定位。
參考文獻:
[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] 代慶瑜,季振洲. 聲音傳感器節點的設計. 微計算機信息, 2006, 5-1期, P.146-147
下一篇: PLC、DCS、FCS三大控
上一篇: 環境監測無線傳感器網