# 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

Docs CI ROS CI Check clang-format License

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) | [![Build Status](https://build.ros2.org/job/Hdev__mola__ubuntu_jammy_amd64/badge/icon)](https://build.ros2.org/job/Hdev__mola__ubuntu_jammy_amd64/) | [![Version](https://img.shields.io/ros/v/humble/mola)](https://index.ros.org/?search_packages=true&pkgs=mola) | | ROS 2 Jazzy (u24.04) | [![Build Status](https://build.ros2.org/job/Jdev__mola__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Jdev__mola__ubuntu_noble_amd64/) | [![Version](https://img.shields.io/ros/v/jazzy/mola)](https://index.ros.org/?search_packages=true&pkgs=mola) | | ROS 2 Kilted (u24.04) | [![Build Status](https://build.ros2.org/job/Kdev__mola__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Kdev__mola__ubuntu_noble_amd64/) | [![Version](https://img.shields.io/ros/v/kilted/mola)](https://index.ros.org/?search_packages=true&pkgs=mola) | | ROS 2 Lyrical (u26.04) | [![Build Status](https://build.ros2.org/job/Ldev__mola__ubuntu_resolute_amd64/badge/icon)](https://build.ros2.org/job/Ldev__mola__ubuntu_resolute_amd64/) | [![Version](https://img.shields.io/ros/v/lyrical/mola)](https://index.ros.org/?search_packages=true&pkgs=mola) | | ROS 2 Rolling (u26.04) | [![Build Status](https://build.ros2.org/job/Rdev__mola__ubuntu_resolute_amd64/badge/icon)](https://build.ros2.org/job/Rdev__mola__ubuntu_resolute_amd64/) | [![Version](https://img.shields.io/ros/v/rolling/mola)](https://index.ros.org/?search_packages=true&pkgs=mola) | | EOL Distro | Last Release | | --- | --- | ROS 2 Iron (u22.04) | [![Version](https://img.shields.io/ros/v/iron/mola)](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: ![Peek 2025-10-10 10-29](https://github.com/user-attachments/assets/f3a83a42-a9d7-4007-b0a0-a87c13893c0e) Lidar-Odometry (LO) demo with GrandTour legged dataset: mola-lio-legged-cons Lidar-Odometry (LO) demo with KITTI: ![kitti_demo_06](https://github.com/MOLAorg/mola/assets/5497818/76cf07e2-ab20-41a3-abc6-df5c5ba74b97) ## ROSCon Talk introducing MOLA Video ([Slides](https://docs.google.com/presentation/d/1Zg1saZCxlE49jZ4SxPBLaRh7WUYGmfC0fiKUunJg-dA/edit?usp=drivesdk)): [![MOLA ROSCon talk](https://img.youtube.com/vi/FkDnbfVyN2M/0.jpg)](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 | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola__ubuntu_resolute_arm64__binary/) | | mola_bridge_ros2 | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_bridge_ros2__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_bridge_ros2__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_bridge_ros2__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_bridge_ros2__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_bridge_ros2__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_bridge_ros2__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_bridge_ros2__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_bridge_ros2__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_bridge_ros2__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_bridge_ros2__ubuntu_resolute_arm64__binary/) | | mola_demos | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_demos__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_demos__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_demos__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_demos__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_demos__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_demos__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_demos__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_demos__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_demos__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_demos__ubuntu_resolute_arm64__binary/) | | mola_input_lidar_bin_dataset | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_input_lidar_bin_dataset__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_input_lidar_bin_dataset__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_lidar_bin_dataset__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_lidar_bin_dataset__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_input_lidar_bin_dataset__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_input_lidar_bin_dataset__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_lidar_bin_dataset__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_lidar_bin_dataset__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_input_lidar_bin_dataset__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_lidar_bin_dataset__ubuntu_resolute_arm64__binary/) | | mola_input_rawlog | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_input_rawlog__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_input_rawlog__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rawlog__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rawlog__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_input_rawlog__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_input_rawlog__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rawlog__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rawlog__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_input_rawlog__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rawlog__ubuntu_resolute_arm64__binary/) | | mola_input_rosbag2 | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_input_rosbag2__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_input_rosbag2__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rosbag2__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_rosbag2__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_input_rosbag2__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_input_rosbag2__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rosbag2__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_rosbag2__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_input_rosbag2__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_rosbag2__ubuntu_resolute_arm64__binary/) | | mola_input_video | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_input_video__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_input_video__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_video__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_input_video__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_input_video__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_input_video__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_video__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_input_video__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_input_video__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_input_video__ubuntu_resolute_arm64__binary/) | | mola_kernel | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_kernel__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_kernel__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_kernel__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_kernel__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_kernel__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_kernel__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_kernel__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_kernel__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_kernel__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_kernel__ubuntu_resolute_arm64__binary/) | | mola_launcher | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_launcher__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_launcher__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_launcher__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_launcher__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_launcher__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_launcher__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_launcher__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_launcher__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_launcher__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_launcher__ubuntu_resolute_arm64__binary/) | | mola_metric_maps | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_metric_maps__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_metric_maps__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_metric_maps__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_metric_maps__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_metric_maps__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_metric_maps__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_metric_maps__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_metric_maps__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_metric_maps__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_metric_maps__ubuntu_resolute_arm64__binary/) | | mola_msgs | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_msgs__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_msgs__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_msgs__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_msgs__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_msgs__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_msgs__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_msgs__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_msgs__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_msgs__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_msgs__ubuntu_resolute_arm64__binary/) | | mola_pose_list | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_pose_list__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_pose_list__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_pose_list__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_pose_list__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_pose_list__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_pose_list__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_pose_list__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_pose_list__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_pose_list__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_pose_list__ubuntu_resolute_arm64__binary/) | | mola_relocalization | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_relocalization__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_relocalization__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_relocalization__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_relocalization__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_relocalization__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_relocalization__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_relocalization__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_relocalization__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_relocalization__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_relocalization__ubuntu_resolute_arm64__binary/) | | mola_traj_tools | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_traj_tools__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_traj_tools__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_traj_tools__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_traj_tools__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_traj_tools__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_traj_tools__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_traj_tools__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_traj_tools__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_traj_tools__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_traj_tools__ubuntu_resolute_arm64__binary/) | | mola_viz | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_viz__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_viz__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_viz__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_viz__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_viz__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_viz__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_viz__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_viz__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_viz__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_viz__ubuntu_resolute_arm64__binary/) | | mola_yaml | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mola_yaml__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mola_yaml__ubuntu_jammy_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_yaml__ubuntu_jammy_arm64__binary/badge/icon)](https://build.ros2.org/job/Hbin_ujv8_uJv8__mola_yaml__ubuntu_jammy_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mola_yaml__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mola_yaml__ubuntu_noble_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_yaml__ubuntu_noble_arm64__binary/badge/icon)](https://build.ros2.org/job/Jbin_unv8_uNv8__mola_yaml__ubuntu_noble_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Lbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Lbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_yaml__ubuntu_resolute_arm64__binary/badge/icon)](https://build.ros2.org/job/Lbin_armv8_uRv8__mola_yaml__ubuntu_resolute_arm64__binary/) | [![Build Status](https://build.ros2.org/job/Rbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uR64__mola_yaml__ubuntu_resolute_amd64__binary/)
[![Build Status](https://build.ros2.org/job/Rbin_unv8_uRv8__mola_yaml__ubuntu_resolute_arm64__binary/badge/icon)](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 Star History Chart