《視覺SLAM十四講》第2講

2022-07-19 01:00:17 字數 3194 閱讀 2302

目錄本講主要內容:

(1) 視覺slam中的感測器

(2) 經典視覺slam框架

(3) slam問題的數學表述

想象乙個在室內的移動機械人在自由地探索室內的環境,那麼定位與建圖可以直觀地理解成:

(1) 我在什麼地方?——定位

(2) 周圍環境是怎樣的?——建圖

而要完成定位和建圖則需要各種感測器的支援。感測器一般可以分為兩類,一類是搭載於機械人本體上的感測器,另一類是安裝於環境中的感測器。

(1) 搭載於機械人本體上的感測器

輪式編碼器

相機

雷射感測器

慣性測量單元imu

(2) 安裝於環境中的感測器

gps裝置

導軌

安裝於環境中的感測器,雖然簡單可靠,但它們在一定的程度上限制了機械人的使用範圍。要想得到乙個普遍的,通用的slam方案,更多的還是得依靠搭載於機械人本體上的感測器。

在視覺slam中,常用的視覺感測器有:單目相機,雙目相機和rgb-d相機(深度相機)。單目相機的優點是結構簡單,成本低,缺點是具有尺度不確定性。雙目相機能夠通過左眼和右眼的兩張影象計算每個畫素點的深度,但存在著標定複雜,計算量大的缺點。rgb-d相機能夠通過物理手段直接得到畫素的深度,但存在著測量範圍窄,雜訊大,視野小等缺點。

vo能夠通過相鄰幀間的影象估計相機運動,並恢復場景的空間結構。稱它為里程計是因為它和實際的里程計一樣,只計算相鄰時刻的運動,而和再往前的過去的資訊沒有關係。然而,光靠vo是沒法完成整個slam任務的。僅通過vo來估計軌跡,將不可避免地出現累積漂移。這是由於vo在最簡單的情況下,只估計兩個影象間的運動造成的。

回環檢測主要解決位置隨時間漂移的問題。為了實現回環檢測,我們需要讓機械人具有識別到過的場景的能力。我們希望機械人能使用攜帶的感測器——也就是影象本身來完成這一任務。例如,我們可以判斷影象間的相似性來完成回環檢測。所以視覺回環檢測實質上是一種計算機影象資料和相似性的演算法。

籠統地說,後端優化主要指處理slam過程中的雜訊的問題。現實中,再精確的感測器也帶有一定的雜訊。後端優化要考慮的問題,就是如何從這些帶有雜訊的資料中估計整個系統的狀態,以及這個狀態估計的不確定性有多大——這被稱為最大後驗概率估計(map)。這裡的狀態包括了機械人自身的軌跡,也包含地圖。

稀疏地圖進行了一定程度的抽象,並不需要表達所有的物體。而稠密地圖著重於建模所有看到的東西。對於定位,稀疏路標地圖就足夠,而用於導航則需要稠密地圖。

相比於度量地圖的精確性,拓撲地圖則更強調地圖元素之間的關係。拓撲地圖是乙個圖(graph),由節點和邊組成,只考慮節點間的連通性,例如a,b點是連通的,而不考慮如何從a點到達b點。

詳細內容請參考《視覺slam十四講》。

考慮一段連續時間裡的\(k\)個離散時刻\(t=1, 2, ..., k\)。用\(x\)表示機械人自身的位置,則各個時刻的標記為\(x_1, x_2, ..., x_k\)。設路標共有\(n\)個,分別為\(y_1, y_2, ..., y_n\)。

考慮下面兩個問題:

(1) 什麼是運動?所謂運動就是考慮機械人從\(k-1\)時刻到\(k\)時刻,機械人的位置\(x_k\)是如何變化的,如何用數學表示這一過程。

(2) 什麼是觀測?假設機械人在\(k\)時刻於位置\(x_k\)處探測到了某乙個路標\(y_j\),如何用數學表示該事件。

對於問題(1),我們可以使用乙個通用的,抽象的數學模型來表示

\[x_k = f(x_, u_k, w_k)

\]其中,\(u_k\)是運動感測器的讀書,\(w_k\)為雜訊。\(f\)為乙個通用的一般函式。這個方程被稱為運動方程

對於問題(2),我們可以用乙個觀測方程來表示,該方程描述的是:當機械人在\(x_k\)位置上觀測到某個路標點\(y_j\),產生了乙個觀測資料\(z_\)。同樣,用乙個一般的通用函式\(h\)表示這個關係,其中\(v_\)表示觀測雜訊。

\[z_ = h(y_j, x_k, v_)

\]下面舉乙個具體的引數化例子。

假設機械人在平面中運動,其位姿由兩個位置和乙個轉角來表示,即\(x_k=[x,y, \theta]_k^t\)。同時,運動感測器能夠測量到機械人在任意兩個時間間隔的位置和轉角變化量\(u_k=[\delta x,\delta y, \delta \theta]_k^t\),於是,運動方程可以具體化如下

\[\beginx\\y\\ \theta \end_k =

\beginx\\y\\ \theta \end_ +

\begin\delta x\\ \delta y\\ \delta \theta \end_k +

w_k\]

slam過程可以總結為兩個基本方程:

\[x_k = f(x_, u_k, w_k)\\

z_ = h(y_j, x_k, v_)

\]對於觀測方程,假設機械人攜帶了乙個二維雷射感測器,二維雷射感測器觀測乙個2d路標時,能夠測量到兩個量:路標點與機械人本體之間的距離\(r\)和夾角\(\phi\)。記路標點為\(y=[p_x, p_y]^t\)(下標已忽略),觀測資料為\(z=[r, \phi]^t\),那麼觀測方程為

\[\beginr\\ \phi\end = \begin\sqrt\\ arctan(\frac)\end + v

\]對於簡單的線性高斯系統(lg系統),其無偏最優估計可以由卡爾曼濾波(kf)給出。

對於複雜的非線性非高斯系統(nlng系統),我們一般使用擴充套件卡爾曼濾波器(ekf)和非線性優化方法求解。時至今日,主流視覺slam使用以圖優化的優化方法進行狀態估計。

視覺SLAM十四講第四講

主要目標 理解李群與李代數的概念,掌握 so 3 se 3 與對應李代數的表示方式。理解 bch 近似的意義。學會在李代數上的擾動模型。使用 sophus 對李代數進行運算。旋轉矩陣自身是帶有約束的 正交且行列式為 1 它們作為優化變數時,會引入額外的約束,使優化變得困難。通過李群 李代數間的轉換關...

視覺SLAM十四講 第1講 預備知識

何為高斯分布?它的一維形式是什麼樣子?高維形式又如何?參考博文 1 2 3 答 高斯分布 gaussian distribution 又稱為正態分佈 normal distribution 是一種非常重要的概率分布。有幾種不同的方法用來說明乙個隨機變數,最直觀的方法是概率密度函式,這種方法能夠表示隨...

《視覺SLAM十四講》筆記 第二講 初識SLAM

自身位置 定位 周圍環境 建圖 感測器分類 視覺slam 強調未知環境 單目相機 monocular 單目相機的資料 影象 以二維的形式反映了三維的世界。無法通過單張得到深度資訊。存在尺度不確定性 雙目相機 stereo 兩個相機間的距離 基線已知。基線越大,能測量的距離越遠。因此,無人車上的雙目相...