警告

您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.

在 Windows 上构建 ROS 2

本指南介绍如何在 Windows 上为 ROS 2 设置开发环境。

先决条件

首先按照以下步骤进行 安装前提条件 上的二进制安装页面。

到达 "下载 ROS 2 "部分时,请停止并返回此处。

其他先决条件

从源代码构建时,需要安装一些额外的先决条件。

从 Chocolatey 安装其他先决条件

首先安装 git:

>; 巧克力 安装 -y 笨蛋

您需要添加 Git cmd 文件夹 C:\Program Files\Git\cmd 到 PATH 中(方法是点击 Windows 图标,输入 "环境变量",然后点击 "编辑系统环境变量"。在弹出的对话框中,单击 "环境变量",然后单击底部窗格中的 "路径",再单击 "编辑 "并添加路径)。

然后安装 补丁:

>; 巧克力 安装 -y 补丁

您可能需要关闭 cmd 提示符并打开一个新的,但此时您应该可以运行 笨蛋, 蟒蛇, cmakepatch.exe --版本.

安装开发人员工具

现在,我们准备安装一些用于帮助开发 ROS 2 的工具。

让我们从 vcstool:

>; 核心 安装 -U vcstool

您只需运行 vcs (您应该可以在同一个 cmd 提示符中执行此操作)。

接下来,安装 胶管:

>; 核心 安装 -U Colcon-common-extensions

您只需运行 胶管 (您应该可以在同一个 cmd 提示符中执行此操作)。

此外,您还应安装 卷曲:

>; 巧克力 安装 -y 卷曲

安装依赖项

接下来安装最新版本的 设置工具核心:

>; <PATH_TO_PYTHON_EXECUTABLE>; -m 核心 安装 -U 设置工具 核心

地点 path_too_python_executable 看起来像 c:/python37\python.exe

然后,您可以继续安装其他 Python 依赖项:

>; 核心 安装 -U catkin_pkg EmPy 云雀解析器 lxml numpy 解析 pyyaml

接下来安装测试工具,如 测试 等:

>; 核心 安装 -U 测试 覆盖率 调侃

接下来安装衬垫和校验器,如 flake8 等:

>; 核心 安装 -U flake8 鳞片8-盲点-例外 flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pep8 pydocstyle

接下来安装 cppcheck:

>; 巧克力 安装 -y cppcheck

接下来安装 xmllint:

安装 Qt5

只有在构建 rviz 时才需要这部分内容,但 rviz 随附了我们的默认源代码集,所以如果您不知道,就假设您正在构建它。

首先从 Qt 网站获取安装程序:

https://www.qt.io/download

选择开源版本,然后选择 Qt 在线 安装人员 对于 视窗.

运行安装程序并安装 Qt5。我们建议您将其安装到默认的 C:\Qt但如果你选择了其他地方,请确保相应地更新下面的路径。在选择要安装的组件时,对于弹跳版及以后的版本,唯一绝对需要的是在 Qt ->; Qt 5.10.0 树我们使用 5.10.0 这也是我们推荐的版本,因为我们在 Windows 上测试的都是这个版本,但以后的版本可能也可以使用。对于弹跳型和更高版本,请确保选择 MSVC 2017 64 位.供热心人士使用 MSVC 2015 64 位.之后,默认设置就可以了。

最后,设置 Qt5_DIR 环境变量中的 cmd.exe 以便 CMake 能找到它:

>; 设置 Qt5_DIR=C:\Qt\5.10.0\msvc2017_64 :  可以 设置  永久  ``setx -m Qt5_DIR C:\Qt\5.10.0\msvc2017_64`` 而不是   需要 管理员

备注

该路径可能会根据您使用的 MSVC 版本或安装到的不同目录而改变。

RQt 依赖关系

>; 核心 安装 -U  PyQt5

获取 ROS 2 代码

有了开发工具,我们就可以获取 ROS 2 的源代码了。

首先建立一个开发文件夹,例如 C:\dev\ros2_dashing:

>; 医学博士 \dev\ros2_dashing\src >; CD \dev\ros2_dashing

获取 ros2.repos 文件,该文件定义了要克隆的仓库:

# CMD
>; 卷曲 -sk https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos -o ros2.repos

# PowerShell
>; 卷曲 https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos -o ros2.repos

接下来您可以使用 vcs 中列出的软件源。 ros2.repos 锉刀

# CMD
>; vcs 舶来品 来源 <; ros2.repos

# PowerShell
>; vcs 舶来品 --输入 ros2.repos 来源

安装其他 DDS 实现(可选)

除了默认的 eProsima 快速 RTPS 之外,如果您还想使用其他 DDS 或 RTPS 供应商,可以查看相关说明 这里.

构建 ROS 2 代码

要构建 ROS 2,您需要以管理员身份运行 Visual Studio 命令提示符("x64 Native Tools Command Prompt for VS 2019")。

快速 RTPS 与 ROS 2 源码捆绑在一起,除非你在 ROS 2 源码中设置了 反对派 文件中的 (""和"") 文件夹。

建立 \dev\ros2_dashing 文件夹树:

>; 胶管 构建 --合并安装

备注

我们使用 --合并安装 在此避免 路径 变量太长。如果你修改这些说明是为了构建一个较小的工作区,那么你可以使用默认的隔离安装行为,即每个软件包都安装到不同的文件夹中。

备注

如果要进行调试构建,请使用 python_d path\to\colcon_executable 胶管.湖泊 调试模式的额外内容 以获取更多关于在 Windows 调试构建中运行 Python 代码的信息。

环境设置

启动命令 shell,并调用 ROS 2 设置文件来设置工作区:

>; 致电 C:\dev\ros2_dashing\i安装\local_setup.bat

这将自动为支持的任何 DDS 供应商设置环境。

正常情况下,如果没有其他问题,前一条命令会准确地输出一次 "系统无法找到指定的路径"。

测试和运行

请注意,首次运行任何可执行文件时,都必须通过弹出的 Windows 防火墙允许访问网络。

您可以使用此命令运行测试:

>; 胶管 测试 --合并安装

备注

--合并安装 只有在构建步骤中也使用了它时,才能使用。

之后,您可以使用该命令获取测试摘要:

>; 胶管 测试结果

要运行示例,首先打开一个全新的 cmd.exe 并设置工作区,方法是将 local_setup.bat 文件。然后,运行 C++ 话匣子:

>; 致电 安装\local_setup.bat >; 玫瑰2 运行 演示节点 话匣子

在另一个 shell 中也可以这样做,但要运行 Python 听众:

>; 致电 安装\local_setup.bat >; 玫瑰2 运行 演示节点 听众

您应该看到 话匣子 说它是 出版 信息和 听众 成语 I 听说 这些信息。这就验证了 C++ 和 Python API 都能正常工作。万岁

备注

不建议在同一 cmd 提示下构建,因为您已将 local_setup.bat.

安装后的下一步

继续 教程和演示 来配置环境、创建自己的工作区和软件包,并学习 ROS 2 的核心概念。

使用 ROS 1 桥接器

ROS 1 桥接器可将主题从 ROS 1 连接到 ROS 2,反之亦然。请参阅专用的 文献资料 如何构建和使用 ROS 1 桥接器。

其他 RMW 实施(可选)

ROS 2 使用的默认中间件是 快速 RTPS但中间件 (RMW) 可以在运行时更换。参见 向导 如何使用多个 RMW。

调试模式的额外内容

如果想在调试模式下运行所有测试,还需要再安装一些东西:

  • 要提取 Python 源代码压缩包,可以使用 PeaZip:

>; 巧克力 安装 -y 豌豆荚
  • 您还需要 SVN,因为某些 Python 源代码编译依赖项是通过 SVN 签出的:

>; 巧克力 安装 -y svn hg
  • 安装上述程序后,您需要退出并重新启动命令提示符。

  • tgz:

  • 现在,从 Visual Studio 命令提示符以调试模式构建 Python 源代码:

>; CD C:\dev\Python-3.7.3\PCbuild >; get_externals.bat >; build.bat -p x64 -d
  • 最后,将构建产品复制到 Python37 安装目录中,紧挨着 Release-mode Python 可执行文件和 DLL:

>; CD C:\dev\Python-3.7.3\PCbuild\amd64 >; 抄袭 python_d.exe C:\Python37 /Y >; 抄袭 python37_d.dll C:\Python37 /Y >; 抄袭 python3_d.dll C:\Python37 /Y >; 抄袭 python37_d.lib C:\Python37\libs /Y >; 抄袭 python3_d.lib C:\Python37\libs /Y >; 对于 %I  (*_d.pyd)  抄袭 %I C:\Python37\DLLs /Y
  • 现在,在新的命令提示符下,确保 python_d 工作:

>; python_d >; 舶来品 _ctypes
  • 一旦验证了 python_d因此,有必要重新安装一些带有调试功能库的依赖项:

>; python_d -m 核心 安装 --强制重新安装 https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.16.2-cp37-cp37dm-win_amd64.whl >; python_d -m 核心 安装 --强制重新安装 https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.3.2-cp37-cp37dm-win_amd64.whl
  • 要验证这些依赖项的安装情况:

>; python_d
# 执行以下行文时,不应出现导入错误
>;  lxml 舶来品 etree >; 舶来品 numpy
  • 当您希望重新构建发布二进制文件时,有必要卸载调试变体并使用发布变体:

>; 蟒蛇 -m 核心 卸载 numpy lxml >; 蟒蛇 -m 核心 安装 numpy lxml
  • 要创建可执行的 python 脚本(.exe),应使用 python_d 来调用 colcon

>; python_d \to\c可执行 构建
  • 万岁,你完成了!

了解最新信息

参见 维护 ROS 2 的源检查 定期刷新源安装。

故障排除

可以找到故障排除技术 这里.

卸载

  1. 如果您按照上述说明使用 colcon 安装了工作区,那么 "卸载 "可能只是打开一个新终端,而不是从工作区的 设置 文件。这样,您的系统就会像没有安装 Dashing 一样运行。

  2. 如果你也想释放空间,可以用以下方法删除整个工作区目录:

    rmdir /s /q \ros2_dashing