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

a hard real-time ROS?

asked 2011-03-07 14:54:59 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi All,

I'm new to ROS and don't know much about it. Is ROS suitable for hard real-time applicaitons?

Has anyone tried to run ROS on a hard real-time Linux, say, Xenomai or RTAI? Or does it make sense to do so?



edit retag flag offensive close merge delete

3 Answers

Sort by » oldest newest most voted

answered 2011-03-07 15:44:33 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

For this kind of requirements we provide Orocos. We provide a integration with ROS in our repository allowing to do your low level real-time control with Orocos and still make use of high level algorithms like the navigation stack from ROS. This kind of setup was already demonstrated on multiple robots like the RoboEarth Amigo platform, the Kuka Youbot, ...

edit flag offensive delete link more


What real-time mechanism Orocos provide? Hard real-time or Soft real-time? Thank you~
sam gravatar image sam  ( 2011-09-28 04:15:00 -0500 )edit
it as real-time as your kernel allows you to be, it differs if you are using regular linux, patched kernel, xenomai ...
KoenBuys gravatar image KoenBuys  ( 2011-09-28 11:22:36 -0500 )edit

answered 2012-03-27 03:04:08 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I just started working at KULeuven, home of OROCOS but a different department. Everyone I have met here who is doing hard real-time is using Ubuntu with a xenomai kernel, ROS just as a package manager/build system, and writing all of their code as OROCOS components and running them in the orocos deployer.

I haven't met anyone doing inter-op between Orocos and ROS yet; I read that you can send signals between the two environments with some work, but their workflows and toolsets are mostly orthogonal. (i.e. Try using rosnode to list what orocos components you have instantiated or listing running ros nodes in the orocos deployer)

edit flag offensive delete link more


Interaction is quite seamless, tool-sets live next to each other. However not all code is written as an Orocos component or executed from the deployer. Most of us use both ROS and Orocos however.

KoenBuys gravatar image KoenBuys  ( 2012-03-27 09:04:14 -0500 )edit

Hello. I would like to use also ROS for some real -time data analysis. I do not have experience in that and would like to use the data provided from ROS nodes for some real time analysis. Is there any help on this?

Astronaut gravatar image Astronaut  ( 2013-05-05 20:55:09 -0500 )edit

answered 2016-11-05 07:16:28 -0500

gvdhoorn gravatar image

In addition to all the work in ROS2 towards making real-time ROS a reality, the presentation by Jan Carstensen at ROSCon16 this year might also be of interest to users.

RTROS – A real-time extension to the Robot Operating System: slides, recording.

edit flag offensive delete link more


Any idea if it will be released?

Dben gravatar image Dben  ( 2016-12-20 09:25:04 -0500 )edit

Afaik yes, but it could take some time.

If you want to help: get in touch with the author(s), and express your interest.

gvdhoorn gravatar image gvdhoorn  ( 2016-12-20 09:44:18 -0500 )edit

We are in the final stages of releasing RTROS.

Jan Carstensen gravatar image Jan Carstensen  ( 2016-12-21 02:11:34 -0500 )edit

Hi @Jan Carstensen :). Thanks for the update.

gvdhoorn gravatar image gvdhoorn  ( 2016-12-21 02:21:44 -0500 )edit

while i understand what a real-time (soft/hard) system is, i still cannot provide myself a real world example of a robot using ROS that cannot adequately perform with native ROS. can someone shed some light?

JadTawil gravatar image JadTawil  ( 2018-09-26 09:31:12 -0500 )edit

A surgical robot that performs open heart surgery while the heart is beating. You will want deterministic execution for that, as you'll need to be able to guarantee that the system always does what it is supposed to do down to the lowest levels. Just being 'fast enough' is not sufficient.

gvdhoorn gravatar image gvdhoorn  ( 2018-09-26 09:42:37 -0500 )edit

A less 'exotic' example: synchronising the motion of multiple industrial robots all holding the same workpiece. Without deterministic execution and communication, that is impossible (or at least: is very much simplified if you do have both).

But anything for which the behaviour of the system ..

gvdhoorn gravatar image gvdhoorn  ( 2018-09-26 09:44:10 -0500 )edit

.. should be predictable (so not just run it and see what happens) almost requires deterministic execution.

gvdhoorn gravatar image gvdhoorn  ( 2018-09-26 09:44:43 -0500 )edit

Question Tools



Asked: 2011-03-07 14:54:59 -0500

Seen: 4,003 times

Last updated: Nov 05 '16