# mola
**Repository Path**: light169/mola
## Basic Information
- **Project Name**: mola
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: develop
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-27
- **Last Updated**: 2026-08-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
:robot: MOLA :compass:
Modular Optimization framework for Localization and mApping
A modern, modular C++ and ROS 2 framework for Localization and SLAM.
Configurable pipelines for LiDAR Odometry, LIO, and more.
Why MOLA |
Solutions |
Plans & Pricing |
Documentation
---
| Distro | Build dev | Release |
| --- | --- | --- |
| ROS 2 Humble (u22.04) | [](https://build.ros2.org/job/Hdev__mola__ubuntu_jammy_amd64/) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
| ROS 2 Jazzy (u24.04) | [](https://build.ros2.org/job/Jdev__mola__ubuntu_noble_amd64/) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
| ROS 2 Kilted (u24.04) | [](https://build.ros2.org/job/Kdev__mola__ubuntu_noble_amd64/) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
| ROS 2 Lyrical (u26.04) | [](https://build.ros2.org/job/Ldev__mola__ubuntu_resolute_amd64/) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
| ROS 2 Rolling (u26.04) | [](https://build.ros2.org/job/Rdev__mola__ubuntu_resolute_amd64/) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
| EOL Distro | Last Release |
| --- | ---
| ROS 2 Iron (u22.04) | [](https://index.ros.org/?search_packages=true&pkgs=mola) |
## π€ What is MOLA?
MOLA (Modular Optimization framework for Localization and mApping) is a
modular, extensible, and high-performance framework for robotics
localization and πΊοΈ mapping.
This repository contains the base open-sourced packages for the MOLA project. Other packages exist under the [MOLAorg](https://github.com/MOLAorg/) organization.
Refer to the [official documentation](https://docs.mola-slam.org/latest/) for build instructions, demos, API reference, etc.
## πΊοΈ Features
- π LiDAR Odometry (LO), LiDAR-Inertial Odometry (LIO), geo-referenced maps, sensor fusion
- π§© Fully configurable YAML pipelines - no recompilation needed to change sensors, filters, or map layers
- π― Flexible accuracy: fast real-time navigation or survey-grade (<1 cm) mapping
- π Map-less RTK-quality outdoor georeferencing with low-cost GNSS + LiDAR + IMU
- π οΈ Rich `.mm` metric map ecosystem: viewer, LAS/PLY/TXT export, filtering, georeferencing tools
- π€ ROS 2 ready (Humble, Jazzy, Kilted, Rolling) but also usable from standalone pure C++
## π Demo videos
Lidar-Inertial-Odometry (LIO) demo with Oxford Spires:

Lidar-Odometry (LO) demo with GrandTour legged dataset:
Lidar-Odometry (LO) demo with KITTI:

## ROSCon Talk introducing MOLA
Video ([Slides](https://docs.google.com/presentation/d/1Zg1saZCxlE49jZ4SxPBLaRh7WUYGmfC0fiKUunJg-dA/edit?usp=drivesdk)):
[](https://www.youtube.com/watch?v=FkDnbfVyN2M)
## Individual package build status
Note: Rows within each cell are for ``amd64`` and ``arm64`` architectures.
| Package | ROS 2 Humble
BinBuild | ROS 2 Jazzy
BinBuild | ROS 2 Lyrical
BinBuild | ROS 2 Rolling
BinBuild |
| --- | --- | --- | --- | --- |
| mola | [](https://build.ros2.org/job/Hbin_uJ64__mola__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola__ubuntu_resolute_arm64__binary/) |
| mola_bridge_ros2 | [](https://build.ros2.org/job/Hbin_uJ64__mola_bridge_ros2__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_bridge_ros2__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_bridge_ros2__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_bridge_ros2__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/) |
| mola_demos | [](https://build.ros2.org/job/Hbin_uJ64__mola_demos__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_demos__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_demos__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_demos__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/) |
| mola_input_lidar_bin_dataset | [](https://build.ros2.org/job/Hbin_uJ64__mola_input_lidar_bin_dataset__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_lidar_bin_dataset__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_input_lidar_bin_dataset__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_lidar_bin_dataset__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/) |
| mola_input_rawlog | [](https://build.ros2.org/job/Hbin_uJ64__mola_input_rawlog__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rawlog__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_input_rawlog__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rawlog__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/) |
| mola_input_rosbag2 | [](https://build.ros2.org/job/Hbin_uJ64__mola_input_rosbag2__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rosbag2__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_input_rosbag2__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rosbag2__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/) |
| mola_input_video | [](https://build.ros2.org/job/Hbin_uJ64__mola_input_video__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_video__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_input_video__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_video__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/) |
| mola_kernel | [](https://build.ros2.org/job/Hbin_uJ64__mola_kernel__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_kernel__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_kernel__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_kernel__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/) |
| mola_launcher | [](https://build.ros2.org/job/Hbin_uJ64__mola_launcher__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_launcher__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_launcher__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_launcher__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/) |
| mola_metric_maps | [](https://build.ros2.org/job/Hbin_uJ64__mola_metric_maps__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_metric_maps__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_metric_maps__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_metric_maps__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/) |
| mola_msgs | [](https://build.ros2.org/job/Hbin_uJ64__mola_msgs__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_msgs__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_msgs__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_msgs__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/) |
| mola_pose_list | [](https://build.ros2.org/job/Hbin_uJ64__mola_pose_list__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_pose_list__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_pose_list__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_pose_list__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/) |
| mola_relocalization | [](https://build.ros2.org/job/Hbin_uJ64__mola_relocalization__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_relocalization__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_relocalization__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_relocalization__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/) |
| mola_traj_tools | [](https://build.ros2.org/job/Hbin_uJ64__mola_traj_tools__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_traj_tools__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_traj_tools__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_traj_tools__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/) |
| mola_viz | [](https://build.ros2.org/job/Hbin_uJ64__mola_viz__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_viz__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_viz__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_viz__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/) |
| mola_yaml | [](https://build.ros2.org/job/Hbin_uJ64__mola_yaml__ubuntu_jammy_amd64__binary/)
[](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_yaml__ubuntu_jammy_arm64__binary/) | [](https://build.ros2.org/job/Jbin_uN64__mola_yaml__ubuntu_noble_amd64__binary/)
[](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_yaml__ubuntu_noble_arm64__binary/) | [](https://build.ros2.org/job/Lbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_yaml__ubuntu_resolute_arm64__binary/) | [](https://build.ros2.org/job/Rbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/)
[](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_yaml__ubuntu_resolute_arm64__binary/) |
## Citations
The latest publications on MOLA are ([ArXiV](https://arxiv.org/abs/2407.20465)).
```bibtex
@article{blanco2025mola_lo,
author = {Jose Luis Blanco-Claraco},
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 = {https://doi.org/10.1177/02783649251316881},
}
```
MOLA was initially presented in 2019 in ([PDF](http://www.roboticsproceedings.org/rss15/p43.pdf)):
```bibtex
@INPROCEEDINGS{Blanco-Claraco-RSS-19,
AUTHOR = {Jose Luis Blanco-Claraco},
TITLE = {{A Modular Optimization Framework for Localization and Mapping}},
BOOKTITLE = {Proceedings of Robotics: Science and Systems},
YEAR = {2019},
ADDRESS = {FreiburgimBreisgau, Germany},
MONTH = {June},
DOI = {10.15607/RSS.2019.XV.043}
}
```
## License
MOLA follows an **Open Core** model. Core modules are released under the GNU GPL v3 license, while foundational libraries (MRPT, mp2p_icp) are BSD-3.
**Commercial use:** Companies needing to deploy MOLA in closed-source products can obtain a commercial license ([MOLA Pro](https://docs.mola-slam.org/latest/pricing.html)).
See the [Plans & Pricing](https://docs.mola-slam.org/latest/pricing.html) page for details on Community vs Pro editions.
Contributions require acceptance of the Contributor License Agreement (CLA).
## Star History