周 軍,魏國亮,田 昕,王甘楠
1(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
2(上海理工大學(xué) 理學(xué)院,上海 200093)
在基于位置的服務(wù)及其應(yīng)用中,位置信息起著至關(guān)重要的作用.在室外環(huán)境中,可以輕松地從全球定位系統(tǒng)(Global Positioning System,GPS)獲得準(zhǔn)確的位置信息.但是,在室內(nèi)環(huán)境中,GPS信號受到建筑阻擋[1],導(dǎo)致GPS信號變?nèi)跎踔翢o法被檢測,因此GPS定位的結(jié)果無法滿足人們室內(nèi)定位的要求.隨著技術(shù)的發(fā)展,目前已有許多技術(shù)可以代替GPS用于室內(nèi)定位,如超寬帶、超聲波、藍(lán)牙等.其中大部分定位技術(shù)主要基于以下方式:到達(dá)角度(Angle of Arrival,AOA)[2]、到達(dá)時間差(Time Difference of Arrival,TDOA)[3]、到達(dá)時間(Time of Arrival,TOA)[4]、接收信號強(qiáng)度指引(Receive Signal Strength Index,RSSI)[5,6].由于基于TOA方法的定位精度較高[7],可用于實(shí)現(xiàn)室內(nèi)環(huán)境下的高精度定位.
超寬帶(Ultra-Wideband,UWB)具有許多理想的特性,包括低能耗、高分辨率、多徑免疫和某些障礙物穿透能力等,因此,UWB定位被認(rèn)為是用于高精度室內(nèi)定位中最有前途的技術(shù)之一[8].但是,當(dāng)環(huán)境受到NLOS(Non-line-of-sight)影響時,UWB測距誤差增大,從而導(dǎo)致定位精度下降.因此,如何處理NLOS誤差已成為UWB定位領(lǐng)域的熱門研究課題[9].與UWB不同,INS使用慣性測量單元(Inertial Measurement Unit,IMU)在沒有其他任何輔助信息的情況下以較高的更新率估算物體的位置,短時間內(nèi)的誤差較小,但具有累計(jì)誤差,與UWB系統(tǒng)形成良好的互補(bǔ),因此有必要融合兩種系統(tǒng)達(dá)到更好的定位效果[10].
文獻(xiàn)[11]中,EKF基于IMU預(yù)測值對測量距離誤差進(jìn)行檢測,并結(jié)合超寬帶的信道沖激響應(yīng)來進(jìn)一步提高檢測精度,忽略檢測到的不精確測量值.該方法不適用于復(fù)雜的室內(nèi)環(huán)境且丟棄了許多有用信息.文獻(xiàn)[12]使用高斯低通濾波算法和主成分分析法進(jìn)行預(yù)處理,并提取位置特征信息.結(jié)合最小二乘支持向量機(jī)對樣本集進(jìn)行離線訓(xùn)練和在線分類,獲取人員實(shí)時位置.文獻(xiàn)[13]提出了一種能夠確定特定的非視距信道的非視距識別與緩解方法,并根據(jù)識別出的信道信息進(jìn)行定位估計(jì),但保留了太多的離線數(shù)據(jù),需要大量時間進(jìn)行在線匹配篩選.為了能夠在復(fù)雜的室內(nèi)環(huán)境下快速準(zhǔn)確地識別出NLOS,并有效緩解NLOS影響,考慮UWB和INS各自的優(yōu)點(diǎn),本文提出一種新的定位算法——利用PDR(Pedestrian Dead Reckoning)預(yù)測位置進(jìn)行NLOS識別,并基于多信道NLOS誤差概率分布函數(shù)進(jìn)行NLOS修正,最后利用KF(Kalman Filtering)融合UWB和IMU獲得準(zhǔn)確的定位結(jié)果.主要貢獻(xiàn)歸納如下:
1)分信道采集數(shù)據(jù)與真實(shí)值比較獲得NLOS誤差,根據(jù)不同信道的誤差分布,擬合出對應(yīng)于不同信道NLOS誤差的概率曲線.
2)利用PDR預(yù)測的位置進(jìn)行NLOS識別,減少系統(tǒng)的NLOS識別時間.通過概率判斷NLOS誤差所屬的信道情況并對NLOS誤差進(jìn)行估計(jì),從而獲得更為準(zhǔn)確的估計(jì)距離.
3)對UWB系統(tǒng),利用改進(jìn)的最小二乘法估計(jì)移動節(jié)點(diǎn)位置,提高UWB系統(tǒng)的定位精度.
定位的過程主要分為兩個階段:離線階段和在線階段.
基于TOA測距方法的NLOS誤差表達(dá)式如下[13]:
(1)
其中εnlos和attnlos分別表示與傳播通道中障礙物相關(guān)的介電常數(shù)和衰減因子,L是路徑的數(shù)量,ai和τi表示第i條路徑的幅值和TOA,aDP和τDP表示LOS(Line of sight)下的幅值和TOA.
根據(jù)式(1)可以看出不同的障礙物對NLOS誤差的影響是不同的.為了更加準(zhǔn)確地估計(jì)NLOS誤差,在離線階段,用UWB對不同信道分別進(jìn)行采樣,并將在不同障礙物下的測量值與真實(shí)值進(jìn)行比較獲得準(zhǔn)確的NLOS誤差值.將每一個信道測得的誤差值細(xì)分為w個區(qū)間.第k個區(qū)間上的中點(diǎn)和該區(qū)間上NLOS誤差值出現(xiàn)的頻率為ak和bk,將其代入正態(tài)分布曲線進(jìn)行線性擬合,獲得每一個信道下誤差分布的概率曲線(假設(shè)每一信道下的NLOS誤差服從正態(tài)分布).本文對m個不同的信道進(jìn)行采樣擬合:
(2)
其中:
擬牛頓法是求解非線性優(yōu)化問題最有效的方法之一,只要求每一步迭代時知道目標(biāo)函數(shù)的梯度.通過擬牛頓法對式(2)求解,可以獲得不同信道下NLOS誤差的概率分布曲線.為了便于后期的比較,對每一條曲線進(jìn)行相應(yīng)的縮放,使得每一條NLOS誤差概率分布曲線的取值范圍在0-1之間,獲得的NLOS誤差概率曲線如圖1所示.可以看出木門和行人的NLOS誤差分布較為接近,而金屬障礙物鐵門和混凝土墻的分布較為接近.為了更好地進(jìn)行NLOS識別修正,將行人分別與鐵門和混凝土墻的均值和標(biāo)準(zhǔn)差平均來表示鐵門與行人的情況和混泥土墻與行人的情況.
圖1 不同障礙物下的NLOS誤差分布
考慮在一個室內(nèi)環(huán)境下進(jìn)行二維平面的目標(biāo)定位與跟蹤.在該空間中的已知位置放置可以發(fā)送帶有時間戳的UWB發(fā)送裝置,目標(biāo)攜帶有UWB無線接收裝置和INS的移動設(shè)備.
2.2.1 INS系統(tǒng)
INS通過IMU來估計(jì)位置,IMU的主要優(yōu)點(diǎn)是無需外部輸入即可估計(jì)其位置,并且可以在室內(nèi)環(huán)境或沒有衛(wèi)星信號的地方使用,目前已經(jīng)應(yīng)用于室內(nèi)定位.通常,IMU包括陀螺儀和加速度計(jì).陀螺儀輸出物體的角速度,而加速度計(jì)輸出線性加速度.物體的三軸角速度通過一次積分可得姿態(tài)角信息,即偏航角、俯仰角和翻滾角.根據(jù)從IMU獲得的信息,可以將慣性參考坐標(biāo)中的加速度轉(zhuǎn)換為導(dǎo)航參考坐標(biāo).然后,根據(jù)牛頓運(yùn)動定律,在兩次積分后計(jì)算對象的位置[14].因此,IMU位置估計(jì)系統(tǒng)可以通過以下線性方程建模:
(3)
(4)
(5)
2.2.2 UWB測距模型
本文中,使用了基于TOA的測距方法,要求接收端和發(fā)送端時間同步,通過獲得信號傳播的時間t間接獲得錨節(jié)點(diǎn)和移動目標(biāo)的距離[15]:
d=c×t
其中,c為信號傳播的速度(c=3×108m/s),d為測得的發(fā)送端與接收端的距離.
假設(shè)有n個錨節(jié)點(diǎn),測得移動目標(biāo)接收到第i個錨節(jié)點(diǎn)發(fā)出的信號在空氣中的傳播時間為ti,由于有噪聲、障礙物等原因的存在,使得測量的距離存在測量誤差,表達(dá)式如下:
(6)
INS系統(tǒng)存在一個眾所周知的問題,即累積誤差[16],位置估計(jì)誤差會隨著時間(迭代次數(shù))而迅速增加.從式(3)-式(5)中可以看出,角速度測量中的誤差將引入到估計(jì)的姿態(tài)中,而線性加速度測量中引入的誤差將傳送到估計(jì)的速度和估計(jì)物體的位置.同時下一時刻的位置是基于當(dāng)前的估計(jì)位置來獲得的,INS系統(tǒng)的當(dāng)前估計(jì)位置的誤差將被會被累加到下一時刻的位置估計(jì)中.因此,在幾次位置更新后,累積的誤差會逐漸增大.為了較好地解決上述問題,采用了步行者航跡推算的方法(PDR)[17],該方法包括3個過程:步檢測、步幅(SL)估計(jì)和方向估計(jì).
3.1.1 步檢測
本文采用峰值檢測的方法[18,19]來判定是否發(fā)生行走行為.首先,需要定義一個峰值檢測的參數(shù),減少噪聲的影響.在實(shí)驗(yàn)中發(fā)現(xiàn),由于個人行走的習(xí)慣及噪聲的影響,檢測到的步數(shù)通常高于實(shí)際步數(shù).考慮到常人的步頻不會太快,因此對峰值檢測設(shè)置相應(yīng)的時間間隔,如果在一段時間內(nèi)出現(xiàn)多個峰值,則當(dāng)出現(xiàn)第一個峰值時即認(rèn)為行走了一步,并忽略該時間段內(nèi)對其他峰值的檢測.如圖2所示,當(dāng)設(shè)置間隔時間為0.5s時,會出現(xiàn)偶然的誤檢測,而當(dāng)時間閾值設(shè)為0.6s則不會出現(xiàn)誤檢測,可以看出設(shè)置合適的時間閾值可以有效提高步數(shù)檢測的準(zhǔn)確性.
圖2 時間閾值對步檢測的影響
3.1.2 步幅估計(jì)
正常行走時行人的步長不會發(fā)生太大的變化,所以步長可以假設(shè)成一個固定值,也可以通過加速度信號來進(jìn)行計(jì)算,本文應(yīng)用文獻(xiàn)[20]中的經(jīng)驗(yàn)公式,通過獲得的Z軸加速度信息對行人步長進(jìn)行估計(jì):
SL=K×(Azmax-Azmin)(1/4)
其中,Azmax和Azmin分別是在單步中Z軸方向上最大垂直加速度和最小垂直加速度,K是可以通過對步長訓(xùn)練得到的常數(shù).
3.1.3 方向估計(jì)
通常有兩種主要方法可估計(jì)行人在第t階段的方向:陀螺儀方法和加速度計(jì)方法[1].而本文中首先使用偏航角θt+1表示行人的方向,初步估計(jì)行人位置,用于NLOS初步識別和修正.
根據(jù)以上3步過程,首先可以獲得預(yù)測位置:
xt+1,pre=xt+SLt+1×cosθt+1
(7)
yt+1,pre=yt+SLt+1×sinθt+1
(8)
其中,xt,yt分別為第t時刻行人所在坐標(biāo)系的橫縱坐標(biāo),xt+1,pre,yt+1,pre分別為預(yù)測行人在第t+1時刻的橫縱坐標(biāo).
通過式(7)和式(8)得到IMU的預(yù)測位置,根據(jù)距離公式計(jì)算預(yù)測位置與錨節(jié)點(diǎn)之間的距離:
(9)
將UWB距離測量值與式(9)獲得的距離預(yù)測值做差來獲得誤差的估計(jì)值,如式(10)所示:
(10)
設(shè)置閾值φ進(jìn)行NLOS識別判斷,當(dāng):
Δdi≤φ
(11)
滿足時,則認(rèn)為對應(yīng)測量處于LOS,不對其進(jìn)行處理,否則認(rèn)為其受到NLOS干擾,將式(10)獲得的NLOS的估計(jì)誤差 代入不同信道下的NLOS誤差的概率分布函數(shù),得到屬于各個信道的概率ωj,j=1,2,…,m.
通過NLOS誤差屬于每一個信道的概率來判別該測量值所受NLOS的情況.由于難以表示所有障礙物對應(yīng)的NLOS誤差概率分布函數(shù),因此設(shè)置閾值α以解決無法識別修正的情況.當(dāng):
ωj<α,?j,j=1,2,…,m
(12)
滿足時,則認(rèn)為該測量值超出了該方法的識別修正能力,因此將該測量值丟棄不用于最終的UWB系統(tǒng)的最小二乘定位.此外設(shè)置一個大于α的閾值β,如果:
max(ωj)>β,j=1,2,…,m
(13)
則認(rèn)為NLOS誤差的分布對應(yīng)其中概率最大值所對應(yīng)信道的誤差分布,假設(shè)最大概率對應(yīng)信道的誤差分布為N(μ,σ2),所以該NLOS誤差對應(yīng)的大小及標(biāo)準(zhǔn)差為:
(14)
(15)
當(dāng)式(12)和式(13)兩式都不滿足時,則將傳播信道視為多個信道的組合,定義:
W={j|α<ωj<β,j=1,2,…,m}
則修正的NLOS誤差及其對應(yīng)的標(biāo)準(zhǔn)差分別為:
(16)
(17)
根據(jù)式(14)和式(16)從而獲得UWB系統(tǒng)測量距離的修正值:
得到修正距離后,使用最小二乘定位法對移動目標(biāo)位置進(jìn)行估計(jì),假設(shè)行人的坐標(biāo)為(x,y).因此,第i個錨節(jié)點(diǎn)與移動節(jié)點(diǎn)之間的距離為:
假設(shè)修正值的誤差服從同一分布εi,即:
兩邊取平方:
(18)
將式(18)寫成矩陣形式:
HX=b
其中:
從而獲得UWB系統(tǒng)最小二乘的解:
XLS,t+1=(HTH)-1HTb
(19)
其中,λ在0和1之間,并利用更新后的偏航角對式(7)和式(8)進(jìn)行更新,從而獲得更新后的估計(jì)位置:
(20)
卡爾曼濾波器廣泛用于數(shù)據(jù)融合和狀態(tài)估計(jì),并且提出了許多使用卡爾曼濾波器來解決不同的問題.這些不同形式的卡爾曼濾波器遵循相同的兩個通用步驟:預(yù)測步驟和更新步驟[21,22].本節(jié)中,利用卡爾曼濾波融合上述UWB和INS系統(tǒng)的定位結(jié)果,實(shí)現(xiàn)更加準(zhǔn)確的行人位置估計(jì).
預(yù)測階段:
(21)
Pk|k-1=Pk-1|k-1+Qk
(22)
其中,預(yù)測狀態(tài)Xk|k-1由式(7)和式(8)獲得,Pk|k-1是預(yù)測狀態(tài)Xk|k-1協(xié)方差矩陣,Pk-1|k-1是k-1時刻估計(jì)狀態(tài)Xk-1|k-1的協(xié)方差矩陣,Qk是當(dāng)前預(yù)測值噪聲分布的協(xié)方差矩陣,可以通過訓(xùn)練過程中的步長估計(jì)的方差表示其對角線元素.
更新階段:
Kk=Pk|k-1C(CPk|k-1CT+Rk)-1
(23)
Xk|k=Xk|k-1+Kk(Z-CXk|k-1)
(24)
Pk|k=(I-KkC)Pk|k-1
(25)
其中:
Zk由INS和UWB兩個系統(tǒng)的估計(jì)值組成,兩個子系統(tǒng)的估計(jì)值由式(19)和式(20)獲得,Kk是卡爾曼增益,Rk是測量誤差的協(xié)方差矩陣.其中Rk元素的表達(dá)式如下:
Qk/PDR=Pk|k-1
在獲得更為準(zhǔn)確的估計(jì)結(jié)果之后,重新計(jì)算更新后的NLOS誤差值對距離進(jìn)行更新,再次獲得最小二乘的估計(jì)位置,更新偏航角,卡爾曼濾波融合兩個系統(tǒng)的結(jié)果,反復(fù)執(zhí)行以上過程,直至估計(jì)位置變化在一定的范圍之內(nèi)(微小的變化可能由測量所受的噪聲引起),結(jié)束循環(huán),獲得最終的估計(jì)位置,并以此結(jié)果作為INS下一時刻的起始位置,從而來降低INS的累計(jì)誤差,減小UWB的NLOS誤差,降低整個系統(tǒng)的估計(jì)位置的誤差,獲得好的定位結(jié)果.
為了驗(yàn)證定位系統(tǒng)的性能,模擬了一個室內(nèi)定位的場景.假設(shè)在60m×50m 的房間內(nèi),左下角為原點(diǎn),在固定的地點(diǎn)放置5個參考節(jié)點(diǎn),行人帶有移動節(jié)點(diǎn)和慣性導(dǎo)航模塊在5個參考節(jié)點(diǎn)的覆蓋范圍內(nèi),沿著以點(diǎn)(10,5)、(50,5)、(50,45)和(10,45)為頂點(diǎn)的矩形逆時針行走一圈.假設(shè)PDR算法的步長為0.8米,誤差服從N(0,0.042),共走了200步,角度噪聲設(shè)為N(0,π/50).UWB測距系統(tǒng)在LOS下的測距誤差服從N(0,0.0262).仿真中假設(shè)有5種不同的NLOS情況,它們的分布分別為N(0.72,0.452)、N(0.92,0.132)、N(0.36,0.082)、N(0.59,0.092)和N(0.45,0.112).
從上文分析可以看出選擇合適的參考節(jié)點(diǎn)對定位精度有明顯的影響,由于在NLOS的識別和緩解過程中,NLOS誤差被修正,殘留的NLOS的誤差值很小,為了便于觀察選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)對定位精度的影響,首先假設(shè)5個錨節(jié)點(diǎn)都處于LOS情況下,誤差服從N(0,0.0262).仿真效果圖如圖3所示,可以看出相比較于LOS情況下始終選擇同一個錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的情況,選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)能夠有效減少定位誤差,進(jìn)行了50次仿真.同一個錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的仿真中,50次仿真的總誤差286.8361米,而每一次定位過程中都選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的總誤差為246.8173米,定位精度提高了13.95%.
圖3 LOS下參考節(jié)點(diǎn)選擇對誤差的影響
考慮到算法的識別修正能力是有限的,有可能存在未完全消除NLOS誤差的情況,為進(jìn)一步說明選擇合適參考節(jié)點(diǎn)對定位精度的影響,因此假設(shè)有一個錨節(jié)點(diǎn)始終處于NLOS情況下未被識別和修正,并且該NLOS誤差服從N(0.33,0.082).當(dāng)兩種方法都不將受NLOS影響的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)時,其定位效果和LOS下相似,定位精度提高了11.61%.而當(dāng)受NLOS影響的錨節(jié)點(diǎn)始終作為參考節(jié)點(diǎn)時,實(shí)時選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)能夠明顯的提高定位精度,仿真效果如圖4所示.選取同一個錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的50次仿真總誤差為2.6297×103米,而每次定位都選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的總誤差僅為1.7259×103米,定位精度提高了34.37%.
圖4 NLOS下參考節(jié)點(diǎn)選擇對誤差的影響
室內(nèi)環(huán)境的變化如溫度、濕度等會導(dǎo)致NLOS誤差的變化,為了驗(yàn)證該算法能夠有效解決該類問題,在仿真中假設(shè)NLOS誤差均值從0.40m-0.80m變化,同時方差不變.其定位誤差(單位m)如表1所示,從表中可以看出,當(dāng)由于室內(nèi)環(huán)境的變化導(dǎo)致的NLOS誤差變化時,使用本文提出的算法可以獲得較為精準(zhǔn)的定位結(jié)果.
表1 不同NLOS誤差均值下的定位誤差比較
如圖5所示,比較了不同的方法之間的定位誤差,從圖中可以看出不經(jīng)過NLOS識別和修正直接融合UWB和IMU的定位誤差和直接使用LS獲得估計(jì)位置的定位誤差比較接近.對于不分信道,只判別LOS和NLOS在短時間內(nèi)的定位誤差較小,但是,隨著時間的增加,定位誤差也逐漸增加.而本文提出的方法定位誤差較小且比較穩(wěn)定.
圖5 不同定位方式的定位誤差比較
為了進(jìn)一步驗(yàn)證本文提出的定位算法的定位性能,自主搭建了融合INS和UWB的定位系統(tǒng)平臺,該定位系統(tǒng)包括慣性導(dǎo)航模塊(BWT901CL)和UWB模塊(UA-100).實(shí)驗(yàn)中,慣性導(dǎo)航模塊和UWB移動節(jié)點(diǎn)安裝在行人腳部,UWB參考節(jié)點(diǎn)安裝在已知位置,為了確保會出現(xiàn)不同的NLOS信道,將一個錨節(jié)點(diǎn)置于木門后面,另一個錨節(jié)點(diǎn)放在走廊與移動節(jié)點(diǎn)之間始終受墻阻擋.移動節(jié)點(diǎn)將采集到的錨節(jié)點(diǎn)的ID和對應(yīng)的距離值傳輸給PC端,慣性導(dǎo)航模塊也將數(shù)據(jù)傳送給PC端,PC端將兩個模塊的數(shù)據(jù)進(jìn)行融合.利用上述系統(tǒng)在一個6.4m×8m的空間內(nèi)進(jìn)行實(shí)驗(yàn).行人攜帶測量裝置繞桌椅沿著以3.6m和4.8m為邊長的長方形逆時針行走一圈.
如圖6所示,○表示LS估計(jì)為位置時選擇固定的參考節(jié)點(diǎn),將UWB和INS數(shù)據(jù)融合后的誤差,×表示在LS估計(jì)中每次都選擇合適的錨節(jié)點(diǎn)作為參考節(jié)點(diǎn)的定位誤差,可以看出通過選擇合適的參考節(jié)點(diǎn)能夠有效的降低最終的定位誤差,提高定位精度.
圖6 LS與改進(jìn)的LS的定位誤差比較
從圖7中可以看出PDR的方法起初可以獲得較為準(zhǔn)確的定位結(jié)果,而隨著步數(shù)的增加定位誤差越來越大.而不分信道識別修正NLOS誤差,剛開始能夠獲得較為準(zhǔn)確的定位結(jié)果,隨著時間的推移誤差有增大的趨勢.然而本文所提出的算法對于不同的障礙物引起的NLOS有很好的識別修正能力,能夠獲得較好的定位結(jié)果,定位誤差較小且穩(wěn)定,該方法下的最大定位誤差為0.25m.
圖7 不同方法的定位誤差比較
本文研究了室內(nèi)定位系統(tǒng)在非視距下的精確定位問題.首先,在離線階段建立了不同障礙物下的NLOS誤差分布.利用PDR的預(yù)測位置和NLOS誤差的概率曲線進(jìn)行非視距誤差識別和緩解,利用改進(jìn)的最小二乘法來提高UWB系統(tǒng)的定位精度,并對偏航角進(jìn)行修正,最后利用KF融合UWB和IMU的估計(jì)位置提高定位精度.該方法充分利用了兩個系統(tǒng)的優(yōu)點(diǎn),在不同的NLOS誤差情況下也能取得較好的定位結(jié)果.