ORB SLAM2 ROS实例 单目摄像头

本文介绍如何在Ubuntu14.04+ROS Indigo环境下配置ORBSLAM2,实现USB摄像头数据处理及增强现实应用。包括环境变量配置、依赖安装、编译步骤等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORB SLAM2 USB摄像头

实验环境ubuntu 14.04+ros indigo

Step1: 配置环境变量

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

在’src’目录中可能没有任何软件包,只有一个CMakeLists.txt,依然可以编译它:

$ cd ~/catkin_ws/
$ catkin_make

在主文件夹下ctrl+h后找到隐藏文件夹.bashrc。在.bashrc 最下面添加

source /opt/ros/indigo/setup.bash`
source ~/catkin_ws/devel/setup.bash`

Step2:编译usb_cam

[usb_cam下载链接] (https://github.com/bosch-ros-pkg/usb_cam)
把usb_cam放到catkin_ws/src下

$ cd catkin_ws/src/usb_cam
$ mkdir build
$ cd build
$ cmake ..
$ make

Step3: 编译orb_slam2

[orb_slam2 下载链接] ( https://github.com/raulmur/ORB_SLAM2 )

  1. 安装orb slam2依赖

    • 安装 g++11
      $ sudo apt-get install gcc g++

    • 安装 Pangolin

$ sudo apt-get install libglew-dev   #安装Glew
$ sudo apt-get install cmake         #安装CMake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  #安装Boost
$ sudo apt-get install libpython2.7-dev  #安装Python2'Python3
下载、编译、安装Pangolin:
$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make install

注意:Pangolin最新版本会编译失败请使用旧版本

  • 安装OpenCV
$sudo apt-get update
$sudo apt-get install libcv-dev
  • 安装Eigen
    $ sudo apt-get install libeigen3-dev

  • BLAS and LAPACK

$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
  1. 编译ORB_SLAM2库和例子程序(单目、双目和RGB-D)
    $ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
    把ORB_SLAM2放到catkin_ws/src下
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh

生成的libORB_SLAM2.so位于lib目录下,可执行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc位于Examples目录下。

Step4: 把摄像头数据发布到topic

$ roslaunch usb_cam usb_cam-test.launch

Step5: 修改ros_mono.cc

进入~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
打开 ros_mono.cc 把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
然后进入~/catkin_ws/src/ORB_SLAM

$ chmod +x build_ros.sh
$ ./build_ros.sh

Step5: 启动mono

$ ~/catkin_ws/src/ORB_SLAM2$ rosrun ORB_SLAM2 Mono      /home/caylaxu/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/caylaxu/catkin_ws/src/ORB_SLAM2/my.yaml

有两个参数,第二个参数是相机参数文件,根据自己的相机参数修改。

正常启动效果如下
运行效果

都上一步为止已经成功跑起来了,我们来玩点好玩的吧

Step6: 增强现实

参照step4启动摄像头然后执行一下命令

~/catkin_ws/src/ORB_SLAM2$ rosrun ORB_SLAM2 MonoAR      /home/caylaxu/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/caylaxu/catkin_ws/src/ORB_SLAM2/my.yaml

如果没有界面出来不要着急,参照step5 打开 ros_mono_ar.cc把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
然后进入~/catkin_ws/src/ORB_SLAM

$ chmod +x build_ros.sh
$ ./build_ros.sh

首先确保SLAM ON 然后点击添加物体,最终效果如下
这里写图片描述

### ORB_SLAM2ROS中的集成与使用 ORB_SLAM2是一个开源的视觉SLAM库,能够实现即时定位与地图构建功能。对于希望将其应用于机器人操作系统(ROS)环境下的开发者来说,有专门针对ROS版本的支持[^1]。 #### 安装准备 为了使ORB_SLAM2能够在基于ROS的工作环境中正常工作,需要先安装必要的依赖项并配置环境变量。具体操作包括但不限于设置`ROS_PACKAGE_PATH`环境变量指向ORB_SLAM2的例子目录,以便于ROS找到相应的包位置[^3]: ```bash export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/path/to/ORB_SLAM2/Examples/ROS ``` 此命令应添加到`.bashrc`文件中以确保每次启动终端时自动加载路径。 #### 配置与编译 完成上述准备工作之后,按照官方提供的说明文档进行源码下载以及编译过程。需要注意的是,在ROS环境下使用的ORB_SLAM2通常会有一个独立的分支或者是特定标签用于区分不同版本之间的差异。因此建议直接克隆指定仓库地址,并遵循其中给出的具体指示来进行本地化调整。 #### 运行实例 当一切就绪后,可以通过发布话题的方式向ORB_SLAM2传递来自传感器的数据流作为输入。例如,如果使用OpenNI2驱动Kinect摄像头,则可以直接订阅由该驱动发布的图像消息给ORB_SLAM2处理节点。实际执行过程中可能会遇到各种各样的挑战,比如参数匹配不当或是硬件兼容性问题等,这些都需要通过查阅相关资料逐步解决[^2]。 #### 调试技巧 面对可能出现的问题,除了仔细阅读错误提示外,还可以借助rviz可视化工具实时查看算法运行状态;同时也可以考虑开启调试模式输出更多日志信息辅助排查原因所在。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值