關注、 星標公眾 號 ,不錯過精彩內(nèi)容 什么是SLAM? SLAM (
simultaneous localization and mapping),也稱為CML (Concurrent Mapping and Localization
), 即時定位與地圖構(gòu)建,或并發(fā)建圖與定位。問題可以描述為:將一個
機器人 放入未知環(huán)境中的未知位置,是否有辦法讓機器人一邊逐步描繪出此環(huán)境完全的地圖,同時一邊決定機器人應該往哪個方向行進。例如掃地機器人就是一個很典型的SLAM問題,所謂完全的地圖(
a consistent map
)是指不受障礙行進到房間可進入的每個角落。
SLAM 最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理論與應用價值,被很多學者認為是實現(xiàn)真正全自主移動機器人的關鍵。當你來到一個陌生的環(huán)境時,為了迅速熟悉環(huán)境并完成自己的任務(比如找飯館,找旅館),你應當做以下事情:
a.用眼睛觀察周圍 地標如建筑、大樹、花壇等,并記住他們的特征(特征提?。?/p> b.在自己的腦海中,根據(jù)雙目獲得的信息 ,把特征地標在三維地圖中重建出來(三維重建) c.當自己在行走時,不斷獲取新的特征地標 ,并且校正自己頭腦中的地圖模型(bundle adjustment or EKF
) d.根據(jù)自己前一段時間行走獲得的特征地標,確定自己的位置 (trajectory
) e.當無意中走了很長一段路的時候,和腦海中的以往地標進行匹配,看一看是否走回了原路(loop-closure detection
)。實際這一步可有可無。 以上五步是同時進行的,因此是simultaneous localization and mapping
離不開這兩類傳感器 目前用在SLAM上的Sensor主要分兩大類,
激光雷達 和
攝像頭 。
這里面列舉了一些常見的雷達和各種深度攝像頭。激光雷達有單線多線之分,角分辨率及精度也各有千秋。SICK、velodyne、Hokuyo以及國內(nèi)的北醒光學、Slamtech是比較有名的激光雷達廠商。他們可以作為SLAM的一種輸入形式。這里展示的就是一種簡單的2D SLAM。
這個小視頻是賓大的教授kumar做的特別有名的一個demo,是在無人機上利用二維激光雷達做的SLAM。
而VSLAM則主要用攝像頭來實現(xiàn),攝像頭品種繁多,主要分為
單目 、
雙目 、
單目結(jié)構(gòu)光 、
雙目結(jié)構(gòu)光 、
ToF 幾大類。他們的核心都是獲取RGB和depth map(深度信息)。簡單的單目和雙目(Zed、leapmotion)我這里不多做解釋,我主要解釋一下結(jié)構(gòu)光和ToF。
最近流行的結(jié)構(gòu)光和TOF 結(jié)構(gòu)光原理的深度攝像機通常具有激光投射器、光學衍射元件(DOE)、紅外攝像頭三大核心器件。
這個圖(下圖)摘自primesense的專利。
可以看到primesense的doe是由兩部分組成的,一個是擴散片,一個是衍射片。先通過擴散成一個區(qū)域的隨機散斑,然后復制成九份,投射到了被攝物體上。根據(jù)紅外攝像頭捕捉到的紅外散斑,PS1080這個芯片就可以快速解算出各個點的深度信息。這兒還有兩款結(jié)構(gòu)光原理的攝像頭。
第一頁它是由兩幅十分規(guī)律的散斑組成,最后同時被紅外相機獲得,精度相對較高。但據(jù)說DOE成本也比較高。還有一種比較獨特的方案(最后一幅圖),它采用mems微鏡的方式,類似DLP投影儀,將激光器進行調(diào)頻,通過微鏡反射出去,并快速改變微鏡姿態(tài),進行行列掃描,實現(xiàn)結(jié)構(gòu)光的投射。(產(chǎn)自ST,ST經(jīng)常做出一些比較炫的黑科技)。
ToF (
time of flight
)也是一種很有前景的深度獲取方法。傳感器發(fā)出經(jīng)調(diào)制的近紅外光,遇物體后反射,傳感器通過計算光線發(fā)射和反射時間差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。類似于雷達,或者想象一下蝙蝠,
softkinetic
的
DS325
采用的就是ToF方案(TI設計的)。但是它的接收器微觀結(jié)構(gòu)比較特殊,有2個或者更多快門,測ps級別的時間差,但它的單位像素尺寸通常在100um的尺寸,所以目前分辨率不高。在有了深度圖之后呢,SLAM算法就開始工作了,由于Sensor和需求的不同,SLAM的呈現(xiàn)形式略有差異。大致可以分為
激光SLAM (也分2D和3D)和
視覺SLAM (也分
Sparse
、
semiDense
、
Dense
)兩類,但其主要思路大同小異。
這個是Sparse(稀疏)的這個偏Dense(密集)的
SLAM算法實現(xiàn)的4要素 SLAM算法在實現(xiàn)的時候主要要考慮以下4個方面吧:
地圖表示問題,比如dense和sparse都是它的不同表達方式,這個需要根據(jù)實際場景需求去抉擇 信息感知問題,需要考慮如何全面的感知這個環(huán)境,RGBD攝像頭FOV通常比較小,但激光雷達比較大 數(shù)據(jù)關聯(lián)問題,不同的sensor的數(shù)據(jù)類型、時間戳、坐標系表達方式各有不同,需要統(tǒng)一處理 定位與構(gòu)圖問題,就是指怎么實現(xiàn)位姿估計和建模,這里面涉及到很多數(shù)學問題,物理模型建立,狀態(tài)估計和優(yōu)化 其他的還有回環(huán)檢測問題,探索問題(exploration),以及綁架問題(kidnapping)。
640-3 這個是一個比較有名的SLAM算法,這個回環(huán)檢測就很漂亮。但這個調(diào)用了cuda,gpu對運算能力要求挺高,效果看起來比較炫。以VSLAM舉個栗子
我大概講一種比較流行的VSLAM方法框架。整個SLAM大概可以分為前端和后端
前端 前端相當于VO(視覺里程計),研究幀與幀之間變換關系。首先提取每幀圖像特征點,利用相鄰幀圖像,進行特征點匹配,然后利用RANSAC去除大噪聲,然后進行匹配,得到一個pose信息(位置和姿態(tài)),同時可以利用IMU(Inertial measurement unit慣性測量單元)提供的姿態(tài)信息進行濾波融合后端則主要是對前端出結(jié)果進行優(yōu)化,利用濾波理論(EKF、UKF、PF)、或者優(yōu)化理論TORO、G2O進行樹或者圖的優(yōu)化。最終得到最優(yōu)的位姿估計。
后端 后端這邊難點比較多,涉及到的數(shù)學知識也比較多,總的來說大家已經(jīng)慢慢拋棄傳統(tǒng)的濾波理論走向圖優(yōu)化去了。因為基于濾波的理論,濾波器穩(wěn)度增長太快,這對于需要頻繁求逆的EKF(擴展卡爾曼濾波器),PF壓力很大。而基于圖的SLAM,通常以keyframe(關鍵幀)為基礎,建立多個節(jié)點和節(jié)點之間的相對變換關系,比如仿射變換矩陣,并不斷地進行關鍵節(jié)點的維護,保證圖的容量,在保證精度的同時,降低了計算量。列舉幾個目前比較有名的SLAM算法:
PTAM
,
MonoSLAM
,
ORB-SLAM
,
RGBD-SLAM
,
RTAB-SLAM
,
LSD-SLAM
。
RGBD-SLAM MonoSLAM LSD-SLAM 所以大家如果想學習SLAM的話,各個高校提高的素材是很多的,比如賓大、MIT、ETH、香港科技大學、帝國理工等等都有比較好的代表作品,還有一個比較有前景的就是三維的機器視覺,普林斯頓大學的肖劍雄教授結(jié)合SLAM和Deep Learning做一些三維物體的分類和識別,實現(xiàn)一個對場景深度理解的機器人感知引擎。
http://robots.princeton.edu/talks/2016_MIT/RobotPerception.pdf
SLAM 技術從最早的軍事用途(核潛艇海底定位就有了SLAM的雛形)到今天,已經(jīng)逐步走入人們的視野,掃地機器人的盛行更是讓它名聲大噪。同時基于三維視覺的VSLAM越來越顯主流。在
地面/空中機器人 、
VR/AR/MR 、
汽車/AGV自動駕駛 等領域,都會得到深入的發(fā)展,同時也會出現(xiàn)越來越多的細分市場等待挖掘。
SLAM技術的應用領域 1)室內(nèi)機器人
掃地機要算機器人里最早用到SLAM技術這一批了。國內(nèi)的科沃斯、塔米掃地機通過用SLAM算法結(jié)合激光雷達或者攝像頭的方法,讓
掃地機可以高效繪制室內(nèi)地圖 ,
智能分析和規(guī)劃掃地環(huán)境 ,從而成功讓自己步入了智能導航的陣列。不過有意思的是,科沃斯引領時尚還沒多久,一大幫懂Slam算法的掃地機廠商就開始陸陸續(xù)續(xù)地推出自己的智能導航,直到昨天雷鋒網(wǎng)還看到一款智能掃地機新鮮出爐,而這追逐背后的核心,大家都知道就是SLAM技術的應用。
而另一個跟SLAM息息相關的室內(nèi)移動機器人,因為目前市場定位和需求并不明確,我們目前只能在商場導購室內(nèi)機器人和Buddy那樣的demo視頻里才能看到,國內(nèi)
Watchhhh Slam 和
Slam Tech 兩家公司都是做這方面方案提供的,以現(xiàn)實的觀點看,現(xiàn)在室內(nèi)移動機器人市場定位和需求沒落地的時候,由方案商公司推動,商用室內(nèi)移動機器人先行,這反而是一種曲線救國的發(fā)展方式。2)AR
目前基于SLAM技術開發(fā)的代表性產(chǎn)品有微軟的Hololens,谷歌的Project Tango以及同樣有名的Magic Leap,后者4月20號公布它的新一代水母版demo后,國內(nèi)的AR公司更加看到了這個趨勢。比如進化動力近期就公布了他們的SLAM demo, 用一個小攝像頭實現(xiàn)VR頭顯空間定位,而易瞳去年10月雷鋒網(wǎng)去試用新品的時候,就發(fā)現(xiàn)已經(jīng)整合SLAM技術了,國內(nèi)其他公司雖然沒有正式公布,但我們可以肯定,他們都在暗暗研發(fā)這項技術,只等一個成熟的時機就會展現(xiàn)給大家。
進化動力CTO聶崇嶺向雷鋒網(wǎng)表示,如果用一個準確的說法很多VR應用需要用到SLAM技術,定位只是一個feature,路徑記錄、3D重構(gòu)、地圖構(gòu)建都可以是SLAM技術的輸出。3)無人機
國外的話,原來做 Google X Project Wing 無人機的創(chuàng)始人 MIT 機器人大牛 Nicholas Roy 的學生 Adam Bry 創(chuàng)辦的 Skydio,挖來了 Georgia Tech 的 Slam 大牛教授 Frank Dellaert 做他們的首席科學家。國內(nèi)大家非常熟悉的大疆精靈四避障用的雙目視覺 超聲波,一位大疆工程師徐梟涵在百度百家的撰文里坦率承認“
P4里面呈現(xiàn)的主動避障功能就是一種非常非常典型的Slam的弱應用,無人機只需要知道障礙物在哪,就可以進行 Planning,并且繞開障礙物 。當然Slam能做的事情遠遠不止這些,包括災區(qū)救援,包括探洞,包括人機配合甚至集群,所有的關于無人機的夢想都建立在Slam之上,這是無人機能飛(具有定位,姿態(tài)確定以后)的時代以后,無人機最核心的技術?!?/p>
而近期另一個號稱刷爆美國朋友圈的hover camera無人機,因為其創(chuàng)始人的的計算機視覺背景,正式把SLAM技術應用進來了,在介紹他們無人機的主要產(chǎn)品技術時,提到了●SLAM(即時定位與地圖構(gòu)建):通過感知自身周圍環(huán)境來構(gòu)建3D增量式地圖,從而實現(xiàn)自主定位和導航。4)無人駕駛
因為Google無人駕駛車的科普,很多人都知道了基于激光雷達技術的Lidar Slam。
Lidar Slam是指利用激光雷達作為外部傳感器,獲取地圖數(shù)據(jù),使機器人 實現(xiàn)同步定位與地圖構(gòu)建 。雖然成本高昂,但目前為止是最穩(wěn)定、最可靠、高性能的SLAM方式。
另外,2011 年,牛津大學Mobile Robotics Group 首次向公眾展示他們的第一輛無人駕駛汽車野貓(Wildcat),這是一輛由 Bowler Wildcat 4X4 改裝而成的車。汽車頭頂?shù)南鄼C和激光能夠搜集信息然后即時分析導航,已經(jīng)成功通過了測試。2014 年,他們改裝的一輛 Nissan 的 Leaf 也成功路測。Mobile Robotics Group主要研究領域是大規(guī)模的導航和對自然場景理解。據(jù)稱,團隊所擁有的技術非常牛逼,其復雜和先進性遠遠超過一般的同步定位與地圖構(gòu)建(SLAM)算法。可圈可點的是,對于無人駕駛技術,他們并沒有使用 GPS 或者是嵌入式的基礎設施(信標之類的),而是使用算法來導航,包括機器學習和概率推理來建立周圍的地圖等。
免責聲明: 本文轉(zhuǎn)自互聯(lián)網(wǎng)。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。 —— The End?— — 推薦好文 ?? 點擊藍色字體即可跳轉(zhuǎn) ??沒想到靠股市,我差點成功逆襲 ??分享一下嵌入式 HarmonyOS 的學習思路? ??推薦一款我私藏已久的串口示波神器 ??一位老電子工程師的十年職場感悟 ??優(yōu)雅地用宏實現(xiàn)環(huán)形緩沖區(qū) 歡迎 轉(zhuǎn)發(fā)、留言、點贊、分享 給你的朋友,感謝您的支持! 長按識別二維碼關注我 你點的每個好看,我都認真當成了喜歡