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:
ssh into the remote machine.
ssh machine2
set up your ROS_MASTER_URI to point to the ros core
export ROS_MASTER_URI="http://machine2:11311"
make sure X is up and running on machine2 and xhost allows your user to access the display, then
export DISPLAY=:0
and start gazebo as usual, e.g.
roslaunch pr2_gazebo pr2_empty_world.launch
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/empty.world" 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.