您正在阅读的是开发版本的文档。有关最新发布的版本,请访问 Jazzy.

使用 ROS 2 启动来启动可组合节点

构图教程您已经了解了可组合节点以及如何通过命令行使用它们。在 启动教程您已经了解了启动文件以及如何使用它们来管理多个节点。

本指南将结合上述两个主题,教你如何为可组合节点编写启动文件。

设置

参见 安装说明 了解安装 ROS 2 的详情。

如果您从软件包中安装了 ROS 2,请确保有 滚动图像工具 已安装。如果您下载了压缩包或从源代码构建了 ROS 2,那么它已经是安装的一部分了。

启动文件示例

下面是一个启动文件,可以用 Python、XML 和 YAML 启动可组合节点。启动文件都会执行以下操作:

  • 使用重映射、自定义参数和额外参数实例化一个 cam2image 可组合节点

  • 使用重映射、自定义参数和额外参数实例化 showimage 可组合节点

舶来品 启动
 launch_ros.actions 舶来品 可组合节点容器
 launch_ros.descriptions 舶来品 可组合节点


捍卫 生成发射描述():
    """生成包含多个组件的启动说明;
    集装箱 = 可组合节点容器(
            名字='image_container';,
            命名空间='',
            包装='rclcpp_components';,
            可执行='component_container';,
            可组合节点描述=[
                可组合节点(
                    包装='image_tools',
                    插头='image_tools::Cam2Image';,
                    名字='cam2image';,
                    重置=[('/image';, '/burgerimage';)],
                    参数=[{'宽度';: 320, '高度';: 240, 'burger_mode': 正确, '历史';: 'keep_last';}],
                    额外参数=[{'use_intra_process_comms';: 正确}]),
                可组合节点(
                    包装='image_tools',
                    插头='image_tools::ShowImage';,
                    名字='showimage';,
                    重置=[('/image';, '/burgerimage';)],
                    参数=[{'历史';: 'keep_last';}],
                    额外参数=[{'use_intra_process_comms';: 正确}])
            ],
            产量='两者';,
    )

    返回 启动.启动说明([集装箱])

将可组合节点加载到现有容器中

容器有时可以通过其他启动文件或命令行启动。在这种情况下,您需要将组件添加到现有容器中。为此,您可以使用 加载可组合节点 将组件加载到给定的容器中。下面的示例启动了与上述相同的节点。

 启动 舶来品 启动说明
 launch_ros.actions 舶来品 加载可组合节点, 节点
 launch_ros.descriptions 舶来品 可组合节点

捍卫 生成发射描述():
    集装箱 = 节点(
        名字='image_container';,
        包装='rclcpp_components';,
        可执行='component_container';,
        产量='两者';,
    )

    加载可组合节点 = 加载可组合节点(
        目标容器='image_container';,
        可组合节点描述=[
            可组合节点(
                 包装='image_tools',
                插头='image_tools::Cam2Image';,
                名字='cam2image';,
                重置=[('/image';, '/burgerimage';)],
                参数=[{'宽度';: 320, '高度';: 240, 'burger_mode': 正确, '历史';: 'keep_last';}],
                额外参数=[{'use_intra_process_comms';: 正确}],
            ),
            可组合节点(
                包装='image_tools',
                插头='image_tools::ShowImage';,
                名字='showimage';,
                重置=[('/image';, '/burgerimage';)],
                参数=[{'历史';: 'keep_last';}],
                额外参数=[{'use_intra_process_comms';: 正确}]
            ),
        ],
    )

    返回 启动说明([集装箱, 加载可组合节点])

通过命令行使用启动文件

运行上述任何启动文件时,都可以使用 玫瑰2 启动.将数据复制到本地文件中,然后运行:

ros2 launch <path_to_launch_file>;

进程内通信

上述所有示例都使用了一个额外参数来设置节点间的进程内通信。有关进程内通信的更多信息,请参阅 进程内通信教程.

Python、XML 或 YAML:我应该使用哪种语言?

参见 使用 Python、XML 和 YAML 编写 ROS 2 启动文件 了解更多信息。