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

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

posted @ 2017-05-24 12:15  Voyagee  阅读(11360)  评论(3编辑  收藏  举报