Project

General

Profile

Actions

Network configuration for multi-robots

All the machines must be on the same network. So for example laas-secure.
One machine must be the host, hence running roscore, and every other machine must know which machine is the host. For that we need to configure the bashrc of every machine.
By default your ROS configuration in a bashrc look like this:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

To configure the environment for multi-robots, ROS_MASTER_URI must design the host machine. So let's say this machine is named "kukarm", then every machine on the network must have this in its environment:

export ROS_HOSTNAME=kukarm
export ROS_MASTER_URI=http://$ROS_HOSTNAME:11311

To finish every non-host machine must provide its IP address to be known on the network. This is done by setting the ROS_IP variable:

export ROS_IP=140.93.16.149

This is not needed for the machine running roscore.
I have added scripts in the package of CM2C/MP2 to set the ROS environment for the computers kukarm and truyere.
I will paste below the configuration i used for the three computers:

#personnal laptop running the planning stack (CM2P)
export ROS_HOSTNAME=azjol-nerub
export ROS_MASTER_URI=http://$ROS_HOSTNAME:11311

#kukarm, operating panda_1
export ROS_IP=140.93.16.149
export ROS_MASTER_URI=http://Azjol-Nerub:11311

#truyere, operating panda_2
export ROS_IP=140.93.16.216
export ROS_MASTER_URI=http://Azjol-Nerub:11311

More informations here:

http://wiki.ros.org/ROS/Tutorials/MultipleMachines

Updated by Kévin Desormeaux almost 3 years ago · 3 revisions