Build and Install
Install
Nav2 and its dependencies are released as binaries. You may install it via the following to get the latest stable released version:
For Iron and Older
source /opt/ros/<distro>/setup.bash
sudo apt install \
ros-$ROS_DISTRO-navigation2 \
ros-$ROS_DISTRO-nav2-bringup \
ros-$ROS_DISTRO-turtlebot3*
For Jazzy and Newer
source /opt/ros/<distro>/setup.bash
sudo apt install \
ros-$ROS_DISTRO-navigation2 \
ros-$ROS_DISTRO-nav2-bringup \
ros-$ROS_DISTRO-nav2-minimal-tb*
Build
There are a few ways to build Nav2 using:
Released Distribution Binaries
Build Nav2 using readily installable binary dependencies
Rolling Development Source
Build Nav2 using custom or latest source dependencies
Docker Container Images
Build Nav2 using cached images and templated Dockerfiles
Tip
For a repeatable, reproducible and streamlined development experience, check the Nav2 documentation on using Dev Containers!
Released Distribution Binaries
To build Nav2, you’ll first need to build or install ROS 2 and related development tools, including: colcon
, rosdep
and vcstool
.
See also
For more information on building or installing ROS 2 distros, see the official documentation:
Once your environment is setup, clone the repo, install all dependencies, and build the workspace:
Attention
The branch naming schema for Nav2 is organized by ROS distro, while the default branch for Rolling is main
.
source /opt/ros/<distro>/setup.bash
mkdir -p ~/nav2_ws/src && cd ~/nav2_ws
git clone https://github.com/ros-navigation/navigation2.git --branch $ROS_DISTRO ./src/navigation2
rosdep install -y \
--from-paths ./src \
--ignore-src
colcon build \
--symlink-install
You can then source ~/nav2_ws/install/setup.bash
to get ready for demonstrations!
Hint
For more examples on building Nav2 from released distribution binaries, checkout distro.Dockerfile.
Rolling Development Source
Building Nav2 using rolling development source is similar to building Nav2 from released distribution binaries, where instead you build dependencies from source using the main development branches for all ROS based packages. Nav2 does not currently release binaries on rolling, so it must be build from source.
See also
For more information on building ROS 2 from source, see the official documentation:
Once your environment is setup, clone the repo and build the workspace:
source <ros_ws>/install/setup.bash
mkdir -p ~/nav2_ws/src && cd ~/nav2_ws
git clone https://github.com/ros-navigation/navigation2.git --branch main ./src/navigation2
git clone https://github.com/ros-navigation/nav2_minimal_turtlebot_simulation.git --branch main ./src/nav2_minimal_turtlebot_simulation
rosdep install -r -y \
--from-paths ./src \
--ignore-src
colcon build \
--symlink-install
You can then source ~/nav2_ws/install/setup.bash
to get ready for demonstrations! It is safe
to ignore the rosdep error of from the missing slam_toolbox
key.
Hint
For more examples on building Nav2 from rolling development source, checkout source.Dockerfile.
Docker Container Images
Building Nav2 using Docker container images provides a repeatable and reproducible environment to automate and self document the entire setup process. Instead of manually invoking the development tools as documented above, you can leverage the project’s Dockerfiles to build and install Nav2 for various distributions.
See also
For more information on installing Docker or leaning about Dockerfiles, see the official documentation:
Once your system is setup, you can build the Nav2 Dockerfile from the root of the repo:
export ROS_DISTRO=rolling
git clone https://github.com/ros-navigation/navigation2.git --branch main
docker build --tag navigation2:$ROS_DISTRO \
--build-arg FROM_IMAGE=ros:$ROS_DISTRO \
--build-arg OVERLAY_MIXINS="release ccache lld" \
--cache-from ghcr.io/ros-navigation/navigation2:main \
./navigation2
The docker build command above creates a tagged image using the Dockerfile from the context specified using the path to the repo, where build-time variables are set using additional arguments, e.g. passing a set of colcon mixins to configure the workspace build. Check the ARG
directives in the Dockerfile to discover all build-time variables available. The command also specifies an external cache source to pull the latest cached image from Nav2’s Container Registry to speed up the build process.
Tip
The images cached from above are used for Nav2 CI, but can also be used with Nav2 Dev Containers!
Generate Doxygen
Run doxygen
in the root of the Nav2 repository.
It will generate a /doc/*
directory containing the documentation.
The documentation entrypoint in a browser is index.html.