基于路由信息的傳感網絡定位算法
3.算法實現過程
3.1定向擴散
目的是盡可能多的攜帶節點間的連接或測距信息,在建立梯度階段中,每個節點可以得到其下一跳節點ID。在傳輸數據階段,則將下一跳節點ID也打入數據包,按照最大梯度方向發往網關節點。當節點具有RSSI時,還要將下一跳節點對應的測距結果發往網關節點。
3.2計算節點距離矩陣DALL
目的是提取網關數據中關于節點連接或測距的信息,并通過最短路徑算法得到所有節點間的近似距離,即完全的距離矩陣。當節點具有RSSI時,則可以根據數據包中的每個節點的測距信息生成部分距離矩陣D,然后采用Floyd最短路徑算法,生成DALL。若節點不具備RSSI,則將連通表示為單位距離1,同樣用Floyd最短路徑算法,由連接矩陣L生成DALL。
3.3多維標度分析MDS
將節點距離矩陣DALL作為MDS算法的輸入矩陣,可以獲得節點的相對位置估計X’,Y’。
3.4平移和旋轉變換
通過比對已知位置的網關節點,將MDS結果進行坐標變換使得網關位置均方誤差最小。即設X’,Y’為MDS輸出的網關節點位置,求變換矩陣A,B使得[X’’,Y’’] = A * [X’, Y’] + B與網關節點已知位置[X, Y]的均方誤差最小。
4.仿真結果和分析
算法仿真采用Matlab6.5,仿真場景為100個傳感器節點隨機均勻分布在半徑50m的圓型區域內,網絡中有大于等于三個已知位置的網關節點。
在圖2的仿真中,10個網關節點均勻分布在半徑為10米的圓周上,射頻通信距離取20m,射頻信號測距誤差為20%,圖中線段長度代表定位誤差大小。仿真結果直觀的給出了RBSL算法在節點具有RSSI和沒有RSSI情況下定位的效果。從圖2的仿真中,還可以發現RBSL算法的一個應用場景,即在大范圍的數據采集中,如果只有一個網關節點,可以通過數據采集員手持一個網關節點在一個小范圍內移動,在不同位置采集數據就可以對節點進行定位。
圖3-a給出了節點RSSI測距誤差對結果的影響,可以發現,當測距誤差在20%以內時,定位結果較好,而若測距誤差進一步增大,則結果惡化較為明顯。圖3-b給出了節點通信距離對結果的影響,可以發現在通信距離=25m時定位誤差最低,這是因為通信距離過短會使得部分邊緣節點只有很少的鄰居,從而導致這些節點定位精度很低,而當通信距離過長時,網絡中的路由鏈路變少,導致能獲得鏈路信息變少,同樣降低了定位精度。
5.結論和研究展望
針對無線傳感器網絡的大范圍數據采集應用場景,本文作者提出了基于路由信息的傳感器網絡定位算法RBSL。RBSL算法的主要優點是通信開銷小,只需要每個節點在自身數據包上附加幾字節的信息,且容易實現,在大范圍的數據采集場景,只需要多個網關節點或一個可移動的網關節點就可以獲得節點的定位結果。RBSL算法存在的問題是計算量較大,MDS和Floyd最短路徑算法復雜度均為O(n3)。但因在數據采集場景下,執行計算任務的是網關PC節點,因此計算量的問題相對是可以接受的。此外,在前面的分析中假設網絡均勻同構,事實上傳感器節點性能可能并不相同,且由于地形等因素影響也會造成網絡的不均勻,反映在RBSL算法中就是節點間測距結果精度的不同,如何在MDS算法中對精度不同的測距結果進行加權是下一步的研究任務之一。
作者所在的清華大學電子工程系復雜系統工程實驗室(CESL,ComplexEngineering System Lab)已經自主開發了“靈活的低成本無線傳感器網絡平臺”,即FLOWS (Flexible Low-cOst Wireless Sensor network platform)。我們正在進行FLOWS系統在智能大廈定位系統的研究與開發,相信會有很好的應用前景和經濟效益。
評論