機器人的雙眸:視覺SLAM是如何實現的?

2021-01-10 雷鋒網

雷鋒網(公眾號:雷鋒網)按:本文作者高翔,清華大學自動化學院博士研究生,主要研究興趣為基於RGB-D相機的視覺SLAM技術。先後獲得清華大學新生獎學金、張明為獎學金並三次獲得國家勵志獎學金,相關研究成果發表於Robotics and Autonomous Systems、Autonomous Robot、CCC等期刊和會議,個人博客(點擊可看)。原標題為:《機器人的雙眸:視覺SLAM導論》。

開始做SLAM(機器人同時定位與建圖)研究已經近三年了。從博士一年級開始對這個方向產生興趣,到現在為止,也算是對這個領域有了大致的了解。然而越了解,越覺得這個方向難度很大。總體來講有以下幾個原因:    

1. 入門資料很少。雖然國內也有不少人在做,但這方面現在沒有太好的入門教程。《SLAM for dummies》可以算是一篇。中文資料幾乎沒有。    

2. SLAM研究已進行了三十多年,從上世紀的九十年代開始。其中又有若干歷史分枝和爭論,要把握它的走向就很費工夫。    

3. 難以實現。SLAM是一個完整的系統,由許多個分支模塊組成。現在經典的方案是「圖像前端,優化後端,閉環檢測」的三部曲,很多文獻看完了自己實現不出來。    

4. 自己動手編程需要學習大量的先決知識。首先你要會C和C++,網上很多代碼還用了11標準的C++。第二要會用Linux。第三要會cmake,vim/emacs及一些編程工具。第四要會用openCV, PCL, Eigen等第三方庫。只有學會了這些東西之後,你才能真正上手編一個SLAM系統。如果你要跑實際機器人,還要會ROS。

當然,困難多意味著收穫也多,坎坷的道路才能鍛鍊人(比如說走著走著才發現Linux和C++才是我的真愛之類的。)鑑於目前網上關於視覺SLAM的資料極少,我於是想把自己這三年的經驗與大家分享一下。說的不對的地方請大家批評指正。

這篇文章關注視覺SLAM,專指用攝像機,Kinect等深度像機來做導航和探索,且主要關心室內部分。到目前為止,視覺SLAM的框架已基本成熟,可以在運動穩定、光照充足的環境中,在釐米級別的誤差範圍內進行定位與建圖。但是,離充滿動態光照和人群密集的現實環境,要應用視覺SLAM技術,仍有很長的路要走。以下,我會介紹SLAM的歷史、理論以及實現的方式,且主要介紹視覺(Kinect)的實現方式。

| SLAM問題        

SLAM,全稱叫做Simultaneous Localization and Mapping,中文叫做同時定位與建圖。大體說來,一個SLAM系統分為四個模塊(除去傳感器數據讀取),如下圖所示:

啊不行,這麼講下去,這篇文章肯定沒有人讀,所以我們換一個講法,引入機器人「小蘿蔔」同學。

小蘿蔔的故事

從前,有一個機器人叫「小蘿蔔」。它長著一雙烏黑髮亮的大眼睛,叫做Kinect。有一天,它被邪惡的科學家關進了一間空屋子,裡面放滿了雜七雜八的東西。

小蘿蔔感到很害怕,因為這個地方他從來沒來過,一點兒也不了解。讓他感到害怕的主要是三個問題:

1. 自己在哪裡? 

2.  這是什麼地方? 

3.  怎麼離開這個地方?

在SLAM理論中,第一個問題稱為定位 (Localization),第二個稱為建圖 (Mapping),第三個則是隨後的路徑規劃。我們希望藉助Kinect工具,幫小蘿蔔解決這個難題。各位同學有什麼思路呢?

| Kinect數據

要打敗敵人,首先要了解你的武器。不錯,我們先介紹一下Kinect。眾所周知這是一款深度相機,你或許還聽說過別的牌子,但Kinect的價格便宜,測量範圍在3m-12m之間,精度約3cm,較適合於小蘿蔔這樣的室內機器人。它採到的圖像是這個樣子的(從左往右依次為rgb圖,深度圖與點雲圖):

Kinect的一大優勢在於能比較廉價地獲得每個像素的深度值,不管是從時間上還是從經濟上來說。OK,有了這些信息,小蘿蔔事實上可以知道它採集到的圖片中,每一個點的3d位置。只要我們事先標定了Kinect,或者採用出廠的標定值。

我們把坐標系設成這個樣子,這也是openCV中採用的默認坐標系。

o』-uv是圖片坐標系,o-xyz是Kinect的坐標系。假設圖片中的點為(u,v),對應的三維點位置在(x,y,z),那麼它們之間的轉換關係是這樣的:

或者更簡單的:

後一個公式給出了計算三維點的方法。先從深度圖中讀取深度數據(Kinect給的是16位無符號整數),除掉z方向的縮放因子,這樣你就把一個整數變到了以米為單位的數據。然後,x,y用上面的公式算出。一點都不難,就是一個中心點位置和一個焦距而已。f代表焦距,c代表中心。如果你沒有自己標定你的Kinect,也可以採用默認的值:s=5000, cx = 320, cy=240, fx=fy=525。實際值會有一點偏差,但不會太大。

| 定位問題

知道了Kinect中每個點的位置後,接下來我們要做的,就是根據兩幀圖像間的差別計算小蘿蔔的位移。比如下面兩張圖,後一張是在前一張之後1秒採集到的:

你肯定可以看出,小蘿蔔往右轉過了一定的角度。但究竟轉過多少度呢?這就要靠計算機來求解了。這個問題稱為相機相對姿態估計,經典的算法是ICP(Iterative Closest Point,迭代最近點)。

這個算法要求知道這兩個圖像間的一組匹配點,說的通俗點,就是左邊圖像哪些點和右邊是一樣的。你當然看見那塊黑白相間的板子同時出現在兩張圖像中。

在小蘿蔔看來,這裡牽涉到兩個簡單的問題:特徵點的提取和匹配。

如果你熟悉計算機視覺,那你應該聽說過SIFT, SURF之類的特徵。不錯,要解決定位問題,首先要得到兩張圖像的一個匹配。匹配的基礎是圖像的特徵,下圖就是SIFT提取的關鍵點與匹配結果:

對實現代碼感興趣的同學請Google「opencv 匹配」即可,在openCV的教程上也有很明白的例子。上面的例子可以看出,我們找到了一些匹配,但其中有些是對的(基本平等的匹配線),有些是錯的。這是由於圖像中存在周期性出現的紋理(黑白塊),所以容易搞錯。但這並不是問題,在接下來的處理中我們會將這些影響消去。

得到了一組匹配點後,我們就可以計算兩個圖像間的轉換關係,也叫PnP問題。它的模型是這樣的:

R為相機的姿態,C為相機的標定矩陣。R是不斷運動的,而C則是隨著相機做死的。ICP的模型稍有不同,但原理上也是計算相機的姿態矩陣。原則上,只要有四組匹配點,就可以算這個矩陣。你可以調用openCV的SolvePnPRANSAC函數或者PCL的ICP算法來求解。openCV提供的算法是RANSAC(Random Sample Consensus,隨機採樣一致性)架構,可以剔除錯誤匹配。所以代碼實際運行時,可以很好地找到匹配點。以下是一個結果的示例。

上面兩張圖轉過了16.63度,位移幾乎沒有。

有同學會說,那只要不斷匹配下去,定位問題不就解決了嗎?表面上看來,的確是這樣的,只要我們引入一個關鍵幀的結構(發現位移超過一個固定值時,定義成一個關鍵幀)。然後,把新的圖像與關鍵幀比較就行了。至於建圖,就是把這些關鍵幀的點雲拼起來,看著還有模有樣,煞有介事的:

然而,如果事情真這麼簡單,SLAM理論就不用那麼多人研究三十多年了(它是從上世紀90年代開始研究的)(上面講的那些東西簡直隨便哪裡找個小碩士就能做出來……)。那麼,問題難在什麼地方呢?

| SLAM端優化理論

最麻煩的問題,就是「噪聲」。這種漸近式的匹配方式,和那些慣性測量設備一樣,存在著累積噪聲。因為我們在不斷地更新關鍵幀,把新圖像與最近的關鍵幀比較,從而獲得機器人的位移信息。但是你要想到,如果有一個關鍵幀出現了偏移,那麼剩下的位移估計都會多出一個誤差。這個誤差還會累積,因為後面的估計都基於前面的機器人位置……

哇!這後果簡直不堪設想啊。例如,你的機器人往右轉了30度,再往左轉了30度回到原來的位置。然而由於誤差,你算成了向右轉29度,再向左轉31度,這樣你構建的地圖中,會出現初始位置的兩個「重影」。

我們能不能想辦法消除這個該死的誤差呢?      

朋友們,這才是SLAM的研究,前面的可以說是「圖像前端」的處理方法。我們的解決思路是:

如果你和最近的關鍵幀相比,會導致累計誤差。那麼,我們最好是和更前面的關鍵幀相比,而且多比較幾個幀,不要只比較一次。

我們用數學來描述這個問題。設:

不要怕,只有藉助數學才能把這個問題講清楚。上面的公式中,xp是機器人小蘿蔔的位置,我們假定由n個幀組成。xL則是路標,在我們的圖像處理過程中就是指SIFT提出來的關鍵點。如果你做2D SLAM,那麼機器人位置就是x, y加一個轉角theta。如果是3D SLAM,就是x,y,z加一個四元數姿態(或者rpy姿態)。這個過程叫做參數化(Parameterization)。

不管你用哪種參數,後面兩個方程你都需要知道。前一個叫運動方程,描述機器人怎樣運動。u是機器人的輸入,w是噪聲。這個方程最簡單的形式,就是你能通過什麼方式(碼盤等)獲得兩幀間的位移差,那麼這個方程就直接是上一幀與u相加即得。另外,你也可以完全不用慣性測量設備,這樣我們就只依靠圖像設備來估計,這也是可以的。

後一個方程叫觀測方程,描述那些路標是怎麼來的。你在第i幀看到了第j個路標,產生了一個測量值,就是圖像中的橫縱坐標。最後一項是噪聲。偷偷告訴你,這個方程形式上和上一頁的那個方程是一模一樣的。

在求解SLAM問題前,我們要看到,我們擁有的數據是什麼?在上面的模型裡,我們知道的是運動信息u以及觀測z。用示意圖表示出來是這樣的:

我們要求解的,就是根據這些u和z,確定所有的xp和xL。這就是SLAM問題的理論。

從SLAM誕生開始科學家們就一直在解決這個問題。最初,我們用Kalman濾波器,所以上面的模型(運動方程和觀測方程)被建成這個樣子。直到21世紀初,卡爾曼濾波器仍在SLAM系統佔據最主要的地位,Davison經典的單目SLAM就是用EKF做的。但是後來,出現了基於圖優化的SLAM方法,漸漸有取而代之的地位[1]。我們在這裡不介紹卡爾曼濾波器,有興趣的同學可以在wiki上找卡爾曼濾波器,另有一篇中文的《卡爾曼濾波器介紹》也很棒。由於濾波器方法存儲n個路標要消耗n平方的空間,在計算量上有點對不住大家。儘管08年有人提出分治法的濾波器能把複雜度弄到O(n) [2],但實現手段比較複雜。我們要介紹那種新興的方法: Graph-based SLAM

圖優化方法把SLAM問題做成了一個優化問題。學過運籌學的同學應該明白,優化問題對我們有多麼重要。我們不是要求解機器人的位置和路標位置嗎?我們可以先做一個猜測,猜想它們大概在什麼地方。這其實是不難的。然後呢,將猜測值與運動模型/觀測模型給出的值相比較,可以算出誤差:

通俗一點地講,例如,我猜機器人第一幀在(0,0,0),第二幀在(0,0,1)。但是u1告訴我機器人往z方向(前方)走了0.9米,那麼運動方程就出現了0.1m的誤差。同時,第一幀中機器人發現了路標1,它在該機器人圖像的正中間;第二幀卻發現它在中間偏右的位置。這時我們猜測機器人只是往前走,也是存在誤差的。至於這個誤差是多少,可以根據觀測方程算出來。

我們得到了一堆誤差,把這些誤差平方後加起來(因為單純的誤差有正有負,然而平方誤差可以改成其他的範數,只是平方更常用),就得到了平方誤差和。我們把這個和記作phi,就是我們優化問題的目標函數。而優化變量就是那些個xp, xL。

改變優化變量,誤差平方和(目標函數)就會相應地變大或變小,我們可以用數值方法求它們的梯度和二階梯度矩陣,然後用梯度下降法求最優值。這些東西學過優化的同學都懂的。

注意到,一次機器人SLAM過程中,往往會有成千上萬幀。而每一幀我們都有幾百個關鍵點,一乘就是幾百萬個優化變量。這個規模的優化問題放到小蘿蔔的機載小破本上可解嗎?是的,過去的同學都以為,Graph-based SLAM是無法計算的。但就在21世紀06,07年後,有些同學發現了,這個問題規模沒有想像的那麼大。上面的J和H兩個矩陣是「稀疏矩陣」,於是呢,我們可以用稀疏代數的方法來解這個問題。「稀疏」的原因,在於每一個路標,往往不可能出現在所有運動過程中,通常只出現在一小部分圖像裡。正是這個稀疏性,使得優化思路成為了現實。

優化方法利用了所有可以用到的信息(稱為full-SLAM, global SLAM),其精確度要比我們一開始講的幀間匹配高很多。當然計算量也要高一些。      

由於優化的稀疏性,人們喜歡用「圖」來表達這個問題。所謂圖,就是由節點和邊組成的東西。我寫成G={V,E},大家就明白了。V是優化變量節點,E表示運動/觀測方程的約束。什麼,更糊塗了嗎?那我就上一張圖,來自[3]。

圖有點模糊,而且數學符號和我用的不太一樣,我用它來給大家一個圖優化的直觀形象。

上圖中,p是機器人位置,l是路標,z是觀測,t是位移。其中呢,p, l是優化變量,而z,t是優化的約束。看起來是不是像一些彈簧連接了一些質點呢?因為每個路標不可能出現在每一幀中,所以這個圖是蠻稀疏的。

不過,「圖」優化只是優化問題的一個表達形式,並不影響優化的含義。實際解起來時還是要用數值法找梯度的。這種思路在計算機視覺裡,也叫做Bundle Adjustment。它的具體方法請參見一篇經典文章[4]。

不過,BA的實現方法太複雜,不太建議同學們拿C來寫。好在2010年的ICRA上,其他的同學們提供了一個通用的開發包:g2o [5]。它是有圖優化通用求解器,很好用,我改天再詳細介紹這個軟體包。總之,我們只要把觀測和運動信息丟到求解器裡就行。這個優化器會為我們求出機器人的軌跡和路標位置。如下圖,紅點是路標,藍色箭頭是機器人的位置和轉角(2D SLAM)。細心的同學會發現它往右偏轉了一些:

| 閉環檢測

上面提到,僅用幀間匹配最大的問題在於誤差累積,圖優化的方法可以有效地減少累計誤差。然而,如果把所有測量都丟進g2o,計算量還是有點兒大的。根據我自己測試,約10000多條邊,g2o跑起來就有些吃力了。這樣,就有同學說,能把這個圖構造地簡潔一些嗎?我們用不著所有的信息,只需要把有用的拿出來就行了。

事實上,小蘿蔔在探索房間時,經常會左轉一下,右轉一下。如果在某個時刻他回到了以前去過的地方,我們就直接與那時候採集的關鍵幀做比較,可以嗎?我們說,可以,而且那是最好的方法。這個問題叫做閉環檢測。

閉環檢測是說,新來一張圖像時,如何判斷它以前是否在圖像序列中出現過?

有兩種思路:一是根據我們估計的機器人位置,看是否與以前某個位置鄰近;二是根據圖像的外觀,看它是否和以前關鍵幀相似。

目前主流方法是後一種,因為很多科學家認為前一種依靠有噪聲的位置來減少位置的噪聲,有點循環論證的意思。後一種方法呢,本質上是個模式識別問題(非監督聚類,分類),常用的是Bag-of-Words (BOW)。但是BOW需要事先對字典進行訓練,因此SLAM研究者仍在探討有沒有更合適的方法

在Kinect SLAM經典大作中[6],作者採用了比較簡單的閉環方法:在前面n個關鍵幀中隨機採k個,與當前幀兩兩匹配。匹配上後認為出現閉環。這個真是相當的簡單實用,效率也過得去。

高效的閉環檢測是SLAM精確求解的基礎。研究者也在嘗試利用深度學習技術提高閉環檢測的精度,例如本文作者發表在Autonomous Robot期刊上的論文Unsupervised Learning to Detect Loops Using Deep Neural Networks for Visual SLAM System採用了無監督的深度自動編碼機從原始輸入圖像中學習緊湊的圖像表示,相比於傳統的Bag of Word方法提高了閉環檢測的魯棒性。方法流程圖如下[7]:

| 小結

本文我們介紹了SLAM的基本概念,重點介紹了圖優化解決SLAM問題的思路。本文作者編寫了一個基於RGB-D相機的SLAM程序(點擊可進入github地址),它是一個Linux下基於cmake的工程。

參考文獻

[1] Visual SLAM: Why filter? Strasdat et. al., Image and Vision Computing, 2012.

[2] Divide and Conquer: EKF SLAM in O(n), Paz Lina M et al., IEEE Transaction on Robotics, 2008

[3] Relative bundle adjustment, Sibley, Gabe, 2009

[4] Bundle adjustment - a Modern Synthesis. Triggs B et. el., Springer, 2000

[5] g2o: A General Framework for Graph Optimization, Kummerle Rainer, et. al., ICRA, 2011

[6] 3-D Mapping with an RGB-D Camera, IEEE Transaction on Robotics, Endres et al., 2014

[7] Xiang Gao, Tao Zhang, Unsupervised Learning to Detect Loops Using Deep Neural Networks for Visual SLAM System, Autonomous Robot, 2015.  

雷鋒網註:本文由作者發布於深度學習大講堂,轉載請聯繫授權並保留出處和作者,不得刪減內容。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 新手入門SLAM必備資料
    如果要跑實際機器人,還要會ROS。下面將為大家推薦SLAM入門的學習書籍、SLAM公開課、SLAM學習網站、SLAM開原始碼等資料大全。SLAM學習書籍:1.必讀經典Thrun S, Burgard W, Fox D. 《Probabilistic robotics》[M].
  • 視覺SLAM技術
    SLAM的實現方式與難度和傳感器的形式與安裝方式密切相關。傳感器分為雷射和視覺兩大類,視覺下面又分三小方向。下面就帶你認識這個龐大家族中每個成員的特性。 1. 傳感器之雷射雷達 雷射雷達是最古老,研究也最多的SLAM傳感器。
  • 視覺導航 vs 雷射導航,掃地機器人SLAM技術解析
    如今掃地機器人越來越受歡迎,已經成為一類「新興小家電」。為了效率更高、更節能地實現清掃全屋的功能,繪製室內地圖以及確定自身位置是必不可少的功能,許多早期掃地機器人產品並沒有配備導航系統,只能按照設定的路線進行清掃,碰到牆壁或物體邊緣便轉向,導致清掃線路雜亂無章、效率低下。
  • SLAM,讓機器人知行合一 | 雷鋒網公開課
    其實這些規劃能力單單靠前面介紹的D*這類算法是完成不了的。掃地機器人還需要有額外的規划算法,比如針對摺返的工字形清掃,有很多問題要處理。例如如何最有效的清掃一個區域而不重複清掃?不過目前服務機器人行業其實對雷射雷達是很好的機遇,我覺得國內如果能把握這個機遇,還是有希望能在也些細分領域超於國外同行。以下為硬創公開課群友問答:Q:如今SLAM已經能在掃地機器人身上使用,有不少的移動機器人公司也都看好SLAM,但並沒有聽說哪個公司真的做出比較成熟的視覺導航系統,這是因為什麼原因呢?
  • 雷射SLAM與視覺SLAM的現狀與趨勢
    SLAM技術對於機器人或其他智能體的行動和交互能力至為關鍵,因為它代表了這種能力的基礎:知道自己在哪裡,知道周圍環境如何,進而知道下一步該如何自主行動。它在自動駕駛、服務型機器人、無人機、AR/VR等領域有著廣泛的應用,可以說凡是擁有一定行動能力的智能體都擁有某種形式的SLAM系統。 一般來講,SLAM系統通常都包含多種傳感器和多種功能模塊。
  • 無人機視覺slam給你答案
    目前,視覺SLAM可分為單目、雙目(多目)、RGBD這三類,另還有魚眼、全景等特殊相機,但目前在研究和產品中還屬於少數,此外,結合慣性測量器件(Inertial Measurement Unit,IMU)的視覺SLAM也是現在研究熱點之一。從實現難度上來說,大致將這三類方法排序為:單目視覺>雙目視覺>RGBD。
  • 斯坦德機器人淺析移動機器人的SLAM技術
    另一種是視覺導航,利用攝像頭,對周邊的圖像進行採集,利用算法生成地圖和運行路徑。目前,兩種方式各有優劣,也有廠家採用多種傳感器的方式,實現更高級標準的導航。Visual SLAM即(vSLAM)是一種基於計算機視覺的技術,主要用於室內定位導航。原理是通過視覺攝像機拍攝周圍的圖像,然後計算出周圍環境的位置和方向,也就是對未知環境進行地圖構建,然後就可以幫助移動機器人導航。
  • 移動機器人定位技術—雷射SLAM
    直至2015年左右,SLAM才逐漸成為國內機器人和計算機視覺領域的熱門研究方向,在當前較為熱門的領域嶄露頭角。本文僅對沒有接觸過SLAM的新人進行的科普。近年來,移動機器人技術在世界範圍內得到快速發展。
  • 淺析移動機器人的SLAM技術
    另一種是視覺導航,利用攝像頭,對周邊的圖像進行採集,利用算法生成地圖和運行路徑。目前,兩種方式各有優劣,也有廠家採用多種傳感器的方式,實現更高級標準的導航。    視覺導航Visual SLAM   Visual SLAM即(vSLAM)是一種基於計算機視覺的技術,主要用於室內定位導航。
  • SLAM算法解析:抓住視覺SLAM難點,了解技術發展大趨勢
    在無人駕駛方面,可以使用 SLAM 技術提供視覺裡程計功能,然後跟其他的定位方式融合。機器人定位導航方面,SLAM 可以用於生成環境的地圖。基於這個地圖,機器人執行路徑規劃、自主探索、導航等任務。SLAM 技術的發展距今已有 30 餘年的歷史,涉及的技術領域眾多。由於本身包含許多步驟,每一個步驟均可以使用不同算法實現,SLAM 技術也是機器人和計算機視覺領域的熱門研究方向。
  • 盤點視覺SLAM技術在各領域的應用
    SLAM試圖解決這樣的問題:一個機器人在未知的環境中運動,如何通過對環境的觀測確定自身的運動軌跡,同時構建出環境的地圖。SLAM技術正是為了實現這個目標涉及到的諸多技術的總和。 SLAM通常包括如下幾個部分,特徵提取,數據關聯,狀態估計,狀態更新以及特徵更新等。
  • 視覺SLAM技術以及其應用詳解
    SLAM試圖解決這樣的問題:一個機器人在未知的環境中運動,如何通過對環境的觀測確定自身的運動軌跡,同時構建出環境的地圖。SLAM技術正是為了實現這個目標涉及到的諸多技術的總和。 SLAM通常包括如下幾個部分,特徵提取,數據關聯,狀態估計,狀態更新以及特徵更新等。
  • 機器人自主移動的秘密:實際應用中,SLAM究竟是如何實現的?(二)
    本文是《機器人自主移動的秘密》系列第二篇。SLAM主要解決機器人的實時定位與自動建圖問題,那麼,在實際應用時,SLAM究竟是如何實現的呢?在實現過程中有哪些難點?這是一個完整的SLAM和導航系統的主要架構圖:
  • 快倉最新款「手腳並用」複合機器人亮相世界人工智慧大會
    2020年世界人工智慧大會在上海啟幕,又到了人工智慧企業接受「拷問」的時刻:過去一年成長情況如何?
  • 在實際應用中,SLAM技術是如何實現的?
    SLAM作為機器人自主定位導航的重要突破口正不斷引起業內重視,它是實現機器人自主行走的關鍵技術,可幫助機器人實現即時定位與地圖構建,在實際應用中,SLAM技術究竟又是如何實現的呢?一起來探個究竟。
  • 面向環境與載體特性視覺SLAM方法簡介
    同步定位與地圖構建(Simultaneous Localization and Mapping,SLAM)是智慧機器人在未知環境中實現自主移動的核心技術之一。以攝像頭為主的SLAM技術又被稱為視覺SLAM,它通過處理視頻攝像頭捕獲的圖像信息,實時獲取攝像頭六自由度的位置朝向信息(定位),並同時構建環境的三維點雲地圖(地圖構建)視覺SLAM在多個領域具有極高的應用價值,如地面移動機器人、無人機自動駕駛車輛、穿戴式設備的定位導航,以及增強(AR)/虛擬實境(VR)中的相機姿態跟蹤,近年來受到業界高度關注。
  • 一種低成本、高精度的雷射雷達輔助視覺SLAM系統
    南方科技大學ISEE團隊通過探索Livox雷射雷達的獨特特徵,將Livox雷射雷達應用到視覺SLAM(ORBSLAM2)中,提出了CamVox。        同時,基於Livox雷射雷達的非重複特性, 提出了一種適用於非受控場景的雷射雷達-相機自動標定方法,更長的深度探測範圍也有利於更有效的建圖。  為什麼要實現CamVox?
  • 用機器人研究機器人?加拿大推出價值16萬美元的SLAM研究機器人
    但對於機器人卻不是這樣,人們需要給機器人設計各種各樣環境,讓機器人能感知環境、設計路線、避開障礙,從而進行移動。在研究過程中,人們需要一個完善的機器人模型,來一次次進行實驗。近日,加拿大的機器人公司Kinova Robotics展示了一款雙臂輪式機器人Movo,專門用於機器人研究。
  • 仙知機器人|技術乾貨,帶你了解SLAM技術的前世今生
    SLAM它試圖解決這樣的問題:一個機器人在未知的環境中運動,如何通過對環境的觀測確定自身的運動軌跡,同時構建出環境的地圖。SLAM技術正是為了實現這個目標涉及到的諸多技術的總和。由於其重要的理論與應用價值,被很多學者認為是實現真正全自主移動機器人的關鍵。相較於深度學習、神經網絡、大數據等熱門詞彙,聽過SLAM的人少之又少,是因為國內從事相關研究的機構更是屈指可數。
  • AR 走向普及的關鍵,視覺 SLAM 的挑戰與前景
    SLAM 全稱是 Simultaneous Localization and Mapping(同時定位與地圖構建),是機器人和計算機視覺領域的關鍵技術,可以在未知環境中確定自身方位並同時構建環境三維地圖,有著非常廣泛的應用場景,比如說增強現實、虛擬實境、機器人、自動駕駛等。