视窗(来源)

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

系统要求

仅支持 Windows 10。

语言支持

确保您的本地语言支持 UTF-8.例如,在安装中文版 Windows 10 时,您可能需要安装一个 英语语言包.

系统设置

安装巧克力

Chocolatey 是一款 Windows 软件包管理器,请按照安装说明进行安装:

https://chocolatey.org/install

你将使用 Chocolatey 安装其他一些开发工具。

安装 Python

打开命令提示符,键入以下内容,通过 Chocolatey 安装 Python:

巧克力 安装 -y 蟒蛇 --版本 3.8.3

备注

Chocolatey 会将 Python 安装在 C:/Python38,安装的其他部分也希望它在那里。如果您将 Python 安装在其他地方,则必须将其复制或链接到该位置。

安装 Visual C++ Redistributables

打开命令提示符,键入以下内容,通过 Chocolatey 安装:

巧克力 安装 -y vcredist2013 vcredist140

安装 OpenSSL

打开命令提示符,键入以下内容,通过 Chocolatey 安装 OpenSSL:

巧克力 安装 -y opensl --版本 1.1.1.2100

该命令设置了一个环境变量,该变量在会话中持续存在:

setx /m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg";

您需要将 OpenSSL-Win64 bin 文件夹添加到 PATH 中。方法是点击 Windows 图标,输入 "环境变量",然后点击 "编辑系统环境变量"。在弹出的对话框中,单击 "环境变量",然后单击底部窗格中的 "路径",最后单击 "编辑 "并添加以下路径。

  • C:\Program Files\OpenSSL-Win64\bin\

安装 Visual Studio

安装 Visual Studio 2019。

如果您已经拥有付费版本的 Visual Studio 2019(专业版、企业版),请跳过此步骤。

微软提供了一个名为 "社区 "的免费版 Visual Studio 2019,可用于构建使用 ROS 2 的应用程序。 您可以通过此链接直接下载安装程序。

确保已安装 Visual C++ 功能。

确保它们已安装的简单方法是选择 台式机 发展 C++ 安装过程中的工作流程。

./././_images/windows-vs-studio-install.png

在待安装组件列表中取消选择 C++ CMake 工具,确保没有安装这些工具。

安装 OpenCV

有些示例需要安装 OpenCV。

您可以从以下网址下载预编译版本的 OpenCV 3.4.6 https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip .

假设您将其解压缩到 C:\opencv在 "命令提示符 "中键入以下内容(需要管理员权限):

setx /m OpenCV_DIR C:\opencv

由于您使用的是预编译 ROS 版本,我们必须告诉它在哪里可以找到 OpenCV 库。您必须扩展 路径 变量为 C:\opencv\x64\vc16\bin.

安装依赖项

在 Chocolatey 软件包数据库中,有一些依赖项是不可用的。为了简化手动安装过程,我们提供了必要的 Chocolatey 软件包。

由于一些巧克力软件包依赖于 CMake,我们首先要安装 CMake

巧克力 安装 -y cmake

您需要添加 CMake bin 文件夹 C:\Program Files\CMake\bin 到你的 PATH。

请从以下网址下载这些软件包 GitHub 存储库。

  • asio.1.12.1.nupkg

  • bullet.3.17.nupkg

  • cunit.2.1.3.nupkg

  • eigen-3.3.4.nupkg

  • tinyxml2.6.0.0.nupkg

下载这些软件包后,打开一个管理 shell 并执行以下命令:

巧克力 安装 -y -s <PATH\TO\D自载\>; 秋叶 单元 本征 tinyxml2 子弹

请更换 PATH\DOWNLOADS>; 文件夹。

首先升级 pip 和 setuptools:

蟒蛇 -m 核心 安装 -U 核心 设置工具==59.6.0

现在安装一些额外的 python 依赖项:

蟒蛇 -m 核心 安装 -U catkin_pkg 加密 空虚 importlib-metadata jsonschema 云雀==1.1.1 lxml matplotlib 网接口 numpy opencv-python PyQt5 枕头 psutil 开罗  解析==2.4.7 测试 pyyaml rosdistro

安装各种先决条件

接下来安装 xmllint:

安装 Qt5

下载 5.12.X 脱机安装程序 从 Qt 网站下载。运行安装程序。确保选择 MSVC 2017 64 位 下的组成部分 Qt ->; Qt 5.12.12

最后,在管理员 cmd.exe 窗口设置这些环境变量。下面的命令假定你已将其安装到默认位置,即 C:\Qt.

setx /m Qt5_DIR C:\Qt\Qt5.12.12\5.12.12\msvc2017_64 setx /m qt_qpa_platform_plugin_path C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\p卢金斯\p平台

备注

该路径可能会根据所安装的 MSVC 版本、Qt 的安装目录以及所安装的 Qt 版本而改变。

RQt 依赖关系

要运行 rqt_graph,您需要 下载 并安装 Graphviz.安装程序会询问是否将 graphviz 添加到 PATH,请选择将其添加到当前用户或所有用户。

从 Chocolatey 安装其他先决条件

巧克力 安装 -y cppcheck 卷曲 笨蛋 winflexbison3

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

安装 Python 的先决条件

安装其他 Python 依赖项:

核心 安装 -U Colcon-common-extensions 覆盖率 flake8 鳞片8-盲点-例外 flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes 调侃 mypy==0.931 pep8 pydocstyle 测试 pytest-cov pytest-mock 重复 PETEST-RERUNFILLS 跃马 vcstool

构建 ROS 2

获取 ROS 2 代码

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

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

备注

由于 Windows 默认路径限制(260 个字符)较短,因此所选路径必须较短。要允许更长的路径,请参阅 https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry.

医学博士 \jazzy\src
CD \jazzy

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

vcs 舶来品 --输入 https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos 来源

安装其他 RMW 实现(可选)

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

在工作区中构建代码

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

建立 \jazzy 文件夹树:

胶管 构建 --合并安装

备注

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

备注

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

设置环境

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

致电 C:\jazzy\i安装\local_setup.bat

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

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

举例说明

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

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

胶管 测试 --合并安装

备注

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

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

胶管 测试结果

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

致电 安装\local_setup.bat ros2 运行 演示节点 话匣子

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

致电 安装\local_setup.bat ros2 运行 演示节点 听众

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

备注

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

下一步工作

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

调试模式的额外内容

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

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

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

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

  • tgz:

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

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

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

python_d -c "import _ctypes ; import coverage";
  • 一旦验证了 python_d因此,有必要重新安装一些带有调试功能库的依赖项:

python_d -m 核心 安装 --强制重新安装 https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.18.4-cp38-cp38d-win_amd64.whl python_d -m 核心 安装 --强制重新安装 https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.5.1-cp38-cp38d-win_amd64.whl
  • 要验证这些依赖项的安装情况:

python_d -c "from lxml import etree ; import numpy";
  • 当您希望重新构建发布二进制文件时,有必要卸载调试变体并使用发布变体:

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

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

了解最新信息

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

故障排除

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

卸载

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

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

    rmdir /s /q \ros2_jazzy