You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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?
The text was updated successfully, but these errors were encountered:
Intra-process comms can be enabled/disabled per-topic. I strongly suggest to explicitly disable that in the TransformListener source code for /tf and /tf_static topic subscriptions. This will allow developers to use TransformListener with components without spawning a new Node instance.
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?
The text was updated successfully, but these errors were encountered: