Mobile Robot Programming Toolkit

September 26, 2026 · View on GitHub

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

AreaWhat's included
SLAMMonteCarlo Localization, RBPF, pose-graph optimization
GeometrySE(2)/SE(3) Lie groups, rigid body transforms, point clouds
ProbabilisticKalman filters, particle filters, PDFs over poses & maps
MapsOccupancy grids, point maps, landmark maps, voxel maps
SensorsLiDAR, stereo/RGB-D cameras, IMU, GPS, Velodyne, …
Visualization3-D scene graph (mrpt::viz), GUI windows, plot widgets
NavigationReactive nav, path planning, PTG-based obstacle avoidance
Pythonpybind11 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

DistroBuild devRelease
ROS 2 Humble (u22.04)Build StatusVersion
ROS 2 Jazzy (u24.04)Build StatusVersion
ROS 2 Kilted (u24.04)Build StatusVersion
ROS 2 Lyrical (u26.04)Build StatusVersion
ROS 2 Rolling (u26.04)Build StatusVersion

Binary package build status per package, distro, OS and architecture:

PackageROS 2 Humble
BinBuild
ROS 2 Jazzy
BinBuild
ROS 2 Kilted
BinBuild
ROS 2 Lyrical
BinBuild
ROS 2 Rolling
BinBuild
mrpt_coreBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_ioBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_serializationBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_systemBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_rttiBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_containersBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_typemetaBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_randomBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_configBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_dataBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_exprBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_mathBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_posesBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_tfestBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_bayesBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_obsBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_topographyBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_mapsBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_graphsBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_openglBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_imgBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_vizBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_imguiBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_imgui_vendorBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_guiBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_navBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_kinematicsBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_slamBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_graphslamBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_hwdriversBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_commonBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_commsBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_libapps_cliBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_libapps_guiBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_apps_cliBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_apps_guiBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
mrpt_examples_cppBuild Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) -- not available for Humble: pybind11-dev has no RHEL 8 mapping in rosdep, so mrpt3 cannot be built there.
  • Fedora (x86_64) -- only available since ROS 2 Lyrical (Fedora was not a supported buildfarm target for earlier distros).

A red/failing badge means the package attempted to build for that platform but currently fails (e.g. an unresolved transitive dependency); a missing badge means that platform is not offered at all for that distro.

mrpt_imgui_vendor is pending its first rosdistro release, so its badges will show as unbuilt until that merge lands.

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

ResourceLink
Full API referencedocs.mrpt.org/reference/latest/modules.html
Tutorialsdocs.mrpt.org/reference/latest/tutorials.html
Code examplesdocs.mrpt.org/reference/latest/examples.html
Python examplesdocs.mrpt.org/reference/latest/python_examples.html
GUI applicationsdocs.mrpt.org/reference/latest/applications.html
Supported sensorsdocs.mrpt.org/reference/latest/supported-sensors.html
ROS wrappersdocs.mrpt.org/reference/latest/wrappers.html
Porting from 2.xdocs.mrpt.org/reference/latest/porting_mrpt3.html
Changelogdocs.mrpt.org/reference/latest/page_changelog.html
Robotics datasetsmrpt.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