警告
您正在阅读的 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 提示符并打开一个新的,但此时您应该可以运行 笨蛋
, 蟒蛇
, cmake
和 patch.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:
下载 64 位二进制存档 的
libxml2
(及其附属机构图标
和zlib
)从 https://www.zlatkovic.com/projects/libxml/将所有存档解压缩到例如
C:\xmllint
添加
C:\xmllint\bin
到路径
.
安装 Qt5
只有在构建 rviz 时才需要这部分内容,但 rviz 随附了我们的默认源代码集,所以如果您不知道,就假设您正在构建它。
首先从 Qt 网站获取安装程序:
选择开源版本,然后选择 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
:为使说明简明扼要,请将其提取为
C:\dev\Python-3.7.3
现在,从 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 的源检查 定期刷新源安装。
故障排除
可以找到故障排除技术 这里.
卸载
如果您按照上述说明使用 colcon 安装了工作区,那么 "卸载 "可能只是打开一个新终端,而不是从工作区的
设置
文件。这样,您的系统就会像没有安装 Dashing 一样运行。如果你也想释放空间,可以用以下方法删除整个工作区目录:
rmdir /s /q \ros2_dashing