Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi, to run gazebo on a remote machine, you'll need X running on your remote machine and export DISPLAY variable to point to the local display on the remote machine before launching gazebo. For example, if your local machine (dual-core) is called machine1 and remote machine (16-core) is called machine2. Suppose a ros core has been started on machine2. To start gazebo on machine2, you can:

  1. ssh into the remote machine.

    ssh machine2

  2. set up your ROS_MASTER_URI to point to the ros core

    export ROS_MASTER_URI="http://machine2:11311"

  3. make sure X is up and running on machine2 and xhost allows your user to access the display, then

    export DISPLAY=:0

  4. and start gazebo as usual, e.g.

    roslaunch pr2_gazebo pr2_empty_world.launch

  5. Back on machine1, make sure to point your ROS_MASTER_URI to machine2 and you should be able to see all the simulated PR2 ros topics. .

Note that the gazebo gui, if enabled, will be spawned on the remote machine2. So it is recommended that -g flag is given to turn off the gazebo gui if you're going to be working from the local machine, e.g.

< node name="gazebo" pkg="gazebo" type="gazebo" args="-g -u $(find gazebo_worlds)/worlds/" respawn="false" output="screen" />

I am looking for ways to make this process more transparent, please let me know if you run into any issues. Thanks.