Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

MOLA

模組化的 C++/ROS 2 框架,用於光達里程計、SLAM 與定位

授權條款

  • 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)里程計、光達-慣性里程計(LIO)與 SLAM 流程。它的模組化架構讓研究人員與工程師能替換元件,從點雲濾波器到閉環偵測器都可以,而不必重寫整個流程。MOLA 支援多種運作模式,包括建圖、僅定位與完整 SLAM,並具備原生的地理參考功能,適合真實世界部署。

MOLA 是一套模組化的定位與建圖系統,以可設定、由 YAML 定義的流程為核心。MOLA 不提供單一的整體式 SLAM 解決方案,而是讓你以可互換的模組組合流程:光達(LiDAR)里程計引擎、狀態估測器、點雲濾波器、閉環偵測器與地圖表示。這套框架包含用於 3D 光達處理的 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),也能獨立運作
  • 支援光達里程計、光達-慣性里程計、完整 SLAM 與僅定位模式
  • 內建地理參考功能,可對應真實世界的座標系
  • 發表於 IJRR 2025,並附有與最先進方法比較的完整評測

適用對象

  • 從事 SLAM 與定位的機器人研究人員
  • 部署以光達(LiDAR)為基礎之導航的野外機器人工程師
  • 需要可設定里程計流程的自動駕駛車輛開發者
  • 使用移動式光達平台的測量與測繪專業人員

限制

  • 專注於光達(LiDAR):不原生支援視覺 SLAM(僅用相機的流程)
  • C++ 程式碼庫需要熟悉 CMake/colcon 建置系統
  • 文件假設讀者具備 ROS 2 知識
  • GPL-3.0/BSD-3-Clause 混合授權,可能使 GPL 模組的商業使用變得複雜

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。