,, ,,
(1.蘇州科技大學(xué) 江蘇省建筑智慧節(jié)能重點(diǎn)實驗室,江蘇 蘇州 215009;2.蘇州市移動網(wǎng)絡(luò)技術(shù)與應(yīng)用重點(diǎn)實驗室,江蘇 蘇州 215009; 3.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009)
隨著微波通信和互聯(lián)網(wǎng)技術(shù)的不斷普及,人們對定位服務(wù)的要求越來越高,已經(jīng)不僅僅滿足于室外全球定位系統(tǒng)了。如今業(yè)已完善的全球定位系統(tǒng)已經(jīng)在作戰(zhàn)偵查[1]、軌道運(yùn)輸[2]、農(nóng)業(yè)灌溉[3]和工程項目[4]等領(lǐng)域獲得了廣泛的應(yīng)用,但是GPS也有其技術(shù)劣勢,GPS在環(huán)境較為狹小復(fù)雜的地域,定位精度并不穩(wěn)定的[5],無法完全實現(xiàn)室內(nèi)環(huán)境的精確定位。
人們對室內(nèi)定位的呼聲越來越高,但是基于GPS定位的技術(shù)又無法滿足這以需求,對此,學(xué)術(shù)各界都提出了一些取代方案,總結(jié)下來有這樣幾種:使用Wi-Fi、超寬帶、ZigBee和iBeacon來實現(xiàn)室內(nèi)定位。在這些方案中,Wi-Fi定位可以說是應(yīng)用最為廣泛的了,很多現(xiàn)代建筑都已經(jīng)開始使用Wi-Fi基站實現(xiàn)初步的室內(nèi)定位系統(tǒng),并且,大多數(shù)的移動平臺都支持使用Wi-Fi技術(shù),這就帶來了將移動App作為客戶端的解決方案。盡管Wi-Fi定位具有很多技術(shù)優(yōu)勢,但是其存在的問題也是致命的。使用Wi-Fi的消耗較高,并且其信號本身容易受到外界無線干擾,且Wi-Fi定位存在較大的定位盲區(qū)[6]。超寬帶定位雖然能克服以上大部分的缺點(diǎn),但其有線連接的方式已經(jīng)注定其無法被應(yīng)用于移動App[7];ZigBee可以說是最好的替代技術(shù),但是其成本過高,想要推廣使用很有難度。
對此,設(shè)計決定使用低功耗藍(lán)牙技術(shù)iBeacon來設(shè)計方便快捷的室內(nèi)導(dǎo)航系統(tǒng)。iBeacon是蘋果公司推出的一款先進(jìn)的定位技術(shù),其信號質(zhì)量高,且基站小巧便捷又十分低耗環(huán)保[8],加之主流的移動平臺都已支持iBeacon的開發(fā),使得iBeacon開發(fā)已經(jīng)成為改善室內(nèi)定位系統(tǒng)的焦點(diǎn)[9-10]。此外,iBeacon還可被用于區(qū)分遠(yuǎn)近的概念,iPhone可以直接通過接收的信號自動得出與目標(biāo)物體的遠(yuǎn)近程度,可分為3個檔次,即遠(yuǎn)(far)、中(medium)、近(near),從而使得iBeacon在目前基于位置的服務(wù)中的表現(xiàn)要遠(yuǎn)遠(yuǎn)好于GPS+WiFi的組合,這也使得iBeancon+藍(lán)牙的組合在室內(nèi)導(dǎo)航的方面有了較大的發(fā)展前景。
系統(tǒng)使用三邊定位算法,從所有基站信號強(qiáng)度rssi中,使用:
R=exp((-54.0 -rssi)/10.0)
(1)
計算手機(jī)到對應(yīng)發(fā)射基站的距離R,選取信號強(qiáng)度最大的3處或3處以上的基站到手機(jī)的距離Ri,列出如下方程組:
(2)
由式(1)可得到當(dāng)前用戶所在位置坐標(biāo)D(x,y)。
但是,室內(nèi)環(huán)境有諸多變數(shù),很難出現(xiàn)完美的三圓交點(diǎn)。針對這種情況,設(shè)計使用最小二乘法來解決這個問題:
(3)
之后對公式(3)進(jìn)行化簡,可得到:
AX=b
(4)
X即需要求的未知點(diǎn)坐標(biāo)。各參數(shù)計算如下:
(5)
(6)
可以通過方程(7)求得定位坐標(biāo)X:
X=(ATA)-1ATb
(7)
圖1為系統(tǒng)的流程圖,如圖所示,室內(nèi)導(dǎo)航系統(tǒng)主要分為如下三部分:1)基于iBeacon基站的定位硬件系統(tǒng);2)基于iOS平臺的室內(nèi)及室外定位導(dǎo)航服務(wù)系統(tǒng);3)基于前后端交互技術(shù)支持的地圖管理系統(tǒng)及用戶系統(tǒng)(編輯用戶資料及管理用戶的車輛)。
圖1 系統(tǒng)流程圖
2.1.1 系統(tǒng)操作
用戶點(diǎn)擊打開App后,首先需完善個人信息,具體而言,需要填寫用戶名、密碼、選擇頭像和手機(jī)號等,點(diǎn)擊獲取驗證碼后提交便可完成注冊。使用注冊填寫的手機(jī)號和密碼進(jìn)行登錄,進(jìn)入用戶界面。如圖2所示,在主界面中,用戶可選擇添加管理車輛,填寫車牌及相關(guān)信息,一個用戶可以用多個車牌,點(diǎn)擊表格可以查看和刪除當(dāng)前車輛。同時,點(diǎn)擊編輯按鈕就可以修改自己的用戶信息了。進(jìn)入停車場選擇界面,用戶可以選擇直接預(yù)訂指定停車場的車位,也可以點(diǎn)擊導(dǎo)航按鈕直接進(jìn)入地圖界面。圖3為室外導(dǎo)航界面以及到達(dá)目的地后室內(nèi)導(dǎo)航的信息預(yù)覽界面。若用戶已選擇車位便會自動加載室外導(dǎo)航;若沒有,可以在地圖上選擇自己想去的停車位,點(diǎn)擊相應(yīng)大頭針進(jìn)行導(dǎo)航。在用戶達(dá)到目標(biāo)停車場后,系統(tǒng)將根據(jù)GPS定位自動加載該停車場的地圖。
圖2 用戶及停車場管理界面
圖3 室外及是室內(nèi)導(dǎo)航信息預(yù)覽界面
2.1.2 地圖選擇
圖4所示為室內(nèi)定位的流程圖,地圖的選取是整個流程中重要的一環(huán)。鑒于系統(tǒng)提供定位導(dǎo)航服務(wù)的停車場較多,并且將不斷補(bǔ)足,系統(tǒng)將所有停車場的地圖存儲在云端,以減小手機(jī)客戶端的存儲壓力,使得App看起來不臃腫。手機(jī)使用GPS獲取用戶位置并選取200米之內(nèi)距離用戶最近的停車場,使用URL向服務(wù)器發(fā)送請求加載該停車場的地圖,用戶只要打開室內(nèi)導(dǎo)航界面時就能看到該地圖了。
圖4 定位流程圖
2.1.3 室內(nèi)定位
應(yīng)用需要獲得用戶的藍(lán)牙功能授權(quán),才能調(diào)用手機(jī)的藍(lán)牙接收周圍基站發(fā)出的廣播信號,通過應(yīng)用數(shù)據(jù)層處理之后得到用戶的實際坐標(biāo),并將坐標(biāo)在地圖上顯示出來。當(dāng)用戶在前臺界面選擇了目的地并點(diǎn)擊“開始導(dǎo)航”后,地圖上會顯示出規(guī)劃的路徑,隨后會有語音提示信息,引導(dǎo)用戶前往相應(yīng)的停車場位,找到自己的車輛。
2.1.4 導(dǎo)航分析
室內(nèi)定位是精確室內(nèi)導(dǎo)航的基礎(chǔ),用戶在停車場管理系統(tǒng)中選擇目的地后,應(yīng)用根據(jù)目的地和用戶當(dāng)前位置的關(guān)系,分析可通行區(qū)域并設(shè)計OPEN表(記錄帶擴(kuò)展的點(diǎn)),然后運(yùn)用A*算法:
F(n) =g(n) +h(n)
(8)
進(jìn)行最短路徑規(guī)劃,并通過JavaScript將這條路徑繪制在地圖中,之后會有語音提示輔助導(dǎo)航。
基站使用以CC2541芯片為核心的藍(lán)牙模塊DX-BT05-A,該模塊支持藍(lán)牙4.0,該模塊相比于其他擁有32位核心ARMCPU的藍(lán)牙模塊,具有價格低廉、簡單易用的優(yōu)勢。模塊使用UART接口,可以直接通過AT指令設(shè)置藍(lán)牙模塊廣播信號的參數(shù)。
圖5給出了手機(jī)如何通過解析該基站廣播的數(shù)據(jù)包,提取出信號強(qiáng)度RSSI并交付數(shù)據(jù)處理層處理獲得基站與手機(jī)的距離的過程。然后系統(tǒng)通過一系列公式獲取當(dāng)前用戶的定位坐標(biāo),隨后應(yīng)用將坐標(biāo)交付給程序的表現(xiàn)層并將坐標(biāo)解析、繪制在地圖中。
圖5 硬件系統(tǒng)流程圖
從運(yùn)行平臺上分,軟件系統(tǒng)主要包括兩個平臺:前端使用iOS開發(fā)技術(shù)以及網(wǎng)頁形式的后臺管理系統(tǒng),后端使用Web服務(wù)器結(jié)合數(shù)據(jù)庫的數(shù)據(jù)管理方式,圖6為功能模塊軟件前后端的職能劃分。前端主要包括以下幾個功能點(diǎn),地圖選擇、基站數(shù)據(jù)解析與定位以及室內(nèi)導(dǎo)航。Web服務(wù)器提供地圖的調(diào)度功能,做到地圖的靈活切換,避免本地文件過多影響性能。
圖6 軟件框圖
圖7所示為算法的測試環(huán)境,其中真實環(huán)境為教學(xué)樓的地底停車場,停車場用圍障和立柱隔成一個個車位。在圖7的矢量圖中主要存在橘紅色的車位以及黃色的道路,黑色的邊線為圍障。
圖7 場景展示圖
在導(dǎo)航系統(tǒng)中,基站大多數(shù)依賴電池供電。表1所示為系統(tǒng)使用的藍(lán)牙模塊基站參數(shù),基站可以使用5號電池供電,該電池理論上最大容量可以達(dá)到2700 mAH,若使用3節(jié),且不計模塊的信號發(fā)射功率,則電池最大容量理論上可以持續(xù)供電12150小時,考慮到實際情況,電池一般可以使用半年左右,符合應(yīng)用需求。
表1 基站參物有所數(shù)表
通過抓取的數(shù)據(jù)包,可以分析其中應(yīng)該含有哪些信息。
服務(wù)器使用CentOS系統(tǒng),在系統(tǒng)中安裝Tomcat作為Web服務(wù)器的容器,并使用 JavaEE完成所有服務(wù)搭建工作,由Tomcat處理網(wǎng)絡(luò)請求。在收到前端對地圖資源的請求后,相應(yīng)服務(wù)會先在數(shù)據(jù)庫中搜索相應(yīng)資源,然后將資源轉(zhuǎn)換為JSON返回給前端,如果沒有查找到資源,則返回查找失敗。
3.3.1 基站性能測試
之前算法分析中提到距離與藍(lán)牙基站信號強(qiáng)度的關(guān)系,但是真實環(huán)境下仍然會有變數(shù),需要采集數(shù)據(jù)繪制真實關(guān)系的圖表。圖8是在室內(nèi)測得的RSSI與距離的關(guān)系,通過該曲線,可以大致獲得A、n的估計值。由圖可知當(dāng)手機(jī)與藍(lán)牙模塊的距離在3米以內(nèi)時,RSSI的值隨著距離的變化幅度是比較明顯的,同時手機(jī)的定位也會更加精確。
圖8 RSSI與距離關(guān)系
通過測量獲得的關(guān)系式與實測數(shù)據(jù),可以分析靜態(tài)定位誤差,表2給出了實際距離與藍(lán)牙實測數(shù)據(jù)、測試距離、定位誤差之間的關(guān)系。結(jié)合圖表可知,在3 m之內(nèi)系統(tǒng)測量的距離是比較準(zhǔn)確的,而在3 m之后系統(tǒng)誤差將超過2 m在距離基站4 m之內(nèi),誤差率不超出25%,在超過5 m之后誤差就達(dá)到66%,超過50%誤差率將極大影響定位精度的。出現(xiàn)如此大的誤差,原因在于信號具有波動性,在同一位置上可以測量到信號強(qiáng)度在一個范圍內(nèi)波動,會帶給測量數(shù)據(jù)的不可靠性,但是將測量數(shù)據(jù)結(jié)合圖8的曲線變化變化規(guī)律可得,系統(tǒng)在3 m以內(nèi)的測量精度較高,并且在2 m左右的精度為最高。
表2 誤差分析表
考慮到定位時間對測算距離的影響,為了增加定位準(zhǔn)確度,測試采用在同一固定位置多次測量獲取數(shù)學(xué)平均值的方法重新測量了數(shù)據(jù)。圖9為在距離基站1.5 m處測試20 s獲得一段定位結(jié)果,并帶有誤差率隨著時間變化的曲線。由圖可知,在最初的4 s內(nèi)定位誤差超過了35%,但隨著時間推移,信號強(qiáng)度趨于穩(wěn)定,距離測量的誤差率也保持在15%左右。由測試結(jié)果可知,如果要提高測量精度,可以在定位算法中加入一定延遲,以規(guī)避在最初的4 s內(nèi)定位的失準(zhǔn)問題。
圖9 單一基站定位折線圖
此外,人體的阻擋也會帶來信號強(qiáng)度的不穩(wěn)定性。表3表明測量的信號強(qiáng)度與未遮擋時信號強(qiáng)度的對比??梢园l(fā)現(xiàn),信號強(qiáng)度在同一距離上比視距傳播多衰減到11 dB,并且平均下來將多衰減9 dB。如果用被遮擋時測得的數(shù)據(jù)進(jìn)行定位,圖10表明人體的遮擋會降低信號的強(qiáng)度,并且會影響曲線的走向,擾亂2~3 m之間的信號強(qiáng)度變化,造成測算距離有很大損失,可能影響定位精度。并且這個影響伴隨整個距離波段,造成定位點(diǎn)的閃動問題。
表3 人體遮擋定位結(jié)果
在實際應(yīng)用中,由于定位算法會使用多個基站的信號,而基站分布范圍較為廣泛,所以基站被人體完全遮擋的概率極小,通過軟件方法構(gòu)建濾波器,可盡量減少人體遮擋影響,可保證大多數(shù)基站數(shù)據(jù)的正常獲取,因此人體阻礙導(dǎo)致的定位誤差可以忽略。
圖10 在有無遮擋下信號的變化曲線
3.3.2 系統(tǒng)性能測試
系統(tǒng)需要驗證是否已經(jīng)實現(xiàn)了室內(nèi)定位導(dǎo)航的功能,對此需要對應(yīng)用進(jìn)行實地應(yīng)用測試。系統(tǒng)需要確保使用定位和優(yōu)化算法計算得出的定位接近實際位置,這樣才能保證之后的導(dǎo)航運(yùn)算不會發(fā)生較大的偏差。圖11展示了剛開始5 s時的定位誤差??梢钥闯龆ㄎ痪日`差在系統(tǒng)啟動之時產(chǎn)生了峰值,但隨著更多基站的信號強(qiáng)度被接收和加入運(yùn)算,定位誤差迅速減小并趨于平穩(wěn)。
圖11 5秒之內(nèi)的定位誤差
在室內(nèi)導(dǎo)航中,用戶將根據(jù)系統(tǒng)的導(dǎo)航結(jié)果移動,這時就要保證用戶移動狀態(tài)的定位精度。圖12展示了120 s持續(xù)定位的定位效果,剛開始誤差確實隨著移動而出現(xiàn)波動,但隨著移動狀態(tài)的固定,誤差也隨著平穩(wěn)下來。數(shù)據(jù)顯示平均誤差為1.65 m,由于信號強(qiáng)度始終在發(fā)生變化,且其本身具有跳躍的不穩(wěn)定性,所以定位精度也會在一段時間中受其影響而產(chǎn)生巨大的波動。
圖12 120秒內(nèi)的導(dǎo)航誤差
通過對基站和系統(tǒng)的綜合測試,發(fā)現(xiàn)距離基站在3 m之,定位精度相對較高,誤差曲線較為平穩(wěn),在系統(tǒng)綜合測試中,系統(tǒng)能在開啟定位后3 s內(nèi)逐步定位穩(wěn)定,最終經(jīng)過持續(xù)120 s的定位實驗,系統(tǒng)最大定位誤差不超過3 m,平均誤差為1.66 m,導(dǎo)航時有84.7%的概率誤差處于1.5 m左右,15.3%的概率誤差處于5 m之下。