通俗易通解释SLAM问题的数学描述:运动方程和观测方程
高翔博士在他的《視覺SLAM十四講》中把SLAM問題的數學描述抽象成了兩個數學方程,以下對此做個總結,并且對此做一些通俗易懂的解釋:
一、方程的總體形式
作為理性層次的描述,我們引入數學方程來描述SLAM過程,其中第一個方程叫做運動方程、第二個方程叫做觀測方程,想象一下我們在研究SLAM的時候肯定需要觀測機器人(無人汽車、無人機等都可以統稱為機器人)的運動(畫面感很強哈哈),這樣很容易理解并且記憶這兩個方程的名稱和意義:
 
二、變量的含義
我們看到,這兩個方程中有大量的英文字母作為變量存在其中,下面介紹一下各個變量的含義:
- x\textbf{x}x:加粗的x\textbf{x}x表示一個向量,這個向量表示這機器人的位置坐標,在三維坐標系中可以使用[x1,x2,x3]T[x_1,x_2,x_3]^T[x1?,x2?,x3?]T來表示。
- yj\textbf{y}_jyj?:加粗的y\textbf{y}y也表示一個向量,表示某一個路標點的位置,注意到y\textbf{y}y通常帶有下標jjj,這個jjj表示路標的編號,我們假設一共有NNN個路標,則用y1,y2...yj...yN,\textbf{y}_1,\textbf{y}_2...\textbf{y}_j...\textbf{y}_N,y1?,y2?...yj?...yN?,分別表示它們。
有趣的是,我們研究SLAM,無非是研究定位(Localization)問題和建圖(Mapping)問題,而對 x\textbf{x}x的估計就對應著定位問題(L),對y\textbf{y}y的估計對應著建圖問題(M)。
- u\textbf{u}u:加粗的u\textbf{u}u表示運動量,即機器人內部運動傳感器讀數,比如IMU+GPS等的讀數(嚴格來說,這是一種觀測量,但是我們把它和攝像頭的觀測量區分開來)。比如我們可以使用位移傳感器和IMU測得[Δx1,Δx2,Δθ]T[\Delta x_1,\Delta x_2,\Delta\theta]^T[Δx1?,Δx2?,Δθ]T,作為某個時刻的運動量u\textbf{u}u
- z\textbf{z}z:加粗的z\textbf{z}z表示另外一種傳感器讀數——觀測量,通常這個量有雙目攝像頭、激光雷達等獲得,因為這是對觀測路標的測量,而路標即yyy有N個,因此我們需要使用腳標zj\textbf{z}_jzj?來表示對第jjj個路標的觀測量。
我們可以認為u\textbf{u}u是對自身(內部)的測量, z\textbf{z}z是對環境(外部)的測量,這樣由內而外的測量可以我們區分這兩種傳感器的類別和意義。
- w\textbf{w}w、v\textbf{v}v:不可避免的,我們的傳感器是存在誤差的,我們用 w\textbf{w}w、v\textbf{v}v這兩個看起來同根同源的字母來分別表示u\textbf{u}u和z\textbf{z}z的測量誤差。
- kkk:小寫的表示時間序列編號,我們在工程中都是使用離散時間序列的,這樣產生了t=1,2,3,...,Kt=1,2,3,...,Kt=1,2,3,...,K個時間點,注意大小寫的意義是不一樣的,大寫的KKK表示一共有多少個時間點。我們可以對上邊的所有字母都加上下角標kkk看來表示這是k時刻的物理量。
三、具體化運動方程和觀測方程
開篇的公式過于抽象,下面將函數具體化,簡單起見,我們在這里使用二維情況下的位姿表示(兩個位置坐標x1x_1x1?和x2x_2x2?和一個姿態坐標θ\thetaθ),這樣理解起來比較容易。假設在k?1k-1k?1時刻,機器人的位置坐標為 xk?1\textbf{x}_{k-1}xk?1?,而在kkk時刻,內部運動傳感器測得運動位移量[Δx1,Δx2]kT[\Delta x_1,\Delta x_2]^T_{k}[Δx1?,Δx2?]kT?,那么我們可以通過他們計算kkk時刻的位置xk\textbf{x}_{k}xk?,這個就是運動方程,我們可以寫成以下表達式:
 
對于觀測方程,我們假設使用激光傳感器測量到了機器人和某個路標yjy_jyj?之間的距離rrr和夾角?\phi?,那么觀測量zk,j=[rk,j,?k,j]T\textbf{z}_{k,j}=[r_{k,j},\phi_{k,j}]^Tzk,j?=[rk,j?,?k,j?]T可以表示成一下形式:
 
四、狀態估計問題
我們在上文提到了,SLAM的最終問題是解決定位問題(Localization)和建圖問題(Mapping),從我們的模型來看,就是對x\textbf{x}x和y\textbf{y}y的估計問題,我們把這類的問題稱為狀態估計問題。也就是通過觀測量(包括內部傳感器的讀數u\textbf{u}u,和外部傳感器的讀數z\textbf{z}z),來計算出最優的x\textbf{x}x和y\textbf{y}y。
用下圖可以直觀的把以上公式模塊化:
總結
以上是生活随笔為你收集整理的通俗易通解释SLAM问题的数学描述:运动方程和观测方程的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 用 Python 爬取起点小说网
- 下一篇: 2020年系统集成项目管理工程师课教程
