ubuntu16.04下用笔记本摄像头和ROS编译运行ORB_SLAM2的单目AR例程

要编译ORB_SLAM2的ROS例程首先需要安装ROS,以及在ROS下安装usb_cam驱动并调用,最后搭建ORB_SLAM2。

1.ROS的安装

我的电脑安装的是ubuntu16.04系统,所以我安装的是2016年的发行版本ROS_Kinetic,一般的话ROS的版本是一年一更新,和ubuntu的系统更新保持同步。如果你的系统是ubuntu14.04,你可以安装2014年的发行版本ROS_Indigo。

ROS_Kinetic在ubuntu16.04上的安装可以参考我的博客:点击链接地址

 

2.usb_cam在ROS中的编译

首先要新建一个ROS的工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

编译工作空间

cd ~/catkin_ws/
catkin_make

设置环境变量

source devel/setup.bash

如果你的终端为zsh,请用如下命令

source devel/setup.zsh

进入到catkin_ws/src目录下,下载usb_cam的源文件到此目录下

cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git

退出到catkin_ws目录下执行catkin_make命令进行编译并设置环境

cd ..
catkin_make
source ~/catkin-ws/devel/setup.bash

可以测试是否配置成功

roscd usb_cam

没报错就说明安装成功了

3.编译ORB_SLAM2库

最简单的根据orb_slam2在github上面的项目地址就可以安装成功

项目地址:https://github.com/raulmur/ORB_SLAM2

详细的可以参考我的博文:点击链接地址

 

4.编译ROS例程

网上编译ROS例程的教程很多,但我还是觉得github上面提供的最方便

首先进入到你的ORB_SLAM2源代码目录下,然后执行命令

chmod +x build_ros.sh
./build_ros.sh

这个可能不会100%编译成功,但Mono和MonoAR可以编译成功,主要是ros_rgbd不能编译成功,出现报错,我就没管他。

编译完之后,记得在.bashrc后面加入:

 

source /home/zn/ORB_SLAM2-master/Examples/ROS/ORB_SLAM2/build/devel/setup.bash

 

5. 运行ROS中的Demo

以上步骤都成功后,我们就可以运行ros中的demo了

开始之前还有个地方需要改:

 

把ros_mono_ar.cc中的

 

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);

 

(看到没有,路径变了哟。因为我们的图片都是从/usb_cam/image_raw发送过来的)

 

然后再把Example编译一下~

 

这下可以开始了:

 

首先我们要启动ros内核,新开一个终端,执行

roscore

启动usb_cam摄像头节点,新开一个终端,执行

roslaunch usb_cam usb_cam.launch

启动 ORB_SLAM2 的 Mono 节点(单目)

rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE
PATH_TO_VOCABULARYORBvoc.txt文件路径PATH_TO_SETTINGS_FILE是你的摄像机内参数文件路径

所以可以在第三个终端输入如下命令:

rosrun ORB_SLAM2 MonoAR /home/zn/ORB_SLAM2/Vocabulary/ORBvoc.txt  /home/zn/ORB_SLAM2/Examples/Monocular/TUM1.yaml

路径按照自己的电脑路径进行更改,TUM1.yaml是参数设置文件,主要是相机的内参,这个得自己标定。如果懒得标定,可以直接用TUM1.yaml,不影响程序的运行。

 

 end......

 参考博文:https://blog.csdn.net/u79501/article/details/68942174

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/