- 本教程来自:Nav2中文网
- Nav2交流社区:https://fishros.org.cn/forum
- ROS2/Nav2千人交流群:(QQ)139707339
- 更多精彩教程请关注微信公众号:鱼香ROS
- 欢迎添加机器人小伊微信,解锁机器人学习特殊服务
Nav2软件包及其依赖包都发布了二进制文件。您可以通过以下命令安装它以获得最新的稳定发行版: [校准@haisenzeng]
sudo apt install ros--navigation2 ros--nav2-bringup ros--turtlebot3*
(对于Ubuntu 20.04版本,请使用下面这个命令,因为其通配符的解析已更改: [校准@haisenzeng]
sudo apt install ros--navigation2 ros--nav2-bringup '~ros--turtlebot3-.*'
编译
一共有三种构建Nav2的方式。第一种为特定发布的发行版 (例如 foxy
, galactic
) 构建Nav2,第二种为使用快速启动安装脚本在主分支上构建Nav2,或者在主分支上手动构建Nav2。 [校准@haisenzeng]
请通过通用途径 安装说明 安装自己所需发行版本的ROS 2。注: -devel
是命名模式前的分支-galactic
。对于Galactic的和更新的,它是 。 [校准@小鱼]
首先创建一个名为 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 -devel
cd ~/nav2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro
colcon build --symlink-install
注意: 您需要将 --rosdistro
改为已选定的ROS 2发行版本的名称 (例如 foxy
、 galactic
)。 [校准@haisenzeng]
使用ROS 2文档中提供的 安装说明 构建或安装ROS 2 rolling镜像。使用rolling镜像版本Nav2的main
分支在所有开发完成后会同步更新到该发行版 (如果ABI兼容)。 [校准@小鱼]
现在安装了ROS 2 rolling
,我们必须安装依赖项并自行构建Nav2。我们将创建一个新的工作区, nav2_ws
,并将Nav2项目克隆到其中。之后,我们将使用 rosdep
自动查找并安装在核心ROS 2安装中未包含的依赖项 ( behaviortree.CPP
、 ompl
等)。如果您想使用任何这些依赖项的自定义版本,只需将它们在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]
- 本文主要校准贡献:haisenzeng
- 本文遵循知识共享协议,禁止未授权商用转载