楊紅梅,關(guān)滄海,周雅慧
(1. 武漢大學(xué) 圖書(shū)館,武漢 430079;2. 黑龍江第一測(cè)繪工程院,哈爾濱 150025;3. 湖南地騰土地規(guī)劃咨詢有限公司,長(zhǎng)沙 410007)
隨著空間信息技術(shù)、移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展和智能設(shè)備的普及,人們對(duì)于位置服務(wù)的需求越來(lái)越旺盛[1-2],目前全球衛(wèi)星導(dǎo)航系統(tǒng)(global navigation satellite system, GNSS)技術(shù)已經(jīng)廣泛應(yīng)用于各種室外定位場(chǎng)景,但室內(nèi)場(chǎng)景普適定位問(wèn)題還沒(méi)有統(tǒng)一的解決方案。目前主流的室內(nèi)定位技術(shù)主要包括無(wú)線保真(wireless fidelity, WiFi)、藍(lán)牙、超寬帶、偽衛(wèi)星等,其中WiFi 和藍(lán)牙定位技術(shù)具有成本低、普適性高等特點(diǎn),是目前室內(nèi)定位大眾應(yīng)用中較有前景的技術(shù),且這兩種技術(shù)能夠較好地契合當(dāng)前智能設(shè)備的普及狀況,用戶不需要增加任何設(shè)備就能夠?qū)崿F(xiàn)最大規(guī)模人群的室內(nèi)定位,具有廣泛的應(yīng)用場(chǎng)景[2-8]。
當(dāng)前WiFi 和藍(lán)牙定位技術(shù)的應(yīng)用,大多是針對(duì)專門的場(chǎng)景來(lái)研發(fā)的,需要針對(duì)性地部署無(wú)線路由設(shè)備和藍(lán)牙信標(biāo)(beacon),開(kāi)發(fā)專門的定位軟件,一套室內(nèi)定位基礎(chǔ)設(shè)施布設(shè)完畢后,只有專門的定位系統(tǒng)才能夠使用,其軟件接口不具備開(kāi)發(fā)性和可拓展性,在同一定位場(chǎng)景、不同的室內(nèi)應(yīng)用,需要專門開(kāi)發(fā)不同的定位系統(tǒng),極大地增加了建設(shè)成本。針對(duì)上述問(wèn)題,本文提出了一種基于云平臺(tái)的室內(nèi)位置服務(wù)方法,對(duì)現(xiàn)有室內(nèi)定位系統(tǒng)的系統(tǒng)架構(gòu)和服務(wù)模式進(jìn)行了改造,通過(guò)應(yīng)用程序編程接口(application programming interface, API)和軟件開(kāi)發(fā)工具包(software development kit, SDK)接口為用戶提供位置服務(wù)[9],滿足了大量級(jí)、多場(chǎng)景、易接入的室內(nèi)位置服務(wù)需求,為室內(nèi)位置服務(wù)建設(shè)提供了參考。
室內(nèi)位置服務(wù)平臺(tái)使用低耦合、低成本、微服務(wù)的架構(gòu)設(shè)計(jì),將室內(nèi)定位算法與室內(nèi)位置服務(wù)應(yīng)用分離。平臺(tái)用戶使用平臺(tái)提供的指紋采集模塊采集指紋數(shù)據(jù),上傳至解算服務(wù)器,解算服務(wù)器獲取用戶指紋庫(kù)進(jìn)行檢查,通過(guò)后生成定位服務(wù)接口,并將可用的定位服務(wù)接口發(fā)送給業(yè)務(wù)服務(wù)器,用戶調(diào)用業(yè)務(wù)服務(wù)器提供的定位服務(wù)器接口,獲取定位結(jié)果。其架構(gòu)設(shè)計(jì)如圖1 所示。
圖1 移動(dòng)端協(xié)同定位云服務(wù)架構(gòu)設(shè)計(jì)
室內(nèi)定位服務(wù)平臺(tái)的組成主要包括以下三個(gè)部分:
1)指紋采集。用戶按照平臺(tái)說(shuō)明及自身需求,部署WiFi 路由器和藍(lán)牙信標(biāo),使用平臺(tái)提供的指紋采集模塊,采集定位環(huán)境中的指紋信息并上傳至指紋數(shù)據(jù)庫(kù)。
2)定位服務(wù)接口生成。解算服務(wù)器調(diào)用平臺(tái)研發(fā)的藍(lán)牙定位、WiFi 定位和藍(lán)牙協(xié)同定位算法,對(duì)指紋庫(kù)進(jìn)行掃描計(jì)算,生成可用的室內(nèi)定位服務(wù)接口發(fā)送給業(yè)務(wù)服務(wù)器,業(yè)務(wù)服務(wù)器生成API 和SDK 接口,并將相關(guān)參數(shù)發(fā)送給用戶。
3)用戶服務(wù)。用戶調(diào)用API/SDK 接口,將定位區(qū)域搜索到的藍(lán)牙/WiFi 信息發(fā)送給解算服務(wù)器,解算服務(wù)器自動(dòng)匹配最優(yōu)的室內(nèi)定位算法,計(jì)算出結(jié)果后發(fā)送給用戶終端,用戶終端利用計(jì)算的結(jié)果來(lái)構(gòu)建各種場(chǎng)景的室內(nèi)定位應(yīng)用服務(wù)。
從平臺(tái)的架構(gòu)可以看到,移動(dòng)端協(xié)同定位云服務(wù)用戶只需要專注于自身應(yīng)用系統(tǒng)的研發(fā),而不需要研究專門的定位服務(wù)算法,就能構(gòu)建室內(nèi)定位服務(wù),能夠滿足多場(chǎng)景、快速構(gòu)建室內(nèi)定位應(yīng)用的需要,降低了室內(nèi)定位專業(yè)技術(shù)門檻。業(yè)務(wù)服務(wù)器直接面向用戶提供定位服務(wù)器,通過(guò)采用云服務(wù)器的方式實(shí)現(xiàn)高并發(fā)訪問(wèn)情況下快速擴(kuò)容,滿足大量級(jí)終端位置服務(wù)需求。
本文中室內(nèi)位置服務(wù)平臺(tái)的室內(nèi)定位原理為:基于接收信號(hào)強(qiáng)度的指紋匹配,首先將室內(nèi)定位場(chǎng)景區(qū)域劃按照一點(diǎn)的間隔劃分格網(wǎng),在格網(wǎng)點(diǎn)使用平臺(tái)提供的指紋采集模塊,采集各個(gè)格網(wǎng)點(diǎn)的信號(hào)指紋,組成信號(hào)指紋庫(kù)。定位時(shí),通過(guò)接口提交掃描得到的信號(hào)指紋,通過(guò)指紋匹配算法得到定位結(jié)果[10],其原理如圖2 所示。室內(nèi)位置服務(wù)平臺(tái)實(shí)現(xiàn)的指紋匹配算法包括最近鄰近法(nearest neighbor algorithm, NN)、K鄰近算法(K-nearest neighbor algorithm, KNN)和加權(quán)K鄰近算法(weighted K-nearest neighbor algorithm, WKNN)。最近鄰近法是搜索指紋庫(kù)中與定位點(diǎn)歐幾里德距離最小的格網(wǎng)點(diǎn)為定位結(jié)果。KNN 算法選取多個(gè)歐幾里德距離較小的格網(wǎng)點(diǎn)的平均值作為定位結(jié)果,其計(jì)算公式為
圖2 WiFi/藍(lán)牙定位原理
式中:K為鄰近各網(wǎng)點(diǎn)的數(shù)量;(x,y)為定位結(jié)果;(xi,yi)為鄰近格網(wǎng)點(diǎn)的位置。
WKNN 算法通過(guò)匹配得到的多個(gè)鄰近格網(wǎng)點(diǎn),進(jìn)行加權(quán)后得到定位結(jié)果,其計(jì)算公式為
式中:di為定位點(diǎn)與指紋格網(wǎng)點(diǎn)的歐幾里得距離;η為加權(quán)系數(shù);ε為一個(gè)較小的正數(shù),避免分母出現(xiàn)零值。
室內(nèi)往往是人流量較為密集的定位場(chǎng)景,同一定位場(chǎng)景內(nèi)可能會(huì)存在多個(gè)用戶。利用這一特性,可以利用定位用戶群進(jìn)行協(xié)同定位,提升定位的可靠性和精度[11],其原理如圖3 所示。協(xié)同定位時(shí),首先將協(xié)同觀測(cè)指紋定位結(jié)果作為觀測(cè)值,將手機(jī)互掃的藍(lán)牙信號(hào)強(qiáng)度量成距離,作為協(xié)同觀測(cè)值引入,建立誤差方程(3),進(jìn)行秩虧自由網(wǎng)平差[12],其計(jì)算方法為
圖3 協(xié)同定位原理
根據(jù)誤差方程(3),組成法方程為
式中:A為系數(shù)矩陣;l為協(xié)同觀測(cè)向量;P為單位權(quán)陣。
由式(4)計(jì)算坐標(biāo)坐標(biāo)改正數(shù)向量xδ為
從式(3)至式(5)中可以得到,協(xié)同定位的關(guān)鍵就是確定手機(jī)之間的協(xié)同觀測(cè)量,本文使用藍(lán)牙接收信號(hào)強(qiáng)度指示(received signal strength indicator, RSSI)值來(lái)量化信號(hào)傳播距離。
平臺(tái)通過(guò)API/SDK 接口為用戶提供定位服務(wù),其上傳的指紋庫(kù)和定位信息必須按照一定的標(biāo)準(zhǔn)上傳到服務(wù)器,服務(wù)器解析后返回定位結(jié)果給用戶。標(biāo)準(zhǔn)化接口中最重要的部分是指紋數(shù)據(jù)采集模塊和定位請(qǐng)求接口,指紋采集模塊的工作流程如圖4 所示。
圖4 指紋采集模塊工作流程
打開(kāi)指紋采集模塊,模塊會(huì)首先檢查與服務(wù)器之間的網(wǎng)絡(luò)連接,然后操作人員按照模塊提示,開(kāi)始掃描格網(wǎng)中的WiFi 和beacon 藍(lán)牙信號(hào),模塊首先會(huì)確認(rèn)藍(lán)牙和無(wú)線局域網(wǎng)絡(luò)(wireless local area networks, WLAN)是否開(kāi)啟,然后獲取藍(lán)牙和WiFi 信息,并將數(shù)據(jù)存入緩存,待數(shù)據(jù)全部采集完畢后,上傳所采集的指紋庫(kù),服務(wù)器存儲(chǔ)并檢查指紋庫(kù),檢查完畢后,在平臺(tái)將生成定位的接口地址。
用戶定位時(shí),通過(guò)API/SDK 接口提交請(qǐng)求,用戶上傳賈瓦·斯克里普特(JavaScript)數(shù)據(jù)交換格式(JavaScript object notation, JSON)的定位請(qǐng)求數(shù)據(jù),其提交的JSON 格式數(shù)據(jù)如表1 所示。
表1 提交數(shù)據(jù)說(shuō)明
為了對(duì)服務(wù)平臺(tái)進(jìn)行驗(yàn)證,本文選取武漢大學(xué)圖書(shū)館室內(nèi)定位場(chǎng)景,按照5 m 的間隔布設(shè)了藍(lán)牙beacon 設(shè)備。由于圖書(shū)館中已有無(wú)線路由器設(shè)備,能夠滿足定位要求,因此沒(méi)有單獨(dú)布設(shè)無(wú)線路由器設(shè)備。坐標(biāo)系統(tǒng)采用獨(dú)立坐標(biāo)系統(tǒng),根據(jù)測(cè)試場(chǎng)景,選擇場(chǎng)景中的一個(gè)角為坐標(biāo)遠(yuǎn)點(diǎn),并對(duì)定位場(chǎng)景劃分了格網(wǎng),確定了定位場(chǎng)景中各個(gè)格網(wǎng)的坐標(biāo)值。其中圖5 為beacon 設(shè)備的放置位置,圖6 為測(cè)試環(huán)境。
圖5 測(cè)試用的beacon 設(shè)備安裝位置
圖6 定位服務(wù)平臺(tái)測(cè)試環(huán)境
指紋庫(kù)采集使用平臺(tái)提供的指紋采集模塊,按照2 m 的間隔劃定測(cè)試區(qū)域的格網(wǎng),采集各個(gè)格網(wǎng)點(diǎn)的WiFi/藍(lán)牙信號(hào)強(qiáng)度,采集完畢后,上傳到指紋數(shù)據(jù)庫(kù)。解算服務(wù)器掃描指紋庫(kù),并生成服務(wù)端口及端口密碼以郵件形式發(fā)送給用戶,用戶調(diào)用API/SDK 端口就能夠進(jìn)行室內(nèi)定位。
定位測(cè)試時(shí)使用4 臺(tái)手機(jī)終端,同時(shí)進(jìn)行了定位測(cè)試,分別使用了NN 方法、NN 協(xié)同定位方法,WKNN 方法和WKNN 協(xié)同定位方法分別進(jìn)行了100 次的定位測(cè)試,其定位精度如圖7 所示,其中,使用協(xié)同定位方法能夠提高室內(nèi)定位10%左右的精度,并且WKNN 方法的精度要高于NN方法。
圖7 不同定位算法的精度統(tǒng)計(jì)
圖8 為4 種定位結(jié)果的誤差分布情況,從圖8可以看到WKNN 協(xié)同定位的精度最高,其中80%的達(dá)4 m 左右,常規(guī)WKNN 定位方法的精度,其90%在5 m 以內(nèi),因此,平臺(tái)完全能夠滿足大型室內(nèi)定位場(chǎng)景下的常規(guī)定位需求。
圖8 不同定位方式誤差累積分布對(duì)比
隨著日益增長(zhǎng)的室內(nèi)位置服務(wù)需求,室內(nèi)定位技術(shù)研究已經(jīng)成為了近年來(lái)的熱點(diǎn)。本文提出了基于云服務(wù)的室內(nèi)定位服務(wù)公共服務(wù)平臺(tái)建設(shè)方法,利用WiFi/藍(lán)牙指紋定位技術(shù),實(shí)現(xiàn)了能夠滿足一般場(chǎng)景下的基礎(chǔ)室內(nèi)定位服務(wù),平臺(tái)能夠?yàn)楦黝愋褪覂?nèi)定位場(chǎng)景提供快速、穩(wěn)定的服務(wù)。云平臺(tái)的建設(shè),實(shí)現(xiàn)室內(nèi)定位基礎(chǔ)設(shè)施和室內(nèi)定位服務(wù)的分離,避免了重復(fù)建設(shè),可為大型公共區(qū)域室內(nèi)定位場(chǎng)景建設(shè)提供了參考。