top of page
  • Linkedin
  • GitHub

Optimise your system, then optimise ROS

  • Writer: Tommaso Pardi
    Tommaso Pardi
  • Jan 30
  • 1 min read

Updated: Feb 28

ROS middleware is great. It handles processes, callback, nodes and communication interfaces seamlessly. Our robotics app is safe with it!


But how does it do it? And, are we sure that we do everything in our power to have the real-time system that we long for?


Typically, robot control requires real-time systems, which translates to, at a bare minimum, applying the preemptive kernel patch. We need less jitter, and it provides that.


Is that it? Well, maybe...


Now, we have a better scheduling system, but if we don't set out our tasks accordingly, we get only a portion of the juice.


  1. 1. Task priority. Bump up executable priorities! The system must understand what matters to you.

    1. Check the limit of your user, and extend it if necessary!

  2. Set up priorities for your DDS layer, e.g. with FastDDS you can set them up by an XML file.

  3. Set up CPU affinity. This is another way to keep under control the jitter of sensitive nodes.

  4. Isolate CPUs. Directly at the start-up, instruct your system to reserve CPUs for your ROS application. The grub supports these options, but a bit of fuff is required.


Finally, check your setup! 


Don't assume that the system has already exactly what you need. Double-check that everything is working properly, and push back on unnecessary optimisation! 


ROS is filtering more and more into anything related to robotics, deployment included. We need to step up and be ready to master every part of it.


What do you think?

Do you have any more suggestions?

 
 
 

Comments


CONTACT

© 2025 beyond

bottom of page