警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
使用 ROS 2 启动来启动可组合节点
在 构图教程您已经了解了可组合节点以及如何通过命令行使用它们。在 启动教程您已经了解了启动文件以及如何使用它们来管理多个节点。
本指南将结合上述两个主题,教你如何为可组合节点编写启动文件。
设置
参见 安装说明 了解安装 ROS 2 的详情。
如果您从软件包中安装了 ROS 2,请确保有 ROS 银河图像工具
已安装。如果您下载了压缩包或从源代码构建了 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>;
进程内通信
上述所有示例都使用了一个额外参数来设置节点间的进程内通信。有关进程内通信的更多信息,请参阅 进程内通信教程.