張德立 牛 瑞 廖長(zhǎng)榮
(1、重慶市第一中學(xué)校,重慶 400030 2、重慶文理學(xué)院,重慶 402160)
隨著5G 時(shí)代的到來(lái)和智慧城市建設(shè)的提出,位置信息備受人們關(guān)注。定位技術(shù)按照定位范圍的大小可分為廣域定位和局域定位兩類(lèi),廣域定位技術(shù)已經(jīng)相對(duì)成熟,但在室內(nèi)或不空曠地帶由于衛(wèi)星定位信號(hào)受到建筑物或樹(shù)木的遮擋,經(jīng)常出現(xiàn)定位不準(zhǔn)或無(wú)法定位的情況,無(wú)法滿足局域定位的需求,因此,室內(nèi)定位技術(shù)逐步成為工業(yè)和學(xué)術(shù)界發(fā)展的熱點(diǎn),高精度的室內(nèi)定位具有重要的價(jià)值和意義[1]。
目前已經(jīng)進(jìn)入商業(yè)化應(yīng)用的室內(nèi)定位技術(shù)方案并不多,主要是基于WLAN 定位、藍(lán)牙定位、紅外線定位和超寬帶定位。超寬帶定位(UWB 定位)技術(shù)具有定位距離遠(yuǎn)、精度高、穩(wěn)定性強(qiáng)等優(yōu)點(diǎn),是室內(nèi)定位技術(shù)研究與發(fā)展的方向[2-3]。
本室內(nèi)定位系統(tǒng)設(shè)計(jì)采用基于DW1000 芯片的UWB 定位技術(shù),UWB 定位需要不斷的收發(fā)極窄的脈沖信號(hào),信號(hào)一般在納秒級(jí),通過(guò)計(jì)算接收到信號(hào)的時(shí)間差實(shí)現(xiàn)定位,需要提前安裝信號(hào)發(fā)射源作為基站或標(biāo)簽,測(cè)得不同標(biāo)簽和基站距離即可實(shí)現(xiàn)多地址定位。
本設(shè)計(jì)室內(nèi)定位系包含由DW1000 測(cè)距芯片的硬件和對(duì)距離信息實(shí)時(shí)計(jì)算分析的軟件系統(tǒng)。整個(gè)室內(nèi)定位系統(tǒng)由基站和標(biāo)簽組成,本室內(nèi)定位系統(tǒng)采用四個(gè)基站加兩個(gè)標(biāo)簽組合。系統(tǒng)的總體構(gòu)架如圖1 所示。
1.1.1 基站(ANTHOR)
四個(gè)基站需要固定在室內(nèi)場(chǎng)所的某個(gè)角落,基站的選址應(yīng)盡量防高,中間無(wú)障礙物遮擋,在軟件系統(tǒng)中設(shè)定四個(gè)基站間準(zhǔn)確的距離,選擇空間坐標(biāo)的原點(diǎn)?;疽坏腢WB 信號(hào)模塊接收到來(lái)自標(biāo)簽的UWB 信號(hào)后,將信號(hào)轉(zhuǎn)化位數(shù)字信息發(fā)送給STM32F1 微處理器(MCU)進(jìn)行數(shù)據(jù)處理,MCU 根據(jù)得到的數(shù)字信息計(jì)算出基站一到標(biāo)簽的距離diss1,其他三個(gè)基站的距離按相同原理獲得,MCU 收到標(biāo)簽到四基站的距離后,軟件系統(tǒng)開(kāi)始對(duì)距離信息處理,計(jì)算出標(biāo)簽的三維坐標(biāo)。
1.1.2 標(biāo)簽(TAG)
標(biāo)簽的主要作用是以非常高的頻率向周?chē)幕静粩喟l(fā)送UWB 信號(hào),只要標(biāo)簽在基站所覆蓋的范圍內(nèi),就可實(shí)時(shí)定位。標(biāo)簽的軟件系統(tǒng)中設(shè)定不同的ID 號(hào),為保證定位的準(zhǔn)確性,必須設(shè)定一個(gè)主標(biāo)簽,從標(biāo)簽可按需求增加。
二維的平面定位至少需要用到三個(gè)基站,一個(gè)標(biāo)簽;三維的空間定位至少需要四個(gè)基站,一個(gè)標(biāo)簽。
室內(nèi)定位系統(tǒng)主要由DW1000 測(cè)距模塊、顯示電路模塊、電源管理模塊和單片機(jī)最小系統(tǒng)構(gòu)成,系統(tǒng)的整體結(jié)構(gòu)如圖2 所示,程序中將DW1000 設(shè)置不同的工作模式,因此基站和標(biāo)簽的硬件相同。
DW1000 芯片的信號(hào)收發(fā)電路是室內(nèi)定位系統(tǒng)中最重要的一份部分,DW1000 信號(hào)收發(fā)電路部分的主要功能是接收和發(fā)送UWB 信號(hào),計(jì)算基站和標(biāo)簽之間的距離,該硬件的布局和天線的設(shè)計(jì)直接影響到定位的精度和定位靈敏性。DW1000 信號(hào)收發(fā)模塊原理圖如圖3 所示[5-6]。
圖3 DW1000 信號(hào)收發(fā)電路
MCU 采用STM32F103C8T6 單片機(jī),該單片機(jī)擁有SPI 總線接口,以Cortex-M3 為內(nèi)核,程序的存儲(chǔ)器容量達(dá)64KB,工作電壓在2V~3.6V,可與DW1000 芯片一樣使用3.3V 電源供電。其工作頻率達(dá)72MHz,對(duì)DW1000 芯片測(cè)距幾乎不會(huì)造成誤差影響[7]。
系統(tǒng)軟件設(shè)計(jì)主要實(shí)用MATLAB 和Keil uVsion5 兩個(gè)軟件,將定位算法首先在MATLAB 軟件中測(cè)試,待定位算法測(cè)試通過(guò)以后,將算法內(nèi)容用C 語(yǔ)言方式表達(dá)出來(lái),C 程序在Keil uVsion5 平臺(tái)上編寫(xiě),下載到STM32F1 單片機(jī)中。程序主要計(jì)算定位模塊傳來(lái)的標(biāo)簽距離信息實(shí)現(xiàn)最終定位[13]。
系統(tǒng)啟動(dòng)后MCU 和外設(shè)進(jìn)行初始化,再判斷模塊的工作模式,如果為工作模式標(biāo)簽,則發(fā)送定位信號(hào),如果工作模式為基站,則接收定位信息,最后將發(fā)送和接收的信息返回給標(biāo)簽進(jìn)行處理,計(jì)算出位置坐標(biāo)信息。
標(biāo)簽和單片機(jī)之間采用SPI 串口通信,通信過(guò)程主要經(jīng)過(guò)三個(gè)階段,初始化時(shí)序階段,讀時(shí)序階段和寫(xiě)時(shí)序階段[14]。首先DW1000 芯片進(jìn)行初始化,進(jìn)入發(fā)送模式,即標(biāo)簽?zāi)J?。DW1000芯片在MCU 的控制下,嚴(yán)格按照高八位地址,第八位數(shù)據(jù)的規(guī)則和時(shí)序先后順序進(jìn)行數(shù)據(jù)傳輸,否則會(huì)出現(xiàn)讀寫(xiě)失敗或數(shù)據(jù)亂碼。
與標(biāo)簽工作流程相似,單片機(jī)與基站之間采用SPI 通信。MCU 和DW1000 芯片初始化,工作模式設(shè)為基站模式,即接收狀態(tài)。MCU 檢測(cè)是否收到由標(biāo)簽發(fā)送的連接數(shù)據(jù),接收到連接數(shù)據(jù)后,MCU 控制DW1000 接收來(lái)自標(biāo)簽的UWB 位置信息數(shù)據(jù),通過(guò)SPI 串口,MCU 將接收到的UWB 信息進(jìn)行定位算法分析,計(jì)算標(biāo)簽的位置坐標(biāo),并將計(jì)算出的距離信息再次返還給基站,基站在顯示屏上顯示離標(biāo)簽的距離。
卡爾曼濾波(Kalman 濾波)是一種線性系統(tǒng)的狀態(tài)方程組,它根據(jù)系統(tǒng)的輸入量和輸出量數(shù)據(jù),推測(cè)預(yù)算系統(tǒng)下一步即將輸出的數(shù)據(jù),得出一種對(duì)系統(tǒng)下一步狀態(tài)進(jìn)行估算的最優(yōu)方法??柭鼮V波主要有兩個(gè)過(guò)程,預(yù)測(cè)過(guò)程和濾波過(guò)程。預(yù)測(cè)過(guò)程是根據(jù)K 點(diǎn)的狀態(tài)對(duì)k+1 點(diǎn)的狀態(tài)進(jìn)行估計(jì),預(yù)測(cè)過(guò)程會(huì)增大狀態(tài)量的不確定性;濾波過(guò)程是剔除數(shù)據(jù)中的其他雜波,留下最主要最真實(shí)的數(shù)據(jù),提高數(shù)據(jù)準(zhǔn)確性。
隨著科技的發(fā)展,用編程的方法實(shí)現(xiàn)卡爾曼濾波技術(shù)已經(jīng)非常成熟,通過(guò)編程實(shí)現(xiàn)卡爾曼濾波,可對(duì)現(xiàn)場(chǎng)采集的數(shù)據(jù)組進(jìn)行實(shí)時(shí)處理,目前在導(dǎo)航、通信、控制等領(lǐng)域都有著廣泛的應(yīng)用。
系統(tǒng)測(cè)試分為測(cè)距測(cè)試和三維定位測(cè)試。系統(tǒng)總共4 個(gè)基站,基站的位置固定不動(dòng),在測(cè)距測(cè)試中使用一個(gè)基站加一個(gè)標(biāo)簽組合,測(cè)出測(cè)距范圍,即最小測(cè)距距離和最大測(cè)距距離。定位測(cè)試和測(cè)距測(cè)試一樣,分別測(cè)試兩個(gè)不同ID 號(hào)的標(biāo)簽在基站中的位置坐標(biāo)準(zhǔn)確度。
測(cè)距范圍測(cè)試,基站和標(biāo)簽的距離從0 開(kāi)始以5m 遞增,記錄測(cè)量值以及最大測(cè)距范圍。
將表1 中的10 組數(shù)據(jù)繪制曲線圖,曲線圖如圖4 所示。用MATLAB 軟件分別繪制實(shí)際距離曲線(圖4 中偏上方曲線)和測(cè)量距離(圖4 中偏下方曲線)曲線,兩條曲線基本重合,當(dāng)測(cè)量距離超過(guò)40m 時(shí),測(cè)量結(jié)果會(huì)出現(xiàn)明顯偏差,主要是因?yàn)闇y(cè)量距離超出系統(tǒng)UWB 信號(hào)發(fā)送的范圍。
表1 測(cè)距結(jié)果統(tǒng)計(jì)表
圖4 測(cè)距測(cè)試結(jié)果曲線圖
固定四個(gè)基站的位置,測(cè)試標(biāo)簽的平面坐標(biāo)。4 基站坐標(biāo)分別為A0(0,0,0),A1(8,0,0),A2(0,5,0),A4(0,0,3),標(biāo)簽坐標(biāo)為T(mén)(X,Y,Z),R1,R2,R3 分別為標(biāo)簽到基站的距離。
將表2 中的8 組數(shù)據(jù)繪制三維定位曲線圖,曲線圖如圖5所示。
表2 三維定位測(cè)試結(jié)果統(tǒng)計(jì)表
圖5 三維定位測(cè)試結(jié)果曲線圖
測(cè)距的最大距離是40m,平面定位精度為低于7-8cm,三維定位精度為9cm,低于10cm,滿足設(shè)計(jì)要求。系統(tǒng)定位范圍在5-30m 范圍內(nèi),定位效果最佳,超過(guò)40m,定位誤差逐漸增大,超過(guò)45m 無(wú)法實(shí)現(xiàn)定位。
本文設(shè)計(jì)一款基于DW1000 的高精度室內(nèi)定位系統(tǒng),該系統(tǒng)對(duì)定位算法的精確性和硬件的設(shè)計(jì)及時(shí)鐘精確同步都有著非常高的要求,系統(tǒng)的三維定位能精確測(cè)得標(biāo)簽的高度,有著巨大的市場(chǎng)應(yīng)用前景。