楊會,朱磊,徐焱
(宿遷學院 信息工程學院,江蘇宿遷,223800)
超寬帶技術(Ultra-wideband,UWB)是近年來發展起來的無線電技術,它不同于傳統通信中需要使用載波,而是使用納秒級的非正弦波窄脈沖傳輸數據,信號具有GHz量級的帶寬。一方面超寬帶利用脈沖波的良好抗多徑效應和精確測距特性,可以實現高精度、高可靠性的超寬帶室內定位,另一方面由于超大帶寬,超寬帶通信的傳輸速率非常快,可以實時傳輸室內人員生命狀態信息,因此將通信與測距融合在一起,設計實現了基于UWB的室內人員定位及生命狀態監測系統,該系統定位精度高、集成度高、應用面廣。
室內人員定位及生命狀態監測系統主要用來對室內人員進行實時高精度定位以及生命狀態的監測。實現UWB無線定位需要一個固定于室內人員身上的標簽節點(定位標簽)以及四個固定安裝于周圍環境中錨節點(定位基站)。定位標簽除了配有與基站進行數據交互的測距模塊,還配有對生命狀態進行監測的測試模塊;定位基站分為主基站和從基站,主基站配有與上位機通信的藍牙模塊。該系統包含有1個主基站、3個從基站及若干標簽,系統原理框圖如圖1所示。
如圖1所示,該系統的定位功能是利用雙邊雙向測距的方法實現標簽與各個基站距離的測量:首先標簽向各個基站發送定位命令,各基站接收后返回響應命令,標簽再次接收后發送最終命令,各基站再次接收后利用消息中的時間戳計算出飛行時間,并最終將各自飛行時間發送給主機站,主基站在接收到三個從基站時間數據后使用藍牙將數據傳回上位機,經過上位機解算得到位置信息。

圖1 系統原理框圖
該系統實現生命狀態監測功能在于標簽將所測得的生命狀態的數據放在最終命令里隨著測距的時間戳信息一起傳輸,并最后傳送至上位機進行顯示,這使得在完成定位的同時也完成了相關數據的傳輸,實現了定位通信二合一,提高了系統的集成度。生命狀態的監測主要是對室內人員體溫、心率等的測量及顯示功能。
1.2.1 標簽模塊設計
標簽模塊電路設計如圖2所示,該電路由STM32控制模塊、電源模塊、UWB模塊及生命狀態監測模塊四部分組成。

圖2 標簽模塊
其中STM32控制模塊負責整個電路的數據采集和存儲、控制數據的發送和接收,電源模塊是用來為電路中各個模塊實現供電管理。UWB模塊中采用Decawave公司針對UWB信號設計的DW1000信號收發器,DW1000芯片可以準確記錄UWB信號的到達時間,時間精度達到15.6ps,可以滿足厘米級的定位要求。生命狀態監測模塊包括心率傳感器測試模塊和溫度傳感器測試模塊,心率傳感器采用PulseSensor光電反射式傳感器,溫度傳感器采用GY-906紅外測溫傳感器。
1.2.2 基站模塊設計
基站模塊電路設計如圖3所示,由STM32控制模塊、電源模塊、UWB模塊以及藍牙模塊四部分組成,其中主基站配有藍牙模塊,從基站沒有。

圖3 基站模塊
基站模塊中的STM32控制模塊、電源模塊、UWB模塊的功能與標簽模塊相同,藍牙模塊的功能是使得主基站在得到標簽和各基站距離數據以及生命狀態數據后,可以高效快捷地將數據上傳至上位機進行位置解算,而不需要在基站處增加數據線,方便了基站的安放。
1.3.1 定位系統軟件設計
在對比了基于到達時間(TOA,Time of Arrival)、基于到達時間差(TDOA,Time Difference of Arrival)、基于到達信號角度(AOA,Angle of Arrival)、基于接收信號強度指示(RSSI,Received Signal Strength Indication)、基于雙向測距(TWR,Two-way Ranging)的定位方法以后,采用了雙邊雙向測距(DS-TWR,Double-side Two-way Ranging)的方法作為定位系統的底層測距方案。其測距原理如圖4所示。

圖4 雙邊雙向測距原理圖
在四消息的基礎上,采用三消息方式,也就是省去Device B發送的時間戳,設備 A收到數據之后,立刻返回數據,最后得到四個時間差:Tround1、Treply1、Tround2、Treply2。具體通信測距過程如下:設備A發送測距指令,設備B響應,我們將設備A命名為設計所需要的標簽,而設備B就是基站,標簽發送測距信息,并記錄發送時間TX,等待基站接收?;臼盏綔y距指令,發送測距信息至標簽,并記錄接收時間RX,標簽接收到響應信息RX后,向基站發送final指令,基站收到final,表示測距結束。整個過程最后可以用如下公式計算:

根據以上原理,軟件設計流程如圖5所示。

圖5 軟件設計流程圖
在圖5中,首先初始化MCU和DW1000,讀取工作角色開始測距,確定是不是測距目標,如果不是,將返回MCU外設,重新配置,判斷此時是不是測距目標,如果不是則等待接收測距信息,如果是,則標簽發送請求定位信息給基站,基站收到信息并發送report信息,標簽收到response信息再發送final信息,以此獲得三個時間戳,一標簽多基站之間采用輪詢的方式,最后匯總到主基站,在流程圖的下半段中左半邊是標簽,右半邊是基站,進行數據的傳輸和接收,最后匯總并計算位置信息。
該定位系統基于上述雙邊雙向測距的方法實現了標簽和各個基站距離的測量,之后利用數學的方法對標簽位置進行解算。以二維平面為例,以若干已知位置的基站為圓心,以標簽與基站間測距值為半徑作圓,各個圓的交點即是標簽的位置,其具體工作原理如圖6所示。

圖6 定位工作原理圖
在圖6中,基站A、B、C測得與標簽的距離分別為d1、d2、d3,令標簽的坐標為(x,y),基站的位置坐標為(xi,yi),根據圓的幾何意義,可以列出方程組(2):

方程組(2)中,各基站的坐標(xi,yi)是已知的,即定位前需測量、設置好基站的位置?;镜綐撕灥木嚯xdi可根據雙邊雙向測距模型完成測距,測出每個基站到標簽的飛行時間Ti,UWB的傳播速率為光速,將飛行時間Ti乘以傳播速率就可得到基站到標簽的距離di。于是,方程組(2)中就只有(x,y)未知,通過求解該方程組,可以得到標簽坐標(x,y),完成定位。按上述方法,每三個基站可組成一組定位基站,可以確定一個標簽坐標。
1.3.2 生命狀態監測系統軟件設計
室內人員體溫的測量采用非接觸式的GY-906紅外測溫傳感器,該傳感器的測溫流程如圖7所示。開啟開關電源后,首先對溫度傳感器進行初始化,之后檢測是否有按鍵輸入,如果有則輸入體溫的閾值,開始對室內人員進行體溫測量,測量的體溫數據一方面通過UWB通信發送給主機站進而上傳至上位機進行溫度顯示,另一方面與設置的體溫閾值進行比較,若超過閾值則進行體溫監測報警。

圖7 溫度監測流程圖
室內人員心率的測量采用PulseSensor光電反射式傳感器,該傳感器的測量過程與溫度傳感器的測量過程類似。開啟開關電源后,首先對心率傳感器進行初始化,之后檢測是否有按鍵輸入,如果有則輸入心率的閾值,開始對室內人員進行心率測量,測量的心率數據一方面通過UWB通信發送給主機站進而上傳至上位機進行心率顯示,另一方面與設置的心率閾值進行比較,若超過閾值則進行心率監測報警。
系統的底層測距方案采用了雙邊雙向測距方法進行定位,該定位方法抑制了由于時鐘偏差而產生的測距誤差,但是在復雜的室內環境中有很多因素影響室內定位的精確度,如非視距誤差、天線延遲、定位延遲等等。為了提高定位精度,對比了Fang算法、Chan算法、泰勒級數展開法(Taylor)、卡爾曼濾波這幾種算法,由于卡爾曼濾波算法在解決多址路徑,非視距誤差等問題有顯著成效,最終確定選取卡爾曼濾波算法對原解算法進行改進。
卡爾曼濾波算法是一種系統性的狀態估計法,很多情況都對測量數據有高度精確需求,這是得出狀態最優成果的前提。它具有計算量小、容易實現和適應性強等特點,廣泛應用在工程中??蓪⑵鋭澐譃閮蓚€步驟:1)預測,將前時刻數據信息作為參考,需要考慮到每個時刻的計算精度;2)更新,在前面已經計算出的估計結果,可將精度進一步提升。具體流程函數關系為:
預測:

更新:

公式(3)屬于狀態預測,根據上一時刻的狀態來對當前時刻的狀態進行預測,還要加上外界環境對系統的作用。公式(4)屬于誤差矩陣預測,實施預測操作時除了有不確定預測噪聲增加Q,還要再考慮原有的不確定性。公式(5)計算是kalman增益計算,預測結果的不確定性P和觀測結果的不確定性R,計算卡爾曼增益(權重)。公式(6)屬于狀態校正,以加權平均方式處理預測、觀測等結果,所得結果是當前時刻狀態估計。輸出結果表示kalman濾波最終結果,公式(7)代表誤差矩陣更新。式中各變量的含義如表1所示:

表1 各變量說明
為了驗證卡爾曼濾波算法對該系統定位精度的提高,采用matlab對卡爾曼濾波算法進行了仿真,選取定位系統采集回來的100組真實的數據,分別計算未加入卡爾曼濾波算法的誤差與加入了卡爾曼濾波算法的誤差并進行比較,如圖8所示。另外將標簽真實位置、未加入卡爾曼濾波算法解算出來的位置以及加入卡爾曼濾波算法再進行解算之后的位置數據進行比較,如圖9所示。

圖8 卡爾曼濾波前后誤差分析對比圖
從圖8中可以看到,卡爾曼濾波之前定位有很大的誤差,但通過加入卡爾曼濾波算法后,可以在圖中看到濾波前的誤差起伏幅度比較大,而濾波后的起伏幅度變小了。從圖9中我們也可以看出在濾波前的定位軌跡是有點分散的,而在濾波后的定位軌跡是集中的,而且濾波后的軌跡更接近于真實的軌跡。因此,經過卡爾曼濾波算法仿真的數據更加平穩,數據線條更加平滑,卡爾曼濾波算法確實可以彌補原測距算法所出現的不足,采用卡爾曼濾波算法對原測距算法進行改進是切實可行的。

圖9 卡爾曼濾波前后軌跡對比圖
搭建測試環境:在5m×5m的正方形區域內預先固定好三個基站的位置,三個基站分別位于正方形的三個頂點處,坐標為 A0(0,0),A1(5,0),A2(0,5),其中 A0 作為主基站與PC機相連,如圖10所示。

圖10 測試環境
將標簽依次放置在表2中所示的標簽實際位置處,對定位系統進行靜態定位功能測試,所測得的結果如表2所示。

表2 濾波前后定位數據對比
從獲得的數據比較中可以看到,不含卡爾曼濾波算法的定位誤差是0.17895m,含卡爾曼濾波算法的定位誤差是0.16875m,這表明了卡爾曼濾波算法確實能夠提高室內定位系統的定位精度,結果也滿足系統的要求。
室內人員佩戴標簽(標簽不可直接放在地面上,與地面需要有一定距離)站在基站構成的直角三角形的范圍內,進行生命狀態監測即人體溫度和心率的測量。測量心率時將心率傳感器固定在手指上,再通過上位機讀取數據,溫度傳感器是紅外式的,只需要靠近人體皮膚就可以,人體的心率和溫度的實時數據都會在上位機上顯示,數據顯示界面如圖11所示。
如圖11所示,左邊是實時數據的顯示,右邊是溫度和心率的動態曲線圖顯示。當檢測的溫度值和心率值超過所設置的閾值時,相應的單片機會控制報警裝置發出警報。

圖11 生命狀態監測數據顯示界面
為了測試生命狀態監測系統的精確性和穩定性,選取2名志愿者(志愿者1女性和志愿者2男性),對兩名志愿者分別進行溫度和心率的檢測,并與市面上精度較高的品牌產品測得的數據進行對比,得到誤差,數據結果如表3、表4所示。

表3 溫度數據

表4 心率數據
測試結果表明,該生命狀態監測系統的溫度測量精度可以達到±0.3℃,心率的測量精度可以達到±3BPM,滿足系統測量精度的需求。
該室內人員定位及生命狀態監測系統可以實現對室內人員位置的精準定位,經過卡爾曼濾波算法的改進,使得定位精度在一定程度上有所提高,生命狀態監測可以實現對室內人員溫度和心率的實時測量,后續還可以加入其它表征生命狀態的監測量。該室內人員定位及生命狀態監測系統應用場景廣泛,可以應用在辦公樓內的辦公人員、養老院的老人、監獄里的罪犯以及火場或者地震等災害中對救援人員的監測等,因此具有很高的實際應用價值。