Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Gazebo on headless simulation server

Hello,

is there possibility to run Gazebo on headless server? I would like to setup complete ROS development server including Gazebo. The machine has graphic card with no OpenGL support. There is MESA so, for instance it's possible to run glxgears remotely (ssh -X). But Gazebo crashes with (RViZ also crashes):

X Error of failed request:  GLXBadDrawable
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  31
  Current serial number in output stream:  31

It's possible to run gzserver like this:

user@server:~$ xvfb-run gzserver
Gazebo multi-robot simulator, version 1.9.3
Copyright (C) 2013 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:12002
Msg Publicized address: xyz
Error [RenderEngine.cc:641] Unable to create glx visual
Warning [RenderEngine.cc:92] Unable to create X window. Rendering will be disabled

...but it would require installation of ROS/Gazebo also on client's machine which I would like to avoid. Any experience / tips will be highly appreciated :-)

Gazebo on headless simulation server

Hello,

is there possibility to run Gazebo on headless server? I would like to setup complete ROS development server including Gazebo. The machine has graphic card with no OpenGL support. There is MESA so, for instance it's possible to run glxgears remotely (ssh -X). But Gazebo crashes with (RViZ also crashes):

X Error of failed request:  GLXBadDrawable
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  31
  Current serial number in output stream:  31

It's possible to run gzserver like this:

user@server:~$ xvfb-run gzserver
Gazebo multi-robot simulator, version 1.9.3
Copyright (C) 2013 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:12002
Msg Publicized address: xyz
Error [RenderEngine.cc:641] Unable to create glx visual
Warning [RenderEngine.cc:92] Unable to create X window. Rendering will be disabled

...but it would require installation of ROS/Gazebo also on client's machine which I would like to avoid. avoid and moreover it disables rendering (I can't use DepthCameraSensor). Any experience / tips will be highly appreciated :-)

Gazebo on headless simulation server

Hello,

is there possibility to run Gazebo on headless server? I would like to setup complete ROS development server including Gazebo. The machine has graphic card with no OpenGL support. There is MESA so, for instance it's possible to run glxgears remotely (ssh -X). But Gazebo crashes with (RViZ also crashes):

X Error of failed request:  GLXBadDrawable
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  31
  Current serial number in output stream:  31

It's possible to run gzserver like this:

user@server:~$ xvfb-run gzserver
Gazebo multi-robot simulator, version 1.9.3
Copyright (C) 2013 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Msg Waiting for master
Msg Connected to gazebo master @ http://127.0.0.1:12002
Msg Publicized address: xyz
Error [RenderEngine.cc:641] Unable to create glx visual
Warning [RenderEngine.cc:92] Unable to create X window. Rendering will be disabled

...but it would require installation of ROS/Gazebo also on client's machine which I would like to avoid and moreover it disables rendering (I can't use DepthCameraSensor). Any experience / tips will be highly appreciated :-)

UPDATE:

On server, I installed libgl1-mesa-swx11 (instead of libgl1-mesa-dri) and now it works somehow - it's possible to run gzserver on server or gazebo through X tunneling (this is painfully slow). Using webclient is probably a way to go.