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.
ROS 1 | |
ROS 2 |
ROS 1 | Melodic | |
Noetic | ||
ROS 2 | Foxy | |
Galactic | ||
Humble | ||
Rolling | ||
Docker | rtabmap_ros |
Under construction: see ros2 branch.
RTAB-Map is released as binaries in the ROS distribution.
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:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/noetic/lib/x86_64-linux-gnu
- Go to docker directory for an example.
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. The workspace path is
~/catkin_ws
and your~/.bashrc
contains:$ source /opt/ros/$ROS_DISTRO/setup.bash $ source ~/catkin_ws/devel/setup.bash
-
Required dependencies
- The easiest way to get all them (Qt, PCL, VTK, OpenCV, ...) is to install/uninstall rtabmap binaries:
sudo apt install ros-$ROS_DISTRO-rtabmap* sudo apt remove ros-$ROS_DISTRO-rtabmap*
- The easiest way to get all them (Qt, PCL, VTK, OpenCV, ...) is to install/uninstall rtabmap binaries:
-
Optional dependencies
-
If you want SURF/SIFT on Melodic/Noetic, 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 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
withrtabmap_ros
. If you want to install a more recent OpenCV version, I recommend to uninstalllibopencv*
libraries (with all ros packages depending on it) and rebuild all those ros packages in your catkin workspace (to make surecv_bridge
is linked on the OpenCV version you just compiled).
- 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
-
g2o: Should be already installed by
ros-$ROS_DISTRO-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. Should be alread installed by
ros-$ROS_DISTRO-libpointmatcher
.
-
-
Install RTAB-Map standalone libraries. 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 -j6 sudo make install
-
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 -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
tocatkin_make
if you plan to use multiple cameras. - Add
-DRTABMAP_SYNC_USER_DATA=ON
tocatkin_make
if you plan to use user data synchronized topics.
- Add
- Use
- For latest jetpack, see this post 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.
- For Jetpack 3 (Ubuntu 16.04 with ROS Kinetic), see this post.
###########
# 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