
本發明屬于無線傳感器網絡技術領域,具體涉及一種精度準、效率高、成本低的基于APIT的無線傳感器網絡節點定位方法。
背景技術:
無線傳感器網絡是由大量微型的傳感器節點以自組織的方式組成的低成本、自適應性高的無線網絡。它可以實時監測、感知各種環境和監測對象的信息,并將數據傳送給所需的用戶。隨著物聯網的發展,無線傳感網具有十分廣泛的前景。其中,定位技術是無線傳感網的多種關鍵技術之一。傳感器節點自身定位能夠確定感知到的數據的位置信息,進而用于目標的跟蹤定位。對于某些需要用到位置信息的路由協議,節點的定位功能就不可或缺。同時,定位對于無線傳感器網絡的拓撲管理也很有幫助,利用節點的位置信息統計網絡的覆蓋率,對節點覆蓋率較低的區域能夠及時采取必要的措施。
考慮的成本和能耗等因素,為傳感器節點手動設置位置信息或為每一個節點配備GPS是不切實際的,因此就需要研究一種高效、準確的傳感器節點定位算法。通過少數已知位置信息或加裝GPS的錨節點,來用于計算未知節點的坐標。目前普遍使用的是基于測距和基于非測距的這兩種定位算法,基于接收信號強度(RSSI,Receive Signal Strength Indicator)測距會由于受到環境因素和多徑衰落的影響,產生較大的測量誤差。
基于非測距的近似三角形內點測試(APIT,Approximate Point-In-Triangulation Test)定位算法利用高密度的節點來模擬點N的運動,如圖1所示:如果點N的鄰居節點中沒有同時接近或遠離三角形的三個頂點A、B、C,那么點N就在三角形ABC內部;否則點N在三角形ABC外部。由于APIT算法的只能判斷有限的移動方向(與鄰居節點的數目有關),所以在某些情況下產生誤判。導致三角形區域選取錯誤,造成較大的誤差。如圖2a所示,節點N的鄰居節點4位于三角形的外部,這使得節點N存在一個同時遠離頂點A、B、C的運動方向。根據APIT算法的定義,得出點N處于三角形ABC外部的判斷,這與事實是不相符的。這種錯誤被稱為In-to-Out error。當節點N的鄰居節點如圖2b所示分布時,節點N及其鄰居節點1、2都處于三角形ABC外部,但是由于找不到同時接近或遠離頂點A、B、C的鄰居節點,所以根據APIT算法的定義,得出N處于三角形ABC內部的判斷,這種錯誤被稱為Out-to-In error。由于APIT定位算法在測試未知節點在是否在三角形內部時會產生誤判,導致三角形區域選取錯誤,造成較大的誤差。
總之,現有技術存在的問題是:無線傳感器網絡節點定位精度差、效率低、成本高。
技術實現要素:
本發明的目的在于提出一種基于APIT的無線傳感器網絡節點定位方法,精度準、效率高、成本低。
實現本發明目的的技術方案為:一種基于APIT的無線傳感器網絡節點定位方法,包括如下步驟:
(10)錨節點位置信息收發:在傳感器網絡中四個邊角各放置一個錨節點,其余錨節點和未知節點隨機分布,錨節點向周圍發送其位置信息,未知節點接收錨節點位置信息;
(20)節點間距獲取:根據未知節點接收到的錨節點位置信息的信號強度,計算未知節點與錨節點的距離;
(30)未知節點估計坐標計算:根據未知節點與錨節點的距離,計算未知節點的估計坐標;
(40)未知節點位置篩選:根據未知節點的估計坐標,采用改進的APIT算法,篩選包含未知節點的三角形區域;
(50)質心多邊形選定:將整個無線傳感器網絡劃分成多個網格區域,根據未知節點與三角形內區域的對應關系,確定各網格區域值,將網格區域值最高的多邊形網格區域選定為質心多邊形;
(60)未知節點真實坐標確定:將根據質心多邊形的質心位置,得到未知節點的真實坐標。
本發明與現有技術相比,其顯著優點在于:
1、精度準:避免了在計算未知節點是否處于三角形內部時產生的誤判,提高了節點定位的精度;
2、效率高:只使用到向量積運算,避免了復雜的迭代算法,提高了運行效率;
3、成本低:不需要為所有節點額外添加定位模塊,降低了組建無線傳感器網絡的成本。
附圖說明
圖1是現有技術APIT定位方法未知節點位置判斷原理圖。
圖2是現有技術APIT定位方法未知節點位置判斷時常見誤判結果示例圖。
圖3是無線傳感器網絡結構示意圖。
圖4是本發明基于APIT的無線傳感器網絡節點定位方法的流程圖。
圖5是圖4中未知節點位置篩選的原理圖。
圖6是圖4中質心多邊形選定的原理圖。
圖7是APIT算法定位原理圖。
具體實施方式
圖3所示為一個無線傳感器網絡結構示意圖。如圖中所示,無線傳感器網絡包括由各圓點表示的未知節點和星號表示的錨節點。
如圖4所示,本發明基于APIT的無線傳感器網絡節點定位方法,包括如下步驟:
(10)錨節點位置信息收發:在傳感器網絡中四個邊角各放置一個錨節點,其余錨節點和未知節點隨機分布,錨節點向周圍發送其位置信息,未知節點接收錨節點位置信息;
整個網絡中四個邊角分別放置一個錨節點,其他錨節點和未知節點隨機分布,錨節點為能量充足且帶有位置信息的節點,錨節點的通信距離比普通的傳感器節點大,傳感器網絡部署完畢后,錨節點發送位置信息給未知節點,如果未知節點收到的錨節點信號少于3個,則該節點無法進行定位。
(20)節點間距獲取:根據未知節點接收到的錨節點位置信息的信號強度,計算未知節點與錨節點的距離;
所述(20)節點間距獲取步驟具體為,按下式計算未知節點與錨節點的距離d:
式中,Pl(d)為未知節點接收到的錨節點位置信息的信號強度,Pl(d0)為參考距離d0處的信號強度,n為路徑衰減指數,m是均值為0、方差為δm2的高斯噪聲,用來表示測量誤差。
未知節點根據接收到的錨節點的信號強度,計算出節點與錨節點之間的距離d。由于受到環境影響和多徑衰落等因素干擾,計算出的距離d有很大的誤差,在后面的計算中,d只用于估算未知節點的位置。
(30)未知節點估計坐標計算:根據未知節點與錨節點的距離,計算未知節點的估計坐標;
所述(30)未知節點估計坐標計算步驟具體為,按下式計算未知節點的估計坐標(xl,yl):
其中,(xa,ya)、(xb,yb)、(xc,yc)為在未知節點通訊范圍內選取的距離d最小的三個錨節點的坐標,它們與未知節點的距離分別為da,db,dc,即,
此時計算的未知節點坐標(xl,yl)為一個估計坐標,用于下面找出所有包含未知節點的三角形區域。
(40)未知節點位置篩選:根據未知節點的估計坐標,采用改進的APIT算法,篩選包含未知節點的三角形區域;
所述(40)未知節點位置篩選步驟具體為:
任選三角形ABC的一條邊AC,連接未知節點N與頂點B,將NB與AC做向量積,再將AB與AC做向量積,根據“右手定則”,確定向量積的方向,當兩個向量積方向相同時,則判定未知節點N與頂點B在同一側;
同理,將未知節點N與CB、BA做相同的判定,如果未知節點在AC、CB和CA三條邊的同一側,則判定未知節點N在三角形ABC內部,得到包含未知節點N的三角形區域。
其原理如圖5所示。假如點N位于三角形ABC內部,沿著A—C—B—A方向觀察時,點N始終位于AC,CB,BA的右側。那么要判定一個點是否在一條邊的某一側,只要確定該點與一條邊對應的頂點在同一側就可以了。例如要確定點N在BC的右側,只要確定N與AC對應的頂點B在同一側就可以了;同理,如果N與CB、BA對應的頂點A、C位于同一側,那么可以確定N位于三角形ABC內部,如圖5a所示。否則,N在三角形外部,如圖5b所示。
(50)質心多邊形選定:將整個無線傳感器網絡劃分成多個網格區域,根據未知節點與三角形內區域的對應關系,確定各網格區域值,將網格區域值最高的多邊形網格區域選定為質心多邊形;
所述(50)質心多邊形選定步驟具體為:
將整個無線傳感器網絡劃分成邊長為定值的多個網格區域,每個網格區域的初始值為0;
當未知節點N在三角形內時,該三角形對應的網格區域值加1,當未知節點在三角形外時,該三角形對應的網格區域值減1;
將網格區域值最高的多邊形網格區域選定為質心多邊形。
其原理如圖6所示。將整個無線傳感器網絡劃分成網格,網格的邊長為一個預先定好的值,可選取為0.1R,R為傳感器節點的通信半徑。網格的初始值為0。當未知節點在三角形內時,該三角形對應的網格區域值加1,當未知節點在三角形外時,該三角形對應的網格區域值減1。最后,得到一個數值最高的多邊形網格區域,該區域的質心坐標即為未知節點的坐標。如圖7所示。
(60)未知節點真實坐標確定:將根據質心多邊形的質心位置,得到未知節點的真實坐標。
將質心多邊形頂點所在的網格中心坐標記為該質心多邊形的頂點坐標(xi,yi),k為多邊形的頂點數,以如下公式計算質心多邊形的質心坐標(x,y),
并將其作為未知節點N的真實坐標。
本發明采用改進的APIT算法,篩選包含未知節點的三角形區域,避免了在計算未知節點是否處于三角形內部時產生的誤判,提高了節點定位的精度;而且未知節點位置篩選過程中只使用到向量積運算,避免了復雜的迭代算法,提高了運行效率。
另外,本發明不需要為所有節點額外添加定位模塊,降低了組建無線傳感器網絡的成本。