Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

时间:2023-11-13 23:17:44

嗯 这个方法我暂时弄不出来,用了另外一个方法: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(此处还没有标定,后续要做)

这两个文件都拷贝到桌面上去了,如果直接运行一直有问题。

运行后出现问题:

Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

尝试解决问题:

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

问题原因:

Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

查阅资料发现是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 的错误,使用这个解决方法