Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

MRPT/mrpt

Repository files navigation

Mobile Robot Programming Toolkit

Two decades of open-source robotics — since 2005

Linux build macOS build Windows build codecov clang-format

Latest release Windows installer DOI License

Documentation · Tutorials · API Reference · Examples · Applications


What is MRPT?

MRPT is a well-established C++ framework for mobile robotics, originally developed in 2005 at the University of Málaga and actively maintained to this day. Over the years, contributions from the community have evolved it into a robust, modular toolkit widely used in both academic research and industry.

MRPT 3.0 is a major refactoring that modernises the build system (colcon-based modular packages), cleans up the public API, and aligns with modern C++17 standards while preserving the data structures and algorithms at the core of MRPT.

MRPT demo

Key capabilities

Area What's included
SLAM MonteCarlo Localization, RBPF, pose-graph optimization
Geometry SE(2)/SE(3) Lie groups, rigid body transforms, point clouds
Probabilistic Kalman filters, particle filters, PDFs over poses & maps
Maps Occupancy grids, point maps, landmark maps, voxel maps
Sensors LiDAR, stereo/RGB-D cameras, IMU, GPS, Velodyne, ...
Visualization 3-D scene graph (mrpt::viz), GUI windows, plot widgets
Navigation Reactive nav, path planning, PTG-based obstacle avoidance
Python pybind11 bindings for all major modules

Getting started

Install from ROS repositories

# ROS 1 (deprecated)
sudo apt install ros-$ROS_DISTRO-mrpt2
# ROS 2
sudo apt install ros-$ROS_DISTRO-mrpt-*

ROS2 build status for mrpt3

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build for amd64 and arm64 architectures:

Package ROS 2 Humble
BinBuild
ROS 2 Jazzy
BinBuild
ROS 2 Kilted
BinBuild
ROS 2 Lyrical
BinBuild
ROS 2 Rolling
BinBuild
mrpt_core Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_io Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_serialization Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_system Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_rtti Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_containers Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_typemeta Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_random Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_config Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_expr Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_math Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_poses Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_tfest Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_bayes Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_obs Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_topography Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_maps Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_graphs Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_opengl Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_img Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_gui Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_nav Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_kinematics Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_slam Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_hwdrivers Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_common Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_comms Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_libapps_cli Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_libapps_gui Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_apps_cli Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_apps_gui Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Install (Ubuntu/Debian)

sudo apt install libmrpt-dev mrpt-apps

Check your distro version at Ubuntu / Debian. For a more recent build, use the nightly PPA:

sudo add-apt-repository ppa:joseluisblancoc/mrpt
sudo apt install libmrpt-dev mrpt-apps

Build from source

git clone https://github.com/MRPT/mrpt.git --recursive

Install build dependencies with rosdep (recommended, works even without ROS installed):

sudo apt install python3-rosdep
sudo rosdep init # only once per machine
rosdep update
rosdep install --from-paths . --ignore-src -r -y

Then build with colcon:

colcon build

See the full build guide for colcon, CMake options, and dependency setup.

Windows

Nightly Windows installer — includes .exe, .dll, .h, and .lib files.


Using MRPT 3.0 in your project

cmake_minimum_required(VERSION 3.16)
project(my_robot_app)
find_package(mrpt_poses REQUIRED)
find_package(mrpt_maps REQUIRED)
add_executable(my_app main.cpp)
target_link_libraries(my_app mrpt::mrpt_poses mrpt::mrpt_maps)

Migrating from MRPT 2.x? See the porting guide — package names changed from mrpt-<name> to mrpt_<name> and targets from mrpt::<name> to mrpt::mrpt_<name>.


Documentation highlights

Resource Link
Full API reference docs.mrpt.org/reference/latest/modules.html
Tutorials docs.mrpt.org/reference/latest/tutorials.html
Code examples docs.mrpt.org/reference/latest/examples.html
Python examples docs.mrpt.org/reference/latest/python_examples.html
GUI applications docs.mrpt.org/reference/latest/applications.html
Supported sensors docs.mrpt.org/reference/latest/supported-sensors.html
ROS wrappers docs.mrpt.org/reference/latest/wrappers.html
Porting from 2.x docs.mrpt.org/reference/latest/porting_mrpt3.html
Changelog docs.mrpt.org/reference/latest/page_changelog.html
Robotics datasets mrpt.org/robotics_datasets

Modules

MRPT 3.0 is organized as independent colcon packages. Each can be built and used standalone:

mrpt_core · mrpt_math · mrpt_poses · mrpt_obs · mrpt_maps · mrpt_slam · mrpt_viz · mrpt_gui · mrpt_nav · mrpt_bayes · mrpt_graphs · mrpt_io · mrpt_img · mrpt_config · mrpt_serialization · mrpt_random · mrpt_system · mrpt_tfest · mrpt_kinematics · mrpt_comms · mrpt_hwdrivers · ...


Community & support


License

Released under the BSD 3-Clause License.


Contributors

Contributors

Packaging status

Repology

AltStyle によって変換されたページ (->オリジナル) /