趙 航紀(jì)新春*陸 一魏東巖袁 洪
(1.中國(guó)科學(xué)院空天信息創(chuàng)新研究院,北京 100094;2.中國(guó)科學(xué)院大學(xué),北京 100049)
傳統(tǒng)車載導(dǎo)航通常采用全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)與微機(jī)電系統(tǒng)(Micro Electro Mechanical System,MEMS)-捷聯(lián)慣性導(dǎo)航系統(tǒng)(Strap-down Inertial Navigation System,SINS)組合的方式實(shí)現(xiàn)定位。
但在隧道、地下車庫(kù)等環(huán)境下,由于多徑效應(yīng)與非視距的存在,GNSS信號(hào)質(zhì)量會(huì)變差,低成本微機(jī)電慣性測(cè)量單元(MEMS-based Inertial Measurement Unit,MIMU)的漂移誤差會(huì)使MIMU-SINS的組合導(dǎo)航性能迅速下降[1-2]。在此情況下,利用地磁匹配[3]定位提供的絕對(duì)位置信息可替代GNSS觀測(cè)量,對(duì)MIMU-SINS的累積誤差進(jìn)行修正。近年來(lái),智能手機(jī)導(dǎo)航已逐漸取代專用導(dǎo)航終端而成為大眾車輛導(dǎo)航的主流方式[4],利用智能手機(jī)搭載的MIMU、磁傳感器以及通過(guò)藍(lán)牙通信獲取的車載診斷系統(tǒng)(On-Board Diagnostic,OBD)中的里程計(jì)信息進(jìn)行融合,可實(shí)現(xiàn)低成本的車輛長(zhǎng)時(shí)間無(wú)GNSS的準(zhǔn)確定位[5]。
在地磁匹配過(guò)程中,地磁測(cè)量值與基準(zhǔn)庫(kù)的匹配計(jì)算量較大,并且隨著路段的增加,地磁數(shù)據(jù)庫(kù)的存儲(chǔ)會(huì)越來(lái)越大,因此地磁匹配需要更大的算力和存儲(chǔ)支撐,而利用手機(jī)端資源來(lái)進(jìn)行地磁匹配計(jì)算具有很大局限性。基于云計(jì)算[6],將地磁匹配算法置于云端服務(wù)器上執(zhí)行,智能手機(jī)僅作為數(shù)據(jù)采集、信息傳輸終端的方案,可解決上述問(wèn)題,并且能實(shí)現(xiàn)多終端用戶的接入,共享地磁匹配定位服務(wù)。同時(shí),將地磁數(shù)據(jù)基準(zhǔn)庫(kù)存儲(chǔ)在云端,利用云計(jì)算資源統(tǒng)一調(diào)度的優(yōu)勢(shì),可在云上對(duì)其統(tǒng)一進(jìn)行管理與更新,同時(shí)減少智能手機(jī)端定位軟件的部署成本。利用云端服務(wù)器的計(jì)算資源,地磁匹配可采用更加高效的算法,進(jìn)一步提高地磁匹配精度。另外還保證了地磁數(shù)據(jù)庫(kù)的安全性,減少了地磁敏感信息泄漏的風(fēng)險(xiǎn)。
針對(duì)地磁匹配定位在智能手機(jī)、車載平臺(tái)上計(jì)算資源消耗大,存儲(chǔ)資源占用大的問(wèn)題,本文研究了多用戶在線接入與云-端實(shí)時(shí)雙向通信等云定位關(guān)鍵技術(shù),搭建了面向多用戶車輛地磁匹配定位的云平臺(tái)。經(jīng)測(cè)試,基于云平臺(tái)的地磁匹配定位精度上與在智能手機(jī)本地進(jìn)行解算時(shí)相當(dāng),性能上可保證多用戶同時(shí)接入下導(dǎo)航定位服務(wù)的實(shí)時(shí)性與穩(wěn)定性,具有較強(qiáng)的實(shí)用意義和推廣意義。
車輛地磁匹配定位分為離線建庫(kù)和在線匹配兩個(gè)階段[7],如圖1所示。離線建庫(kù)階段,利用地磁異常場(chǎng)的特性與基準(zhǔn)導(dǎo)航系統(tǒng)構(gòu)建路網(wǎng)地磁基準(zhǔn)模型,建立地磁基準(zhǔn)庫(kù);在線匹配階段,利用磁傳感器對(duì)地磁場(chǎng)強(qiáng)進(jìn)行采集,結(jié)合車輛里程計(jì)信息完成實(shí)測(cè)地磁數(shù)據(jù)里程刻度化,與地磁基準(zhǔn)庫(kù)匹配得到地磁匹配輸出,進(jìn)而與慣性解算的結(jié)果進(jìn)行數(shù)據(jù)融合,得到最終的位置信息。
圖1 車輛地磁匹配定位總體流程圖
由于車輛行駛速度不盡相同,地磁匹配定位兩個(gè)階段的磁測(cè)量數(shù)據(jù)無(wú)法空間對(duì)齊,導(dǎo)致無(wú)法利用磁場(chǎng)空間分布特征進(jìn)行匹配定位。為解決上述問(wèn)題,需要將地磁測(cè)量值由時(shí)間序列轉(zhuǎn)換為空間序列,利用里程刻度實(shí)現(xiàn)在線階段實(shí)測(cè)數(shù)據(jù)與離線基準(zhǔn)庫(kù)數(shù)據(jù)的空間尺度對(duì)齊。圖2所示為磁測(cè)量值等里程間隔空間轉(zhuǎn)換過(guò)程。
圖2 磁測(cè)量值時(shí)間序列變換至等里程間隔空間序列
在離線地磁建庫(kù)的過(guò)程中,高精度基準(zhǔn)導(dǎo)航系統(tǒng)以及磁傳感器分別提供空間位置坐標(biāo)、航向和三軸磁場(chǎng)強(qiáng)度值。基準(zhǔn)位置同時(shí)用來(lái)計(jì)算車輛行駛里程,利用里程信息完成地磁特征線性格點(diǎn)的構(gòu)建,可表示為:
式中:X表示空間坐標(biāo),θ為航向,T為時(shí)間,M為地磁測(cè)量值,(Mk,Xk,θk)map表示第k個(gè)地磁基準(zhǔn)庫(kù)格點(diǎn)。
利用式(1)完成行駛路徑的線性地磁基準(zhǔn)庫(kù)構(gòu)建后,通過(guò)轉(zhuǎn)彎?rùn)z測(cè)、交點(diǎn)檢測(cè)和重復(fù)路段剔除處理,實(shí)現(xiàn)行駛路徑的路段分割。然后,利用起始點(diǎn)位置、航向等信息,對(duì)各個(gè)路段的連接關(guān)系進(jìn)行判別,得到路段間的關(guān)聯(lián)矩陣,進(jìn)而完成路網(wǎng)地磁基準(zhǔn)庫(kù)的構(gòu)建,該流程如圖3所示。
圖3 路網(wǎng)地磁基準(zhǔn)庫(kù)建模流程
為了減少單點(diǎn)匹配可能產(chǎn)生的誤匹配,在車輛行駛里程上取距離為Dw=w·d長(zhǎng)度的實(shí)測(cè)地磁數(shù)據(jù)與基準(zhǔn)庫(kù)地磁數(shù)據(jù)進(jìn)行滑動(dòng)窗口匹配。其中,w表示窗口長(zhǎng)度,d為里程采樣間隔。匹配過(guò)程如圖4所示。
圖4 在線數(shù)據(jù)匹配示意圖
采用滑動(dòng)窗口以及零均值相關(guān)系數(shù)法進(jìn)行地磁匹配計(jì)算量較大,在保證實(shí)時(shí)性的前提下,需要占用更多的資源。同時(shí),地磁數(shù)據(jù)庫(kù)需要占用一定存儲(chǔ)空間,更新較為繁瑣,僅依賴智能手機(jī)不能夠滿足實(shí)際推廣使用的需求,基于此,本文研究了一種面向多用戶車輛云端地磁匹配定位技術(shù),可提供公共的地磁匹配定位服務(wù)。
為了實(shí)現(xiàn)地磁匹配云定位,需要搭建搭載地磁匹配定位算法的云平臺(tái)。云平臺(tái)基于Python的Flask Web框架構(gòu)建后端程序,實(shí)現(xiàn)定位解算與智能手機(jī)的數(shù)據(jù)通信。智能手機(jī)通過(guò)Android APP實(shí)現(xiàn)對(duì)各傳感器數(shù)據(jù)的采集、與云平臺(tái)的通信以及定位結(jié)果的顯示。在智能手機(jī)上,APP調(diào)用手機(jī)傳感器獲取地磁、MIMU數(shù)據(jù),利用藍(lán)牙連接車載OBD接口獲取車輛輪速信息,將上述數(shù)據(jù)打包并通過(guò)互聯(lián)網(wǎng)發(fā)送到云端。在云平臺(tái)上,利用手機(jī)發(fā)送來(lái)的輪速、地磁數(shù)據(jù)與云端的地磁基準(zhǔn)庫(kù)進(jìn)行匹配,得到實(shí)時(shí)地磁位置輸出,再與MIMU數(shù)據(jù)進(jìn)行融合解算,得到最終位置信息,將其返回到智能手機(jī)上并進(jìn)行數(shù)據(jù)顯示,如圖5所示。
圖5 地磁匹配云定位架構(gòu)圖
云平臺(tái)在接收智能手機(jī)的原始定位信息的同時(shí),還需要將定位結(jié)果返回,這就需要合適的消息推送方式。WebSocket是HTML5新增的一種全雙工通信協(xié)議,客戶端和服務(wù)端通過(guò)HTTP三次握手建立連接后,服務(wù)器會(huì)將HTTP協(xié)議升級(jí)為WebSocket協(xié)議,實(shí)現(xiàn)持久性的連接,該流程如圖6所示。相比于傳統(tǒng)的HTTP輪詢方式,WebSocket可實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,客戶端向服務(wù)器發(fā)起請(qǐng)求,同時(shí)服務(wù)器也可主動(dòng)向客戶端推送消息[8],從而實(shí)現(xiàn)云-端實(shí)時(shí)雙向通信。基于WebSocket,智能手機(jī)可將地磁匹配定位所需的原始數(shù)據(jù)發(fā)送到云平臺(tái)進(jìn)行解算,同時(shí)在解算完成后,云平臺(tái)可在第一時(shí)間向智能手機(jī)推送定位輸出結(jié)果,避免了原先采用輪詢所造成的計(jì)算負(fù)擔(dān)和資源消耗,WebSocket的主動(dòng)式推送可進(jìn)一步保證地磁匹配定位的實(shí)時(shí)性。
圖6 WebSocket通信流程
在輸出定位結(jié)果之前,地磁匹配算法需要先通過(guò)用戶多次發(fā)送的定位信息來(lái)累積初始數(shù)據(jù),然后以滑動(dòng)窗口的方式進(jìn)行匹配,因而每個(gè)接入用戶需要有單獨(dú)的內(nèi)存空間用于存儲(chǔ)窗口的臨時(shí)定位數(shù)據(jù)。為了保證不同用戶定位服務(wù)的獨(dú)立性,本文基于多進(jìn)程(Multiprocessing)技術(shù)[9],采用生產(chǎn)者-消費(fèi)者模型(Producer-Consumer Model)與消息隊(duì)列(Message Queue)設(shè)計(jì)了支持多用戶在線接入的架構(gòu)[10]。在該架構(gòu)下,云平臺(tái)中的生產(chǎn)者進(jìn)程負(fù)責(zé)接收智能手機(jī)發(fā)送的定位數(shù)據(jù)并放入消息隊(duì)列;消費(fèi)者進(jìn)程負(fù)責(zé)從消息隊(duì)列中獲取原始定位數(shù)據(jù)進(jìn)行融合解算,再將定位結(jié)果發(fā)送給智能手機(jī)。每個(gè)接入的用戶都會(huì)創(chuàng)建新的消費(fèi)者進(jìn)程用于該用戶數(shù)據(jù)的處理,同時(shí)為每個(gè)用戶創(chuàng)建單獨(dú)的消息隊(duì)列,進(jìn)而保證不同用戶定位請(qǐng)求的獨(dú)立性。消費(fèi)者進(jìn)程通過(guò)Socket.IO[11]建立與Flask主進(jìn)程的WebSocket連接,實(shí)現(xiàn)進(jìn)程間通信,并將解算結(jié)果與用戶ID一同發(fā)送到Flask主進(jìn)程,進(jìn)而再將其發(fā)送到對(duì)應(yīng)的接入用戶,該過(guò)程如圖7所示。
圖7 多用戶通信流程框架圖
為驗(yàn)證地磁匹配云定位架構(gòu)的有效性和實(shí)用性,本文針對(duì)多用戶接入與城市復(fù)雜環(huán)境定位兩方面的性能進(jìn)行了測(cè)試。實(shí)驗(yàn)由智能手機(jī)和云平臺(tái)組成的地磁匹配云定位系統(tǒng)來(lái)完成,其中智能手機(jī)通過(guò)4G公網(wǎng)與云平臺(tái)實(shí)現(xiàn)通信,測(cè)試環(huán)境如表1所示。
表1 實(shí)驗(yàn)環(huán)境
圖8為云平臺(tái)多用戶接入地磁匹配定位解算的軌跡顯示,其中標(biāo)號(hào)1、2、3對(duì)應(yīng)路徑分別表示三個(gè)用戶的行駛軌跡。
圖8 云平臺(tái)多用戶定位軌跡
圖9為智能手機(jī)端定位軌跡顯示(虛線部分),智能手機(jī)僅作為數(shù)據(jù)采集與信息傳輸終端,實(shí)時(shí)發(fā)送定位數(shù)據(jù)到云平臺(tái),并接收返回的定位結(jié)果進(jìn)行顯示。
圖9 手機(jī)端定位結(jié)果展示
考察在一定規(guī)模用戶同時(shí)接入的場(chǎng)景下,地磁匹配云定位的實(shí)時(shí)性和穩(wěn)定性。由于實(shí)驗(yàn)條件的限制,本研究采用Apache開(kāi)發(fā)的壓力測(cè)試工具JMeter來(lái)模擬多用戶接入同時(shí)定位的情況[12],并利用長(zhǎng)度為9 km左右的普通城市道路所采集的原始導(dǎo)航數(shù)據(jù)來(lái)進(jìn)行實(shí)驗(yàn)。
表2為多用戶在線接入的定位延時(shí)的測(cè)試結(jié)果,這里的定位延時(shí)指單用戶單次定位延時(shí)的平均值。表中平均/最大用戶定位延時(shí)是針對(duì)用戶之間定位延時(shí)的對(duì)比指標(biāo)。
表2 多用戶在線接入的定位延時(shí) 單位:ms
結(jié)果表明,多用戶在線接入下不同用戶的定位延時(shí)差異較小。同時(shí),隨著用戶接入數(shù)量的增加,平均用戶定位延時(shí)有所增加,原因在于單臺(tái)服務(wù)器性能受限,多用戶接入下資源占用較大。若采用多個(gè)云服務(wù)器節(jié)點(diǎn),利用負(fù)載均衡的技術(shù),則在理論上可實(shí)現(xiàn)無(wú)限多用戶的接入,并且系統(tǒng)性能對(duì)于定位延時(shí)的影響也會(huì)大大降低。
圖10為基于200個(gè)用戶接入的條件,單個(gè)用戶單次定位的延時(shí)大小變化。結(jié)果顯示,在4 000次的連續(xù)定位請(qǐng)求過(guò)程中,測(cè)試用戶單次定位延時(shí)在一定范圍內(nèi)波動(dòng),單次平均延時(shí)為80 ms左右,單次最大延時(shí)為96 ms,表明地磁匹配云定位可以滿足用戶定位實(shí)時(shí)性的要求。
圖10 單用戶定位延時(shí)變化曲線
為了測(cè)試系統(tǒng)和算法運(yùn)行的穩(wěn)定性,在接入用戶為200的條件下,隨機(jī)選取5組云平臺(tái)定位解算結(jié)果與同樣路線下對(duì)應(yīng)的智能手機(jī)本地定位解算結(jié)果,分別對(duì)比兩者與基準(zhǔn)定位結(jié)果的誤差(RMS),測(cè)試數(shù)據(jù)如表3所示。其中一組定位結(jié)果誤差曲線如圖11所示。結(jié)果顯示,智能手機(jī)解算與服務(wù)器解算定位誤差等級(jí)相當(dāng),RMS在3 m左右,數(shù)據(jù)上的差異主要是由于智能手機(jī)和云平臺(tái)地磁匹配解算中滑動(dòng)窗口的時(shí)間點(diǎn)不同,表明地磁匹配云定位程序解算的穩(wěn)定性和準(zhǔn)確性滿足要求。
表3 云平臺(tái)與智能手機(jī)定位結(jié)果誤差RMS對(duì)比 單位:m
圖11 云平臺(tái)與智能手機(jī)定位誤差曲線對(duì)比
為了對(duì)比在不同城市環(huán)境下地磁匹配云定位系統(tǒng)的性能,開(kāi)展了實(shí)際跑車實(shí)驗(yàn)。路線區(qū)域如圖12所示,包括普通城市道路、京新高速(高速路)、北五環(huán)入口(高架橋)、大屯路隧道(隧道)等典型城市環(huán)境,長(zhǎng)度約40 km。
圖12 實(shí)驗(yàn)道路區(qū)域
定位誤差曲線如圖13所示,結(jié)果可看出,地磁匹配云定位在普通城市道路、高速路、隧道、橋梁等環(huán)境下的測(cè)試誤差相近,RMS在3 m左右,這是由于上述城市環(huán)境下地磁特征均較為豐富,可以實(shí)現(xiàn)較好的地磁匹配效果。結(jié)果表明,地磁匹配定位對(duì)城市綜合環(huán)境的適應(yīng)性較強(qiáng)。
圖13 不同城市道路定位誤差曲線對(duì)比
針對(duì)地磁匹配定位算法計(jì)算量大、地磁數(shù)據(jù)存儲(chǔ)量大以及定位過(guò)程實(shí)時(shí)性高的要求,本文研究了多用戶接入與云-端實(shí)時(shí)雙向通信的云定位關(guān)鍵技術(shù),搭建了一種面向多用戶車輛地磁匹配定位的云平臺(tái),實(shí)現(xiàn)了在普通城市道路、高速路、高架橋、隧道等城市環(huán)境下實(shí)時(shí)穩(wěn)定的多用戶接入車載定位服務(wù)。實(shí)際道路跑車測(cè)試結(jié)果顯示車輛定位誤差(RMS)可以保持在3 m左右,能夠?qū)崿F(xiàn)車輛的連續(xù)精準(zhǔn)定位。對(duì)地磁匹配云定位進(jìn)行了實(shí)驗(yàn)測(cè)試,結(jié)果表明其能滿足多用戶接入下實(shí)時(shí)、連續(xù)定位的需求,定位算法能夠保持長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。