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

How to itegrate ROS in real time application?

asked 2014-01-09 17:21:06 -0600

Astronaut gravatar image

updated 2014-01-28 17:19:00 -0600

ngrennan gravatar image

Hello

I would like to perform some classification techniques like SVM or other in real time application. Im developing also Graphical User Interlace using rqt. So in this real time application I would like to use some machine learning software like weka to perform classification and regression. Any help how to integrate all this in one real-time application?

edit retag flag offensive close merge delete

Comments

1

What is the real-time critical component? The somewhat generic answer would be: Hide the real-time components behind a ROS layer (that doesn't interfere with them) and you can proceed with the rest (e.g. GUI) as you normally would.

dornhege gravatar image dornhege  ( 2014-01-09 23:25:21 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2014-01-09 23:15:50 -0600

Wolf gravatar image

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.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-01-09 17:21:06 -0600

Seen: 1,049 times

Last updated: Jan 09 '14