趙 航紀新春*陸 一魏東巖袁 洪
(1.中國科學院空天信息創新研究院,北京 100094;2.中國科學院大學,北京 100049)
傳統車載導航通常采用全球導航衛星系統(Global Navigation Satellite System,GNSS)與微機電系統(Micro Electro Mechanical System,MEMS)-捷聯慣性導航系統(Strap-down Inertial Navigation System,SINS)組合的方式實現定位。
但在隧道、地下車庫等環境下,由于多徑效應與非視距的存在,GNSS信號質量會變差,低成本微機電慣性測量單元(MEMS-based Inertial Measurement Unit,MIMU)的漂移誤差會使MIMU-SINS的組合導航性能迅速下降[1-2]。在此情況下,利用地磁匹配[3]定位提供的絕對位置信息可替代GNSS觀測量,對MIMU-SINS的累積誤差進行修正。近年來,智能手機導航已逐漸取代專用導航終端而成為大眾車輛導航的主流方式[4],利用智能手機搭載的MIMU、磁傳感器以及通過藍牙通信獲取的車載診斷系統(On-Board Diagnostic,OBD)中的里程計信息進行融合,可實現低成本的車輛長時間無GNSS的準確定位[5]。
在地磁匹配過程中,地磁測量值與基準庫的匹配計算量較大,并且隨著路段的增加,地磁數據庫的存儲會越來越大,因此地磁匹配需要更大的算力和存儲支撐,而利用手機端資源來進行地磁匹配計算具有很大局限性。基于云計算[6],將地磁匹配算法置于云端服務器上執行,智能手機僅作為數據采集、信息傳輸終端的方案,可解決上述問題,并且能實現多終端用戶的接入,共享地磁匹配定位服務。同時,將地磁數據基準庫存儲在云端,利用云計算資源統一調度的優勢,可在云上對其統一進行管理與更新,同時減少智能手機端定位軟件的部署成本。利用云端服務器的計算資源,地磁匹配可采用更加高效的算法,進一步提高地磁匹配精度。另外還保證了地磁數據庫的安全性,減少了地磁敏感信息泄漏的風險。
針對地磁匹配定位在智能手機、車載平臺上計算資源消耗大,存儲資源占用大的問題,本文研究了多用戶在線接入與云-端實時雙向通信等云定位關鍵技術,搭建了面向多用戶車輛地磁匹配定位的云平臺。經測試,基于云平臺的地磁匹配定位精度上與在智能手機本地進行解算時相當,性能上可保證多用戶同時接入下導航定位服務的實時性與穩定性,具有較強的實用意義和推廣意義。
車輛地磁匹配定位分為離線建庫和在線匹配兩個階段[7],如圖1所示。離線建庫階段,利用地磁異常場的特性與基準導航系統構建路網地磁基準模型,建立地磁基準庫;在線匹配階段,利用磁傳感器對地磁場強進行采集,結合車輛里程計信息完成實測地磁數據里程刻度化,與地磁基準庫匹配得到地磁匹配輸出,進而與慣性解算的結果進行數據融合,得到最終的位置信息。

圖1 車輛地磁匹配定位總體流程圖
由于車輛行駛速度不盡相同,地磁匹配定位兩個階段的磁測量數據無法空間對齊,導致無法利用磁場空間分布特征進行匹配定位。為解決上述問題,需要將地磁測量值由時間序列轉換為空間序列,利用里程刻度實現在線階段實測數據與離線基準庫數據的空間尺度對齊。圖2所示為磁測量值等里程間隔空間轉換過程。

圖2 磁測量值時間序列變換至等里程間隔空間序列
在離線地磁建庫的過程中,高精度基準導航系統以及磁傳感器分別提供空間位置坐標、航向和三軸磁場強度值。基準位置同時用來計算車輛行駛里程,利用里程信息完成地磁特征線性格點的構建,可表示為:

式中:X表示空間坐標,θ為航向,T為時間,M為地磁測量值,(Mk,Xk,θk)map表示第k個地磁基準庫格點。
利用式(1)完成行駛路徑的線性地磁基準庫構建后,通過轉彎檢測、交點檢測和重復路段剔除處理,實現行駛路徑的路段分割。然后,利用起始點位置、航向等信息,對各個路段的連接關系進行判別,得到路段間的關聯矩陣,進而完成路網地磁基準庫的構建,該流程如圖3所示。

圖3 路網地磁基準庫建模流程
為了減少單點匹配可能產生的誤匹配,在車輛行駛里程上取距離為Dw=w·d長度的實測地磁數據與基準庫地磁數據進行滑動窗口匹配。其中,w表示窗口長度,d為里程采樣間隔。匹配過程如圖4所示。

圖4 在線數據匹配示意圖

采用滑動窗口以及零均值相關系數法進行地磁匹配計算量較大,在保證實時性的前提下,需要占用更多的資源。同時,地磁數據庫需要占用一定存儲空間,更新較為繁瑣,僅依賴智能手機不能夠滿足實際推廣使用的需求,基于此,本文研究了一種面向多用戶車輛云端地磁匹配定位技術,可提供公共的地磁匹配定位服務。
為了實現地磁匹配云定位,需要搭建搭載地磁匹配定位算法的云平臺。云平臺基于Python的Flask Web框架構建后端程序,實現定位解算與智能手機的數據通信。智能手機通過Android APP實現對各傳感器數據的采集、與云平臺的通信以及定位結果的顯示。在智能手機上,APP調用手機傳感器獲取地磁、MIMU數據,利用藍牙連接車載OBD接口獲取車輛輪速信息,將上述數據打包并通過互聯網發送到云端。在云平臺上,利用手機發送來的輪速、地磁數據與云端的地磁基準庫進行匹配,得到實時地磁位置輸出,再與MIMU數據進行融合解算,得到最終位置信息,將其返回到智能手機上并進行數據顯示,如圖5所示。

圖5 地磁匹配云定位架構圖
云平臺在接收智能手機的原始定位信息的同時,還需要將定位結果返回,這就需要合適的消息推送方式。WebSocket是HTML5新增的一種全雙工通信協議,客戶端和服務端通過HTTP三次握手建立連接后,服務器會將HTTP協議升級為WebSocket協議,實現持久性的連接,該流程如圖6所示。相比于傳統的HTTP輪詢方式,WebSocket可實現數據的雙向傳輸,客戶端向服務器發起請求,同時服務器也可主動向客戶端推送消息[8],從而實現云-端實時雙向通信。基于WebSocket,智能手機可將地磁匹配定位所需的原始數據發送到云平臺進行解算,同時在解算完成后,云平臺可在第一時間向智能手機推送定位輸出結果,避免了原先采用輪詢所造成的計算負擔和資源消耗,WebSocket的主動式推送可進一步保證地磁匹配定位的實時性。

圖6 WebSocket通信流程
在輸出定位結果之前,地磁匹配算法需要先通過用戶多次發送的定位信息來累積初始數據,然后以滑動窗口的方式進行匹配,因而每個接入用戶需要有單獨的內存空間用于存儲窗口的臨時定位數據。為了保證不同用戶定位服務的獨立性,本文基于多進程(Multiprocessing)技術[9],采用生產者-消費者模型(Producer-Consumer Model)與消息隊列(Message Queue)設計了支持多用戶在線接入的架構[10]。在該架構下,云平臺中的生產者進程負責接收智能手機發送的定位數據并放入消息隊列;消費者進程負責從消息隊列中獲取原始定位數據進行融合解算,再將定位結果發送給智能手機。每個接入的用戶都會創建新的消費者進程用于該用戶數據的處理,同時為每個用戶創建單獨的消息隊列,進而保證不同用戶定位請求的獨立性。消費者進程通過Socket.IO[11]建立與Flask主進程的WebSocket連接,實現進程間通信,并將解算結果與用戶ID一同發送到Flask主進程,進而再將其發送到對應的接入用戶,該過程如圖7所示。

圖7 多用戶通信流程框架圖
為驗證地磁匹配云定位架構的有效性和實用性,本文針對多用戶接入與城市復雜環境定位兩方面的性能進行了測試。實驗由智能手機和云平臺組成的地磁匹配云定位系統來完成,其中智能手機通過4G公網與云平臺實現通信,測試環境如表1所示。

表1 實驗環境
圖8為云平臺多用戶接入地磁匹配定位解算的軌跡顯示,其中標號1、2、3對應路徑分別表示三個用戶的行駛軌跡。

圖8 云平臺多用戶定位軌跡
圖9為智能手機端定位軌跡顯示(虛線部分),智能手機僅作為數據采集與信息傳輸終端,實時發送定位數據到云平臺,并接收返回的定位結果進行顯示。

圖9 手機端定位結果展示
考察在一定規模用戶同時接入的場景下,地磁匹配云定位的實時性和穩定性。由于實驗條件的限制,本研究采用Apache開發的壓力測試工具JMeter來模擬多用戶接入同時定位的情況[12],并利用長度為9 km左右的普通城市道路所采集的原始導航數據來進行實驗。
表2為多用戶在線接入的定位延時的測試結果,這里的定位延時指單用戶單次定位延時的平均值。表中平均/最大用戶定位延時是針對用戶之間定位延時的對比指標。

表2 多用戶在線接入的定位延時 單位:ms
結果表明,多用戶在線接入下不同用戶的定位延時差異較小。同時,隨著用戶接入數量的增加,平均用戶定位延時有所增加,原因在于單臺服務器性能受限,多用戶接入下資源占用較大。若采用多個云服務器節點,利用負載均衡的技術,則在理論上可實現無限多用戶的接入,并且系統性能對于定位延時的影響也會大大降低。
圖10為基于200個用戶接入的條件,單個用戶單次定位的延時大小變化。結果顯示,在4 000次的連續定位請求過程中,測試用戶單次定位延時在一定范圍內波動,單次平均延時為80 ms左右,單次最大延時為96 ms,表明地磁匹配云定位可以滿足用戶定位實時性的要求。

圖10 單用戶定位延時變化曲線
為了測試系統和算法運行的穩定性,在接入用戶為200的條件下,隨機選取5組云平臺定位解算結果與同樣路線下對應的智能手機本地定位解算結果,分別對比兩者與基準定位結果的誤差(RMS),測試數據如表3所示。其中一組定位結果誤差曲線如圖11所示。結果顯示,智能手機解算與服務器解算定位誤差等級相當,RMS在3 m左右,數據上的差異主要是由于智能手機和云平臺地磁匹配解算中滑動窗口的時間點不同,表明地磁匹配云定位程序解算的穩定性和準確性滿足要求。

表3 云平臺與智能手機定位結果誤差RMS對比 單位:m

圖11 云平臺與智能手機定位誤差曲線對比
為了對比在不同城市環境下地磁匹配云定位系統的性能,開展了實際跑車實驗。路線區域如圖12所示,包括普通城市道路、京新高速(高速路)、北五環入口(高架橋)、大屯路隧道(隧道)等典型城市環境,長度約40 km。

圖12 實驗道路區域
定位誤差曲線如圖13所示,結果可看出,地磁匹配云定位在普通城市道路、高速路、隧道、橋梁等環境下的測試誤差相近,RMS在3 m左右,這是由于上述城市環境下地磁特征均較為豐富,可以實現較好的地磁匹配效果。結果表明,地磁匹配定位對城市綜合環境的適應性較強。

圖13 不同城市道路定位誤差曲線對比
針對地磁匹配定位算法計算量大、地磁數據存儲量大以及定位過程實時性高的要求,本文研究了多用戶接入與云-端實時雙向通信的云定位關鍵技術,搭建了一種面向多用戶車輛地磁匹配定位的云平臺,實現了在普通城市道路、高速路、高架橋、隧道等城市環境下實時穩定的多用戶接入車載定位服務。實際道路跑車測試結果顯示車輛定位誤差(RMS)可以保持在3 m左右,能夠實現車輛的連續精準定位。對地磁匹配云定位進行了實驗測試,結果表明其能滿足多用戶接入下實時、連續定位的需求,定位算法能夠保持長時間穩定運行。