ORB SLAM 學習筆記

2021-09-02 18:41:55 字數 2069 閱讀 1555

orb-slam 的整體系統框架圖

orb-slam 它是由三大塊、三個流程同時執行的。第一塊是跟蹤,第二塊是建圖,第三塊是閉環檢測。

1.跟蹤(tracking)

這一部分主要工作是從影象中提取 orb 特徵,根據上一幀進行姿態估計,或者進行通過全域性重定位初始化位姿,然後跟蹤已經重建的區域性地圖,優化位姿,再根據一些規則確定新關鍵幀。

閉環檢測(loopclosing)

這一部分主要分為兩個過程,分別是閉環探測和閉環校正。閉環檢測先使用 wob 進行探測,然後通過 sim3 演算法計算相似變換。閉環校正,主要是閉環融合和 essential graph 的圖優化。

orb-slam 優缺點

優點:乙個**構造優秀的視覺 slam 系統,非常適合移植到實際專案。

採用 g2o 作為後端優化工具,能有效地減少對特徵點位置和自身位姿的估計誤差。

採用 dbow 減少了尋找特徵的計算量,同時回環匹配和重定位效果較好。重定位:比如當機械人遇到一些意外情況之後,它的資料流突然被打斷了,在 orb-slam 演算法下,可以在短時間內重新把機械人在地圖中定位。

使用了類似「適者生存」的方案來進行關鍵幀的刪選,提高系統追蹤的魯棒性和系統的可持續執行。

提供最著名的公共資料集( kitti 和 tum 資料集)的詳盡實驗結果,以顯示其效能。

可以使用開源**,並且還支援使用 ros。 (github: slightech/mynt-eye-orb-slam2-sample)

缺點:構建出的地圖是稀疏點雲圖。只保留了影象中特徵點的一部分作為關鍵點,固定在空間中進行定位,很難描繪地圖中的障礙物的存在。

初始化時最好保持低速運動,對準特徵和幾何紋理豐富的物體。

旋轉時比較容易丟幀,特別是對於純旋轉,對雜訊敏感,不具備尺度不變性。

如果使用純視覺 slam 用於機械人導航,可能會精度不高,或者產生累積誤差,漂移,儘管可以使用 dbow 詞袋可以用來回環檢測。最好使用 vslam+imu 進行融合,可以提高精度上去,適用於實際應用中機械人的導航。

orb-slam2

orb-slam2 在 orb-slam 的基礎上,還支援標定後的雙目相機和 rgb-d 相機。雙目對於精度和魯棒性都會有一定的提公升。orb-slam2 是基於單目,雙目和 rgb-d 相機的一套完整的 slam 方案。它能夠實現地圖重用,回環檢測和重新定位的功能。無論是在室內的小型手持裝置,還是到工廠環境的無人機和城市裡駕駛的汽車,orb-slam2 都能夠在標準的 cpu 上進行實時工作。orb-slam2 在後端上採用的是基於單目和雙目的光束法平差優化(ba)的方式,這個方法允許公尺製比例尺的軌跡精確度評估。此外,orb-slam2 包含乙個輕量級的定位模式,該模式能夠在允許零點漂移的條件下,利用視覺里程計來追蹤未建圖的區域並且匹配特徵點。

深度相機選擇

目前的主流視覺深度感測器方案主要分結構光,time-of-flight 和純雙目三類。雙目跟結構光一樣,都是使用三角測量法根據物體匹配點的視差反算物體距離,只是雙目是用自然光,而結構光是用主動光發射特定圖案的條紋或散斑。tof 是通過給目標連續傳送光脈衝,然後用感測器接收從物體返回的光,通過探測光脈衝的飛行(往返)時間來得到目標物距離。

tof 和結構光都屬於主動光,比如 kinect 1,2 代(現已停產),容易受可見光和物體表面干擾,所以更適合室內和短距離的應用場景。

「視覺+結構光+慣性導航」融合的雙目方案效果更好

小覓雙目深度相機系列融合了 vslam+imu ,提公升精度的同時減少了累積誤差和漂移,(ir)紅外主動光探測器可輔助識別室內白牆和無紋理物體,克服了 orb-slam 初始化運動時對無紋理物體不友好的特性。同時支援 orb-slam , okvis,viorb 和 vins 多個開源專案案例,為了方便小夥伴們開發、移植、學習和應用,我們在 github 上分享了 mynt-orbslam2-sample ( ros 及非 ros 的介面都有提供噢~)。戳這裡:

這是我們跑 orb-slam2 的效果:

orb-slam2

ORB SLAM筆記 2 框架概述

上篇已經提到過,raulmur博士開源了兩版orb,其中第二版在第一版的基礎上加入了雙目以及rgbd相機的前端介面,並且在回環模組中增開了全域性優化的執行緒。我們先從第一版的pipeline開始說起。另外要說的是這篇總結主要還是從整體上對架構進行說明,大體介紹每個模組的作用以及模組之間是怎麼聯絡起來...

ORB SLAM使用方法

preparation 按照官網步驟完成orb的安裝。1 修改camera calibration引數 到 orb slam data settings.yaml修改 2 開啟終端機 輸入roscore 3 將testimage製作成bag檔 需先裝好bagfromimages 將bagfromim...

(四)ORBSLAM運動估計

orbslam2的運動估計簡介 orbslam2中的運動估計核心方法就是3d 2d的pnp,而在跟蹤過程主要分為三種型別 無運動模型的跟蹤,即基於參考幀的跟蹤 基於勻速運動模型的跟蹤 重定位 上述三種方案,我們只介紹前兩種,重定位由於需要用到回環檢測,我們會在之後講解。pnp運動估計 在介紹orbs...