-
 

rtabmap_ros repository

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-12-01
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

rtabmap_ros

RTAB-Map’s ROS2 package (branch ros2). ROS2 Foxy minimum required: currently most nodes are ported to ROS2. The interface is the same than on ROS1 (parameters and topic names should still match ROS1 documentation on rtabmap_ros).

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries </tbody> </table> # Usage * For sensor integration examples (stereo and RGB-D cameras, 3D LiDAR), see [rtabmap_examples](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_examples/launch) sub-folder. * For robot integration examples (turtlebot3 and turtlebot4, nav2 integration), see [rtabmap_demos](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos) sub-folder. ## Logging To make RTAB-Map's logs appear ordered with RCLCPP's logs, set the following environment variables in your `.bashrc` (see official "[About Logging](https://docs.ros.org/en/humble/Concepts/Intermediate/About-Logging.html)" documentation for more info): ```bash export RCUTILS_LOGGING_USE_STDOUT=1 export RCUTILS_LOGGING_BUFFERED_STREAM=1 # Optional, but if you like colored logs: export RCUTILS_COLORIZED_OUTPUT=1 ``` ## Recommended DDS If RTAB-Map's GUI or topic frequency feel laggy (even if processing time looks fast enough), it may be caused by the DDS. I recommend to use [Cyclone DDS](https://docs.ros.org/en/foxy/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html), you can try it by adding this before launching any nodes/launch files: ```bash export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ``` # Installation ### Binaries ```bash sudo apt install ros-$ROS_DISTRO-rtabmap-ros ``` ### From Source * Make sure to uninstall any rtabmap binaries: ``` sudo apt remove ros-$ROS_DISTRO-rtabmap* ``` * RTAB-Map ROS2 package: ```bash cd ~/ros2_ws git clone https://github.com/introlab/rtabmap.git src/rtabmap git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros rosdep update && rosdep install --from-paths src --ignore-src -r -y export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB) colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ``` * To build with `rgbd_cameras>1` support and/or `subscribe_user_data` support: ```bash colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON -DCMAKE_BUILD_TYPE=Release ```
ROS 1 Noetic Build Status</td> </tr>
ROS 2 Humble Build Status</td> </tr>
Iron Build Status</td> </tr>
Jazzy Build Status</td> </tr>
Rolling Build Status</td> </tr>
Docker rtabmap_ros Docker Pulls

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version jazzy-devel
Last Updated 2024-12-01
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

rtabmap_ros

RTAB-Map’s ROS2 package (branch ros2). ROS2 Foxy minimum required: currently most nodes are ported to ROS2. The interface is the same than on ROS1 (parameters and topic names should still match ROS1 documentation on rtabmap_ros).

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries </tbody> </table> # Usage * For sensor integration examples (stereo and RGB-D cameras, 3D LiDAR), see [rtabmap_examples](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_examples/launch) sub-folder. * For robot integration examples (turtlebot3 and turtlebot4, nav2 integration), see [rtabmap_demos](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos) sub-folder. ## Logging To make RTAB-Map's logs appear ordered with RCLCPP's logs, set the following environment variables in your `.bashrc` (see official "[About Logging](https://docs.ros.org/en/humble/Concepts/Intermediate/About-Logging.html)" documentation for more info): ```bash export RCUTILS_LOGGING_USE_STDOUT=1 export RCUTILS_LOGGING_BUFFERED_STREAM=1 # Optional, but if you like colored logs: export RCUTILS_COLORIZED_OUTPUT=1 ``` ## Recommended DDS If RTAB-Map's GUI or topic frequency feel laggy (even if processing time looks fast enough), it may be caused by the DDS. I recommend to use [Cyclone DDS](https://docs.ros.org/en/foxy/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html), you can try it by adding this before launching any nodes/launch files: ```bash export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ``` # Installation ### Binaries ```bash sudo apt install ros-$ROS_DISTRO-rtabmap-ros ``` ### From Source * Make sure to uninstall any rtabmap binaries: ``` sudo apt remove ros-$ROS_DISTRO-rtabmap* ``` * RTAB-Map ROS2 package: ```bash cd ~/ros2_ws git clone https://github.com/introlab/rtabmap.git src/rtabmap git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros rosdep update && rosdep install --from-paths src --ignore-src -r -y export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB) colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ``` * To build with `rgbd_cameras>1` support and/or `subscribe_user_data` support: ```bash colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON -DCMAKE_BUILD_TYPE=Release ```
ROS 1 Noetic Build Status</td> </tr>
ROS 2 Humble Build Status</td> </tr>
Iron Build Status</td> </tr>
Jazzy Build Status</td> </tr>
Rolling Build Status</td> </tr>
Docker rtabmap_ros Docker Pulls

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version noetic-devel
Last Updated 2024-12-01
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

rtabmap_ros

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries </tbody> </table> # Installation ## ROS2 distribution See [ros2 branch](https://github.com/introlab/rtabmap_ros/tree/ros2#rtabmap_ros). ## ROS1 distribution RTAB-Map is released as binaries in the ROS distribution. ```bash sudo apt install ros-$ROS_DISTRO-rtabmap-ros ``` When launching `rtabmap_ros`'s nodes, if you have the error `error while loading shared libraries...`, try `ldconfig` or add the next line at the end of your `~/.bashrc` to fix it: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/noetic/lib/x86_64-linux-gnu ``` ### Docker * Go to [docker](https://github.com/introlab/rtabmap_ros/tree/master/docker) directory for an example. ## Build from source This section shows how to install RTAB-Map ros-pkg on **ROS Noetic** (Catkin build). * The next instructions assume that you have set up your ROS workspace using this [tutorial](http://wiki.ros.org/catkin/Tutorials/create_a_workspace). The workspace path is `~/catkin_ws` and your `~/.bashrc` contains: ```bash $ source /opt/ros/$ROS_DISTRO/setup.bash $ source ~/catkin_ws/devel/setup.bash ``` 0. Required dependencies * The easiest way to get all them (Qt, PCL, VTK, OpenCV, g2o, gtsam ...) is to install/uninstall rtabmap binaries: ```bash sudo apt install ros-$ROS_DISTRO-rtabmap* sudo apt remove ros-$ROS_DISTRO-rtabmap* ``` 1. Optional dependencies * If you want SURF/SIFT on Noetic, you have to build [OpenCV]([OpenCV](http://opencv.org/)) from source to have access to *xfeatures2d* and *nonfree* modules. Install it in `/usr/local` (default) and rtabmap library should link with it instead of the one installed in ROS. * On Noetic, build from source with *xfeatures2d* module (and *nonfree* module if needed) the same OpenCV version already installed on the system. You will then avoid breaking `cv_bridge` with `rtabmap_ros`. If you want to install a more recent OpenCV version, I recommend to uninstall `libopencv*` libraries (with all ros packages depending on it) and rebuild all those ros packages in your catkin workspace (to make sure `cv_bridge` is linked on the OpenCV version you just compiled). * [g2o](https://github.com/RainerKuemmerle/g2o): Should be already installed by `ros-$ROS_DISTRO-libg2o`. * [GTSAM](https://gtsam.org/get_started/): Should be already installed by `ros-$ROS_DISTRO-gtsam`. * [libpointmatcher](https://github.com/ethz-asl/libpointmatcher): **Recommended** if you are going to use lidars. Should be alread installed by `ros-$ROS_DISTRO-libpointmatcher` (Official [install instructions](https://github.com/ethz-asl/libpointmatcher#quick-start)). 2. Install RTAB-Map standalone libraries. **Do not clone in your Catkin workspace**. ```bash cd ~ git clone https://github.com/introlab/rtabmap.git rtabmap cd rtabmap/build cmake .. [<---double dots included] make -j6 sudo make install ``` 3. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace. ```bash cd ~/catkin_ws git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros catkin_make -j4 ``` * Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~2 GB to build depending on gcc version). * Options: * Add `-DRTABMAP_SYNC_MULTI_RGBD=ON` to `catkin_make` if you plan to use multiple cameras. * Add `-DRTABMAP_SYNC_USER_DATA=ON` to `catkin_make` if you plan to use user data synchronized topics. ## Build from source for Nvidia Jetson * For latest jetpack, see this [post](https://github.com/introlab/rtabmap_ros/issues/943) to use docker (you will save a lot of time using the already built docker images). * For **Jetpack 4** (Ubuntu 18.04 with ROS Melodic), see this [post](https://github.com/introlab/rtabmap/issues/427#issuecomment-608052821). * For **Jetpack 3** (Ubuntu 16.04 with ROS Kinetic), see this [post](https://github.com/introlab/rtabmap_ros/issues/655). ### Update to new version ```bash ########### # rtabmap ########### cd rtabmap git pull origin master cd build make make install # Do "sudo make install" if you installed rtabmap in "/usr/local" ########### # rtabmap_ros ########### roscd rtabmap_ros git pull origin master roscd cd .. catkin_make -j1 --pkg rtabmap_ros ```
ROS 1 Noetic Build Status</td> </tr>
ROS 2 Humble Build Status</td> </tr>
Iron Build Status</td> </tr>
Jazzy Build Status</td> </tr>
Rolling Build Status</td> </tr>
Docker rtabmap_ros Docker Pulls

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version galactic-devel
Last Updated 2022-10-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.20.20

README

rtabmap_ros Build Status

RTAB-Map’s ROS2 package (branch ros2). ROS2 Foxy minimum required: currently most nodes are ported to ROS2, however they are not all tested yet. The interface is the same than on ROS1 (parameters and topic names should still match ROS1 documentation on rtabmap_ros).

rtabmap.launch is also ported to ROS2 with same arguments. If you see ROS1 examples like this:

roslaunch zed_wrapper zed_no_tf.launch

roslaunch rtabmap_ros rtabmap.launch \
    rtabmap_args:="--delete_db_on_start" \
    rgb_topic:=/zed/zed_node/rgb/image_rect_color \
    depth_topic:=/zed/zed_node/depth/depth_registered \
    camera_info_topic:=/zed/zed_node/rgb/camera_info \
    frame_id:=base_link \
    approx_sync:=false \
    wait_imu_to_init:=true \
    imu_topic:=/zed_node/imu/data

The ROS2 equivalent is (with those lines set to false to avoid TF conflicts):

ros2 launch zed_wrapper zed.launch.py

ros2 launch rtabmap_ros rtabmap.launch.py \
    rtabmap_args:="--delete_db_on_start" \
    rgb_topic:=/zed/zed_node/rgb/image_rect_color \
    depth_topic:=/zed/zed_node/depth/depth_registered \
    camera_info_topic:=/zed/zed_node/rgb/camera_info \
    frame_id:=base_link \
    approx_sync:=false \
    wait_imu_to_init:=true \
    imu_topic:=/zed/zed_node/imu/data \
    qos:=1 \
    rviz:=true

qos (Quality of Service) argument should match the published topics QoS (1=RELIABLE, 2=BEST EFFORT). ROS1 was always RELIABLE.

Installation

  • RTAB-Map ROS2 package:
    cd ~/ros2_ws
    git clone https://github.com/introlab/rtabmap.git src/rtabmap
    git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB)
    colcon build --symlink-install
    
  • To build with rgbd_cameras>1 support and/or subscribe_user_data support:
    colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON
    

Example with Turtlebot3

  1. Launch Turtlebot3 simulator:
    export TURTLEBOT3_MODEL=waffle
    ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
    
    export TURTLEBOT3_MODEL=waffle
    ros2 run turtlebot3_teleop teleop_keyboard
    
  1. Launch RTAB-Map:
    ros2 launch rtabmap_ros turtlebot3_scan.launch.py
    
    # OR with rtabmap.launch.py
    ros2 launch rtabmap_ros rtabmap.launch.py \
       visual_odometry:=false \
       frame_id:=base_footprint \
       subscribe_scan:=true depth:=false \
       approx_sync:=true \
       odom_topic:=/odom \
       scan_topic:=/scan \
       qos:=2 \
       args:="-d --RGBD/NeighborLinkRefining true --Reg/Strategy 1" \
       use_sim_time:=true \
       rviz:=true
    
  1. Launch navigation (nav2_bringup package should be installed):
    ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True
    ros2 launch nav2_bringup rviz_launch.py
    

See launch/ros2 subfolder for some other ROS2 examples with turtlebot3 in simulation and a RGB-D camera.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version foxy-devel
Last Updated 2023-04-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

rtabmap_ros

RTAB-Map’s ROS2 package (branch ros2). ROS2 Foxy minimum required: currently most nodes are ported to ROS2, however they are not all tested yet. The interface is the same than on ROS1 (parameters and topic names should still match ROS1 documentation on rtabmap_ros).

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries
ROS 1 Melodic Build Status</td> </tr>
Noetic Build Status</td> </tr>
ROS 2 Foxy Build Status</td> </tr>
Galactic Build Status</td> </tr>
Humble Build Status</td> </tr>
Rolling Build Status</td> </tr> </tbody> </table> # Usage `rtabmap.launch` is also ported to ROS2 with same arguments. If you see [ROS1 examples](http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping) like this: ```bash roslaunch zed_wrapper zed_no_tf.launch roslaunch rtabmap_ros rtabmap.launch \ rtabmap_args:="--delete_db_on_start" \ rgb_topic:=/zed/zed_node/rgb/image_rect_color \ depth_topic:=/zed/zed_node/depth/depth_registered \ camera_info_topic:=/zed/zed_node/rgb/camera_info \ frame_id:=base_link \ approx_sync:=false \ wait_imu_to_init:=true \ imu_topic:=/zed_node/imu/data ``` The ROS2 equivalent is (with those [lines](https://github.com/stereolabs/zed-ros2-wrapper/blob/b512dce6ad4565f4770273995b147122e735ca0f/zed_wrapper/config/common.yaml#L58-L60) set to false to avoid TF conflicts): ```bash ros2 launch zed_wrapper zed.launch.py ros2 launch rtabmap_launch rtabmap.launch.py \ rtabmap_args:="--delete_db_on_start" \ rgb_topic:=/zed/zed_node/rgb/image_rect_color \ depth_topic:=/zed/zed_node/depth/depth_registered \ camera_info_topic:=/zed/zed_node/rgb/camera_info \ frame_id:=base_link \ approx_sync:=false \ wait_imu_to_init:=true \ imu_topic:=/zed/zed_node/imu/data \ qos:=1 \ rviz:=true ``` `qos` (Quality of Service) argument should match the published topics QoS (1=RELIABLE, 2=BEST EFFORT). ROS1 was always RELIABLE. # Installation * RTAB-Map ROS2 package: ```bash cd ~/ros2_ws git clone https://github.com/introlab/rtabmap.git src/rtabmap git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros rosdep update && rosdep install --from-paths src --ignore-src -r -y export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB) colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ``` * To build with `rgbd_cameras>1` support and/or `subscribe_user_data` support: ```bash colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON -DCMAKE_BUILD_TYPE=Release ``` # Example with Turtlebot3 1. Launch Turtlebot3 simulator: ```bash export TURTLEBOT3_MODEL=waffle ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py export TURTLEBOT3_MODEL=waffle ros2 run turtlebot3_teleop teleop_keyboard ``` 2. Launch RTAB-Map: ``` ros2 launch rtabmap_demos turtlebot3_scan.launch.py # OR with rtabmap.launch.py ros2 launch rtabmap_launch rtabmap.launch.py \ visual_odometry:=false \ frame_id:=base_footprint \ subscribe_scan:=true depth:=false \ approx_sync:=true \ odom_topic:=/odom \ scan_topic:=/scan \ qos:=2 \ args:="-d --RGBD/NeighborLinkRefining true --Reg/Strategy 1" \ use_sim_time:=true \ rviz:=true ``` 3. Launch navigation (`nav2_bringup` package should be installed): ``` ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True ros2 launch nav2_bringup rviz_launch.py ``` See [rtabmap_demos/launch](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos/launch) and [rtabmap_examples/launch](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos/launch) subfolders for some other ROS2 examples with turtlebot3 in simulation and a RGB-D camera.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version iron-devel
Last Updated 2024-07-01
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

rtabmap_ros

RTAB-Map’s ROS2 package (branch ros2). ROS2 Foxy minimum required: currently most nodes are ported to ROS2, however they are not all tested yet. The interface is the same than on ROS1 (parameters and topic names should still match ROS1 documentation on rtabmap_ros).

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries </tbody> </table> # Usage `rtabmap.launch` is also ported to ROS2 with same arguments. If you see [ROS1 examples](http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping) like this: ```bash roslaunch zed_wrapper zed_no_tf.launch roslaunch rtabmap_ros rtabmap.launch \ rtabmap_args:="--delete_db_on_start" \ rgb_topic:=/zed/zed_node/rgb/image_rect_color \ depth_topic:=/zed/zed_node/depth/depth_registered \ camera_info_topic:=/zed/zed_node/rgb/camera_info \ frame_id:=base_link \ approx_sync:=false \ wait_imu_to_init:=true \ imu_topic:=/zed_node/imu/data ``` The ROS2 equivalent is (with those [lines](https://github.com/stereolabs/zed-ros2-wrapper/blob/b512dce6ad4565f4770273995b147122e735ca0f/zed_wrapper/config/common.yaml#L58-L60) set to false to avoid TF conflicts): ```bash ros2 launch zed_wrapper zed.launch.py ros2 launch rtabmap_launch rtabmap.launch.py \ rtabmap_args:="--delete_db_on_start" \ rgb_topic:=/zed/zed_node/rgb/image_rect_color \ depth_topic:=/zed/zed_node/depth/depth_registered \ camera_info_topic:=/zed/zed_node/rgb/camera_info \ frame_id:=base_link \ approx_sync:=false \ wait_imu_to_init:=true \ imu_topic:=/zed/zed_node/imu/data \ qos:=1 \ rviz:=true ``` `qos` (Quality of Service) argument should match the published topics QoS (1=RELIABLE, 2=BEST EFFORT). ROS1 was always RELIABLE. # Installation ### Binaries ```bash sudo apt install ros-$ROS_DISTRO-rtabmap-ros ``` ### From Source * Make sure to uninstall any rtabmap binaries: ``` sudo apt remove ros-$ROS_DISTRO-rtabmap* ``` * RTAB-Map ROS2 package: ```bash cd ~/ros2_ws git clone https://github.com/introlab/rtabmap.git src/rtabmap git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros rosdep update && rosdep install --from-paths src --ignore-src -r -y export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB) colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ``` * To build with `rgbd_cameras>1` support and/or `subscribe_user_data` support: ```bash colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON -DCMAKE_BUILD_TYPE=Release ``` # Example with Turtlebot3 1. Launch Turtlebot3 simulator: ```bash export TURTLEBOT3_MODEL=waffle ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py export TURTLEBOT3_MODEL=waffle ros2 run turtlebot3_teleop teleop_keyboard ``` 2. Launch RTAB-Map: ``` ros2 launch rtabmap_demos turtlebot3_scan.launch.py # OR with rtabmap.launch.py ros2 launch rtabmap_launch rtabmap.launch.py \ visual_odometry:=false \ frame_id:=base_footprint \ subscribe_scan:=true depth:=false \ approx_sync:=true \ odom_topic:=/odom \ scan_topic:=/scan \ qos:=2 \ args:="-d --RGBD/NeighborLinkRefining true --Reg/Strategy 1" \ use_sim_time:=true \ rviz:=true ``` 3. Launch navigation (`nav2_bringup` package should be installed): ``` ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True ros2 launch nav2_bringup rviz_launch.py ``` See [rtabmap_demos/launch](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_demos/launch) and [rtabmap_examples/launch](https://github.com/introlab/rtabmap_ros/tree/ros2/rtabmap_examples/launch) subfolders for some other ROS2 examples with turtlebot3 in simulation and a RGB-D camera.
ROS 1 Noetic Build Status</td> </tr>
ROS 2 Humble Build Status</td> </tr>
Iron Build Status</td> </tr>
Rolling Build Status</td> </tr>
Docker rtabmap_ros Docker Pulls

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version lunar-devel
Last Updated 2018-09-29
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.17.6

README

rtabmap_ros Build Status

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

Installation

ROS distribution

RTAB-Map is released as binaries in the ROS distribution.

  • Lunar
    $ sudo apt-get install ros-lunar-rtabmap-ros
    
  • Kinetic
    $ sudo apt-get install ros-kinetic-rtabmap-ros
    
  • Jade
    $ sudo apt-get install ros-jade-rtabmap-ros
    
  • Indigo
    $ sudo apt-get install ros-indigo-rtabmap-ros
    
  • Hydro:
    $ sudo apt-get install ros-hydro-rtabmap-ros
    
* Note that rtabmap_ros Hydro binaries are stuck at version 0.8.12. To use the latest version, see [Build from source](https://github.com/introlab/rtabmap_ros#build-from-source) below.

When launching rtabmap_ros’s nodes, if you have the error error while loading shared libraries..., add the next line at the end of your ~/.bashrc to fix it:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/kinetic/lib/x86_64-linux-gnu

Build from source

This section shows how to install RTAB-Map ros-pkg on ROS Hydro/Indigo/Jade/Kinetic/Lunar (Catkin build). RTAB-Map works only with the PCL >=1.7, which is the default version installed with ROS Hydro/Indigo/Jade/Kinetic/Lunar (Fuerte and Groovy are not supported).

  • The next instructions assume that you have set up your ROS workspace using this tutorial. I will use kinetic prefix for convenience, but it should work with Hydro, Indigo, Jade and Lunar. The workspace path is ~/catkin_ws and your ~/.bashrc contains:
    $ source /opt/ros/kinetic/setup.bash
    $ source ~/catkin_ws/devel/setup.bash
    
  1. Required dependencies
    • The easiest way to get all them (Qt, PCL, VTK, OpenCV, …) is to install/uninstall rtabmap binaries:
          $ sudo apt-get install ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
          $ sudo apt-get remove ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
          
  1. Optional dependencies
    • If you want SURF/SIFT on Indigo/Jade (Hydro has already SIFT/SURF), you have to build OpenCV from source to have access to nonfree module. Install it in /usr/local (default) and the rtabmap library should link with it instead of the one installed in ROS.
      • On Indigo/Jade, I recommend to use latest 2.4 version (2.4.11) and build it from source following these instructions. RTAB-Map can build with OpenCV3+xfeatures2d module, but rtabmap_ros package will have libraries conflict as cv-bridge is depending on OpenCV2. If you want OpenCV3, you should build ros vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV3.
      • On Kinetic/Lunar, I recommend to use OpenCV3+xfeatures2d module already installed by ROS. You can also install OpenCV2, but rtabmap_ros package will have libraries conflict as cv-bridge is depending on OpenCV3. Thus if you want OpenCV2 on Kinetic/Lunar, you should build ros vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV2.
    • g2o: Use directly the binaries ros-kinetic-libg2o. However, this g2o version (c++03 branch) built from source may be faster than the binaries (install libsuitesparse-dev before building g2o) and would be required to avoid some crashes. To build RTAB-Map against latest official g2o version built from source, g2o should be built with -DBUILD_WITH_MARCH_NATIVE=OFF to avoid some segmentation faults caused by Eigen.

    • GTSAM: Follow installation instructions from here. RTAB-Map needs latest version from source, it will not build with 3.2.1. Set cmake variable GTSAM_USE_SYSTEM_EIGEN=ON to make sure the same Eigen version is used across all dependencies to avoid crashes.
        git clone https://bitbucket.org/gtborg/gtsam.git
        
  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace.
    $ cd ~/catkin_ws
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    $ catkin_make -j1
    
* Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~1.8 GB to build).

Build from source for Nvidia Jetson with OpenCV 4 Tegra

To use rtabmap_ros on Jetson, you can follow the instructions above if you don’t care if OpenCV is built for Tegra. However, if you want rtabmap to use OpenCV 4 Tegra, we must re-build vision_opencv stack from source too to avoid conflicts with vision_opencv stack binaries from ros (which are linked on a not optimized version of OpenCV). Here are the steps:

  1. Install JetPack with OpenCV on the Jetson.
  2. Do steps 1.2 and 1.3 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  3. Install non-opencv dependent ros packages:

    • sudo apt-get install ros-kinetic-ros-base ros-kinetic-image-transport ros-kinetic-tf ros-kinetic-tf-conversions ros-kinetic-eigen-conversions ros-kinetic-laser-geometry ros-kinetic-pcl-conversions ros-kinetic-pcl-ros ros-kinetic-move-base-msgs ros-kinetic-rviz ros-kinetic-octomap-ros ros-kinetic-move-base libhdf5-openmpi-dev libsuitesparse-dev
  4. Do step 1.6 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  5. Create your catkin workspace
  6. Optional: Install g2o and/or GTSAM dependencies as above (increase visual odometry and graph optimization accuracy).
  7. To avoid libGL undefined errors:
     $ cd /usr/lib/aarch64-linux-gnu/
     $ sudo ln -sf tegra/libGL.so libGL.so
     
  1. To avoid libvtkproj4 errors:
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/libvtkproj4.so
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/aarch64-linux-gnu/libvtkproj4-6.2.so.6.2.0
    
  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Clone vision_opencv, image_transport_plugins and rtabmap_ros packages in your catkin_ws:
    $ cd ~/catkin_ws
    $ git clone https://github.com/ros-perception/vision_opencv src/vision_opencv
    $ git clone https://github.com/ros-perception/image_transport_plugins.git src/image_transport_plugins
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros src/rtabmap_ros
    $ catkin_make -j2
   

Update to new version

###########
# rtabmap
###########
$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install
# Do "sudo make install" if you installed rtabmap in "/usr/local"

###########
# rtabmap_ros
###########
$ roscd rtabmap_ros
$ git pull origin master
$ roscd
$ cd ..
$ catkin_make -j1 --pkg rtabmap_ros

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version jade-devel
Last Updated 2016-07-20
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.11.8

README

rtabmap_ros

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

Installation

ROS distribution

RTAB-Map is released as binaries in the ROS distribution. For latest binaries, use ros-shadow-fixed repository.

  • Kinetic
$ sudo apt-get install ros-kinetic-rtabmap-ros

  • Jade
$ sudo apt-get install ros-jade-rtabmap-ros

  • Indigo
$ sudo apt-get install ros-indigo-rtabmap-ros

  • Hydro:
$ sudo apt-get install ros-hydro-rtabmap-ros

  • Note that rtabmap_ros Hydro binaries are stuck at version 0.8.12. To use the latest version, see Build from source below.

When launching rtabmap_ros’s nodes, if you have the error error while loading shared libraries..., add the next line at the end of your ~/.bashrc to fix it:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/kinetic/lib/x86_64-linux-gnu

Build from source

This section shows how to install RTAB-Map ros-pkg on ROS Hydro/Indigo/Jade/Kinetic (Catkin build). RTAB-Map works only with the PCL 1.7, which is the default version installed with ROS Hydro/Indigo/Jade/Kinetic (Fuerte and Groovy are not supported).

  • The next instructions assume that you have set up your ROS workspace using this tutorial. I will use kinetic prefix for convenience, but it should work with Hydro, Indigo and Jade. The workspace path is ~/catkin_ws and your ~/.bashrc contains:
$ source /opt/ros/kinetic/setup.bash
$ source ~/catkin_ws/devel/setup.bash

  • Make sure you don’t have the binaries installed too (if you tried them before):
$ sudo apt-get remove ros-kinetic-rtabmap

  1. Optional dependencies
    • If you want SURF/SIFT on Indigo/Jade/Kinetic (Hydro has already SIFT/SURF), you have to build OpenCV from source to have access to nonfree module. Install it in /usr/local (default) and the rtabmap library should link with it instead of the one installed in ROS. I recommend to use latest 2.4 version (2.4.11) and build it from source following these instructions. RTAB-Map can build with OpenCV3+xfeatures2d module, but rtabmap_ros package will have libraries conflict as cv-bridge is depending on OpenCV2. If you want OpenCV3, you should build ros vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV3.
  • ROS (Qt, PCL, dc1394, OpenNI, OpenNI2, Freenect, g2o, Costmap2d, Rviz, Octomap, CvBridge). Note that I’ve found that latest g2o version built from source is faster (install libsuitesparse-dev before building g2o) and would be required to avoid some crashes.
$ sudo apt-get install libqt4-dev libpcl-1.7-all-dev libdc1394-dev ros-kinetic-openni-launch ros-kinetic-openni2-launch ros-kinetic-freenect-launch ros-kinetic-costmap-2d ros-kinetic-octomap-ros ros-kinetic-g2o ros-kinetic-rviz ros-kinetic-cv-bridge

  • GTSAM: Follow installation instructions from here. RTAB-Map needs latest version from source (git clone https://bitbucket.org/gtborg/gtsam.git), it will not build with 3.2.1.

  • cvsba: Follow installation instructions from here. Their installation is not standard CMake, you need these extra steps so RTAB-Map can find it:

$ mkdir /usr/local/lib/cmake/cvsba 
$ mv /usr/local/lib/cmake/Findcvsba.cmake /usr/local/lib/cmake/cvsba/cvsbaConfig.cmake

  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
$ cd ~
$ git clone https://github.com/introlab/rtabmap.git rtabmap
$ cd rtabmap/build
$ cmake ..  [<---double dots included]
$ make -j4
$ sudo make install

  1. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace.
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ catkin_make

Update to new version

$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install

$ roscd rtabmap_ros
$ git pull origin master
$ cd ~/catkin_ws
$ catkin_make

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-09-29
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.17.6

README

rtabmap_ros Build Status

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

Installation

ROS distribution

RTAB-Map is released as binaries in the ROS distribution.

  • Lunar
    $ sudo apt-get install ros-lunar-rtabmap-ros
    
  • Kinetic
    $ sudo apt-get install ros-kinetic-rtabmap-ros
    
  • Jade
    $ sudo apt-get install ros-jade-rtabmap-ros
    
  • Indigo
    $ sudo apt-get install ros-indigo-rtabmap-ros
    
  • Hydro:
    $ sudo apt-get install ros-hydro-rtabmap-ros
    
* Note that rtabmap_ros Hydro binaries are stuck at version 0.8.12. To use the latest version, see [Build from source](https://github.com/introlab/rtabmap_ros#build-from-source) below.

When launching rtabmap_ros’s nodes, if you have the error error while loading shared libraries..., add the next line at the end of your ~/.bashrc to fix it:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/kinetic/lib/x86_64-linux-gnu

Build from source

This section shows how to install RTAB-Map ros-pkg on ROS Hydro/Indigo/Jade/Kinetic/Lunar (Catkin build). RTAB-Map works only with the PCL >=1.7, which is the default version installed with ROS Hydro/Indigo/Jade/Kinetic/Lunar (Fuerte and Groovy are not supported).

  • The next instructions assume that you have set up your ROS workspace using this tutorial. I will use kinetic prefix for convenience, but it should work with Hydro, Indigo, Jade and Lunar. The workspace path is ~/catkin_ws and your ~/.bashrc contains:
    $ source /opt/ros/kinetic/setup.bash
    $ source ~/catkin_ws/devel/setup.bash
    
  1. Required dependencies
    • The easiest way to get all them (Qt, PCL, VTK, OpenCV, …) is to install/uninstall rtabmap binaries:
          $ sudo apt-get install ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
          $ sudo apt-get remove ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
          
  1. Optional dependencies
    • If you want SURF/SIFT on Indigo/Jade (Hydro has already SIFT/SURF), you have to build OpenCV from source to have access to nonfree module. Install it in /usr/local (default) and the rtabmap library should link with it instead of the one installed in ROS.
      • On Indigo/Jade, I recommend to use latest 2.4 version (2.4.11) and build it from source following these instructions. RTAB-Map can build with OpenCV3+xfeatures2d module, but rtabmap_ros package will have libraries conflict as cv-bridge is depending on OpenCV2. If you want OpenCV3, you should build ros vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV3.
      • On Kinetic/Lunar, I recommend to use OpenCV3+xfeatures2d module already installed by ROS. You can also install OpenCV2, but rtabmap_ros package will have libraries conflict as cv-bridge is depending on OpenCV3. Thus if you want OpenCV2 on Kinetic/Lunar, you should build ros vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV2.
    • g2o: Use directly the binaries ros-kinetic-libg2o. However, this g2o version (c++03 branch) built from source may be faster than the binaries (install libsuitesparse-dev before building g2o) and would be required to avoid some crashes. To build RTAB-Map against latest official g2o version built from source, g2o should be built with -DBUILD_WITH_MARCH_NATIVE=OFF to avoid some segmentation faults caused by Eigen.

    • GTSAM: Follow installation instructions from here. RTAB-Map needs latest version from source, it will not build with 3.2.1. Set cmake variable GTSAM_USE_SYSTEM_EIGEN=ON to make sure the same Eigen version is used across all dependencies to avoid crashes.
        git clone https://bitbucket.org/gtborg/gtsam.git
        
  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace.
    $ cd ~/catkin_ws
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    $ catkin_make -j1
    
* Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~1.8 GB to build).

Build from source for Nvidia Jetson with OpenCV 4 Tegra

To use rtabmap_ros on Jetson, you can follow the instructions above if you don’t care if OpenCV is built for Tegra. However, if you want rtabmap to use OpenCV 4 Tegra, we must re-build vision_opencv stack from source too to avoid conflicts with vision_opencv stack binaries from ros (which are linked on a not optimized version of OpenCV). Here are the steps:

  1. Install JetPack with OpenCV on the Jetson.
  2. Do steps 1.2 and 1.3 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  3. Install non-opencv dependent ros packages:

    • sudo apt-get install ros-kinetic-ros-base ros-kinetic-image-transport ros-kinetic-tf ros-kinetic-tf-conversions ros-kinetic-eigen-conversions ros-kinetic-laser-geometry ros-kinetic-pcl-conversions ros-kinetic-pcl-ros ros-kinetic-move-base-msgs ros-kinetic-rviz ros-kinetic-octomap-ros ros-kinetic-move-base libhdf5-openmpi-dev libsuitesparse-dev
  4. Do step 1.6 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  5. Create your catkin workspace
  6. Optional: Install g2o and/or GTSAM dependencies as above (increase visual odometry and graph optimization accuracy).
  7. To avoid libGL undefined errors:
     $ cd /usr/lib/aarch64-linux-gnu/
     $ sudo ln -sf tegra/libGL.so libGL.so
     
  1. To avoid libvtkproj4 errors:
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/libvtkproj4.so
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/aarch64-linux-gnu/libvtkproj4-6.2.so.6.2.0
    
  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Clone vision_opencv, image_transport_plugins and rtabmap_ros packages in your catkin_ws:
    $ cd ~/catkin_ws
    $ git clone https://github.com/ros-perception/vision_opencv src/vision_opencv
    $ git clone https://github.com/ros-perception/image_transport_plugins.git src/image_transport_plugins
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros src/rtabmap_ros
    $ catkin_make -j2
   

Update to new version

###########
# rtabmap
###########
$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install
# Do "sudo make install" if you installed rtabmap in "/usr/local"

###########
# rtabmap_ros
###########
$ roscd rtabmap_ros
$ git pull origin master
$ roscd
$ cd ..
$ catkin_make -j1 --pkg rtabmap_ros

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version hydro-devel
Last Updated 2015-05-10
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.8.12

README

rtabmap_ros

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit the rtabmap_ros page on the ROS wiki.

For the RTAB-Map libraries and standalone application, visit the RTAB-Map’s home page or the RTAB-Map’s wiki.

Installation

ROS distribution

RTAB-Map is released as binaries in the ROS distribution.

  • Indigo
$ sudo apt-get install ros-indigo-rtabmap-ros

  • Hydro
$ sudo apt-get install ros-hydro-rtabmap-ros

Build from source

This section shows how to install RTAB-Map ros-pkg on ROS Hydro/Indigo (Catkin build). RTAB-Map works only with the PCL 1.7, which is the default version installed with ROS Hydro/Indigo (Fuerte and Groovy are not supported).

  • Note for ROS Indigo: If you want SURF/SIFT, you have to build OpenCV from source to have access to nonfree module. Install it in /usr/local (default) and the rtabmap library should link with it instead of the one installed in ROS.

  • The next instructions assume that you have setup your ROS workspace using this tutorial. The workspace path is ~/catkin_ws and your ~/.bashrc contains:

source /opt/ros/hydro/setup.bash
source ~/catkin_ws/devel/setup.bash

  1. First, you need to install the RTAB-Map standalone libraries (don’t checkout in the Catkin workspace but install in your Catkin’s devel folder).
$ git clone https://github.com/introlab/rtabmap.git rtabmap
$ cd rtabmap/build
$ cmake -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel ..  [<---double dots included]
$ make -j4
$ make install

  1. Now install the RTAB-Map ros-pkg in your src folder of your Catkin workspace.
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ catkin_make

Update to new version

$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install

$ roscd rtabmap_ros
$ git pull origin master
$ cd ~/catkin_ws
$ catkin_make

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2021-07-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.20.7

README

rtabmap_ros Build Status

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

Installation

ROS2 distribution

Under construction: see ros2 branch.

ROS distribution

RTAB-Map is released as binaries in the ROS distribution.

  • Noetic
    $ sudo apt install ros-noetic-rtabmap-ros
    
  • Melodic
    $ sudo apt install ros-melodic-rtabmap-ros
    
  • Kinetic
    $ sudo apt-get install ros-kinetic-rtabmap-ros
    
  • Indigo
    $ sudo apt-get install ros-indigo-rtabmap-ros
    
* For armhf architecture, `ros-indigo-rtabmap-ros` is not available. Install `ros-indigo-rtabmap` and build from source `rtabmap_ros` using the `indigo-devel` branch.
        $ cd catkin_ws
        $ git clone -b indigo-devel https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
        $ catkin_make -j1
        

When launching rtabmap_ros’s nodes, if you have the error error while loading shared libraries..., try ldconfig or add the next line at the end of your ~/.bashrc to fix it:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/noetic/lib/x86_64-linux-gnu

Docker

  • Go to docker directory for an example.

Build from source

This section shows how to install RTAB-Map ros-pkg on ROS Hydro/Indigo/Jade/Kinetic/Lunar/Melodic/Noetic (Catkin build). RTAB-Map works only with the PCL >=1.7, which is the default version installed with ROS Hydro/Indigo/Jade/Kinetic/Lunar/Melodic/Noetic (Fuerte and Groovy are not supported).

  • The next instructions assume that you have set up your ROS workspace using this tutorial. I will use noetic prefix for convenience, but it should work with Hydro, Indigo, Jade, Kinetic, Lunar and Melodic. The workspace path is ~/catkin_ws and your ~/.bashrc contains:
    $ source /opt/ros/noetic/setup.bash
    $ source ~/catkin_ws/devel/setup.bash
    
  1. Required dependencies
    • The easiest way to get all them (Qt, PCL, VTK, OpenCV, …) is to install/uninstall rtabmap binaries:
          $ sudo apt install ros-noetic-rtabmap ros-noetic-rtabmap-ros
          $ sudo apt remove ros-noetic-rtabmap ros-noetic-rtabmap-ros
          
  1. Optional dependencies
    • If you want SURF/SIFT on Indigo/Jade/Melodic/Noetic (Hydro/Kinetic has already SIFT/SURF), you have to build OpenCV from source to have access to xfeatures2d and nonfree modules (note that SIFT is not in nonfree anymore since OpenCV 4.4.0). Install it in /usr/local (default) and rtabmap library should link with it instead of the one installed in ROS.
      • On Indigo, I recommend to use latest 2.4 version (2.4.11) and build it from source following these instructions. RTAB-Map can build with OpenCV3+xfeatures2d module, but rtabmap_ros package will have libraries conflict as cv_bridge is depending on OpenCV2. If you want OpenCV3+, you should build vision-opencv package yourself (and all ros packages depending on it) so it can link on OpenCV3+.
      • On Kinetic/Melodic/Noetic, build from source with xfeatures2d module (and nonfree module if needed) the same OpenCV version already installed on the system. You will then avoid breaking cv_bridge with rtabmap_ros. If you want to install a more recent OpenCV version, I recommend to uninstall libopencv* libraries (with all ros packages depending on it) and rebuild all those ros packages in your catkin workspace (to make sure cv_bridge is linked on the OpenCV version you just compiled).
    • g2o: Should be already installed by ros-noetic-libg2o.

    • GTSAM: Install via PPA to avoid building from source. If you install from source, make sure to build with cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON.

    • libpointmatcher: Recommended if you are going to use lidars. Follow their instructions to install.
  2. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace.
    $ cd ~/catkin_ws
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    $ catkin_make -j1
    
* Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~2 GB to build depending on gcc version).
* Options:
    * Add `-DRTABMAP_SYNC_MULTI_RGBD=ON` to `catkin_make` if you plan to use multiple cameras.
    * Add `-DRTABMAP_SYNC_USER_DATA=ON` to `catkin_make` if you plan to use user data synchronized topics.

Build from source for Nvidia Jetson

These instructions are for Jetpack 3 (Ubuntu 16.04 with ROS Kinetic). For Jetpack 4 (Ubuntu 18.04 with ROS Melodic), see this post.

To use rtabmap_ros on Jetson, you can follow the instructions above if you don’t care if OpenCV is built for Tegra. However, if you want rtabmap to use OpenCV 4 Tegra, we must re-build vision_opencv stack from source too to avoid conflicts with vision_opencv stack binaries from ros (which are linked on a not optimized version of OpenCV). Here are the steps:

  1. Install JetPack with OpenCV on the Jetson.
  2. Do steps 1.2 and 1.3 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  3. Install non-opencv dependent ros packages:
    • Jetpack 3: sudo apt-get install ros-kinetic-ros-base ros-kinetic-image-transport ros-kinetic-tf ros-kinetic-tf-conversions ros-kinetic-eigen-conversions ros-kinetic-laser-geometry ros-kinetic-pcl-conversions ros-kinetic-pcl-ros ros-kinetic-move-base-msgs ros-kinetic-rviz ros-kinetic-octomap-ros ros-kinetic-move-base libhdf5-openmpi-dev libsuitesparse-dev
  4. Do step 1.6 from http://wiki.ros.org/kinetic/Installation/Ubuntu
  5. Create your catkin workspace
  6. Optional: Install g2o and/or GTSAM dependencies as above (increase visual odometry and graph optimization accuracy).
  7. To avoid libGL undefined errors:
     $ cd /usr/lib/aarch64-linux-gnu/
     # Jetpack 3:
     $ sudo ln -sf tegra/libGL.so libGL.so
     # Jetpack 4:
     sudo ln -sf libGL.so.1.0.0 libGL.so
     
  1. To avoid libvtkproj4 errors:
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/libvtkproj4.so
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/aarch64-linux-gnu/libvtkproj4-6.2.so.6.2.0
    
  1. Install RTAB-Map standalone libraries. Add -DCMAKE_INSTALL_PREFIX=~/catkin_ws/devel to cmake command below if you want to install in your Catkin’s devel folder without sudo. Do not clone in your Catkin workspace.
    $ cd ~
    $ git clone https://github.com/introlab/rtabmap.git rtabmap
    $ cd rtabmap/build
    $ cmake ..  [<---double dots included]
    $ make
    $ sudo make install
    
  1. Clone vision_opencv, image_transport_plugins and rtabmap_ros packages in your catkin_ws:
    $ cd ~/catkin_ws
    $ git clone https://github.com/ros-perception/vision_opencv src/vision_opencv
    $ git clone https://github.com/ros-perception/image_transport_plugins.git src/image_transport_plugins
    $ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
    $ catkin_make -j2
   

Update to new version

###########
# rtabmap
###########
$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install
# Do "sudo make install" if you installed rtabmap in "/usr/local"

###########
# rtabmap_ros
###########
$ roscd rtabmap_ros
$ git pull origin master
$ roscd
$ cd ..
$ catkin_make -j1 --pkg rtabmap_ros

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/introlab/rtabmap_ros.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-01-22
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rtabmap_ros 0.20.23

README

rtabmap_ros

RTAB-Map’s ROS package.

For more information, demos and tutorials about this package, visit rtabmap_ros page on ROS wiki.

For the RTAB-Map libraries and standalone application, visit RTAB-Map’s home page or RTAB-Map’s wiki.

CI Latest

ROS 1 Build Status
Build Status </td> </tr>
ROS 2 Build Status </td> </tr> </tbody> </table> #### ROS Binaries
ROS 1 Melodic Build Status</td> </tr>
Noetic Build Status</td> </tr>
ROS 2 Foxy Build Status</td> </tr>
Galactic Build Status</td> </tr>
Humble Build Status</td> </tr>
Rolling Build Status</td> </tr> </tbody> </table> # Installation ## ROS2 distribution **Under construction**: see [ros2 branch](https://github.com/introlab/rtabmap_ros/tree/ros2#rtabmap_ros). ## ROS distribution RTAB-Map is released as binaries in the ROS distribution. ```bash sudo apt install ros-$ROS_DISTRO-rtabmap-ros ``` When launching `rtabmap_ros`'s nodes, if you have the error `error while loading shared libraries...`, try `ldconfig` or add the next line at the end of your `~/.bashrc` to fix it: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/noetic/lib/x86_64-linux-gnu ``` ### Docker * Go to [docker](https://github.com/introlab/rtabmap_ros/tree/master/docker) directory for an example. ## Build from source This section shows how to install RTAB-Map ros-pkg on **ROS Melodic/Noetic** (Catkin build). * The next instructions assume that you have set up your ROS workspace using this [tutorial](http://wiki.ros.org/catkin/Tutorials/create_a_workspace). The workspace path is `~/catkin_ws` and your `~/.bashrc` contains: ```bash $ source /opt/ros/$ROS_DISTRO/setup.bash $ source ~/catkin_ws/devel/setup.bash ``` 0. Required dependencies * The easiest way to get all them (Qt, PCL, VTK, OpenCV, ...) is to install/uninstall rtabmap binaries: ```bash sudo apt install ros-$ROS_DISTRO-rtabmap ros-$ROS_DISTRO-rtabmap-ros sudo apt remove ros-$ROS_DISTRO-rtabmap ros-$ROS_DISTRO-rtabmap-ros ``` 1. Optional dependencies * If you want SURF/SIFT on Melodic/Noetic, you have to build [OpenCV]([OpenCV](http://opencv.org/)) from source to have access to *xfeatures2d* and *nonfree* modules (note that SIFT is not in *nonfree* anymore since OpenCV 4.4.0). Install it in `/usr/local` (default) and rtabmap library should link with it instead of the one installed in ROS. * On Melodic/Noetic, build from source with *xfeatures2d* module (and *nonfree* module if needed) the same OpenCV version already installed on the system. You will then avoid breaking `cv_bridge` with `rtabmap_ros`. If you want to install a more recent OpenCV version, I recommend to uninstall `libopencv*` libraries (with all ros packages depending on it) and rebuild all those ros packages in your catkin workspace (to make sure `cv_bridge` is linked on the OpenCV version you just compiled). * [g2o](https://github.com/RainerKuemmerle/g2o): Should be already installed by `ros-$ROS_DISTRO-libg2o`. * [GTSAM](https://gtsam.org/get_started/): Install via PPA to avoid building from source. If you install from source, make sure to build with `cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON`. * [libpointmatcher](https://github.com/ethz-asl/libpointmatcher): **Recommended** if you are going to use lidars. Follow their [instructions](https://github.com/ethz-asl/libpointmatcher#quick-start) to install. Should be alread installed by `ros-$ROS_DISTRO-libpointmatcher`. 2. Install RTAB-Map standalone libraries. **Do not clone in your Catkin workspace**. ```bash cd ~ git clone https://github.com/introlab/rtabmap.git rtabmap cd rtabmap/build cmake .. [<---double dots included] make -j6 sudo make install ``` 3. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace. ```bash cd ~/catkin_ws git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros catkin_make -j4 ``` * Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~2 GB to build depending on gcc version). * Options: * Add `-DRTABMAP_SYNC_MULTI_RGBD=ON` to `catkin_make` if you plan to use multiple cameras. * Add `-DRTABMAP_SYNC_USER_DATA=ON` to `catkin_make` if you plan to use user data synchronized topics. ## Build from source for Nvidia Jetson * For **Jetpack 4** (Ubuntu 18.04 with ROS Melodic), see this [post](https://github.com/introlab/rtabmap/issues/427#issuecomment-608052821). * For **Jetpack 3** (Ubuntu 16.04 with ROS Kinetic), see this [post](https://github.com/introlab/rtabmap_ros/issues/655). ### Update to new version ```bash ########### # rtabmap ########### cd rtabmap git pull origin master cd build make make install # Do "sudo make install" if you installed rtabmap in "/usr/local" ########### # rtabmap_ros ########### roscd rtabmap_ros git pull origin master roscd cd .. catkin_make -j1 --pkg rtabmap_ros ```

CONTRIBUTING

No CONTRIBUTING.md found.