Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
jazzy

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
kilted

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
lyrical

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
rolling

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

Package symbol

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
iron

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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

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

mola_lidar_odometry package from mola_lidar_odometry repo

mola_lidar_odometry

ROS Distro
humble

Package Summary

Version 3.3.0
License GPLv3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

LIDAR odometry system based on MOLA and MRPT components

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

No additional authors.

CI Build colcon CI clang-format Docs codecov

mola_lidar_odometry

LIDAR odometry component based on the MOLA and MRPT frameworks, compatible with ROS 2.

Contents

This repository provides a C++ library mola_lidar_odometry implementing LIDAR odometry. Sensor input is provided via MOLA components, and ROS 2 example launch files are provided in ros2-launchs.

A CLI interface mola-lidar-odometry-cli is also provided for running on offline datasets.

Build and install

Refer to: https://docs.mola-slam.org/latest/#installing

Lidar Inertial Odometry (LIO) demo with Oxford Spires: Peek 2025-08-31 11-36

Lidar Odometry (LO) demo with KITTI: mola-slam-kitti-demo

Documentation and tutorials

See: https://docs.mola-slam.org/

ROS build farm status

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version

Binary package build status per ROS 2 distro:

Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
mola_lidar_odometry Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.
EOL Distro Last release
ROS2 Iron (u22.04) Version

Citation

The latest publication on MOLA is (ArXiV).

@article{blanco2025mola_lo,
    author = {Blanco-Claraco, Jose Luis},
    title ={{A flexible framework for accurate LiDAR odometry, map manipulation, and localization}},
    journal = {The International Journal of Robotics Research},
    volume = {44},
    number = {9},
    pages = {1553--1599},
    year = {2025},
    doi = {10.1177/02783649251316881},
    URL = { https://doi.org/10.1177/02783649251316881},
    eprint = {2407.20465},
}

License

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

This package is released under the GNU GPL v3 license as open source, with the main intention of being useful for research and evaluation purposes. Commercial licenses available upon request.

Contributions require acceptance of the Contributor License Agreement (CLA).

CHANGELOG

Changelog for package mola_lidar_odometry

3.3.0 (2026-09-28)

  • viz: expose grid spacing as env var
  • Ouster Rev8 launcher: accept low-overlap ICP, predict motion with the IMU (#190)
  • Ouster Rev8 launcher: incremental local map and per-point RGB coloring by default
  • add rosbag1 as build dep for binaries to have this functionality
  • ci: add GitHub release workflow on version tags
  • Recover the observation radius from the raw scan when every filtered layer is empty
  • Add mola-lo-gui-ouster-rev8, accept an .osf argument in the Ouster wrappers
  • Feed IMU samples to the generators through one shared output map
  • Test that every pipeline resolves; document pipeline blocks
  • Pipelines: rebuild the single-filter GICP variant as an overlay
  • Pipelines: assemble the 3D pipelines from shared blocks
  • deskewTwistFromOdometry: use the covered interval when odometry starts mid-sweep
  • Launchers: pin the first pose when selecting the smoother
  • De-skew with an independent odometry's velocity (deskew_odometry_sensor_label)
  • feat: expose a weight on the pose prior handed to the ICP solver
  • feat: a refused registration contributes the prediction, not a gap
  • feat: optional Mahalanobis gate on the ICP registration result
  • offline CLI: do not publish the local map by default
  • GrandTour pipeline: expose the cov2cov incidence and per-point range weighting
  • pipelines: use $import/$define to collapse thin variants, drop stale experiments
  • GrandTour: select the smoother and a scene-adaptive point budget
  • feat: add --output-tum-path-smoothed to the offline CLI
  • Default pipeline: enable the local map's covariance cache admission gate
  • IncrementalPointCloud: own default for the eviction cube, 1.0x radius
  • Publisher: reach the points-map view via mrpt::<maps::asPointsMap>()
  • remove obsolete rgbd pipeline (refer to mola_vision)
  • gicp pipeline: new default max icp iters 25->16
  • store IMU readings in simplemaps for attitude aid in georef (#173)
  • Move the pipelines to the renamed, squared robust-kernel scale
  • Expose the TSDF layer's rendering knobs in the dual-map pipeline
  • GrandTour: add a 'hesai_raw' LiDAR selector for the uncompensated cloud
  • GrandTour: keep the scan point timestamps at their own reference
  • cli: --module, to run a second front-end in the batch tool
  • Add drop_stale_scans: a lossless input queue for offline runs
  • Optional, env-gated log of the local-map insert/skip decision
  • KITTI eval: record that MOLA_INITIAL_VX is coupled to the pipeline, not the dataset
  • KITTI: run the shipped pipeline, which halves absolute trajectory error
  • Stop refusing recordings with more bags than launch-file slots
  • FIX: a manual relocalization request was ignored unless the configured init method was FixedPose
  • Add a pipeline that carries a point map and a TSDF at once
  • cli: expose the fused trajectory, and bridge a module's pose to the odometry
  • P7: port mola_lidar_odometry to MRPT 3.x
  • Fail loudly instead of running with no extrinsics or no lidar topic
  • Keep the odometry vertical reference consistent when the source goes quiet
  • GrandTour: optional second LiDAR, and a TF-bag override
  • Offline CLI: accept several lidar labels, one sensors entry each
  • Allow the verticality reading to come from an odometry source's attitude
  • GrandTour: add a MOLA_GRANDTOUR_LIDAR selector (hesai/livox/velodyne)
  • Raise rosbag1 launch bag-slot cap to 5, honor MOLA_ODOMETRY_OBS_CLASS in GUI YAMLs
  • GrandTour: fuse the legged odometry by default, as SE(3)
  • Offline CLI: allow fusing a 3D odometry source as SE(3)
  • CI: check this repo's docs pages against the full doc set
  • Offline CLI: allow wheel-odometry fusion from a ROS 2 bag
  • docs: fix the inverted visualizer table and the PIPELINE_YAML variable that does not exist
  • GICP pipeline: expose current-pose XYZ corner size via MOLA_LO_CURRENT_POSE_CORNER_SIZE
  • GrandTour: let the GUI preview camera be selected
  • GrandTour: default to the incremental local map
  • KITTI/Oxford Spires: raise the smoother's relative-pose prior floor
  • GrandTour: allow selecting, and default to, the STIM320 IMU when its bags are present
  • README: fix the broken Docs badge link
  • Oxford Spires: keep the accelerometer in the IMU deskew
  • KITTI profile: incremental local map plus the map-side planarity gate
  • Reach mp2p_icp's surface-geometry-class pairing weight from the pipeline
  • Expose the plane-regularization options of the cov-capable map classes
  • Add a Newer College dataset profile
  • Add a GEODE dataset profile
  • Add a Hilti 2022 / Hilti-Oxford dataset profile (renamed from hilti)
  • GrandTour: optional legged odometry input
  • Give the observation layer a 2.0 m covariance neighborhood by

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