導航中GPS位置與地圖匹配、道路匹配算法
文章轉自:http://blog.csdn.net/viewcode/article/details/7918721
0. 地圖匹配的必要性
1. 位置地圖匹配需要哪些 因素
2. 位置與地圖匹配的算法
3. 位置與地圖匹配的精度概率等分析
0. 必要性
GPS的Position只是一個數據,還需要與Map的Match,即由GPS座標轉換爲地圖座標。不僅要找到地圖上位置,還要找出地圖上哪些道路與此位置最爲接近,利用地圖中結構化的模型(如道路,交點等)進行描述當前的位置。
GPS在與其他傳感器數據融合,及經過卡曼濾波校正後,仍有有一定的誤差,至少其卡曼濾波校正後其系統誤差仍有 10-50m,一個好的匹配算法 能 依據GPS和其他傳感器信息,結合地圖中的結構信息(如道路),有95%的概率將真實誤差縮小到5m內(不同的引擎,這個指標可能不同,需要根據實際情況進行考證)。
1. 因素
當前的車輛或GPS位置的狀態,在道路上行駛,停車,貨運(gps可用,傳感器不應該使用),離開道路,不確定狀態。
GPS位置信息、速度、角速度信息、曲率半徑(數據來源?)
獲取地圖的數據接口,(地圖數據)
2. 算法步驟
從地圖來看:
如無結構化數據,就無法在地圖中描述GPS位置的相對座標;
若當前區域只有一個或多個結構化數據,那麼需要計算當前的位置在地圖中一個或多種匹配的可能。 對於每種可能的匹配,都基本需要以下步驟:
a. 計算當前gps位置,利用前一狀態和速度,偏轉速度信息,進行估計計算。普通的線性運算。
b.計算當前方向,利用前一狀態和傳感器(角速度),進行估計計算。普通的線性運算。
c. 計算匹配的可能的位置,採用逐步匹配的方式
載入地圖數據,獲取結構化的道路信息pathId,計算長度和其包含的座標點
在一定範圍內篩選一個或多個路段作爲候選匹配道路。
計算候選的道路的位置和結構,利用道路長度和到道路終點距離計算當前位置offset,計算當前位置與起始點的方向、坡度、上下平坦程度。offset地圖供應商會提供計算的接口。這個需要依據不同的狀態,採用不同的算法,如停車、貨運(拖車)、道路行駛,需用不同的數據。
計算估計的地圖位置和方向(道路的offset和dir),以及其與GPS融合數據的真實位置距離和方向差。
計算各個候選道路的 屬性類型,即將地圖中道路的屬性轉換爲 導航引擎的類型。更新道路匹配的狀態。
d. 計算各個位置匹配的質量,分析 (非常重要)
這個要依據道路的場景分別進行計算。首先計算偏差:
GPS位置與道路的距離差
GPS方向與道路的方向差
各種道路場景,不同的場景,偏差在匹配中的權重也不同
* 環島
距離差的比重比較大。即方向較準確,而距離較不準
道路與車輛的距離差*2、方向差.
如果是入口,行駛區域,match的程度減半,非機動區域匹配程度增加
出口:一般的計算方式,當時行駛區域,偏差程度翻倍,行駛區域減半
一般的計算方式: 偏差角度+距離*2 (+ lackmeter)
* 蛇形蜿蜒的
距離偏差的重要程度大大下降,然後加上方向偏差即可
* 重要隧道
當候選道路多於一個時,採用普通計算方式
只有一個時,蛇形計算方式
* 離開道路
無匹配
* 正常的
一般的計算方式
道路開始段:同下
道路結束段:距離,角度的偏差,不過要乘以係數,而且十字路口,且未來轉角<90度時,角度偏差減半
* U型道
距離差*2
當toEnd爲負數時,偏差加大。若offset爲負數,同樣加大偏差。
匹配程度計算:
根據偏差數據,可以計算匹配程度。一般情況下,兩者呈線性關係(負數)。
e. 啓發式進行計算
主要是計算坡度,里程與匹配程度的關係。
f. 計算匹配的模式
更新匹配的模型,由先前道路的場景,加上計算的匹配值,確定是否將匹配模式設置爲sure 或unsure或不變,更進一步確認匹配的程度。
g. 排序
將以上所有可能的匹配,進行快速排序法,排序的依據是(匹配質量)
3. 匹配誤差的量化計算?
影響因素:
地形/道路形狀。 道路形狀越複雜,或多條道路組成的複雜路況,都會大大降低 匹配的程度。
當前GPS、sensor數據與道路結構化數據的距離、方向差
當前GPS位置的狀態是否穩定
而關於匹配誤差的實際值(如距離差,方向差),是無法確認給出的。
就是上面位置地圖匹配的算法。