Running RViZ through X forwarding on headless machine
Hello,
is there possibility to run RViZ remotely on headless machine using X forwarding (ssh -X)? The problem is that remote machine (server) doesn't have graphic card with OpenGL support so, there is MESA installed. For instance, glxgears runs, but RViZ crashes (Segmentation fault) as well as Gazebo (GLXBadDrawable). Of course that I can overcome this by running RViZ locally but I would like to avoid ROS installation on client's machine. Thanks for any hint.
gdb output:
0x00007fffed1cacc0 in xcb_glx_get_string_string_length () from /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0
Not sure if it's useful but this is OGRE log:
user@server:~$ rosrun rviz rviz -l
[ INFO] [1391509162.077619455]: rviz version 1.10.11
[ INFO] [1391509162.077696555]: compiled against OGRE version 1.7.4 (Cthugha)
[ INFO] [1391509162.252864686]: Creating resource group General
[ INFO] [1391509162.253011606]: Creating resource group Internal
[ INFO] [1391509162.253083959]: Creating resource group Autodetect
[ INFO] [1391509162.253261229]: SceneManagerFactory for type 'DefaultSceneManager' registered.
[ INFO] [1391509162.253635593]: Registering ResourceManager for type Material
[ INFO] [1391509162.253741639]: Registering ResourceManager for type Mesh
[ INFO] [1391509162.253842063]: Registering ResourceManager for type Skeleton
[ INFO] [1391509162.253959093]: MovableObjectFactory for type 'ParticleSystem' registered.
[ INFO] [1391509162.254067107]: OverlayElementFactory for type Panel registered.
[ INFO] [1391509162.254141490]: OverlayElementFactory for type BorderPanel registered.
[ INFO] [1391509162.254212287]: OverlayElementFactory for type TextArea registered.
[ INFO] [1391509162.254286650]: Registering ResourceManager for type Font
[ INFO] [1391509162.254383290]: ArchiveFactory for archive type FileSystem registered.
[ INFO] [1391509162.254463624]: ArchiveFactory for archive type Zip registered.
[ INFO] [1391509162.254534294]: DDS codec registering
[ INFO] [1391509162.254627777]: FreeImage version: 3.15.1
[ INFO] [1391509162.254700004]: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
[ INFO] [1391509162.255010967]: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,sti
[ INFO] [1391509162.255109654]: Registering ResourceManager for type HighLevelGpuProgram
[ INFO] [1391509162.255292757]: Registering ResourceManager for type Compositor
[ INFO] [1391509162.255784287]: MovableObjectFactory for type 'Entity' registered.
[ INFO] [1391509162.255873534]: MovableObjectFactory for type 'Light' registered.
[ INFO] [1391509162.255957217]: MovableObjectFactory for type 'BillboardSet' registered.
[ INFO] [1391509162.256032137]: MovableObjectFactory for type 'ManualObject' registered.
[ INFO] [1391509162.256106037]: MovableObjectFactory for type 'BillboardChain' registered.
[ INFO] [1391509162.256178920]: MovableObjectFactory for type 'RibbonTrail' registered.
[ INFO] [1391509162.256392527]: *-*-* OGRE Initialising
[ INFO] [1391509162.256471531]: *-*-* Version 1.7.4 (Cthugha)
[ INFO] [1391509162.256558108]: Loading library /usr/lib/x86_64-linux-gnu/OGRE-1.7.4/RenderSystem_GL
[ INFO] [1391509162.260000802]: Installing plugin: GL RenderSystem
[ INFO] [1391509162.260118772]: OpenGL Rendering Subsystem created.
[ INFO] [1391509162.370099950]: Plugin successfully installed
[ INFO] [1391509162.370207907]: Loading library /usr/lib/x86_64-linux-gnu/OGRE-1.7.4/Plugin_OctreeSceneManager
[ INFO] [1391509162.372636195]: Installing plugin: Octree & Terrain Scene Manager
[ INFO] [1391509162.372726792]: Plugin successfully ...
If this is just for a demo, consider using a remote desktop solution— eg, VNC, TeamViewer, etc. If necessary, run a secondary non-headless machine alongside the robot to host the rviz desktop for the client to connect to.
Thanks for hint. But as far as I know VNC has problem with transferring OpenGL windows - am I right?
This is not a real solution, but you could also consider setup something with Robot Web Tools (http://robotwebtools.org), that would only require a browser on the client side. A fully-fledged rviz is to my knowledge not yet available, though quite a few building blocks are there already.
Using web RViz would be awesome! But as you said - there is no fully-fledged solution. We will probably try to integrate components into one RViz-like solution but it will take (lot of) time...