Tutorial 0: Webots简介

Tutorial 0: Webots简介_第1张图片

1.什么是Webots

Webots是一款专业的移动机器人仿真软件包。它提供了一个快速原型制作环境,允许用户创建具有物理属性(例如质量、关节、摩擦系数等)的 3D 虚拟世界。用户可以添加简单的被动对象或称为移动机器人的主动对象。这些机器人可以有不同的运动方案(轮式机器人、腿式机器人或飞行机器人)。此外,它们可能配备许多传感器和执行器设备,例如距离传感器、驱动轮、相机、电机、触摸传感器、发射器、接收器等。最后,用户可以单独对每个机器人进行编程以表现出所需的行为. Webots包含大量机器人模型和控制器程序示例,帮助用户快速入门。
Webots 还包含许多与真实移动机器人的接口,因此一旦您的模拟机器人按预期运行,您就可以将其控制程序转移到真实机器人,如 e-puck、DARwIn-OP、Nao 等。可以添加新接口通过相关系统。

2.运行 Webots 需要以下硬件

最低要求是具有至少 2 GHz 双核 CPU 时钟速度和 2 GB RAM 的相当新的 PC 或 Mac 计算机。但是建议使用四核 CPU。
需要具有至少 512 MB RAM 的 NVIDIA 或 AMD OpenGL(最低版本 3.3)图形适配器。我们不推荐任何其他图形适配器,包括 Intel 图形适配器,因为它们通常缺乏良好的 OpenGL 支持,这可能会导致 3D 渲染问题和应用程序崩溃。尽管如此,在某些情况下,安装最新的 Intel 图形驱动程序可以解决此类问题并让您使用 Webots。但是,我们对此不提供任何保证。对于 Linux 系统,我们只推荐 NVIDIA 显卡。 Webots 在最近的 Apple 计算机中包含的所有图形卡上运行良好。
支持以下操作系统:
Linux:确保 Webots 在最新的 Ubuntu 长期支持 (LTS) 版本上运行,当前版本为 18.04。但众所周知,它也可以在最新的主要 Linux 发行版上运行,包括 RedHat、Mandrake、Debian、Gentoo、SuSE 和 Slackware。我们建议使用最新版本的 Linux。 Webots 是为 Linux 64 (x86-64) 系统提供的。从 Webots 8.1.0 开始,不再提供 Linux 32 (i386) 版本。 Webots 不能在 12.04 之前的 Ubuntu 版本上运行。
Windows:Webots 在 Windows 10 64 位、Windows 8.1 64 位、Windows 8 64 位和 Windows 7 64 位上运行。它不受 32 位版本的 Windows 和旧版本(包括 Windows Vista 和 Windows XP)的支持。
Mac:Webots 在 macOS 10.13“High Sierra”和 10.12“Sierra”上运行。 Webots 可能有效,但在早期版本的 macOS 上不受官方支持。
可应要求提供适用于其他 UNIX 系统的其他版本的 Webots。

3.Webots可以用来做什么

Webots非常适用于与移动机器人技术相关的研究和教育项目。多年来,许多移动机器人项目在以下领域都依赖Webots。
移动机器人原型设计(学术研究、汽车工业、航空业、吸尘器行业、玩具行业、业余爱好者等)
机器人运动研究(腿部、人形机器人、四足机器人等)
多代理研究(蜂群智能、协作式移动机器人组等)
适应性行为研究(遗传算法、神经网络、AI等)。
机器人教学(机器人学讲座、C/C++/Java/Python编程讲座等)
机器人竞赛(如Robotstadium或Rat’s Life)。

4.使用Webots你需要哪些前置知识

您将需要最少的技术知识来开发您自己的模拟:
编程您自己的机器人控制器需要具备 C、C++、Java、Python 或 MATLAB 编程语言的基本知识。然而,即使您不了解这些语言,您仍然可以使用称为 BotStudio 的简单图形编程语言对 e-puck 和 Hemisson 机器人进行编程。
如果您不想使用 Webots 中提供的现有机器人模型,而是想创建自己的机器人模型,或在模拟环境中添加特殊对象,则需要 3D 计算机图形学和 VRML97 描述语言的基本知识。这将允许您在 Webots 中创建 3D 模型或从 3D 建模软件导入它们。

5.Webots仿真的组成

Webots 模拟由以下项目组成:

  1. 定义一个或多个机器人及其环境的 Webots 世界文件 (.wbt)。 .wbt 文件有时确实依赖于外部 PROTO 文件 (.proto) 和纹理。
  2. 上述机器人的一个或多个控制器程序(C/C++/Java/Python/MATLAB)。
  3. 一个可选的物理插件,可用于修改 Webot 的常规物理行为(在 C/C++ 中)。

6.World(世界)是什么

在 Webots 中,世界是对机器人属性及其环境的 3D 描述。它包含每个对象的描述:位置、方向、几何形状、外观(如颜色或亮度)、物理属性、对象类型等。世界被组织为层次结构,其中对象可以包含其他对象(如 VRML97)。例如,机器人可以包含两个轮子、一个距离传感器和一个本身包含摄像头的关节等。世界文件不包含机器人的控制器代码;它仅指定每个机器人所需的控制器名称。世界保存在“.wbt”文件中。 “.wbt”文件存储在每个 Webots 项目的“worlds”子目录中。

7.Controller(控制器)是什么

控制器是控制世界文件中指定的机器人的计算机程序。控制器可以用 Webots 支持的任何编程语言编写:C、C++、Java、Python 或 MATLAB。当模拟开始时,Webots 启动指定的控制器,每个控制器作为一个单独的进程,并将控制器进程与模拟机器人相关联。请注意,多个机器人可以使用相同的控制器代码,但是将为每个机器人启动一个不同的过程。
一些编程语言需要编译(C 和 C++),其他语言需要解释(Python 和 MATLAB),还有一些需要编译和解释(Java)。例如,C 和 C++ 控制器被编译为依赖于平台的二进制可执行文件(例如 Windows 下的“.exe”)。 Python 和 MATLAB 控制器由相应的运行时系统(必须安装)解释。 Java 控制器需要编译为字节码(“.class”文件或“.jar”),然后由 Java 虚拟机解释。
每个控制器的源文件和二进制文件一起存储在一个控制器目录中。每个 Webots 项目的“controllers”子目录下都有一个控制器目录。

8.什么是Supervisor 控制器

Supervisor 控制器是其 supervisor 字段设置为 TRUE 的机器人的控制器,它可以执行通常只能由人类操作员执行而不能由真实机器人执行的操作。 Supervisor 控制器可以用上述任何一种编程语言编写。然而,与常规机器人控制器不同的是,supervisor 控制器将有权访问特权操作。特权操作包括模拟控制,例如,将机器人移动到随机位置,对模拟进行视频捕获等。

你可能感兴趣的:(Webots使用教程,webots,机器人,仿真,强化学习)