rtabmap_ros 使用 kinect2(xbox one)进行SLAM


rtabmap_ros算法论文:

RGB-D mapping

  • M. Labbé and F. Michaud, “Online Global Loop Closure Detection for Large-Scale Multi-Session Graph-Based SLAM,” inProceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2014. (IEEE Xplore)
  • Results shown in this paper can be reproduced by the Multi-session mapping tutorial.

Loop closure detection

  • M. Labbé and F. Michaud, “Appearance-Based Loop Closure Detection for Online Large-Scale and Long-Term Operation,” inIEEE Transactions on Robotics, vol. 29, no. 3, pp. 734-745, 2013. (IEEE Xplore)
  • M. Labbé and F. Michaud, “Memory management for real-time appearance-based loop closure detection,” inProceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2011, pp. 1271–1276. (IEEE Xplore)
  • Visit RTAB-Map’s page on IntRoLab for detailed information on the loop closure detection approach and related datasets.


准备工作:

     1> 安装ROS

     2> 安装kinect2 (xbox one)驱动: http://blog.csdn.net/sean_xyz/article/details/53117546

     3> 安装tabmap_ros


步骤:

     1> 启动kinect2

roslaunch kinect2_bridge kinect2_bridge.launch pulish_tf:=true


     2> tf : 如果使用的是默认的qhd, 那么对应的frame 是 kinect2_rgb_optical_frame, 这一点和官方不同

    如果使用的是hd, 那么对应的frame也是 kinect2_rgb_optical_frame, hd和qhd的尺寸图像都是基于rgd镜头的, 所以它们的frame是彩色镜头的frame

    如果使用的是sd, 那么对应的frame是 kinect2_ir_optical_frame,  红外镜头的frame,

   本文的红色字体表明了镜头frame的选择

rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 camera_link kinect2_rgb_optical_frame  100           


 3> 启动rtabmap_ros

roslaunch rtabmap_ros rgbd_mapping.launch

rtabmap_args:="--delete_db_on_start"

rgb_topic:=/kinect2/qhd/image_color_rect

depth_registered_topic:=/kinect2/qhd/image_depth_rect

camera_info_topic:=/kinect2/qhd/camera_info



结果预览:

rtabmap_ros 使用 kinect2(xbox one)进行SLAM_第1张图片


总结:

// kinect2 bridge
roslaunch kinect2_bridge kinect2_bridge.launch pulish_tf:=true 

// static tf
rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 camera_link kinect2_ir_optical_frame  100 

// mapping 
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start" rgb_topic:=/kinect2/sd/image_color_rect depth_registered_topic:=/kinect2/sd/image_depth_rect camera_info_topic:=/kinect2/sd/camera_info

// navigation
roslaunch rtabmap_ros rgbd_mapping.launch localization:=true rgb_topic:=/kinect2/sd/image_color_rect depth_registered_topic:=/kinect2/sd/image_depth_rect camera_info_topic:=/kinect2/sd/camera_info

地图默认存放在~/.ros/rtabmap.bd


参考:

     http://wiki.ros.org/rtabmap_ros

     http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping

     https://github.com/introlab/rtabmap/wiki

     http://introlab.github.io/rtabmap/

你可能感兴趣的:(ROS,vSLAM)