-
Notifications
You must be signed in to change notification settings - Fork 632
MRPT ROS packages
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_bridge: C++ library to convert between ROS msgs and MRPT classes.
- mrpt_msgs: MRPT-specific ROS message types.
- 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).
- mvsim: A lightweight vehicle simulator, used in some reactivenav demos.
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 (>=1.9.9) 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 ofmrpt-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.
Install the desired packages as usual with apt
. See the list of existing packages above.
Since mrpt1
/mrpt2
are non-catkin packages, they must be built within an isolated catkin workspace.
Skip step 3.1 below and go straight to 3.2 (after doing sudo apt install libmrpt-dev
) if you do not intend to modify mrpt sources.
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
# Or mrpt-2:
#git clone https://github.com/MRPT/mrpt.git mrpt2 -b master
cd ~/catkin_ws_isolated
catkin_make_isolated
Put all MRPT (and your own) ROS packages under a usual catkin environment (e.g. ~/catkin_ws/
), for example:
cd ~/catkin_ws/src
git clone https://github.com/mrpt-ros-pkg/mrpt_bridge
git clone https://github.com/mrpt-ros-pkg/mrpt_msgs
git clone https://github.com/mrpt-ros-pkg/mrpt_navigation
git clone https://github.com/mrpt-ros-pkg/mrpt_slam
git clone https://github.com/mrpt-ros-pkg/mrpt_sensors
git clone https://github.com/mrpt-ros-pkg/pose_cov_ops
git clone https://github.com/ual-arm-ros-pkg/mvsim
If you built mrpt1/mrpt2 from sources, 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
.