视窗(来源)
本指南介绍如何在 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++
安装过程中的工作流程。
在待安装组件列表中取消选择 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:
下载 64 位二进制存档 的
libxml2
(及其附属机构图标
和zlib
)从 https://www.zlatkovic.com/projects/libxml/将所有存档解压缩到例如
C:\xmllint
添加
C:\xmllint\bin
到路径
.
安装 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
:为使说明简明扼要,请将其提取为
C:\dev\Python-3.8.3
现在,从 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可执行 构建
万岁,你完成了!
了解最新信息
参见 维护源检查 定期刷新源安装。
故障排除
可以找到故障排除技术 这里.
卸载
如果您按照上述说明使用 colcon 安装了工作区,那么 "卸载 "可能只是打开一个新终端,而不是从工作区的
设置
文件。这样,您的系统环境就会像没有安装 Jazzy 一样运行。如果你也想释放空间,可以用以下方法删除整个工作区目录:
rmdir /s /q \ros2_jazzy