Running gazebo with no monitor

asked 2019-01-10 22:18:41 -0600

updated 2019-01-10 22:32:15 -0600

I know this question has been asked a lot. But, none of the solutions seem to work for me.

I have a server with no mouse, keyboard, or monitor that is running gzserver with a DepthCameraSensor. The server has a Nvidia GeForce GTX 1080 Ti graphics card. Everything works just find when a monitor is hooked up.

However, If i ssh into this computer with the -Y option and type

export DISPLAY=:0

Then type

rosrun gazebo_ros gzserver --verbose

I get the following error

[Err] [RenderEngine.cc:699] Can't open display: :0
[Wrn] [RenderEngine.cc:97] Unable to create X window. Rendering will be disabled
[Wrn] [RenderEngine.cc:301] Cannot initialize render engine since render path type is NONE. Ignore this warning ifrendering has been turned off on purpose.

If I then run Xvfb

Xvfb :0 -screen 0 1920x1080x24 &

I get a different error

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  18
  Current serial number in output stream:  19
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument

Finally, if i run Xvfb with the +iglx option

Xvfb :0 -screen 0 1920x1080x24  +iglx &

I get yet another error

X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  24
  Current serial number in output stream:  25
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument

Any ideas of how I might get rendering working so that I can use the DepthCameraSensor in a simulated environment?

edit retag flag offensive close merge delete