在使用poine版本的ORB_SLAM2時遇到的一些問題

首先聲明:

  我是想通過這個來實現save and load 功能。

  感謝原作者與poine所做的貢獻。

poine版本的請參考該鏈接下載:http://recherche.enac.fr/~drouin/slam/orbslam2/poine_orbslam2_04_07_16.tgz

原版請參考該鏈接下載:https://github.com/raulmur/ORB_SLAM2


我使用的計算機配置是ubuntu 14.04, ROS indigo ,i5-7300HQ,8G內存,機械硬盤(大體上是這個樣子)

不說的太複雜,只說一下我遇到的一些問題:

1.編譯

編譯呢,要把各個build文件全部刪掉(爲了不出問題,全都刪了吧),然後重新那個啥,都懂。。。

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
make的過程,在我的電腦上不可以使用make -j,會卡死,,,諸君不介意可以嘗試一下,,,據說有的是沒問題的。

各種依賴的庫請參考原作者的github:https://github.com/raulmur/ORB_SLAM2


2.運行

請參考原作者github文章;

我使用的是xTion攝像頭,運行的Mono沒什麼太大問題,但是 Example/Monocular/TUM1.yaml 的內容要小小改一下,我記得似乎是加入圖像的長寬,,,似乎。

ros訂閱的topic當然要改。

然後跑RGBD相機的時候會出現閃退,如果深度或者RGB信號中,有一個特徵點丟失,那麼,就導致slam系統崩潰,似乎是opencv中一個矩陣的問題,我也沒弄明白,難道是我的版本不對?我用的是3.3.

mono的運動劇烈之後會lost,改nFeature會好一點,治標不治本。

3.save and load

作者的代碼中有save的函數,但是不知道爲什麼沒有去調用。save 的部分好像在map.cc中,load和save在一起。這些都是作者寫好的。

我的save過程進行的比較順利,直接在system.cc中調用了這個函數,在一個107鍵鍵盤範圍內的slam大約生成了十幾兆的文件,保存在運行rosrun ORBSLAM2命令的目錄下。

load過程,出現segmentation fault(core dumped),網上查閱資料說,這個問題可能存在的原因比較多,gdb定位,發現是

unique_lock<mutex> lock(mpMap->mMutexPointCreation);

這一句出的問題。後來發現屬於我調用函數的時候傳入參數的問題,mpMap是空的。



這篇博客寫的很敷衍,很不走心,湊活着看看吧,,,以上。。。

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