编译和安装

安装

Nav2软件包及其依赖包都发布了二进制文件。您可以通过以下命令安装它以获得最新的稳定发行版: [校准@haisenzeng]

sudo apt install ros-<distro>-navigation2 ros-<distro>-nav2-bringup ros-<distro>-turtlebot3*

(对于Ubuntu 20.04版本,请使用下面这个命令,因为其通配符的解析已更改: [校准@haisenzeng]

sudo apt install ros-<distro>-navigation2 ros-<distro>-nav2-bringup '~ros-<distro>-turtlebot3-.*'

编译

一共有三种构建Nav2的方式。第一种为特定发布的发行版 (例如 foxygalactic ) 构建Nav2,第二种为使用快速启动安装脚本在主分支上构建Nav2,或者在主分支上手动构建Nav2。 [校准@haisenzeng]

编译已发行版本

安装ROS2

请通过通用途径 安装说明 安装自己所需发行版本的ROS 2。注: <ros2-distro>-devel 是命名模式前的分支-galactic 。对于Galactic的和更新的,它是 <ros2-distro>[校准@小鱼]

编译Nav2源码

首先创建一个名为 nav2_ws 的工作空间 ,并将Nav2分支功能包克隆到该工作空间下,然后编译。 rosdep 将用于获取您特定ROS2版本中Nav2所需的依赖项。 [校准@haisenzeng]

mkdir -p ~/nav2_ws/src
cd ~/nav2_ws/src
git clone https://github.com/ros-planning/navigation2.git --branch <ros2-distro>-devel
cd ~/nav2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro <ros2-distro>
colcon build --symlink-install

注意: 您需要将 --rosdistro 改为已选定的ROS 2发行版本的名称 (例如 foxygalactic )。 [校准@haisenzeng]

编译开发中的主分支

Build ROS 2 Main

使用ROS 2文档中提供的 安装说明 构建或安装ROS 2 rolling``镜像 。使用 ``rolling``镜像版本Nav2的 ``main 分支在所有开发完成后会同步更新到该发行版 (如果ABI兼容)。 [校准@小鱼]

构建Nav2主程序 [校准@haisenzeng]

现在安装了ROS 2 rolling ,我们必须安装依赖项并自行构建Nav2。我们将创建一个新的工作区, nav2_ws ,并将Nav2项目克隆到其中。之后,我们将使用 rosdep 自动查找并安装在核心ROS 2安装中未包含的依赖项 ( behaviortree.CPPompl 等)。如果您想使用任何这些依赖项的自定义版本,只需将它们在``nav2_ws`` 工作空间中覆盖,即可使用这些版本,而不是二进制安装版本。 [校准@haisenzeng]

mkdir -p ~/nav2_ws/src
cd ~/nav2_ws/src
git clone https://github.com/ros-planning/navigation2.git --branch main
cd ~/nav2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro rolling
colcon build --symlink-install
source install/setup.bash

你现在准备好进行演示了! [校准@haisenzeng]

Docker

官方的 Dockerhub 入口主要用于 Nav2 CI,但也可以用于开发。它拥有一个有效跟踪Nav2 main 分支的docker镜像。建议使用储存库根源的“Dockerfile``用于生产使用,设置为您选择的发行版。 [校准@haisenzeng]

如果您想使用我们发布的二进制文件,通常建议在容器内安装apt存储库中的Nav2版本。 [校准@mzebra]

通过Docker容器构建Nav2

要从Nav2文件夹中的Dockerfile构建镜像: 首先,将repo克隆到本地系统 (或参见上面的构建源代码) [校准@haisenzeng]

sudo docker build -t nav2/latest .

如果需要代理: [校准@小鱼]

sudo docker build -t nav2/latest --build-arg http_proxy=http://proxy.my.com:### --build-arg https_proxy=http://proxy.my.com:### .

注意: 您可能还需要配置docker以使DNS正常工作。有关详细信息,请参阅此处的文章: https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/ [校准@haisenzeng]

如果您想从dockerhub缓存构建以加快构建速度 [校准@小鱼]

sudo docker pull rosplanning/navigation2:main
sudo docker build -t nav2/latest --cache-from rosplanning/navigation2:main .

使用DockerHub已构建的容器

我们允许您随时从主分支中提取最新的docker镜像。随着新版本和标签的发布,docker hub上的docker容器也将被版本化以供选择。此docker镜像将不包含构建的覆盖,您必须自己去构建覆盖Nav2工作区 (请参阅上面的构建Nav2主工作区)。 [校准@haisenzeng]

sudo docker pull rosplanning/navigation2:main

生成Doxygen

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


帮助

构建故障排除指南 [待校准@1521]