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

Revision history [back]

click to hide/show revision 1
initial version

First: ROS by it self is not suitable for hard real time control, as Ubuntu Linux is not a real time operating system (See FAQs from ROS-I, also vaild for ROS).

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).

If you want to integrate ROS in a real time application, you will need to set up a low-level real time micro-controller which communicates with your high-level ROS node (having in mind that the ROS node might not answer with in a deadline).

You would need to analyse which parts of your application have to fulfil hard real time requirements. Those have to be implemented on the microcontroller. If your classification and regression have to be in closed loop but only need to fulfil "soft" real time requirements (meaning they should be ready before deadline most of the times but not necessarily always), you can implement them with the help of ROS.

Just a remark, if you do not need weka but any machine learning lib: OpenCV, which comes along with ROS, has also a machine learning module. A SVM is implemented there.