1. 程式人生 > >SLAM學習筆記(一)

SLAM學習筆記(一)

什麼是SLAM?

SLAM(Simultaneous Localization and Mapping),中文譯作同時定位與地圖建立。它是指搭載特定感測器的主體,在沒有環境先驗資訊的情況下,於運動過程中建立環境的模型,同時估計自己的運動。(源自:視覺SLAM十四講)我想這官話聽起來拗口,讓人感覺雲裡霧裡的,所以我找了一個形象的例子來幫助大家理解。相信不少朋友家都有掃地機器人吧,要知道市面上的大部分掃地機器人只具有簡單的避障功能,在室內隨機遊走,遇到障礙物就轉彎,這樣會導致有很多地方會漏掉,掃地效率非常低。要想實現真正的智慧清掃需要具體哪些條件呢?掃地機器人至少需要知道以下幾件事情:

  • 我在哪裡?也就是掃地機器人在工作過程中要知道自己在房間的具體位置。對應的術語叫:定位(Localization)
  • 我所處於的環境是什麼樣子?也就是掃地機器人需要知道整個房間的地面結構資訊。對應的術語叫:建圖(Mapping)
  • 我怎樣到達指定地點?當掃地機器人電量不足時,如何以最短的路徑到達充電器所在位置進行自動充電。對應的術語叫:路徑規劃(Route Planning)。當然SLAM主要是解決前兩個問題。

定位和建圖是兩個相輔相成的過程,地圖可以提供更好的定位,而定位也可以進一步擴建地圖。

SLAM感測器

事實上,SLAM的實現方式與難度和感測器密切相關,用於SLAM的感測器主要分為兩大類:鐳射雷達、視覺感測器。

鐳射雷達

鐳射雷達可以提供機器人與周圍環境的距離資訊。常見的鐳射雷達有SICK、Velodyne、Rplidar等。

鐳射雷達的技術方案有如下幾個特點:

1、精度很高,比較穩定。

2、速度快,計算量也不大,容易做成實時SLAM

3、理論研究成熟。鐳射雷達用於SLAM的技術方案(EKF-SLAM)因為研究較早,現在已經非常成熟。當然人們也對EKF-SLAM的缺點也有較清楚的認識。

4、笨重。鐳射雷達比普通的攝像頭在空間體積上大了不少。

5、價格昂貴。鐳射雷達成本很高,因此鐳射的研究主要集中於如何降低感測器的成本上。

視覺感測器

視覺SLAM是最近幾年SLAM研究熱點之一。它有如下幾個特點:

1、價格便宜。

2、體積小,重量輕。

3、可以獲取豐富且直觀的資訊。

4、計算量大。往往資訊量和計算量是成正比的,視覺SLAM中的特徵點檢測、匹配等過程非常耗時。不過隨著CPU、GPU處理器速度的飛速發展,很多以前被認為無法實時化的視覺演算法,得以近乎實時化地執行。

5、需要一定的假設條件。比如視覺演算法無法在無紋理區域進行。

視覺SLAM感測器主要分為三大類:單目、雙目(或多目)、深度相機(RGB-D)。

就實現難度而言,這三類方法難易程度從難到易依次為:單目相機、雙目相機、RGB-D。

單目相機

只使用一個攝像頭進行SLAM的做法稱為單目SLAM(Monocular SLAM),其優勢是感測器特別的簡單、成本特別的低,所以單目SLAM非常受研究者關注。最常見的單目相機資料是:照片。照片,本質上是拍照時的場景在相機的成像平面上留下的一個投影。也就是以二維的形式來反應三維的世界。顯然,這個過程丟失了一個維度,這個維度便是深度,也就是我們拍攝的物體離攝像機的距離。失掉距離這一維度會導致我們無法判斷物體的遠近以及大小。

單目相機有如下幾個特點:

1、單目SLAM只能估計一個相對深度。由於絕對深度未知,單目SLAM沒法得到機器人運動軌跡以及地圖的真實大小。直觀地說,如果把軌跡和地圖同時放大兩倍,單目看到的像是一樣的。

2、單目相機必須通過運動才能獲取深度。它無法僅根據一張影象獲得影象中物體離自己的相對距離。為了估計這個相對深度,單目SLAM要靠運動中的三角測量,來求解相機運動並估計畫素的空間位置。也就是說,它的軌跡和地圖,只有在相機運動之後才能收斂,如果相機不進行運動時,就無法得知畫素的位置。

3、相機必須進行旋轉和平移。相機運動還不能是純粹的旋轉,這就給單目SLAM的應用帶來了一些麻煩,好在日常使用SLAM時,相機都會發生旋轉和平移。

4、既可以用於室內,又可以用於室外。

雙目相機

雙目相機由兩個單目相機組成,這兩個相機之間的距離稱為基線,基線是已知的。雙目相機需要大量的計算才能估計每一個畫素點的深度,並且雙目相機的測量到的深度為範圍會受基線大小的影響。雙目或多目相機配置與標定均較為複雜,其深度量程也受雙目的基線與解析度限制,而且視差的計算非常消耗計算資源。

深度相機(又稱RGB-D)

RGB-D相機是一種可以獲得彩色圖並測量深度的相機。目前常用的RGBD相機包括Kinect一代、Kinect 二代、Xtion、Realsense等。RGB-D相機有如下特點:

1、一般通過結構光或Time-of-Flight原理,直接測出物體離攝像頭的距離。相對於雙目立體視覺,它的速度非常快,可以用於實時應用。

2、它比單目或雙目相機能夠提供更豐富的資訊。

3、現在多數RGBD相機還存在視場角小、解析度低等諸多問題。主要用於室內SLAM。