Overview

This package is a ROS wrapper of RTAB-Map (Real-Time Appearance-Based Mapping), a RGB-D SLAM approach based on a global loop closure detector with real-time constraints. This package can be used to generate a 3D point clouds of the environment and/or to create a 2D occupancy grid map for navigation. The tutorials and demos show some examples of mapping with RTAB-Map.

Migration Guide New Interface Noetic/ROS2

rtabmap_ros is now a meta package, all nodes were moved into sub packages matching their function. Documentation for each node/nodelet is moved in respective sub packages linked in this table:

Old Name

New Name

rtabmap_ros

rtabmap.launch

rtabmap_launch

rtabmap.launch

rtabmap_ros

rtabmap

rtabmap_slam

rtabmap

rtabmap_ros

rtabmap_odom

rgbd_odometry

rgbd_odometry

stereo_odometry

stereo_odometry

icp_odometry

icp_odometry

rtabmap_ros

rtabmap_sync

rgb_sync

rgb_sync

rgbd_sync

rgbd_sync

stereo_sync

stereo_sync

rtabmap_ros

rtabmap_util

point_cloud_xyz

point_cloud_xyz

point_cloud_xyzrgb

point_cloud_xyzrgb

map_assembler

map_assembler

map_optimizer

map_optimizer

point_cloud_assembler

point_cloud_assembler

point_cloud_aggregator

point_cloud_aggregator

pointcloud_to_depthimage

pointcloud_to_depthimage

disparity_to_depth

disparity_to_depth

obstacles_detection

obstacles_detection

rgbd_relay

rgbd_relay

rtabmap_ros

rtabmap_legacy

data_odom_sync

data_odom_sync

data_throttle

data_throttle

stereo_throttle

stereo_throttle

camera

camera

rtabmap_ros

rtabmapviz

rtabmap_viz

rtabmap_viz

rtabmap_ros

messages

rtabmap_msgs

messages

rtabmap_ros

rviz plugins

rtabmap_rviz_plugins

rviz plugins

rtabmap_ros

costmap plugins

rtabmap_costmap_plugins

costmap plugins

Tutorials

  1. RGB-D Handheld Mapping

    This tutorial shows how to use rtabmap_ros out-of-the-box with a Kinect-like sensor in mapping mode or localization mode.

  2. Stereo Handheld Mapping

    This tutorial shows how to use rtabmap_ros out-of-the-box with a stereo camera in mapping mode or localization mode.

  3. Remote Mapping

    This tutorial shows how to do mapping on a remote computer.

  4. Stereo Outdoor Mapping

    This tutorial shows how to do stereo mapping with RTAB-Map.

  5. Stereo Outdoor Navigation

    This tutorial shows how to integrate autonomous navigation with RTAB-Map in context of outdoor stereo mapping.

  6. Setup RTAB-Map on Your Robot!

    This tutorial shows multiple RTAB-Map configurations that can be used on your robot.

  7. Mapping and Navigation with Turtlebot

    This tutorial shows how to use RTAB-Map with Turtlebot for mapping and navigation.

  8. Tango ROS Streamer

    Tutorial to get Tango ROS Streamer working with rtabmap_ros

  9. Advanced Parameter Tuning

    This tutorial tells you which parameter to change to improve performances

  10. Wifi Signal Strength Mapping (User Data Usage)

    This tutorial shows how to add user data during mapping that will be saved directly in RTAB-Map's database for convenience.

Demos

Robot mapping

For this demo, you will need the ROS bag demo_mapping.bag (295 MB, fixed camera TF 2016/06/28, fixed not normalized quaternions 2017/02/24, fixed compressedDepth encoding format 2020/05/27, fixed odom child_frame_id not set 2021/01/22).

Launch: demo_robot_mapping.launch

  • $ roslaunch rtabmap_demos demo_robot_mapping.launch
    $ rosbag play --clock demo_mapping.bag

After mapping, you could try the localization mode:

  • $ roslaunch rtabmap_demos demo_robot_mapping.launch localization:=true
    $ rosbag play --clock demo_mapping.bag
  • Note that the GUI node doesn't download automatically the map when started. You will need to click "Edit->Download Map" on the GUI to download the map from the core node.

Robot mapping with RVIZ

For this demo, you will need the ROS bag demo_mapping.bag (295 MB, fixed camera TF 2016/06/28, fixed not normalized quaternions 2017/02/24, fixed compressedDepth encoding format 2020/05/27, fixed odom child_frame_id not set 2021/01/22).

Launch: demo_robot_mapping.launch

  • $ roslaunch rtabmap_demos demo_robot_mapping.launch rviz:=true rtabmapviz:=false
    $ rosbag play --clock demo_mapping.bag

Multi-session mapping

Detailed results are shown on the Multi-session page on RTAB-Map's wiki.

For this demo, you will need the ROS bags of five mapping sessions:

For the first launch, you can do "Edit->Delete memory" to make sure that you start from a clean memory. You may need to do this after starting the first bag with "--pause" so that rtabmap node is initialized to avoid a "service /reset cannot be called" error.

Launch: demo_multi-session_mapping.launch

  • $ roslaunch rtabmap_demos demo_multi-session_mapping.launch
    $ rosbag play --clock --pause map1.bag
    $ (...)
    $ rosbag play --clock map2.bag
    $ (...)
    $ rosbag play --clock map3.bag
    $ (...)
    $ rosbag play --clock map4.bag
    $ (...)
    $ rosbag play --clock map5.bag

Robot mapping with Find-Object

Find-Object's ros-pkg find_object_2d should be installed.

ROS Bag: demo_find_object.bag (416 MB, fixed compressedDepth encoding format 2024/04/27)

Launch: demo_find_object.launch

  • $ roslaunch rtabmap_demos demo_find_object.launch
    $ rosbag play --clock demo_find_object.bag

IROS 2014 Kinect Challenge

There is no bag recorded for this demo but how to reproduce this setup is described on the page IROS 2014 Kinect Challenge of the RTAB-Map's wiki.

Stereo mapping

Visit the tutorial StereoOutdoorMapping for detailed information. It is also shown how to create 2D occupancy grid map for navigation.

ROS bags:

Launch : demo_stereo_outdoor.launch

  • $ roslaunch rtabmap_demos demo_stereo_outdoor.launch
    $ rosbag play --clock stereo_outdoorA.bag
    [...]
    $ rosbag play --clock stereo_outdoorB.bag

Stereo navigation

There is no bag recorded for this demo but how to reproduce this setup is described in the tutorial StereoOutdoorNavigation.

Appearance-based loop closure detection-only

Data:

  • samples.zip

    • Set video_or_images_path parameter of camera node in the launch file below accordingly.

Launch: demo_appearance_mapping.launch

  • $ roslaunch rtabmap_demos demo_appearance_mapping.launch

The GUI shows a plenty of information about the loop closures detected. If you only need the ID of the matched past image of a loop closure, you can do that:

  • $ rostopic echo /rtabmap/info/loopClosureId
    6
    ---
    0
    ---
    7
    ---

A "0" means no loop closure detected. This can be also used in localization mode:

  • $ roslaunch rtabmap_demos demo_appearance_mapping.launch localization:=true

For more videos and information about the loop closure detection approach used in RTAB-Map, visit RTAB-Map on IntRoLab.

Wiki: rtabmap_ros/noetic_and_newer (last edited 2024-11-04 01:46:20 by MathieuLabbe)