MOLA
用于 LiDAR 里程计、SLAM 和定位的模块化 C++/ROS 2 框架
许可证
- core: GPL 3.0
- some packages: BSD 3-Clause
混合授权:核心模块采用 GPL-3.0,部分软件包采用 BSD-3-Clause。各软件包的许可条款见其各自的 package.xml 文件。
概述
MOLA(Modular Optimization framework for Localization and mApping)是一个现代化的 C++ 和 ROS 2 框架,用于构建可配置的 LiDAR 里程计、LiDAR 惯性里程计(LIO)和 SLAM 管线。其模块化架构允许研究人员和工程师在不重写整个管线的情况下替换各个组件——从点云滤波器到回环检测器。MOLA 支持多种运行模式,包括建图、纯定位和完整 SLAM,并具备原生地理参考能力,适用于实际部署场景。
MOLA 是一个基于可配置 YAML 定义管线的模块化定位与建图系统。MOLA 不提供单一的整体式 SLAM 解决方案,而是允许你从可互换的模块中组合管线:LiDAR 里程计引擎、状态估计器、点云滤波器、回环检测器和地图表示。该框架包含用于 3D LiDAR 处理的 mola_lidar_odometry、用于点云配准和滤波的 mp2p_icp,以及用于传感器融合的 mola_state_estimation。它原生集成 ROS 2(Humble、Jazzy、Rolling),也可独立运行。已展示的应用场景包括汽车 SLAM(KITTI)、森林资源清查、室内背包建图、无人机航空测绘和温室文档记录。
为何重要
大多数 SLAM 系统是紧耦合的——更改一个组件意味着要重新设计整个架构。MOLA 通过真正的模块化设计打破了这一模式,每个组件(里程计、ICP、回环检测、地图格式)都可以通过 YAML 文件独立配置或替换。这使其在研究(在真实管线中快速测试新算法)和生产(替换组件以匹配特定传感器配置)中都非常实用。该框架发表于《The International Journal of Robotics Research》(2025年),代表了一种成熟的、经过学术验证的 SLAM 问题解决方案。
解决的问题
现有的 SLAM 框架通常是整体式的——研究人员如果想测试新的回环检测算法或点云滤波器,就必须分叉整个代码库并在紧耦合的内部结构中进行修改。MOLA 在管线各阶段之间提供了清晰的接口,使各个组件可以独立开发、测试和替换。
要点
- 模块化 YAML 配置管线——无需修改代码即可替换 LiDAR 里程计、ICP、回环检测和地图组件
- 原生支持 ROS 2(Humble、Jazzy、Rolling)并可独立运行
- 支持 LiDAR 里程计、LiDAR 惯性里程计、完整 SLAM 和纯定位模式
- 内置地理参考功能,适配真实世界坐标系
- 发表于 IJRR 2025,包含与当前最先进方法的全面基准对比
适用人群
- 从事 SLAM 和定位研究的机器人学研究人员
- 部署基于 LiDAR 导航系统的野外机器人工程师
- 需要可配置里程计管线的自动驾驶开发者
- 使用移动 LiDAR 平台的测量与制图专业人员
局限
- 专注于 LiDAR——不支持原生视觉 SLAM(纯相机管线)
- C++ 代码库需要熟悉 CMake/colcon 构建系统
- 文档假定用户具备 ROS 2 知识
- GPL-3.0/BSD-3-Clause 混合许可证可能使 GPL 模块的商业使用变得复杂