要编译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_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/

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

  1. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

    1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...

  2. ubuntu16.04下笔记本自带摄像头编译运行PTAM

    ubuntu16.04下笔记本自带摄像头编译运行PTAM 转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147 个人邮箱:feifan ...

  3. Linux:Ubuntu16.04下创建Wifi热点

    Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1.  ...

  4. Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

    由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...

  5. Ubuntu16.04下安装数据库oracle客户端

    在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...

  6. 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案

    本人SLAM研究新手,使用系统为Ubuntu16.04.本文原址:http://www.cnblogs.com/hitlrk/p/6667253.html 在学习SLAM的过程中,使用Octomap进 ...

  7. Ubuntu16.04下安装redis

    Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/release ...

  8. Ubuntu16.04下Office替代品Office Online

    Ubuntu16.04下Office替代品 Ubuntu16.04下的office Libreoffice 这个是Ubuntu自带的Office,总是存在各种问题,如果用来阅读还是不错的,但是编辑就不 ...

  9. Linux入门(13)——Ubuntu16.04下将图片和pdf互转

    Ubuntu16.04下将图片和pdf互转 将图片转为PDF: convert 图片 PDF convert pic.jpg pic.pdf 将PDF转为图片: convert PDF 图片 conv ...

随机推荐

  1. 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型

    python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...

  2. linux -- Ubuntu报错“unable to locate package...”

    有时候在Ubuntu命令行中执行安装某个文件的时候,如:sudo apt-get install xinit ,报 “unable to locate package...” 错误,解决办法如下 1. ...

  3. 如何在vs2008安装64位编译器

    1.打开D:\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - CHS setup.exe ...

  4. Windows7下4种方式快速显示桌面

    1.Windows键+D快捷键直接显示桌面: 2.鼠标移到任务栏右下角直接显示桌面: 3.Windows键+空格快捷键显示桌面: 4.任务栏鼠标右键,选择“显示桌面”.

  5. DEDECMS教程:首页实现分页的两种方法

    有两种办法可以实现: 一.用arclist标签+Ajax实现织梦首页分页 二.交叉栏目ID 实现织梦首页分页 一.用arclist标签+Ajax实现织梦首页分页 1.必须在首页<head> ...

  6. pcduino nfs挂在光盘

    1.首先在开发板上安装nfs-common 2.在pc端安装nfs-server 3.配置nfs vim /etc/exports 添加:/home/nfsroot *(rw,sync,no_root ...

  7. C#的字符串优化-String.Intern、IsInterned

    https://www.jianshu.com/p/af6eb8d3d4bf 首先看一段程序: using System; class Program { static void Main(strin ...

  8. C51中遇到一个有关data与xdata的问题,已解决

    环境: 我在某个C文件定义了一个结构体变量,然后该变量仅仅是在本文件内被一个函数使用,然后又在中断中调用了该函数,目的是改变一个IO口的输出状态,结果运行时怎么也达不到要的效果. struct BE ...

  9. POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)

    题目 Description One of the more popular activities in San Antonio is to enjoy margaritas in the park ...

  10. Android DOM解析XML示例程序

    DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的.DOM比较符合人的思维模式,但是其对内存的消耗比较大. activity_main.xml < ...