ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I would suggest the following approach:
1) Setup RT_Preempt
You will need an RTOS anyway, I think RT_Preempt fits your demands.
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup
2) Setup your Controller as RT-application
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/application_base
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cyclic
3) Allow RT priorities from Userspace
https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#Do_I_need_root_privileges_to_start_a_realtime_application.3F
4) Find a suitable RT priority
When your controller does not require the entire CPU, this is not a problem. Just pick one (e.g. 80). This should work.
If this is not enough I would recommend trying ros_control.