Is iceoryx compatible with composable components?

asked 2021-10-14 02:53:28 -0500

KenYN gravatar image

updated 2021-10-14 02:56:22 -0500

If I run a launch file that looks like this:

def generate_launch_description():
    PubImageComponent = ComposableNode(
        # whatever
    )
    SubImageComponent = ComposableNode(
        # whatever
    )
    """Generate launch description with multiple components."""
    container = [
        ComposableNodeContainer(
            name='container1',
            namespace='',
            package='rclcpp_components',
            executable='component_container_mt',
            composable_node_descriptions=[
                PubImageComponent,
            ],
            output='screen',
        ),
        ComposableNodeContainer(
            name='container2',
            namespace='',
            package='rclcpp_components',
            executable='component_container_mt',
            composable_node_descriptions=[
                SubImageComponent
            ],
            output='screen',
        )
    ]

    return launch.LaunchDescription(container)

RMW_IMPLEMENTATION=rmw_iceoryx_cpp ros2 launch sample_pub sample.launch.py fails with:

[INFO] [launch]: All log files can be found below /home/docker/.ros/log/2021-10-14-16-38-42-237112-foo
[INFO] [launch]: Default logging verbosity is set to INFO
Log level set to: [Warning]
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/galactic/lib/python3.8/site-packages/launch/launch_service.py:226> exception=RCLError('failed to create client: rmw_iceoryx_cpp does not support clients., at /home/docker/iceoryx_ws/src/rmw_iceoryx/rmw_iceoryx_cpp/src/rmw_client.cpp:36, at /tmp/binarydeb/ros-galactic-rcl-3.1.2/src/rcl/client.c:111')>

There's something in rclcpp (perhaps) trying to launch a client, although using the default CycloneDDS ros2 client list doesn't show anything.

If I try via command line according to https://docs.ros.org/en/galactic/Tuto...:

$ RMW_IMPLEMENTATION=rmw_iceoryx_cpp ros2 run rclcpp_components component_container
Log level set to: [Warning]
2021-10-14 16:45:52.073 [Warning]: Requested queue capacity 1000 exceeds the maximum possible one for this subscriber, limiting from 1000 to 256
$ ros2 component list
$

I should see /ComponentManager, but nothing appears. Is it possible to use IceOryx along with Composable Nodes?

edit retag flag offensive close merge delete

Comments

1

Just an observation: I feel your questions are interesting and touch on some important parts of the UX of ROS 2 right now. Unfortunately there don't appear to be enough ROS 2-experienced users here to answer them.

The people who could answer this question likely don't frequent ROS Answers, so you may want to reach out to the Iceoryx / Cyclone devs via some other channel.

gvdhoorn gravatar image gvdhoorn  ( 2021-10-14 03:36:14 -0500 )edit