mola_sm_loop_closure
Simplemap loop-closure postprocessing library and CLI tool
README
Distro |
Build dev |
Build releases |
Stable version |
|---|---|---|---|
ROS 2 Humble (u22.04) |
|||
ROS 2 Jazzy @ u24.04 |
|||
ROS 2 Kilted @ u24.04 |
|||
ROS 2 Rolling (u24.04) |
mola_sm_loop_closure
Offline loop-closure engine for MOLA CSimpleMap files. Given an input
simplemap produced by any MOLA odometry front-end, the package re-optimises
all keyframe poses by detecting and closing loops, then writes the corrected
simplemap back to disk.
Two algorithms
Algorithm |
Class |
Best for |
|---|---|---|
SimplemapLoopClosure |
|
Long maps with noticeable drift; groups keyframes into submaps and runs heavy point-cloud ICP between submap pairs |
FrameToFrameLoopClosure |
|
GNSS-augmented datasets or quick re-optimisation; runs frame-to-frame ICP with a GNC graph optimizer |
CLI usage
# SimplemapLoopClosure (default algorithm):
mola-sm-lc-cli -i in.simplemap -o out.simplemap \
-p pipelines/loop-closure-lidar3d-gicp.yaml
# FrameToFrameLoopClosure:
mola-sm-lc-cli -i in.simplemap -o out.simplemap \
-a mola::FrameToFrameLoopClosure \
-p pipelines/loop-closure-f2f-lidar3d-gicp.yaml
Available pipelines
YAML file |
Sensor type |
Algorithm |
|---|---|---|
|
3-D LiDAR (GICP) |
SimplemapLoopClosure |
|
3-D LiDAR (point-to-point ICP) |
SimplemapLoopClosure |
|
2-D LiDAR |
SimplemapLoopClosure |
|
3-D LiDAR (GICP) |
FrameToFrameLoopClosure |
Key YAML knobs
SimplemapLoopClosure
submap_max_absolute_length/submap_min_absolute_length— controls submap granularity.assume_planar_world: trueenables annealed soft planar constraints (z, roll, pitch).planar_world_initial_sigma_z,planar_world_initial_sigma_ang,planar_world_annealing_rounds— tune the annealing schedule.planar_world_hard_flatten: truerestores the old hard-flattening behaviour.
use_gnss: true/gnss_add_horizontality: true— GNSS-assisted global alignment.
FrameToFrameLoopClosure
lc_candidate_strategy—DISTANCE_STRATIFIED(default),PROXIMITY_ONLY, orMULTI_OBJECTIVE.assume_planar_world: true— planar-world annealing.use_gnss: true— per-keyframe GNSS factors (FactorGnssEnu).
See the online tutorial for a step-by-step example.
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).