SLAM技術(shù)在自動駕駛的應(yīng)用
/ 導(dǎo)讀 /
定位在自動駕駛中占據(jù)著不可替代的地位,而且未來有著可期的發(fā)展。目前自動駕駛中的定位都是依賴RTK配合高精地圖,這給自動駕駛的落地增加了不少成本與難度。試想一下人類開車,并非需要知道自己的全局高精定位及周圍的詳細(xì)環(huán)境,有一條全局導(dǎo)航路徑并配合車輛在該路徑上的位置,也就足夠了,而這里牽涉到的,便是SLAM領(lǐng)域的關(guān)鍵技術(shù)。
什么是SLAM
SLAM (Simultaneous Localization and Mapping),也稱為CML (Concurrent Mapping and Localization),即時定位與地圖構(gòu)建,或并發(fā)建圖與定位。問題可以描述為:將一個機(jī)器人放入未知環(huán)境中的未知位置,是否有辦法讓機(jī)器人一邊逐步描繪出此環(huán)境完全的地圖,同時一邊決定機(jī)器人應(yīng)該往哪個方向行進(jìn)。例如掃地機(jī)器人就是一個很典型的SLAM問題,所謂完全的地圖(a consistent map)是指不受障礙行進(jìn)到房間可進(jìn)入的每個角落。
SLAM最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理論與應(yīng)用價值,被很多學(xué)者認(rèn)為是實(shí)現(xiàn)真正全自主移動機(jī)器人的關(guān)鍵。
模擬人類來到一個陌生的環(huán)境時,為了迅速熟悉環(huán)境并完成自己的任務(wù)(比如找飯館,找旅館),這時應(yīng)當(dāng)依次做以下事情:
a.用眼睛觀察周圍地標(biāo)如建筑、大樹、花壇等,并記住他們的特征(特征提取)
b.在自己的腦海中,根據(jù)雙目獲得的信息,把特征地標(biāo)在三維地圖中重建出來(三維重建)
c.當(dāng)自己在行走時,不斷獲取新的特征地標(biāo),并且校正自己頭腦中的地圖模型(bundle adjustment or EKF)
d.根據(jù)自己前一段時間行走獲得的特征地標(biāo),確定自己的位置(trajectory)
e.當(dāng)無意中走了很長一段路的時候,和腦海中的以往地標(biāo)進(jìn)行匹配,看一看是否走回了原路(loop-closure detection)。實(shí)際這一步可有可無。
以上五步是同時進(jìn)行的,因此是Simultaneous Localization and Mapping。
激光SLAM與視覺SLAM
目前用在SLAM上的傳感器主要分兩大類,激光雷達(dá)和攝像頭。激光雷達(dá)有單線多線之分,角分辨率及精度也各有千秋。
而VSLAM則主要用攝像頭來實(shí)現(xiàn),攝像頭品種繁多,主要分為單目、雙目、單目結(jié)構(gòu)光、雙目結(jié)構(gòu)光、ToF幾大類。他們的核心都是獲取RGB和depth map(深度信息)。
由于受制成本的影響,視覺SLAM在近些年變得越來越流行,通過低成本的攝像頭進(jìn)行實(shí)時的建圖與定位,這里面的技術(shù)難度也是非常之大。以ToF(Time of Flight),一種很有前景的深度獲取方法為例。傳感器發(fā)出經(jīng)調(diào)制的近紅外光,遇物體后反射,傳感器通過計算光線發(fā)射和反射時間差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。類似于雷達(dá),或者想象一下蝙蝠,softkinetic的DS325采用的就是ToF方案(TI設(shè)計的)。但是它的接收器微觀結(jié)構(gòu)比較特殊,有2個或者更多快門,測ps級別的時間差,但它的單位像素尺寸通常在100um的尺寸,所以目前分辨率不高。
在有了深度圖之后呢,SLAM算法就開始工作了,由于Sensor和需求的不同,SLAM的呈現(xiàn)形式略有差異。大致可以分為激光SLAM(也分2D和3D)和視覺SLAM(也分Sparse、semiDense、Dense),但其主要思路大同小異。
SLAM算法實(shí)現(xiàn)的要素
SLAM技術(shù)非常實(shí)用,同時難度也相當(dāng)大,在時刻需要精確定位的自動駕駛領(lǐng)域,想要完成SLAM落地也是困難重重。一般來說,SLAM算法在實(shí)現(xiàn)的時候主要考慮以下4個方面:
1、地圖表示問題,比如dense和sparse都是它的不同表達(dá)方式,這個需要根據(jù)實(shí)際場景需求去抉擇
2、信息感知問題,需要考慮如何全面的感知這個環(huán)境,RGBD攝像頭FOV通常比較小,但激光雷達(dá)比較大
3、數(shù)據(jù)關(guān)聯(lián)問題,不同的sensor的數(shù)據(jù)類型、時間戳、坐標(biāo)系表達(dá)方式各有不同,需要統(tǒng)一處理
4、定位與構(gòu)圖問題,就是指怎么實(shí)現(xiàn)位姿估計和建模,這里面涉及到很多數(shù)學(xué)問題,物理模型建立,狀態(tài)估計和優(yōu)化
其他的還有回環(huán)檢測問題,探索問題(exploration),以及綁架問題(kidnapping)。
目前比較流行的視覺SLAM框架主要包含前端和后端:
前端
前端相當(dāng)于VO(視覺里程計),研究幀與幀之間變換關(guān)系。
首先提取每幀圖像特征點(diǎn),利用相鄰幀圖像,進(jìn)行特征點(diǎn)匹配,然后利用RANSAC去除大噪聲,然后進(jìn)行匹配,得到一個pose信息(位置和姿態(tài)),同時可以利用IMU(Inertial measurement unit慣性測量單元)提供的姿態(tài)信息進(jìn)行濾波融合后端則主要是對前端出結(jié)果進(jìn)行優(yōu)化,利用濾波理論(EKF、UKF、PF)、或者優(yōu)化理論TORO、G2O進(jìn)行樹或者圖的優(yōu)化。最終得到最優(yōu)的位姿估計。
后端
后端這邊難點(diǎn)比較多,涉及到的數(shù)學(xué)知識也比較多,總的來說大家已經(jīng)慢慢拋棄傳統(tǒng)的濾波理論走向圖優(yōu)化去了。
因?yàn)榛跒V波的理論,濾波器穩(wěn)度增長太快,這對于需要頻繁求逆的EKF(擴(kuò)展卡爾曼濾波器),PF壓力很大。
而基于圖的SLAM,通常以keyframe(關(guān)鍵幀)為基礎(chǔ),建立多個節(jié)點(diǎn)和節(jié)點(diǎn)之間的相對變換關(guān)系,比如仿射變換矩陣,并不斷地進(jìn)行關(guān)鍵節(jié)點(diǎn)的維護(hù),保證圖的容量,在保證精度的同時,降低了計算量。
SLAM未來在自動駕駛領(lǐng)域的應(yīng)用
Slam技術(shù)目前已經(jīng)在多個領(lǐng)域都取得了不錯的落地效果與成績,包括室內(nèi)的移動機(jī)器人,AR場景以及無人機(jī)等等。而在自動駕駛領(lǐng)域,SLAM技術(shù)卻一直未得到太多的重視,一方面由于定位在目前的自動駕駛行業(yè)中大多通過RTK來解決,并不會投入過多的資源去進(jìn)行深入的研究,另一方面也是由于目前技術(shù)還不成熟,在自動駕駛這種關(guān)乎生命的領(lǐng)域,任何一種新技術(shù)都得經(jīng)過時間的檢驗(yàn)才能被接受。
在未來,隨著傳感器精度的逐漸提升,SLAM也會在自動駕駛領(lǐng)域大顯身手,其成本的低昂性,性能的魯棒性,都將為自動駕駛帶來革命性的變化。而隨著SLAM技術(shù)的逐漸火熱,也將有越來越多的定位人才涌進(jìn)自動駕駛領(lǐng)域,為自動駕駛注入新鮮血液,帶來新的技術(shù)方向與研究領(lǐng)域。更多自動駕駛行業(yè)資訊,請關(guān)注智車科技公眾號。
參考資料:
[1] https://blog.csdn.net/u010632165/article/details/119426739
- End -