Open Source RoboticsRobots, software & learning

SLAM Toolbox

Software

ROS2 2D mapping/localization library with pose-graph serialization, synchronous/asynchronous modes and RViz tools. [1] [3]

Installation & first result →Official websiteGetting started

For
ROS developers using 2D laser scans and odometry [1]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
operating system, compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

SLAM Toolbox is a ROS 2 mapping and localization library with synchronous and asynchronous mapping modes, pose-graph storage and RViz tools. Its source describes a scan/odometry workflow that refines poses, finds loop closures and produces a map and map-to-odometry transform. It is a distinct mapping component, not a complete navigation or mobile-robot hardware stack. [1] [3]

Is this for you?

Known limitations
  • A serialized pose graph and a rendered occupancy map are different reusable artifacts.
  • README records a serialized-file change dated2021-03-23; old graph compatibility must be checked.
  • Root/package LGPL2.1 declaration and Creative Commons boilerplate in common source differ; no blanket reuse clearance.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

What you need

Dependencies
  • ROS2/ament; package2.10.0 lists rclcpp, Eigen, pluginlib, sensor/nav messages and tf dependencies
  • Ceres solver and selected ROS distribution dependencies require a matched setup

[1] [2] [3] [4] [5]

Installation & first result

Open the upstream getting-started guide [1]

  • Inspect the selected ROS2 package, launch files and configuration for synchronous/asynchronous mapping or localization; reconcile the README's historical Eloquent install example with your target distribution.
  • Preserve exact source/dependency/model versions and evaluate the selected workflow before connecting physical hardware or reusing data.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

Installation

Inspect the selected ROS2 package, launch files and configuration for synchronous/asynchronous mapping or localization; reconcile the README's historical Eloquent install example with your target distribution.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

Hardware, models & data

Inputs and outputs

Laser scans and odometry to pose graph, map/odom transform, occupancy map and serialized mapping state.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [3] · Editorial assessment

Project notes

Choose the mode and stored artifact

Begin by choosing mapping or localization and examining the corresponding launch file and configuration in the selected checkout. A serialized pose graph preserves information needed for continuing or manipulating mapping state; an occupancy-map image is a different artifact. Do not assume saving one substitutes for saving the other. The README also records a serialized-file format change on March 23, 2021, so old saved graphs need a compatibility check before reuse. [1] [4]

Continued mapping updates the graph. The documented localization mode instead loads an existing serialized graph and keeps a rolling scan buffer without permanently updating the underlying map; its configuration uses mode: localization. Upstream warns that this route needs high-quality odometry and substantial robot-specific tuning and recommends AMCL for beginners or an out-of-the-box experience. These are source caveats, not comparisons tested here. [1]

The documented interface takes LaserScan input through an absolute scan_topic setting, needs a valid odom_frame-to-base_frame transform and names a map_frame. The README distinguishes /slam_toolbox/save_map for an image, /slam_toolbox/serialize_map for reusable graph state and /slam_toolbox/deserialize_map for loading the graph. Preserve those interfaces and artifacts with the selected mode. [1]

The selected package identifies version 2.10.0 and ROS 2 ament/rclcpp dependencies, with Eigen, pluginlib, sensor/navigation messages and transform packages. The README still includes an Eloquent-era installation example. That historical command is not evidence of a matched package for your present ROS distribution. Select the distribution and its actual package/launch configuration before following a source-build or binary-install route. [1] [5]

What we checked

Source research only. Selected implementation/model text, repository tree and license declarations were inspected. No upstream compilation, dependency installation, simulator, network/USB/device integration, data collection, benchmark or physical robot test was performed. Source files are linked rather than redistributed; external services and paid products are not endorsed.

Not yet established

  • Requirements: operating system, host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Not established
Latest release
Not established
Profile updated
Nov 1, 2026
Sources last checked
Nov 1, 2026
Next review
Dec 1, 2026
Reviewed revision
3f42343

Source files and licenses

Distinct robot-facing library contribution with actual implementation/model content and a bounded documented next step. Review covers source artifacts, not operational performance or a complete tested deployment.

LayerAvailability / license
softwareavailable · LGPL-2.1-only root/package; differing Creative Commons boilerplate in selected source
Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3]
documentationavailable · LGPL-2.1-only root/package; differing Creative Commons boilerplate in selected source
Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3]

This profile is scoped to source implementation/model descriptions and an initial inspection workflow; no physical manufacturing design, pretrained checkpoint or dataset is selected for redistribution or tested deployment.

Keep performance and license claims scoped

The README's mapping-speed and deployment examples are upstream reports, not results reproduced here. Evaluate scan timing, odometry, transforms, map storage and the chosen solver in the intended environment before relying on those reports. No scans, loop closures, map save/load or localization were tested. [1]

The root license and package metadata declare LGPL-2.1-only, while the selected common implementation header contains Creative Commons public-license boilerplate. That differing notice needs file-specific attention; this review does not provide blanket reuse clearance or establish which notice resolves every contribution. [2] [3] [5]

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history