mrpt

MRPTBSD-3-Clause活跃维护

一套面向移动机器人和自动驾驶的 C++ 工具库,提供 SLAM、计算机视觉、地图构建、粒子滤波和运动估计等模块,省去从零搭建底层算法。

:zap: The Mobile Robot Programming Toolkit (MRPT)

3.6.2发布于 2026-11-06 23:37 UTC2,175star +1 / 7 天662fork同步于 2026-11-10 17:47 UTC

怎么上手

由 README 提炼,执行前请确认
pip install mrpt3
硬件要求按 README 说明

README 未说明具体硬件要求;Python wheel 支持 Linux x86_64 与 aarch64,另提供 Windows 安装包

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

移动机器人 C++ 开发框架,提供 SLAM、几何、概率、地图与可视化等模块化组件

一套面向移动机器人和自动驾驶的 C++ 工具库,提供 SLAM、计算机视觉、地图构建、粒子滤波和运动估计等模块,省去从零搭建底层算法。

核心能力

  • 提供 MonteCarlo 定位、RBPF 与位姿图优化等 SLAM 算法
  • 封装 SE(2)/SE(3) 李群与刚体变换、点云几何运算
  • 内置卡尔曼滤波、粒子滤波及位姿与地图上的概率分布
  • 支持占据栅格、点云、路标与体素等多类地图表示
  • 通过 pybind11 提供覆盖主要模块的 Python 绑定

容易踩的坑

从源码构建需加 --recursive 克隆子模块,并用 rosdep 安装依赖后再 colcon build;MRPT 3.0 包名由 mrpt- 改为 mrpt_,从 2.x 迁移需按移植指南修改;ROS 1 的 mrpt2 包已标记为弃用

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本3.6.2
  1. 3.6.2Release of v3.6.2最新正式版2026-11-06 · 2026-11-06 23:37 UTC

    Release 3.6.2

    mrpt_bayes

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_common

    • Python wheel (pip install mrpt3), with a C++ SDK (#1489 <https://github.com/MRPT/mrpt/issues/1489>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_containers

    • yaml::printAsYAML(): emit empty sequences and maps as [] and {} (#1499 <https://github.com/MRPT/mrpt/issues/1499>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_core

    • ASSERT_*_ macros: keep operands that refer into a temporary alive during the check (#1497 <https://github.com/MRPT/mrpt/issues/1497>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_graphs

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_graphslam

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_gui

    • Python wheel: nanogui 3D windows from Python, complete C++ SDK, NumPy arrays as MRPT matrices (#1496 <https://github.com/MRPT/mrpt/issues/1496>_)
    • Fix builds using the embedded assimp, octomap and GLFW (#1488 <https://github.com/MRPT/mrpt/issues/1488>_)
    • mrpt_gui: remove unused GLU includes
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_kinematics

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_maps

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Fix builds using the embedded assimp, octomap and GLFW (#1488 <https://github.com/MRPT/mrpt/issues/1488>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_math

    • Python wheel: nanogui 3D windows from Python, complete C++ SDK, NumPy arrays as MRPT matrices (#1496 <https://github.com/MRPT/mrpt/issues/1496>_)
    • inverse_LLt() throws for matrices that are not positive-definite; pseudo-inverse for quaternion information PDFs (#1494 <https://github.com/MRPT/mrpt/issues/1494>_)
    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Fix to_gtsam_se3_cov6() covariance conversion; add its exact inverse to_mrpt_se3_pdf() (#1490 <https://github.com/MRPT/mrpt/issues/1490>_)
    • Text matrix and TUM loaders: indented comments, blank lines, non-finite rows (#1486 <https://github.com/MRPT/mrpt/issues/1486>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_nav

    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_obs

    • CObservationImage: read 4-parameter distortion from legacy files (#1501 <https://github.com/MRPT/mrpt/issues/1501>_)
    • Math review: fixes and tests for transformations, probability distributions and their users (#1492 <https://github.com/MRPT/mrpt/issues/1492>_)
    • Fix builds using the embedded assimp, octomap and GLFW (#1488 <https://github.com/MRPT/mrpt/issues/1488>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_poses

    • CPose3DQuatPDFGaussianInf::evaluatePDF(): density of degenerate Gaussians (#1500 <https://github.com/MRPT/mrpt/issues/1500>_)
    • Python wheel: nanogui 3D windows from Python, complete C++ SDK, NumPy arrays as MRPT matrices (#1496 <https://github.com/MRPT/mrpt/issues/1496>_)
    • inverse_LLt() throws for matrices that are not positive-definite; pseudo-inverse for quaternion information PDFs (#1494 <https://github.com/MRPT/mrpt/issues/1494>_)
    • Math review: fixes and tes
  2. 3.6.1Release of v3.6.12026-11-01 · 2026-11-01 15:54 UTC
    查看更新说明

    Release 3.6.1

    mrpt_common

    • mrpt_add_test(): build the test target from the top of the build tree (fixes Ninja subdirectory tests)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_hwdrivers

    • Re-enable libdc1394 (FireWire) cameras, ported to the 3.x CImage API (#1480 <https://github.com/MRPT/mrpt/issues/1480>_)
    • dc1394 stereo: optional raw Bayer capture (bayer_decoding), Bayer pattern read from the camera, per-image demosaicing
    • dc1394: frames stamped at capture time, no buffer leaks on errors, Format7 frame rates, no red/blue swap for monocular frames
    • CCameraSensor::initialize() throws if a Bumblebee can not be opened, so callers can retry
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_imgui

    • Grow into a Dear ImGui application framework: CImGuiAppShell, CImGuiBackgroundScene, CImGuiTimeline, CImGuiPlotPanel, CImGuiImageView, CImGuiLogConsole, CImGuiFileDialog, AsyncTask
    • New CImGuiAboutDialog, CImGuiMessageQueue, status bar and frame grab helpers
    • CImGuiSceneView: optional 6DOF camera pose override (#1482 <https://github.com/MRPT/mrpt/issues/1482>_)
    • CImGuiTimeline: step through keys sharing the same time
    • AsyncTask::cancelAndWait(); visible edges for plot bands
    • Message boxes ignore the key press that opened them
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_imgui_vendor

    • Icon font subset: add the icons used by the app framework; generator checks every icon has a glyph
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_libapps_cli

    • rawlog-edit: new --decimate, --lossless-decimate, --compact, --to-observations-only, --to-sensory-frames, --sort-by-timestamp, --regenerate-sf-timestamps
    • New GUI-free rawlog operations API (mrpt/apps_cli/rawlog_ops.h), shared with RawLogViewer
    • rawlog-edit: invalid timestamps are not shifted; malformed numbers are rejected
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_maps

    • obs_to_viz(): clouds without RGB fields are no longer drawn black; rotating scans colored by height
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_obs

    • Python: stereo images, rotating and Velodyne scans as NumPy arrays, all NMEA GPS messages (#1481 <https://github.com/MRPT/mrpt/issues/1481>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_opengl

    • Render lines wider than 1 pixel again, with a new WIREFRAME_THICK shader
    • Pinhole cameras work with any viewport size; orthogonal views no longer clip objects above the eye (#1485 <https://github.com/MRPT/mrpt/issues/1485>_)
    • Orbit camera roll is now applied; exponential zoom (#1484 <https://github.com/MRPT/mrpt/issues/1484>_)
    • Lighting of orthogonal cameras uses the constant view direction
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_system

    • COutputLogger: callback identifiers for logDeregisterCallback(), atomic callback verbosity level, copy-on-write callback list (#1477 <https://github.com/MRPT/mrpt/issues/1477>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_viz

    • New CCamera::PinholeForViewport() and clearPinholeModel(); Viewport::get3DRayForPixelCoord() uses the pinhole model (#1485 <https://github.com/MRPT/mrpt/issues/1485>_)
    • Orbit camera model shared by rendering and picking (CCamera::ComputeOrbitEyeAndUp()), roll is applied (#1484 <https://github.com/MRPT/mrpt/issues/1484>_)
    • COrbitCameraController: exponential zoom, validated zoom limits
    • Fix exception computing the bounding box of scenes with empty line sets or polyhedrons (#1483 <https://github.com/MRPT/mrpt/issues/1483>_)
    • CornerXYZSimple()/CornerXYSimple() made of lines again
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_apps_gui

    • RawLogViewer: redesigned on Dear ImGui: dockable panels, timeline, per-sensor panels, background cancellable operations (#1479 <https://github.com/MRPT/mrpt/issues/1479>_)
    • RawLogViewer: 3D view shows all sensors near the current time; robot drawn as an XYZ corner
    • SceneViewer3D, navlog-viewer, 2d-slam-demo, holonomic-navigator-demo, GridmapNavSimul: ported to Dear ImGui (no wxWidgets/nano
  3. 3.6.0Release of v3.6.02026-10-28 · 2026-10-28 09:10 UTC
    查看更新说明

    Release 3.6.0

    mrpt_common

    • fix cmake warning
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_comms

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • CGPSInterface: report each serial port open error once (#1471 <https://github.com/MRPT/mrpt/issues/1471>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_config

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_gui

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Update nanogui submodule
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_hwdrivers

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • CGPSInterface: report each serial port open error once (#1471 <https://github.com/MRPT/mrpt/issues/1471>_)
    • Fix decoding of Novatel logs without a dedicated parser; serialize generic frame headers as little-endian (#1470 <https://github.com/MRPT/mrpt/issues/1470>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_img

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_io

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_libapps_gui

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_maps

    • Point clouds: optionally hide back-facing points (#1476 <https://github.com/MRPT/mrpt/issues/1476>_)
    • KDTreeCapable: do not lock to mark an already outdated index (#1475 <https://github.com/MRPT/mrpt/issues/1475>_)
    • Faster and smaller point map serialization with optional Cloudini (#1474 <https://github.com/MRPT/mrpt/issues/1474>_)
    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • CVoxelMap: fix the strength of misses (prob_miss convention) and saturate at clamp_min/clamp_max (#1472 <https://github.com/MRPT/mrpt/issues/1472>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_math

    • KDTreeCapable: do not lock to mark an already outdated index (#1475 <https://github.com/MRPT/mrpt/issues/1475>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_obs

    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Fix decoding of Novatel logs without a dedicated parser; serialize generic frame headers as little-endian (#1470 <https://github.com/MRPT/mrpt/issues/1470>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_opengl

    • Point clouds: optionally hide back-facing points (#1476 <https://github.com/MRPT/mrpt/issues/1476>_)
    • OpenGL: trilinear and anisotropic filtering for mipmapped textures (#1469 <https://github.com/MRPT/mrpt/issues/1469>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_viz

    • Point clouds: optionally hide back-facing points (#1476 <https://github.com/MRPT/mrpt/issues/1476>_)
    • Declare linked system libraries as package.xml to fix RHEL downstream link failures (#1473 <https://github.com/MRPT/mrpt/issues/1473>_)
    • Contributors: Jose Luis Blanco-Claraco
  4. 3.5.3Release of v3.5.32026-10-16 · 2026-10-16 08:10 UTC
    查看更新说明

    Release 3.5.3

    mrpt_gui

    • Support Eigen 5.0 version and include dir detection (#1467 <https://github.com/MRPT/mrpt/issues/1467>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_maps

    • Add CMetricMap::asPointsMapView() hook used by asPointsMap() (#1468 <https://github.com/MRPT/mrpt/issues/1468>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_math

    • Support Eigen 5.0 version and include dir detection (#1467 <https://github.com/MRPT/mrpt/issues/1467>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_obs

    • Add CMetricMap::asPointsMapView() hook used by asPointsMap() (#1468 <https://github.com/MRPT/mrpt/issues/1468>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_apps_gui

    • Support Eigen 5.0 version and include dir detection (#1467 <https://github.com/MRPT/mrpt/issues/1467>_)
    • Contributors: Jose Luis Blanco-Claraco
  5. 3.5.2Release of v3.5.22026-10-11 · 2026-10-11 07:15 UTC
    查看更新说明

    Release 3.5.2

    mrpt_containers

    • yaml: emit a key's right comment after the value, not before its ':' (#1462 <https://github.com/MRPT/mrpt/issues/1462>_)
    • Contributors: Jose Luis Blanco-Claraco

    mrpt_opengl

    • opengl: share GPU buffers of repeated objects and draw them instanced (#1466 <https://github.com/MRPT/mrpt/issues/1466>_)
    • CFBORender: GPU lens distortion and pixel noise for RGB images (#1465 <https://github.com/MRPT/mrpt/issues/1465>_)
    • CFBORender: read back RGB images with 1-byte row alignment (#1463 <https://github.com/MRPT/mrpt/issues/1463>_)
    • Contributors: Jose Luis Blanco Claraco, Jose Luis Blanco-Claraco

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Mobile Robot Programming Toolkit

    Two decades of open-source robotics — since 2005

    Linux build macOS build Windows build codecov clang-format

    Latest release Windows installer DOI License

    Documentation · Tutorials · API Reference · Examples · Applications


    What is MRPT?

    MRPT is a well-established C++ framework for mobile robotics, originally developed in 2005 at the University of Málaga and actively maintained to this day. Over the years, contributions from the community have evolved it into a robust, modular toolkit widely used in both academic research and industry.

    MRPT 3.0 is a major refactoring that modernises the build system (colcon-based modular packages), cleans up the public API, and aligns with modern C++17 standards while preserving the data structures and algorithms at the core of MRPT.

    Key capabilities

    AreaWhat's included
    SLAMMonteCarlo Localization, RBPF, pose-graph optimization
    GeometrySE(2)/SE(3) Lie groups, rigid body transforms, point clouds
    ProbabilisticKalman filters, particle filters, PDFs over poses & maps
    MapsOccupancy grids, point maps, landmark maps, voxel maps
    SensorsLiDAR, stereo/RGB-D cameras, IMU, GPS, Velodyne, …
    Visualization3-D scene graph (mrpt::viz), GUI windows, plot widgets
    NavigationReactive nav, path planning, PTG-based obstacle avoidance
    Pythonpybind11 bindings for all major modules

    Getting started

    Install for Python (pip)

    pip install mrpt3
    
    from mrpt.poses import CPose3D
    print(CPose3D(1.0, 2.0, 0.0, 0.5, 0.0, 0.0) + CPose3D(0.5, 0.0, 0.0, 0.0, 0.0, 0.0))
    

    Linux (x86_64, aarch64), Python 3.11 to 3.14. The wheel also contains the C++ headers, libraries and CMake files. See the Python examples.

    Install from ROS repositories

    # ROS 1 (deprecated)
    sudo apt install ros-$ROS_DISTRO-mrpt2
    
    # ROS 2
    sudo apt install ros-$ROS_DISTRO-mrpt-*
    

    ROS2 build status for mrpt3

    DistroBuild devRelease
    ROS 2 Humble (u22.04)Build StatusVersion
    ROS 2 Jazzy (u24.04)Build StatusVersion
    ROS 2 Kilted (u24.04)Build StatusVersion
    ROS 2 Lyrical (u26.04)Build StatusVersion
    ROS 2 Rolling (u26.04)Build StatusVersion

    Binary package build status per package, distro, OS and architecture:

    PackageROS 2 Humble BinBuildROS 2 Jazzy BinBuildROS 2 Kilted BinBuildROS 2 Lyrical BinBuildROS 2 Rolling BinBuild
    mrpt_coreBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_ioBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_serializationBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_systemBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_rttiBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_containersBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_typemetaBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_randomBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_configBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_dataBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_exprBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_mathBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_posesBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_tfestBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_bayesBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_obsBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_topographyBuild Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build StatusBuild Status Build Status Build Status Build StatusBuild Status Build Status Build Status Build Status
    mrpt_maps[![Build Status](https://build.ros2.org/job/Hbin_uJ64__mrpt_map