Source-linked AI summary
From the Desks of ROS Maintainers: A Survey of Modern & Capable Mobile Robotics Algorithms in the Robot Operating System 2
Steve Macenski, Tom Moore, David Lu, Alexey Merzlyakov, Michael Ferguson
TL;DR
Modern ROS 2 robotics needs navigation that spans diverse robot platforms, environments, and applications while incorporating capabilities not yet consistently benchmarked. This survey synthesizes Nav2’s algorithms and behaviors, compares established and newer methods, and provides expert analysis and initial metrics. It concludes that ROS 2 navigation now offers a broader, actively developing ecosystem, while some components retain important practical constraints.
Problem
Mobile robotics navigation needs broader support for modern vehicles, environments, and applications, but newer ROS 2 implementations have not all been described or benchmarked comparatively.
Method
The paper surveys ROS 2 navigation using maintainer expertise, algorithm overviews, comparisons, and brief benchmarking of established and newly developed systems.
Results
The survey documents modern Nav2 capabilities spanning diverse robot platforms and introduces comparative evidence for methods including optimized kinematically feasible planners.
Takeaways & Limitations
ROS 2 navigation provides refreshed algorithms and new system classes that expand mobile-robot capability across vehicles, environments, and applications.
Takeaways & Limitations
Some newer ROS 2 navigation capabilities have not yet been compared in the literature, and Cartographer requires extensive tuning while receiving limited ROS 2 support.
Abstract
from arXiv · showhide
The Robot Operating System 2 (ROS 2) is rapidly impacting the intelligent machines sector -- on space missions, large agriculture equipment, multi-robot fleets, and more. Its success derives from its focused design and improved capabilities targeting product-grade and modern robotic systems. Following ROS 2's example, the mobile robotics ecosystem has been fully redesigned based on the transformed needs of modern robots and is experiencing active development not seen since its inception. This paper comes from the desks of the key ROS Navigation maintainers to review and analyze the state of the art of robotics navigation in ROS 2. This includes new systems without parallel in ROS 1 or other similar mobile robotics frameworks. We discuss current research products and historically robust methods that provide differing behaviors and support for most every robot type. This survey consists of overviews, comparisons, and expert insights organized by the fundamental problems in the field. Some of these implementations have yet to be described in literature and many have not been benchmarked relative to others. We end by providing a glimpse into the future of the ROS 2 mobile robotics ecosystem.
I. INTRODUCTION
ROS 2 has enabled a renewed redesign of mobile robotics navigation around modern robot platforms and production needs. This survey reviews Nav2’s capabilities, compares established and newly developed planners, and reports practical trade-offs across path quality, runtime, and robot support.
- ROS 2 and Nav2: Nav2 extends ROS 2 navigation beyond the original stack by supporting differential, omnidirectional, Ackermann, large, non-circular, and legged robots.It replaces an unconfigurable state-machine-centered design with behavior trees, refreshed algorithms, and production-oriented quality standards.
- ROS 2 and Nav2: The ROS 2 mobile robotics ecosystem is adding algorithms, features, and behavior trees through open collaboration at a pace not seen since Willow Garage.Some capabilities have no comparable implementations in similar frameworks and had not yet been compared in the literature.
- Global path planning: Nav2’s global planners are primarily search-based, cost-aware, and span circular and arbitrarily shaped robot models.The planner set includes Navigation Function, 2D-A*, Theta*, Hybrid-A*, and State Lattice methods.
- Holonomic planners: The Navigation Function planner is Nav2’s default because of its speed and long-term stability, despite producing paths 5% longer by design.Its neutral cost favors slightly longer routes that maintain obstacle margins and reduce excessive movement.
- Holonomic planners: Theta* produces the shortest paths but has the longest runtime among the compared holonomic planners, while remaining below 100 ms in experiments.Its line-of-sight checks enable arbitrary-angle paths and make it responsive to localized cost near obstacles.
- Holonomic planners: 2D-A* supports heterogeneous fleets by aligning planning behavior through shared cost and path-length penalty weights, with paths within 3% of the other Smac planners.It can also downsample cost grids to increase speed in large spaces.
B. Kinematically Feasible Planners
Nav2’s kinematically feasible planners model robot-specific motion constraints to support diverse platforms, while shared optimizations improve planning performance and preserve similar path quality across planner types.
- Kinematically Feasible Planners: Kinematically feasible planners account for constraints and robot shape, enabling global paths for Ackermann, legged, large, non-circular, differential-drive, and holonomic platforms.These planners are especially useful when robot size, orientation, or turning constraints affect collision checking and feasible routing.
- Hybrid-A*: Hybrid-A* searches continuous poses over discrete grid cells using motion primitives and analytic expansions to produce continuous, feasible paths for car-like robots.Its primitives use straight segments and minimum-radius circular arcs, with periodic analytic expansions toward exact goal poses.
- Hybrid-A*: Nav2’s Hybrid-A* uses cost-aware obstacle heuristics, steering feasible searches toward lower-cost regions and respecting constraints such as keepout zones and narrow spaces.The heuristic uses the full cost grid rather than only binary collision information.
- State Lattice: State Lattice uses offline-computed motion primitives in a structured lattice, supporting arbitrary motion models such as rover, legged, differential-drive, and omnidirectional systems.Matching the lattice to a minimum control set makes it applicable across varied drivetrain constraints.
- Performance and Shared Infrastructure: Shared Smac Planner optimizations and caching make Hybrid-A* and State Lattice competitive in planning time, while their path lengths and planning times differ by only 0.5% and 1.6%, respectively.State Lattice planning times are reported at 20-300 ms, and the two planners provide analogous behavior for different robot-platform niches.
III. OVERVIEW OF LOCAL TRAJECTORY PLANNERS
Local trajectory planners convert global routes into velocity commands while balancing collision avoidance, smoothness, motion objectives, and robot-specific kinematic needs. Nav2 offers multiple controller families and configurable plugins, but reactive methods can lack temporal context and highly configurable DWB can require difficult tuning.
- Overview: Local trajectory planners convert planned routes into velocity commands while potentially optimizing collision risk, smoothness, curvature, acceleration, jerk, and other objectives.They complete the hybrid planning schema by following global routes under additional system constraints.
- Controller Implementations: Nav2 includes DWA, Regulated Pure Pursuit, MPPI, and Rotation Shim controllers for differential-drive, omnidirectional, legged, and Ackermann vehicles.The broader ROS 2 ecosystem also includes TEB and the Graceful Controller.
- Configuration and Inputs: Nav2 passes controllers rolling-zone local cost maps, planned paths, and positional information through runtime-configurable plugin interfaces.These interfaces support dynamic speed limits, navigation-goal checking, progress checking, and customizable trajectory critics.
- Reactive Controllers: Reactive planners use current local information to construct collision-free trajectories, but their limited temporal context can make them susceptible to local minima.They typically score trajectories from the robot’s current state and localized surroundings, trading broader context for low computational complexity.
- Dynamic Window Approach: DWA samples feasible velocity commands within dynamic limits, projects constant velocities into circular arcs, scores them with critics, and selects the highest weighted-average command.DWB extends this approach to lateral translation for omnidirectional platforms, while allowing lateral velocity to be zero for differential-drive robots.
- DWB: DWB is highly configurable through plugin-based critics and trajectory generators, but its many interrelated parameters can require complex tuning and produce suboptimal behavior when poorly configured.Maintainers aim to replace it as Nav2’s default with MPPI after MPPI reaches sufficient maturity.
B. Predictive Controllers
Predictive controllers refine trajectories using temporal information, with TEB optimizing constrained pose-time sequences and MPPI sampling alternatives from prior solutions. In Nav2, MPPI is described as especially capable in dynamic and confined environments, while TEB offers a configurable optimization-based approach with no guaranteed optimum.
- Predictive-controller foundations: Predictive planners refine prior trajectories over future time intervals, helping address local minima, oscillation, and abrupt velocity changes.They model trajectories as non-trivial sequences of future velocity commands rather than reacting only to the current state.
- Timed Elastic Band: TEB smooths abrupt global paths by optimizing robot poses and time deltas under waypoint, obstacle, kinematic, velocity, and acceleration constraints.Its numerical optimizer uses the previous cycle’s optimized trajectory as the next cycle’s starting estimate.
- Timed Elastic Band: TEB’s soft-constraint optimization is highly configurable but provides no guarantee that kinematic constraints or obstacle clearances will be perfectly respected.Insufficient obstacle-distance weighting can allow the trajectory to skirt close to obstacles.
- Model Predictive Path Integral: MPPI generates many noisy trajectory samples from the previous optimum, scores them with configurable critics, and selects the best candidate without requiring differentiable or convex costs.Nav2 batch-processes trajectories using tensor representations and applies velocity and turning-radius constraints for physical feasibility.
- Model Predictive Path Integral: MPPI is reported to react intelligently to dynamic obstacles, perform predictive back-out maneuvers, and rarely require active recovery from local minima.Its relative strengths over TEB also include simpler configuration, stronger software architecture and test coverage, and active maintainer presence.
C. Geometric and Control-Law Controllers
Geometric and control-law controllers provide simple, often high-rate path-following behaviors for applications where predictable route tracking matters. Within this group, RPP regulates speed near obstacles and sharp turns, while Graceful supports smooth motion toward non-trivial poses and Rotation Shim aligns heading before tracking.
- Controller role: Geometric and control-law controllers prioritize simple, exact route following, which is useful on approved industrial corridors where safety is paramount.Unlike dynamic behaviors, these methods aim to follow a reference path or objective without deviation.
- Regulated Pure Pursuit: Regulated Pure Pursuit adjusts lookahead with velocity and reduces translational speed near obstacles or beyond configurable curvature limits.These heuristics slow the robot before sharp blind turns and in confined or precarious settings.
- Regulated Pure Pursuit: Experiments showed RPP decreased emergency-stop distances and reduced overshoot and undershoot in high-curvature turns without substantially increasing time-to-goal.The controller selects the minimum velocity produced by its obstacle-proximity and curvature heuristics.
- Graceful Controller: Graceful uses geometric control with fast and slow subsystems to generate feasible commands and automatically reduce speed as path curvature tightens.Its slow subsystem uses an Archimedean spiral toward a target lookahead pose, while parameters λ and β shape speed reduction.
- Graceful Controller: Unlike Pure Pursuit variants, Graceful can produce smooth trajectories to non-trivial target poses without intermediate paths, supporting tasks such as docking or object following.RPP remains useful for exact path following, including direction changes in feasible plans.
- Rotation Shim: Rotation Shim first rotates a robot toward a newly planned path’s relative heading, then hands control to the primary tracker within a configurable angular tolerance.This reusable component addresses heading mismatches before path tracking begins.
IV. OVERVIEW OF PATH SMOOTHING
Nav2 provides three path smoothers that refine global paths for different planning needs, balancing smoothness, cost, curvature, feasibility, and computational expense. Their effects range from fast local defect removal to more expensive global optimization.
- Overview: Nav2 provides Simple, Constrained, and Savitzky-Golay Smoothers for holonomic and feasible planners.They target localized irregularities, feasible-path refinement, and smoothing of regularly spaced search-based paths, respectively.
- Simple Smoother: The Simple Smoother removes oscillations, discontinuities, and turning transitions with gradient descent, typically in 1-6 ms.Its objective combines smoothness with a penalty for moving too far from the original path.
- Simple Smoother: Simple Smoother can increase path costs because smoothing turning corners may move the path closer to obstacles.The resulting path is returned with tangent orientations, and the last collision-free path is retained if an iteration becomes colliding.
- Constrained Smoother: The Constrained Smoother optimizes smoothness, cost fields, and curvature while retaining kinematic feasibility, but its paths are typically longer than those from the Simple Smoother.The benchmark reports lower costs, improved smoothness and curvature, and similar-length obstacle-avoiding paths in an example.
- Constrained Smoother: The Constrained Smoother can take several seconds, so it is primarily recommended when maintaining feasibility is a strict requirement.It may also perform global-level optimization for holonomic planners when the curvature term is removed.
- Savitzky-Golay Smoother: The Savitzky-Golay Smoother removes jagged outlier points from regularly spaced search paths while preserving the planner’s path intent and usually leaving key metrics nearly unchanged.It also updates each path point’s orientation to the tangent of the final smoothed path.
V. OVERVIEW OF PERCEPTION
ROS 2 represents the environment with cost or risk maps that consolidate perception results into an efficiently maintained model for reactive navigation. The two-dimensional grid balances fidelity, lookup efficiency, and broad algorithm compatibility, while discarding some information.
- Overview: ROS 2 uses cost or risk maps to consolidate results from potentially many perception algorithms into an environmental model.The representation must balance environmental fidelity with efficient maintenance for reactive navigation.
- Costmap Representation: Cost maps reduce the world model to a two-dimensional grid whose cells carry costs, with planners preferring lower-cost paths and avoiding high-cost regions.Special cost values support planning and collision checking in free and known regions.
- Trade-offs: The grid provides simple correspondence with the real world and constant-time lookup across low- and high-power platforms.Its memory consumption scales linearly with the number of cells.
- Trade-offs: Quad-tree and multi-resolution occupancy representations can reduce memory in some settings but lose benefits after inflation or in dense environments and introduce non-constant lookup times.ROS 2 commonly uses inflated cost maps with 0.05-meter cells to balance fidelity and memory in restricted spaces.
- Layered Costmap: The Layered Costmap updates the grid through an ordered list of dynamically loaded layers, each representing a data source, algorithm, or result.Developers can add application-specific layers, including inflation, sensor processing, semantic information, machine-learning outputs, and multi-robot coordination.
B. Costmap Layers
ROS 2 costmap layers combine static maps, sensor observations, voxel representations, inflation, and spatial filters into a configurable navigation model. The layers support both planar and three-dimensional sensing, dynamic environments, semantic restrictions, and speed or behavior control.
- Map and Sensor Layers: The static layer supplies a base occupancy map that can still change through map sharding or continual mapping.It subscribes to an OccupancyGrid topic containing map information from sources such as offline mapping or blueprints.
- Map and Sensor Layers: The obstacle layer ray-traces laser and RGB-D measurements in two dimensions, marking endpoints occupied and visible paths free using Bresenham’s algorithm.This is well suited to planar laser scanners but can be constrained for three-dimensional data and noisy sensors.
- Voxel Layers: Voxel layers represent RGB-D and three-dimensional laser data in a height-aware grid, while non-persistent voxel layers rebuild and clear that grid each update.The voxel representation scales linearly with costmap size and encodes height through bits of an unsigned 32-bit integer.
- Voxel Layers: STVL uses a sparse OpenVDB voxel grid and decay acceleration to maintain obstacles according to sensor frustums and measurement timestamps.Unseen voxels are removed through accelerated decay, and the sparse representation is projected into the two-dimensional cost map.
- Cost and Filter Layers: The inflation layer expands obstacle information with an exponential cost decay, using obstacle distance, scaling factor, lethal cost, and footprint radius.For non-circular robots, a center-cell threshold based on the largest center-to-edge distance supports footprint collision checking.
- Cost and Filter Layers: Keepout, speed, and binary layers encode semantic spatial masks for obstacle costs, speed limits, or behavior triggers.These filters can weight regions, slow robots in specified zones, or send ROS messages when spatial cost thresholds are crossed.
VI. OVERVIEW OF BEHAVIOR TREES
Nav2 uses configurable behavior trees to orchestrate planning, control, recoveries, and higher-level navigation tasks instead of relying on fixed state-machine logic. Runtime composition, replanning choices, recoveries, and algorithm selection provide behavior customization across applications.
- Behavior Tree Architecture: Nav2 behavior trees orchestrate planning, control, high-level behaviors, recoveries, and other navigation tasks through dynamically loaded XML nodes.A behavior tree can be specified per run, allowing different tasks and behaviors without changing the underlying node set.
- Behavior Tree Architecture: Most behavior-tree nodes invoke ROS 2 actions, topics, or services for component-level modularity, while users can create custom nodes and trees.Nav2 includes a growing set of primitive nodes summarized in Table IV.
- Behavior Tree Applications: Nav2 behavior trees cover navigate-to-pose, navigate-through-poses, and task-specific applications with multiple configurable variants.Task-specific trees can support object following, exploration, remote tele-operation, odometry calibration, and complete coverage.
- Replanning and Recovery: Navigate-to-pose trees support replanning at fixed frequencies, after distance or speed changes, when goals update, or when paths become invalid.Some configurations avoid dynamic replanning except when required by a potential future collision to preserve predictable behavior.
- Replanning and Recovery: Recovery behaviors address component and system failures, including mixed replanning, goal patience, model clearing, and retrying navigation after new goals arrive.The illustrated mixed-replanning tree separates navigation logic from system-level recovery logic.
- Algorithm Selection: Algorithm selector nodes can recompute planning or trajectory functions with alternative implementations, allowing methods to be chosen for their useful contexts.Dynamic replanning is rate-limited below the tree’s 100 Hz tick rate and may refine plans periodically at typically 5-30 second intervals.
VII. OVERVIEW OF STATE ESTIMATION
ROS 2 state estimation combines sensor measurements into robot-state estimates using established filtering and newer factor-graph approaches. The ecosystem supports configurable models, sensors, and coordinate-frame relationships for diverse robot platforms.
- State estimation fuses noisy measurements from IMUs, wheel encoders, pose sensors, GPS, and other sources into state variables with confidence measures.
- ROS 2 provides EKF and UKF implementations through robot_localization, supporting unlimited common sensor inputs and selective fusion of measurement dimensions.
- Robot_localization uses a 15-dimensional omnidirectional state vector and can approximate unicycle or Ackermann models through constrained states and covariance tuning.
- Reliable filtering requires references for every linear and rotational dimension, while acceleration-only estimation can grow without bound after double integration.
- Factor graphs formulate nonlinear estimation as weighted least-squares optimization, with variable nodes representing estimates and factor nodes representing constraints.
- fuse extends sensor fusion through a plugin architecture that configures state, motion, and sensor models beyond robot_localization’s sensor support.
B. Comparison
The comparison evaluates robot_localization and fuse on the same 541-meter route using wheel-encoder and IMU data. fuse achieved a closer final estimate but required substantially more CPU.
- The experiment used a 541-meter route, 25 Hz wheel-encoder and IMU data, and identical fused linear and angular velocity sources for both systems.
- 1.44 meters: fuse was closer to ground truth at the route endpoint than robot_localization, while both estimates remained below 5.4 meters, or 1%, of ground-truth pose.
- 3.7x: fuse used approximately this much CPU as robot_localization, with a slightly larger standard deviation.
VIII. OVERVIEW OF LOCALIZATION AND MAPPING
ROS 2 localization estimates global pose and corrects odometric drift, while mapping and SLAM build or maintain environmental models. The surveyed ecosystem emphasizes robust 2D laser-based methods alongside particle-filter, GPS, and visual alternatives.
- Localization provides a pose and confidence relative to a world model, typically correcting odometric drift at a reduced rate and supplying the map-to-odom transform.
- ROS 2’s standard localization and SLAM implementations remain 2D laser-scanner techniques because of their robustness in dynamic, changing environments over long durations.
- AMCL uses a configurable particle filter that propagates pose hypotheses with a motion model, weights them using laser observations, and resamples the cloud.
- 5 cm or better: AMCL can achieve this localization accuracy in many practical environments.
- GPS supplies a globally unambiguous positional reference, while NavSat Transform Node converts GPS position and earth-referenced heading into UTM-based world-frame transforms.
B. Mapping
ROS 2 mapping tools build occupancy-grid and SLAM representations for planning and localization, with pose-graph methods supporting real-time mapping and loop closure. The ecosystem also adds lifecycle, safety, control, simulation, and user-interface utilities around navigation.
- Mapping: Mapping generates a globally accurate world model used for global planning and localization, while SLAM performs mapping and localization simultaneously.
- Mapping: Cartographer supports real-time 2D and 3D SLAM through pose-graph optimization, but typically produces poor out-of-the-box results and requires extensive tuning for 3–5 cm accuracy.
- Mapping: SLAM Toolbox uses scan matching, rolling scan buffers, loop-closure constraints, and pose-graph optimization for 2D mapping.
- Mapping: 100,000 sq ft: SLAM Toolbox can reliably map spaces larger than this in real time and supports map serialization and manual pose-graph manipulation.
- ROS 2 utilities: Nav2 utilities improve safety and operability through lifecycle orchestration, collision-zone responses, velocity smoothing, waypoint actions, command interfaces, and Gazebo-based testing.
- ROS 2 utilities: Gazebo support enables development, testing, and reproduction before deployment, while Ignition-Gazebo support was not yet fully featured.
X. THE FUTURE OF ROS 2 MOBILE ROBOTICS
ROS 2 mobile robotics continues to expand through collaborative development, broader environment models, and modular future systems. Planned work targets large-scale routing, three-dimensional terrain, and replaceable localization components.
- Ongoing ROS 2 mobile robotics projects are extending capabilities developed through collaborations among industry, academia, and individual contributors.The ecosystem continues to develop additional technologies for robotics research and commercialization.
- Reduced-environment representations could support lane-based routing, bounded navigation regions, coarse routing through massive spaces, and outdoor navigation.These approaches address settings where full free-space replanning is impractical or routes are pre-assigned.
- Nav2 is being extended with height maps and traversability estimation for outdoor, urban, and natural environments.The planned models aim to avoid coarse terrain approximations and improve indoor handling of small objects and ramps.
- A proposed modular localization framework would support both 2D and 3D systems by allowing individual components to be exchanged.Its initial release is intended to include an AMCL analogue, DT-NDL-MCL, and pose-graph solutions.
- As of November 2022, ROS 2 navigation had introduced new planning, trajectory, cost-map, and state-estimation algorithms alongside path smoothers, behavior trees, and utilities.The survey reports continuing quarterly development by commercial, academic, and individual contributors.
APPENDIX I ALGORITHM SELECTION BY ROBOT MODEL
Nav2’s algorithm-selection guidance matches planners, trajectory controllers, and smoothers to robot geometry and operating conditions. The appendix also describes shared infrastructure that makes several Smac planners efficient and extensible.
- The appendix compares global planners, trajectory planners, and smoothers while relating their use to robot-model types and application conditions.The expanded discussion is summarized in a selection table for algorithm use cases.
- A. Circular Differential-Drive: NavFn with MPPI is recommended for circular differential-drive robots, while MPPI or TEB may suit highly dynamic settings at higher computational cost.Regulated Pure Pursuit favors exact path tracking with a small footprint, whereas DWB provides a middle-ground option when path deviation is useful.
- A. Circular Differential-Drive: The Savitzky-Golay smoother can remove localized defects from infeasible global plans, but the resulting changes are largely superficial with a Nav2 trajectory planner.Smoothing is generally unnecessary for good circular differential-drive performance.
- B. Non-Circular Differential-Drive: Smac State Lattice is recommended for non-circular differential-drive robots because feasible planning supports drivability in confined spaces.Smac Hybrid-A* is an alternative when a minimum control set is difficult to model.
- B. Non-Circular Differential-Drive: For non-circular robots, trajectory planners use the robot footprint for collision checking, increasing computational cost relative to circular-robot cases.Rotation Shim is recommended with an infeasible planner and DWB or Graceful to rotate toward the path heading before tracking.
- D. Ackermann: Ackermann robots generally use Smac Hybrid-A*, with State Lattice applicable when a finite set of predictable maneuvers is required.TEB, MPPI, or Regulated Pure Pursuit can provide predictive or exact path-following behavior, while constrained smoothing adds computational overhead.
- APPENDIX II SMAC PLANNER FRAMEWORK: The Smac Planner shares an optimized A* implementation across Hybrid-A*, State Lattice, and 2D-A* through templated node types.The framework reduces boilerplate so new planners may be added in as few as 50 lines of code.