Ask Your Question
4

Making ROS real-time : is it magic?

asked 2015-03-27 05:46:25 -0600

francoisdtf gravatar image

Greetings,

I was wondering about real-time patches for ROS, such as Orocos, and their actual efficiency.

I am quite new in the field of RT stuff, but as I read that ROS wasn't an real-time software, I consider that it is lacking the ability to make sure that its cycles, communication protocols and other will be done each in a given time.

So the actual question is, in which way does the use of any RT tool kit make ROS real-time? I mean, the core process would still be the same, with the same timing uncertainty problems, so at which level does the RT patch acts? And is it really efficient?

edit retag flag offensive close merge delete

Comments

2

Just to clarify: OROCOS is not a 'real-time patch' for ROS. It is a stand-alone framework. It can be integrated into a ROS application (but the same is true for many other frameworks / tools). OROCOS indeed supports the creation of real-time component-based systems.

gvdhoorn gravatar imagegvdhoorn ( 2015-03-27 05:49:30 -0600 )edit
1

@gvdhoorn Okay, sorry for the misuse of the word. My question remains though, but maybe this formulation would be better : if using a real-time tool together with ROS within a system, wouldn't the use of ROS make the whole system non-realtime?

francoisdtf gravatar imagefrancoisdtf ( 2015-03-27 05:54:51 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
8

answered 2015-03-27 05:54:09 -0600

gvdhoorn gravatar image

updated 2015-03-28 03:45:37 -0600

I'd like to refer you to some previous, related questions on this topic. See:

Even though some of those questions (and their answers) are several years old, not much has changed in the intervening years.

ROS2.0 however should change this, as depending on the DDS middleware option used, it should make real-time applications possible without requiring any other framework. It would still require a real-time capable OS though (and carefully programmed nodes).


Edit:

Okay, sorry for the misuse of the word. My question remains though, but maybe this formulation would be better : if using a real-time tool together with ROS within a system, wouldn't the use of ROS make the whole system non-realtime?

For an answer to your rephrased question, I think I can refer you to ros_control and RT.

In short: sure, any non-real-time component that is placed in the critical path of an otherwise real-time capable system will obviously make it impossible for that system to maintain its determinism guarantees.

But that is obviously not ROS-specific. The same holds for an OROCOS application (or any other framework) that uses non-deterministic services in one of its components.

edit flag offensive delete link more

Comments

Thank you a lot, all of this was really helpful and greatly improved my understanding of the whole thing.

francoisdtf gravatar imagefrancoisdtf ( 2015-04-02 10:09:02 -0600 )edit

If the downvoter could clarify why he/she felt a downvote was justified perhaps this answer could be improved.

gvdhoorn gravatar imagegvdhoorn ( 2018-10-08 09:58:58 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

4 followers

Stats

Asked: 2015-03-27 05:46:25 -0600

Seen: 818 times

Last updated: Mar 28 '15