何燕凱,劉太君**,葉焱,王寅秋,楊東旭
(1.寧波大學(xué)未來無線研究院,浙江 寧波 315211;2.浙江旅游職業(yè)學(xué)院,浙江 杭州 311231)
計算機(jī)和互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展使全球信息化產(chǎn)業(yè)步入物聯(lián)網(wǎng)時代,定位技術(shù)是物聯(lián)網(wǎng)技術(shù)中極其重要的組成部分,具有重要的現(xiàn)實意義和實用價值[1-4]。
隨著人們對室內(nèi)定位技術(shù)的關(guān)注與研究,出現(xiàn)了很多室內(nèi)定位技術(shù),常用的有紅外線定位、藍(lán)牙定位、Wi-Fi定位、超寬帶定位等技術(shù)[5]。超寬帶(Ultra Wide Band,UWB)技術(shù)是一種無載波通信技術(shù),利用納秒至微秒級的非正弦波窄脈沖傳輸數(shù)據(jù)[6],與傳統(tǒng)的室內(nèi)定位技術(shù)相比,具有功耗低,安全性高,多徑分辨能力強(qiáng)等優(yōu)點[7],該技術(shù)被應(yīng)用到無線定位系統(tǒng)中時,其在定位精度上有著其他定位技術(shù)無法比擬的優(yōu)勢,成為目前短距離無線定位的可靠選擇[8]。
本文基于UWB 實現(xiàn)了一套室內(nèi)定位系統(tǒng)。該系統(tǒng)采用基站標(biāo)簽一體化的硬件板,其中硬件板由DecaWave公司的DW1000 芯片設(shè)計制作完成;基于node.js 搭建了服務(wù)器,使用js 搭建了web 界面;定位算法模塊由c++編譯完成。服務(wù)器作為一個溝通“橋梁”建立起了標(biāo)簽與web 界面之間的通信,連接了定位算法模塊與web 界面之間的數(shù)據(jù)通信??紤]到基站與標(biāo)簽時鐘同步的難度與信號實際傳輸?shù)挠绊?,本文采用雙邊雙向測距方法來測量標(biāo)簽到基站的距離,采用雙曲線模型對測得的距離進(jìn)行解析。最終,設(shè)計出了一套高精度、高實時性、操作簡單的室內(nèi)定位系統(tǒng)。
超寬帶室內(nèi)定位平臺主要由位置已知的基站、攜帶方便的標(biāo)簽和軟件系統(tǒng)三部分組成,系統(tǒng)整體框圖如圖1所示。其中基站與標(biāo)簽采用硬件一體化設(shè)計的方式,可通過軟件系統(tǒng)對其進(jìn)行角色配置。軟件系統(tǒng)由服務(wù)器、可視化界面和定位算法模塊構(gòu)成。
圖1 系統(tǒng)整體框架
系統(tǒng)工作前,先配置基站和標(biāo)簽的角色,并實地勘測基站的位置信息。系統(tǒng)工作時,定位標(biāo)簽接收基站節(jié)點的數(shù)據(jù)幀,并讀取基站的時間戳信號和獨(dú)有的ID,然后打包發(fā)送給定位軟件系統(tǒng)。定位軟件系統(tǒng)調(diào)用定位算法對數(shù)據(jù)進(jìn)行處理解算得到相應(yīng)的坐標(biāo)值,然后在標(biāo)簽顯示界面進(jìn)行實時顯示。
本文將定位平臺架構(gòu)分為四層,分別為:
(1)定位業(yè)務(wù)層。給使用者提供可視化界面,其中包括基站控制、地圖加載和位置顯示等。
(2)定位功能層。負(fù)責(zé)基站標(biāo)簽的數(shù)據(jù)采集,并將數(shù)據(jù)傳給服務(wù)器,經(jīng)過定位算法解析后,再傳輸給可視化界面進(jìn)行實時顯示。
(3)傳輸層。利用ZigBee 通信技術(shù)進(jìn)行定位標(biāo)簽和服務(wù)器之間的通信。
(4)終端層。其包括基站標(biāo)簽一體化硬件板和數(shù)據(jù)通信硬件模塊。
本文設(shè)計的定位平臺,可以根據(jù)坐標(biāo)信息已知的定位基站,實現(xiàn)對移動標(biāo)簽的位置求解,并且傳輸?shù)娇梢暬缑孢M(jìn)行實時展示。主要系統(tǒng)功能如下:
(1)網(wǎng)絡(luò)通信。UWB 定位系統(tǒng)可組成小型局域網(wǎng)絡(luò),如基站和標(biāo)簽之間的通信。該網(wǎng)絡(luò)與服務(wù)器之間通過ZigBee 進(jìn)行通信,不但可以接收來自軟件系統(tǒng)的指令消息,而且會將數(shù)據(jù)信息和狀態(tài)信息實時上傳到后臺服務(wù)器。
(2)坐標(biāo)求解。本文使用雙曲線模型定位算法對標(biāo)簽進(jìn)行坐標(biāo)求解,然后在定位軟件上實時顯示。
(3)可視化界面。系統(tǒng)的易用性和交互性也是定位平臺的關(guān)鍵問題,因此本文設(shè)計了人機(jī)間的交互式接口,使用者可以方便地使用該室內(nèi)定位平臺。
本文的定位系統(tǒng)硬件采用基站和標(biāo)簽一體化的硬件板,并設(shè)計了接口可以通過定位軟件系統(tǒng)進(jìn)行角色設(shè)置。其中硬件板由電源管理模塊、UWB 無線收發(fā)模塊和核心控制模塊組成。圖2 為硬件實物圖:
圖2 硬件實物圖
采用DW1000 作為UWB 無線收發(fā)模塊的收發(fā)芯片,以單片機(jī)STM32 作為核心控制器。單片機(jī)通過串口連接無線收發(fā)芯片,進(jìn)而對其進(jìn)行控制和數(shù)據(jù)的采集與傳輸。電源模塊則為整個硬件板提供穩(wěn)定的電源支持。
本文設(shè)計的定位系統(tǒng)由硬件模塊完成距離估計,而精準(zhǔn)的距離估算是實現(xiàn)高精度室內(nèi)定位系統(tǒng)的前提。因此,本文結(jié)合UWB 室內(nèi)定位技術(shù)的特點,采用基于信號飛行時間(TOF)的距離估算方法。
TOF 測距方法的實現(xiàn)方式為雙邊雙向測距(Double-Sided Two-Way Ranging,DS-TWR),即定位基站與標(biāo)簽之間需要進(jìn)行多次輪詢及響應(yīng)通信,實現(xiàn)過程如圖3 所示:
圖3 TOF實現(xiàn)過程
圖3 中,Tpolling為設(shè)備A 從發(fā)送輪詢信號給設(shè)備B到接收到來自設(shè)備B 的響應(yīng)信號的時間,Tanswer為設(shè)備B 接收到設(shè)備A 發(fā)出的輪詢信號到發(fā)出響應(yīng)信號給設(shè)備A 的時間,Tflight為信號的傳輸時間,其可用公式(1)來表示:
本文采用到達(dá)時間差(TDOA)定位算法的模型進(jìn)行定位解析。假設(shè)有3 個位置已知的基站,那么定位軟件會接收到3 個由標(biāo)簽發(fā)送過來的距離信息,并且可以通過唯一ID 進(jìn)行區(qū)分。具體定位算法解析模型如圖4 所示:
圖4 定位算法解析模型
其中,定位基站為BS1、BS2和BS3,標(biāo)簽離各基站的距離分別為d1、d2和d3。標(biāo)簽到BS1和BS2之間的距離差為d21=d1-d2,根據(jù)雙曲線的數(shù)學(xué)模型,以BS1和BS2為焦點,以d21為焦距在平面坐標(biāo)系做雙曲線。同理,以BS1和BS3為焦點,以d31為焦距做第二條雙曲線,那么標(biāo)簽即為兩條雙曲線的交點。根據(jù)上述可列出式(2)如下:
其中,(x0,y0)為標(biāo)簽的坐標(biāo),(xi,yi)(i=1,2,3)為各基站的坐標(biāo)。本文采用chan 算法對方程組進(jìn)行求解,它是非遞歸雙曲線方程組解法。該算法的主要特點為在測量誤差服從理想高斯分布時,其定位精度高、計算量小,并且可以通過增加基站數(shù)量來提高算法精度。最終可以解得標(biāo)簽的坐標(biāo)如式(3)和(4)所示:
其中,
其中,xi和yi為測量已知,di由硬件模塊測量得到,因此可以根據(jù)公式(3)求解得出移動標(biāo)簽的位置。
本文設(shè)計的定位軟件系統(tǒng)由服務(wù)器、客戶端控制顯示部分以及定位算法模塊三個子模塊組成??蛻舳丝梢园l(fā)送命令傳給服務(wù)器對基站進(jìn)行控制,服務(wù)器將接收的標(biāo)簽位置數(shù)據(jù)發(fā)送給算法模塊,經(jīng)過算法解析后將標(biāo)簽的位置信息再傳給服務(wù)器,然后服務(wù)器將標(biāo)簽的位置傳給客戶端進(jìn)行實時顯示。
軟件平臺中的服務(wù)器是由node.js 編寫實現(xiàn)的。node.js 是建立在Chrome V8 上的運(yùn)行平臺,它用于構(gòu)建快速、可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序。node.js 的三個主要特點為:異步非阻塞的I/O 模型、事件驅(qū)動和單線程[9]。node.js 的特性和架構(gòu)使得跨分布式設(shè)備的數(shù)據(jù)密集型實時應(yīng)用更加輕量、高效和完美。在高并發(fā)請求的情況下,異步非阻塞的node.js 構(gòu)建的服務(wù)器比同步阻塞的PHP 等構(gòu)建的應(yīng)用程序響應(yīng)時間更短、吞吐率更高[10]。
服務(wù)軟件框架中調(diào)用了node.js 中的內(nèi)置模塊實現(xiàn)與界面和算法模塊之間的通信,主要用到的是http 模塊和ffi 模塊。
http 模塊是本平臺的核心模塊,其中封裝了一個http服務(wù)器和一個簡易的http 客戶端。http.server()用于創(chuàng)建一個http 服務(wù)器,而http.request()和http.get()可以使客戶端向http 服務(wù)器發(fā)起請求,同時服務(wù)器也可以監(jiān)聽客戶端事件。
ffi 模塊是本平臺另一個重要的模塊,可用于調(diào)用動態(tài)鏈接庫??紤]到實時性的重要性,且相較于其他的編程語言,c++的解算速度是最快的,因此本文的定位算法由c++編譯實現(xiàn)。ffi 模塊實現(xiàn)了服務(wù)器與定位算法模塊之間的通信,保證了整個定位平臺的實時性。
本文可視化界面的表現(xiàn)形式是web 應(yīng)用,其具有成本低、跨平臺、無需安裝、易于更新等優(yōu)點。整體web應(yīng)用由HTML5、css3 和js 編譯完成。對于位置信息的前后端通信,本文采用的是html5 的一種新的幀協(xié)議websocket,其實現(xiàn)的功能如下:
(1)基本收發(fā)?;臼瞻l(fā)界面分為三個模塊分別為基礎(chǔ)配置、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送?;A(chǔ)配置用于選擇與通信模塊相匹配的端口和波特率;數(shù)據(jù)接收用于顯示服務(wù)器從標(biāo)簽接收到的關(guān)于位置信息的數(shù)據(jù);數(shù)據(jù)發(fā)送用于控制配置基站,可以從這個模塊對基站發(fā)送指令。
(2)基站監(jiān)控。該界面主要用于監(jiān)控基站是否處于正常運(yùn)行狀態(tài)。
(3)標(biāo)簽顯示。標(biāo)簽顯示界面主要分為兩個模塊分別為數(shù)據(jù)顯示模塊和電子地圖模塊。數(shù)據(jù)顯示模塊是用于顯示基站和標(biāo)簽的位置;電子地圖模塊則用于地圖導(dǎo)入,可以在地圖上實時地顯示標(biāo)簽位置。
測試環(huán)境選擇了1 080 cm×1 470 cm 的實驗室,在實驗室的四個角落各自擺上一個基站,如圖5 所示:
圖5 測試環(huán)境
其中,基站1 到基站4 的坐標(biāo)分別設(shè)置為(240,80)、(1 040,160)、(80,1 440)、(960,1 040),以上坐標(biāo)單位均為厘米。實驗室中存在大量儀器,對UWB 的信號存在一定干擾,且基站與標(biāo)簽處于非視距情況下,環(huán)境較為復(fù)雜。軟件平臺的運(yùn)行環(huán)境為64 位的windows 10,瀏覽器為IE。
(1)基本收發(fā)界面
給基站和標(biāo)簽供電后,在界面配置相應(yīng)的端口號和比特率,可以接收來自標(biāo)簽傳輸過來的距離信息,如圖6所示:
圖6 基本收發(fā)運(yùn)行界面
(2)基站監(jiān)控界面
基站監(jiān)控界面的整體布局如圖7 所示:
圖7 基站監(jiān)控界面
(3)標(biāo)簽顯示界面
標(biāo)簽界面如圖8 所示,其中地圖由本地導(dǎo)入,需要按照一定的比例尺對圖片進(jìn)行像素更改。當(dāng)標(biāo)簽開始運(yùn)動時,可在地圖上實時繪制其軌跡,如圖8 所示。其中黃色為標(biāo)簽的實際運(yùn)動軌跡,粉色為標(biāo)簽的定位軌跡。
圖8 標(biāo)簽軌跡圖
(4)測試數(shù)據(jù)分析
本文采用均方根誤差(Root Mean Squared Error,RMSE)作為定位精度的衡量標(biāo)準(zhǔn)。在二維平面下,RMSE 的計算方法如公式(12)所示:
其中,(x,y)為標(biāo)簽的實際位置,(x',y')為定位算法解析的位置坐標(biāo)。本文對定點進(jìn)行了上千次測試,并抽取部分?jǐn)?shù)據(jù)進(jìn)行分析,分析結(jié)果如圖9 所示:
圖9 測試誤差
圖9 中的橫坐標(biāo)表示本次抽取數(shù)據(jù)的組數(shù),縱坐標(biāo)為抽取數(shù)據(jù)的測試誤差,測試誤差單位為厘米。如圖9所示,x 軸和y 軸的定位誤差均在10 cm 左右。圖8 所示的地圖中的小方格代表20 cm,那么如圖8 所示,標(biāo)簽運(yùn)動軌跡的繪制誤差在20 cm 左右。
本文設(shè)計了一套基于UWB 的室內(nèi)定位系統(tǒng)。系統(tǒng)由基站標(biāo)簽一體化的硬件板與軟件系統(tǒng)組成,其中軟件系統(tǒng)包括服務(wù)器模塊、定位算法模塊和可視化界面模塊。服務(wù)器模塊連接了硬件板與可視化界面之間的數(shù)據(jù)通信,同時完成了定位算法模塊和可視化界面之間的數(shù)據(jù)傳輸。實驗結(jié)果表明,本文設(shè)計的定位系統(tǒng)運(yùn)行穩(wěn)定,web 界面的各項功能正常工作且實時性良好。通過實驗數(shù)據(jù)分析可知,該系統(tǒng)具有較高的定位精度,靜點的定位精度在10 cm 左右,動點的定位精度在20 cm 左右。