构建和安装
安装
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及其相关开发工具,包括:colcon
、rosdep``和``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的软件包的主要开发分支从源代码构建依赖项。
完成环境设置后,克隆存储库,导入所有依赖项并构建工作空间:
注意
请确保检查您需要的所有依赖项是否已在 .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。
一旦您的系统设置完成,您可以从存储库的根目录中构建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一起使用!