Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange

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

Package Summary

Version 3.2.0
License GPLv3
Build type CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Fundamental C++ virtual interfaces and data types for the rest of MOLA modules

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

mola_kernel

MOLA kernel library, providing the definition of essential virtual interfaces and data types.

Build and install

Refer to the root MOLA repository.

Docs and examples

See this package page in the documentation.

License

This package is released under the GNU GPL v3 license. Other options available upon request.

CHANGELOG

Changelog for package mola_kernel

3.2.0 (2026-08-21)

  • Merge pull request #192 from MOLAorg/feat/map-frame-gauge-change Support re-expressing estimator and pose-list state in a new frame

  • Merge remote-tracking branch 'origin/feat/map-frame-gauge-change' into feat/map-frame-gauge-change

  • mola_kernel: declare transform_frame() last; test SearchablePoseList frame change Appending the new optional virtual only grows the vtable, whereas the previous mid-list position shifted the slot index of the three virtuals after it, breaking any prebuilt NavStateFilter plugin. A note asks that future optional virtuals also go at the end. Adds regression coverage for SearchablePoseList::transform_left_multiply() in both storage modes: that the kd-tree follows the transformed poses (verified to fail if the spatial index is left stale), that the empty and identity cases are no-ops, and that the id-keyed lookup survives.

  • Merge branch 'develop' into feat/map-frame-gauge-change

  • Support re-expressing estimator and pose-list state in a new frame Adds the two pieces a one-off gauge change of the map frame needs, so that leveling the frame once gravity is known does not have to throw state away:

    - NavStateFilter::transform_frame(), an optional virtual returning false by default, so existing estimators are unaffected and a caller that gets false falls back to reset(). Guarded by a feature macro for downstream detection.

    - SearchablePoseList::transform_left_multiply(), so keyframe-density bookkeeping moves with the frame instead of being invalidated by it. Both are pure left-multiplications, p -> b + p. Note that relative motion, and hence any velocity expressed in the vehicle's own frame, is invariant under this and must NOT be rotated.

  • Contributors: Jose Luis Blanco-Claraco

3.1.1 (2026-08-10)

  • Fix C++20 build: keep TransformTree/TransformTreeNode aggregates by dropping their defaulted default constructors, which made brace initialization stop compiling on ROS 2 Lyrical (C++20).
  • Contributors: Jose Luis Blanco-Claraco

3.1.0 (2026-08-06)

  • Add mola::TransformTreeSource: expose the /tf tree to other MOLA modules (#188) * Add mola::TransformTreeSource: expose the /tf tree to other modules New mola_kernel interface letting a data source publish its tree of coordinate frames, so consumers (e.g. a LiDAR-odometry viewer) can draw a robot's joints as it moves. transform_tree(root) returns the subtree below 'root' with poses already resolved against it. The filtering is done in the source, which is what owns the transform buffer, so a consumer never receives nor walks unrelated subtrees. The interface carries no ROS/tf2 type, keeping mola_kernel ROS-independent. Implemented by Rosbag1Dataset (separate repo), Rosbag2Dataset and BridgeROS2. No locking is added around the subtree walk: tf2::BufferCore guards its own internals, which is also what lets BridgeROS2's TransformListener feed the buffer from its own thread.
    • Address review: depth-first comment, cycle guard in the tf walk
    • No need for include guards inside this same git repo
  • fix formatting
  • mola_kernel: don't flood ERROR logs when GUI preview has no viz module A launch YAML can populate gui_preview_sensors for a sensor without gating that entry behind MOLA_WITH_GUI (several mola_lidar_odometry launch files did exactly this). In that case every observation for that sensor label enqueued a task that threw and caught "Could not find a running MolaViz module" -- thousands of ERROR-level log lines per headless run, found via SLAM quality-eval sweeps producing 20k+ of them on a single KITTI sequence. Check once, outside the per-observation lambda, whether a VizInterface is actually running; if not, log a single throttled warning and skip enqueueing entirely instead of relying on every launch file getting its own MOLA_WITH_GUI gate right.
  • Merge pull request #187 from MOLAorg/feat/incremental-point-cloud-kdtree-bake Bake IncrementalPointCloud's k-d tree index (mm-ipc-bake-kdtree)
  • changelog
  • fix: mola_kernel listed mrpt::gui as dependency but could be removed
  • Merge pull request #185 from MOLAorg/chore/remove-keyframe-map-capable Remove the KeyframeMapCapable interface
  • chore: remove the KeyframeMapCapable interface This mixin was introduced to expose per-KF pose plumbing to mola_lidar_odometry's trajectory-rebake experiment, which corrected accumulated tilt by re-integrating the keyframe chain. That experiment is being removed: it was never wired in, and rotating map keyframes without transforming the trajectory consistently leaks vertical position. The interface had exactly one implementation and no callers, so it

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_kernel at Robotics Stack Exchange