/rtabmap_ros

RTAB-Map's ROS package.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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.

  • 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.

Build from source

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

  • The next instructions assume that you have set up your ROS workspace using this tutorial. I will use indigo prefix for convenience, but it should work with hydro and jade. The workspace path is ~/catkin_ws and your ~/.bashrc contains:
source /opt/ros/indigo/setup.bash
source ~/catkin_ws/devel/setup.bash
  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. 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).

$ sudo apt-get install libqt4-dev libpcl-1.7-all-dev libdc1394-dev ros-indigo-openni-launch ros-indigo-openni2-launch ros-indigo-freenect-launch ros-indigo-costmap-2d ros-indigo-octomap-ros ros-indigo-g2o ros-indigo-rviz ros-indigo-cv-bridge


  * [GTSAM](https://collab.cc.gatech.edu/borg/gtsam): Follow installation instructions from [here](https://collab.cc.gatech.edu/borg/gtsam/#quickstart). RTAB-Map needs latest version from source (`git clone https://bitbucket.org/gtborg/gtsam.git`), it will not build with 3.2.1.
  
  * [cvsba](http://www.uco.es/investiga/grupos/ava/node/39): Follow installation instructions from [here](http://www.uco.es/investiga/grupos/ava/node/39). Their installation is not standard CMake, you need these extra steps so RTAB-Map can find it:
    ```bash
$ mkdir /usr/local/lib/cmake/cvsba 
$ mv /usr/local/lib/cmake/Findcvsba.cmake /usr/local/lib/cmake/cvsba/cvsbaConfig.cmake
  1. Install the RTAB-Map standalone libraries (don't checkout in the Catkin workspace but install in your Catkin's devel folder).
$ cd ~
$ 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. 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