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