ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

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.