當今科技發展速度飛快,想讓用戶在AR/VR、機器人、無人機、無人駕駛領域體驗加強,還是需要更多前沿技術做支持,SLAM就是其中之一。實際上,有人就曾打比方,若是手機離開了WIFI和數據網絡,就像無人車和機器人,離開了SLAM一樣。
什么是SLAM
SLAM的英文全稱是Simultaneous Localization and Mapping,中文稱作“同時定位與地圖創建”。
SLAM試圖解決這樣的問題:一個機器人在未知的環境中運動,如何通過對環境的觀測確定自身的運動軌跡,同時構建出環境的地圖。SLAM技術正是為了實現這個目標涉及到的諸多技術的總和。
SLAM通常包括如下幾個部分,特征提取,數據關聯,狀態估計,狀態更新以及特征更新等。
我們引用知乎上的一個解釋把它翻譯成大白話,就是:
當你來到一個陌生的環境時,為了迅速熟悉環境并完成自己的任務(比如找飯館,找旅館),你應當做以下事情:
a.用眼睛觀察周圍地標如建筑、大樹、花壇等,并記住他們的特征(特征提取)
b.在自己的腦海中,根據雙目獲得的信息,把特征地標在三維地圖中重建出來(三維重建)
c.當自己在行走時,不斷獲取新的特征地標,并且校正自己頭腦中的地圖模型(bundleadjustmentorEKF)
d.根據自己前一段時間行走獲得的特征地標,確定自己的位置(trajectory)
e.當無意中走了很長一段路的時候,和腦海中的以往地標進行匹配,看一看是否走回了原路(loop-closuredetection)。實際這一步可有可無。
以上五步是同時進行的,因此是simultaneous localization and mapping。
傳感器與視覺SLAM框架
智能機器人技術在世界范圍內得到了大力發展。人們致力于把機器人用于實際場景:從室內的移動機器人,到野外的自動駕駛汽車、空中的無人機、水下環境的探測機器人等等,均得到了廣泛的關注。
沒有準確的定位與地圖,掃地機就無法在房間自主地移動,只能隨機亂碰;家用機器人就無法按照指令準確到達某個房間。此外,在虛擬現實(VirtualReality)和增強現實技術(ArgumentReality)中,沒有SLAM提供的定位,用戶就無法在場景中漫游。在這幾個應用領域中,人們需要SLAM向應用層提供空間定位的信息,并利用SLAM的地圖完成地圖的構建或場景的生成。
當我們談論SLAM時,最先問到的就是傳感器。SLAM的實現方式與難度和傳感器的形式與安裝方式密切相關。傳感器分為激光和視覺兩大類,視覺下面又分三小方向。下面就帶你認識這個龐大家族中每個成員的特性。
1.傳感器之激光雷達
激光雷達是最古老,研究也最多的SLAM傳感器。它們提供機器人本體與周圍環境障礙物間的距離信息。常見的激光雷達,例如SICK、Velodyne還有我們國產的rplidar等,都可以拿來做SLAM。激光雷達能以很高精度測出機器人周圍障礙點的角度和距離,從而很方便地實現SLAM、避障等功能。
主流的2D激光傳感器掃描一個平面內的障礙物,適用于平面運動的機器人(如掃地機等)進行定位,并建立2D的柵格地圖。這種地圖在機器人導航中很實用,因為多數機器人還不能在空中飛行或走上臺階,仍限于地面。在SLAM研究史上,早期SLAM研究幾乎全使用激光傳感器進行建圖,且多數使用濾波器方法,例如卡爾曼濾波器與粒子濾波器等。
激光的優點是精度很高,速度快,計算量也不大,容易做成實時SLAM。缺點是價格昂貴,一臺激光動輒上萬元,會大幅提高一個機器人的成本。因此激光的研究主要集中于如何降低傳感器的成本上。對應于激光的EKF-SLAM理論方面,因為研究較早,現在已經非常成熟。與此同時,人們也對EKF-SLAM的缺點也有較清楚的認識,例如不易表示回環、線性化誤差嚴重、必須維護路標點的協方差矩陣,導致一定的空間與時間的開銷,等等。
2.、傳感器之視覺SLAM
視覺SLAM是21世紀SLAM研究熱點之一,一方面是因為視覺十分直觀,不免令人覺得:為何人能通過眼睛認路,機器人就不行呢?另一方面,由于CPU、GPU處理速度的增長,使得許多以前被認為無法實時化的視覺算法,得以在10Hz以上的速度運行。硬件的提高也促進了視覺SLAM的發展。
以傳感器而論,視覺SLAM研究主要分為三大類:單目、雙目(或多目)、RGBD。其余還有魚眼、全景等特殊相機,但是在研究和產品中都屬于少數。此外,結合慣性測量器件(InertialMeasurementUnit,IMU)的視覺SLAM也是現在研究熱點之一。就實現難度而言,我們可以大致將這三類方法排序為:單目視覺>雙目視覺>RGBD。
單目相機SLAM簡稱MonoSLAM,即只用一支攝像頭就可以完成SLAM。這樣做的好處是傳感器特別的簡單、成本特別的低,所以單目SLAM非常受研究者關注。相比別的視覺傳感器,單目有個最大的問題,就是沒法確切地得到深度。這是一把雙刃劍。
一方面,由于絕對深度未知,單目SLAM沒法得到機器人運動軌跡以及地圖的真實大小。直觀地說,如果把軌跡和房間同時放大兩倍,單目看到的像是一樣的。因此,單目SLAM只能估計一個相對深度,在相似變換空間Sim(3)中求解,而非傳統的歐氏空間SE(3)。如果我們必須要在SE(3)中求解,則需要用一些外部的手段,例如GPS、IMU等傳感器,確定軌跡與地圖的尺度(Scale)。
另一方面,單目相機無法依靠一張圖像獲得圖像中物體離自己的相對距離。為了估計這個相對深度,單目SLAM要靠運動中的三角測量,來求解相機運動并估計像素的空間位置。即是說,它的軌跡和地圖,只有在相機運動之后才能收斂,如果相機不進行運動時,就無法得知像素的位置。同時,相機運動還不能是純粹的旋轉,這就給單目SLAM的應用帶來了一些麻煩,好在日常使用SLAM時,相機都會發生旋轉和平移。不過,無法確定深度同時也有一個好處:它使得單目SLAM不受環境大小的影響,因此既可以用于室內,又可以用于室外。
-
傳感器
+關注
關注
2550文章
51039瀏覽量
753094 -
mems
+關注
關注
129文章
3924瀏覽量
190587
發布評論請先 登錄
相關推薦
評論