A simulation environment built on Gazebo and ROS 2 for testing unmanned surface vehicles in marine scenarios, based on RobotX competition tasks.
ros-navigation/navigation2
ROS 2 navigation framework that lets mobile robots plan paths, follow them, and avoid obstacles using a behavior-tree-driven stack.
- Stars
- 5,012
- Forks
- 2,015
- Open issues
- 109
- Last commit
- yesterday
What is it?
Nav2 is the navigation framework and system for ROS 2, the robot operating system. It provides the components a mobile robot needs to move from one pose to another: building and maintaining costmaps from sensor data, computing global and local paths, executing control commands, and recovering when it gets stuck. Nav2 is the successor to the ROS 1 navigation stack and is organized as a set of plugins and lifecycle-managed servers.
The top-level behavior is coordinated by a behavior tree navigator, so developers can change how a robot reacts to events by editing tree configurations rather than rewriting code. The project ships multiple planners and controllers as swappable plugins, along with map server, AMCL localization, a collision monitor, docking and route-based navigation packages. Simulation and bringup launch files are included for getting started.
The repository is a multi-package ROS 2 workspace. Release status for each ROS 2 distribution is tracked in the documentation, and the project lists Docker images and source and Debian builds for supported distributions.
Key features
- 01Behavior-tree based navigator that orchestrates planning, control and recovery.
- 02Swappable global planners and local controllers implemented as ROS 2 plugins.
- 03Costmap-based obstacle representation built from sensor data.
- 04AMCL localization and map server for map-based navigation.
- 05Collision monitor, docking and route-based navigation packages.
Use cases
- Autonomous navigation for wheeled or mobile robots running on ROS 2.
- Prototyping and testing navigation algorithms in simulation before deploying to hardware.
- Building custom planners or controllers as plugins for an existing navigation stack.
- Warehouse or industrial mobile robots that need obstacle avoidance and docking.
Quick start
- 1
Read the Getting Started guide on the docs site
- 2
Follow the Build & Install guide, or use the Docker containers
Things to know
- The license is not clearly detected in the metadata, so check the repository's license terms before use.
- It runs on ROS 2 and needs a configured ROS distribution and robot setup, so it is not a standalone library.
In collections
Topics
FAQ
- What is navigation2?
- ROS 2 navigation framework that lets mobile robots plan paths, follow them, and avoid obstacles using a behavior-tree-driven stack. Nav2 is the navigation framework and system for ROS 2, the robot operating system. It provides the components a mobile robot needs to move from one pose to another: building and maintaining costmaps from sensor data, computing global and local paths, executing control commands, and recovering when it gets stuck. Nav2 is the successor to the ROS 1 navigation stack and is organized as a set of plugins and lifecycle-managed servers.
- Is navigation2 free to use? What license does it have?
- navigation2 is open source under the Other license. Check the license terms before using it in commercial products.
- Is navigation2 still maintained?
- Actively maintained. The last commit to navigation2 was on Nov 5, 2026.
- What can I use navigation2 for?
- Autonomous navigation for wheeled or mobile robots running on ROS 2. Prototyping and testing navigation algorithms in simulation before deploying to hardware. Building custom planners or controllers as plugins for an existing navigation stack. Warehouse or industrial mobile robots that need obstacle avoidance and docking.
- How do I install navigation2?
- Read the Getting Started guide on the docs site Follow the Build & Install guide, or use the Docker containers
- Where can I get navigation2?
- The source code and installation instructions are on GitHub: https://github.com/ros-navigation/navigation2
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A lightweight, Python-based robot simulator for navigation, control, and learning, configured through YAML files.
Open-source robot simulator for modeling, programming and simulating robots, vehicles and mechanical systems.
An open-source, engine-independent simulator for drones, fixed-wing aircraft and ground vehicles, with optional Unreal Engine 5 rendering.
Lightweight 2.5D dynamics simulator for wheeled mobile robots and vehicles, usable standalone, via ROS 1/2, or from C++ and Python.
A Python code collection and textbook of robotics algorithms covering localization, mapping, SLAM, path planning and control.