要编译ORB_SLAM2的ROS例程首先须要安装ROS,以及在ROS下安装usb_cam驱动并调用,最后搭建ORB_SLAM2。html
1.ROS的安装node
个人电脑安装的是ubuntu16.04系统,因此我安装的是2016年的发行版本ROS_Kinetic,通常的话ROS的版本是一年一更新,和ubuntu的系统更新保持同步。若是你的系统是ubuntu14.04,你能够安装2014年的发行版本ROS_Indigo。git
ROS_Kinetic在ubuntu16.04上的安装能够参考个人博客:点击连接地址github
2.usb_cam在ROS中的编译ubuntu
首先要新建一个ROS的工做空间bash
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace
编译工做空间测试
cd ~/catkin_ws/
catkin_make
设置环境变量ui
source devel/setup.bash
若是你的终端为zsh,请用以下命令spa
source devel/setup.zsh
进入到catkin_ws/src目录下,下载usb_cam的源文件到此目录下.net
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_VOCABULARY是ORBvoc.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/