MRPT
面向移动机器人、SLAM 与基于传感器导航的全面 C++ 工具包
许可证
BSD-3-Clause
概述
Mobile Robot Programming Toolkit (MRPT) 是一个面向移动机器人的全面 C++ 库集合,提供 SLAM、计算机视觉、运动估计、避障与传感器接口等工具。经过 12 年以上的持续开发,MRPT 提供了粒子滤波、基于图的 SLAM、Kalman 滤波器和导航算法的优化实现,并附带 LiDAR、相机和 GPS 的传感器驱动。它还包含用于数据集可视化、地图构建和实时机器人操作的 GUI 工具。
Mobile Robot Programming Toolkit (MRPT) 是一套综合性的开源 C++ 库,面向移动机器人和计算机视觉的研究者与开发者。它提供 SLAM 算法的现成实现、2D/3D 空间变换、SE(2)/SE(3) 李群运算、位姿与地图上的概率密度函数,以及包括 Kalman 滤波器和粒子滤波器在内的贝叶斯推理工具。
除核心库外,MRPT 还提供独立 GUI 应用程序,用于相机标定、原始传感器日志检查与实时地图可视化。该工具包开箱即支持多种传感器与地图表示,既适合研究原型也适合部署系统。
经过 12 年以上的持续开发,MRPT 通过 Ubuntu/Debian 包、夜间构建 PPA、Windows 安装程序以及 ROS/ROS 2 包发布。它是 MOLA 模块化 SLAM 框架的基础,并在数百篇移动机器人学术论文中被引用。
为何重要
MRPT 是历史最悠久的开源移动机器人库之一,提供从传感器驱动到 SLAM 算法的统一 C++ 框架。12 年以上的持续开发以及对 MOLA 模块化 SLAM 框架的整合,使其成为学术与应用移动机器人领域的基础工具。
解决的问题
移动机器人研究与开发需要一个一致、经过良好测试的库,涵盖底层传感器处理、空间变换、概率推理和完整的 SLAM 流程。MRPT 在单一 BSD 许可的 C++ 框架下提供所有这些能力,并集成 ROS,免去拼接多种独立库的麻烦。
要点
- 提供多种完整的 SLAM 实现,包括粒子滤波和 EKF 方法
- 包含 SE(2)/SE(3) 李群表示、Kalman 滤波器和粒子滤波器,用于贝叶斯状态估计
- 附带相机标定、数据集检查与可视化的 GUI 应用
- 可作为 ROS 1 / ROS 2 包以及 Ubuntu/Debian 系统包获取
- 支撑 MOLA 模块化 SLAM 框架,适用于大规模建图
适用人群
- 需要生产级 SLAM 实现的移动机器人研究者
- 需要传感器融合与定位库的自动驾驶开发者
- 学习概率机器人学与计算机视觉的研究生
- 寻找良好集成的 C++ 机器人原语的 ROS 开发者
局限
- 庞大的单仓库代码库与众多相互依赖的模块可能导致较长构建时间
- 主要面向移动机器人,未针对操作或腿式运动设计
- 文档跨越多年,可能不易找到最新最佳实践
- 存在 Python 绑定,但 C++ 仍是主要且最完整的接口