汪 亮,李宗林,石繁榮
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
依據(jù)國家安全監(jiān)管總局制定的《金屬非金屬地下礦山安全避險(xiǎn)“六大系統(tǒng)”安裝使用和監(jiān)督檢查暫行規(guī)定》,井下人員定位系統(tǒng)是礦山安全避險(xiǎn)的重要組成部分。針對(duì)智慧礦山建設(shè),無線傳感器網(wǎng)絡(luò)、無線定位等技術(shù)正發(fā)揮重要作用。我國是資源消耗大國,尤其是對(duì)煤礦的開采與消耗更加明顯[1]。但煤礦能源大部分存在于井下,使得其開采具有更大的難度[2]。由于井下巷道環(huán)境較為復(fù)雜,空間狹窄,不確定因素眾多,使得礦井事故的發(fā)生具有不確定性,且其發(fā)生危險(xiǎn)的可能性大大增加。因此需要對(duì)井下工作人員實(shí)時(shí)監(jiān)控其位置信息,從而能夠及時(shí)對(duì)遭遇礦井事故的人員展開高效、迅速、準(zhǔn)確的救援任務(wù)[3]。井下巷道環(huán)境不同于地面,無線電信號(hào)的傳輸存在較多的干擾因素,尤其是非視距的影響,會(huì)使得定位精度降低,因此需要選擇合適的無線通信技術(shù)和節(jié)點(diǎn)定位算法。
目前,隨著無線傳感器網(wǎng)絡(luò)的快速發(fā)展,無線定位技術(shù)作為其主要技術(shù)之一,也被廣泛應(yīng)用于各個(gè)領(lǐng)域,其發(fā)展也越來越迅速,常用的井下定位技術(shù)[3-4]主要有ZigBee[5-6]、Wi-Fi[7-9]、射頻識(shí)別(RFID)[10-11]、超寬帶(UWB)[12-13]和藍(lán)牙技術(shù)[14]。其中UWB技術(shù)具有抗干擾性強(qiáng)、定位精度高等優(yōu)點(diǎn)可作為井下定位技術(shù),而ZigBee技術(shù)具有低功耗、低成本、易于組網(wǎng)等特點(diǎn)可用于井下無線通信?;跍y距的無線定位算法是目前高精度定位采用的主要技術(shù)[15],主要有達(dá)時(shí)間(TOA)[16]、到達(dá)時(shí)間差(TDOA)[17]、到達(dá)角度(AOA)以及接收信號(hào)強(qiáng)度指示(RSSI)[18-19],其中TOA和TDOA可用于UWB定位技術(shù),但是TDOA算法需要滿足基站設(shè)備間的時(shí)間同步,且其計(jì)算較為復(fù)雜,但TOA算法測量方法簡單且容易實(shí)現(xiàn),因此選擇TOA作為井下定位算法。TOA定位算法通過記錄型號(hào)的發(fā)送時(shí)間和接受時(shí)間來計(jì)算信號(hào)在兩個(gè)設(shè)備間的傳播時(shí)間,從而得到設(shè)備間的距離,再使用位置坐標(biāo)計(jì)算方法來獲得節(jié)點(diǎn)的位置坐標(biāo)。常見的TOA測距算法有:單邊雙向測距算法和雙邊雙向測距算法,這兩種測距算法都解決了時(shí)間同步的問題,而常見的位置坐標(biāo)計(jì)算方法有:三邊測量法、極大似然估計(jì)法、三角計(jì)算法、Chan氏算法。
當(dāng)前的節(jié)點(diǎn)定位都是依靠錨節(jié)點(diǎn)來進(jìn)行定位的,現(xiàn)有的定位算法均表明,錨節(jié)點(diǎn)比例越高,定位的精度越高[20],但是錨節(jié)點(diǎn)的增多會(huì)使無線傳感器網(wǎng)絡(luò)的成本增加,不利于節(jié)點(diǎn)的部署,而且井下不同于地面,需要單獨(dú)測量錨節(jié)點(diǎn)的坐標(biāo),使得錨節(jié)點(diǎn)部署更加困難,因此如何在巷道中使用更少的錨節(jié)點(diǎn)獲得精確的定位成為了本文的研究重點(diǎn)。本文在井下布置的節(jié)點(diǎn)較為稀疏[21-23],其定位方案是:首先,利用巷道環(huán)境的特殊地形,使用兩點(diǎn)定位;其次,本文提出了在錨節(jié)點(diǎn)上安裝雙測距模塊的錨節(jié)點(diǎn)的方法,以獲得不同的測距信息;最后,引入虛擬錨節(jié)點(diǎn)[24],增加錨節(jié)點(diǎn)的密度,提高節(jié)點(diǎn)定位精度。
本文的后續(xù)章節(jié)如下,第一章節(jié)介紹了本文所使用的測距算法即雙邊雙向測距,第二章介紹了本文所使用的位置坐標(biāo)估計(jì)方法即三邊測量法和極大似然估計(jì)法,第三章介紹了本文解決井下稀疏錨節(jié)點(diǎn)問題所使用的3種方法。
DWM1000可實(shí)現(xiàn)TOA雙邊雙向測距,其測距過程如圖1所示,其中TX代表的是發(fā)送,RX代表的是接收。首先,標(biāo)簽節(jié)點(diǎn)廣播poll包到整個(gè)網(wǎng)絡(luò),并記錄時(shí)間T1;錨節(jié)點(diǎn)接收到poll包并記錄時(shí)間T2,響應(yīng)一段時(shí)間后再向標(biāo)簽節(jié)點(diǎn)發(fā)送resp包并記錄時(shí)間T3;標(biāo)簽節(jié)點(diǎn)接收到resp包并記錄時(shí)間T4,響應(yīng)一段時(shí)間后再向錨節(jié)點(diǎn)發(fā)送final包并記錄時(shí)間T5;錨節(jié)點(diǎn)收到final包,并記錄時(shí)間T6。

圖1 雙邊雙向測距方法
Tround1=T4-T1
(1)
Tround2=T6-T3
(2)
Treply1=T3-T2
(3)
Treply2=T5-T4
(4)
然后計(jì)算出節(jié)點(diǎn)間的傳播時(shí)間為:
(5)
最后再將傳播時(shí)間乘以光速可求出距離為:
d=Tprop·c
(6)
三邊測量法如圖2所示,設(shè)未知節(jié)點(diǎn)D的坐標(biāo)為(x,y),已知錨節(jié)點(diǎn)A、B、C的位置坐標(biāo)分別為A(xa,ya)、B(xb,yb)和C(xc,yc),則未知節(jié)點(diǎn)D距離3個(gè)已知坐標(biāo)信息的錨節(jié)點(diǎn)的長度可以表示出來,設(shè)它們的距離分別為da、db、dc,則存在以下公式:

圖2 三邊測量法原理圖
(7)
進(jìn)一步推演出位置節(jié)點(diǎn)D的坐標(biāo)信息,如下式所示:
(8)
為了便于計(jì)算,將坐標(biāo)設(shè)置為(0,0)、(a,0)、(0,b),距離分別為da、db、dc,可得待測節(jié)點(diǎn)D的坐標(biāo):
(9)
由式可知,x和y坐標(biāo)都與距離的平方成正比,而x和y坐標(biāo)的誤差就與距離和距離的誤差成正比。
極大似然估計(jì)法原理如圖3所示,假定有一個(gè)未知節(jié)點(diǎn)的坐標(biāo)為(x,y),同時(shí)已知定位范圍內(nèi)的錨節(jié)點(diǎn)1,2,3,…,n的位置坐標(biāo)分別為(x1,y1),(x2,y2),(X3,y3),…,(xn,yn),同時(shí)設(shè)未知節(jié)點(diǎn)距離這n個(gè)錨節(jié)點(diǎn)的長度分別為d1、d2、d3、…、dn,則可以得到以下公式:

圖3 極大似然估計(jì)法原理圖
(10)
可以將上式轉(zhuǎn)化成線性方程組AX=b的形式,其中有:
(11)
(12)
(13)
則待定位的未知節(jié)點(diǎn)的坐標(biāo)可由標(biāo)準(zhǔn)最小均方差估計(jì)法進(jìn)行計(jì)算得出:
X=(ATA)-1ATb
(14)
圖4介紹了本節(jié)的整體框架,以及巷道環(huán)境中,解決稀疏錨節(jié)點(diǎn)定位問題的3種方法,分別是:1)采用兩點(diǎn)定位法;2)提出了錨節(jié)點(diǎn)上安裝雙測距模塊的錨節(jié)點(diǎn)的方法;3)提出設(shè)置虛擬錨節(jié)點(diǎn)的方法。其中,稀疏錨節(jié)點(diǎn)是指錨節(jié)點(diǎn)的數(shù)量少且間隔比較遠(yuǎn);虛擬錨節(jié)點(diǎn)是指位置固定且已被定位的標(biāo)簽節(jié)點(diǎn),用來充當(dāng)錨節(jié)點(diǎn)的作用。其總體流程是:在巷道中,由于所使用的錨節(jié)點(diǎn)比較少,很難準(zhǔn)確地獲得標(biāo)簽節(jié)點(diǎn)的位置信息。因此,可利用巷道的特殊環(huán)境使用錨節(jié)點(diǎn)上安裝多個(gè)測距模塊的錨節(jié)點(diǎn),就可以獲得多條測距信息,兩個(gè)錨節(jié)點(diǎn)就可以獲得3條及以上的測距信息,再采用兩點(diǎn)定位法和三邊測距法定位部分標(biāo)簽節(jié)點(diǎn),其中一些位置固定的且已被定位的標(biāo)簽節(jié)點(diǎn)可以設(shè)置成虛擬錨節(jié)點(diǎn),從而增加錨節(jié)點(diǎn)的密度,提高節(jié)點(diǎn)的定位率以及定位精度。虛擬錨節(jié)點(diǎn)與錨節(jié)點(diǎn)共同定位標(biāo)簽節(jié)點(diǎn),如此循環(huán),直到網(wǎng)絡(luò)中所有的靜態(tài)節(jié)點(diǎn)的位置坐標(biāo)趨于穩(wěn)定。

圖4 整體框架
一般的定位算法至少需要3個(gè)錨節(jié)點(diǎn)與標(biāo)簽節(jié)點(diǎn)通信,才能獲取標(biāo)簽節(jié)點(diǎn)的位置信息,但是井下巷道環(huán)境較為特殊,其環(huán)境不同于室內(nèi)環(huán)境,在該環(huán)境中可以使用兩點(diǎn)定位法來獲取部分節(jié)點(diǎn)的坐標(biāo)。兩點(diǎn)定位法計(jì)算過程如下。
假設(shè)使用兩點(diǎn)定位算法的基站坐標(biāo)分別為(x1,y1)、(x2,y2),未知節(jié)點(diǎn)坐標(biāo)為(x,y),未知節(jié)點(diǎn)到基站的距離為d1、d2。則距離方程組可獲得下列公式:
(15)
對(duì)該公式求解可得出未知節(jié)點(diǎn)的坐標(biāo)。
圖5介紹兩種情況下的兩點(diǎn)定位,兩條黑線表示巷道的兩邊,圓代表兩種節(jié)點(diǎn),其中白色表示錨節(jié)點(diǎn),黑色表示標(biāo)簽節(jié)點(diǎn)。圖5(a)表示將兩個(gè)錨節(jié)點(diǎn)放置在巷道的一邊,通過兩點(diǎn)定位算法可以計(jì)算出兩個(gè)坐標(biāo),然后將不滿足條件的坐標(biāo)舍去。圖5(b)表示將錨節(jié)點(diǎn)放置在巷道的兩邊,可能出現(xiàn)兩個(gè)位置,如果兩個(gè)位置比較近,可取兩個(gè)位置的中點(diǎn)表示該節(jié)點(diǎn)的估計(jì)位置,否則無法準(zhǔn)確定位標(biāo)簽節(jié)點(diǎn)。

圖5 兩點(diǎn)定位法
一般的一個(gè)錨節(jié)點(diǎn)只能獲得一條測距信息,但如果在錨節(jié)點(diǎn)上安裝雙測距模塊時(shí),可以獲得兩條測距信息,其中這兩條測距模塊之間的距離是固定不變且已知的,就可通過一個(gè)測距模塊的位置信息來計(jì)算出另外一個(gè)測距模塊的位置信息,那么安裝了雙測距模塊的錨節(jié)點(diǎn)可以被看做兩個(gè)錨節(jié)點(diǎn),從而可以減少錨節(jié)點(diǎn)的人工部署數(shù)量。但是當(dāng)標(biāo)簽節(jié)點(diǎn)距離錨節(jié)點(diǎn)越遠(yuǎn),兩條距離形成的角度也就越小,其誤差可能會(huì)增大。
其中圖6劃分了該錨節(jié)點(diǎn)的兩個(gè)通信范圍即實(shí)線圈以內(nèi)的范圍和實(shí)線圈以外的虛線圈以內(nèi)的范圍。該圖中,橢圓表示具有雙測距模塊的錨節(jié)點(diǎn),標(biāo)號(hào)為1和2的兩個(gè)圓是兩個(gè)測距模塊,標(biāo)號(hào)3是指標(biāo)簽節(jié)點(diǎn),1和2之間的距離被叫做通信臂長。在第一個(gè)通信范圍中,該錨節(jié)點(diǎn)可以獲得兩條測距信息;在第二個(gè)通信范圍內(nèi),錨節(jié)點(diǎn)可以獲得一條測距信息及一條方位信息,這條方位信息是確定標(biāo)簽節(jié)點(diǎn)在其虛直線的左邊或者右邊,那邊測距模塊所獲得的距離小,可確定其標(biāo)簽節(jié)點(diǎn)在虛實(shí)線的那邊。

圖6 錨節(jié)點(diǎn)通信范圍 圖7 兩個(gè)錨節(jié)點(diǎn)定位
圖6為兩個(gè)錨節(jié)點(diǎn)定位標(biāo)簽,1號(hào)為具有雙測距模塊的錨節(jié)點(diǎn),2號(hào)為普通錨節(jié)點(diǎn),3號(hào)為標(biāo)簽節(jié)點(diǎn),這兩個(gè)錨節(jié)點(diǎn)可以獲得三條測距信息或者兩條測距信息以及一條方位信息,就可以使用三邊測量法或者兩點(diǎn)定位法計(jì)算出標(biāo)簽節(jié)點(diǎn)坐標(biāo),從而解決錨節(jié)點(diǎn)放置兩邊的問題。
前兩種方法雖然能解決一部分稀疏錨節(jié)點(diǎn)定位問題,但由于錨節(jié)點(diǎn)的密度比較小,其定位精度可能比較低,無法滿足定位需求,這時(shí)就需要采用第三種方法。第三種方法將一部分標(biāo)簽節(jié)點(diǎn)設(shè)置成虛擬錨節(jié)點(diǎn),讓這部分節(jié)點(diǎn)充當(dāng)錨節(jié)點(diǎn)的作用,從而可以相對(duì)增加錨節(jié)點(diǎn)的密度,進(jìn)一步提高其定位精度。由于虛擬錨節(jié)點(diǎn)的位置信息是由錨節(jié)點(diǎn)估計(jì)獲得的,其坐標(biāo)本來就存在誤差,讓其定位其他標(biāo)簽節(jié)點(diǎn)時(shí),會(huì)存在誤差累積,導(dǎo)致誤差增大,為降低誤差累積的影響,因此需要選擇定位精度高的部分標(biāo)簽節(jié)點(diǎn)作為虛擬錨節(jié)點(diǎn)。通過錨節(jié)點(diǎn)直接定位的一些標(biāo)簽節(jié)點(diǎn),該類節(jié)點(diǎn)不存在累積誤差,其定位精度較高,位置坐標(biāo)較為準(zhǔn)確,可直接作為虛擬錨節(jié)點(diǎn)。而通過錨節(jié)點(diǎn)和虛擬錨節(jié)點(diǎn)定位得到的標(biāo)簽節(jié)點(diǎn)就需要分析其定位誤差,以及對(duì)后續(xù)標(biāo)簽節(jié)點(diǎn)定位的影響大小得的來決定是否成為虛擬錨節(jié)點(diǎn)。
圖8介紹了井下的兩種地方對(duì)虛擬錨節(jié)點(diǎn)的應(yīng)用,一種是巷道,一種是房間。其中1號(hào)節(jié)點(diǎn)為錨節(jié)點(diǎn),2號(hào)節(jié)點(diǎn)為虛擬錨節(jié)點(diǎn),3號(hào)節(jié)點(diǎn)為標(biāo)簽節(jié)點(diǎn)。圖8(a)表示的環(huán)境是井下巷道,在圖8(a)中,3號(hào)標(biāo)簽節(jié)點(diǎn)無法直接被錨節(jié)點(diǎn)定位,但是2號(hào)節(jié)點(diǎn)在兩個(gè)錨節(jié)點(diǎn)的范圍內(nèi),可以獲得該節(jié)點(diǎn)的位置信息,將其設(shè)置為虛擬錨節(jié)點(diǎn),使用該虛擬錨節(jié)點(diǎn)與其中一個(gè)錨節(jié)點(diǎn)共同定位3號(hào)標(biāo)簽節(jié)點(diǎn)。圖8(b)表示的環(huán)境是井下的房間,在圖8(b)中,該房間體積大,錨節(jié)點(diǎn)布置得比較少,其中存在很多不確定的因素比如非視距等會(huì)影響定位效果,導(dǎo)致其定位精度較差,但是如何房間有一部分靜止的標(biāo)簽節(jié)點(diǎn),可以首先定位這些節(jié)點(diǎn),并將其設(shè)置為虛擬錨節(jié)點(diǎn),相對(duì)增加已知節(jié)點(diǎn)的密度,降低干擾因素的影響,從而進(jìn)一步提高定位精度。

圖8 虛擬錨節(jié)點(diǎn)的應(yīng)用
錨節(jié)點(diǎn)的通信臂長是指具有雙測距模塊的錨節(jié)點(diǎn)中兩個(gè)測距模塊之間的距離。當(dāng)錨節(jié)點(diǎn)的通信臂長分別為1 m和2 m時(shí),其誤差與測距距離的關(guān)系以及誤差的累計(jì)分布函數(shù)見圖9和圖10,其中圖9和圖10中左邊的圖是第一個(gè)測距模塊,右邊的圖是第二個(gè)測距模塊。從圖9和圖10的第一個(gè)和第二個(gè)子圖可以看出測距誤差可以控制在0.2 m左右,這表明一個(gè)錨節(jié)點(diǎn)上的兩個(gè)測距模塊的測距誤差在正常范圍內(nèi),即執(zhí)行測距任務(wù)時(shí)兩個(gè)測距模塊之間不會(huì)相互影響。圖9和圖10中的第三個(gè)到第四個(gè)子圖展示了測距誤差的累計(jì)分布函數(shù),可以看出其誤差主要集中在0.2 m以內(nèi)。從這些圖中也可分析出具有雙測距模塊的錨節(jié)點(diǎn)上的測距模塊之間基本不會(huì)影響彼此的測距。

圖9 通信臂長1 m

圖10 通信臂長2 m
三邊測量法計(jì)算簡單,容易實(shí)現(xiàn),但是,由于其只能夠使用三條測距信息,使得其他的測距信息無法使用,導(dǎo)致其精度不是太高,該方法對(duì)測距要求也較高,測距誤差較大可能導(dǎo)致其定位精度太低,該算法的好處是不需要太多的錨節(jié)點(diǎn),錨節(jié)點(diǎn)的個(gè)數(shù)只需要滿足3個(gè)即可。圖11展示了錨節(jié)點(diǎn)放置不同的位置,定位誤差隨著標(biāo)簽節(jié)點(diǎn)位置的變化而變化的情況。從圖中可以看出,定位誤差一般是隨著第一個(gè)錨節(jié)點(diǎn)與待測節(jié)點(diǎn)間的距離增大而增大,而且錨節(jié)點(diǎn)所放的位置不同其定位誤差也是不一樣的,一般在定位范圍內(nèi)的兩個(gè)錨節(jié)點(diǎn)所處的距離越遠(yuǎn),測距誤差影響就越小,使得定位誤差也越小,在錨節(jié)點(diǎn)所圍成區(qū)域范圍內(nèi),其定位誤差能在0.5 m左右。

圖11 三邊測量法
極大似然估計(jì)的好處是可以利用更多的測距信息,在錨節(jié)點(diǎn)個(gè)數(shù)多的時(shí)候,精度相對(duì)較好,當(dāng)只有3個(gè)錨節(jié)點(diǎn)參與定位時(shí),其計(jì)算結(jié)果和三邊測量法是一樣的。由于極大似然估計(jì)法是通過矩陣計(jì)算得出的,當(dāng)錨節(jié)點(diǎn)較多時(shí),該方法計(jì)算較為復(fù)雜,單片機(jī)不易實(shí)現(xiàn),圖12為極大似然估計(jì)法的誤差圖,該圖所使用的錨節(jié)點(diǎn)個(gè)數(shù)為4個(gè),錨節(jié)點(diǎn)坐標(biāo)分別(0,0)、(10,0)、(0,10)、(10,10),從圖中可以看出,該方法的定位誤差可以控制在0.3 m左右,當(dāng)其在錨節(jié)點(diǎn)所圍成區(qū)域范圍內(nèi)時(shí),大部分誤差可以控制在0.2左右,而且該方法的定位誤差跳動(dòng)較小,其誤差分布較為均勻。

圖12 極大似然估計(jì)法
圖13為標(biāo)簽節(jié)點(diǎn)沿著錨節(jié)點(diǎn)所圍成的圈進(jìn)行移動(dòng)了兩圈,錨節(jié)點(diǎn)的坐標(biāo)分別(0,0)、(10,0)、(0,10)、(10,10),由于移動(dòng)過程中,標(biāo)簽節(jié)點(diǎn)與實(shí)際路徑本來就存在偏差,使得其定位過程中的偏差相較于靜止的時(shí)候會(huì)更大,但從圖中可以看出,該標(biāo)簽節(jié)點(diǎn)在移動(dòng)過程中的軌跡是連續(xù)的,其軌跡不會(huì)出現(xiàn)斷斷續(xù)續(xù)的,也能大致了解該節(jié)點(diǎn)的實(shí)際路徑。

圖13 10×10運(yùn)動(dòng)軌跡
圖14~圖17為具有雙測距模塊的錨節(jié)點(diǎn)與普通的錨節(jié)點(diǎn)來定位標(biāo)簽惡點(diǎn),這些圖主要是錨節(jié)點(diǎn)的位置放置的不同,該寫圖中橫軸和縱軸分別表示標(biāo)簽節(jié)點(diǎn)的橫縱坐標(biāo)值。由于4.1節(jié)已經(jīng)得出具有雙測距模塊的錨節(jié)點(diǎn)的通信臂長與測距誤差沒關(guān)系。因此這些圖是為了得出具有雙測距模塊的錨節(jié)點(diǎn)的通信臂長與定位誤差的關(guān)系其中圖14和圖15中的錨節(jié)點(diǎn)通信臂長為1 m,圖15和圖17中的錨節(jié)點(diǎn)通信臂長為2 m。從圖中可以看出,具有雙測距模塊的錨節(jié)點(diǎn)的通信臂長越長,其定位誤差相對(duì)越小,而且錨節(jié)點(diǎn)間的距離越大其誤差相對(duì)也越小,距離其錨節(jié)點(diǎn)所圍區(qū)域的中心越遠(yuǎn)其誤差一般也越大。從這些圖中還可以看出,錨節(jié)點(diǎn)所圍成的形狀也會(huì)影響定位精度。

圖14 測距模塊坐標(biāo)(0,0)(1,0)(0,1)

圖15 測距模塊坐標(biāo)(0,0)(2,0)(0,2)

圖16 測距模塊坐標(biāo)(0,0)(1,0)(0,10)

圖17 測距模塊坐標(biāo)(0,0)(2,0)(0,10)
針對(duì)井下巷道的復(fù)雜環(huán)境,本文提出了稀疏錨節(jié)點(diǎn)情況下定位標(biāo)簽節(jié)點(diǎn)的解決方法,主要有3種:使用兩點(diǎn)定位法和設(shè)計(jì)錨節(jié)點(diǎn)上安裝雙測距模塊的錨節(jié)點(diǎn)測距的方法,最后再提出了引入虛擬錨節(jié)點(diǎn)的方法。通過分析及實(shí)驗(yàn)仿真可得出,這3種方法能夠在錨節(jié)點(diǎn)稀疏時(shí)有效地提高節(jié)點(diǎn)的定位率以及定位精度,后續(xù)還需要進(jìn)一步討論來提高節(jié)點(diǎn)定位精度。