slam學習筆記(1)——從入門到放棄

最近參與了一個做slam小車的小組,雖然自己現在是絕對做不了這個工程的,但提前接觸總能讓之後的系統學習有些方向,結合資料做點筆記,
SLAM全稱Simulation Localization and Mapping,即“同時定位與地圖構建”。該技術目的在於通過視覺或其他傳感解決定位與地圖構建這兩個問題。
通常生活中常見應用如自動駕駛技術,室內掃地機定位等等。
對於視覺SLAM,通常採用雙目相機解決方案。單目相機無法解決視深問題。而雙目相機通過大量的計算可以大致估計出每個像素點,但是代價是巨大的計算資源資源消耗。通常可以通過GPU和FPGA設備加速才能保證圖像的實時輸出。
還有一種深度相機(RGB-D相機),通過紅外結構光或者ToF測距。

經典視覺SLAM框架

流程大致如下

傳感器信息讀取

視覺里程計(Visual Odometry,VO)

估算相鄰圖像間相機的運動和局部地圖的樣子

後端優化(Optimization)

優化軌跡和地圖

迴環檢測(Loop Closing)

檢測是否經過曾到達的位置

建圖(Mapping)

slam地圖分爲度量地圖與拓撲地圖兩種

1.度量地圖(Metric Map)

度量地圖分爲稀疏(Sparse)與稠密(Dense)兩中。稀疏地圖不會表達所有物體(路標地圖),稠密則着重於所有看見的東西。

2.拓撲地圖(Topological Map)

拓撲地圖強調地圖元素之間的聯繫,由節點和邊組成,只考慮點與點之間是否連通(似乎和人的思維很像)

SLAM問題的數學表述

對於SLAM系統的數學描述,首先相機將會在特定的一些時刻採集視覺數據,例如t=1,,Kt = 1,\cdots, K幾個時刻。這些時刻的位置記爲x1,,xKx_1, \cdots, x_K 。我們在這樣的過程中還會遇到若干路標,記爲y1,,yNy_1, \cdots, y_N

小車運動方程

xk=f(xk1,uk,wk)x_k = f(x_{k-1}, u_k, w_k)
uku_k:運動傳感器讀數或輸出
wkw_k:運動噪聲(即誤差)

觀測方程(相對與小車的座標)

zk,j=f(yj,xk,vk,j)z_{k,j} = f(y_j, x_k, v_{k,j})
vk,jv_{k,j}:觀測噪聲

SLAM的建模過程可以認爲是一個狀態估計問題,需要確定方程的具體形式和噪聲服從分佈有關。按照運動和觀測港城是否線性,噪聲是否服從高斯分佈進行分類,分爲線性/非線性和高斯/非高斯系統。可以通過卡爾曼濾波器非線性優化方法求解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章