AR + ROS +UBUNTU16.04+ORB-SLAM2

ROS 同时被 2 个专栏收录
5 篇文章 0 订阅
7 篇文章 0 订阅

ORB SLAM2 USB摄像头

实验环境ubuntu 16.04+ros  kinetic OPencv2.4.9

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 ..
$ ma

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 

注意: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

4-1$ roslaunch usb_cam usb_cam-test.launch


这种方法下载并编译的

  1. $ cd catkin_ws/src  
  2. $ git clone https://github.com/bosch-ros-pkg/usb_cam.git  
  3. $ cd ..  
  4. $ catkin_make  

需要确保usb_cam安装过程中没有错误

4-2、运行usb_cam_node开启摄像头

打开一个新的终端,运行roscore
  1. $ roscore  
新版本的usb_cam包在launch文件夹下有自带的launch文件,名叫usb_cam-test.launch
我们可以直接cd到这个文件夹下运行它
  1. $ cd  
  2. $ cd catkin_ws/src/usb_cam/launch  
  3. $ roslaunch usb_cam-test.launch  
如果工作空间的usb_cam包中不带这个launch文件我们就要新建它:
打开catkin_ws/src/usb_cam/launch文件夹,在其中新建一个文件,把名字改为usb_cam-test.launch
用文本编辑器打开,写入以下代码:
  1. <launch>  
  2.   <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >  
  3.     <param name="video_device" value="/dev/video0" />  
  4.     <param name="image_width" value="640" />  
  5.     <param name="image_height" value="480" />  
  6.     <param name="pixel_format" value="yuyv" />  
  7.     <param name="camera_frame_id" value="usb_cam" />  
  8.     <param name="io_method" value="mmap"/>  
  9.   </node>  
  10.   <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">  
  11.     <remap from="image" to="/usb_cam/image_raw"/>  
  12.     <param name="autosize" value="true" />  
  13.   </node>  
  14. </launch>  
保存,并关闭这个文件。
然后同样要cd到launch文件夹才能运行这个文件:
  1. $ cd  
  2. $ cd catkin_ws/src/usb_cam/launch  
  3. $ roslaunch usb_cam-test.launch

4-3、遇到的问题

1、报错[usb_cam-test.launch] is not a launch file name
运行完roslaunch usb_cam-test.launch后报错说usb_cam-test.launch不是一个launch文件,这是因为没有cd到catkin_ws/src/usb_cam/launch文件夹下,系统找不到这个launch文件
或者如果事先source了该工作空间,可以在任意目录下运行roslaunch usb_cam usb_cam-test.launch都行
2、对于有些节点没有跑起来的情况,可以从下载的catkin_ws/src/usb_cam中找到相应的.py文件然后用cp命令复制到opt/ros/hydro/的相应文件夹下
3、如果出现报错“sh: 1: v4l2-ctl: not found”则需要安装v4l2
运行:sudo apt-get install v4l-utils

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/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt  /home/sun/catkin_ws/src/ORB_SLAM2/my.yaml     node:sun(zhuji)

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

正常启动效果如下

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

Step6: 增强现实

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

~/catkin_ws/src/ORB_SLAM2$ rosrun ORB_SLAM2 MonoAR      /home/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sun/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 然后点击添加物体,最终效果如下

  • 3
    点赞
  • 3
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字50 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值