Ubuntu14.04 使用本地攝像頭跑ORB SLAM2


嗯 這個方法我弄不出來,用了另外一個方法:SLAM14講 第一次課 使用攝像頭或視頻運行 ORB-SLAM2

 

前面的准備:

Ubuntu14.04安裝 ROS 安裝步驟和問題總結

Ubuntu14.04+ROS 啟動本地攝像頭

 http://www.liuxiao.org/2016/07/ubuntu-orb-slam2-%E5%9C%A8-ros-%E4%B8%8A%E7%BC%96%E8%AF%91%E8%B0%83%E8%AF%95/

STEP1:第一個終端

roscore

STEP2:第二個終端運行usb_cam (如果出現問題見上面的第二個參考,里面有兩種方法啟動攝像頭)

roslaunch usb_cam usb_cam-test.launch

STEP3:第三個終端

source Examples/ROS/ORB_SLAM2/build/devel/setup.bash   (路徑看自己的ORB_SLAM2文件,如果沒有這一步會有錯誤:[rospack] Error: package 'ORB_SLAM2' not found)

rosrun ORB_SLAM2 Mono /home/zc/Desktop/ORBvoc.txt  /home/zc/Desktop/Asus.yaml

我把

./Vocabulary/ORBvoc.txt

/home/zc/Desktop/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml(此處還沒有標定,后續要做)

這兩個文件都拷貝到桌面上去了,如果直接運行一直有問題。

 

運行后出現問題:

嘗試解決問題:

OpenCV Error: Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName, file /build/opencv-_msWgW/opencv-2.4.8+dfsg1/modules/core/src/persistence.cpp, line 740
terminate called after throwing an instance of 'cv::Exception'
what(): /build/opencv-_msWgW/opencv-2.4.8+dfsg1/modules/core/src/persistence.cpp:740: error: (-5) Invalid pointer to file storage in function cvGetFileNodeByName

問題原因:

 

查閱資料發現是OpenCV3與ROS兼容問題,因為indigo里面自帶的是opencv2.4.8,而我要用的程序是基於opencv3的。(這里因為之前跟着SLAM14講在做)

解決方法:在程序所在工作空間中加入最新的cv_bridge包,重新catkin-make,這樣就可以解決該問題了。

cv_bridge包

鏈接:https://pan.baidu.com/s/1CsCfjrIUyepNqxKhECIsyQ 
提取碼:n1rm 

有可能出現catkin_make:commond not found 的錯誤,使用這個解決方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM