0
$\begingroup$

Rosanswers logo

Hi, I'm going to run my ros system on multiple computers, connected only by a wifi link of (possibly) bad quality. However I want to use data from multiple usb web cams.

I'm wondering how ros distributes the various message on the network and if it makes a difference where roscore is located.

Example Scenario:

Machine 1:
  Node 1:
    outgoing topics:
      camera1/image_raw
      camera1/image_compressed

Machine 2:
  Node 2:
    outgoing topics:
      camera2/image_raw
      camera2/image_compressed

Machine 3:
  Node 3.1:
    incoming topics:
      camera1/image_raw
      camera2/image_raw
    outgoing topics:
      control/steering
      control/debug

  Node 3.1:
    incoming topics:
      camera1/image_raw
      control/steering
  1. Which messages are actually send?

  2. Do the camera*/image_compressed topics take up bandwith, even though they are never subscribed to?

  3. is camera1/image_raw send twice over the network?

  4. is camera2/image_raw also send to machine 1?

  5. Does it matter whether roscore is started on machine 1 or machine 3?


Originally posted by NsN on ROS Answers with karma: 95 on 2012-03-27

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Each message is sent pairwise over a TCP connection, directly from the publisher to each subscriber.

  1. Messages that are actually subscribed

  2. No.

  3. Yes. I believe there are ways to avoid that.

  4. No.

  5. Mostly not.


Originally posted by joq with karma: 25443 on 2012-03-27

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Stephan on 2012-03-27:
Re 3): You can use http://www.ros.org/wiki/topic_tools/relay on machine 3 to have a local node that republishes the incoming images, so that other local nodes can subscribe to that relay instead of the topic published by machine 1.

$\endgroup$

Your Answer

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