ORB-SLAM中除了第三方庫,基本沒有看到使用c++11的新特性(例如別的SLAM框架中常用的智能指針,拷貝控制,泛型算法等,基本沒有使用動態內存,棧內存讀取速度較快),因此非常適合初學,代碼很清晰。靜下心來一個月之內是肯定可以看完的,目前的想法是在看完ORB之后,對其中的典型算法再做一個總結 ...
Frame類的成員變量主要包含從攝像頭獲取的圖像的 . 特征點信息 關鍵點 描述字 . 尺寸不變特征所用金字塔信息,這些都定義在ORBextractor對象中 . 詞袋模型參數,用於跟蹤失敗情況下重定位 . 相機參數,深度閾值 . 當前幀的id,時間戳,相對世界坐標系位姿,參考關鍵幀,特征點對應地圖點及其是否是外點 . 特征點網格分配情況,以及當前幀相對世界坐標的位姿 包括位姿矩陣的更新,以及相機 ...
2017-02-15 16:43 1 3230 推薦指數:
ORB-SLAM中除了第三方庫,基本沒有看到使用c++11的新特性(例如別的SLAM框架中常用的智能指針,拷貝控制,泛型算法等,基本沒有使用動態內存,棧內存讀取速度較快),因此非常適合初學,代碼很清晰。靜下心來一個月之內是肯定可以看完的,目前的想法是在看完ORB之后,對其中的典型算法再做一個總結 ...
ORB視覺里程計主體在tracking線程中 ...
KeyFrame類利用Frame類來構造。對於什么樣的Frame可以認為是關鍵幀以及何時需要加入關鍵幀,是實現在tracking模塊中的。 由於KeyFrame中一部分數據會被多個線程訪問修改,因此需要在這些成員中加線程鎖,保證同一時間只有一個線程有訪問權。涉及線程安全的有: 關鍵幀位姿的設置 ...
關鍵幀數據庫通過預先訓練好的詞典,維護一個向量std::vector<list<KeyFrame*> > mvInvertedFile; 該向量中mvInvertedFile[ ...
首先要清楚ORB-SLAM視覺跟蹤的原理,然后對tracking.cc中的函數逐個講解 代碼的前面部分是從配置文件中讀取校准好的相機參數(內參和畸變參數,以及雙目的深度測量設定),並且加載ORB特征點提取的參數(特征點數,金字塔層數,變化尺度,以及提取Fast關鍵點的閾值);以及四個線程 ...
1.下載代碼 https://github.com/raulmur/ORB_SLAM/ (同時也可以看看作者的牛叉論文,我是打算先用代碼,再回頭看論文) 2.打開后如下 就好像是用一件新產品一樣,我們首先要看一下說明書“README.md ...
PATH_TO_VOCABULARY:是一種樹型數據結構模型,ORB-SLAM里面主要用來做回訪(loop-closure)檢 測, ...
ORB-SLAM程序提供了運行Monocular、Stereo和RGBD數據的程序。編譯成功后,可以通過運行TUM的標准數據來驗證程序是否成功。如果想自己測試一些數據,可以通過OpenCV提供的接口調起電腦的攝像頭。 個人認為,ORB-SLAM是一個完整的單目SLAM實現,集合了當前流行 ...