本次分享聚焦于高精地圖在自動駕駛中的應用,主要分為以下兩部分:1. 高精地圖 High Definition Map.2. 定位 Localization
一.高精地圖 High Definition Map
★ 拓撲地圖 Topological Map / Road Graph
1.傳統(tǒng)地圖
我們先看下傳統(tǒng)地圖,這是從百度地圖里截出來的圖,從這張圖我們可以看到很多信息:
拓撲信息:我們可以看到北清路的主干道,可以看到北清路可以延伸到哪些道路上去,這些拓撲信息從人的角度來看是能夠識別出來的;
各類 POI:我們同時還能看到許多 POI 信息,包括中關村壹號-A1座,拉卡拉大廈等;
用戶是人
米級精度:精度是米級別的,這對人來說足夠了,因為人會自動判別周圍的環(huán)境,做出自己的變化。
但是這些信息對于自動駕駛的車輛來說,到底是不是必要的、準確的或者足夠的,那我們繼續(xù)往下看。
2.典型駕駛場景
這是一個典型的駕駛場景,假設我們正在駕駛的車輛是后面的白車,可以看到他的前面有輛自行車,那么對于白車來說,他可以有倆個決策:跟車或者變道。那么對于自動駕駛車輛來說, 我們作出決策的前提第一個是要知道全局的路線規(guī)劃信息,變道后是否還能夠到達終點,此外還需要知道很多具體的信息:
在哪條車道上以及當前車道的具體位置
是否有隔壁車道,如果沒有車道你是變不過去的
是否允許變道:車道的類型,虛線實線,變道距離是否足夠長
自動駕駛車輛還不能夠像人一樣做出各種復雜的動作,這時需要有一些先驗的約束條件,這些信息的話都應該從地圖中來。
3.HD Road Map
HD Road Graph 也就是高精地圖其中的一部分,又叫做拓撲地圖。HD Road Graph 以厘米級精度的描述道路細節(jié),主要包含:車道類型、車道連通性、交通標注/交通燈、人行橫道、道路幾何特征、其他更多語義信息。大家可以看下左邊這張圖,對里面的每一條路,也就是路級別,我們已經精細到每條車道,包括直行的車道,左轉的車道,也包括周邊的一些幾何信息,總體上你會發(fā)現高精地圖上的信息要比傳統(tǒng)地圖大很多。
高精地圖在自動駕駛里有很多應用,我們先看一個應用場景:在自動駕駛里有感知系統(tǒng),那一個典型的應用是我們會在地圖里面描述紅綠燈的位置,自動駕駛車輛到達路口后,可以根據當前的位置,去正確的識別當前的紅綠燈到底是紅色還是綠色,左邊我們可以看到是一個普通的場景,但是右邊這種特殊的場景有幾十個紅綠燈(現實情況基本不存在, 只是用來舉個例子),對人來講也很難去知道在哪個路口應該去看哪個紅綠燈,那如果我們在離線地圖上能夠把上面的信息驗證準確的話,對自動駕駛的安全性、可靠性來說是起到很大幫助的。
我們再來看下決策規(guī)劃,剛才提到的一個典型場景,你需要知道一個全局的路徑信息,包括變道所需要的必要信息,那對右邊來說,這里主要是強調綠化帶,我們這里提供的信息,前面有提到過叫做語義信息,我們?yōu)槭裁匆诘貓D里包括這些語義信息呢?如果自動駕駛車輛可以提前知道旁邊是綠化帶,那么他可以幫助自動駕駛車輛做一些先驗的決策,他可以知道在那個時間段不會有人或者車直接從對向車道穿過來。所以從準確性來講他可以得到很大的提升,對性能來說也會有很大的提升,因為你不需要過多關心對面車道的物體,很明顯你的計算就會少,你會發(fā)現整個先驗信息對決策來說必不可少,并且是非常關鍵的。
我們再來看下我們當前整體用到的 Pipeline,分為以下幾個環(huán)節(jié):
數據收集,地圖信息的采集
數據清洗/聚合
自動化識別,把地圖里所需要的必要信息處理出來,包括車道線、紅綠燈、十字路口等等各種信息
人工檢查/標注,現有的算法我們還做不到100%的自動抽取,所以還會加入人工檢查和標注的環(huán)節(jié)
后處理和驗證,整個數據出來之后,我們需要有后處理和驗證,因為數據出來之后怎么樣去保證你提供的信息是準確的,這是我們需要解決的問題,因為不能單靠人或者高成本的方式來驗證道路信息是否準確,假設一個紅綠燈位置標錯了,或者自動識別錯了,那可能會導致你在路測過程中會出現一些安全隱患,所以整個驗證環(huán)節(jié)占有很重要的部分
Release,整個驗證完之后,我們會進行 Data Release 數據的發(fā)布,數據會納入統(tǒng)一的管理中,每一版 release 的地圖的質量已經得到比較好的驗證
這是一個常規(guī)的發(fā)布流程。現實中整個路網結構是不斷往外擴張的,且周圍環(huán)境會有變化,所以我們也會有增量的更新。
前面簡單介紹了整個 HD Road Graph 的 Pipeline,我們來看下 HD Road Graph 里面遇到的問題:
成本
厘米級別的精度:需要各類傳感器(LiDAR、cameras、GNSS/IMU),右邊是蘋果的一個地圖車,大家可以看到上面裝了很多傳感器,很明顯制造一輛高精地圖車輛的話成本非常昂貴
數據量:海量存儲資源和計算資源
覆蓋范圍:從局部區(qū)域逐步擴張,從中關村壹號附近地區(qū),擴張到海淀區(qū),再到北京市,甚至是半個中國,這里面的硬件成本和人力成本等,都會極劇增加
那么如何去解決成本問題?這需要我們在工作中想一些好的方式。
挑戰(zhàn)-復雜性
第二個是復雜性帶來的挑戰(zhàn),對于我們整個 Data Model 來說會包含三部分信息:
語義信息,從右邊的圖標志牌來看,你會發(fā)現有很多的交通標記,如何提高準確性,并且盡可能提高覆蓋度
空間信息,右圖中的立交橋是西直門立交橋,我們會發(fā)現通過導航軟件或者老司機的經驗都未必能夠在某一條車道上找到準確位置,對我們來說就是如何能夠把整個空間信息描述好,然后集成到地圖中去
時間信息,在北京有一些潮汐街道,早高峰和晚高峰走的方向是不一樣的;對一些公交車道在早高峰的時候只能公交車去跑,自動駕駛車輛是不能跑的,很明顯需要把這些信息包含在地圖里面
這樣的話,決策模塊和感知模塊才能去準確的使用。
挑戰(zhàn)-擴展性
自動駕駛車輛行駛 1KM 會產生GB級別的原始數據,處理這些數據在功能架構上會面臨很大的挑戰(zhàn)
更新,從天級別到小時級別再到分鐘級別的更新,整個功能架構是不一樣的,比如我需要對北京市地圖做小時級別的更新,到底能不能做到,這需要很多的優(yōu)化功能在里面
挑戰(zhàn)-實時性
交通管制、環(huán)境變化等怎么反饋到 HD Road Graph 上,如果今天某條路修路了,對于人來講我就可以直接繞過這條路,而這種信息怎么去反饋到自動駕駛里呢?是靠人去反饋,還是系統(tǒng)自動去識別,即使反饋之后,怎么實時更新到地圖數據里,我們需要打通 offline 到 online 的環(huán)節(jié),及時更新到我們正在運行的自動駕駛車輛里去。
★3D柵格地圖 3D Grid Map
1.3D Grid Map
前面介紹了拓撲地圖的部分,下面介紹我們的3D 柵格地圖(3D Grid Map)。
定義:我們認為一個真實的三維世界可以用一個概率模型來表示。比如像今天這個會場,我們會把他離散化成一個個立體方格,對每個方格里面我們會存儲一個概率,這個概率是說這個空間不為空的概率。
輸入:收集的激光點云數據
輸出:3D 網格的占據概率
用途:
定位,這個稍后會講
靜態(tài)環(huán)境感知,減少工作量,專心識別動態(tài)環(huán)境
這是我們做的一個 3D 柵格地圖,他并不是一個連續(xù)的描述,從數學的角度講,已經把他離散化,我們會保留他的一些概率值和一些屬性。展現出來的話,他是一個厘米級精度的柵格,從這個圖我們可以很清楚看到周圍的環(huán)境,包括一些樹、建筑之類的。
2.SLAM
那么我們一般會怎么去做高精地圖呢?在傳統(tǒng)上有一個方式叫 SLAM,如果是做這個方向的同學會比較清楚,但是對于做工程的同學來講這個概念可能是第一次接觸。他是指運動物體根據傳感器的信息,一邊計算自身位置,一邊構建環(huán)境地圖的過程。目前,SLAM 的應用領域主要有機器人、虛擬現實和增強現實。其用途包括傳感器自身的定位,以及后續(xù)的路徑規(guī)劃、場景理解。
我們來看下傳統(tǒng)和自動駕駛 SLAM 的區(qū)別:
傳統(tǒng) SLAM:
2D
視覺傳感器,單靠攝像頭,在某個空間轉來轉去,然后通過一些算法來建模
沒有 GPS 信息,很多場景在室內的話是收集不到 GPS 信息的
生成地圖和定位同時進行
自動駕駛:
3D,他描繪的是一個三維環(huán)境
激光傳感器,我們需要達到比較高的精度,所以我們一般采用激光傳感器
GPS 信息,室外的話我們有個優(yōu)勢就是很多時候我們是有 GPS 信息的
離線處理,最后我們的數據不需要在線處理,前面介紹過,在線的話我們有一些場景算法是不能很好的處理,所以我們需要抽取一些信息來做離線的驗證
相比于傳統(tǒng) Slam,我們來看下有哪些問題是需要解決的:
全局 GPS 信息并不總是好的,左下角的圖,大家可以清楚的看到,這個是我們建出的底圖,里面有當時車輛的一個行駛軌跡,你會發(fā)現如果根據 GPS 的行駛軌跡的話,車已經開到馬路牙子(路肩)上了,跟實際的情況是不一樣的,當你拿到這樣一份數據,你在算法層需要做哪些優(yōu)化,把細節(jié)做好,這是需要我們考慮的一個問題
不同時間段的數據如何 align(校準),因為整個地圖的采集不可能是一次就完成的,你可能需要今天采集一次,明天再去采集一次,這就需要我們在算法層面上考慮如何把不同時間段的數據 align 到一起
去除非靜態(tài)的物體,我們建的是一個概率的模型,對于很多非靜態(tài)的物體我們是不需要保留的,我們只需要保留一些靜態(tài)的物體給感知系統(tǒng)去使用,所以我們在處理完數據之后,需要把一些非靜態(tài)的物體去掉
3.Pose Graph
整體上我們可以認為這是一個優(yōu)化問題。如果我們把每一次采集的路線,按照時間去劃分,比如每隔4分鐘采一個點,我們可以得到不同的位置,舉個例子:我們在大廳里走來走去,我現在站在這里,一分鐘后我可能在那里,再繞一圈的話可能站在門口,我們把整個 GPS 得到的位置信息離散化之后,就可以得到一個個點,很明顯我們把當時的點所看到的周圍的環(huán)境直接拼起來,就可能得到一個三維的地圖,因為每個點看到的角度都是不一樣的,那我們把不同位置的點都拼起來就可以了。但是直接拼起來會有很多問題,因為原始位置可能跟真實位置有偏差, 所以我們把這些點離散化之后,希望能夠把所有點都調整到準確的位置,那我們怎么去把最終的結果求正確?因為對整個圖來說, 除了頂點之外,還有邊,我們希望通過邊的約束把點調好,邊的約束你可以認為是個相對約束,假設我知道下個點的準確位置,那么我就可以倒推我這個點的準確位置。就是在有準確的相對位置的基礎上,加上一些比較少的絕對位置,我們直接可以得到一個全局的準確位置。
優(yōu)化目標:我們把整個圖離散化到一個點之后,我們會嘗試建立一些邊的約束,最終我們是希望通過優(yōu)化一些點的位置來滿足邊的約束,最終會轉化為一個優(yōu)化問題。
整體的數學模型看起來是比較簡單的,但是在整個細節(jié)里面是存在很多問題需要去做優(yōu)化的:
如何選擇頂點,比如是不是毫秒的點都要加進去,GPS 信號不好時的點要不要加進去
如何保證邊的準確性,一個頂點到另一個頂點的相對位置,我要通過什么方式去建立
如何求解非線性優(yōu)化,圖建好之后如何去做非線性的優(yōu)化
如何評估優(yōu)化效果,是否和真實的環(huán)境是一致的呢?如何評估我們的結果滿足要求
效率和資源,對于工程來講,數據量這么大,怎么去設計工程算法,能夠保證我們的效率和資源,比如說,是不是需要在算法基礎之上去做一些定制優(yōu)化,用 GPU 或者分布式的計算方式,這都是做工程時需要考慮的問題
上圖右邊其實是一個例子,左邊是原始的圖,有一個物體來回在球面上運動旋轉,邊與邊之間我們已經建立相對約束,最終優(yōu)化完之后,你會發(fā)現整個環(huán)境的重建就變成了一個比較理想、完整的球體,概括來說我們要做的事情就是需要把左邊的圖來變成右邊的圖。
4.ICP
我們前面提到我們要保證邊的約束,那我們怎么知道求出這個約束,業(yè)界用的比較多的傳統(tǒng)的經典算法叫做 ICP(Iterative Closest Point algorithm)迭代最近點算法。
舉個例子:左邊是一個紅色的兔子,右邊是一個藍色的兔子,現實中這倆個兔子的位置是一樣的,但現在倆個兔子是不一樣的,說明位置存在偏差。他的輸入是倆組點云 A 和 B,輸出是倆組點云之間在空間上的旋轉和平移。
具體算法的思路大致是:找點云集合 A 中的每個點在 B 中的對應點,通過求解最佳的剛體變換,不斷的迭代優(yōu)化,最終得到一個收斂解。
5.去除非靜態(tài)障礙物體
概率模型
點云處理,單純的概率模型是不夠的,比如有時候小區(qū)門口經常是有車的,但是在某時刻他是開走的,只是恰好在我們采集數據的時候這些車都在,所以我們需要依賴離線點云處理
機器學習,同時也可以利用機器學習算法去把非靜態(tài)的物體從地圖里面摳出來
這是一個簡單的對比圖,沒有做處理的話,你會發(fā)現右邊是有一些車的輪廓,當從空間上去除之后,會變得比較清晰。
二.定位 Localization
接下來簡單介紹下定位,定位大家都比較熟悉,對于定位系統(tǒng)和傳統(tǒng)定位來說,他的位置和姿態(tài)有如下特點:
厘米級別的精度,需要精確到車在車道線的具體位置離左右邊線幾公分
高頻低延遲,需要毫秒級別的時間延遲,告訴我的車在什么地方,否則會出現安全事故
定位系統(tǒng)的幾種定位方式:
全球導航衛(wèi)星系統(tǒng) Global Navigation Satellite System
特征:
米級別精度
低頻
干擾或者遮擋
解決方法:RTK(Real - time kinematic,實時動態(tài))載波相位差分技術,可以達到厘米級別。
相對定位:慣性測量單元 IMU(Inertial Measurement Unit)
特點:
加速度以及角速度
三個方向的加速度計和三軸的陀螺儀
高頻(通常100HZ)
累積誤差
解決方法:慣性導航系統(tǒng) Inertial Navigation System
點云定位
特點:
魯棒性好,不依賴于 GPS 信息
依賴于先驗地圖,那么這個地圖的準確性和實時性會導致一個定位誤差
弱特征環(huán)境?有些弱特征環(huán)境是需要解決的,比如說在橋上,往前開10米和往后開10米看到的場景都是類似的,對于這類環(huán)境來說,我們如何去找到準確位置,這是需要考慮的一個問題
綜合來說,我們單靠單一傳感器是不夠的,所以采取的是多傳感器融合的方案,整體效果是會有更高的精度和更好的魯棒性,然后我們整體上是基于卡爾曼濾波模型。
簡單介紹下卡爾曼濾波(Kalman Filter)模型:
卡爾曼濾波是一種高效率的遞歸濾波器,它能夠從一系列的不完全及包含噪聲的測量中,估計動態(tài)系統(tǒng)的狀態(tài)。
我們把整個當時的位置認為是高斯分布,對這個小車來說他大概在某個范圍之內,在中間的可能性是最大的,然后我們會有個預測(預測是根據自己的運動方程),比如我往前走了10米,他大概在這個位置,你會發(fā)現他的誤差值會變大,因為可能是 IMU 告訴你走了10米,但是傳感器本身也是有誤差的,那同時假設我有個 GPS,告訴我可能是在藍色的部分,他也是包含一定誤差的,這樣我其實有了倆個位置,那么我就可以把倆者合在一起得到一個比較準確的可信的結果,整體可以認為卡爾曼濾波是不斷的在更新迭代的,來最終得到一個比較準確的位置。
最終我們定位系統(tǒng)的目標是萬里無憂,對我們的挑戰(zhàn)是更低成本和更苛刻的外部環(huán)境。比如右邊這個圖,大堵車,這時候可能 GPS 不行,堵車堵了幾個小時,走走停停,會導致累積誤差,實時訊號又不好,你可能搜不到,這樣的環(huán)境你會發(fā)現,他只能看到周圍的很多車,也沒辦法跟周圍的環(huán)境去做對比,知道自己在哪里,這種情況下,我們到底怎么去得到一個比較準確的定位效果,這需要我們把這些問題都解決好。
-
傳感器
+關注
關注
2551文章
51099瀏覽量
753573 -
3D
+關注
關注
9文章
2878瀏覽量
107538 -
自動駕駛
+關注
關注
784文章
13812瀏覽量
166457
原文標題:高精地圖和定位在自動駕駛的應用
文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論