MOLA
Modular C++/ROS 2 framework for LiDAR odometry, SLAM, and localization
License
- core: GPL 3.0
- some packages: BSD 3-Clause
Mixed licensing: core modules are GPL-3.0, some packages are BSD-3-Clause. Check individual package.xml files for per-package license terms.
Overview
MOLA (Modular Optimization framework for Localization and mApping) is a modern C++ and ROS 2 framework for building configurable LiDAR odometry, LiDAR-inertial odometry (LIO), and SLAM pipelines. Its modular architecture lets researchers and engineers swap components — from point cloud filters to loop closure detectors — without rewriting the entire pipeline. MOLA supports multiple operation modes including mapping, localization-only, and full SLAM, with native georeferencing capabilities for real-world deployment.
MOLA is a modular system for Localization and Mapping built around configurable YAML-defined pipelines. Rather than providing a single monolithic SLAM solution, MOLA lets you compose pipelines from interchangeable modules: LiDAR odometry engines, state estimators, point cloud filters, loop closure detectors, and map representations. The framework includes mola_lidar_odometry for 3D LiDAR processing, mp2p_icp for point cloud registration and filtering, and mola_state_estimation for sensor fusion. It integrates natively with ROS 2 (Humble, Jazzy, Rolling) and can also run standalone. Demonstrated use cases include automotive SLAM (KITTI), forest inventory, indoor backpack mapping, drone-based aerial mapping, and greenhouse documentation.
Why it matters
Most SLAM systems are tightly coupled — changing one component means rearchitecting the whole thing. MOLA breaks this pattern with a truly modular design where each component (odometry, ICP, loop closure, map format) can be independently configured or replaced via YAML files. This makes it practical for both research (quickly testing new algorithms in a real pipeline) and production (swapping components to match specific sensor setups). Published in The International Journal of Robotics Research (2025), it represents a mature, academically validated approach to the SLAM problem.
Problem it solves
Existing SLAM frameworks are typically monolithic — researchers who want to test a new loop closure algorithm or point cloud filter must fork the entire codebase and hack around tightly coupled internals. MOLA provides clean interfaces between pipeline stages so individual components can be developed, tested, and swapped independently.
Key takeaways
- Modular YAML-configured pipelines — swap LiDAR odometry, ICP, loop closure, and map components without code changes
- Native ROS 2 support (Humble, Jazzy, Rolling) plus standalone operation
- Supports LiDAR odometry, LiDAR-inertial odometry, full SLAM, and localization-only modes
- Built-in georeferencing for real-world coordinate frames
- Published in IJRR 2025 with comprehensive benchmarks against state-of-the-art
Who it is for
- Robotics researchers working on SLAM and localization
- Field robotics engineers deploying LiDAR-based navigation
- Autonomous vehicle developers needing configurable odometry pipelines
- Survey and mapping professionals using mobile LiDAR platforms
Limitations
- Focused on LiDAR — no native visual SLAM support (camera-only pipelines)
- C++ codebase requires familiarity with CMake/colcon build systems
- Documentation assumes ROS 2 knowledge
- Mixed GPL-3.0/BSD-3-Clause licensing may complicate commercial use of GPL modules