将启动文件集成到 ROS 2 软件包中

目标 为 ROS 2 软件包添加启动文件

辅导水平: 中级

时间 10 分钟

先决条件

您应该已经通过教程了解了如何 创建 ROS 2 软件包.

与往常一样,别忘了在 您打开的每个新终端.

背景介绍

上一个教程之前,我们学习了如何编写独立的启动文件。本教程将介绍如何在现有软件包中添加启动文件,以及通常使用的约定。

任务

1 创建软件包

为软件包创建一个工作空间:

mkdir -p launch_ws/src
CD launch_ws/src
ros2 pkg create --build-type ament_python --license Apache-2.0 py_launch_example

2 创建容纳启动文件的结构

按照惯例,软件包的所有启动文件都存储在 启动 目录。确保创建一个 启动 目录下的文件。

对于 Python 软件包,包含软件包的目录应如下所示:

源代码
  py_launch_example/
    发射/
    package.xml
    py_launch_example/
    资源/
    setup.cfg
    setup.py
    测试/

为了让 colcon 能够找到并使用我们的启动文件,我们需要告知 Python 的设置工具它们的存在。为此,请打开 setup.py 文件,添加必要的 舶来品 语句,并将启动文件包含在 数据文件 的参数 设置:

舶来品 os
 水珠 舶来品 水珠
# 其他进口 ...

包名 = 'py_launch_example'

设置(
    # 其他参数 ...
    数据文件=[
        # ...其他数据文件
        # 包括所有启动文件。
        (os..加入('分享';, 包名, 'launch';), 水珠(os..加入('launch';, '*launch.[pxy][yma]*')))
    ]
)

3 编写启动文件

您的 启动 目录下,新建一个名为 my_script_launch.py. _launch.py 建议用作 Python 启动文件的后缀,但不是必需的。但是,启动文件名需要以 launch.py 将由 玫瑰2 启动.

启动文件应定义 generate_launch_description() 函数,该函数返回一个 launch.LaunchDescription() 将由 玫瑰2 启动 动词

舶来品 启动
舶来品 launch_ros.actions

捍卫 生成发射描述():
    返回 启动.启动说明([
        发射.行动.节点(
            包装='demo_nodes_cpp',
            可执行='talker';,
            名字='talker';),
  ])

4 构建并运行启动文件

转到工作区的顶层,并构建它:

Colcon build

胶管 构建 成功创建工作区后,就可以运行启动文件了:

ros2 启动 py_launch_example my_script_launch.py

文件

发射文件 中也使用的概念提供了更多详细信息。 发射.

有关发射功能的其他文档/示例即将发布。请参见源代码 (https://github.com/ros2/launchhttps://github.com/ros2/launch_ros)。