默认已安装好ROS和ORB_SLAM2,没有安装的可以看我的另一篇文章:Ubuntu18.04安装和配置ORB_SLAM2(非ROS、ROS环境)_混沌浮世的博客-CSDN博客_ubuntu安装orbslam2
一、下载usb_cam功能包
- 进入ROS工作空间catkin_ws/src目录,通过命令下载 usb_cam
cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git usb_cam
- 回到 catkin_ws目录下, 对下载好的usb_cam进行编译
cd ..
catkin_make
- 编辑bash文件
sudo gedit ~/.bashrc //打开./bashrc
在文件末尾添加下面的代码
source ~/catkin_ws/devel/setup.bash
- 使修改立即生效
source ~/.bashrc
二、将电脑上的摄像头接在虚拟机上
- 点击 虚拟机——可移动设备——“找到摄像头”——断开与主机的连接,连接虚拟机
- 虚拟机——设置——USB控制器——将USB改成USB3.1
三、安装其它必需文件
- 在主目录通过以下命令安装文件
sudo apt-get install ros-melodic-camera-info-manager
sudo apt-get install ros-melodic-image-view
其中melodic为ROS版本号,需要根据自己安装的ROS版本进行修改
四、测试
- 在终端输入以下代码
roslaunch usb_cam usb_cam-test.launch
出现摄像头画面即为测试成功
若出现报错检查下摄像头是否与虚拟机连接成功
五、修改ORB_SLAM2中的文件
- 找到ros_mono.cc的位置 ~/catkin_slam/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src 打开文件,将下面代码
ros::Subscriber sub = nodeHandler.subscribe("/camera/image_raw", 1, &ImageGrabber::GrabImage,&igb);
修改为
ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);
- 编译总的ORB_SLAM2
cd ~/catkin_ws/src/ORB_SLAM2/
mkdir build
cd build
cmake ..
make
- 再单独编译ROS
cd //回到主目录
cd ~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/
mkdir build
cd build
cmake ..
make
六、运行
- 打开一个终端,输入
roscore
- 再打开一个终端
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
参考文章:最完整---在ROS用自己电脑的摄像头在运行ORB_SLAM2_一大块肉松的博客-CSDN博客_ros使用摄像头的slam