陳 鵬,廖 明,劉武平,咼 維,宋 楊
(1. 廣州市城市規(guī)劃勘測(cè)設(shè)計(jì)研究院,廣東 廣州 510060; 2. 江西省基礎(chǔ)地理信息中心,江西 南昌 330209; 3. 武漢大學(xué)測(cè)繪遙感信息工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079)
隨著無(wú)線傳感器技術(shù)的日益成熟,基于無(wú)線傳感器技術(shù)的室內(nèi)定位相關(guān)技術(shù)研究快速發(fā)展,目前已有多種無(wú)線技術(shù)手段,包括紅外線、超聲波、藍(lán)牙、射頻識(shí)別、超寬帶、ZigBee和WiFi等[1-2]。其中iBeacon技術(shù)目前已比較成熟,廉價(jià)的iBeacon信標(biāo)設(shè)備的普及[3],使得基于RSSI的定位技術(shù)開(kāi)始廣泛應(yīng)用于商業(yè)場(chǎng)景中,而iBeacon短距傳輸?shù)奶攸c(diǎn)保證了三邊測(cè)量解算也能夠得到較好的定位效果。信標(biāo)的信號(hào)在環(huán)境中傳播時(shí),容易受到多路徑、人體吸收等影響,使得RSSI值不穩(wěn)定[4];雖然較密集部署的iBeacon信標(biāo)一般能保證較好的定位精度,但是RSSI的變化會(huì)引起當(dāng)前定位點(diǎn)的頻繁跳動(dòng),導(dǎo)致定位精度和可用性降低。為減弱環(huán)境帶來(lái)的噪聲影響,提高RSSI的可用性,通常采用各種濾波算法優(yōu)化RSSI,如低通濾波、均值濾波[5]、高斯濾波[6]等。對(duì)RSSI的優(yōu)化能夠有效提高定位精度,減少靜止時(shí)的跳動(dòng)情況;但在運(yùn)動(dòng)過(guò)程中,定位的連續(xù)性仍然較差,效果欠佳。
基于以上研究,可知單純的無(wú)線定位的實(shí)際應(yīng)用效果并不好。短距離密集部署的藍(lán)牙雖能提供較準(zhǔn)確的單點(diǎn)定位結(jié)果,但在實(shí)際動(dòng)態(tài)環(huán)境中缺乏連續(xù)性。動(dòng)態(tài)環(huán)境中實(shí)現(xiàn)高可用的定位效果需要多種技術(shù)結(jié)合,并根據(jù)定位具體實(shí)現(xiàn)平臺(tái),選擇合適的技術(shù)組合。
本文針對(duì)微信平臺(tái),提出一種基于三邊測(cè)量定位、步行者航位推算(pedestrian dead reckoning, PDR)及地圖信息糾偏相結(jié)合的定位方法,并構(gòu)建出一套輕量化、高可用的室內(nèi)定位導(dǎo)航系統(tǒng),在微信平臺(tái)上實(shí)現(xiàn)穩(wěn)定、連續(xù)、高精度定位效果。通過(guò)對(duì)三邊測(cè)量定位、PDR及地圖信息糾偏的相關(guān)方法分別進(jìn)行深入研究,最終確定如圖1所示的高可用的智能融合定位方法:利用PDR來(lái)延續(xù)2個(gè)三邊測(cè)量定位點(diǎn)中間的空白區(qū)域,引入地圖信息糾偏不合理的定位結(jié)果。該方法綜合考慮各方面信息,通過(guò)優(yōu)勢(shì)互補(bǔ)實(shí)現(xiàn)較優(yōu)的定位效果。此外,利用室內(nèi)地圖建模和可視化表達(dá)技術(shù),實(shí)現(xiàn)了完整的室內(nèi)地圖構(gòu)建及地圖數(shù)據(jù)的持久化處理,最終在廣州市不動(dòng)產(chǎn)登記中心將整套系統(tǒng)上線使用,表現(xiàn)出了良好的應(yīng)用效果。
種類眾多的定位算法中,三邊測(cè)量法最為常用,已知3點(diǎn)位置(x1,y1)、(x2,y2)、(x3,y3)及未知點(diǎn)(x0,y0)到3點(diǎn)距離d1、d2、d3。以d1、d2、d3為半徑作3個(gè)圓,根據(jù)畢達(dá)哥拉斯定理,得出交點(diǎn)即為未知點(diǎn)的位置。其中距離獲取是利用設(shè)備掃描到的RSSI值,通過(guò)信號(hào)距離衰減公式得到與各個(gè)信標(biāo)節(jié)點(diǎn)的距離。實(shí)際應(yīng)用中由于RSSI的不穩(wěn)定,往往取3個(gè)以上的信標(biāo),用最小二乘的方法來(lái)減少定位解算的誤差[7]
(1)
雖然最小二乘法能夠提高定位的精度,但信標(biāo)參考節(jié)點(diǎn)的選擇也極大地影響著定位的效果。當(dāng)選取的參考信標(biāo)節(jié)點(diǎn)幾何分布較為混亂時(shí),往往難以獲取較好的定位精度,因而需對(duì)信標(biāo)節(jié)點(diǎn)進(jìn)行優(yōu)選,如選擇一組能構(gòu)成等邊三角形的節(jié)點(diǎn)來(lái)進(jìn)行定位解算[6]。但僅選擇3個(gè)信標(biāo)節(jié)點(diǎn)無(wú)法使用最小二乘求解,會(huì)增大解算時(shí)的誤差。本文考慮在保證最小二乘解算的基礎(chǔ)上,對(duì)參考信標(biāo)節(jié)點(diǎn)進(jìn)行優(yōu)選,即選擇4個(gè)信標(biāo)節(jié)點(diǎn)并判斷是否構(gòu)成結(jié)構(gòu)規(guī)則的四邊形(規(guī)則四邊形結(jié)構(gòu)其2組對(duì)邊節(jié)點(diǎn)的中心位置距離相近)。
行人航位推算(PDR)是一種相對(duì)定位算法,由于移動(dòng)設(shè)備傳感器受到數(shù)據(jù)偏移和噪聲影響,利用傳統(tǒng)積分運(yùn)算導(dǎo)航的方法誤差極大,通常利用計(jì)步器的原理來(lái)實(shí)現(xiàn)行人航位推算。
假設(shè)已知行人的初始位置(x0,y0),利用方位角θ和步長(zhǎng)s,可以計(jì)算出下一步到達(dá)的位置(x1,y1)如式(2),同理可遞推出以后每一步到達(dá)的位置。
(2)
運(yùn)動(dòng)過(guò)程中每檢測(cè)到一步,遞推公式就計(jì)算一次,PDR的精度主要取決于3個(gè)方面:①步伐檢測(cè)精度;②步長(zhǎng);③用戶航向。步態(tài)檢測(cè)中常用的一種算法是波峰檢測(cè)法,該算法實(shí)現(xiàn)簡(jiǎn)單、計(jì)算量小,可做到實(shí)時(shí)檢測(cè)??紤]移動(dòng)設(shè)備運(yùn)動(dòng)狀態(tài)的多樣性,利用單軸加速計(jì)值檢測(cè)不確定性較大,往往采用三軸加速計(jì)的矢量和作為波峰檢測(cè)值[8]。步伐檢測(cè)算法根據(jù)行人的狀態(tài)模式進(jìn)行調(diào)整可達(dá)到最佳效果。用戶航向一般由用戶行走方向和設(shè)備航向同時(shí)構(gòu)成,通常利用整合磁力計(jì)、陀螺儀和加速計(jì)數(shù)據(jù)的姿態(tài)濾波器計(jì)算最終的用戶航向。對(duì)步長(zhǎng)估計(jì),則是利用文獻(xiàn)[9]中的步長(zhǎng)精確估算模型來(lái)實(shí)現(xiàn)。具體的PDR算法流程如圖2所示。
由無(wú)線傳感器定位和慣性導(dǎo)航融合得到的位置一般具有較高定位精度,但仍然存在定位點(diǎn)穿墻等現(xiàn)象,需要利用地圖信息進(jìn)一步糾正。地圖匹配[10]就是將定位解算得到的位置點(diǎn),與地圖網(wǎng)絡(luò)結(jié)構(gòu)信息進(jìn)行匹配,實(shí)現(xiàn)在特殊語(yǔ)義點(diǎn)的糾正,避免與實(shí)際信息不相符的定位點(diǎn)的出現(xiàn),流程如圖3所示。如在拐角處能夠?qū)Χㄎ稽c(diǎn)準(zhǔn)確糾偏,沿路網(wǎng)線運(yùn)動(dòng)時(shí)將點(diǎn)糾偏到路網(wǎng)上,在出現(xiàn)穿墻等情況時(shí)及時(shí)將點(diǎn)糾正回來(lái)。
地圖匹配具體可分為地圖信息格式化和信息匹配2個(gè)過(guò)程。地圖信息格式化是將原始的地圖信息轉(zhuǎn)換成可以用來(lái)進(jìn)行匹配操作的數(shù)據(jù)形式,并按一定的格式存儲(chǔ)到數(shù)據(jù)庫(kù)中。信息匹配則是將定位點(diǎn)與數(shù)據(jù)庫(kù)中存儲(chǔ)的格式化信息進(jìn)行匹配,定位過(guò)程中主要表現(xiàn)為根據(jù)點(diǎn)到點(diǎn)的距離和點(diǎn)到線的距離來(lái)確定是否進(jìn)行糾偏操作。
根據(jù)室內(nèi)環(huán)境中特有的地物信息,通過(guò)概念建模明確哪些實(shí)體概念應(yīng)該在模型中有所體現(xiàn),并能完整且分層分級(jí)描述場(chǎng)景信息,同時(shí)依據(jù)概念模型,設(shè)計(jì)每一種地物相應(yīng)的屬性字段及其之間的關(guān)系,使用矢量數(shù)據(jù)方式對(duì)室內(nèi)地物信息進(jìn)行存儲(chǔ);數(shù)字化后,需要對(duì)用于可視化的地物信息進(jìn)行程序自動(dòng)化處理,對(duì)導(dǎo)航需要的拓?fù)潢P(guān)系進(jìn)行構(gòu)建及自動(dòng)化生成,對(duì)定位場(chǎng)元信息、可視化信息、導(dǎo)航信息、定位信息等進(jìn)行組織與自動(dòng)化構(gòu)建,最終生成完整的室內(nèi)地圖,并持久化存儲(chǔ)。
本文系統(tǒng)以室內(nèi)定位技術(shù)為基礎(chǔ),結(jié)合地圖可視化技術(shù),實(shí)現(xiàn)了室內(nèi)定位的可視化及與定位相關(guān)的功能。室內(nèi)定位系統(tǒng)核心工作流程如圖4所示。首先在定位場(chǎng)所部署傳感器,存儲(chǔ)傳感器信息,利用定位傳感器信息結(jié)合設(shè)備實(shí)時(shí)掃描的信標(biāo)信息,實(shí)現(xiàn)三邊定位解算;三邊定位結(jié)果與PDR利用擴(kuò)展卡爾曼濾波融合,再用地圖信息匹配糾正得到最終的定位結(jié)果;最后結(jié)合地圖可視化技術(shù),將定位結(jié)果在地圖上可視化出來(lái)。該過(guò)程主要包含定位傳感器的部署、擴(kuò)展卡爾曼濾波融合算法的設(shè)計(jì)、地圖可視化和系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)等工作。
不同的傳感器部署方式能實(shí)現(xiàn)不同的定位效果,密集均勻地部署往往能夠達(dá)到最優(yōu)的定位效果[11]。實(shí)際環(huán)境中對(duì)傳感器的部署需要綜合考慮部署成本、實(shí)際物理環(huán)境和定位精度需求等多種因素。本文系統(tǒng)采用易部署的藍(lán)牙信標(biāo)節(jié)點(diǎn),為了保證定位精度,定位場(chǎng)所中藍(lán)牙信標(biāo)部署間隔一般為4~8 m,部署高度一般控制在3 m以內(nèi),大部分樓層可部署在天花板上。信標(biāo)部署要均勻,盡量避開(kāi)遮擋,部署時(shí)不要靠近墻角和障礙物,空曠區(qū)域中采用三角網(wǎng)格狀交錯(cuò)分布覆蓋。
卡爾曼濾波是一種高效的自回歸濾波器[12],它能夠從一系列的完整及包含噪聲的測(cè)量信息中,估計(jì)出動(dòng)態(tài)系統(tǒng)的狀態(tài)。由于卡爾曼濾波只適用于線性領(lǐng)域,文獻(xiàn)[13]提出了擴(kuò)展卡爾曼濾波,首先將非線性系統(tǒng)線性化,然后進(jìn)行卡爾曼濾波,從而將卡爾曼濾波的應(yīng)用擴(kuò)展到非線性領(lǐng)域中。
在本系統(tǒng)中筆者對(duì)RSSI測(cè)量得到的定位結(jié)果與步行者通過(guò)慣性測(cè)量單元獲取的運(yùn)動(dòng)數(shù)據(jù)進(jìn)行擴(kuò)展卡爾曼濾波融合,并利用該方法持續(xù)估計(jì)步行者在各個(gè)時(shí)態(tài)的最佳位置。根據(jù)PDR算法實(shí)現(xiàn)對(duì)系統(tǒng)運(yùn)動(dòng)狀態(tài)的建模,利用步行長(zhǎng)度和方向角度得到相對(duì)于之前位置的二維變化量,系統(tǒng)的時(shí)間更新方程可表示為
(3)
式中,(xk,yk)為走過(guò)k步后的位置;sk和θk分別為第k步的步長(zhǎng)和運(yùn)動(dòng)方向角;Wk為系統(tǒng)過(guò)程噪聲,且認(rèn)為Wk滿足高斯分布。將三邊測(cè)量定位解算的結(jié)果作為位置觀測(cè)量,手機(jī)慣性傳感器獲取數(shù)據(jù)解算得到的方向和步長(zhǎng)作為另外兩個(gè)觀測(cè)值,得到測(cè)量方程可表示為
(4)
式中,(xk,yk)為藍(lán)牙信標(biāo)定位得到的位置;sk為步長(zhǎng)檢測(cè)所得到的第k步的步長(zhǎng);θ為磁航向角傳感器得到的第k步后的朝向角;Vk為觀測(cè)噪聲,同樣認(rèn)為Vk滿足高斯分布。
地圖可視化能將系統(tǒng)的最終效果直觀地展示出來(lái),是空間信息可視化的最主要形式,也是室內(nèi)定位系統(tǒng)的基礎(chǔ)部分。根據(jù)定位場(chǎng)景中包含的地物元素所屬類別及重要程度,按一定等級(jí)標(biāo)準(zhǔn)來(lái)對(duì)各地物進(jìn)行數(shù)字化建模操作,在可視化表達(dá)過(guò)程中按照其等級(jí)確定可視化的優(yōu)先級(jí),以及不同縮放等級(jí)下要素顯示與隱藏等狀態(tài)的變換。
對(duì)要素的符號(hào)表示主要有點(diǎn)符號(hào)、線符號(hào)和面符號(hào)[14]。根據(jù)定位場(chǎng)所中室內(nèi)空間要素層次分類,本文將其分為6類,見(jiàn)表1,針對(duì)每類要素選擇不同的符號(hào)化類別。此外對(duì)于特定建筑物設(shè)施,采用多種符號(hào)組合進(jìn)行描述,直觀展現(xiàn)其特殊功能。如衛(wèi)生間、電梯間、樓梯間及各功能辦公室,均由面符號(hào)和點(diǎn)符號(hào)組合而成,面符號(hào)用來(lái)確定該要素的輪廓范圍,點(diǎn)符號(hào)以圖形形式描述該要素的屬性特征。
表1 室內(nèi)要素類別及對(duì)應(yīng)符號(hào)
本文室內(nèi)定位系統(tǒng)所涉及的數(shù)據(jù)主要包含定位場(chǎng)中傳感器相關(guān)信息(UUID、坐標(biāo)等)和地圖建模后導(dǎo)出的地圖數(shù)據(jù)信息。為了方便數(shù)據(jù)傳輸,數(shù)據(jù)表中按定位場(chǎng)所不同,存儲(chǔ)不同的數(shù)據(jù)信息。數(shù)據(jù)存儲(chǔ)表結(jié)構(gòu)見(jiàn)表2,定位場(chǎng)所有傳感器信息以JSON字符串格式打包,存儲(chǔ)在傳感器信息字段;以同樣方式將地圖信息存儲(chǔ)于地圖信息字段,將與定位場(chǎng)所相關(guān)的其他信息存儲(chǔ)在描述信息的字段。搭建后臺(tái)服務(wù),待前端發(fā)起數(shù)據(jù)請(qǐng)求時(shí),將對(duì)應(yīng)定位場(chǎng)所的相關(guān)數(shù)據(jù)提供給前端。
表2 定位場(chǎng)主要信息表Place表結(jié)構(gòu)
根據(jù)上述系統(tǒng)設(shè)計(jì),以廣州市白云區(qū)房地產(chǎn)登記中心為應(yīng)用場(chǎng)景,開(kāi)發(fā)出了基于微信平臺(tái)的室內(nèi)定位系統(tǒng)。參考室內(nèi)定位系統(tǒng)的總體方案,在場(chǎng)所部署藍(lán)牙信標(biāo),完成室內(nèi)地圖要素的建模及其在2維和2.5維視圖下的地圖可視化,最終實(shí)現(xiàn)了室內(nèi)定位及可視化表達(dá)。此外基于室內(nèi)定位及地圖可視化,還研發(fā)了室內(nèi)導(dǎo)航、全景地圖導(dǎo)覽、視頻導(dǎo)覽及其他相關(guān)的業(yè)務(wù)服務(wù)功能,構(gòu)成一套完整的室內(nèi)定位導(dǎo)航服務(wù)系統(tǒng)。
房地產(chǎn)中心的樓層高度較低,在3 m以內(nèi),信標(biāo)可直接部署在天花板。此外,登記中心區(qū)域空曠,采用三角網(wǎng)格交錯(cuò)部署,部署間隔為5~8 m,具體信標(biāo)分布如圖5所示。區(qū)域內(nèi)共部署藍(lán)牙信標(biāo)節(jié)點(diǎn)85個(gè),并用全站儀測(cè)定了各個(gè)信標(biāo)在定位場(chǎng)所中的實(shí)際位置坐標(biāo),錄入數(shù)據(jù)庫(kù)中。
地圖可視化包括2維和2.5維的視圖效果,不同縮放尺度下的顯示效果,以及室內(nèi)地圖與室外地圖的無(wú)縫疊加顯示。縮小到一定尺度時(shí),能夠看到該場(chǎng)所在地圖中的具體位置,隨著地圖的放大,場(chǎng)所室內(nèi)地圖要素顯示逐步豐富、完善,實(shí)際可視化效果如圖6所示。
如圖7(a)、(b)所示,地圖上的深色圓形圖標(biāo)即代表當(dāng)前定位點(diǎn)的圖標(biāo),當(dāng)在定位場(chǎng)所中打開(kāi)應(yīng)用,定位圖標(biāo)在地圖中的位置對(duì)應(yīng)著用戶當(dāng)前所在的位置,隨著用戶向前移動(dòng),定位算法將實(shí)時(shí)更新位置,定位圖標(biāo)將緊隨人的行進(jìn)在地圖上移動(dòng)。在實(shí)際應(yīng)用中該系統(tǒng)實(shí)現(xiàn)的室內(nèi)定位具有良好的體驗(yàn)效果,未出現(xiàn)定位點(diǎn)的頻繁跳動(dòng),靜止時(shí)平均定位精度能夠達(dá)到1 m以內(nèi),移動(dòng)過(guò)程中的定位精度在1.5 m左右。
如圖7(b)所示,在室內(nèi)地圖上選取一個(gè)目的地,會(huì)彈出“去這里”的選項(xiàng),單擊該選項(xiàng),就能規(guī)劃出從當(dāng)前定位點(diǎn)到目標(biāo)位置的路徑,結(jié)合實(shí)時(shí)定位點(diǎn)的輸出,能夠準(zhǔn)確引導(dǎo)用戶到達(dá)目的地,導(dǎo)航路徑規(guī)劃算法采用Dijkstra算法[15]實(shí)現(xiàn)。此外,全景圖導(dǎo)覽、視頻導(dǎo)覽等功能是室內(nèi)定位系統(tǒng)的擴(kuò)展,單純的室內(nèi)定位導(dǎo)航功能較為單一,為了能帶來(lái)更好的用戶體驗(yàn),切合不動(dòng)產(chǎn)中心實(shí)際業(yè)務(wù)需求,加入其他功能如圖7(c)所示,豐富系統(tǒng)的內(nèi)容。
本文利用三邊測(cè)量定位和PDR融合的方法實(shí)現(xiàn)了在室內(nèi)環(huán)境中連續(xù)穩(wěn)定的定位效果,并設(shè)計(jì)和開(kāi)發(fā)了基于微信平臺(tái)的室內(nèi)定位導(dǎo)航系統(tǒng)。該系統(tǒng)已在廣州市不動(dòng)產(chǎn)中心得以運(yùn)用,作為公眾號(hào)服務(wù)上線。通過(guò)PDR及地圖信息的引入,該系統(tǒng)實(shí)現(xiàn)了準(zhǔn)確定位,能夠幫助用戶確定當(dāng)前位置,結(jié)合導(dǎo)航路線規(guī)劃結(jié)果能夠?qū)崟r(shí)指引用戶沿著正確的路線行進(jìn)。此外基于室內(nèi)定位及可視化的相關(guān)技術(shù),還為系統(tǒng)引入了其他服務(wù)性功能,為用戶帶來(lái)更多的便利。
該系統(tǒng)實(shí)現(xiàn)了室內(nèi)人員的實(shí)時(shí)定位和導(dǎo)航等功能,具有很好的實(shí)用意義。但是融合定位算法需按步解算,以及地圖匹配等算法的引入,都增加了設(shè)備的功耗,若要在大范圍場(chǎng)景中進(jìn)行應(yīng)用,需要對(duì)算法進(jìn)一步優(yōu)化,降低設(shè)備功耗。