Cartographer SLAM:谷歌开源机器人“大脑”,低调驱动自主导航

GitHub June 2026
⭐ 7870
来源:GitHub归档:June 2026
谷歌开源的Cartographer SLAM系统,能在ROS、Windows及嵌入式平台上实现实时、低漂移的2D和3D定位与建图。其基于子图的闭环检测与多传感器融合架构,为自主机器人导航树立了标杆,但高昂的入门门槛限制了其更广泛的普及。

Cartographer并非又一款SLAM库——它是谷歌于2016年开源、并由一个专注的社区持续维护的生产级实时同步定位与建图系统。该项目在GitHub上已累计超过7,870颗星,被广泛应用于从仓储机器人到自主无人机等各类场景。其核心创新在于一个基于图优化的后端,该后端融合了激光扫描仪(LiDAR)、IMU和轮式里程计的数据,生成全局一致且漂移极小的地图。与许多在速度或精度之间二选一的SLAM方案不同,Cartographer通过巧妙的子图(局部地图)方法实现了两者兼得:它从连续的传感器数据中构建局部一致的小型子图,然后通过将新子图与稀疏位姿图进行匹配来执行闭环检测。

技术深度解析

Cartographer的架构堪称在计算效率与建图精度之间取得平衡的典范。其核心是一个基于图的SLAM后端,将机器人的轨迹视为由节点(位姿)和边(约束)构成的图。前端负责传感器数据接收和子图构建,而后端则执行全局优化。

子图构建: 系统通过连续的激光扫描构建子图——即局部、固定尺寸的栅格地图(2D占据栅格或3D概率栅格)。每个子图通过使用基于Ceres的扫描到地图匹配优化器,将新扫描与当前子图进行匹配来创建。此步骤以高频率(10-50 Hz)运行,生成局部一致的子图。关键参数是子图尺寸(例如2D模式下为10米),它决定了局部一致性与全局修正频率之间的权衡。

通过稀疏位姿图实现闭环检测: 当一个新子图构建完成后,Cartographer会尝试通过在一个离散化的搜索空间上进行分支定界(B&B)搜索,将其与所有之前的子图进行匹配。这就是魔法发生之处:B&B算法会尽早剪除不可能的匹配,从而即使在有数千个子图的情况下也能实现实时性能。匹配成功的约束被添加到位姿图中,然后使用谷歌的Ceres Solver进行优化——这是一个非线性最小二乘优化器,用于最小化所有约束的残差平方和。最终结果是全局一致的地图,其漂移通常低于行进距离的1%。

多传感器融合: Cartographer原生支持LiDAR(2D和3D)、IMU(加速度计+陀螺仪)和轮式里程计。IMU提供重力对齐,并减少3D模式下的横滚/俯仰漂移。系统在前端使用扩展卡尔曼滤波器(EKF) 进行传感器融合,但后端优化对所有约束一视同仁,从而能够稳健地处理传感器数据丢失的情况。

基准性能: 在流行的KITTI里程计基准测试中,Cartographer在3D模式下实现了1.2%的平移误差和0.005度/米的旋转误差——与LOAM和LIO-SAM等最先进方法不相上下。在2D模式下,针对MIT Stata Center数据集,它在500米轨迹上实现了低于10厘米的均方根误差(RMSE)。

| 指标 | Cartographer 2D | Cartographer 3D | LOAM (3D) | LIO-SAM (3D) |
|---|---|---|---|---|
| 平移误差 (%) | 0.8 | 1.2 | 1.1 | 0.9 |
| 旋转误差 (deg/m) | 0.003 | 0.005 | 0.006 | 0.004 |
| 最大建图速度 (m²/s) | 100 | 50 | 30 | 40 |
| CPU 使用率 (单核) | 60% | 85% | 90% | 75% |
| 内存 (1 km 地图) | 200 MB | 800 MB | 1.2 GB | 600 MB |

数据要点: Cartographer在2D模式下提供了精度与计算效率的最佳平衡,在3D模式下也具有竞争力。其较低的CPU使用率和内存占用使其成为嵌入式系统的理想选择,而LOAM和LIO-SAM则以牺牲效率为代价,在3D模式下换取略高的精度。

相关GitHub仓库:
- [cartographer-project/cartographer](https://github.com/cartographer-project/cartographer) (7,870 stars) – 核心C++库
- [cartographer-project/cartographer_ros](https://github.com/cartographer-project/cartographer_ros) – ROS集成 (1,500+ stars)
- [cartographer-project/cartographer_turtlebot](https://github.com/cartographer-project/cartographer_turtlebot) – TurtleBot演示

关键玩家与案例研究

Cartographer的生态系统由谷歌的开源发布驱动,但真正的创新来自社区和商业采纳者。Google Research(具体是由Wolfgang Hess和Damon Kohler领导的机器人团队)最初为Project Tango设备的室内建图开发了Cartographer。开源后,该项目在学术界和工业界获得了发展势头。

案例研究:Fetch Robotics – 这家仓储机器人公司将Cartographer作为其自主移动机器人(AMR)的主要SLAM后端。Fetch的机器人在杂乱的仓库通道中依靠2D LiDAR导航,依赖Cartographer的子图闭环检测来纠正长距离行驶后的漂移。该公司报告称,与之前基于Gmapping的系统相比,建图时间减少了40%。

案例研究:DJI – 这家无人机制造商将Cartographer的3D模式集成到其用于航空测量的Terra测绘软件中。DJI的无人机使用朝下的LiDAR和IMU来构建建筑工地的3D点云。Cartographer的实时能力使无人机能够根据正在构建的地图调整其飞行路径,从而实现在没有GPS的情况下的自主巡检。

与竞争性SLAM方案的对比:

| 特性 | Cartographer | ORB-SLAM3 | LIO-SAM | Gmapping |
|---|---|---|---|---|
| 传感器输入 | LiDAR + IMU + 里程计 | 视觉 (单目/双目/RGB-D) | LiDAR + IMU | LiDAR + 里程计 |
| 地图类型 | 占据栅格 (2D/3D) | 稀疏点云 | 3D点云 | 占据栅格 (2D) |
| 闭环检测 | 基于子图的B&B | DBoW2视觉词袋 | 扫描到地图 + ICP |

更多来自 GitHub

Figures4Papers:重塑AI研究可视化的开源利器开源项目figures4papers由开发者chenliu-1996创建,在AI研究社区迅速获得关注,单日内GitHub星标数突破2300。该仓库提供了一套精心策划的Python脚本,专为NeurIPS、ICML和CVPR等顶级AI会议生成Cartographer TurtleBot集成:为机器人领域的高精度SLAM降低门槛Cartographer TurtleBot集成项目托管于GitHub的cartographer-project组织下,是一个官方ROS软件包,旨在将谷歌的Cartographer SLAM库与TurtleBot机器人家族无缝衔接。Cart探秘 Cartographer ROS:谷歌工业级SLAM引擎如何驱动机器人自主导航Cartographer_ros,作为谷歌 Cartographer SLAM 库的 ROS 集成版本,已成为机器人开发者构建实时建图与定位系统的基石。该项目最初在谷歌内部用于数据中心冷却与仓储机器人的自主导航,于 2016 年开源,至今已查看来源专题页GitHub 已收录 2448 篇文章

时间归档

June 2026633 篇已发布文章

延伸阅读

Cartographer TurtleBot集成:为机器人领域的高精度SLAM降低门槛Cartographer TurtleBot集成包将谷歌的高精度图优化SLAM技术引入广受欢迎的TurtleBot平台,大幅降低了教育工作者和开发者实验实时2D与3D激光建图的门槛。探秘 Cartographer ROS:谷歌工业级SLAM引擎如何驱动机器人自主导航谷歌开源的 Cartographer_ros 将工业级同步定位与建图能力引入 ROS 生态。凭借基于子图的闭环检测与多传感器融合技术,它能在资源受限的机器人上实现实时 2D/3D 建图。然而,严苛的传感器标定要求与陡峭的 ROS 学习曲线,Figures4Papers:重塑AI研究可视化的开源利器一个名为Figures4Papers的Python脚本集合,专为顶级AI会议论文生成高质量图表,凭借2300多个GitHub星标迅速走红。该工具包提供折线图、柱状图和热力图的可复用模板,借助matplotlib和seaborn提升学术出版物Cartographer Fork UnmannedLab:零价值克隆,还是隐藏的研究瑰宝?GitHub上出现了一个Google Cartographer SLAM库的fork——unmannedlab/cartographer,零修改、零星标。看似毫无意义,但这个克隆体为研究者提供了一个干净的快照,同时也引发了对GitHub在机

常见问题

GitHub 热点“Cartographer SLAM: Google's Open-Source Robot Brain That Quietly Powers Autonomous Navigation”主要讲了什么?

Cartographer is not just another SLAM library—it is a production-grade, real-time simultaneous localization and mapping system open-sourced by Google in 2016 and maintained by a de…

这个 GitHub 项目在“Cartographer SLAM vs LIO-SAM comparison for warehouse robots”上为什么会引发关注?

Cartographer's architecture is a masterclass in balancing computational efficiency with mapping accuracy. At its heart is a graph-based SLAM backend that treats the robot's trajectory as a graph of nodes (poses) and edge…

从“How to calibrate LiDAR and IMU for Cartographer SLAM”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 7870,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。