构建和安装

安装

Nav2及其依赖项发布为二进制文件。您可以通过以下方式安装它以获取最新的稳定版本:

source /opt/ros/<distro>/setup.bash
sudo apt install \
  ros-$ROS_DISTRO-navigation2 \
  ros-$ROS_DISTRO-nav2-bringup \
  ros-$ROS_DISTRO-turtlebot3*

构建

有几种方法可以构建Nav2,包括:

  • 已发布的分发二进制文件

    • 使用现成可安装的二进制依赖项构建Nav2

  • 滚动式开发源代码

    • 使用自定义或最新的源代码依赖项构建Nav2

  • Docker 容器映像

    • 使用缓存的映像和模板化的Docker文件构建Nav2

小技巧

要获得可重复、可复制和流畅的开发体验,请查看 Nav2 文档中关于使用 开发容器 的内容!

已发布的分发二进制文件

要构建Nav2,您首先需要构建或安装ROS 2及其相关开发工具,包括:colconrosdep``和``vcstool

参见

有关构建或安装 ROS 2 发行版的更多信息,请参阅官方文档:

一旦您的环境设置完成,克隆存储库,安装所有依赖项并构建工作空间:

注意

Nav2 的分支命名方案按照 ROS 发行版进行组织,而 Rolling 的默认分支为 main

source /opt/ros/<distro>/setup.bash
mkdir -p ~/nav2_ws/src && cd ~/nav2_ws
git clone https://github.com/ros-planning/navigation2.git --branch $ROS_DISTRO ./src/navigation2
rosdep install -y \
  --from-paths ./src \
  --ignore-src
colcon build \
  --symlink-install

然后您可以执行 source ~/nav2_ws/install/setup.bash 准备进行演示!

提示

要了解如何从发布的分发二进制文件构建Nav2的更多示例,请查看`distro.Dockerfile <https://github.com/ros-planning/navigation2/blob/main/tools/distro.Dockerfile>`_。

滚动式开发源代码

使用滚动开发源构建Nav2类似于使用发布的分发二进制文件构建Nav2,不同之处在于使用所有基于ROS的软件包的主要开发分支从源代码构建依赖项。

参见

要了解如何从源代码构建ROS 2的更多信息,请参阅官方文档:

完成环境设置后,克隆存储库,导入所有依赖项并构建工作空间:

注意

请确保检查您需要的所有依赖项是否已在 .repos 文件中包含并取消注释。

source <ros_ws>/install/setup.bash
mkdir -p ~/nav2_ws/src && cd ~/nav2_ws
git clone https://github.com/ros-planning/navigation2.git --branch $ROS_DISTRO ./src/navigation2
vcs import ./src < ./src/navigation2/tools/underlay.repos
rosdep install -y \
  --from-paths ./src \
  --ignore-src
colcon build \
  --symlink-install

然后您可以执行 source ~/nav2_ws/install/setup.bash 准备进行演示!

提示

要了解如何从滚动开发源构建Nav2的更多示例,请查看`source.Dockerfile <https://github.com/ros-planning/navigation2/blob/main/tools/source.Dockerfile>`_。

Docker 容器映像

使用Docker容器镜像构建Nav2提供了可重复和可复制的环境,以自动化和自我记录整个设置过程。与上述文档中手动调用开发工具不同,您可以利用项目的Docker文件来构建和安装适用于各种分发版本的Nav2。

参见

要了解有关安装Docker或了解Docker文件的更多信息,请参阅官方文档:

一旦您的系统设置完成,您可以从存储库的根目录中构建Nav2 Dockerfile:

export ROS_DISTRO=rolling
git clone https://github.com/ros-planning/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-planning/navigation2:main \
  ./navigation2

上述`docker build <https://docs.docker.com/engine/reference/commandline/build/>`_命令使用来自指定路径到存储库的上下文的`Dockerfile`创建了一个带有标签的镜像,其中使用附加参数设置了构建时变量,例如通过传递一组`colcon mixins <https://github.com/colcon/colcon-mixin-repository>`_来配置工作空间构建。查看`Dockerfile`中的``ARG``指令以发现所有可用的构建时变量。该命令还指定了一个`外部缓存源 <https://docs.docker.com/engine/reference/commandline/build/#cache-from>`_,以从Nav2的`容器注册表 <https://github.com/ros-planning/navigation2/pkgs/container/navigation2>`_中拉取最新的缓存镜像以加快构建过程。

小技巧

上面缓存的镜像用于Nav2 CI,但也可以与Nav2的devcontainers一起使用!


生成 Doxygen

在Nav2存储库的根目录中运行``doxygen``。它将生成一个包含文档的``/doc/*``目录。文档的入口点在浏览器中是index.html。