finds.dev← search

// the find

cartographer-project/cartographer

★ 7,881 · C++ · Apache-2.0 · updated Jan 2024

Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.

Cartographer is Google's SLAM library for building maps in real-time from lidar and IMU data, supporting both 2D and 3D. It uses a two-phase approach: local scan matching (Ceres-based) for real-time pose tracking, then global pose graph optimization to close loops. The target audience is robotics engineers, particularly those in autonomous navigation — but the README leads with an abandonment notice, which sets the tone.

The scan matching pipeline is well-engineered — correlative scan matching for coarse alignment followed by Ceres nonlinear optimization is a solid approach that handles sensor drift better than pure odometry. The proto-based serialization means map state can be saved, loaded, and migrated across versions without format fragmentation. It supports both CMake and Bazel, and ships Dockerfiles for multiple Ubuntu/Debian targets, so getting a reproducible build isn't a fight. The cloud mode (gRPC-based distributed mapping) is a real feature, not a demo — actual handler implementations exist for multi-trajectory state management.

It's unmaintained — the README says so explicitly, last push was January 2024, and active development stopped years before that. The ROS fork is in limited-maintenance mode too, so if you're building on ROS2, you're inheriting someone else's frozen code. Configuration is Lua files, which means adding a new sensor requires learning the Lua parameter dictionary API on top of everything else — an unusual choice that ages poorly. There's no Python bindings or non-ROS entry point documented; if you're not in the ROS ecosystem, getting sensor data into the system requires writing your own adapter against the C++ API, and you'll be doing it without maintainer support.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →