Robots Atlas>ROBOTS ATLAS
Cartographer

Perception · Perception & Vision Software

Cartographer

Cartographer ROS 2 (community)·Google

Active Open source Real-time capable API available
CATEGORYPerception · Perception & Vision Software
READINESSTRL 8
ADOPTION SCALEEstablished Open Source
LICENSESApache-2.0
FIRST RELEASE2016

Cartographer is an open-source SLAM library developed at Google and published in October 2016 (Wolfgang Hess, Damon Kohler, Holger Rapp, Daniel Andor — ICRA 2016). It supports 2D and 3D pose-graph SLAM with a built-in Ceres Solver nonlinear optimization back-end (also Google). The goal: real-time operation on a single embedded GPU/CPU and high map accuracy. Apache 2.0 license.

The architecture has two levels: (1) local SLAM — submap building via scan matching with scan-to-submap matching (Real-Time Correlative Scan Matcher), (2) global SLAM — loop closure and pose graph optimization via Ceres Solver. In addition: branch-and-bound search for loop closure (deterministic, efficient), support for IMU (3D), wheel odometry, GPS, and landmark constraints. The ROS wrapper `cartographer_ros` is available for ROS 1 Noetic and ROS 2 (via community fork).

Reference deployments: Toyota HSR home robots, AGVs in Bosch factories, the Google Cartographer Backpack robot (for building mapping). Benchmarks: Deutsches Museum dataset (3D), Revo LDS (2D). A full base of tutorials in the ReadTheDocs documentation. After Wolfgang Hess moved to another project, maintenance is slow (community-maintained); the last official release is 1.0 from 2017, but the cartographer-project.github.io fork is still actively developed.

Type & Roles
Software types
SLAM Library
Perception Stack

A Perception Stack encompasses the software layers that process data from cameras, LiDARs, IMUs, microphones, and other sensors in order to recognise the surrounding environment, perform localisation, detect and track objects, and interpret the scene. It is typically the first processing stage in an autonomous robot's data pipeline, feeding its outputs to planning and control stacks.

API Library

An API Library is a software package that exposes programmatic interfaces for communicating with a device, service, or system. In robotics it typically forms a lightweight integration layer built on top of the manufacturer's official API or an open-source project, abstracting low-level protocol details and providing language-native bindings (Python, C++, Java, etc.).

Select an item to see its description.
Main category
Perception & Vision SoftwareSDKs
Roles in robotics ecosystem
PerceptionSLAM & LocalizationComputer VisionAPI AccessDeveloper Enablement
Software family
Family
Perception & Vision

A family of open-source robotic perception libraries: Visual SLAM (ORB-SLAM, RTAB-Map), computer vision (OpenCV), point cloud processing (PCL, Open3D), detection and segmentation (YOLO, Detectron2).

Maturity & Adoption
8 / 9
Prototype / pilot phase
ResearchPrototypeProduction
Adoption scaleEstablished Open Source
Maintenance statusCommunity Maintained – Slow Cadence
First release2016
Last update20 May 2026
Deployments

Toyota HSR (Human Support Robot) — Toyota's home service robot uses Cartographer 2D in production. AGVs in Bosch factories and some BMW plants. Google Cartographer Backpack — an indoor building mapping system (Google Maps Indoor). Used in many open mobile robot stacks (TurtleBot 3/4, ROBOTIS OpenManipulator) and in RoboCup@Home competitions.

Community

github.com/cartographer-project/cartographer ~7.7k★, ~2.2k forks. The seminal paper (Hess et al., ICRA 2016) has ~3000 citations. The active cartographer-project fork is maintained by the community after Wolfgang Hess left Google.

Integrates with
R2
ROS 2
Open-source framework for building robot software. The successor to ROS 1, built on DDS with native support for distributed, real-time and multi-platform systems. The de facto standard in research and commercial robotics.
R2
ROS 2 Humble Hawksbill
LTS release of the ROS 2 framework based on Ubuntu 22.04, supported through May 2027. The most widely deployed release in humanoids, AMRs, and research platforms. Full integration with Nav2, MoveIt 2 and ros2_control.
R2
ROS 2 Jazzy Jalisco
ROS 2 Jazzy Jalisco — the latest LTS (May 2024, supported until May 2029) on Ubuntu 24.04. C++17, Fast DDS 3.0, improved executors, RMW Zenoh, better QoS for variable networks.
N
Nav2
The professionally-supported successor to the ROS Navigation Stack — a production-grade navigation framework for mobile robots, quadrupeds, and AGVs. Behavior Trees, planners (Smac, NavFn, Theta*), controllers (MPPI, RPP, DWB), AMCL, costmaps.
M2
MoveIt 2
Open-source motion planning, manipulation, and kinematics framework for ROS 2 (Foxy → Jazzy). Stewarded by PickNik Robotics. The de facto standard for manipulators in the ROS ecosystem.
R
realsense-ros
The official Intel ROS 2 wrapper for RealSense cameras. Publishes depth, color, infrared, IMU, and pointcloud2 topics; supports an Action Server for calibration triggers. The IntelRealSense/realsense-ros repo — the most installed camera wrapper in ROS 2.
P(
PCL (Point Cloud Library)
An open-source C++ library for processing 3D point clouds — filtering, segmentation, registration (ICP), 3D features, surface reconstruction. Initiated at Willow Garage in 2010.
ROS supportCompatibility with ROS / ROS 2 ecosystem
Official ROS 1 PackagePakiet dostępny w oficjalnym rejestrze ROS 1 (packages.ros.org)
Community ROS 2 WrapperWrapper ROS 2 tworzony i utrzymywany przez społeczność, nie przez producenta
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
×
Programming languages
C++Python
Operating systems
Ubuntu 22.04Ubuntu 20.04Debian
Minimum hardware requirements
Minimum hardware requirements
CPUQuad-core x86-64 ≥ 2.5 GHz or ARM64 (Jetson Orin Nano+). 2D SLAM runs on weaker CPUs; 3D needs 8+ cores.
RAM (GB)8
GPUNot required — Cartographer is fully CPU-based. All computations (Ceres Solver, scan matching) are vectorized on the CPU.
Disk (GB)3

Requires Ceres Solver ≥ 1.13, abseil-cpp, protobuf 3.x, Lua 5.2. Ubuntu 20.04 + ROS 1 Noetic or Ubuntu 22.04 + ROS 2 Humble (community fork).

Packaging & distribution
Package managers
Source – CMake / ament_cmakeGitHub Releases / GitHub Actions ArtifactsDocker / Docker Hubapt / deb
CPU architectures
x86_64 (AMD64)ARM64 / AArch64NVIDIA Jetson – AArch64 (JetPack)
Installation difficulty
LevelAdvanced
Protocols and interfaces
Communication protocols
ROS 2 TopicsROS 2 ServicesDDS (Data Distribution Service)Shared Memory (POSIX / mmap)
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)USB 3.0 / 3.1 Gen 1Ethernet 100BASE-TX (Fast Ethernet)
Latency classes
Soft Real-Time (20–100 ms)Soft Real-Time (100–500 ms)
Deployment types
Local WorkstationOn RobotEdgeContainerized
Supported simulators
Gazebo Harmonic
Gazebo Classic (Gazebo 11)
NVIDIA Isaac Sim
Official Docker images
ros:humble-desktoposrf/ros:humble-desktop-full
Licenses
Apache-2.0Apache License 2.0v2.0

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attributionPatent grant
Version history
Cartographer ROS 2 (community)Sept 2022

First stable ROS 2 Humble port — maintained by the community fork (ros2/cartographer_ros).

Cartographer 1.0 (ROS Noetic patch)May 2020

ROS 1 Noetic / Ubuntu 20.04 support. Last official Google release.

Cartographer 1.0 (ROS Melodic patch)Jun 2018

ROS Melodic support, Ubuntu 18.04 fixes.

Cartographer 1.0Nov 2017

First stable production release. API freeze for submap formats and serialization.

Cartographer 0.3Aug 2017

ROS Kinetic support, performance optimizations for 3D scan matching.

Cartographer 0.1 (initial release)Oct 2016

First public open-source release. ICRA 2016 paper. 2D + 3D SLAM, cartographer_ros for ROS Indigo.