ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Way down the road found a way to make it work, no one's responded so I'll post my own answer. See here, an example launch file which accomplishes my desired goal.

import launch
from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode


def generate_launch_description():
    container = ComposableNodeContainer(
        name="two_nodes",
        namespace="",
        package="rclcpp_components",
        executable="component_container",
        composable_node_descriptions=[
            ComposableNode(
                package="ipc_demo",
                plugin="composition::Talker",
                name="talker",
                remappings=[("temp", "remapped")],
                extra_arguments=[{"use_intra_process_comms": True}],
            ),
            ComposableNode(
                package="ipc_demo",
                plugin="composition::Listener",
                name="listener",
                remappings=[("temp", "remapped")],
                extra_arguments=[{"use_intra_process_comms": True}],
            ),
        ],
        output="screen",
    )

    return launch.LaunchDescription([container])

Way down the road found a way to make it work, no one's responded so I'll post my own answer. See here, an example launch file which accomplishes my desired goal.

import launch
from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode


def generate_launch_description():
    container = ComposableNodeContainer(
        name="two_nodes",
        namespace="",
        package="rclcpp_components",
        executable="component_container",
        composable_node_descriptions=[
            ComposableNode(
                package="ipc_demo",
                plugin="composition::Talker",
                name="talker",
                remappings=[("temp", "remapped")],
                extra_arguments=[{"use_intra_process_comms": True}],
            ),
            ComposableNode(
                package="ipc_demo",
                plugin="composition::Listener",
                name="listener",
                remappings=[("temp", "remapped")],
                extra_arguments=[{"use_intra_process_comms": True}],
            ),
        ],
        output="screen",
    )

    return launch.LaunchDescription([container])