![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |
Launch files
Messages
Services
Plugins
Recent questions tagged mrpt_pf_localization at Robotics Stack Exchange
![]() |
mrpt_pf_localization package from mrpt_navigation repomrpt_map_server mrpt_msgs_bridge mrpt_nav_interfaces mrpt_navigation mrpt_pf_localization mrpt_pointcloud_pipeline mrpt_rawlog mrpt_reactivenav2d mrpt_tps_astar_planner mrpt_tutorials |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.2 |
License | BSD |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mrpt-ros-pkg/mrpt_navigation.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2025-05-28 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Markus Bader
- Jose Luis Blanco-Claraco
Authors
- Markus Bader
- Raphael Zack
mrpt_pf_localization
- mrpt_pf_localization
Overview
This package provides a ROS 2 node for self-localization using 2D or 3D (SE(2) or SE(3)) particle filter-based algorithms and a number of different metric maps as reference maps to which to “compare” sensor observations.
In a sense, this package is an equivalent to the classic ROS 1 amcl
, but with superpowers :-)
Features:
-
A number of different PF algorithms.
- Different map types: Occupancy grid maps (as images, ROS yaml files, or in MRPT binary format), point clouds, beacon map (for range-only sensors). At present, these combinations are exposed in this node:
- Map: occupancy grid, Sensor: anyone capable of generating a point cloud. Several occupancy grids, each at a different height, to be used for laser scans at the corresponding robot height.
- Map: beacons at predefined 3D positions, Sensor: range-only. For Range-Only (RO) Localization.
- Map: point cloud, Sensor: 2D or 3D Lidars (TO-DO as of Aug 2023).
- GNSS (GPS) readings, in parallel to any of the above (TO-DO as of Aug 2023).
- Multiple simultaneous sensors: The combinations above can be used together and their probabilistic information automatically fused together.
Related papers
-
Optimal particle filtering algorithm:
J.L. Blanco, J. Gonzalez-Jimenez, J.A. Fernandez-Madrigal, “Optimal Filtering for Non-Parametric Observation Models: Applications to Localization and SLAM”, The International Journal of Robotics Research (IJRR), vol. 29, no. 14, 2010. (PDF)
-
Range-Only localization:
J. Gonzalez-Jimenez, J.L. Blanco, C. Galindo, A. Ortiz-de-Galisteo, J.A. Fernandez-Madrigal, F.A. Moreno, J. Martinez, “Mobile Robot Localization based on Ultra-Wide-Band Ranging: A Particle Filter Approach”, Robotics and Autonomous Systems, vol. 57, no. 5, pp. 496–507, 2009. (PDF)
Configuration
The provided algorithms have parameters that can be grouped into three conceptual topics:
- Algorithm: Parameters affecting the particle filter itself or the adaptive sampling method. These parameters can be set in the main config YAML file.
- Actions: The motion model uncertainty. These parameters are also set in the main config YAML file.
- Observations: These parameters are spread in part in the observations themselves (e.g. each lidar/sonar should carry information about how noisy it is), and the metric maps. The latter are key parameters and in MRPT are called likelihood options in each available metric map.
Metric map conceptual model
Metric map likelihood options are key for tuning the localization system, as they tell how much to “trust” sensor readings, how much to downsample their rays, etc.
When using as input a metric map that comes in MRPT native mrpt::maps::CMetricMap
format
(this includes mp2p_icp
’s metric map *.mm
files), the map already comes with
its own set of likelihood parameters, defined at the time of creating the map in
the source application.
However, this mrpt_pf_localization
node allows overriding the
likelihood options to ease tuning and adjusting without touching the original map.
When using non MRPT-native map sources (e.g. ROS gridmap yaml files), the only way to set these important options is via this overriding mechanism.
Refer to node launch arguments for details.
Demos
2D LIDAR localization with a gridmap and MVSim
Demo video. Run:
ros2 launch mrpt_tutorials demo_localization_pf_mvsim_2d_lidar.launch.py
to start:
-
mrpt_pf_localization
with the map to be received via a ROS topic, -
mrpt_map_server
server loading and publishing a gridmap as reference map via an ROS-styledmap.yaml
file, -
rviz2
for visualization, -
mvsim
to simulate a live robot that can be teleoperated.
Range-only (RO) localization with a set of fixed, known radio beacons
Run:
ros2 launch mrpt_localization demo_ro.launch
to start:
File truncated at 100 lines see the full file
Changelog for package mrpt_pf_localization
2.2.2 (2025-05-28)
- FIX: remove usage of obsolete ament_target_dependencies()
- Merge pull request #153 from dppp415/ros2 Composable Nodes
- Shared libraries
- Some fixes and demo
- Copyright
- Deleted duplicated code
- Nodes mrpt_pointcloud_pipeline y mrpt_pf_localization are now composables
- Contributors: Jose Luis Blanco-Claraco, dppp415
2.2.1 (2024-10-12)
2.2.0 (2024-09-25)
- less strict unit test failure limit (fixes potential spurious failure)
- Update URL entries in package.xml to each package proper documentation
- ament linters: manually enable just cmake and xml linters
- reformat clang-format with 100 column width
- mrpt_pf_localization is now robust against temporary failures of /tf resolutions for sensor poses
- New optional param 'metric_map_use_only_these_layers' to use only a subset of the .mm map layers
- Contributors: Jose Luis Blanco-Claraco
2.1.1 (2024-09-02)
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
- Remove temporary workaround in <depends> for buggy mrpt_libros_bridge package.xml
- update dependencies
- Depend on new mrpt_lib packages (deprecate mrpt2)
- Contributors: Jose Luis Blanco-Claraco
2.1.0 (2024-08-08)
- Fix GNSS name typo
- Merge branch 'ros2' into wip/port-tps-astar
- Merge branch 'ros2' into wip/port-tps-astar
- Contributors: Jose Luis Blanco-Claraco
2.0.1 (2024-05-28)
2.0.0 (2024-05-28)
- unit test executable now accepts many env var arguments for use in batch tests
- More relocalization parameters
- pf-test: fix static not POD warnings, and support env var-based config file too
- Fix for latest mp2p_icp api
- Implement relocalization based on ICP
- fix relocalization with reference pointmaps
- code clean up; check convergence in unit test
- Do not update the PF if there are no usable observations
- use pf/m² to initialize; estimate twist
- Expose gnss topic in the launch file
- GNSS-based initialization
- Comply with ROS2 REP-2003
- use namespaces for launch files
- allow overriding map likelihood options
- Show more debug info on metric map likelihood options
- New param for core-only debug level
- enable running the test from an MM file
- Receive gridmap from ROS topic
- Clearer warn messages
- Reorganize launch and demo files
- Prepare demo launch files
- Port mrpt localization to ROS 2 and whole refactor
- Renamed: mrpt_localization: mrpt_pf_localization
- Contributors: Jose Luis Blanco-Claraco
1.0.3 (2022-06-25)
1.0.2 (2022-06-25)
1.0.1 (2022-06-24)
- fix all build errors; removed now obsolete tf_prefix
- Ported to tf2 and mrpt::ros1bridge
- modernize cmake
- Contributors: Jose Luis Blanco-Claraco
1.0.0 (2022-04-30)
- Update URLs to https
- Update build dep to mrpt2
- Merge pull request #118
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
cmake |
Dependant Packages
Name | Deps |
---|---|
mrpt_navigation |