The ROS Navigation Stack is a collection of software packages within the Robot Operating System (ROS) framework that provides a robot with the capability to move autonomously through an environment by combining map building, localisation, global path planning, local obstacle avoidance, and motor control into an integrated pipeline. It abstracts sensor inputs (laser scan, odometry, IMU), maintains a 2D occupancy grid map and cost layers, runs AMCL (Adaptive Monte Carlo Localisation) for pose estimation, and uses A* or Dijkstra for global plans combined with DWA (Dynamic Window Approach) or TEB (Timed Elastic Band) for local reactive navigation. The Navigation Stack is the de facto standard for mobile ground-robot navigation in research and production robotics.

Content

  • The ROS Navigation Stack was developed at Willow Garage around 2009–2010 alongside the foundational ROS framework itself, drawing on prior robotics navigation research to produce a reusable, sensor-agnostic system. The initial design was driven by the PR2 mobile manipulation robot and its need to move through office environments reliably. The navigation stack abstracted over sensor types by defining a common sensor message interface (sensor_msgs/LaserScan, nav_msgs/Odometry) so the same planning and localisation algorithms could work with laser scanners, sonar, or depth cameras.
  • The stack’s architecture is built around a costmap hierarchy. The static map costmap layer represents the known floor plan obtained from SLAM (Simultaneous Localisation and Mapping). Dynamic layers add inflation radii around obstacles, footprint constraints, and sensor-updated obstacle data. The global planner queries the static costmap to compute a full path from start to goal. The local planner then executes this path in a receding-horizon fashion, evaluating candidate velocity commands for safety and progress using the Dynamic Window Approach (DWA) which samples from dynamically feasible velocity space. The move_base action server coordinates all components and handles recovery behaviours (clearing costmaps, in-place rotation) when the robot becomes stuck.
  • The ROS Navigation Stack enabled a step-change in robotics research productivity. Labs worldwide adopted it as a baseline, allowing researchers to focus on novel contributions (better localisers, improved planners, learning-based policies) rather than rebuilding navigation infrastructure from scratch. Industrial warehouse robots, hospital delivery robots, and agricultural platforms have all been prototyped and deployed using nav-stack foundations. The consistent interface definitions created a common vocabulary across the community that persists in the Nav2 era.
  • In 2024–2025 the ROS 2 Nav2 framework (the official successor) has matured into a production-grade system with lifecycle-managed servers, composable nodes for improved CPU cache locality, and a behaviour-tree-based mission execution engine replacing the ad-hoc state machine of the original nav-stack. Learned navigation policies trained in simulation are being integrated as plugins alongside classical planners, enabling robots to handle complex social navigation scenarios. SLAM systems (Cartographer, RTAB-Map, LIO-SAM) produce 3D maps consumable by Nav2, extending navigation beyond flat floor environments to multilevel structures. Sensor fusion using Sensor Fusion nodes now routinely integrates IMU, wheel encoders, and GPS for outdoor navigation.