SLAM作為一種基礎技術,從最早的軍事用途(核潛艇海底定位就有了SLAM的雛形)到今天,已經逐步走入人們的視野,過去幾年掃地機器人的盛行讓它名聲大噪,近期基于三維視覺的VSLAM又讓它越來越顯主流。
SLAM的前世
定位、定向、測速、授時是人們惆悵千年都未能完全解決的問題,最早的時候,古人只能靠夜觀天象和司南來做簡單的定向。直至元代,出于對定位的需求,才華橫溢的中國人發明了令人嘆為觀止的牽星術,用牽星板測量星星實現緯度估計。
1964年美國投入使用GPS,突然就打破了大家的游戲規則。軍用的P碼可以達到1-2米級精度,開放給大眾使用的CA碼也能夠實現5-10米級的精度。
后來大家一方面為了突破P碼封鎖,另一方面為了追求更高的定位定姿精度,想出了很多十分具有創意的想法來挺升GPS的精度。利用RTK的實時相位差分技術,甚至能實現厘米的定位精度,基本上解決了室外的定位和定姿問題。
但是室內這個問題就難辦多了,為了實現室內的定位定姿,一大批技術不斷涌現,其中,SLAM技術逐漸脫穎而出。SLAM是一個十分交叉學科的領域,我先從它的傳感器講起。
離不開這兩類傳感器
目前用在SLAM上的Sensor主要分兩大類,激光雷達和攝像頭。(待會兒發的部分素材摘自官網、論文、專利,侵刪)。
這里面列舉了一些常見的雷達和各種深度攝像頭。激光雷達有單線多線之分,角分辨率及精度也各有千秋。SICK、velodyne、Hokuyo以及國內的北醒光學、Slamtech是比較有名的激光雷達廠商。他們可以作為SLAM的一種輸入形式。
這個小視頻是賓大的教授kumar做的特別有名的一個demo,是在無人機上利用二維激光雷達做的SLAM。
而VSLAM則主要用攝像頭來實現,攝像頭品種繁多,主要分為單目、雙目、單目結構光、雙目結構光、ToF幾大類。他們的核心都是獲取RGB和depth map(深度信息)。簡單的單目和雙目(Zed、leapmotion)我這里不多做解釋,我主要解釋一下結構光和ToF。
最近流行的結構光和TOF
結構光原理的深度攝像機通常具有激光投射器、光學衍射元件(DOE)、紅外攝像頭三大核心器件。
這個圖(下圖)摘自primesense的專利。
可以看到primesense的doe是由兩部分組成的,一個是擴散片,一個是衍射片。先通過擴散成一個區域的隨機散斑,然后復制成九份,投射到了被攝物體上。根據紅外攝像頭捕捉到的紅外散斑,PS1080這個芯片就可以快速解算出各個點的深度信息。
這兒還有兩款結構光原理的攝像頭。
第一頁它是由兩幅十分規律的散斑組成,最后同時被紅外相機獲得,精度相對較高。但據說DOE成本也比較高。
還有一種比較獨特的方案(最后一幅圖),它采用mems微鏡的方式,類似DLP投影儀,將激光器進行調頻,通過微鏡反射出去,并快速改變微鏡姿態,進行行列掃描,實現結構光的投射。(產自ST,ST經常做出一些比較炫的黑科技)。
ToF(time of flight)也是一種很有前景的深度獲取方法。
傳感器發出經調制的近紅外光,遇物體后反射,傳感器通過計算光線發射和反射時間差或相位差,來換算被拍攝景物的距離,以產生深度信息。類似于雷達,或者想象一下蝙蝠,softkinetic的DS325采用的就是ToF方案(TI設計的),但是它的接收器微觀結構比較特殊,有2個或者更多快門,測ps級別的時間差,但它的單位像素尺寸通常在100um的尺寸,所以目前分辨率不高。以后也會有不錯的前景,但我覺得并不是顛覆性的。
好,那在有了深度圖之后呢,SLAM算法就開始工作了,由于Sensor和需求的不同,SLAM的呈現形式略有差異。大致可以分為激光SLAM(也分2D和3D)和視覺SLAM(也分Sparse、semiDense、Dense)兩類,但其主要思路大同小異。
這個是Sparse(稀疏)的
SLAM算法實現的4要素
SLAM算法在實現的時候主要要考慮以下4個方面吧:
1. 地圖表示問題,比如dense和sparse都是它的不同表達方式,這個需要根據實際場景需求去抉擇
2. 信息感知問題,需要考慮如何全面的感知這個環境,RGBD攝像頭FOV通常比較小,但激光雷達比較大
3. 數據關聯問題,不同的sensor的數據類型、時間戳、坐標系表達方式各有不同,需要統一處理
4. 定位與構圖問題,就是指怎么實現位姿估計和建模,這里面涉及到很多數學問題,物理模型建立,狀態估計和優化
其他的還有回環檢測問題,探索問題(exploration),以及綁架問題(kidnapping)。
這個是一個比較有名的SLAM算法,這個回環檢測就很漂亮。但這個調用了cuda,gpu對運算能力要求挺高,效果看起來比較炫。
SLAM的今生——還存在著問題
多傳感器融合、優化數據關聯與回環檢測、與前端異構處理器集成、提升魯棒性和重定位精度都是SLAM技術接下來的發展方向,但這些都會隨著消費刺激和產業鏈的發展逐步解決。就像手機中的陀螺儀一樣,在不久的將來,也會飛入尋常百姓家,改變人類的生活。
不過說實話,SLAM在全面進入消費級市場的過程中,也面對著一些阻力和難題。比如Sensor精度不高、計算量大、Sensor應用場景不具有普適性等等問題。
多傳感器融合、優化數據關聯與回環檢測、與前端異構處理器集成、提升魯棒性和重定位精度都是SLAM技術接下來的發展方向,但這些都會隨著消費刺激和產業鏈的發展逐步解決。就像手機中的陀螺儀一樣,在不久的將來,也會飛入尋常百姓家,改變人類的生活。
(激光雷達和攝像頭兩種 SLAM 方式各有什么優缺點呢,有沒有一種綜合的方式互補各自的缺點的呢?)
激光雷達優點是可視范圍廣,但是缺點性價比低,低成本的雷達角分辨率不夠高,影響到建模精度。vSLAM的話缺點就是FOV通常不大,50-60degree,這樣高速旋轉時就容易丟,解決方案有的,我們公司就在做vSLAM跟雷達還有IMU的組合。
(請問目前基于視覺的SLAM的計算量有多大?嵌入式系統上如果要做到實時30fps,是不是只有Nvidia的芯片(支持cuda)才可以?)
第一個問題,雖然基于視覺的SLAM計算量相對較大,但在嵌入式系統上是可以跑起來的,Sparse的SLAM可以達到30-50hz(也不需要GPU和Cuda),如果dense的話就比較消耗資源,根據點云還有三角化密度可調,10-20hz也是沒有問題。
并不一定要用cuda,一些用到cuda和GPU的算法主要是用來加速SIFT、ICP,以及后期三角化和mesh的過程,即使不用cuda可以采用其他的特征點提取和匹配策略也是可以的。
-
傳感器
+關注
關注
2548文章
50740瀏覽量
752143 -
SLAM
+關注
關注
23文章
419瀏覽量
31789
原文標題:【干貨】一文讀懂SLAM技術前世今生
文章出處:【微信號:robotn,微信公眾號:產業大視野】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論