李玉峰,王君祎,李碩磊
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,沈陽 110136)
基于位置的服務(wù)(Location-Based Service,LBS)已經(jīng)在人類生活的方方面面扮演著重要的角色。目前,室外定位大多依賴全球衛(wèi)星導(dǎo)航系統(tǒng)[1](Global Navigation Satellite System,GNSS),由于衛(wèi)星信號穿透建筑物的能力較差,一般情況下利用GNSS難以實(shí)現(xiàn)室內(nèi)定位。目前主流的室內(nèi)定位技術(shù)主要有WIFI、慣性導(dǎo)航及超寬帶技術(shù)(Ultra-Wide Band,UWB)等。文獻(xiàn)[2-3]提出了基于WIFI的定位系統(tǒng),成本低且易部署,但是定位精度差通常在5~10 m左右;文獻(xiàn)[4]提出了地磁和慣導(dǎo)的室內(nèi)定位系統(tǒng),該方法有效縮短了離線階段基準(zhǔn)庫的構(gòu)建時間,且定位精度提高到2 m左右;文獻(xiàn)[5-7]提出了基于UWB的室內(nèi)定位方法,UWB信號的脈沖功率譜密度極低,具有多徑分辨能力強(qiáng)、抗干擾性好等優(yōu)點(diǎn),定位精度通常在分米甚至厘米級,是目前一種性價比較高的室內(nèi)定位方法,故本文采用UWB技術(shù)來實(shí)現(xiàn)室內(nèi)定位。
在實(shí)際定位場景中非視距誤差以及多徑效應(yīng)會影響定位精度,針對此問題,劉琚等[8]提出了一種在非視距環(huán)境中的TDOA/AOA混合定位方法,相比于單純的TDOA定位方法在一定程度上提高了定位的精度,但是隨著AOA的測量精度下降,該方法的定位精度也會隨之下降。毛永毅等[9]提出了面向室內(nèi)定位的DHOHF-Elman神經(jīng)網(wǎng)絡(luò)算法,該算法能夠較高程度地抑制環(huán)境中的高斯白噪聲,但是定位精度受訓(xùn)練集影響大,且訓(xùn)練過程煩瑣,不適合實(shí)際應(yīng)用。李奇越等[10]提出了基于有色噪聲自適應(yīng)卡爾曼濾波算法,在一定程度上提高了定位精度,但是濾波效果容易發(fā)散,并且測量數(shù)據(jù)中的粗大誤差對濾波結(jié)果影響大。文獻(xiàn)[11-12]提出基于信道估計(jì)和地域規(guī)劃的方法來抑制NLOS誤差,該方法雖然可行但精度并不理想。為了降低NLOS和粗大誤差對定位精度的影響,本文采用中值均值濾波法對原始距離觀測量進(jìn)行預(yù)處理,該方法能極大程度地剔除距離觀測數(shù)據(jù)中的粗大誤差,然后結(jié)合Taylor定位算法求解標(biāo)簽的位置信息,最后采用卡爾曼濾波算法進(jìn)行濾波處理以抑制NLOS誤差。實(shí)驗(yàn)表明該算法實(shí)現(xiàn)簡單、定位精度高且實(shí)時性強(qiáng)。
本定位系統(tǒng)主要由定位標(biāo)簽(Tag)、參考基站(Anchor)、無線通信系統(tǒng)以及上位機(jī)等組成。其中定位標(biāo)簽和參考基站實(shí)現(xiàn)對配有定位標(biāo)簽的待測目標(biāo)定位;無線通信系統(tǒng)主要將待測目標(biāo)的測量信息傳遞給上位機(jī);上位機(jī)顯示平臺主要包括基站、標(biāo)簽列表以及相關(guān)的配置信息,能夠通過無線通信技術(shù)讀取標(biāo)簽與基站之間的相對距離,并通過本文設(shè)計(jì)的定位算法求解位置信息,并將位置信息直觀地顯示在可視化界面上。同時為了應(yīng)對定位場景的不固定問題,該上位機(jī)設(shè)有導(dǎo)入地圖功能,實(shí)現(xiàn)不同場景下的定位。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 UWB室內(nèi)定位系統(tǒng)結(jié)構(gòu)圖
硬件系統(tǒng)主要由UWB收發(fā)器、無線通信模塊、主控單元、按鍵模塊和顯示模塊等組成,系統(tǒng)框圖如圖2所示。其中UWB電路、主控單元以及通信電路的設(shè)計(jì)是該硬件系統(tǒng)的核心電路。
該系統(tǒng)采用DWM1000模塊來實(shí)現(xiàn)UWB信號的接收與發(fā)送,該模塊符合IEEE 802.15.4-2011的低功耗、低成本標(biāo)準(zhǔn),其發(fā)射功率在-35~62 dBm/MHz區(qū)間。該模塊集成了射頻收發(fā)天線、電源管理和時鐘等相關(guān)外圍電路,使芯片體積小、集成度高且易于操作。在視距情況下,DWM1000測距可達(dá)290 m,非視距情況下測距可達(dá)35 m,其精度高達(dá)10 cm。同時設(shè)有3種數(shù)據(jù)傳輸速率可供選擇,分別為110 kbit/s、850 kbit/s 和 6.81 Mbit/s,能夠滿足大部分場景的應(yīng)用。該模塊通過SPI總線與主控芯片進(jìn)行通信,操作簡單且數(shù)據(jù)傳輸速率高。DWM1000模塊電路如圖3所示。
該高精度定位系統(tǒng)主控單元的最小系統(tǒng)電路如圖4所示,主控芯片為STM32F103U8T6。該芯片采用arm架構(gòu),72 MHz最大時鐘頻率,配有專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的ARM32位Cortex-M內(nèi)核芯片。根據(jù)本設(shè)計(jì)中定位及無線通信功能的實(shí)際需求,結(jié)合STM32單片機(jī)自身特點(diǎn),編寫軟件程序?qū)崿F(xiàn)UWB測距信息的獲取、數(shù)據(jù)處理以及數(shù)據(jù)通信等功能。其內(nèi)部集成的豐富硬件資源和靈活的庫函數(shù)為本文提出的高精度定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)帶來了極大的方便。
該高精度定位系統(tǒng)采用LoRa無線模塊作為通信設(shè)備,該模塊是一款基于SX1268射頻芯片的無線串口模塊,具有多種傳輸方式,且支持空中喚醒,非常適合超低功耗應(yīng)用。該模塊的載波中心頻段為433 MHz,發(fā)射功率為100 mW,通信距離高達(dá)5 km。采用先進(jìn)LoRa擴(kuò)頻技術(shù),使其具有強(qiáng)干擾能力和穿透能力,較傳統(tǒng)的FSK性能提升了1倍。本文主要采用LoRa模塊實(shí)現(xiàn)UWB基站和標(biāo)簽與PC機(jī)的直接數(shù)據(jù)交互,在使用LoRa無線模塊前先對其進(jìn)行工作模式的參數(shù)配置,程序中對串口進(jìn)行初始化設(shè)置,通過串口通信實(shí)現(xiàn)位置信息的傳遞。其接口電路如圖5所示。
為克服非視距誤差和隨機(jī)誤差等問題,本文采用中值均值濾波法對UWB觀測距離進(jìn)行濾波處理,然后對距離量進(jìn)行判斷,如果距離觀測量的數(shù)量不滿足taylor的定位算法輸入量的個數(shù),則返回繼續(xù)觀測,相反則通過taylor的定位算法求解位置信息,然后將此位置通過卡爾曼濾波再次進(jìn)行平滑處理,最大限度地降低隨機(jī)干擾帶來的誤差影響,算法流程圖如圖6所示。
(1)
三維情況有
(2)
式中,(xn,yn,zn)為基站n的坐標(biāo)值,dn表示待測目標(biāo)與基站n之間的測量距離。
由Taylor級數(shù)展開并忽略二階以上分量可得
(3)
式中,
(4)
(5)
式中(x0,y0,z0)為上一次的迭代結(jié)果,每次迭代之后求出誤差量Δx、Δy、Δz,并更新坐標(biāo)值,進(jìn)行下一次迭代。|Δx|+|Δy|+|Δz| 考慮到實(shí)際定位環(huán)境中由于脈沖干擾帶來的測距誤差,本文采用中值濾波法對距離觀測量進(jìn)行濾波,相比于傳統(tǒng)的均值濾波算法,該算法能夠極大降低由于脈沖干擾而引起的觀測偏差,該算法將N次觀測量進(jìn)行大小排序,并剔除最大值和最小值,然后將剩余的N-2個觀測量進(jìn)行均值濾波,如式(6)所示。 (6) 其中,X(K)為觀測量,且X(1)≤X(2)…≤X(N),N≥3。 理論情況下取任意值,但是N的取值過大不僅會影響運(yùn)算速率同時會降低濾波效果的實(shí)時性,通常在實(shí)際情況中一般取4~6,本文N的取值為5,該濾波算法計(jì)算方便、速度快,同時盡可能保證了濾波的時效性。 雖然上文的距離濾波算法已經(jīng)對距離觀測量中由于脈沖干擾帶來的誤差進(jìn)行了濾波,單定位結(jié)果仍會存在隨機(jī)誤差,因此本文采用卡爾曼[14]算法對解算后的位置信息進(jìn)行濾波。卡爾曼是一種最優(yōu)濾波器,采用遞推算法,即由參數(shù)的驗(yàn)前估計(jì)和新的觀測數(shù)據(jù)進(jìn)行狀態(tài)更新,一般只需存儲前一個歷元的狀態(tài)參數(shù)估值,無須存儲所有歷史的觀測信息,因此卡爾曼濾波具有很高的計(jì)算效率,并可以進(jìn)行實(shí)時估計(jì)。 設(shè)狀態(tài)變量n維,k時刻的狀態(tài)為xk;k時刻的m維測量量zk,則 狀態(tài)方程為xk=?k-1xk-1+Γk-1wk-1 (7) 測量方程為 zk=Hkxk+Vk (8) 其中?k-1為狀態(tài)轉(zhuǎn)移矩陣;Γk-1為狀態(tài)噪聲系數(shù)矩陣;wk-1為狀態(tài)噪聲,Hk為測量矩陣;Vk為測量噪聲,一般為零期望白噪聲;根據(jù)勻加速運(yùn)動模型有 (9) (10) (11) 由于系統(tǒng)采樣頻率較高,在一個采樣周期內(nèi)可以近似認(rèn)為移動目標(biāo)做勻速運(yùn)動,因此上述公式可改寫為 (12) 考慮到二維情形下的狀態(tài)模型包含水平方向和垂直方向的位置和速度,因此可以將狀態(tài)方程定義為 (13) 系統(tǒng)方程可以表示為 (14) 相應(yīng)的測量誤差方程和狀態(tài)方程分別為 (15) (16) 該上位機(jī)監(jiān)測軟件在挪威TrollTech公司出品QTCreator[15]平臺上開發(fā),是整個定位系統(tǒng)的信息處理中心,能夠通過LoRa無線通信系統(tǒng)接收待測目標(biāo)發(fā)送的距離信息,并結(jié)合上文提到的定位算法進(jìn)行位置解算,上位機(jī)軟件界面如圖7所示。 圖7 上位機(jī)軟件界面 如圖7所示,地圖顯示區(qū)域主要用于顯示待測目標(biāo)的位置信息,控制菜單欄主要用于控制軟件的開始和退出基本控制操作,初始化信息配置欄主要用于配置基站的坐標(biāo)信息和導(dǎo)入環(huán)境地圖,上位機(jī)軟件設(shè)計(jì)流程圖如圖8所示。 圖8 上位機(jī)軟件設(shè)計(jì)流程圖 為實(shí)現(xiàn)上位機(jī)軟件,采用模塊化的思想進(jìn)行開發(fā),運(yùn)用信號與槽的機(jī)制實(shí)現(xiàn)各個組件之間的交互,使得軟件開發(fā)變得更加直觀和高效。同時采用C++模板以及異步調(diào)用的機(jī)制實(shí)現(xiàn)一款通用的后臺處理應(yīng)用框架,使其具有易于擴(kuò)展、移植等優(yōu)點(diǎn)。 4.1.1 距離測試 在測試定位算法性能之前先對距離濾波算法進(jìn)行測試。本文對基站與移動標(biāo)簽之間不同距離進(jìn)行大量實(shí)驗(yàn)測試,如圖9a所示為理論距離為5 m的500組距離觀測量,可以看出在實(shí)際測試環(huán)境中,傳感器的觀測距離會有粗大誤差存在,勢必會對定位結(jié)果帶來較大的定位誤差。為了驗(yàn)證中位值均值濾波算法的性能,將500組距離觀測量通過該算法進(jìn)行濾波。本文選取5次觀測量進(jìn)行處理,因此500組觀測數(shù)據(jù)經(jīng)處理生成100組數(shù)據(jù),如圖9b所示,觀測量中的粗大誤差被有效剔除,測距精度有明顯提高,測量誤差由原來的22 cm降低到7 cm,為高精度定位提供了保障。 圖9 距離觀測值濾波前后測量結(jié)果 4.1.2 定位算法測試 本實(shí)驗(yàn)主要是對移動終端進(jìn)行多點(diǎn)測試,同時將taylor、taylor+卡爾曼、中位值均值濾波+taylor以及中值均值濾波+taylor+卡爾曼4種算法通過多個位置點(diǎn)的定位結(jié)果進(jìn)行對比分析,采用均方根誤差(Root Mean Square Error,RMSE)來衡量定位精度,用(x,y)表示待測點(diǎn)的真實(shí)位置,(x′,y′)表示定位算法解算出來的位置坐標(biāo),則在二維坐標(biāo)下有 (17) 本文對不同定位點(diǎn)進(jìn)行了大量的實(shí)驗(yàn)測試,并選取圖10所示路線進(jìn)行算法對比,測試環(huán)境中基站的坐標(biāo)分別為(0,0)、(10,0)、(10,10)、(0,10),虛線為行駛路徑,即A(2,8)→B(8,8)→C(8,7)→D(5,7)→E(5,0.5)→F(2,0.5),不同算法定位結(jié)果如圖11所示。 圖10 測試路線 圖11a所示的定位結(jié)果是距離觀測量沒有進(jìn)行濾波處理而直接通過taylor算法進(jìn)行定位的結(jié)果,由圖可以看出定位結(jié)果誤差大,且部分定位點(diǎn)存在粗大誤差。圖11b所示的是圖11a的定位結(jié)果經(jīng)過卡爾曼濾波后的定位結(jié)果,可以看出卡爾曼濾波算法雖然提高了定位的平滑性,但是受粗大誤差影響大,從而影響濾波性能。圖11c是將距離觀測量通過本文設(shè)計(jì)的濾波算法處理后再進(jìn)行Taylor定位的結(jié)果,定位結(jié)果的粗差被有效剔除,同時定位精度也有一定的提高,但提高幅度相對不大。圖11d表示的是將圖11c的定位結(jié)果進(jìn)行卡爾曼濾波的定位結(jié)果,可以清晰地看出定位精度有明顯提升,且能夠較好地避免粗大誤差帶來的影響。表1給出了不同定位算法的定位精度,由表1可知,相比其他定位算法本文設(shè)計(jì)的算法定位精度更高。 圖11 不同算法定位軌跡圖 表1 不同算法定位精度對比 本文算法與常見的UWB定位算法定位精度對比如表2所示。 表2 本文算法與常見UWB定位算法精度對比表 由表2可知傳統(tǒng)的最小二乘定位算法的定位精度為39 cm,擴(kuò)展卡爾曼定位算法定位精度為33 cm,且容易受到環(huán)境中多徑效應(yīng)、隨機(jī)噪聲和非視距誤差等因素的影響,本文提出的定位算法定位精度為12 cm,能夠有效克服定位環(huán)境中的干擾,較最小二乘和擴(kuò)展卡爾曼定位算法精度有顯著提高。 在上位機(jī)軟件正式測試之前需對此軟件進(jìn)行初始化配置,主要包括通信設(shè)置和基站坐標(biāo)設(shè)置,然后開啟定位系統(tǒng),并對植入改進(jìn)版卡爾曼定位算法的上位機(jī)定位觀測軟件進(jìn)行測試。 由定位軟件顯示可以看出該定位系統(tǒng)對移動目標(biāo)有良好的跟蹤性,表3給出了部分測試數(shù)據(jù)與實(shí)際坐標(biāo)的對比數(shù)據(jù)。 由表3數(shù)據(jù)得出本文設(shè)計(jì)的定位系統(tǒng)的定位軌跡與實(shí)際坐標(biāo)高度吻合,實(shí)現(xiàn)了高精度定位,同時該軟件更加直觀高效地顯示出了移動目標(biāo)的運(yùn)動軌跡,有較高的使用價值。 表3 部分上位機(jī)測試結(jié)果 本文采用中值均值濾波算法對UWB距離觀測量進(jìn)行濾波,使得測距誤差從22 cm降低到7 cm,同時有效消除距離觀測量的粗大誤差,使得Taylor定位結(jié)果的最大誤差從1.4 m降低到30 cm,避免了粗大誤差對卡爾曼濾波算法的影響,定位精度提高到12 cm。基于本文設(shè)計(jì)算法的上位機(jī)軟件具有人機(jī)交互性好、操作簡單、實(shí)時性強(qiáng)等優(yōu)點(diǎn),定位軌跡高度貼近真實(shí)軌跡,能夠用于高精度定位領(lǐng)域。3.2 距離濾波算法設(shè)計(jì)
3.3 卡爾曼濾波算法設(shè)計(jì)
3.4 上位機(jī)軟件設(shè)計(jì)
4 實(shí)驗(yàn)驗(yàn)證與結(jié)果分析
4.1 軟件算法測試
4.2 上位機(jī)軟件測試
5 結(jié)論