一起做RGB D SLAM(4)BUG筆記

2021-10-10 05:55:00 字數 2894 閱讀 2466

跟做高博的《一起做rgb-d slam》系列時,出現了挺多bug的(主要因為自己還是個小白),在此記錄下解決過程。(ubuntu18.04,opencv3.4.9)

一起做rgb-d slam(4):

這個錯誤時因為cmakelists裡面沒有新增可執行二進位制檔案,在src/cmakelists.txt檔案末尾新增如下**即可:

add_executable

( joinpointcloud joinpointcloud.cpp)

target_link_libraries

( joinpointcloud

slambase$ $

)

這個錯誤是因為缺少標頭檔案,在include/slambase.h裡加上即可:

#include

這個錯誤之前說過,詳情參考:

一起做rgb-d slam(3)bug筆記第2個bug。

這裡我們把src/slambase.cpp裡的這行**刪掉即可:

cv::

initmodule_nonfree()

;

出現這個錯誤應該可以猜到,是opencv版本問題,3.0版本以上的特徵檢測器和描述子提取器是這樣初始化的:

cv::ptrcv::featuredetector detector;

cv::ptrcv::descriptorextractor descriptor;

detector = cv::sift::create();

descriptor = cv::sift::create();

所以,照理我們需要這樣改寫:

cv::ptrcv::featuredetector _detector;

cv::ptrcv::descriptorextractor _descriptor;

_detector = cv::detector.c_str()::create();

_descriptor = cv::descriptor.c_str()::create();

將上圖白框處**替換為:

if

(detector ==

"orb")if

(descriptor ==

"orb"

)

這裡我只判斷了orb演算法,如果安裝了opencv的擴充套件模組的話,大家可自行新增其餘演算法。

出現這個錯誤是pcl庫的問題,在src/cmakelists.txt中,加入下面**:

find_package

(pcl required components common io visualization filters)

(如果出現的是綠黑紅三色塊,按r鍵可以重置視角)

如果問題還未解決,則只能把src/joinpointcloud.cpp裡最後一段**刪除(下圖白框處內容):

這裡刪除以後,拼合的點雲圖結果需要用pcl_viewer自行去檢視。

在執行bin/joinpointcloud檔案時出現這個錯誤,看看根目錄下的parameters.txt檔案裡的演算法是否正確(沒安裝opencv擴充套件模組,需要改為orb演算法):

detector=orb

descriptor=orb

這個錯誤是因為我們用的orb演算法的描述子為uchar,只能使用bruteforce匹配法。將src/slambase.cpp裡(下圖白框處)匹配方法**改為:

這個錯誤之前也說過,是因為opencv版本問題,3.0以上使用solvepnpransac函式時要修改置信度。將src/slambase.cpp裡(下圖白框處)匹配方法**改為:

這個基本都是因為計算的變換矩陣r和平移矩陣t不正確(正確值應該都是正負零點幾)。

看下src/slambase.cpp裡的point2dto3d函式是否寫對,p.x和p.y的計算都是用的p.z而非point.z。

ps:高博在src/joinpointcloud.cpp裡有一段**寫錯了(如下圖白框處所示):

這裡在計算變換矩陣時把平移向量當成了[1,3],實際上是[3,1],應按如下修改:

t(0

,3)= result.tvec.at<

double

>(0

,0);

t(1,

3)= result.tvec.at<

double

>(1

,0);

t(2,

3)= result.tvec.at<

double

>(2

,0);

不過這個對結果的影響不是很大。

一起做RGB D SLAM(6)BUG筆記

跟做高博的 一起做rgb d slam 系列時,出現了挺多bug的 主要因為自己還是個小白 在此記錄下解決過程。ubuntu18.04,opencv3.4.9 一起做rgb d slam 6 在ubuntu18.04下安裝g2o還是挺容易的,先安裝依賴 sudo apt get install qt...

一起做RGB D SLAM(3)BUG筆記

跟做高博的 一起做rgb d slam 系列時,出現了挺多bug的 主要因為自己還是個小白 在此記錄下解決過程。ubuntu18.04,opencv3.4.9 一起做rgb d slam 3 出現這個錯誤是因為nonfree模組在opencv3.0以上的release版本中被移除了,其中我們主要用到...

高博一起做RGBD SLAM

一起做rgb d slam 1 前言 一起做rgb d slam 2 點雲顯示 一起做rgb d slam 3 特徵提取與配準 一起做rgb d slam 4 點雲拼接 一起做rgb d slam 5 視覺里程計 一起做rgb d slam 6 圖優化工具g2o 一起做rgb d slam 7 回環...