-
Notifications
You must be signed in to change notification settings - Fork 0
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
ros2_control: Is it possible to use messages instead of reference interfaces? #5
Comments
Not sure I get this issue right. The idea of The tasks themselves should be topics that the controller expects as input, which is what you have done (from what I can tell). Should this issue therefore be closed? Refers to |
@mhubii This is a design problem of ros2_control (in my opinion) that data between chained controllers (and back/forth to the hardware interface) is passed via double arrays. To me this meant that I have to serialize the data myself, which is error prone and hard to maintain. In WBC I possibly have many reference interfaces (depending on the WBC configuration) with different data types and things get complicated very quickly. So my idea was to use ros2 nodes and ros2 messages instead. In theory the underlying DDS should do shared memory copy, when configured correctly and when 2 ros nodes are executed in the same process. But I get that message passing via topics is never real-time? And we also found that the overhead when you send messages with 1KHz can be significant. I was hoping that there is a different way for providing the state and reference interfaces in ros2_control |
hm okay I see, feel free to ignore this for the review btw. Just adding relevant issues:
|
Thanks for hints, I will check the options someday I guess. I always wondered if ros2_control is suited for more complex control architecture like MPC, WBC, ... |
Passing the control output via the reference interfaces is ugly, since it require serialization of the data, which has to be interpreted correctly by the next controller. Also, if there are many tasks, the number of reference interfaces will explode. Is it possible to use message passing instead
The text was updated successfully, but these errors were encountered: