slam第一講 初識slam

2021-09-19 08:49:04 字數 1888 閱讀 9717

2.slam 的目的是解決「定位」與「地圖構建」這兩個問題

3.slam 應用點4.slam 系統分成幾個模組:感測器資訊讀取,視覺里程計、後端優化、建圖以及回環檢測

感測器資訊讀取:

在視覺slam中主要為相機影象資訊的讀取和預處理,如果是在機械人中,還可能有碼盤,慣性感測器等資訊的讀取和同步

視覺里程計(visual odometry,vo):

視覺里程計的任務是估算相鄰影象間相機的運動,以及區域性地圖的樣子。vo又稱為前端(front end)

後端優化(optimization):

後端接受不同時刻視覺里程計測量的相機位姿,以及回環檢測的資訊,對它們進行優化,得到全域性一致的軌跡和地圖。由於接在vo之後,又稱為後端(back end)

回環檢測(loop closing):

回環檢測判斷機械人是否到達過先前的位置,如果檢測到回環,他會把資訊提供給後端進行處理

根據估計的軌跡,建立與任務要求對應的地圖

稀疏地圖:進行了一定程度的抽象,並不需要表達所有的物體。

稠密地圖:通常按照某種解析度,由許多小塊組成。二維度量地圖是許多小格仔(grid),三維這是許多小方塊(voxel)。一般地含有佔據、空閒、未知三種狀態,以表達該格內是否有物體。

缺點:這種地圖需要儲存每乙個小格仔的狀態,耗費大量的儲存空間,而且多數情況下地圖的許多細節部分是無用的。另一方面,大規模度量地圖有時會出現一致性問題。很小的一點轉向誤差,可能會導致兩間屋子的牆出現重疊,使得地圖失效。

缺點:拓撲地圖不擅長表達具有複雜結構的地圖。如何對地圖進行分割形成結點和邊,又如何使用拓撲地圖進行導航與路徑規劃。

5.slam問題的數學描述

對於運動,記一段離散的時刻為t=1,2,..k,在這些時刻,用x表示自身位置,於是各時刻的位置就記為x1,x2,...xk,這些構成了運動軌跡。

對於地圖,假設地圖是由許多個路標組成的,而每個時刻,感測器會測量到一部分路標點,得到他們的觀測資料,設路標點共有n個,用y1,y2 ...yn來表示它們

運動方程:uk是運動感測器的讀數(有時也叫輸入),wk是雜訊

觀測方程:vk,j是這次觀測裡的雜訊,在位置xk上看到某個路標點,產生了乙個觀測資料zk,j

對於不同的感測器,這兩個方程有不同的引數化形式。如果我們保持通用性,把它們取成抽象形式,那麼slam過程可總結為上述兩個基本方程。這兩個方程描述了最基本的slam問題:當我們知道運動測量的讀數 u ,以及感測器的讀數 z 時,如何求解定位問題(估計 x)和建圖問題(估計 y)? 這時,我們把slam問題建模成了乙個狀態估計問題:如何通過帶有雜訊的測量資料,估計內部的、隱藏著的狀態變數?

狀態估計問題的求解,與兩個方程的具體形式,以及雜訊服從哪種分布有關。我們按照運動和觀測方程是否為線性,雜訊是否服從高斯分布進行分類,分為線性/非線性和高斯/非高斯系統。其中線性高斯系統(lg 系統)最為簡單,他的無偏最優估計可以由卡爾曼濾波器(kf)給出。而在複雜的非線性非高斯系統(nlng系統)中,我們會使用以擴充套件卡爾曼濾波器(ekf)和非線性優化兩大類方法去求解它。時至今日,主流視覺slam使用以圖優化(graph optimization)為代表的優化技術進行狀態估計。我們以為優化技術已經明顯優於濾波器技術,只要計算資源允許,我們通常都偏向於使用優化方法。

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

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

視覺slam第二講筆記 初識slam和編譯

3.ide clion 源 hello.cpp 編譯 g hello.cpp 執行 a.out 建立工程執行編譯 首先,建立 cmakelists.txt,內容如下 cmake minimum required version 2.8 project projectname add executab...

視覺SLAM14講 習題及答案 第一講

當b 0時,設 高斯分布又稱正態分佈 一維形式 若隨機變數 則其概率密度函式為 理論上可以證明如果把許多小作用加起來看做乙個變數,那麼這個變數服從正態分佈。高維形式的高斯分布又稱多元正態分佈。它是單維正態分佈向多維的推廣,形式如下 類定義以關鍵字class開頭,後跟類的名稱。類的主體包含在花括號中,...