Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

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

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

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

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

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

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange

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

Package Summary

Version 2.8.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/MOLAorg/mola.git
VCS Type git
VCS Version develop
Last Updated 2026-04-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Advanced metric map classes, using the generic `mrpt::maps::CMetricMap` interface, for use in other MOLA odometry and SLAM modules.

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_metric_maps

Advanced metric map classes, using the generic mrpt::maps::CMetricMap interface, for use in other MOLA odometry and SLAM modules.

Contents

This repository provides a pure C++ library mola_metric_maps that extends mrpt-maps with additional metric map classes:

  • mola::OccGrid: Extends MRPT’s occupancy grid with super-resolution likelihood field.
  • mola::SparseVoxelPointCloud: a pointcloud stored in two dual hash’ed voxel maps, one for decimation purposes only, and another for nearest-neighbor search.

Build and install

Refer to the root MOLA repository.

License

Copyright (C) 2018-2026 Jose Luis Blanco jlblanco@ual.es, University of Almeria

This package is released under the GNU GPL v3 license as open source for research and evaluation purposes only. Commercial licenses available upon request, for this package alone or in combination with the complete SLAM system.

CHANGELOG

Changelog for package mola_metric_maps

2.8.0 (2026-04-29)

  • Merge pull request #139 from MOLAorg/fix/monothonic-kf-ids Fix: ensure monothonic KF ids

  • Fix: ensure monothonic KF ids

  • Merge pull request #138 from MOLAorg/fix/kf-map fix: robustify edge cases from last API changes

  • fix: robustify edge cases from last API changes

  • Merge pull request #137 from MOLAorg/feat/metric-map-changes-for-lo-grav-align mola_metric_maps: per-KF pose plumbing for online gravity rebake

  • feat(mola_metric_maps): per-KF pose plumbing for online gravity rebake Add the KeyframePointCloudMap APIs needed by mola_lidar_odometry's online gravity-rebake feature:

    • cloneKFPoses: snapshot of all KF poses keyed by id
    • setKeyframePose: per-KF pose overwrite with cache invalidation
    • lastInsertedKeyFrameID / nextFreeKeyFrameID_public: id introspection

    - drainEvictedKeyFrameIDs: pull-then-clear list of KFs dropped during remove_frames_farther_than-driven evictions inside insertObservation Also exports the MOLA_METRIC_MAPS_HAS_KFM_POSE_PLUMBING feature macro so downstream packages in separate repos (mola_lidar_odometry) can guard usage with __has_include + this macro and stay buildable against older mola_metric_maps checkouts. Adds unit-test coverage for the new APIs in test-mola_metric_maps_keyframemap. Co-Authored-By: Claude Opus 4.7 <<noreply@anthropic.com>>

  • Merge pull request #134 from Zeal-Robotics/perf/keyframe-prewarm-global-submap perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global

  • perf(mola_metric_maps): pre-warm global-frame submap data in icp_get_prepared_as_global icp_get_prepared_as_global() was building, on the search submap, only the local-frame KD-tree and per-point covariances (via KeyFrame::buildCache):

    • bbox
    • kdTreeEnsureIndexBuilt3D() on pointcloud_ (local frame)

    - computeCovariancesAndDensity() (local frame) The very first call to nn_search_cov2cov() then lazily materialized the global-frame counterparts on the caller thread:

    • pointcloud_global() (deep copy of pointcloud_ rotated by pose())
    • kdTreeEnsureIndexBuilt3D() on the global cloud

    - covariancesGlobal() (rotated covariances) For a non-trivial preloaded local map this stalled the first ICP align() by several seconds (e.g. ~6 s on a typical localization map), defeating the purpose of having a separate "prepare global" hook. Front-ends that explicitly pre-warm via icp_get_prepared_as_global() at startup were hit hardest, since the remaining lazy work then showed up on the very first scan instead of being amortized across startup. Pre-trigger the same three calls at the end of icp_get_prepared_as_global() so the search submap is fully ready by the time ICP::align() / nn_search_cov2cov() runs.

  • Contributors: Jose Luis Blanco-Claraco, Robin Van Cauwenbergh

2.7.0 (2026-04-22)

  • Reorganize website
  • Merge pull request #121 from MOLAorg/fix/clean-up-old-mrpt-version-checks Clean up: remove old mrpt version fallback code sections
  • Contributors: Jose Luis Blanco-Claraco

2.6.1 (2026-04-02)

  • Merge pull request #119 from MOLAorg/fix/thread-safety Fix/thread safety
  • mola_metric_maps: FIX potential race conditions They didn't happen in practice but to be safe code clean up wip
  • Fix potential race in KeyframePointCloudMap::icp_get_prepared_as_global()
  • Fix MRPT version required for updated insertAnotherMap() API
  • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

2.6.0 (2026-03-12)

  • Merge pull request #113 from

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mola_metric_maps at Robotics Stack Exchange