前面的准备:
STEP1:第一个终端
roscore
STEP2:第二个终端运行usb_cam
roslaunch usb_cam usb_cam-test.launch
STEP3:
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讲在做)
解决方法: