導讀
10月30日,華為聯合高德、千尋釋出了業內首家面向手機使用者的車道級導航應用。在這背後是高精度定位技術不斷演進發展,最終走向成熟量產的過程。本文將結合高德地圖在車道級導航及自動駕駛等領域的工作,分享我們對於高精度定位技術演進的思考,以及在高精定位實際落地應用中的一些實踐。
一、高德定位技術概述
定位技術是支撐高德地圖的導航、交通等核心業務的關鍵基礎技術,他的主要任務是確定物體(通常是人或車)在一個相對固定的座標系中的位置和姿態。我們用手機高德地圖作為例子來說明都有哪些技術在實際應用場景中發揮作用。
通常手機的基礎定位能力是由手機的GNSS晶片提供的,它為我們在室外的絕大部分場景下提供了5~10米的定位精度。但是在衛星訊號不好的時候,定位可能會漂移,我們需要識別出這種情況。另外,當訊號受到干擾的時候,位置可能出現有規律的偏移,我們也要識別出干擾,並且在可能的情況下重新解算出正確的位置。當GNSS定位不準的時候,想要持續定位,可以利用感測器識別出步行/駕車狀態,再進行航位推算(PDR、VDR)。當進入室內衛星訊號丟失了,常用的定位方法是根據手機掃描的基站和Wifi、藍芽等訊號做網路定位。
上面這些技術提供了基礎的位置座標,而在導航過程中,我們更關心的是行駛在哪條路上,有沒有偏航,距離下個路口有多遠,想得到這些資訊就需要用到地圖匹配技術。在一些非常複雜的場景下,比如高架橋、主輔路,判斷道路變得非常困難,這時候還需要用到一些專門的識別模型來解決匹配問題。
圖1 手機高德地圖中的定位技術
上面提到的只是具體一個業務場景中的部分技術,下面展示了高德定位技術的一個更完整的大圖。總的來講,我們是通過構建一套“雲+端+資料”的完整的技術體系,並建設質量迭代系統保證各技術模組的持續更新迭代,來支撐眾多的定位業務應用。
圖2 高德定位技術大圖
二、定位技術如何向高精演進
回到圖1,我們可以看到這裡提到的定位技術儘管擴充套件了使用者場景,但在定位精度方面並沒有明顯提升。如果要實現前面提到的車道級導航,乃至更加智慧化的自動駕駛,就要求定位精度顯著提高到亞米級,甚至釐米級。那麼怎麼做到這一點?我們下面會從技術的角度做一個分析梳理。
首先,我們把圖2中涉及的,以及其他更廣泛的定位技術,按照定位原理分成三類,分別是航位推算、幾何定位和特徵定位。針對不同的定位型別分析影響精度的因素,總結提升精度的方法,最終期望找到實現高精定位的技術路徑。
表1 不同定位技術的分析彙總
1. 航位推算
航位推算的基本原理是從上一時刻位置出發,根據運動方向和距離推算下一時刻的位置。顯然這種定位方法需要一個已知的起始位置,否則就只能得到相對的位置變化。同時在推算過程中定位誤差會不斷累積增大,所以影響精度的直接因素就是推算時間或距離。
此外,推算精度還受到每個時刻的測量精度的影響,對於慣性感測器,這就直接由慣性器件的精度決定。例如,精度最高的戰略級慣導,隨時間發散的位置誤差可達30m/hr,相比之下,戰術級慣導精度要差3個數量級,而我們常用的消費級微機械(MEMS)慣導精度比戰術級要再差1~2個數量級。
除了器件精度,推算過程中的模型精度也會影響定位精度,這包含兩個方面:一是對器件測量誤差的補償模型,二是對計算誤差的補償模型。通常只有當器件本身的精度足夠高時,才需要考慮更精確的補償模型。
2. 幾何定位
幾何定位是對已知位置的參考裝置進行測距或者測角,再通過幾何計算確定自身位置。根據幾何計算的方式不同,包括RSS(訊號強度)、TOA(到達時間)、AOA(到達角)、TDOA(到達時間差)等多種方法。對於測角定位方法,一個小的角度測量誤差可能在距離定位設施較遠的地方產生很大的位置誤差,因此這種方法(如採用AOA方法的藍芽定位)的定位精度通常受範圍限制。在測距方法中,採用時間到達模型(如採用TOA方法的GNSS定位,採用TDOA方法的UWB定位)比訊號強度模型(如採用RSS方法的藍芽和Wifi定位)更有可能獲得較高的定位精度。但在實際應用中,最終的定位精度受到距離測量精度的影響,尤其是在衛星定位這一類長距離訊號傳播的場景中,如何消除訊號傳播路徑上的測量誤差,就成為決定定位精度的關鍵。此外,幾何定位的精度也受到定位設施數量和分佈的影響,同時觀測的設施越多、分佈越均勻,精度通常也越高。
3. 特徵定位
特徵定位方法首先獲取周圍環境的若干特徵,如基站id、Wifi指紋、地磁場、影像、Lidar點雲等。接下來有兩種處理方式,一種是把接收到的特徵和事先採集的特徵地圖進行匹配,確定在特徵地圖中的位置;另一種是沒有特徵地圖,通過對比前後幀的特徵變化來進行位置姿態推算(即SLAM技術),達到類似航位推算的相對定位效果。顯然,影響特徵定位精度的直接因素是特徵的數量、質量和區分度。
因此,採用訊號指紋特徵(如Wifi指紋)的定位方法因為指紋的稀疏性通常精度有限。基於環境感知特徵的定位方法在採集的特徵足夠密集的情況下(如高線數Lidar,中高解析度影像等)可以達到很高的精度,但是在實際應用中受環境影較大,當環境特徵單一的時候(如天空、雪天)精度就會下降甚至無法定位。另外,特徵地圖匹配方法的定位精度也受到特徵地圖精度的限制,特徵推算方法(如視覺SLAM)的定位誤差會隨距離累積,具有類似航位推算的發散效果。
綜合上面的分析,可以篩選出具備高精度定位能力的技術選型。完整的高精定位方案首先需要至少一項高精度絕對定位技術,如幾何定位中的GNSS定位,特徵定位中的Lidar點雲匹配等;其次,針對這些方案中的場景限制,輔助相對定位手段,如DR、SLAM技術等,進行補充。
表2 高精定位的技術路線
三、高精定位業務場景與解決方案
上面從技術的角度分析了高精定位可能的實現路徑,接下來我們從高德的具體業務場景出發,看一看這些技術在實際業務中是如何落地的。
1. 實際業務場景需要什麼樣的高精定位能力
出行場景是高德地圖的核心業務場景。以駕車出行為例,傳統的出行應用是以TBT(Turn-by-turn)導航為代表的道路級應用,它對於定位精度的要求在10m左右。更精細的導航體驗,如車道級導航,需要將汽車定位到車道上,這就需要位置精度達到1米以內。對於智慧駕駛場景,為了保證機器自動駕駛的安全性,對定位精度的要求更高,一般在道路橫向的精度需要小於20釐米。
圖3 駕車出行場景的高精應用
除了對精度的要求,不同業務場景對於高精定位能力還提出了其他維度的要求。
1)可靠性(或完整性):這主要用來衡量定位系統是不是有能力發現可能的錯誤,這對於依賴定位進行智慧駕駛的應用尤其重要。比如,系統需要對當前的位置給出一個精度半徑,當實際的位置精度小於這個半徑時,系統就是可靠的。所以,對於可靠性要求比較高的應用,這個半徑的估計通常是保守的。
2)可用性:如果系統能夠準確的判斷當前的定位精度滿足導航、自動駕駛等業務的要求,這時系統就是可用的。顯然,可用性要求精度半徑的估計不能太大,否則系統會頻繁認為定位不可靠,導致相關的功能無法使用。
3)算力:作為傳統導航應用的升級,車道級導航對於算力的敏感度較高,通常要求滿足目前的手機、車機導航的算力限制。智慧駕駛根據不同的智慧程度分級(SAE Level1~Level5),對算力的要求也不同。通常低等級智慧駕駛搭載的傳統汽車電氣架構無法提供更多的算力資源,而高等級智慧駕駛使用的集中計算單元可以提供的算力資源更豐富。
除此之外還有許多與實際應用相關的需求,比如輸出定位結果的時間穩定性,定位能夠覆蓋的場景範圍等。
總結一下,車道級導航需要的核心能力是識別當前車道,這一般要求定位精度小於1米,同時作為導航應用,需要在傳統導航的基礎上提高道路匹配的準確率。低等級智慧駕駛(L3以下)要求車道識別和道路匹配(這主要是為了保證智慧駕駛只在允許的道路範圍內開啟,如高速路)的準確率更高,更進一步要求橫向位置精度達到20釐米,另外對系統的可靠性要求也更高。
上面的兩類應用是我們目前最主要的業務場景,它們都要求在較低算力條件下實現高精定位功能。為了滿足這些業務的需要,我們開發了輕量級的一體化融合定位引擎。
2. 輕量級的一體化融合定位解決方案
這裡我們使用的定位技術主要包括:RTK-GNSS技術,影像語義匹配,IMU或汽車模型DR技術等。其中,影像語義匹配使用視覺裝置(通常為車上裝載的智慧攝像頭,如mobileye等)識別的車道線、地面標誌等資訊作為輸入,與高精地圖資料進行匹配定位,這一過程處理的語義要素有限,所以算力消耗不大。至於其他技術在傳統導航定位中已經涉及,所以方案整體的算力消耗可以控制在和普通導航同一量級。
圖4 一體化融合定位解決方案
上面的一體化方案框架可以接收全部或部分定位訊號輸入,同時提供道路級和車道級的定位結果,保證了在全場景下定位的連續性。在具體應用中落地時,方案的形式又有所不同。
對於智慧駕駛應用,高可靠性要求系統具備更多的冗餘資訊來容錯,因此通常需要RTK-GNSS、IMU、視覺語義等所有資訊輸入,在收到這些資訊之後需要解決兩個問題:1)如何判斷輸入訊號哪些是可靠的,2)如何充分利用所有資訊進行融合定位。
這裡我們採用了基於多假設的粒子濾波作為高精融合定位的基本演算法,並且設計實現了下面的演算法改進:
-
根據假設特徵縮減粒子維度,減少計算量;
-
採用分層歸一化解決微小系統誤差導致的粒子退化問題;
-
基於上下文的後驗置信度計算,解決輸入訊號置信度缺失或錯誤;
-
基於訊號視窗的輸入訊號延遲和亂序處理;
-
利用高精衛星定位和高精地圖資料輔助感測器校準,提升DR能力。
目前該演算法已經在一款L3級別智慧駕駛車型上落地,正在進行大規模實驗驗證。
對於車道級導航應用,由於成本和使用條件的限制,通常無法獲取所有輸入資訊。但是根據表2,我們至少需要RTK-GNSS或者視覺語義其中之一進行高精度絕對定位。在手機終端上,比較便捷的實現方案是升級手機GNSS晶片支援RTK差分來提升精度。在前面華為手機上首發的車道級導航應用就是綜合了華為和千尋的相關技術和服務來實現高精度的絕對定位。
對於車機,可以將車上用於低等級智慧駕駛功能的智慧攝像頭資訊接入導航,直接升級車道級導航功能。在這個應用場景下的高精融合定位仍然是以上面的粒子濾波演算法作為基礎,但需要在演算法和工程上靈活適配各種不同的輸入訊號型別和訊號特徵。
另外,針對導航場景的特點,一體化融合定位還根據車道級定位結果,比如汽車是不是在出口車道上,來輔助判斷主輔路、高架橋等複雜路況條件下的偏航情況,提升使用者導航的整體體驗。
目前基於華為手機的車道級導航要釋出上線,車機的車道級專案也正在實施落地,不久就會和大家見面。
3. 面向複雜場景的多元緊耦合SLAM技術
上面的輕量級融合定位方案可以解決室外大部分遮擋少、語義清晰場景的高精度定位問題,但是對於更復雜的場景,比如室內、停車場、城市複雜路口等,高精度GNSS可能無效,視覺語義資訊也較少,這時候就需要融合更豐富的定位手段。在高等級智慧駕駛(L4以上)中通常使用Lidar點雲匹配,和/或高精度慣導DR來保證持續的高精度定位,但Lidar和高精慣導的成本很高,大規模應用受限。SLAM技術可以用低成本視覺感測器,持續推算高精度位置和姿態,可以作為低成本高精定位的有效手段。相比上面的輕量級方案,它的算力成本較高,但是在目前終端算力持續升級的大環境下,仍然具有很好的落地潛力。
我們的思路是用一套緊耦合的方案,儘可能充分利用各種低成本感測器:GNSS、IMU、視覺等提供的資訊,依據這些資訊在不同維度上的誤差特徵,建立最優化模型,實現最優的位置姿態估計。
圖5 多元緊耦合SLAM演算法框架
我們在公開資料集EuRoc和Kaist上對比了這一套多元緊耦合SLAM演算法和目前流行的視覺-IMU融合演算法、視覺-IMU-GNSS融合演算法的效果,其位置精度提升1倍以上。接下來我們將在手機、車機終端上優化演算法的算力消耗,並在未來面向全場景的高精度導航、智慧駕駛應用中落地。
四、總結與展望
定位技術的發展由來已久。事實上,如果我們回到二三十年前甚至更早,那時候就已經產生了用於測繪的專業的高精定位技術,所以定位精度本身並不是問題。但是今天在人們出行方式深刻變革的背景下再提高精定位,我們面臨的問題是怎麼樣構建使用者用得起,又真正能夠為出行提供便利的技術和應用。
所以,未來的高精定位首先需要擴充套件場景應用,從室外到室內,從駕車到步行,最終達到全場景覆蓋。針對場景應用的特點,明確對高精定位在精度、可靠性、成本等各個維度上的需求。充分結合當前快速發展的感測、通訊、計算等領域技術,設計最佳的解決方案。可能的研發方向包括:
-
更低成本的高精GNSS技術,如PPP-RTK技術等;
-
基於最新通訊技術(如5G)的高精度定位;
-
基於最新感知技術(如低成本Lidar)的高精度定位;
-
對各種定位技術的更深度的融合方案(如IMU、視覺輔助RTK解算)。