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
Describe your question
Is there a way - or plans to implement one - to allow using intra-process communication the component nodes of the ROS 2 driver?
Currently, it is not possible to enable intra-process communication on the driver nodes because rclcpp doesn't yet support using it with transient local topics, see ros2/rclcpp#752 and ros2/rclcpp#1753 for some of the discussion on rclcpp side. Of the ouster nodes, os_sensor currently publishes the metadata topic with transient local QoS, and os_cloud does the same with transforms between the lidar frames.
I would think that disabling the tf_static publishing should not be a big problem if desired: the user should just take care to broadcast the transforms separately from somewhere else. I also vaguely remember seeing an issue/suggestion about parameter for publishing of the transforms, but can't seem to find it now, so perhaps I was dreaming about that.
About the metadata, I don't really know. Would it be possible to disable that publisher and still have the driver work correctly, or alternatively change the QoS of it to have a volatile durability?
The support for the transient local QoS with intra-process communication on the rclcpp side seems to be progressing extremely slowly, so the options are either to work around the issue for now or just not use the intra-process communication. I would be very interested to try it out, though I do not have any metrics to say how big of a reduction to latency etc. this might provide. The difference should be between copying the data and just passing a pointer, but how much this would affect actual performance is, at the moment, unknown to me.
Platform (please complete the following information):
Ouster Sensor: N/A
Ouster Firmware Version: N/A
ROS version/distro: Humble
Operating System: N/A
Machine Architecture: N/A
The text was updated successfully, but these errors were encountered:
Edit: Never mind, I just realized that there are open PRs about allowing the disabling of the tf publisher and explicitly excluding the metadata publisher from intra-process communication. These, to my knowledge, should fix the problem described above, so I will go ahead and close this issue.
Describe your question
Is there a way - or plans to implement one - to allow using intra-process communication the component nodes of the ROS 2 driver?
Currently, it is not possible to enable intra-process communication on the driver nodes because rclcpp doesn't yet support using it with transient local topics, see ros2/rclcpp#752 and ros2/rclcpp#1753 for some of the discussion on rclcpp side. Of the ouster nodes, os_sensor currently publishes the metadata topic with transient local QoS, and os_cloud does the same with transforms between the lidar frames.
I would think that disabling the tf_static publishing should not be a big problem if desired: the user should just take care to broadcast the transforms separately from somewhere else. I also vaguely remember seeing an issue/suggestion about parameter for publishing of the transforms, but can't seem to find it now, so perhaps I was dreaming about that.
About the metadata, I don't really know. Would it be possible to disable that publisher and still have the driver work correctly, or alternatively change the QoS of it to have a volatile durability?
The support for the transient local QoS with intra-process communication on the rclcpp side seems to be progressing extremely slowly, so the options are either to work around the issue for now or just not use the intra-process communication. I would be very interested to try it out, though I do not have any metrics to say how big of a reduction to latency etc. this might provide. The difference should be between copying the data and just passing a pointer, but how much this would affect actual performance is, at the moment, unknown to me.
Platform (please complete the following information):
The text was updated successfully, but these errors were encountered: