<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > SLAM——讓機器人認路的技術(shù)

SLAM——讓機器人認路的技術(shù)

發(fā)布人:傳感器技術(shù) 時(shí)間:2024-08-24 來(lái)源:工程師 發(fā)布文章

SLAM (simultaneous localization and mapping),也稱(chēng)為CML (Concurrent Mapping and Localization), 即時(shí)定位與地圖構建,或并發(fā)建圖與定位。問(wèn)題可以描述為:將一個(gè)機器人放入未知環(huán)境中的未知位置,是否有辦法讓機器人一邊逐步描繪出此環(huán)境完全的地圖,同時(shí)一邊決定機器人應該往哪個(gè)方向行進(jìn)。例如掃地機器人就是一個(gè)很典型的SLAM問(wèn)題,所謂完全的地圖(a consistent map)是指不受障礙行進(jìn)到房間可進(jìn)入的每個(gè)角落。SLAM最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理論與應用價(jià)值,被很多學(xué)者認為是實(shí)現真正全自主移動(dòng)機器人的關(guān)鍵。


當你來(lái)到一個(gè)陌生的環(huán)境時(shí),為了迅速熟悉環(huán)境并完成自己的任務(wù)(比如找飯館,找旅館),你應當做以下事情:

a.用眼睛觀(guān)察周?chē)貥巳缃ㄖ?、大?shù)、花壇等,并記住他們的特征(特征提?。?br />b.在自己的腦海中,根據雙目獲得的信息,把特征地標在三維地圖中重建出來(lái)(三維重建)
c.當自己在行走時(shí),不斷獲取新的特征地標,并且校正自己頭腦中的地圖模型(bundle adjustment or EKF)
d.根據自己前一段時(shí)間行走獲得的特征地標,確定自己的位置(trajectory)
e.當無(wú)意中走了很長(cháng)一段路的時(shí)候,和腦海中的以往地標進(jìn)行匹配,看一看是否走回了原路(loop-closure detection)。實(shí)際這一步可有可無(wú)。
以上五步是同時(shí)進(jìn)行的,因此是simultaneous localization and mapping

圖片

離不開(kāi)這兩類(lèi)傳感器

目前用在SLAM上的Sensor主要分兩大類(lèi),激光雷達和攝像頭。

圖片

這里面列舉了一些常見(jiàn)的雷達和各種深度攝像頭。激光雷達有單線(xiàn)多線(xiàn)之分,角分辨率及精度也各有千秋。SICK、velodyne、Hokuyo以及國內的北醒光學(xué)、Slamtech是比較有名的激光雷達廠(chǎng)商。他們可以作為SLAM的一種輸入形式。

這個(gè)小視頻里展示的就是一種簡(jiǎn)單的2D SLAM。

圖片


這個(gè)小視頻是賓大的教授kumar做的特別有名的一個(gè)demo,是在無(wú)人機上利用二維激光雷達做的SLAM。

圖片

而VSLAM則主要用攝像頭來(lái)實(shí)現,攝像頭品種繁多,主要分為單目、雙目、單目結構光、雙目結構光、ToF幾大類(lèi)。他們的核心都是獲取RGB和depth map(深度信息)。簡(jiǎn)單的單目和雙目(Zed、leapmotion)我這里不多做解釋?zhuān)抑饕忉屢幌陆Y構光和ToF。

最近流行的結構光和TOF

結構光原理的深度攝像機通常具有激光投射器、光學(xué)衍射元件(DOE)、紅外攝像頭三大核心器件。

圖片

這個(gè)圖(下圖)摘自primesense的專(zhuān)利。

圖片

可以看到primesense的doe是由兩部分組成的,一個(gè)是擴散片,一個(gè)是衍射片。先通過(guò)擴散成一個(gè)區域的隨機散斑,然后復制成九份,投射到了被攝物體上。根據紅外攝像頭捕捉到的紅外散斑,PS1080這個(gè)芯片就可以快速解算出各個(gè)點(diǎn)的深度信息。

這兒還有兩款結構光原理的攝像頭。

圖片

圖片

第一頁(yè)它是由兩幅十分規律的散斑組成,最后同時(shí)被紅外相機獲得,精度相對較高。但據說(shuō)DOE成本也比較高。


還有一種比較獨特的方案(最后一幅圖),它采用mems微鏡的方式,類(lèi)似DLP投影儀,將激光器進(jìn)行調頻,通過(guò)微鏡反射出去,并快速改變微鏡姿態(tài),進(jìn)行行列掃描,實(shí)現結構光的投射。(產(chǎn)自ST,ST經(jīng)常做出一些比較炫的黑科技)。


ToF(time of flight)也是一種很有前景的深度獲取方法。

傳感器發(fā)出經(jīng)調制的近紅外光,遇物體后反射,傳感器通過(guò)計算光線(xiàn)發(fā)射和反射時(shí)間差或相位差,來(lái)?yè)Q算被拍攝景物的距離,以產(chǎn)生深度信息。類(lèi)似于雷達,或者想象一下蝙蝠,softkinetic的DS325采用的就是ToF方案(TI設計的),但是它的接收器微觀(guān)結構比較特殊,有2個(gè)或者更多快門(mén),測ps級別的時(shí)間差,但它的單位像素尺寸通常在100um的尺寸,所以目前分辨率不高。


在有了深度圖之后呢,SLAM算法就開(kāi)始工作了,由于Sensor和需求的不同,SLAM的呈現形式略有差異。大致可以分為激光SLAM(也分2D和3D)和視覺(jué)SLAM(也分Sparse、semiDense、Dense)兩類(lèi),但其主要思路大同小異。

圖片

這個(gè)是Sparse(稀疏)的

圖片

這個(gè)偏Dense(密集)的

圖片


SLAM算法實(shí)現的4要素

SLAM算法在實(shí)現的時(shí)候主要要考慮以下4個(gè)方面吧:

1. 地圖表示問(wèn)題,比如dense和sparse都是它的不同表達方式,這個(gè)需要根據實(shí)際場(chǎng)景需求去抉擇

2. 信息感知問(wèn)題,需要考慮如何全面的感知這個(gè)環(huán)境,RGBD攝像頭FOV通常比較小,但激光雷達比較大

3. 數據關(guān)聯(lián)問(wèn)題,不同的sensor的數據類(lèi)型、時(shí)間戳、坐標系表達方式各有不同,需要統一處理

4. 定位與構圖問(wèn)題,就是指怎么實(shí)現位姿估計和建模,這里面涉及到很多數學(xué)問(wèn)題,物理模型建立,狀態(tài)估計和優(yōu)化

其他的還有回環(huán)檢測問(wèn)題,探索問(wèn)題(exploration),以及綁架問(wèn)題(kidnapping)。

圖片

這個(gè)是一個(gè)比較有名的SLAM算法,這個(gè)回環(huán)檢測就很漂亮。但這個(gè)調用了cuda,gpu對運算能力要求挺高,效果看起來(lái)比較炫。


以VSLAM舉個(gè)栗子

圖片

我大概講一種比較流行的VSLAM方法框架。


整個(gè)SLAM大概可以分為前端和后端,前端相當于VO(視覺(jué)里程計),研究幀與幀之間變換關(guān)系。首先提取每幀圖像特征點(diǎn),利用相鄰幀圖像,進(jìn)行特征點(diǎn)匹配,然后利用RANSAC去除大噪聲,然后進(jìn)行匹配,得到一個(gè)pose信息(位置和姿態(tài)),同時(shí)可以利用IMU(Inertial measurement unit慣性測量單元)提供的姿態(tài)信息進(jìn)行濾波融合后端則主要是對前端出結果進(jìn)行優(yōu)化,利用濾波理論(EKF、UKF、PF)、或者優(yōu)化理論TORO、G2O進(jìn)行樹(shù)或者圖的優(yōu)化。最終得到最優(yōu)的位姿估計。


后端這邊難點(diǎn)比較多,涉及到的數學(xué)知識也比較多,總的來(lái)說(shuō)大家已經(jīng)慢慢拋棄傳統的濾波理論走向圖優(yōu)化去了。


因為基于濾波的理論,濾波器穩度增長(cháng)太快,這對于需要頻繁求逆的EKF(擴展卡爾曼濾波器),PF壓力很大。而基于圖的SLAM,通常以keyframe(關(guān)鍵幀)為基礎,建立多個(gè)節點(diǎn)和節點(diǎn)之間的相對變換關(guān)系,比如仿射變換矩陣,并不斷地進(jìn)行關(guān)鍵節點(diǎn)的維護,保證圖的容量,在保證精度的同時(shí),降低了計算量。

列舉幾個(gè)目前比較有名的SLAM算法:PTAM,MonoSLAM, ORB-SLAM,RGBD-SLAM,RTAB-SLAM,LSD-SLAM。

圖片

圖片

圖片

圖片

所以大家如果想學(xué)習SLAM的話(huà),各個(gè)高校提高的素材是很多的,比如賓大、MIT、ETH、香港科技大學(xué)、帝國理工等等都有比較好的代表作品,還有一個(gè)比較有前景的就是三維的機器視覺(jué),普林斯頓大學(xué)的肖劍雄教授結合SLAM和Deep Learning做一些三維物體的分類(lèi)和識別, 實(shí)現一個(gè)對場(chǎng)景深度理解的機器人感知引擎。

圖片

http://robots.princeton.edu/talks/2016_MIT/RobotPerception.pdf  


SLAM技術(shù)從最早的軍事用途(核潛艇海底定位就有了SLAM的雛形)到今天,已經(jīng)逐步走入人們的視野,掃地機器人的盛行更是讓它名聲大噪。同時(shí)基于三維視覺(jué)的VSLAM越來(lái)越顯主流。在地面/空中機器人、VR/AR/MR、汽車(chē)/AGV自動(dòng)駕駛等領(lǐng)域,都會(huì )得到深入的發(fā)展,同時(shí)也會(huì )出現越來(lái)越多的細分市場(chǎng)等待挖掘。

圖片


SLAM技術(shù)的應用領(lǐng)域


1)室內機器人

掃地機要算機器人里最早用到SLAM技術(shù)這一批了,國內的科沃斯、塔米掃地機通過(guò)用SLAM算法結合激光雷達或者攝像頭的方法,讓掃地機可以高效繪制室內地圖,智能分析和規劃掃地環(huán)境,從而成功讓自己步入了智能導航的陣列。

不過(guò)有意思的是,科沃斯引領(lǐng)時(shí)尚還沒(méi)多久,一大幫懂Slam算法的掃地機廠(chǎng)商就開(kāi)始陸陸續續地推出自己的智能導航,直到昨天雷鋒網(wǎng)還看到一款智能掃地機新鮮出爐,而這追逐背后的核心,大家都知道就是SLAM技術(shù)的應用。

圖片

而另一個(gè)跟SLAM息息相關(guān)的室內移動(dòng)機器人,因為目前市場(chǎng)定位和需求并不明確,我們目前只能在商場(chǎng)導購室內機器人和Buddy那樣的demo視頻里才能看到,國內Watchhhh Slam和Slam Tech兩家公司都是做這方面方案提供的,以現實(shí)的觀(guān)點(diǎn)看,現在室內移動(dòng)機器人市場(chǎng)定位和需求沒(méi)落地的時(shí)候,由方案商公司推動(dòng),商用室內移動(dòng)機器人先行,這反而是一種曲線(xiàn)救國的發(fā)展方式。


2)AR

目前基于SLAM技術(shù)開(kāi)發(fā)的代表性產(chǎn)品有微軟的Hololens,谷歌的Project Tango以及同樣有名的Magic Leap,后者4月20號公布它的新一代水母版demo后,國內的AR公司更加看到了這個(gè)趨勢,比如進(jìn)化動(dòng)力近期就公布了他們的SLAM demo, 用一個(gè)小攝像頭實(shí)現VR頭顯空間定位,而易瞳去年10月雷鋒網(wǎng)去試用新品的時(shí)候,就發(fā)現已經(jīng)整合SLAM技術(shù)了,國內其他公司雖然沒(méi)有正式公布,但我們可以肯定,他們都在暗暗研發(fā)這項技術(shù),只等一個(gè)成熟的時(shí)機就會(huì )展現給大家。

圖片

進(jìn)化動(dòng)力CTO聶崇嶺向雷鋒網(wǎng)表示,如果用一個(gè)準確的說(shuō)法

很多VR應用需要用到SLAM技術(shù),定位只是一個(gè)feature,路徑記錄、3D重構、地圖構建都可以是SLAM技術(shù)的輸出。


3)無(wú)人機

國外的話(huà),原來(lái)做 Google X Project Wing 無(wú)人機的創(chuàng )始人 MIT 機器人大牛 Nicholas Roy 的學(xué)生 Adam Bry 創(chuàng )辦的 Skydio,挖來(lái)了 Georgia Tech 的 Slam 大牛教授 Frank Dellaert 做他們的首席科學(xué)家。


國內大家非常熟悉的大疆精靈四避障用的雙目視覺(jué)+超聲波,一位大疆工程師徐梟涵在百度百家的撰文里坦率承認“P4里面呈現的主動(dòng)避障功能就是一種非常非常典型的Slam的弱應用,無(wú)人機只需要知道障礙物在哪,就可以進(jìn)行 Planning,并且繞開(kāi)障礙物。當然Slam能做的事情遠遠不止這些,包括災區救援,包括探洞,包括人機配合甚至集群,所有的關(guān)于無(wú)人機的夢(mèng)想都建立在Slam之上,這是無(wú)人機能飛(具有定位,姿態(tài)確定以后)的時(shí)代以后,無(wú)人機最核心的技術(shù)?!?/p>

圖片

而近期另一個(gè)號稱(chēng)刷爆美國朋友圈的hover camera無(wú)人機,因為其創(chuàng )始人的的計算機視覺(jué)背景,正式把SLAM技術(shù)應用進(jìn)來(lái)了,在介紹他們無(wú)人機的主要產(chǎn)品技術(shù)時(shí),提到了


●SLAM(即時(shí)定位與地圖構建):通過(guò)感知自身周?chē)h(huán)境來(lái)構建3D增量式地圖,從而實(shí)現自主定位和導航。


4)無(wú)人駕駛

因為Google無(wú)人駕駛車(chē)的科普,很多人都知道了基于激光雷達技術(shù)的Lidar Slam。Lidar Slam是指利用激光雷達作為外部傳感器,獲取地圖數據,使機器人實(shí)現同步定位與地圖構建。雖然成本高昂,但目前為止是最穩定、最可靠、高性能的SLAM方式。

圖片

另外,2011 年,牛津大學(xué)Mobile Robotics Group 首次向公眾展示他們的第一輛無(wú)人駕駛汽車(chē)野貓(Wildcat),這是一輛由 Bowler Wildcat 4X4 改裝而成的車(chē)。汽車(chē)頭頂的相機和激光能夠搜集信息然后即時(shí)分析導航,已經(jīng)成功通過(guò)了測試。2014 年,他們改裝的一輛 Nissan 的 Leaf 也成功路測。


Mobile Robotics Group主要研究領(lǐng)域是大規模的導航和對自然場(chǎng)景理解。據稱(chēng),團隊所擁有的技術(shù)非常牛逼,其復雜和先進(jìn)性遠遠超過(guò)一般的同步定位與地圖構建(SLAM)算法。


可圈可點(diǎn)的是,對于無(wú)人駕駛技術(shù),他們并沒(méi)有使用 GPS 或者是嵌入式的基礎設施(信標之類(lèi)的),而是使用算法來(lái)導航,包括機器學(xué)習和概率推理來(lái)建立周?chē)牡貓D等。


- END -


  


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: SLAM

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>