Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/MRPT/mrpt_ros.git
VCS Type git
VCS Version main
Last Updated 2026-05-12
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mrpt_apps 2.15.18
mrpt_libapps 2.15.18
mrpt_libbase 2.15.18
mrpt_libgui 2.15.18
mrpt_libhwdrivers 2.15.18
mrpt_libmaps 2.15.18
mrpt_libmath 2.15.18
mrpt_libnav 2.15.18
mrpt_libobs 2.15.18
mrpt_libopengl 2.15.18
mrpt_libposes 2.15.18
mrpt_libslam 2.15.18
mrpt_libtclap 2.15.18

README

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 Rolling (u24.04) Build Status Version
EOL Distro Last Release
ROS 1 Noetic @ u20.04 Version
ROS 2 Iron (u22.04) Version

DEPRECATED: Move to mrpt3 as of May-2026

mrpt-ros

Migration guide: mrpt_ros (MRPT 2.x) → native MRPT 3.x packages

Starting with MRPT 3.0, the upstream MRPT/mrpt repository is itself a colcon-friendly multi-package workspace, so the mrpt_ros wrapper is no longer needed. Downstream ROS 2 packages should depend directly on the native mrpt_<module> packages shipped by MRPT 3.x.

Package names do not collide: this old wrapper (mrpt_ros) uses the mrpt_lib* family, while MRPT 3.x exposes one ROS package per C++ module (mrpt_core, mrpt_math, …).

1. package.xml — dependency renaming

Replace every <depend>mrpt_lib*</depend> with the fine-grained module(s) actually used:

mrpt_ros (2.x) MRPT 3.x native packages
mrpt_libbase mrpt_io, mrpt_serialization, mrpt_system, mrpt_rtti, mrpt_containers, mrpt_typemeta, mrpt_random, mrpt_config, mrpt_expr
mrpt_libmath mrpt_math
mrpt_libposes mrpt_poses (+ mrpt_tfest, mrpt_bayes if used)
mrpt_libobs mrpt_obs (+ mrpt_topography if used)
mrpt_libmaps mrpt_maps (+ mrpt_graphs if used)
mrpt_libopengl mrpt_opengl (+ mrpt_img)
mrpt_libgui mrpt_gui
mrpt_libnav mrpt_nav (+ mrpt_kinematics)
mrpt_libslam mrpt_slam (+ mrpt_vision)
mrpt_libhwdrivers mrpt_hwdrivers (+ mrpt_comms)
mrpt_libapps mrpt_libapps_cli, mrpt_libapps_gui
mrpt_apps mrpt_apps_cli / mrpt_apps_gui
mrpt_libtclap Removed, see below. Migrate the CLI parsing in user code to CLI11 (cli11-dev on Ubuntu/Debian) or an equivalent (e.g. argparse, cxxopts).
python_mrpt Removed: Each package now has its own pybind11-bindings.

Example diff for a typical downstream package:

 <package format="3">
   <name>my_ros_node</name>
   ...
-  <depend>mrpt_libmath</depend>
-  <depend>mrpt_libposes</depend>
-  <depend>mrpt_libmaps</depend>
-  <depend>mrpt_libtclap</depend>
+  <depend>mrpt_math</depend>
+  <depend>mrpt_poses</depend>
+  <depend>mrpt_maps</depend>
+  <depend>cli11</depend>   <!-- replaces the dropped mrpt_libtclap; pick your preferred CLI lib -->
 </package>

2. CMakeLists.txtfind_package and target renaming

In MRPT 3.x, the CMake package names use underscores (matching the ROS package names) and the exported imported targets are mrpt::mrpt_<module> (not mrpt::<module>):

-find_package(mrpt-math   REQUIRED)
-find_package(mrpt-poses  REQUIRED)
-find_package(mrpt-maps   REQUIRED)
-find_package(mrpt-tclap  REQUIRED)
+find_package(mrpt_math   REQUIRED)
+find_package(mrpt_poses  REQUIRED)
+find_package(mrpt_maps   REQUIRED)
+find_package(CLI11       REQUIRED)    # or argparse / cxxopts

 add_executable(my_node src/main.cpp)
 target_link_libraries(my_node PRIVATE
-  mrpt::math
-  mrpt::poses
-  mrpt::maps
-  mrpt::tclap
+  mrpt::mrpt_math
+  mrpt::mrpt_poses
+  mrpt::mrpt_maps
+  CLI11::CLI11
 )

The mechanical rules are:

  • find_package(mrpt-<X>)find_package(mrpt_<X>)
  • mrpt::<X>mrpt::mrpt_<X>

3. Dropped: mrpt-tclap / mrpt_libtclap

MRPT 3.x no longer vendors TCLAP. Downstream code that parsed command-line arguments via

File truncated at 100 lines see the full file