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