Files
rtabmap_ros/README.md
T

110 lines
5.8 KiB
Markdown
Raw Normal View History

2016-11-03 11:56:33 -04:00
rtabmap_ros [![Build Status](https://travis-ci.org/introlab/rtabmap_ros.svg?branch=master)](https://travis-ci.org/introlab/rtabmap_ros)
2014-11-25 17:51:23 -05:00
===========
2014-11-28 10:15:17 -05:00
RTAB-Map's ROS package.
2014-11-25 17:51:23 -05:00
2016-06-04 18:47:05 -04:00
For more information, demos and tutorials about this package, visit [rtabmap_ros](http://wiki.ros.org/rtabmap_ros) page on ROS wiki.
2014-11-25 17:51:23 -05:00
2016-06-04 18:47:05 -04:00
For the RTAB-Map libraries and standalone application, visit [RTAB-Map's home page](http://introlab.github.io/rtabmap) or [RTAB-Map's wiki](https://github.com/introlab/rtabmap/wiki).
2014-11-25 17:51:23 -05:00
2017-03-23 13:45:50 -04:00
# Installation
2014-11-27 13:51:23 -05:00
2017-03-23 13:45:50 -04:00
## ROS distribution
2017-03-23 14:03:48 -04:00
RTAB-Map is released as binaries in the ROS distribution.
2017-08-23 13:00:28 -04:00
* Lunar
```
$ sudo apt-get install ros-lunar-rtabmap-ros
```
2017-03-23 13:45:50 -04:00
* 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.
2014-11-27 13:51:23 -05:00
2016-07-12 07:29:53 -04:00
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:
2017-03-23 13:45:50 -04:00
2017-03-23 13:46:30 -04:00
```bash
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/kinetic/lib/x86_64-linux-gnu
```
2016-06-02 14:03:14 -04:00
2017-03-23 13:45:50 -04:00
## Build from source
2017-08-23 13:00:28 -04:00
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**).
2014-11-27 13:51:23 -05:00
2017-08-23 13:00:28 -04:00
* The next instructions assume that you have set up your ROS workspace using this [tutorial](http://wiki.ros.org/catkin/Tutorials/create_a_workspace). 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:
2014-11-27 13:51:23 -05:00
2017-03-23 13:45:50 -04:00
```bash
$ source /opt/ros/kinetic/setup.bash
$ source ~/catkin_ws/devel/setup.bash
```
2016-04-17 13:51:56 -04:00
2017-03-23 14:03:22 -04:00
0. Required dependencies
* The easiest way to get all them (Qt, PCL, VTK, OpenCV, ...) is to install/uninstall rtabmap binaries:
```bash
$ sudo apt-get install ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
$ sudo apt-get remove ros-kinetic-rtabmap ros-kinetic-rtabmap-ros
```
2017-03-23 13:45:50 -04:00
2017-03-23 14:03:22 -04:00
1. Optional dependencies
2017-08-23 13:00:28 -04:00
* If you want SURF/SIFT on Indigo/Jade (Hydro has already SIFT/SURF), you have to build [OpenCV]([OpenCV](http://opencv.org/)) 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.
2017-03-23 14:03:22 -04:00
* On Indigo/Jade, I recommend to use latest 2.4 version ([2.4.11](https://github.com/Itseez/opencv/archive/2.4.11.zip)) and build it from source following these [instructions](http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#building-opencv-from-source-using-cmake-using-the-command-line). RTAB-Map can build with OpenCV3+[xfeatures2d](https://github.com/Itseez/opencv_contrib/tree/master/modules/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](https://github.com/ros-perception/vision_opencv) package yourself (and all ros packages depending on it) so it can link on OpenCV3.
2017-08-23 13:00:28 -04:00
* On Kinetic/Lunar, I recommend to use OpenCV3+[xfeatures2d](https://github.com/Itseez/opencv_contrib/tree/master/modules/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](https://github.com/ros-perception/vision_opencv) package yourself (and all ros packages depending on it) so it can link on OpenCV2.
2015-10-06 09:51:31 -04:00
2017-03-23 14:03:22 -04:00
* `ros-kinetic-g2o`: [latest g2o version](https://github.com/RainerKuemmerle/g2o) built from source may be faster than the binaries (install `libsuitesparse-dev` before building `g2o`) and would be [required to avoid some crashes](http://official-rtab-map-forum.67519.x6.nabble.com/ROS-2D-occupancy-grid-tp1204p1215.html).
2015-10-06 09:51:31 -04:00
2017-03-23 14:03:22 -04:00
* [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, it will **not build** with 3.2.1.
2017-03-23 13:45:50 -04:00
```bash
2017-03-23 14:03:22 -04:00
git clone https://bitbucket.org/gtborg/gtsam.git
2017-03-23 13:45:50 -04:00
```
* [Freenect2](https://github.com/OpenKinect/libfreenect2): Follow installation instructions from [here](https://github.com/OpenKinect/libfreenect2#debianubuntu-1404-perhaps-earlier).
2017-03-23 14:03:22 -04:00
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**.
2017-03-23 13:45:50 -04:00
2015-10-06 09:51:31 -04:00
```bash
2017-03-23 13:45:50 -04:00
$ cd ~
$ git clone https://github.com/introlab/rtabmap.git rtabmap
$ cd rtabmap/build
$ cmake .. [<---double dots included]
2017-04-05 09:16:05 -04:00
$ make
2017-03-23 13:45:50 -04:00
$ sudo make install
```
2015-10-06 09:51:31 -04:00
2017-03-23 14:03:22 -04:00
3. Install RTAB-Map ros-pkg in your src folder of your Catkin workspace.
2014-11-27 13:51:23 -05:00
2017-03-23 13:45:50 -04:00
```bash
$ cd ~/catkin_ws
$ git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
2017-04-05 09:16:05 -04:00
$ catkin_make -j1
2017-03-23 13:45:50 -04:00
```
2017-04-05 09:16:05 -04:00
* Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~1.8 GB to build).
2014-11-27 13:51:23 -05:00
2017-03-23 13:45:50 -04:00
### Update to new version
2014-11-27 13:51:23 -05:00
2015-05-13 15:12:04 -04:00
```bash
2014-11-27 14:49:14 -05:00
$ cd rtabmap
$ git pull origin master
$ cd build
$ make
$ make install
2016-10-11 14:39:15 -04:00
# Do "sudo make install" if you installed rtabmap in "/usr/local"
2014-11-27 13:51:23 -05:00
2014-12-02 09:44:08 -05:00
$ roscd rtabmap_ros
2014-11-27 14:49:14 -05:00
$ git pull origin master
$ cd ~/catkin_ws
2017-04-05 09:16:05 -04:00
$ catkin_make -j1
2014-11-27 13:51:23 -05:00
```