Tutorial 2:Modification of the Environment

文章目录

      • 1.理论部分
      • 2.实践部分

1.理论部分

在本教程中,我们将教您如何在环境中创建简单的对象。第一步是创建一个与环境互动的球。我们将解决与节点相关的几个概念:它们的含义是什么,如何创建它们,它们必须如何关联等等。此外,我们将了解如何设置物理参数。它们的详细定义可以在参考手册中找到。将节点图表放在您面前,也将有助于理解节点继承关系。

本小节介绍 Webots 中最重要的基本节点:Solid 节点,许多其他节点都源自该节点。

Solid 节点表示刚体,即可以忽略变形的刚体。无论施加在其上的外力如何,刚体任意两个给定点之间的距离在时间上保持不变。例如一张桌子、一个机器人指节或一个轮子都是刚体。柔体和铰接物体不是刚体。例如,绳索、轮胎、海绵或关节机器人手臂都不是刚体。然而,一个关节实体可以分解成几个刚体。

Webots 的物理引擎专为模拟刚体而设计。在设计模拟时,一个重要的步骤是将各种实体分解为单独的刚体。要定义刚体,您必须创建一个实体节点。在此节点内,您将根据刚体的特性设置不同的子节点。下图描绘了刚体及其子节点。 Solid 节点的图形表示由填充其子列表的 Shape 节点定义。碰撞边界在其 boundingObject 字段中定义。图形表示和碰撞形状通常但不一定相同。最后,physics field定义对象是属于动态环境还是静态环境。所有这些子节点都是可选的,但physics field 需要定义 boundingObject。
Tutorial 2:Modification of the Environment_第1张图片
DEF-USE机制允许在一个地方定义一个节点并在场景树的其他地方重复使用该定义。这对于避免世界文件中相同节点的重复是非常有用的。此外,它还允许用户在同一时间修改几个对象。以下是它的工作原理:首先,一个节点被贴上一个DEF字符串。然后这个节点的副本可以通过USE关键字在其他地方重复使用。只有 DEF 节点的字段可以被编辑,USE 的字段继承自 DEF 节点,不能被改变。这种机制取决于世界文件中节点的顺序。一个 DEF 节点应该定义在任何相应的 USE 节点之前。
Tutorial 2:Modification of the Environment_第2张图片
总体而言内容主要是下面几点,对于添加的Solid节点我们可以

  • 在其children下添加shape修改形状
  • 通过修改Solid的translation可以修改物体位置,通过修改rotation可以改变物体朝向
  • 通过设置physic可以添加物理参数重力,质量,密度
  • 通过设置boundingObject我们可以使物体与地面产生碰撞效果
  • 在shape中的geometry的DEF设置为BALLL之后可以在boundingObject中使用这个设置达到同样效果,与此同时体现了我们对减少场景树节点冗余的 DEF-USE 机制的应用。

2.实践部分

  1. 首先新建一个世界

Tutorial 2:Modification of the Environment_第3张图片
Tutorial 2:Modification of the Environment_第4张图片
Tutorial 2:Modification of the Environment_第5张图片
Tutorial 2:Modification of the Environment_第6张图片
Tutorial 2:Modification of the Environment_第7张图片

  1. 接下来新增一个地面,鼠标右键Add New

Tutorial 2:Modification of the Environment_第8张图片
Tutorial 2:Modification of the Environment_第9张图片

  1. 新加入一个球,之后命名为1号

Tutorial 2:Modification of the Environment_第10张图片
修改一下地面的大小,这样可以看到球了
Tutorial 2:Modification of the Environment_第11张图片
修改坐标将它设置到天上
Tutorial 2:Modification of the Environment_第12张图片
将球的名字修改为1
Tutorial 2:Modification of the Environment_第13张图片

  1. 接下来新增一个Solid节点,修改名字为2

Tutorial 2:Modification of the Environment_第14张图片
对Solid的children节点右键Add New,然后如图操作添加shape
Tutorial 2:Modification of the Environment_第15张图片
修改几何形状
Tutorial 2:Modification of the Environment_第16张图片
将solid这个球设置到天上
Tutorial 2:Modification of the Environment_第17张图片
开始仿真发现小球1号自由落体而2号球没有动
Tutorial 2:Modification of the Environment_第18张图片

对2号大球添加物理参数
Tutorial 2:Modification of the Environment_第19张图片
再次仿真发现打球也会自由下落,而且会穿过地面
Tutorial 2:Modification of the Environment_第20张图片

Tutorial 2:Modification of the Environment_第21张图片
为什么白球不会停留在地面上?

  1. 类似2号球的创建我们再新建一个3号球

Tutorial 2:Modification of the Environment_第22张图片
Tutorial 2:Modification of the Environment_第23张图片
更名为3

添加形状
Tutorial 2:Modification of the Environment_第24张图片
修改几何形状
Tutorial 2:Modification of the Environment_第25张图片
修改名字为3
Tutorial 2:Modification of the Environment_第26张图片
添加重力物理参数
Tutorial 2:Modification of the Environment_第27张图片
修改质量
Tutorial 2:Modification of the Environment_第28张图片
更改boundingObject
Tutorial 2:Modification of the Environment_第29张图片
Tutorial 2:Modification of the Environment_第30张图片
再次仿真可以看到3号球可以停在地面上了,而2号球由于没有改变boundingObject而直接穿过了地面。
Tutorial 2:Modification of the Environment_第31张图片
Tutorial 2:Modification of the Environment_第32张图片
另外我们也可以修改形状
Tutorial 2:Modification of the Environment_第33张图片
Tutorial 2:Modification of the Environment_第34张图片
Tutorial 2:Modification of the Environment_第35张图片Tutorial 2:Modification of the Environment_第36张图片
可以看到球的粗糙度之类的有改变
Tutorial 2:Modification of the Environment_第37张图片
我们可以在shape中的geometry Sphere中的DEF添加BALLL
Tutorial 2:Modification of the Environment_第38张图片
删除之前设置的boundingObject
Tutorial 2:Modification of the Environment_第39张图片
再次让3号球自由下落
Tutorial 2:Modification of the Environment_第40张图片
可以发现3号球会穿过地面。接下来修改boundingObject如下图,从而使用我们刚刚定义的BALLL
Tutorial 2:Modification of the Environment_第41张图片
再次仿真之后可以看到球可以落到地面上不穿过去,如此达到了和最开始boundingObject设置有一样的效果。
Tutorial 2:Modification of the Environment_第42张图片
通过仿真我们可以看到物体不会穿过地面,达到了和之前一样的效果。
另外我们可以再次创建一个4号球,定义其shape中的geometry时可以直接使用之前的BALLL。
Tutorial 2:Modification of the Environment_第43张图片
Tutorial 2:Modification of the Environment_第44张图片
在这两个地方都可以使用我之前预定义的DEF BALLL,我的理解是一个是几何外观,一个是几何碰撞接触,就像下图所描述的。
Tutorial 2:Modification of the Environment_第45张图片
在本教程结束时,您将能够创建基于刚体的简单环境。您可以从场景树视图中添加节点并修改它们的字段。您已经熟悉了 Solid、Physics、Shape、Sphere 和 Box 节点。您还看到了允许减少场景树节点冗余的 DEF-USE 机制。

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