question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Launch nodes on different machines that share one roscore

See original GitHub issue

Hi,

first of all thanks a lot for sharing and maintaining this awesome tool!

I have a question about how to use node_manager with the current setup we have (and I’m not sure if this is possible).

We have 4 PCs (see pictures):

  • A runs its own roscore and node_manager. It’s connected over WiFi to the other PCs.
  • B runs its own roscore and it’s connected to the router.
  • C has ROS_MASTER_URI=http://B:11311 set in its .bashrc and is connected to the router.
  • D has ROS_MASTER_URI=http://B:11311 set in its .bashrc and is connected to the router.

Given this setup (that cannot be easily changed) I’m able to sync A and B using node_manager, but I don’t know how to include C and D, while keeping their ROS_MASTER_URI “pointing” to B. The goal is to launch specific launch files on B, C, and D from A. Is this possible with node_manager, without having to run roscores on C and D?

Thanks for your help. Marco.

Multimaster setup

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
atiderkocommented, May 16, 2019

@marco-tranzatto thank you very much for your feedback!

0reactions
marco-tranzattocommented, May 16, 2019

Hi @atiderko

I found time to test your suggestions and so far it works as expected. Thanks a lot for being so fast to implement this extra feature!

For further reference, in case anybody else is interested in the same setup, these are some important points to keep in mind:

  • Use latest version of node manager, with the feature introduced as explained at the beginning of this thread.
  • When using the machine tag, remember to:
    • Use RSA algorithm to copy the ssh key from one pc to another (applies for A to all the others, and from B to C and D). For example: ssh-copy-id -oHostKeyAlgorithms='ssh-rsa' user@host
    • Use “env-loader script” (see example). On PCs C and D I put the following lines in the script:
      • source ~/catkin_ws/devel/setup.bash
      • export ROS_MASTER_URI=http://host-pc-a:11311
      • exec "$@"
  • Have one launch file to be launched on pc B that launches nodes on B, and uses one machine tag for C and one for D, to “distribute” nodes across machines.

Regards, Marco.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Running ROS on multiple machines - Husarion
ROS allows you to run nodes on a single robot and on dozens robots as well, as long, as your devices are in...
Read more >
ROS/Tutorials/MultipleMachines - ROS Wiki
Running ROS across multiple machines. Description: This tutorial explains how to start a ROS system using two machines.
Read more >
Running ROS over Multiple Machines
Option 1: Create Python server on one machine and clients on the rest and use python for communication on a locally established network....
Read more >
Running ROS on multiple machines - GitHub
Set configuration for working on multiple machines on two devices. On the first device run only roscore , on the second run astra.launch...
Read more >
ROS on multiple workstations - ATLAS
Every node registers at start-up with the master. • Nodes can run on different workstation and communicate through network (transparent to user). ROS...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found