来自于官网的翻译: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