Open Myzhar opened 10 months ago
Read mode on Stack Exchange.
Based on some internal discussion as well as the Stack Exchange thread, I think the solution here is to switch away from SystemDefaultsQoS
here in depthimage_to_laserscan
, and to enable qos_overrides. We still have a bug down in rclcpp
where intraprocess comms should not throw this error, but depthimage_to_laserscan
should also not be using SystemDefaultsQoS
.
@Myzhar If you'd like to open a PR to do that, I'd be happy to review it.
@clalancette I will try to work on this during the weekend. :+1:
@clalancette I will try to work on this during the weekend. 👍
Fantastic, thank you!
@clalancette I tested the fix with my launch file and I confirm that now I can enable the IPC option also for the depthimage_to_laserscan
node component by uncommenting the launch file line
#extra_arguments=[{'use_intra_process_comms': True}] # Uncomment when supported by the package
I am not sure if there is a way to effectively test whether IPC is enabled and being used correctly.
I am not sure if there is a way to effectively test whether IPC is enabled and being used correctly.
Yeah, we should be able to add launch tests to the tests. I'll comment on the PR.
Is there a command to get the status of IPC while a node is running? I'd like to add it to diagnostic.
Is there a command to get the status of IPC while a node is running? I'd like to add it to diagnostic.
I'm not sure, to be honest.
When I try to enable IPC in composition I get this error:
Component constructor threw an exception: intraprocess communication is not allowed with a zero qos history depth value
The default QoS settings for the
depthimage_to_laserscan
component are not good for using IPC.Example: