主要参考了一篇学长的安装和这一篇安装:
https://blog.csdn.net/RadiantJeral/article/details/82193370
按照上文的安装方法你可以完成除实时外的所有工作,包括数据集的运行。当然他安装库的处理地址都在ORB_SLAM文件夹下,如果你之前学过SLAM14讲,这些库一定都安装好了,没安装也不必需在文件夹下。
使用数据集效果如图:
之后实时工作,需要先改~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc:
原 /camera/image_raw 改为/usb_cam/image_raw
// Create SLAM system. It initializes all system threads and gets ready to process frames.
ORB_SLAM2::System SLAM(argv[1],argv[2],ORB_SLAM2::System::MONOCULAR,true);
ImageGrabber igb(&SLAM);
ros::NodeHandle nodeHandler;
ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);
ros::spin();
可能有不同,这个看你的
roslaunch usb_cam usb_cam-test.launch
后的相机显示名
之后回到~/catkin_ws/src/ORB_SLAM进行:
$ chmod +x build_ros.sh
$ ./build_ros.sh
完成后:
分别两个终端,执行如下命令:
roslaunch usb_cam usb_cam-test.launch
rosrun ORB_SLAM2 Mono ~/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
效果如图:
可能遇到的bug:
https://blog.csdn.net/unlimitedai/article/details/86601852