1.主目录创建一个catkin,工作空间并且编译。
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
2.在主文件夹下ctrl+h后找到隐藏文件夹 .bashrc。在.bashrc 最下面添加ROS工作路径。
source /opt/ros/indigo/setup.bash
source ~/catkin_ws/devel/setup.bash
3.编译orb_slam2(下载链接: https://github.com/raulmur/ORB_SLAM2)。
步骤较多,参考链接:
需要编译好ORBSLAM2 ROS版本,可以ROS下运行数据集即可。
4.插上usb摄像机,安装相机程序,确认usb设备名。
sudo apt install camorama #安装相机程序
ls /dev/video* #查看相机设备名目录,例如我的相机是dev/video0
camorama -d /dev/video0 #看是否有图像输出 且是对应摄像头
5.修改编译usb_cam(下载链接:https://github.com/bosch-ros-pkg/usb_cam),下载后放到ROS内 /catkin_ws/src下。
打开 src/usb_cam_develop/launch/usb_cam-test.launch 内改为自己相机设备名 默认为video0。
<param name="video_device" value="/dev/video0" />
回到ROS工作目录下,编译。
catkin_make
6.进到catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src 打开ros_mono.cc
将subscribe的话题改为相机发布的topic usb_cam/image_raw
ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);
因为有更改,进入ORBSLAM内重新编译ROS版本。
然后返回ros空间再catkin_make。
./build_ros.sh
cd ../..
catkin_make
7.运行阶段 先运行摄像头节点,再运行单目slam,改好自己路径。
$ roslaunch usb_cam usb_cam-test.launch
$ rosrun ORB_SLAM2 Mono /home/你的电脑名/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/你的电脑名/catkin_ws/src/ORB_SLAM2/my.yaml