ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I just had some experience with this not long ago...

I'm using a windows 10 to SSH a headless Ubuntu service, and need to run the RVIZ on the server to show some data.

At very beginning, I tried with putty with vcXsrv (I didn't try Xming because I couldn't get a latest release), using X Forwarding, and RVIZ directly aborted after launched it, because "OpenGL that rviz is relying on cannot be X Forwarded", see this...

I didn't try any VNC client and I think if they cannot solve this "OpenGL over TCP" issue then it won't help at all. However I noticed some VNC has the capability of processing 3D object, and they are using a "VirtualGL" to achieve it. Then I searched a bit on it, and noticed that this VGL is exactly designed for this case, and I don't need to install any other client to use it because the native program is already good enough for normal use case and even provides better performance (see this VGL Transport).

Basically, in windows part, you need to install a Cygwin for installing this VirtualGL client, and Cyginw/X for X server, and then in the Ubuntu part you need to install a VirtualGL server. After that you can use the vglconnect (relying on SSH) in the Cygwin to connect to server, and then use vglrun (at server side) to launch RVIZ.

Since the OpenGL rendering is done in the server side, it doesn't require much compute resource from client side, but I think it does need some bandwidth. In my test, 1Gb Ethernet is good enough for my daily work.