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