Description
I have a few HW interfaces that run at higher rate (200Hz) and one interface that runs at a lower rate (30Hz). The slower interface does use blocking calls when performing read()
and write()
so it would limit high rate interfaces to 30Hz when called in the same control loop. I do need to run some controllers that talk to both the fast and slow interfaces at the same time so I can't run each interface in a separate node.
My solution would be to make the slow interface run in separate thread and synchronise it with the main loop. Commands will be picked up at 30Hz and states will be repeated at 200Hz until a new read()
updates them in the parallel thread. This will not need any new features in ros2_control so it's not a feature request but I'm wondering if this is the right solution. Are there any features already implemented that would solve this issue that I may have missed in the documentation?
Thanks