視覺slam14講——第2講 初識SLAM

本博客摘自一篇視覺slam博客,總結高翔視覺slam十四講,記錄以便今後學習用。

 原文地址:https://blog.csdn.net/qq_23225073/article/details/78348089


1 關於SLAM

slam問題的本質:對運動主體自身和周圍環境空間不確定性的估計

儘可能使用不依賴於環境的傳感器如laser、imu、camera等,而視覺SLAM主要解決問題是使用相機解決定位和建圖問題

2 關於相機

  • 單目相機(Monocular) 
    關鍵問題:無法得到深度。 
    單目slam估計的軌跡和地圖和真實的相差一個尺度因子,也叫尺度不確定性

  • 雙目相機(Stereo) 
    關鍵問題:配置與標定比較複雜,深度量程受雙目的基線和分辨率限制,視差計算量大,需要使用GPU和FPGA加速。

  • 深度相機 
    關鍵問題:測量範圍有限,容易受日光干擾,無法測量透射材質,主要用於室內。 
    我們之前機器人比賽經常用到kinect和xtion,上面的幾個問題都是常見的,比如測量範圍,比較蛋疼的就是這個,機器人看柱子,最遠的那個有7米遠,kinect就不行了……

3 slam框架

  • 傳感器數據 
    相機圖像信息的讀取和預處理
  • 視覺里程計(VO) 
    解決問題:估算相鄰圖像間的運動,以及局部地圖的樣子,又稱爲前端。 
    解決方法:主要進行圖像特徵提取和匹配

  • 後端優化(Optimization) 
    解決問題:處理slam過程中噪聲的問題。從帶有噪聲的數據中估計整個系統的狀態,以及這個狀態估計的不確定性有多大——稱爲最大後驗概率估計(MAP),狀態包括機器人的軌跡和地圖 
    解決方法:濾波和非線性優化算法

  • 迴環檢測(Loop Closure Detection) 
    解決問題:位置估計隨時間漂移問題,讓機器有識別到過場景的能力。 
    解決方法:判斷圖像間的相似性

  • 建圖(Mapping) 
    解決問題:構建地圖描述機器人周圍的環境 
    解決方法: 有多種地圖

附:兩個概念

1 度量地圖(Metric Map) 

強調精確表示地圖中物體的位置關係,有稀疏和稠密兩類。 
對定位來說,稀疏地圖就可以了;對導航來說需要稠密地圖 
Location—Saprse Map 

Navgation—Dense Map, 二維的用Grid表示,三維的用Voxel表示,常見導航算法A*, Dij

2 拓撲地圖(Topollogical Map) 

強調地圖元素之間的關係。 

拓撲地圖是一個Graph,由節點和邊組成,只考慮節點之間的連通性。

4 slam問題數學描述

兩個方程,運動方程和觀測方程。 

xk=f(xk1,μk,ω+k)

zk,j=h(yj,xk,vk,j)


已知量: 
運動測量讀數 
傳感器讀數 z

求解量: 
定位問題x 
建圖問題y

這是一個狀態估計問題——如何通過帶噪聲的數據估計內部的隱藏的狀態變量。 
按照運動和觀測方程是否線性和噪聲是否服從高斯分佈分爲四類 
線性/非線性,高斯/非高斯

其中

  • 線性高斯系統(Linear Gaussian–LG) 
    最簡單,無偏最優估計使用KF解決
  • 非線性非高斯系統(NLNG) 
    可以用濾波器(EKF、Particle Filter)和非線性優化(圖優化Graph Optimization)兩種方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章