Skip to content
Jose Luis Blanco-Claraco edited this page May 21, 2018 · 5 revisions

Design rationale

We provide Robot Operative System (ROS) wrapper packages for certain MRPT library features.

At present, the targeted ROS distributions and their C++ language version per REP 3 are:

  • Kinetic (C++11)
  • Melodic (C++14)

The goal is publishing and maintaining these (meta)packages:

  • mrpt_navigation: Particle-filter based localization, reactive navigation, loading maps in MRPT format, etc.
  • mrpt_slam: SLAM algorithms.
  • mrpt_sensors (Work in progress!): Connect to sensors, publish observations as standard ROS topics (and optionally,
  • pose_cov_ops: A ROS C++ library to operate with SE(3) transformations with uncertainty (Gaussian distributions).

All MRPT ROS packages must support building against MRPT>=1.5.4 (branch mrpt-1.5) and MRPT>=1.9.9 (branch master). Unfortunately, officially released ROS packages (e.g. via apt) cannot be shipped with the latest MRPT version due to the restriction to remain within C++14 in ROS Melodic (mrpt master requires C++17), so all current releases ship with mrpt-1.5.

Since not all Ubuntu versions supported by our targeted ROS distributions include in their repositories a version of MRPT >= 1.5.4, we provide the following ROS packages to easily install a more modern MRPT version in a ROS-friendly way:

  • mrpt1: Ships the latest version of mrpt-1.5.

It can be installed with sudo apt install ros-$ROS_DISTRO-mrpt1.

After installation, all MRPT ROS packages that list mrpt1 as a ROS dependency (in contrast to a system dependency) will be able to FIND_PACKAGE(MRPT...) since catkin will append the mrpt1 ROS package directory to CMake PATH.

Installing from official ROS distributions

Install the desired packages as usual with apt.

Build instructions

Since mrpt1 is a non-catkin package, we need two catkin environments:

Isolated catkin env for mrpt1

mkdir -p ~/catkin_ws_isolated/src
cd ~/catkin_ws_isolated/src
catkin_init_workspace  # create CMakeLists.txt
# Clone MRPT-1.5 in dir mrpt1
git clone https://github.com/MRPT/mrpt.git mrpt1 -b mrpt-1.5
cd ~/catkin_ws_isolated
catkin_make_isolated

Regular ROS packages

Put all MRPT (and your own) ROS packages under a usual catkin environment (e.g. ~/catkin_ws/).

Remember to source the isolated setup.bash for all packages to find the isolated build:

source catkin_ws_iso/devel_isolated/setup.bash

You can add this line to your .bashrc after the call to the general ROS setup.bash.