【ROS2】ROS2 构建系统 colcon 介绍、安装与使用

server/2024/11/26 10:30:38/

目录

  • 一、amentcolcon
  • 二、colcon 模块化安装
  • 三、colcon 基本使用介绍
    • 3.1 常用命令
      • 构建工作空间
      • 清理构建结果
      • 构建特定的包
      • 指定构建系统
      • 并行构建
      • 扩展构建选项
    • 3.2 其他命令
      • 列出所有可用的包
      • 忽略某些包
      • 查看colcon文档

ament__colcon_2">一、amentcolcon

ROS2采用了新的编译系统Ament,相比ROS1中的catkin,Ament更高效,支持跨平台编译,并能更好地集成现代构建工具链。ament_cmake和ament_python是ament生态系统中的两个重要组件,分别用于C/C++和Python软件包的构建。

ROS2采用colcon作为新的构建工具,它是一个命令行工具,用于改进构建、测试和使用多个软件包的工作流程,负责调用不同的构建系统(如ament_cmake、ament_python等)来完成软件包的构建任务。

colcon是抽象于ament之上的,ament工具链是专门服务于ROS2相关功能包的,而colcon则可以服务于任意C/C++和Python功能包,甚至Java、Rust和Go等任意语言编写的项目。它自动化了构建过程,处理了依赖关系,并设置了使用软件包的环境。colcon通过解析软件包中的 package.xml 文件来确定构建顺序和依赖项,然后调用相应的构建系统(如ament_cmake)来完成构建任务。

colcon__10">二、colcon 模块化安装

colcon是一个模块化的工具链,所有命令行参数都由相应的安装包提供,如下:

在这里插入图片描述

他们的基本功能说明如下:

python3-colcon-alias:提供别名功能,允许用户为常用的colcon命令创建简短的快捷方式。
python3-colcon-argcomplete:集成argcomplete库,为colcon命令提供命令行参数自动补全功能。
python3-colcon-bash:提供Bash脚本支持,允许colcon在Bash环境中更好地工作。
python3-colcon-bazel:为使用Bazel构建系统的项目提供colcon支持。
python3-colcon-cd:允许colcon在执行命令前自动切换到指定的工作目录。
python3-colcon-clean:提供清理构建产物的功能。
python3-colcon-cmake:为使用CMake构建系统的项目提供colcon支持。
python3-colcon-common-extensions:包含一些常用的colcon扩展。
python3-colcon-core:colcon的核心功能,包括命令行解析、日志记录、工作空间管理等。
python3-colcon-coveragepy-result:集成coverage.py,提供代码覆盖率结果的处理和报告功能。
python3-colcon-defaults:提供colcon的默认配置和设置。
python3-colcon-devtools:提供开发工具支持,如调试和性能分析。
python3-colcon-ed:与编辑器集成相关的功能。
python3-colcon-hardware-acceleration:提供硬件加速支持,可能涉及GPU或其他加速器。
python3-colcon-installed-package-information:提供已安装包的信息查询功能。
python3-colcon-lcov-result:集成LCOV,提供代码覆盖率结果的另一种处理和报告方式。
python3-colcon-library-path:管理库路径,确保构建和运行时能够找到正确的库文件。
python3-colcon-meson:为使用Meson构建系统的项目提供colcon支持。
python3-colcon-metadata:管理colcon项目的元数据。
python3-colcon-mixin:提供Mixin支持,允许通过组合的方式增强colcon的功能。
python3-colcon-notification:提供构建和测试结果的通知功能,可能通过邮件、Slack等渠道发送。
python3-colcon-output:管理colcon命令的输出,包括日志、进度信息等。
python3-colcon-override-check:检查并报告可能的配置覆盖情况,以避免意外的构建行为。
python3-colcon-package-information:提供包信息查询功能,如包的依赖关系、版本等。
python3-colcon-package-selection:允许用户选择性地构建和测试项目中的包。
python3-colcon-parallel-executor:提供并行执行构建和测试任务的功能,以提高效率。
python3-colcon-pkg-config:集成pkg-config,提供包配置信息的查询功能。
python3-colcon-powershell:提供PowerShell脚本支持,允许colcon在PowerShell环境中更好地工作。
python3-colcon-python-setup-py:为使用Python setup.py构建系统的项目提供colcon支持。
python3-colcon-recursive-crawl:提供递归遍历项目目录的功能,以发现更多的包和构建目标。
python3-colcon-rerun:允许用户重新运行之前的构建和测试任务。
python3-colcon-ros:为ROS2项目提供colcon支持,包括构建、测试、安装等。
python3-colcon-ros-distro:提供ROS发行版支持,允许用户根据特定的ROS发行版构建项目。
python3-colcon-ros-domain-id-coordinator:在ROS 2项目中协调域ID(Domain ID)的分配和使用。
python3-colcon-spawn-shell:允许用户从colcon命令中启动一个新的shell会话。
python3-colcon-test-result:处理并报告测试结果,包括测试的成功、失败、跳过等信息。
python3-colcon-zsh:提供Zsh脚本支持,允许colcon在Zsh环境中更好地工作。

一般使用时只需安装 sudo apt install python3-colcon-common-extensions 即可,一些必要的包会作为依赖自动安装,比如 python3-colcon-corepython3-colcon-defaults 等。

colcon__63">三、colcon 基本使用介绍

3.1 常用命令

构建工作空间

要构建一个包含多个软件包的工作空间,首先需要导航到该工作空间的根目录,通常这个目录下会有一个 src 文件夹,里面包含了所有的源代码包。然后运行以下命令:

colcon build

这将构建 src 文件夹中的所有软件包。

清理构建结果

如果你想清理之前的构建结果,可以使用:

colcon clean

这会删除 buildinstall 目录下的所有文件。

构建特定的包

如果你只想构建特定的一个或几个包,可以使用:

colcon build --packages-select <package_name>

例如,如果你想要构建名为 my_package 的包,命令应该是:

colcon build --packages-select my_package

指定构建系统

如果你的包使用了不同于默认的构建系统(比如 ament_cmake),你可以通过 --cmake-args 参数指定:

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

并行构建

为了加快构建过程,你可以利用多核处理器并行构建多个包。使用 -j--parallel-workers 参数指定并行工作的数量:

colcon build --parallel-workers 4

扩展构建选项

colcon 支持很多其他选项,比如设置构建目录、安装目录等。你可以通过查看帮助文档来获取更多信息:

colcon build --help

3.2 其他命令

列出所有可用的包

colcon list

忽略某些包

如果你不想构建某些特定的包,可以使用 --packages-skip 参数:

colcon build --packages-skip <package_name>

colcon_143">查看colcon文档

colcon -h

其中 colcon verbs 列出了当前已安装的功能,如需要的功能不在列表里,需要另外安装。

在这里插入图片描述



欢迎大家加QQ群,一起讨论学习:894013891


http://www.ppmy.cn/server/145027.html

相关文章

PICO VR串流调试Unity程序

在平时写Unity的VR程序的时候&#xff0c;需要调试自己写的代码&#xff0c;但是有的时候会发现场景过于复杂&#xff0c;不是HMD一体机能运行的&#xff0c;或者为了能够更方便的调试&#xff0c;不需要每次都将程序部署到眼睛里&#xff0c;这样非常浪费时间&#xff0c;对于…

利用爬虫爬取网页小说

需求分析 安装requests包 pip install requests目录采集地址&#xff1a; h t t p s : / / w w w . 3 b q g . c c / b o o k / 60417 / https://www.3bqg.cc/book/60417/ https://www.3bqg.cc/book/60417/ 章节采集地址&#xff1a; h t t p s : / / w w w . 3 b q g . c …

【不墨迹系列】快速入门 XML 语言

XML&#xff08;可扩展标记语言&#xff09;是一种用于描述数据的标记语言。它使用标签来标识数据的各个部分&#xff0c;并提供了一种灵活的结构来描述数据。以下是对XML的详细介绍以及当前使用情况的概述&#xff1a; 一、XML的特点 可扩展性&#xff1a;XML允许用户自定义…

NVR小程序接入平台EasyNVR多品牌NVR管理工具:高效管理分散视频资源的解决方案

在当今数字化、智能化的时代背景下&#xff0c;视频监控已成为各行各业不可或缺的一部分&#xff0c;从公共安全到企业运维&#xff0c;再到智慧城市建设&#xff0c;视频资源的管理与应用正面临着前所未有的挑战。如何高效整合、管理这些遍布各地的分散视频资源&#xff0c;成…

Redis-monitor安装与配置

0、前言 压测环境因为隔离原因没法直接查看redis日志跟性能指数&#xff0c;只能通过监控工具查看&#xff0c;使用开源redis-montor监控查看 开源地址&#xff1a; GitCode - 全球开发者的开源社区,开源代码托管平台 1、python环境准备&#xff08;python -v有的忽略&#xff…

单机部署kubernetes环境下Overleaf-基于MicroK8s的Overleaf应用部署指南

在本文中&#xff0c;我们将探讨如何使用MicroK8s在本地或云环境中快速部署Overleaf应用。MicroK8s是一个轻量级的Kubernetes发行版&#xff0c;它为开发者提供了一个简单的方式来部署和管理容器化应用。 需要使用Kompose转换Overleaf官方Docker Compose配置得到适用于kuberne…

Win11下载和配置VSCode(详细讲解)

配置VSCode需要的工具&#xff1a; 一、MinGW-w64 二、Visual Studio Code 一、MinGW-w64下载 1、下载 MinGW官网地址&#xff1a; Downloads - MinGW-w64 直链下载&#xff1a; 下载 mingw-w64-install.exe &#xff08;MinGW-w64 - 适用于 32 位和 64 位 Windows&#…

【分治】--- 快速选择算法

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey &#x1f3e0; 颜色划分 &#x1f4cc; 题目解析 颜色分类 本题要求我们原地对元数组划分0,1,2三个区域,也就是不能使用辅助数组&#xf…