警告

您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.

开发 ROS 2 软件包

本教程将教你如何创建第一个 ROS 2 应用程序。本教程面向希望学习如何在 ROS 2 中创建自定义软件包的开发人员,而不是希望使用 ROS 2 现有软件包的人员。

先决条件

创建软件包

所有 ROS 2 软件包都以运行命令

玫瑰2  创建 <pkg-name>; --依赖 [裁员]

在您的工作区(通常是 ~/ros2_ws/src).

为特定客户端库创建软件包:

玫瑰2  创建 <pkg-name>; --依赖 [裁员] --构建类型 ament_cmake

然后您就可以更新 package.xml 软件包信息,如依赖关系、描述和作者。

C++ 软件包

您将主要使用 add_executable() CMake 宏以及

ament_target_dependencies(<可执行文件名>; [依赖项])

来创建可执行节点和链接依赖项。

要安装启动文件和节点,可以使用 安装() 宏放在文件末尾,但在 ament_package() 宏观。

启动文件和节点的示例:

# 安装启动文件
安装(
  目录 启动
  目的地 分享/${项目名称}
)

# 安装节点
安装(
  目标 [节点名]
  目的地 lib/${项目名称}
)

Python 软件包

ROS 2 遵循 Python 的标准模块发布流程,使用 设置工具.对于 Python 软件包, setup.py 文件补充了 C++ 软件包的 CMakeLists.txt.有关分发的更多详情,请参阅 官方文件.

在您的 ROS 2 软件包中,应该有一个 setup.cfg 文件,它看起来像

[发展]
脚本目录=基数/lib/<package-name>;
[安装]
安装脚本=基数/lib/<package-name>;

和一个 setup.py 文件,看起来就像

舶来品 os
 水珠 舶来品 水珠
 设置工具 舶来品 设置

包名 = 'my_package';

设置(
    名字=包名,
    版本='0.0.0',
    # 要导出的软件包
    套餐=[包名],
    # 我们要安装的文件,特别是启动文件
    数据文件=[
        # 在软件包索引中安装标记文件
        ('share/ament_index/resource_index/packages';, ['资源/'; + 包名]),
        # 包括我们的 package.xml 文件
        (os..加入('分享';, 包名), ['package.xml';]),
        # 包括所有启动文件。
        (os..加入('分享';, 包名, 'launch';), 水珠(os..加入('launch';, *.启动.py'))),
    ],
    # 这一点也很重要
    安装要求=['setuptools';],
    zip_safe=正确,
    作者=ROS 2 开发人员';,
    作者电子邮件='[email protected]',
    维护者=ROS 2 开发人员';,
    维护者电子邮件='[email protected]',
    关键词=['foo';, 'bar';],
    分类器=[
        '目标受众 :: 开发人员';,
        '许可 :: TODO';,
        '编程语言 :: Python';,
        '主题 ::软件开发';,
    ],
    描述='我的超棒套餐;,
    许可='TODO';,
    # 与 CMakeLists 的 add_executable 宏一样,您可以将您的 python
    # 脚本在此。
    入口={
        'console_scripts';: [
            'my_script = my_package.my_script:main';
        ],
    },
)