zoukankan      html  css  js  c++  java
  • RGBD SLAM V2 +Ubuntu 16.04+ROS KINETIC配置及运行

    Github地址https://github.com/felixendres/rgbdslam_v2

    (目前木有找到哪位大佬写过RGBD SLAM的论文或者代码解析,可以看看笔者写的论文笔记:

    http://www.cnblogs.com/voyagee/p/7027076.html,

    欢迎交流)

    网上教程大多都是基于ROS older version,现在最好使用ROS新的kinetic版本

    首先安装ROS KINETIC

    http://wiki.ros.org/kinetic/  按照installation instruction一步一步来

    安装完Kinetic后,需要先安装一个依赖:(否则编译时会出现cholmod相关的错误)

    sudo apt-get install libsuitesparse-dev

    然后按照Github上作者发布的install.sh安装rgbdslam

    注意:作者使用的g2o是自己的fork版本,如果之前装过G2O,可能会出现冲突问题,最好确保之前的G2O删除干净再安装RGBDSLAM

    安装完成后就可以跑一下看看效果啦。

    如果你使用kinect相机 ,

    sudo apt-get install ros-kinetic-openni-launc

    roslaunch rgbdslam openni+rgbdslam.launch

    (第一次用ROS的新手注意了:在roslaunch 你的launch之前,要另外开一个终端,输入roscore,回车)

     

    一个漂亮的界面出来啦(偷拍我们老板)

     

    一个常见的问题:roslaunch rgbdslam openni+rgbdslam.launch之后,提示

    No devices connected..

    一般是kinect的驱动没有安装

    如果你是使用kinect1代,则安装SensorKinect即可:

    Git clone http://github.com/avin2/SensorKinect.git

    cd Bin

    tar xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2

    cd Sensor-Bin-linux-x64-v5.1.2.1

    ./install.sh

     

    如果是kinect2代(xbox one):使用这个答案中的方法可以解决http://answers.ros.org/question/234659/rgbdslam-v2-on-kinect-v2-no-devices-connected-waiting-for-devices-to-be-connected/

    如果手上没有kinect相机,

    那就去买一个

    如果买不起

    可以到TUM上下载数据集来模拟live data,记得下载.bag格式的

    http://vision.in.tum.de/data/datasets/rgbd-dataset

    选一两个数据集,点击后面的more info,找到bag格式的下载下来

    方法一:

    新开一个终端

    rosbag play yourbagpath.bag

    再开一个终端

    rostopic list 查看发布的topic(rosbag被以topic形式发布)

    也可以rosrun rviz rviz来查看该数据集 , 在跳出来的窗口中点击add->topic,找到你发布的topic,可以动态显示图片

     此时你应该已经知道topic的名字了,现在更改rgbdslam.launch,让他收听该topic

    vi yourlpath/launch/rgbdslam.launch

    把这两行参数分别改为你的color和depth对应的topic名称

        <param name="config/topic_image_mono"              value="/camera/rgb/image_color"/>   
        <param name="config/topic_image_depth"             value="/camera/depth/image "/>  

    然后

    roslaunch rgbdslam rgbdslam.launch

    或者,想要快速看一下在数据集上运行是个什么效果的话,

    方法二:

    roslaunch rgbdslam test_settings.launch bagfile_name:="..../*.bag" 
    

     方法三:

    方法三可以在数据集对RGB-D SLAM进行evaluate,得到ATE(absolute trajectory error )的最大值,均值等等

    把*.bag与对应的 bagname_groundtruth.txt保存到 ../rgbdslam/test目录下,然后在终端运行 run_tests.sh

    完工

    另一个要注意的问题:再新开的终端要运行roslaunch rgbdslam rgbdslam.launch的话,要先

    source ....../rgbdslam_catkin_ws/devel/setup.bash

    否则会出现错误

    [rgbdslam.launch] is neither a launch file in package [rgbdslam] nor is [rgbdslam] a launch file name
    The traceback for the exception was written to the log file

    对你有帮助的话别忘了顶一下啦啦啦~

  • 相关阅读:
    Mysql Window 解压版卸载
    maven jdk 版本配置
    单点登录原理与简单实现
    JAVA HASHMAP的死循环
    Intellij IDEA 4种配置热部署的方法
    springmvc 返回 404 解决
    设计模式 -- 模版模式
    安装Oracle Database 11g 找不到文件“WFMLRSVCApp.ear” .
    红黑树 -- 增删查改
    TIJ -- CountDownLatch
  • 原文地址:https://www.cnblogs.com/voyagee/p/6898278.html
Copyright © 2011-2022 走看看