ROS2 功能包创建与 CMake 编译链路详解

ros2 pkg create 是 ROS2(Robot Operating System 2)中用于快速初始化功能包的官方核心命令行工具。它的核心价值在于自动生成功能包所需的完整目录结构、配置文件及可选示例节点,避免手动创建文件和配置的繁琐操作,大幅提升开发效率。
该命令支持两种主流构建类型(C++/Python),可直接指定依赖包、维护者信息、开源协议等关键配置,生成的功能包完全符合 ROS2 官方规范,可直接用于编译、运行及后续开发扩展。
创建工作空间
首先需要在工作区根目录下新建一个文件夹,并带 src 子目录:
mkdir -p test_ws/src && cd test_ws/src
创建功能包命令参数详解
命令基本格式
基础语法如下,将必填项与可选参数分离,清晰易懂:
ros2 pkg create [可选参数] <功能包名称>
关键说明:
<功能包名称>:必填项。自定义功能包名称,需遵循 ROS2 命名规范(小写英文、可搭配下划线,禁止大写、特殊符号及中文)。[可选参数]:用于配置功能包的构建类型、依赖、创建路径、描述信息等,按需选择使用。
基础配置参数
-h, --help:显示该命令的所有参数说明及使用方法,快速查阅帮助信息后退出。--package-name:显式指定功能包名称,用于解决'目录名与包名不一致'的场景,优先级高于默认目录名(也可以直接写名字不加该参数)。--description:设置功能包的描述信息,描述内容将写入package.xml的<description>标签,便于他人理解包的用途。--license:指定功能包的开源协议,常用协议:Apache-2.0、MIT、BSD,协议信息写入package.xml。--maintainer:设置功能包维护者的姓名,写入package.xml的<maintainer>标签,便于后续维护和沟通。
核心构建类型参数(必选)
-
--build-type ament_cmake:构建类型为 C++ 包。 默认构建类型,自动生成CMakeLists.txt、src目录(用于存放 C++ 源码),支持 C++ 节点开发、自定义消息编译等。ros2 pkg create my_cpp_pkg --build-type ament_cmake -
--build-type ament_python:构建类型为 Python 包。 自动生成setup.py、setup.cfg、功能包同名目录(用于存放 Python 源码),支持 Python 节点开发,语法简洁、开发效率高。


