警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
使用 胶管
来构建软件包
目标 使用 胶管
.
辅导水平: 初学者
时间 20 分钟
本教程简要介绍了如何创建和构建 ROS 2 工作区,并使用 胶管
.这是一本实用教程,并不是用来取代核心文档的。
背景介绍
胶管
是对 ROS 构建工具的迭代 catkin_make
, catkin_make_isolated
, catkin_tools
和 工具
.有关 colcon 设计的更多信息,请参见 本文件.
源代码可在 colcon GitHub 组织.
先决条件
安装 colcon
苏都 适切 安装 python3-colcon-common-extensions
python3 -m 核心 安装 Colcon-common-extensions
核心 安装 -U Colcon-common-extensions
安装 ROS 2
要构建样本,您需要安装 ROS 2。
按照 安装说明.
请注意
如果从 Debian 软件包安装,本教程需要使用 桌面安装.
基础知识
ROS 工作区是一个具有特定结构的目录。通常有一个 来源
子目录。该子目录中包含 ROS 软件包的源代码。通常情况下,该目录开始时是空的。
colcon 会进行源代码编译。默认情况下,它将创建以下目录作为 来源
目录:
"(《世界人权宣言》)
构建
目录中存放中间文件。每个软件包都将创建一个子文件夹,例如 CMake 将在其中调用。"(《世界人权宣言》)
安装
目录是每个软件包的安装目录。默认情况下,每个软件包都将安装到一个单独的子目录中。"(《世界人权宣言》)
登录
目录中包含有关每次调用 colcon 的各种日志信息。
备注
与柔荑花序相比,没有 发展
目录。
创建工作区
首先,创建一个目录 (ros2_ws
) 来包含我们的工作区:
mkdir -p ~/ros2_ws/src
CD ~/ros2_ws
mkdir -p ~/ros2_ws/src
CD ~/ros2_ws
医学博士 \dev\ros2_ws\src
CD \dev\ros2_ws
此时,工作区只包含一个空目录 来源
:
.└── 来源
1 目录、 0 文件
添加一些资料来源
让我们克隆 例子 库中的 来源
工作区的目录:
笨蛋 复制 https://github.com/ros2/examples src/examples -b 狐狸
现在,工作区中应该有 ROS 2 示例的源代码:
.└── 来源
└── 例子
├── 贡献.md
├── 许可证
├── rclcpp
├── rclpy
└── README.md
4 目录、 3 文件
寻找底层材料
重要的是,我们要为现有的 ROS 2 安装提供环境,以便为我们的工作区提供示例软件包所需的构建依赖项。这可以通过二进制安装或源安装(即另一个 colcon 工作区)提供的设置脚本来实现(参见 安装).我们称这种环境为 基座.
我们的工作空间 ros2_ws
将是一个 覆盖物 在现有的 ROS 2 安装程序之上。一般来说,当你计划迭代少量软件包时,建议使用覆盖层,而不是将所有软件包放到同一个工作区。
建立工作区
请注意
要在 Windows 上构建软件包,您需要进入 Visual Studio 环境,请参阅 构建 ROS 2 代码 了解更多详情。
在工作区的根目录下,运行 胶管 构建
.由于构建类型如 ament_cmake
不支持 发展
空间并要求安装软件包时,colcon 支持以下选项 --symlink-install
.这样就可以通过更改 消息来源
空间(如 Python 文件或其他非编译资源),以加快迭代速度。
colcon build --symlink-install
colcon build --symlink-install
colcon build --symlink-install --merge-install
Windows 不允许使用长路径,因此 合并安装
会将所有路径合并到 安装
目录。
构建完成后,我们应该能看到 构建
, 安装
和 登录
目录:
.├── 建设├── 安装 ├── log └── 来源
4 目录、 0 文件
运行测试
要运行我们刚刚构建的软件包的测试,请运行以下程序:
胶体磨试验
胶体磨试验
记住使用 x64 本地 工具 指挥 提示 对于 VS 2019
执行以下命令,因为我们要创建一个工作区。
colcon test --merge-install
您还需要指定 --合并安装
因为我们在上面的建筑中使用了它。
环境来源
当 colcon 成功完成构建后,输出将在 安装
目录中。在使用任何已安装的可执行文件或库之前,您需要将它们添加到您的路径和库路径中。 安装
目录来帮助设置环境。这些文件将在路径和库路径中添加所有必要元素,并提供软件包导出的任何 bash 或 shell 命令。
消息来源 install/setup.bash
. install/setup.bash
致电 安装\setup.bat
或者使用 Powershell:
安装\setup.ps1
试用演示
有了源环境,我们就可以运行由 colcon 构建的可执行文件。让我们运行示例中的一个用户节点:
玫瑰2 运行 examples_rclcpp_minimal_subscriber 订阅者成员功能
在另一个终端,让我们运行一个发布节点(别忘了源设置脚本):
玫瑰2 运行 examples_rclcpp_minimal_publisher 出版商成员功能
您应该会看到来自发布者和订阅者的信息,数字会递增。
创建自己的套餐
colcon 使用 package.xml
中定义的规范 REP 149 (格式 2 也支持)。
colcon 支持多种构建类型。推荐的构建类型有 ament_cmake
和 ament_python
.还支持纯 cmake
打包。
举例说明 ament_python
构建是 ament_index_python 软件包 其中 setup.py 是构建的主要入口。
一个软件包,如 演示节点 使用 ament_cmake
构建类型,并使用 CMake 作为构建工具。
为方便起见,您可以使用以下工具 玫瑰2 包 创建
来创建一个基于模板的新软件包。
备注
对于 柔荑花序
用户,这相当于 catkin_create_package
.
设置 colcon_cd
命令 colcon_cd
可以快速将 shell 的当前工作目录更改为软件包的目录。例如 colcon_cd some_ros_package
很快就会进入目录 ~/ros2_ws/src/some_ros_package
.
echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=/opt/ros/foxy/" >> ~/.bashrc
echo "source /usr/local/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=~/ros2_install" >> ~/.bashrc
尚未提供
取决于您安装的方式 colcon_cd
以及您的工作空间位置,上述说明可能会有所不同,请参阅 文件 了解更多详情。要在 Linux 和 macOS 中撤销此操作,请找到系统的 shell 启动脚本,并删除附加的源代码和导出命令。
设置 胶管
选项卡完成
命令 胶管
支持命令完成 为 bash 和类 bash shell 服务,如果 Colcon-argcomplete
软件包已安装。
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc
echo "source $HOME/.local/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bash_profile
尚未提供
取决于您安装的方式 胶管
以及您的工作空间位置,上述说明可能会有所不同,请参阅 文件 了解更多详情。要在 Linux 和 macOS 中撤销此操作,请找到系统的 shell 启动脚本并删除附加的源代码命令。
小贴士
如果不想构建特定软件包,请将名为
COLCON_IGNORE
就不会被索引。如果你想避免在 CMake 包中配置和构建测试,你可以通过:
--cmake-args -dbuild_testing=0
.如果您想从软件包中运行单个特定测试:
胶管 测试 --软件包--选择 YOUR_PKG_NAME --测试参数 -R 你的测试在_pkg 中