使用ROS 2launch到launch可组合节点 [待校准@6284]
在 Composition tutorial, you learned about composable nodes and how to use them from the command-line. In the Launch tutorials 中,您学习了launch文件以及如何使用它们来管理多个节点。 [待校准@6285]
本指南将结合以上两个话题,并教您如何为可组合节点编写launch文件。 [待校准@6286]
设置 [待校准@6287]
有关安装ROS 2的详细信息,请参见 installation instructions 。 [待校准@6288]
如果您已经从包中安装了ROS 2,请确保您已经安装了 ros-foxy-image-tools
。如果您从源文件下载了archive或构建的ROS 2,它将已经是安装的一部分。 [待校准@6289]
Launch文件示例 [待校准@6164]
以下是launch文件launches组合节点Python、XML和YAML。launch文件都执行以下操作: [待校准@6290]
使用重映射、自定义参数和额外参数实例化cam2image可组合节点 [待校准@6291]
使用重映射、自定义参数和额外参数实例化showimage可组合节点 [待校准@6292]
import launch
from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode
def generate_launch_description():
"""Generate launch description with multiple components."""
container = ComposableNodeContainer(
name='image_container',
namespace='',
package='rclcpp_components',
executable='component_container',
composable_node_descriptions=[
ComposableNode(
package='image_tools',
plugin='image_tools::Cam2Image',
name='cam2image',
remappings=[('/image', '/burgerimage')],
parameters=[{'width': 320, 'height': 240, 'burger_mode': True, 'history': 'keep_last'}],
extra_arguments=[{'use_intra_process_comms': True}]),
ComposableNode(
package='image_tools',
plugin='image_tools::ShowImage',
name='showimage',
remappings=[('/image', '/burgerimage')],
parameters=[{'history': 'keep_last'}],
extra_arguments=[{'use_intra_process_comms': True}])
],
output='both',
)
return launch.LaunchDescription([container])
使用命令行中的Launch文件 [待校准@6293]
上述任何launch文件都可以与 ros2 launch
一起运行。将数据复制到本地文件中,然后运行: [待校准@6294]
ros2 launch <path_to_launch_file>
进程内通讯 [待校准@6295]
以上所有示例都使用额外的参数来设置节点之间的进程内通讯。有关什么是进程内通讯的更多信息,请参见 intra-process comms tutorial 。 [待校准@6296]