来自于官网的翻译:http://www.cyberbotics.com/doc/guide/installing-webots

1、运行Webots的硬件要求:

1)至少一台2GHz的主频(时钟速度)以及双核CPU,建议采用4核的CPU,内存至少2GB。

2)需要NVIDIA或者AMD OpenGL(最低版本3.3,Open Graphics Library,开放图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API).)功能的图形适配器,该适配器具有512MB的内存,不建议使用其他图形适配器,包括Intel的图形适配器。

操作系统的支持:

Linux:根据不同的操作系统版本选择不同的安装文件,Webots只提供Linex 64位(x86-64)的系统。

2、验证图形驱动程序安装

支持的显卡:包括NVIDIA和AMD的显卡;

升级图形驱动程序:注意没有合适的驱动器,Webots可能会比正常的慢十倍。

使用命令来检查是否安装了合适的驱动:

$ glxinfo | grep OpenGL

如果显示如下

$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 8500 GT/PCI/SSE2
OpenGL version string: 3.0.0 NVIDIA 180.44
...

而非如下包含Mesa 、Software Rasterizer或者GDI Generic等字眼,如果有的话,就需要升级了。

$ glxinfo | grep OpenGL
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.4 (1.5 Mesa 6.5.2)
...

针对ubuntu升级的话,在软件/更新->附加驱动器里面。

硬件加速建议

linux:禁用桌面效果

根据图形硬件的不同,当compiz桌面效果打开时,渲染系统的性能可能会大幅下降(高达10倍)。此外,这些视觉效果可能会导致Webots主窗口未正确刷新时出现一些显示错误。因此,在Ubuntu(或其他Linux)上,我们建议停用桌面效果。您可以使用一些工具,如Compiz配置设置管理器或Unity调整工具,轻松禁用它们。

3、安装过程

在linux上安装

Webots有三个不同的包(.deb、.tar.bz2、.snap)。.deb包旨在最近的LTS的 Ubuntu Linux版本,而.tar.bz2和snap包包含了许多依赖库,因此比较适合用于安装在其他的linux发布版。这些包也包含了一个预编译的ROS API。

如果安装加速的OpenGL驱动程序,Webots的运行速度会更快。如果您有NVIDIA或AMD显卡,强烈建议您安装这些制造商的Linux图形驱动程序,以充分利用Webots的OpenGL硬件加速功能。请参阅本节中的说明。http://www.cyberbotics.com/doc/guide/verifying-your-graphics-driver-installation

1)直接使用APT(Advanced Packaging Tool)来安装deb包

按照这种方式安装的优势是会随着系统的更新而自动更新。需要root权限。

首先,Webot应使用Cyberbotics.asc签名文件进行身份验证。

a、安装Cyberbotics.asc签名文件

sudo mkdir -p /etc/apt/keyrings
cd /etc/apt/keyrings
sudo wget -q https://cyberbotics.com/Cyberbotics.asc

b、然后,您可以通过添加Cyberbotics存储库来配置APT包管理器。只需执行以下行:

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/Cyberbotics.asc] https://cyberbotics.com/debian binary-amd64/" | sudo tee /etc/apt/sources.list.d/Cyberbotics.list
sudo apt update

c、安装

sudo apt install webots

2)直接安装下载的.deb

sudo apt install ./webots_2023b_amd64.deb
或者
sudo gdebi webots_2023b_amd64.deb

3)安装.tar.bz2文件

可以解压到任何地方,通过tar xjf ***,然后使用环境变量WEBOTS_HOME来指定解压的位置

tar xjf webots-R2023b-x86-64.tar.bz2
export WEBOTS_HOME=/home/username/webots #可以设置在/etc/profile文件中以便对每个session都生效,/etc/profile文件为系统的每个用户设置环境变量信息,此文件的修改会影响到所有用户;
                         #.bashrc影响当前用户,当需要某些操作在系统运行起来就自动执行时,可以考虑将该部分代码写到/etc/profile文件中。

执行以下的命令来使能视频的创建和回放:

sudo apt-get update
sudo apt-get install ffmpeg libavcodec-extra
sudo apt-get install ubuntu-restricted-extras

在录制视频时,使用Anaconda可能会导致错误,因为ffmpeg的默认conda安装没有启用x264。执行以下命令以安装支持x264的ffmpeg:

conda install x264 ffmpeg -c conda-forge

4)外部控制器

为了解决这个问题,应该将此类控制器作为外部控制器从Webots外部启动。在启动外部控制器之前,应将WEBOTS_HOME环境变量设置为指向/snap/WEBOTS/current/usr/share/WEBOTS,并运行$WEBOTS_HOME/WEBOTS-controller启动器。题为运行外部机器人控制器的章节详细介绍了如何运行外部控制器,包括使用Webots的快照版本。http://www.cyberbotics.com/doc/guide/running-extern-robot-controllers

5)安装Docker 镜像

基于Ubuntu 20.04的Webots的Docker镜像可在dockerhub上获得。这些镜像可用于在连续集成(CI)工作流中运行Webots,而无需任何图形用户界面,或者在预装Webots(包括GPU加速图形用户界面)的情况下获得干净的sandboxed环境。

a、安装镜像:https://docs.docker.com/engine/install/#server

b、在Docker中运行Webots:docker映像附带了一个已经安装和配置的X虚拟帧缓冲区(Xvfb),以便您可以运行Webots。

要提取镜像并启动带有该镜像的docker容器,使用以下命令:

docker run -it cyberbotics/webots:latest

启动docker容器后,您可以使用xvfb启动Webots:

xvfb-run webots --stdout --stderr --batch --mode=realtime /path/to/your/world/file

由于Webots运行,--stdout和--stderr参数用于将这些流从Webots控制台重定向到启动Webots的控制台,--batch参数禁用任何阻塞弹出窗口,--mode=realtime确保模拟不是在暂停模式下启动的(您可以将realtime替换为fast),最后,不要忘记指定要运行的模拟。

6)在Docker中使用GUI来运行Webots

a、不使用GPU加速

要在docker容器中使用图形用户界面运行Webots,您需要在启动docker容器之前启用到X服务器的连接:

xhost +local:root > /dev/null 2>&1

如果需要禁用到X服务器的连接,可以使用以下命令执行:xhost-local:root>/dev/null 2>&1。

然后,可以使用以下命令来启动容器:

docker run -it -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw cyberbotics/webots:latest

或者想要直接启动webots:

docker run -it -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw cyberbotics/webots:latest webots

b、使用GPU加速器

必须安装nvidia-docker2;安装指引https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

注意:GPU加速docker容器只在最近的NVIDIA 驱动器和Docker 版本中工作。查看地址https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

与不适用GPU加速器不同的是,使用了--gpus=all,如下

docker run --gpus=all -it -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw cyberbotics/webots:latest

7)更新到最新的Webots镜像

使用如下命令:

docker pull cyberbotics/webots:latest

问题:

可能在启动的时候会有fontconfig的问题,使用如下的命令之后,再重新启动:

sudo rm /var/cache/fontconfig/*
rm ~/.cache/fontconfig/*

服务器版本

Webots要求的一些图形特征在服务器版本里面是没有的,需要手动安装才能正常工作。webots使用一个虚拟的帧buffer比如Xvfb来运行没有GUI的情况:

xvfb-run --auto-servernum webots --mode=fast --no-rendering --stdout --stderr --minimize --batch /path/to/world/file

 

8)如何运行

~/webots-ws/webots$ ./webots