0
$\begingroup$

Rosanswers logo

Hey,

I am working on a robot that creates a node on one computer to capture and transmit (through ros messages) an image (Node 1). The image is sent to two other nodes. One node is on a separate computer (connected via wi-fi) which also runs the rosmaster (Node 2). The third node is on the same computer as the image capture node (Node 3).

My question is: How is the image message transmitted to each node. Does the image get sent to the computer with the rosmaster and redistributed to the listening nodes (Node 1->Master->Node 3 and Node 2)? Or is the messaging system more dynamic in that messages go directly to listening nodes(Node 1-> Node 2 and Node 1->Node 3)? The reason this matters is because of the delay involved in wireless transmission to the rosmaster and then back to the transmitting computer to be consumed by node 3. Also the processing overhead of sending and receiving extra messages is undesirable.

Thank you,

Tim


Originally posted by TimZ on ROS Answers with karma: 13 on 2012-07-04

Post score: 1

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

In short: the master can be thought of as a coordinator; it does not route all traffic between nodes through itself, but helps nodes (at startup, and during execution) to find each other. Nodes then communicate directly, via either TCP or UDP (this can even be configured per subscriber).

From the wiki/Master and wiki/Topics wiki pages.

The role of the Master is to enable individual ROS nodes to locate one another. Once these nodes have located each other they communicate with each other peer-to-peer.

In your case, images will go directly from the publisher to the subscriber, after the master has provided them with enough information to be able to find each other.


Originally posted by ipso with karma: 1416 on 2012-07-04

This answer was ACCEPTED on the original site

Post score: 4

$\endgroup$
0
$\begingroup$

Rosanswers logo

Messages are always transmitted directly to the subscribers. When subscribing to a topic, a socket is opened between each of the publishers of a topic and the subscriber. The core is only used as sort of a name service to find out which nodes are publishing topics, who is providing a service and it stores ROS parameters. For more information, have a look here and in here.


Originally posted by Lorenz with karma: 22731 on 2012-07-04

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.