Skip to content

Start Webots

Yannick Goumaz edited this page Jul 19, 2023 · 12 revisions

Webots needs a X11 connection to a X-server to run. So there are 2 options to start Webots:

  • GUI on your local display: In the jumax access tutorial, at step 11, you added the ForwardX11 yes line in your SSH config file. This allows to forward your X display to the remote computer. This way, Webots will get a X11 connection to a X-server running on your local machine. You can launch Webots in the $WEBOTS_HOME directory with the following command: ./webots. Webots will start with the GUI. This is only possible on jumaxbuild1 and jumaxbuild2. Webots automatically starts with the GPU acceleration if GCC and libGLU modules are loaded.

  • Headless (without GUI): The other option is to run Webots headless. Webots should be started on jumaxbuild to benefit from hardware acceleration. The solution is to use Virtual Network Computing (VNC), using the vncserver package installed on Jumax. VNC allows to remotely control and display another computer. Here we will use the package to create a virtual display for Webots. To do that, follow these steps:

    1. In your user1@jumaxbuild1:~/ directory, execute the following command: vncserver.

    2. At the first launch, VNCserver will ask you for a username and a password. Choose user information that you will remember.

    3. Once you have finished the configuration, type cd .vnc and edit the xstartup file with vim: vim xstartup. This file is used to define applications you want to run when creating a display. You need to add the following line after the unset command lines:

      vglrun /home/jusers/user1/jumax/webots/webots --no-rendering --minimize --mode=fast --batch --stdout --stderr /path/to/your/world/file.wbt
      

      Don't forget to replace user1 by your username. You can also add --stdout and --stderr options to redirect the webots logs to the VNC log file (see step v.).

    4. Then, you can start a new virtual display using vncserver command in the terminal. It will start Webots headless at the same time.

    5. The logs generated are saved in .vnc/jumaxbuild1:DISPLAY#.log

    6. To see the list of existing displays, use the following: vncserver -list. To kill an existing display: vncserver -kill :DISPLAY#

    7. Repeat steps iv. to vi. to start Webots multiple times.

    VirtualGL is used to start webots with GPU acceleration. Please note that GCC, libGLU and VirtualGL modules must be loaded.

Redirecting the GUI to the local computer has some performance impact compared to running headless. The following table shows the simulation speed ratio of a Webots simulation rendering a camera of size 1000x1000 on jumaxbuild. Running headless is a little faster than with GUI. If the window is minimized, the performance is also increased.

GUI with no rendering GUI minimized Headless
10.1 11.3 12.0
Clone this wiki locally