-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap and guidelines for using Box/Buffer/Queue #279
Comments
👀 Could you have a look please, and add your thoughts? And feel free to ping other developers if you think they can provide valuable input to this topic. |
Summary from WG meeting on February 12th:
|
Thanks for the consolidated report @christophfroehlich |
@christophfroehlich Sorry for my late comment. I was awfully occupied the last weeks. RealtimeBox
RealtimeBufferI am not sure if replacing it with a (Lock-Free) queue implementation is the right thing to do. The buffer is (from my understanding) intended to move a value from "non-rt" context to the "rt" context and not for queuing in multiple values for processing into the "rt" context. If the overhead of using a queue implementation is neglectable adding a typedef for the RealtimeBuffer with a maximum queue size of 1 might be a good idea. PS: I just saw the LockFreeQueue is based on boost - a dependency many people try to avoid - so perhaps keeping the Buffer is a good idea RealtimePublisherWhat is missing from my point of view in the list of actions is at least the |
@firesurfer regarding RTPublisher: you are right, but I haven't listed it here because it has a very special purpose and its usage is clear. regarding boost: we already have the dependency of libboost-dev through filters and pal_statistics lib. maybe we can leave a RealtimeBuffer specialication of the queue with size of one as you suggested. but only if it simplifies the usage for users, we'll have to look into that. |
We want to summarize the differences between RealtimeBox and RealtimeBuffer, and compare it with the new Lock-Free Queue proposal.
In the end, we should have guidelines when to use which concept and if maybe any of them is obsolete.
Finally, we will apply the guidelines to ros2_controllers wherever necessary.
General
Within the ros2_control framework, we have only the following use-cases
RealtimeBox
Got refurbed with #139 #146
[Sai]
RealtimeBuffer
[Sai] RealtimeBuffer is what we mostly want, but we have some cons in this:
[Denis] We also need “WriteFromRT”
Lock-Free Queue
Was suggested in #14 and implemented with #253
[Sai]
Example usage: ros-controls/ros2_controllers#1480
The text was updated successfully, but these errors were encountered: