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
Use SCHED_FIFO for controller_manager's main thread #719
Conversation
Previous investigations showed that using FIFO scheduling helps keeping cycle times also non non-RT kernels. This combined with non-blocking read can result in a very stable system. This is, in fact, very close to what the actual controller_manager_node does except that we always use FIFO scheduling independent of the actual kernel in use.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me. With most of the code the same as ros2_control_node
from controller_manager
, we should maybe look at some point if we really need our own controller manager node.
Yes, I'll try to push FIFO scheduling into controller_manager, but I wanted to have it running here, before. |
@Mergifyio backport humble |
✅ Backports have been created
|
Previous investigations showed that using FIFO scheduling helps keeping cycle times also non non-RT kernels. This combined with non-blocking read can result in a very stable system. This is, in fact, very close to what the actual controller_manager_node does except that we always use FIFO scheduling independent of the actual kernel in use. (cherry picked from commit 39b61b5)
Previous investigations showed that using FIFO scheduling helps keeping cycle times also non non-RT kernels. This combined with non-blocking read can result in a very stable system. This is, in fact, very close to what the actual controller_manager_node does except that we always use FIFO scheduling independent of the actual kernel in use. (cherry picked from commit 39b61b5) Co-authored-by: Felix Exner (fexner) <exner@fzi.de>
Previous investigations showed that using FIFO scheduling helps keeping cycle times also non non-RT kernels. This combined with non-blocking read can result in a very stable system.
This is, in fact, very close to what the actual controller_manager_node does except that we always use FIFO scheduling independent of the actual kernel in use.