(转)ORB-SLAM2 with Kinect V1

原文链接:https://www.cnblogs.com/zengcv/p/6021512.html

因为手上只有kinect V1 没有V2,而网上关于ORB-SLAM2的实现都是基于Kinect2,最著名的是高博进行实现的 http://www.cnblogs.com/gaoxiang12/p/5161223.html。通过查阅部分资料,用Kinect1实现了ORB-SLAM2,这里总结一下具体步骤。

1.我的系统:

    Ubuntu14.04, ROS indigo,Lenovo Z485, Kinect V1.

 

2. 依赖项安装,参照ORB-SLAM2的Prerequisites (dependencies) 部分

2.1 ROS  安装的是indigo (http://wiki.ros.org/indigo/Installation/Ubuntu)
   sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
   sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
   sudo apt-get update   
   sudo apt-get install libgl1-mesa-dev-lts-utopic 
   sudo apt-get install ros-indigo-desktop-full
   sudo rosdep init
   rosdep update
   echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
   source ~/.bashrc
   安装完后,ctrl+alt+t打开终端,执行roscore,测试ROS是否成功安装。

2.2 Boost      sudo apt-get install libboost-all-dev
2.3 Pangolin安装 (下载地址 https://github.com/stevenlovegrove/Pangolin)
   git clone https://github.com/stevenlovegrove/Pangolin.git 
   cd Pangolin 
   mkdir build 
   cd build 
   cmake .. 
   make -j 

 2.4 OpenCV (安装的是OpenCV2.4.11,参考网站http://blog.csdn.net/tb_huge/article/details/51784625
 2.5 Eigen3安装
    sudo apt-get install libeigen3-dev
    cd /usr/include/eigen3              (ls查看,含有3个文件: Eigen  signature_of_eigen3_matrix_library  unsupported)
    sudo cp Eigen/ .. -R                  (将Eigen文件夹放在 /usr/include 下面)
 2.6 DBoW2和g2o (included in Thirdparty)  在ORB-SLAM2的Thirdparty文件夹里面,无需安装。


3. 安装ORB-SLAM2 参照ORB-SLAM2的Installation部分
  3.1 下载  git clone https://github.com/raulmur/ORB_SLAM.git  (可以直接放在home下,然后解压)
  3.2 修改.bashrc,加入export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH_TO_PARENT_OF_ORB_SLAM     (红色字体是需要修改的内容,改为ROS文件夹下的ORB-SLAM2路径)  
    gedit .bashrc  
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/zfy/ORB-SLAM2/Examples/ROS    (根据需要,红色字体改为对应的路径)    
  3.3 cd到Examples/ROS/ORB_SLAM2,然后执行:
     mkdir build
     cd build
     cmake .. -DROS_BUILD_TYPE=Release
     make -j
     编译得到RGBD节点。(ps:新版本的ORB_SLAM2增加了build_ros.sh,里面的内容就是上面4行命令)

  3.4 cd到/home/zfy/ORB-SLAM2,执行:
       chmod +x build.sh
      ./build.sh
      编译完成ORB-SLAM2。 (build.sh中包含编译DBOW2和g2o,编译过程很占用计算资源,电脑会很卡,稍微等等)

 4. 安装Kinect V1 驱动

    sudo apt-get install libfreenect-dev
    sudo apt-get install ros-indigo-freenect-launch

 可以通过 roslaunch freenect_launch freenect.launch 验证kinect驱动是否安装成功;
 rostopic list查看ORB-SLAM2需要的两个topic: /camera/rgb/image_raw     /camera/depth_registered/image_raw


5. 配置launch文件
 在解压后的ORB-SLAM2的根目录下新建文件kinect_orbslam2.launch , 其内容为(根据需要,红色字体改为对应的路径,其他的无需修改)
<launch> 
  <param name="orb_use_viewer" value="false"/> 
  <node pkg="ORB_SLAM2" type="RGBD" name="ORB_SLAM2" 
        args="/home/zfy/ORB_SLAM2/Vocabulary/ORBvoc.txt 
         /home/zfy/ORB_SLAM2/Examples/RGB-D/TUM1.yaml" cwd="node" output="screen"/> 

  <include file="$(find freenect_launch)/launch/freenect.launch"> 
    <!-- use device registration --> 
    <arg name="depth_registration" value="true" /> 
    <arg name="rgb_processing" value="true" /> 
    <arg name="ir_processing" value="false" /> 
    <arg name="depth_processing" value="false" /> 
    <arg name="depth_registered_processing" value="true" /> 
    <arg name="disparity_processing" value="false" /> 
    <arg name="disparity_registered_processing" value="false" /> 
    <arg name="sw_registered_processing" value="false" /> 
    <arg name="hw_registered_processing" value="true" /> 
  </include> 
</launch> 

6. 运行ORB-SLAM2
 cd ORB-SLAM2
 ./build.sh
 roslaunch kinect_orbslam2.launch

结果如下图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值