Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Another perspective on the question "what is ROS?", having worked with countless ROS nodes:

In a nutshell, ROS is a library that allows you to send and receive messages.

The two most used methods in the API are Subscriber.subscribe(message_topic, callback) and Publisher.publish(message)

For example, a sensor driver will publish a message containing a camera image, then a node will receive a message, detect the people in it, and send another message with their positions. Another node will receive the positions message and calculate a desired action, and send that as a message. You can write your own node which captures any kind of message and publishes any other kind, making things very modular.

So ROS also contains a million tools to help you process the messages, for example the Time tools allow you to set timers and convert time stamps, the rosbag tools allow you to store the messages and replay them later, the tf tools allow you to transform geometrical objects between message reference frames, and so on...

Many of the tools do their job well, the main issue is documentation. In some cases, the best way to figure out what can/should be done is to look at existing code.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: