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

Real time control of the platform without encoders

asked 2013-05-06 21:21:24 -0500

Astronaut gravatar image


I would like to do some real time control of the platform that does not contain wheel encoders. So is possible to do some real time control of the motors of that platform (like the position and velocity), but without encoders. I heard that it is a possible to use hard real time control with ROS. I need like ROS real time rosrt and Orocos RTT. Is that true??

Any help would be welcome.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2014-01-10 01:27:57 -0500

If you have hard realtime requirements (e.g. can´t miss a deadline, otherwise system failure) you can either use a hard realtime Linux approach using a RT-PREEMPT Kernel (or alternatives like Xenomai and RTAI) with rosrt or Orocos RTT. The other option is offloading the hard real-time critical part to a microcontroller and talking to that using rosserial or another approach. As microcontrollers get more powerful and are increasingly easier to integrate with ROS, I´d recommend the second option. Dealing with hard realtime Linux systems can be very frustrating as they are not very widely used and debugging problems can become very hard.

edit flag offensive delete link more

answered 2014-01-09 22:45:59 -0500

Wolf gravatar image

From ROS-I FAQs:

Q: Is ROS-Industrial suitable for real-time control?

A: Like ROS, ROS-I nominally runs on Ubuntu Linux, which is not a real-time OS. ROS-I is fast enough to run closed-loop with perception systems for industrial applications, but (at least for now) ROS-I must be used as a high-level controller in conjunction with a low-level real-time controller (usually the one from the OEM), which closes servo feedback loops and provides safety behavior (e.g. an E-stop).

This is also valid for ROS. Hard real time control is not possible using only ROS. You will have to implement (or buy) your own low-level real time controller and connect it to your high level ros nodes, e. g. via ROS serial.

edit flag offensive delete link more

Question Tools


Asked: 2013-05-06 21:21:24 -0500

Seen: 357 times

Last updated: Jan 10 '14