Cartographer

cartographer

AI视觉 🧩 软硬件结合 已发布
cartographer-project 7856 Stars Apache-2.0 BOM 完整度: 3/5 教程完整度: 0/5

项目简介

Cartographer提供2D和3D实时SLAM,支持多平台。


Cartographer 是由 Google 开发并开源的一个实时同步定位与建图(SLAM)系统,能够在 2D 和 3D 环境下,跨多种平台和传感器配置运行。其核心功能是帮助机器人或移动设备在未知环境中实时构建地图,同时确定自身在地图中的位置,解决了传统定位技术在无 GPS 信号或环境动态变化时失效的问题。Cartographer 支持激光雷达、IMU、里程计等多种传感器输入,通过高效的图优化算法和闭环检测机制,能够生成高精度的栅格地图和轨迹数据。技术栈方面,它主要基于 C++ 实现,依赖 Ceres Solver 进行非线性优化,并使用 Protobuf 进行数据序列化,具备良好的跨平台兼容性。该项目适用于室内外机器人导航、自动驾驶、无人机巡检、增强现实(AR)等需要高精度实时定位与建图的场景。值得注意的是,Cartographer 原仓库目前已不再积极维护,仅偶尔合并关键修复,但 ROS 社区维护了其分支版本,并提供了与 ROS 1/ROS 2 集成的包装库,用户可通过 ROS 生态继续使用。对于希望快速上手的开发者,官方提供了详细的 Read the Docs 文档和示例,支持通过创建 Issue 进行技术交流。尽管维护状态有所变化,Cartographer 作为 SLAM 领域的经典开源实现,其算法设计和工程架构仍具有重要的参考价值。

标签

项目特点

**实时 SLAM**:支持 2D 和 3D 空间的实时同步定位与建图。
**多平台支持**:可在多种平台和传感器配置上运行。
**传感器融合**:能够融合激光雷达、IMU、里程计等多种传感器数据。
**高精度与鲁棒性**:在复杂环境中也能提供稳定的定位和建图结果。
**ROS 集成**:为 ROS 用户提供了专门的 fork 和 wrapper 库。
**开源**:基于 Apache 2.0 许可证开源。

技术规格

核心功能
传感器支持
平台支持
编程语言
许可证
维护状态

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
激光雷达 (LiDAR) 1 用于环境感知
IMU (惯性测量单元) 1 用于姿态和加速度测量
里程计 (Odometry) 1 可选,用于辅助定位
高性能计算机 (如 Jetson, x86 PC) 1 运行 Cartographer 算法

所需工具

传感器模块
树莓派/开发板 必需

能力画像

⚪ 记忆与知识检索: 2/5
🔵 逻辑推演: 5/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 1/5
🔵 数理与计算: 5/5
⚪ 动手与操作: 1/5
⚪ 狂热与坚持: 4/5
⚪ 创造与创新: 4/5

所需技能

🔧 **动手能力**:需要能够搭建和配置机器人平台,连接传感器(激光雷达、IMU等)并确保其正常工作。 💻 **编程能力**:需要熟练掌握 C++,理解 CMake 构建系统,并能阅读和修改 Cartographer 的源码。了解 ROS 生态系统是加分项。 ⚡ **电子电路**:需要了解传感器(如激光雷达、IMU)的接口(如 UART、I2C、USB)和基本电路连接知识。

适用场景

**机器人导航**:为移动机器人提供实时定位和地图构建,使其能在未知环境中自主导航。
**自动驾驶**:用于无人车、AGV 等车辆的定位和环境感知。
**测绘与建模**:用于室内或室外环境的 2D/3D 地图构建和三维建模。
**学术研究**:作为 SLAM 算法的研究和教学平台,深入理解多传感器融合和状态估计。