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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
|
mrpt_ros repositorymrpt_apps mrpt_libapps mrpt_libbase mrpt_libgui mrpt_libhwdrivers mrpt_libmaps mrpt_libmath mrpt_libnav mrpt_libobs mrpt_libopengl mrpt_libposes mrpt_libslam mrpt_libtclap |
ROS Distro
|
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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
CONTRIBUTING
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) | ||
| ROS 2 Jazzy (u24.04) | ||
| ROS 2 Kilted (u24.04) | ||
| ROS 2 Rolling (u24.04) |
| EOL Distro | Last Release |
|---|---|
| ROS 1 Noetic @ u20.04 | |
| ROS 2 Iron (u22.04) |
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.txt — find_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