This library provides a 2D SLAM toolbox for lifelong mapping and localization in ROS, targeting mobile robotics applications. It offers advanced features like continuous map refinement, pose-graph optimization, and an optimization-based localization mode, enabling robots to map and navigate large, dynamic environments efficiently.
How It Works
The toolbox constructs a pose graph by processing laser scans and odometry data. It refines odometry using scan matching and optimizes the pose graph to determine robot poses and detect loop closures. Maps are generated from scans associated with poses in the graph. The core approach leverages a modified version of the Karto SLAM library, with a plugin-based architecture allowing for interchangeable optimization solvers, notably an optimized Ceres solver.
Quick Start & Requirements
- Install via ROS dependencies:
sudo rosdep install -q -y -r --from-paths src --ignore-src
- Or via apt:
apt install ros-eloquent-slam-toolbox
- Run with ROS 2 launch files (e.g.,
ros2 launch slam_toolbox online_sync_launch.py
).
- Requires ROS 2 (tested with eloquent, but likely compatible with others).
- Official tutorials are available for ROS 2 Nav2 integration.
Highlighted Details
- Benchmarked mapping at 5x+ real-time for 30,000 sq. ft. and 3x real-time for 60,000 sq. ft.
- Supports lifelong mapping, allowing continuous map refinement and updates over time.
- Offers an optimization-based localization mode that can replace AMCL, eliminating the need for
.pgm
maps.
- Includes an RVIZ plugin for interactive graph manipulation, manual loop closures, and map merging.
Maintenance & Community
- Maintained by Steve Macenski, with contributions from the ROS community.
- Questions and issues should be directed to Robotics Stack Exchange (with
slam
and ros2
tags) or GitHub issues.
- Contributions are welcomed via GitHub pull requests.
Licensing & Compatibility
- The README does not explicitly state a license. However, it is a ROS package, typically implying a permissive license like Apache 2.0 or BSD.
- Compatibility for commercial use is not explicitly detailed, but its ROS integration suggests broad applicability.
Limitations & Caveats
- A recent serialization format change (as of 03/23/2021) requires users with older serialized files to convert them or use a specific unfixed branch.
- The RVIZ graph manipulation feature can cause significant lag with large maps and is recommended primarily as a debugging tool.
- The "true lifelong" mapping mode with node removal is experimental.