ros-navigation/navigation2
ROS 2 Navigation Framework and System
Nav2 – the ROS 2 Navigation Stack
What it is
- Nav2 (short for Navigation 2) is the official, production‑ready navigation system for the Robot Operating System 2 (ROS 2). It provides the software building blocks that let a mobile robot move safely from point A to point B while avoiding obstacles, handling localisation, and planning paths.
Core capabilities
| Component | What it does |
|---|---|
| nav2_amcl | Adaptive Monte‑Carlo localisation – estimates the robot’s pose on a known map using laser or depth data. |
| nav2_controller | Executes a planned trajectory, generating velocity commands that respect the robot’s kinematics. |
nav2_planner (via nav2_behavior_tree) |
Global path planning on a 2‑D costmap using algorithms such as A* or Dijkstra. |
| nav2_costmap_2d | Maintains a 2‑D occupancy grid that fuses sensor data, static maps, and dynamic obstacles. |
| nav2_bt_navigator | Orchestrates navigation actions through a Behavior Tree, making the overall flow (plan → follow → recover) easy to extend. |
| nav2_collision_monitor | Monitors the robot’s surroundings in real‑time and can trigger emergency stops or recovery behaviours. |
| nav2_docking / nav2_docking_bt | Specialized behaviours for autonomous docking to a charging station or other target. |
| nav2_constrained_smoother | Refines paths to respect motion constraints (e.g., curvature limits). |
| nav2_bringup | Launch files and configuration utilities that start the whole stack with a single command. |
Why it matters
- Modular & extensible – each piece is a separate ROS 2 package with a clean API, so developers can swap in custom planners, controllers, or sensors.
- Cross‑distribution support – pre‑built binaries are provided for multiple ROS 2 releases (Humble, Jazzy, Lyrical), and CI badges show the build status for each.
- Community & professional backing – maintained by the Open Navigation project and sponsored by companies such as Nvidia, AMD, and Polymath Robotics.
- Rich documentation – tutorials, configuration guides, API docs, and ROSCon talks are all linked from the README.
Typical use‑cases
- Autonomous warehouse robots that need to navigate aisles, avoid people, and dock for charging.
- Service robots in hospitals or offices that must move between rooms while reacting to dynamic obstacles.
- Research platforms exploring new localisation, planning, or recovery strategies.
Getting started
- Read the docs – the central site
https://docs.nav2.org/hosts a Concepts overview and a Getting Started guide. - Install – follow the Build & Install instructions for your ROS 2 distribution, or pull a pre‑built Docker image from the
navigation2container registry. - Run the demo – the
nav2_bringuppackage provides launch files that start a simulated robot (e.g., in Gazebo) with a ready‑to‑use navigation stack. - Customize – use the Configuration Guide to tweak parameters, or follow the Plugin Tutorials to add your own planner or controller.
Community & support
- Join the Nav2 Slack (link in the README) for real‑time help.
- Professional services are offered by Open Navigation (
info@opennav.org). - The project is open‑source under the Apache‑2.0 license (standard for ROS packages).
All information above is taken directly from the repository’s README and linked documentation.
Related
- Project
- Project
- Project
- Project
- Project