|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |
Launch files
Messages
Services
Plugins
Recent questions tagged mp2p_icp_core at Robotics Stack Exchange
|
mp2p_icp_core package from mp2p_icp repomp2p_icp mp2p_icp_core mp2p_icp_viz |
ROS Distro
|
Package Summary
| Version | 2.14.0 |
| License | BSD-3-Clause |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/MOLAorg/mp2p_icp.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-09-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Jose-Luis Blanco-Claraco
Authors
Changelog for package mp2p_icp_core
2.14.0 (2026-09-05)
- Point matchers (Matcher_Points_DistanceThreshold, Matcher_Points_Blend): fixed a nondeterministic pairing order caused by parallel reduction depending on TBB thread scheduling; the correspondence list is now a function of the input alone, regardless of thread count.
- Solver_GaussNewton: the robust kernel now receives a whitened residual (using the existing pair weight as the whitening factor) instead of a raw metric or Mahalanobis norm, so [robustKernelParam]{.title-ref} means the same number of sigmas for every pair type. Bit-identical for pipelines using default weights.
- GravityPrior: report the fraction of the final rotational information the prior actually contributed, via new [gravity_information_share]{.title-ref} field in [OptimalTF_Result]{.title-ref} and [Results]{.title-ref} (negative when no prior was given); this value is now also persisted across serialization ([Results]{.title-ref} format v1) and reset at the start of each solve.
- New FilterPlanePatches: extracts large planar patches (equation, centroid, area, point count) into [metric_map_t::planes]{.title-ref}, complementing FilterEdgesPlanes' per-point labeling. Deterministic greedy extraction seeded by per-point normals. [metric_map_t]{.title-ref} serialization goes to v6.
- FilterVoxelReduction: made the downsampling order-independent (selection no longer depends on input point order) and tightened bounds on [range_min]{.title-ref} and [normal_agreement_deg]{.title-ref}.
- Contributors: Jose Luis Blanco-Claraco
2.13.1 (2026-08-25)
-
Merge pull request #94 from MOLAorg/feat/mm-filter-generators-create-layer mm-filter: create new metric map layers via generators:
-
Fix stale doc URLs missing the mp2p_icp_core path segment These sm2mm/mm-filter demo comments and the sm2mm.h docstring still pointed at pre-split paths (apps/sm2mm, apps/mm-filter, top-level demos/), left over from the mp2p_icp_core/mp2p_icp_viz package split. Same class of issue as flagged in review for the new demo added in this branch; fixing the other pre-existing occurrences found by a repo-wide search.
-
Address review: fix demo URL, doc precedence, and unresolved formula check
- Fix stale doc link in the new demo (missing mp2p_icp_core path segment).
- CreateMetricMapFromDefinition(): docs said "exactly one" of the two definition sources must be given, but the implementation actually prefers metricMapDefinitionIniFile if both are non-empty; reword to match.
- Generator::createTargetLayerIfNeeded(): call Parameterizable::checkAllParametersAreRealized() before creating the map, matching the guard Generator::process() already has. Without it, a metric_map_definition formula (e.g. "$f{...}") referencing a variable that's never bound in this code path (createTargetLayerIfNeeded has no attached ParameterSource) would silently serialize as its unresolved 0.0 placeholder instead of raising a clear error.
-
Let mm-filter pipelines create new metric map layers via generators: mm-filter operates on an already-built .mm file, so it had no way to instantiate a brand-new layer of an arbitrary mrpt::<maps::CMetricMap> subclass (e.g. mola::KeyframePointCloudMap): that logic lived inside Generator, and only ran as a side effect of processing an observation, which mm-filter does not have. Factor the map-creation logic (TSetOfMetricMapInitializers + CMultiMetricMap, driven by a metric_map_definition YAML block) out of Generator::implProcessCustomMap() into a standalone mp2p_icp_filters::CreateMetricMapFromDefinition(), and expose it via a new Generator::createTargetLayerIfNeeded(), callable without any observation at hand. mm-filter now optionally parses a generators: section (same schema as sm2mm) and uses it only to pre-create each generator's target_layer if missing, before running filters:. A plain FilterMerge step can then insert an existing point cloud layer into it, closing the gap reported in MOLAorg/mola#147.
-
Add feature-detection macro for nn_visit_pt2pl_candidates() Downstream code (e.g. mola) needs to build against both this and older mp2p_icp releases still distributed via ROS binary repos, which predate NearestPlaneCapable::nn_visit_pt2pl_candidates() and the PlaneCandidate/plane_candidate_visitor_t types.
-
Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco
2.13.0 (2026-08-21)
- Merge pull request #91 from MOLAorg/feat/ndt-blend-matcher Add Matcher_NDT_Blend: a smooth
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ros_environment | |
| catkin | |
| mola_common | |
| mrpt_libbase | |
| mrpt_libobs | |
| mrpt_libposes | |
| mrpt_libmaps | |
| mola_imu_preintegration |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mp2p_icp | |
| mp2p_icp_viz |