Skip to content

[Jazzy] Does the composable rosbag2 Player/Recorder support intra-process / zero-copy communication? #2267

@munenori-torikawa-j

Description

@munenori-torikawa-j

In ROS2 Jazzy, rosbag2 Recorder/Player can be used as composable nodes, and composable nodes can enable more efficient intra-process / zero-copy communication (with some exceptions and limitations).

On the other hand, rosbag2 appears to use type-erased serialized pub/sub (GenericSubscription/GenericPublisher). The rclcpp API reference for GenericSubscription states: “It does not support intra-process handling”:
https://docs.ros.org/en/jazzy/p/rclcpp/generated/classrclcpp_1_1GenericSubscription.html

My understanding is that for example, even if a publisher and rosbag2_transport::Recorder are composed into the same process, they do not communicate via intra-process / zero-copy, because the rosbag2 Recorder/Player uses GenericSubscription/GenericPublisher, which is not IPC-capable. Is this correct?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions