運(yùn)行官方Demo
以TUM數(shù)據(jù)集為例,運(yùn)行Demo的命令:
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
rgbd_tum.cc的源碼:
運(yùn)行程序rgbd_tum時(shí)傳入了一個(gè)重要的配置文件TUM1.yaml,其中保存了相機(jī)參數(shù)和ORB特征提取參數(shù):


開兩個(gè)線程同時(shí)計(jì)算兩個(gè)矩陣,在多核處理器上會(huì)加快運(yùn)算速度 2. 因?yàn)橄到y(tǒng)的隨機(jī)性,各步驟的運(yùn)行順序是不確定的 . Tracking線程不產(chǎn)生關(guān)鍵幀時(shí),LocalMapping和LoopClosing線程基本上處于空轉(zhuǎn)的狀態(tài) . 而Tracking線程產(chǎn)生關(guān)鍵幀的頻率和時(shí)機(jī)不是固定的,因此需要3個(gè)線程同時(shí)運(yùn)行,LocalMapping和LoopClosing線程不斷循環(huán)查詢Tracking線程是否產(chǎn)生關(guān)鍵幀,產(chǎn)生了的話就處理.


一把鎖在某個(gè)時(shí)刻只有一個(gè)線程能夠拿到,如果程序執(zhí)行到某個(gè)需要鎖的位置,但是鎖被別的線程拿著不釋放的話,當(dāng)前線程就會(huì)暫停下來;直到其它線程釋放了這個(gè)鎖,當(dāng)前線程才能拿走鎖并繼續(xù)向下執(zhí)行. 什么時(shí)候加鎖和釋放鎖? unique_lock
SLAM主類System System類是ORB-SLAM2系統(tǒng)的主類,先分析其主要的成員函數(shù)和成員變量:
構(gòu)造函數(shù) System(const string &strVocFile, string &strSettingsFile, const eSensor sensor, const bool bUseViewer=true): 構(gòu)造函數(shù)
LocalMapping和LoopClosing線程在System類中有對(duì)應(yīng)的std::thread線程成員變量,為什么Tracking線程沒有對(duì)應(yīng)的std::thread成員變量? 因?yàn)門racking線程就是主線程,而LocalMapping和LoopClosing線程是其子線程,主線程通過持有兩個(gè)子線程的指針(mptLocalMapping和mptLoopClosing)控制子線程. (ps: 雖然在編程實(shí)現(xiàn)上三大主要線程構(gòu)成父子關(guān)系,但邏輯上我們認(rèn)為這三者是并發(fā)的,不存在誰控制誰的問題).
跟蹤函數(shù)
System對(duì)象所在的主線程就是跟蹤線程,針對(duì)不同的傳感器類型有3個(gè)用于跟蹤的函數(shù),其內(nèi)部實(shí)現(xiàn)就是調(diào)用成員變量mpTracker的GrabImageMonocular(GrabImageStereo或GrabImageRGBD)方法.
傳感器類型用于跟蹤的成員函數(shù)
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2565文章
53008瀏覽量
767454 -
SLAM
+關(guān)注
關(guān)注
24文章
441瀏覽量
32505
原文標(biāo)題:ORB-SLAM2代碼運(yùn)行流程
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
代碼里的命名規(guī)則:錯(cuò)誤的和正確的對(duì)比
請(qǐng)問用樹莓派運(yùn)行ORB-SLAM2算法可行嗎?
變量命名應(yīng)簡單清晰
javascript變量命名規(guī)則與規(guī)范

Python公認(rèn)的命名規(guī)則總結(jié)
編程代碼的書寫規(guī)則
簡析獲取單片機(jī)代碼運(yùn)行時(shí)間的方法資料下載

ORB SLAM中涉及的一些基礎(chǔ)概念
ORB-SLAM3與ORB-SLAM2相比有哪些優(yōu)勢呢?
OV2SLAM(高速視覺slam)簡析
ORB-SLAM3整體流程詳解

python變量命名規(guī)則
工程實(shí)踐中VINS與ORB-SLAM的優(yōu)劣分析

基于多攝像頭的高魯棒性視覺SLAM系統(tǒng)設(shè)計(jì)

基于深度學(xué)習(xí)的增強(qiáng)版ORB-SLAM3詳解

評(píng)論