楊會(huì),朱磊,徐焱
(宿遷學(xué)院 信息工程學(xué)院,江蘇宿遷,223800)
超寬帶技術(shù)(Ultra-wideband,UWB)是近年來(lái)發(fā)展起來(lái)的無(wú)線電技術(shù),它不同于傳統(tǒng)通信中需要使用載波,而是使用納秒級(jí)的非正弦波窄脈沖傳輸數(shù)據(jù),信號(hào)具有GHz量級(jí)的帶寬。一方面超寬帶利用脈沖波的良好抗多徑效應(yīng)和精確測(cè)距特性,可以實(shí)現(xiàn)高精度、高可靠性的超寬帶室內(nèi)定位,另一方面由于超大帶寬,超寬帶通信的傳輸速率非???,可以實(shí)時(shí)傳輸室內(nèi)人員生命狀態(tài)信息,因此將通信與測(cè)距融合在一起,設(shè)計(jì)實(shí)現(xiàn)了基于UWB的室內(nèi)人員定位及生命狀態(tài)監(jiān)測(cè)系統(tǒng),該系統(tǒng)定位精度高、集成度高、應(yīng)用面廣。
室內(nèi)人員定位及生命狀態(tài)監(jiān)測(cè)系統(tǒng)主要用來(lái)對(duì)室內(nèi)人員進(jìn)行實(shí)時(shí)高精度定位以及生命狀態(tài)的監(jiān)測(cè)。實(shí)現(xiàn)UWB無(wú)線定位需要一個(gè)固定于室內(nèi)人員身上的標(biāo)簽節(jié)點(diǎn)(定位標(biāo)簽)以及四個(gè)固定安裝于周?chē)h(huán)境中錨節(jié)點(diǎn)(定位基站)。定位標(biāo)簽除了配有與基站進(jìn)行數(shù)據(jù)交互的測(cè)距模塊,還配有對(duì)生命狀態(tài)進(jìn)行監(jiān)測(cè)的測(cè)試模塊;定位基站分為主基站和從基站,主基站配有與上位機(jī)通信的藍(lán)牙模塊。該系統(tǒng)包含有1個(gè)主基站、3個(gè)從基站及若干標(biāo)簽,系統(tǒng)原理框圖如圖1所示。
如圖1所示,該系統(tǒng)的定位功能是利用雙邊雙向測(cè)距的方法實(shí)現(xiàn)標(biāo)簽與各個(gè)基站距離的測(cè)量:首先標(biāo)簽向各個(gè)基站發(fā)送定位命令,各基站接收后返回響應(yīng)命令,標(biāo)簽再次接收后發(fā)送最終命令,各基站再次接收后利用消息中的時(shí)間戳計(jì)算出飛行時(shí)間,并最終將各自飛行時(shí)間發(fā)送給主機(jī)站,主基站在接收到三個(gè)從基站時(shí)間數(shù)據(jù)后使用藍(lán)牙將數(shù)據(jù)傳回上位機(jī),經(jīng)過(guò)上位機(jī)解算得到位置信息。
圖1 系統(tǒng)原理框圖
該系統(tǒng)實(shí)現(xiàn)生命狀態(tài)監(jiān)測(cè)功能在于標(biāo)簽將所測(cè)得的生命狀態(tài)的數(shù)據(jù)放在最終命令里隨著測(cè)距的時(shí)間戳信息一起傳輸,并最后傳送至上位機(jī)進(jìn)行顯示,這使得在完成定位的同時(shí)也完成了相關(guān)數(shù)據(jù)的傳輸,實(shí)現(xiàn)了定位通信二合一,提高了系統(tǒng)的集成度。生命狀態(tài)的監(jiān)測(cè)主要是對(duì)室內(nèi)人員體溫、心率等的測(cè)量及顯示功能。
1.2.1 標(biāo)簽?zāi)K設(shè)計(jì)
標(biāo)簽?zāi)K電路設(shè)計(jì)如圖2所示,該電路由STM32控制模塊、電源模塊、UWB模塊及生命狀態(tài)監(jiān)測(cè)模塊四部分組成。
圖2 標(biāo)簽?zāi)K
其中STM32控制模塊負(fù)責(zé)整個(gè)電路的數(shù)據(jù)采集和存儲(chǔ)、控制數(shù)據(jù)的發(fā)送和接收,電源模塊是用來(lái)為電路中各個(gè)模塊實(shí)現(xiàn)供電管理。UWB模塊中采用Decawave公司針對(duì)UWB信號(hào)設(shè)計(jì)的DW1000信號(hào)收發(fā)器,DW1000芯片可以準(zhǔn)確記錄UWB信號(hào)的到達(dá)時(shí)間,時(shí)間精度達(dá)到15.6ps,可以滿足厘米級(jí)的定位要求。生命狀態(tài)監(jiān)測(cè)模塊包括心率傳感器測(cè)試模塊和溫度傳感器測(cè)試模塊,心率傳感器采用PulseSensor光電反射式傳感器,溫度傳感器采用GY-906紅外測(cè)溫傳感器。
1.2.2 基站模塊設(shè)計(jì)
基站模塊電路設(shè)計(jì)如圖3所示,由STM32控制模塊、電源模塊、UWB模塊以及藍(lán)牙模塊四部分組成,其中主基站配有藍(lán)牙模塊,從基站沒(méi)有。
圖3 基站模塊
基站模塊中的STM32控制模塊、電源模塊、UWB模塊的功能與標(biāo)簽?zāi)K相同,藍(lán)牙模塊的功能是使得主基站在得到標(biāo)簽和各基站距離數(shù)據(jù)以及生命狀態(tài)數(shù)據(jù)后,可以高效快捷地將數(shù)據(jù)上傳至上位機(jī)進(jìn)行位置解算,而不需要在基站處增加數(shù)據(jù)線,方便了基站的安放。
1.3.1 定位系統(tǒng)軟件設(shè)計(jì)
在對(duì)比了基于到達(dá)時(shí)間(TOA,Time of Arrival)、基于到達(dá)時(shí)間差(TDOA,Time Difference of Arrival)、基于到達(dá)信號(hào)角度(AOA,Angle of Arrival)、基于接收信號(hào)強(qiáng)度指示(RSSI,Received Signal Strength Indication)、基于雙向測(cè)距(TWR,Two-way Ranging)的定位方法以后,采用了雙邊雙向測(cè)距(DS-TWR,Double-side Two-way Ranging)的方法作為定位系統(tǒng)的底層測(cè)距方案。其測(cè)距原理如圖4所示。
圖4 雙邊雙向測(cè)距原理圖
在四消息的基礎(chǔ)上,采用三消息方式,也就是省去Device B發(fā)送的時(shí)間戳,設(shè)備 A收到數(shù)據(jù)之后,立刻返回?cái)?shù)據(jù),最后得到四個(gè)時(shí)間差:Tround1、Treply1、Tround2、Treply2。具體通信測(cè)距過(guò)程如下:設(shè)備A發(fā)送測(cè)距指令,設(shè)備B響應(yīng),我們將設(shè)備A命名為設(shè)計(jì)所需要的標(biāo)簽,而設(shè)備B就是基站,標(biāo)簽發(fā)送測(cè)距信息,并記錄發(fā)送時(shí)間TX,等待基站接收?;臼盏綔y(cè)距指令,發(fā)送測(cè)距信息至標(biāo)簽,并記錄接收時(shí)間RX,標(biāo)簽接收到響應(yīng)信息RX后,向基站發(fā)送final指令,基站收到final,表示測(cè)距結(jié)束。整個(gè)過(guò)程最后可以用如下公式計(jì)算:
根據(jù)以上原理,軟件設(shè)計(jì)流程如圖5所示。
圖5 軟件設(shè)計(jì)流程圖
在圖5中,首先初始化MCU和DW1000,讀取工作角色開(kāi)始測(cè)距,確定是不是測(cè)距目標(biāo),如果不是,將返回MCU外設(shè),重新配置,判斷此時(shí)是不是測(cè)距目標(biāo),如果不是則等待接收測(cè)距信息,如果是,則標(biāo)簽發(fā)送請(qǐng)求定位信息給基站,基站收到信息并發(fā)送report信息,標(biāo)簽收到response信息再發(fā)送final信息,以此獲得三個(gè)時(shí)間戳,一標(biāo)簽多基站之間采用輪詢(xún)的方式,最后匯總到主基站,在流程圖的下半段中左半邊是標(biāo)簽,右半邊是基站,進(jìn)行數(shù)據(jù)的傳輸和接收,最后匯總并計(jì)算位置信息。
該定位系統(tǒng)基于上述雙邊雙向測(cè)距的方法實(shí)現(xiàn)了標(biāo)簽和各個(gè)基站距離的測(cè)量,之后利用數(shù)學(xué)的方法對(duì)標(biāo)簽位置進(jìn)行解算。以二維平面為例,以若干已知位置的基站為圓心,以標(biāo)簽與基站間測(cè)距值為半徑作圓,各個(gè)圓的交點(diǎn)即是標(biāo)簽的位置,其具體工作原理如圖6所示。
圖6 定位工作原理圖
在圖6中,基站A、B、C測(cè)得與標(biāo)簽的距離分別為d1、d2、d3,令標(biāo)簽的坐標(biāo)為(x,y),基站的位置坐標(biāo)為(xi,yi),根據(jù)圓的幾何意義,可以列出方程組(2):
方程組(2)中,各基站的坐標(biāo)(xi,yi)是已知的,即定位前需測(cè)量、設(shè)置好基站的位置?;镜綐?biāo)簽的距離di可根據(jù)雙邊雙向測(cè)距模型完成測(cè)距,測(cè)出每個(gè)基站到標(biāo)簽的飛行時(shí)間Ti,UWB的傳播速率為光速,將飛行時(shí)間Ti乘以傳播速率就可得到基站到標(biāo)簽的距離di。于是,方程組(2)中就只有(x,y)未知,通過(guò)求解該方程組,可以得到標(biāo)簽坐標(biāo)(x,y),完成定位。按上述方法,每三個(gè)基站可組成一組定位基站,可以確定一個(gè)標(biāo)簽坐標(biāo)。
1.3.2 生命狀態(tài)監(jiān)測(cè)系統(tǒng)軟件設(shè)計(jì)
室內(nèi)人員體溫的測(cè)量采用非接觸式的GY-906紅外測(cè)溫傳感器,該傳感器的測(cè)溫流程如圖7所示。開(kāi)啟開(kāi)關(guān)電源后,首先對(duì)溫度傳感器進(jìn)行初始化,之后檢測(cè)是否有按鍵輸入,如果有則輸入體溫的閾值,開(kāi)始對(duì)室內(nèi)人員進(jìn)行體溫測(cè)量,測(cè)量的體溫?cái)?shù)據(jù)一方面通過(guò)UWB通信發(fā)送給主機(jī)站進(jìn)而上傳至上位機(jī)進(jìn)行溫度顯示,另一方面與設(shè)置的體溫閾值進(jìn)行比較,若超過(guò)閾值則進(jìn)行體溫監(jiān)測(cè)報(bào)警。
圖7 溫度監(jiān)測(cè)流程圖
室內(nèi)人員心率的測(cè)量采用PulseSensor光電反射式傳感器,該傳感器的測(cè)量過(guò)程與溫度傳感器的測(cè)量過(guò)程類(lèi)似。開(kāi)啟開(kāi)關(guān)電源后,首先對(duì)心率傳感器進(jìn)行初始化,之后檢測(cè)是否有按鍵輸入,如果有則輸入心率的閾值,開(kāi)始對(duì)室內(nèi)人員進(jìn)行心率測(cè)量,測(cè)量的心率數(shù)據(jù)一方面通過(guò)UWB通信發(fā)送給主機(jī)站進(jìn)而上傳至上位機(jī)進(jìn)行心率顯示,另一方面與設(shè)置的心率閾值進(jìn)行比較,若超過(guò)閾值則進(jìn)行心率監(jiān)測(cè)報(bào)警。
系統(tǒng)的底層測(cè)距方案采用了雙邊雙向測(cè)距方法進(jìn)行定位,該定位方法抑制了由于時(shí)鐘偏差而產(chǎn)生的測(cè)距誤差,但是在復(fù)雜的室內(nèi)環(huán)境中有很多因素影響室內(nèi)定位的精確度,如非視距誤差、天線延遲、定位延遲等等。為了提高定位精度,對(duì)比了Fang算法、Chan算法、泰勒級(jí)數(shù)展開(kāi)法(Taylor)、卡爾曼濾波這幾種算法,由于卡爾曼濾波算法在解決多址路徑,非視距誤差等問(wèn)題有顯著成效,最終確定選取卡爾曼濾波算法對(duì)原解算法進(jìn)行改進(jìn)。
卡爾曼濾波算法是一種系統(tǒng)性的狀態(tài)估計(jì)法,很多情況都對(duì)測(cè)量數(shù)據(jù)有高度精確需求,這是得出狀態(tài)最優(yōu)成果的前提。它具有計(jì)算量小、容易實(shí)現(xiàn)和適應(yīng)性強(qiáng)等特點(diǎn),廣泛應(yīng)用在工程中??蓪⑵鋭澐譃閮蓚€(gè)步驟:1)預(yù)測(cè),將前時(shí)刻數(shù)據(jù)信息作為參考,需要考慮到每個(gè)時(shí)刻的計(jì)算精度;2)更新,在前面已經(jīng)計(jì)算出的估計(jì)結(jié)果,可將精度進(jìn)一步提升。具體流程函數(shù)關(guān)系為:
預(yù)測(cè):
更新:
公式(3)屬于狀態(tài)預(yù)測(cè),根據(jù)上一時(shí)刻的狀態(tài)來(lái)對(duì)當(dāng)前時(shí)刻的狀態(tài)進(jìn)行預(yù)測(cè),還要加上外界環(huán)境對(duì)系統(tǒng)的作用。公式(4)屬于誤差矩陣預(yù)測(cè),實(shí)施預(yù)測(cè)操作時(shí)除了有不確定預(yù)測(cè)噪聲增加Q,還要再考慮原有的不確定性。公式(5)計(jì)算是kalman增益計(jì)算,預(yù)測(cè)結(jié)果的不確定性P和觀測(cè)結(jié)果的不確定性R,計(jì)算卡爾曼增益(權(quán)重)。公式(6)屬于狀態(tài)校正,以加權(quán)平均方式處理預(yù)測(cè)、觀測(cè)等結(jié)果,所得結(jié)果是當(dāng)前時(shí)刻狀態(tài)估計(jì)。輸出結(jié)果表示kalman濾波最終結(jié)果,公式(7)代表誤差矩陣更新。式中各變量的含義如表1所示:
表1 各變量說(shuō)明
為了驗(yàn)證卡爾曼濾波算法對(duì)該系統(tǒng)定位精度的提高,采用matlab對(duì)卡爾曼濾波算法進(jìn)行了仿真,選取定位系統(tǒng)采集回來(lái)的100組真實(shí)的數(shù)據(jù),分別計(jì)算未加入卡爾曼濾波算法的誤差與加入了卡爾曼濾波算法的誤差并進(jìn)行比較,如圖8所示。另外將標(biāo)簽真實(shí)位置、未加入卡爾曼濾波算法解算出來(lái)的位置以及加入卡爾曼濾波算法再進(jìn)行解算之后的位置數(shù)據(jù)進(jìn)行比較,如圖9所示。
圖8 卡爾曼濾波前后誤差分析對(duì)比圖
從圖8中可以看到,卡爾曼濾波之前定位有很大的誤差,但通過(guò)加入卡爾曼濾波算法后,可以在圖中看到濾波前的誤差起伏幅度比較大,而濾波后的起伏幅度變小了。從圖9中我們也可以看出在濾波前的定位軌跡是有點(diǎn)分散的,而在濾波后的定位軌跡是集中的,而且濾波后的軌跡更接近于真實(shí)的軌跡。因此,經(jīng)過(guò)卡爾曼濾波算法仿真的數(shù)據(jù)更加平穩(wěn),數(shù)據(jù)線條更加平滑,卡爾曼濾波算法確實(shí)可以彌補(bǔ)原測(cè)距算法所出現(xiàn)的不足,采用卡爾曼濾波算法對(duì)原測(cè)距算法進(jìn)行改進(jìn)是切實(shí)可行的。
圖9 卡爾曼濾波前后軌跡對(duì)比圖
搭建測(cè)試環(huán)境:在5m×5m的正方形區(qū)域內(nèi)預(yù)先固定好三個(gè)基站的位置,三個(gè)基站分別位于正方形的三個(gè)頂點(diǎn)處,坐標(biāo)為 A0(0,0),A1(5,0),A2(0,5),其中 A0 作為主基站與PC機(jī)相連,如圖10所示。
圖10 測(cè)試環(huán)境
將標(biāo)簽依次放置在表2中所示的標(biāo)簽實(shí)際位置處,對(duì)定位系統(tǒng)進(jìn)行靜態(tài)定位功能測(cè)試,所測(cè)得的結(jié)果如表2所示。
表2 濾波前后定位數(shù)據(jù)對(duì)比
從獲得的數(shù)據(jù)比較中可以看到,不含卡爾曼濾波算法的定位誤差是0.17895m,含卡爾曼濾波算法的定位誤差是0.16875m,這表明了卡爾曼濾波算法確實(shí)能夠提高室內(nèi)定位系統(tǒng)的定位精度,結(jié)果也滿足系統(tǒng)的要求。
室內(nèi)人員佩戴標(biāo)簽(標(biāo)簽不可直接放在地面上,與地面需要有一定距離)站在基站構(gòu)成的直角三角形的范圍內(nèi),進(jìn)行生命狀態(tài)監(jiān)測(cè)即人體溫度和心率的測(cè)量。測(cè)量心率時(shí)將心率傳感器固定在手指上,再通過(guò)上位機(jī)讀取數(shù)據(jù),溫度傳感器是紅外式的,只需要靠近人體皮膚就可以,人體的心率和溫度的實(shí)時(shí)數(shù)據(jù)都會(huì)在上位機(jī)上顯示,數(shù)據(jù)顯示界面如圖11所示。
如圖11所示,左邊是實(shí)時(shí)數(shù)據(jù)的顯示,右邊是溫度和心率的動(dòng)態(tài)曲線圖顯示。當(dāng)檢測(cè)的溫度值和心率值超過(guò)所設(shè)置的閾值時(shí),相應(yīng)的單片機(jī)會(huì)控制報(bào)警裝置發(fā)出警報(bào)。
圖11 生命狀態(tài)監(jiān)測(cè)數(shù)據(jù)顯示界面
為了測(cè)試生命狀態(tài)監(jiān)測(cè)系統(tǒng)的精確性和穩(wěn)定性,選取2名志愿者(志愿者1女性和志愿者2男性),對(duì)兩名志愿者分別進(jìn)行溫度和心率的檢測(cè),并與市面上精度較高的品牌產(chǎn)品測(cè)得的數(shù)據(jù)進(jìn)行對(duì)比,得到誤差,數(shù)據(jù)結(jié)果如表3、表4所示。
表3 溫度數(shù)據(jù)
表4 心率數(shù)據(jù)
測(cè)試結(jié)果表明,該生命狀態(tài)監(jiān)測(cè)系統(tǒng)的溫度測(cè)量精度可以達(dá)到±0.3℃,心率的測(cè)量精度可以達(dá)到±3BPM,滿足系統(tǒng)測(cè)量精度的需求。
該室內(nèi)人員定位及生命狀態(tài)監(jiān)測(cè)系統(tǒng)可以實(shí)現(xiàn)對(duì)室內(nèi)人員位置的精準(zhǔn)定位,經(jīng)過(guò)卡爾曼濾波算法的改進(jìn),使得定位精度在一定程度上有所提高,生命狀態(tài)監(jiān)測(cè)可以實(shí)現(xiàn)對(duì)室內(nèi)人員溫度和心率的實(shí)時(shí)測(cè)量,后續(xù)還可以加入其它表征生命狀態(tài)的監(jiān)測(cè)量。該室內(nèi)人員定位及生命狀態(tài)監(jiān)測(cè)系統(tǒng)應(yīng)用場(chǎng)景廣泛,可以應(yīng)用在辦公樓內(nèi)的辦公人員、養(yǎng)老院的老人、監(jiān)獄里的罪犯以及火場(chǎng)或者地震等災(zāi)害中對(duì)救援人員的監(jiān)測(cè)等,因此具有很高的實(shí)際應(yīng)用價(jià)值。