跟做高博的《一起做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 回環...