-
Notifications
You must be signed in to change notification settings - Fork 239
Description
In rclcpp, nodes (actually, components) can be composed in a single process.
Moreover, with the flag use_intra_process_comms = True, components are allowed to communicate in an optimized way, relying on intra-process exchange of message references (or even better, adapted types).
TransformListener has two constructors: one that creates a new node, and one that relies on an existing one. However, if TransformListener is constructed out of a reference to a node that is an IPC-enabled component, this message appears during component initialization:
Component constructor threw an exception: intraprocess communication allowed only with volatile durability
Now, digging more in TransformListener constructor, a set of default QoS are used for TF subscription. However, I think it needs to be determined whether subscribing with "volatile durability" makes sense within TF2, and default to that if the node passed to TransformListener constructor is detected as using "use_intra_process_comms = True" flag.
Any comments/help?