使用 colcon
构建包
目录
背景
先决条件
安装 colcon
安装 ROS 2
基础
创建工作空间 Create a workspace
添加一些来源 Add some sources
来源一个垫层 Source an underlay
建立工作空间 Build the workspace
运行测试
环境来源 Source the environment
尝试演示
创建您自己的包 Create your own package
设置
colcon_cd
设置
colcon
标签补全 Setup colcon tab completion小贴士 Tips
目标:使用 colcon
构建 ROS 2 工作区。
教程级别:初学者
时间:20 分钟
这是一个关于如何使用 colcon
创建和构建 ROS 2 工作空间的简短教程。这是一个实用的教程,不旨在取代核心文档。
背景
colcon
是 ROS 构建工具 catkin_make
、 catkin_make_isolated
、 catkin_tools
和 ament_tools
的一次迭代。有关 colcon 设计的更多信息,请参阅此文档 https://design.ros2.org/articles/build_tool.html。
源代码可以在 colcon GitHub 组织中找到。https://github.com/colcon
先决条件
安装 colcon
sudo apt install python3-colcon-common-extensions
安装 ROS 2
要构建样本,您需要安装 ROS 2。https://docs.ros.org/en/jazzy/Installation.html
遵循安装说明。
注意
如果从 Debian 包安装,本教程需要桌面安装。https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html#linux-install-debians-install-ros-2-packages
基础知识
ROS 工作空间是具有特定结构的目录。通常有一个 src 子目录。源代码包将位于该子目录内。通常,目录开始时是空的。
colcon 进行源代码外构建。默认情况下,它会创建以下目录作为 src
目录的同级目录:
build
目录将用于存储中间文件。对于每个包,将创建一个子文件夹,在该子文件夹中例如会调用 CMake。install
目录是每个包将要安装到的地方。默认情况下,每个包都会安装在一个单独的子目录中。log
目录包含每次 colcon 调用的各种日志信息。
便条
与 catkin 相比,没有 devel
目录。
创建工作空间
首先,创建一个目录( ros2_ws
)来包含我们的工作区:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
在这一点上,工作空间包含一个单一的空目录 src
:
添加一些源
让我们克隆示例https://github.com/ros2/examples仓库到工作空间的 src
目录:
cxy@ubuntu2404-cxy:~/ros2_ws$ git clone https://github.com/ros2/examples src/examples -b jazzy
正克隆到 'src/examples'...
remote: Enumerating objects: 8519, done.
remote: Counting objects: 100% (2746/2746), done.
remote: Compressing objects: 100% (467/467), done.
remote: Total 8519 (delta 2417), reused 2462 (delta 2257), pack-reused 5773
接收对象中: 100% (8519/8519), 1.33 MiB | 1.18 MiB/s, 完成.
处理 delta 中: 100% (6141/6141), 完成.
现在工作区应该有 ROS 2 示例的源代码:
源一个垫层
重要的是我们已经为现有的 ROS 2 安装源了环境,这将为我们的工作空间提供示例包所需的构建依赖项。这是通过源安装或二进制安装提供的设置脚本来实现的,即另一个 colcon 工作空间(见安装https://docs.ros.org/en/jazzy/Installation.html)。我们称这个环境为底层。
我们的工作空间 ros2_ws
将作为现有 ROS 2 安装的上层覆盖。通常,当您计划迭代少量包时,建议使用覆盖,而不是将所有包放入同一个工作空间。
构建工作空间
注意
在 Windows 上构建包,您需要处于 Visual Studio 环境中,请参阅构建 ROS 2 代码以获取更多详细信息。https://docs.ros.org/en/jazzy/Installation/Alternatives/Windows-Development-Setup.html#windows-dev-build-ros2
在工作区的根目录下,运行 colcon build
。由于像 ament_cmake
这样的构建类型不支持 devel
空间的概念,并且需要安装包,colcon 支持 --symlink-install
选项。这允许通过更改 source
空间中的文件(例如 Python 文件或其他非编译资源)来更改已安装的文件,以便更快地迭代。
colcon build --symlink-install
构建完成后,我们应该看到 build
、 install
和 log
目录:
cxy@ubuntu2404-cxy:~/ros2_ws$ colcon build --symlink-install
Starting >>> examples_rclcpp_async_client
Starting >>> examples_rclcpp_cbg_executor
Starting >>> examples_rclcpp_minimal_action_client
Starting >>> examples_rclcpp_minimal_action_server
Starting >>> examples_rclcpp_minimal_client
Starting >>> examples_rclcpp_minimal_composition
Starting >>> examples_rclcpp_minimal_publisher
Starting >>> examples_rclcpp_minimal_service
Starting >>> exam