一、创建一个新的World
一个World是包含像对象是一个信息的文件,比如他们的样式,它们如何相互约束,天空是怎样的,重力是多少,摩擦力,物体的质量等。不同的对象称为“ 节点”,并在“ 场景树”中进行分层组织。因此,一个节点可能包含子节点。World存储在具有.wbt扩展名的文件中。文件格式源自VRML97语言,并且易于阅读。世界文件必须直接存储在名为的目录中worlds。
1、场景
单击3D视图中的Pause按钮暂停当前模拟,位置如下图。如果主工具栏上的虚拟时间计数器已停止,则模拟将暂停。
依次点击Wizards
->New Project Directory
,如果你把界面设置成了中文则为 向导->新项目目录,
该步骤用于创建一个新项目,点击后你应该能看到以下画面:
点击下一步,可以填入指定的项目目录
点击下一步,这里填入仿真文件的名称,这里勾选上最后一栏(默认是不勾选的)
点击下一步,完成,现在应该能看到我们创建好的场景了
2、修改场景
- WorldInfo:包含模拟的全局参数。
- Viewpoint:定义主要视点相机参数。
- TexturedBackground:定义场景的背景(如果稍微旋转视点,您应该看到远处的山)
- TexturedBackroundLight:定义与上述背景关联的光。
- RectangleArena:定义到目前为止您在该场景中看到的唯一对象。
选中floorTileSize
,你应该看到下方会多出一个框,将其值设置0.25 0.25。您应该立即在3D视图中看到效果。
可以通过同样的方法来改变场景中的其他设置,例如墙的高度(wallHeight)
3、添加物体
双击RectangleArena
场景树中的将其关闭并选择它。单击场景树顶部的Add
按钮。在打开的对话框中,
依次选择PROTO nodes (Webots Projects) / objects / factory / containers / WoodenBox (Solid)
。一个大盒子应该出现在舞台中央。
在场景树中双击它以打开其字段。将其更改size为0.1 0.1 0.1。 将其更改translation为0 0.05 0。或者,您可以使用3D视图中显示的绿色箭头来调整其translation.y字段。
你可以在3D视图中按住键盘Shift键并左击对象并拖动该框,将其移动到舞台的某个角落。
选择3D场景中的木箱子,然后按Ctrl-C,Ctrl-V(Windows,Linux)或Cmd-C,Cmd-V(macOS)进行复制和粘贴。按住Shift并单击并拖动新框,将其移到其他位置。用同样的方法创建第三个木箱。移动这些木箱,尽量让其分散且不会位于竞技场的中心。您也可以使用绿色的旋转箭头沿垂直轴旋转框。也可以通过按住Shift并用鼠标右键拖动来完成。或者,您可以更改场景树中节点的rotation视场角度WoodenBox。
需要注意的是,木箱子默认mass为0,不受重力影响,因此会悬空在棋盘上方,你需要重新设置质量 对结果满意后,请使用保存按钮保存世界。
4、添加e-puck机器人
Reset
按钮重置模拟。
- 当修改Webots世界以进行保存时,首先要暂停模拟并将其重新加载到其初始状态,这是基本的要求,即主工具栏上的虚拟计时器应显示0:00:00:000。否则,每次保存时,每个3D对象的位置都会累积错误。因此,对世界的任何修改都应按以下顺序执行:暂停,重置,修改和保存仿真。
Add
按钮。在对话框中,选择PROTO nodes (Webots Projects) / robots / gctronic / e-puck / E-puck (Robot)
。电子冰球机器人应该出现在舞台中央。移动和旋转此机器人,就像处理盒子一样。保存模拟并按下Run real-time
按钮。开始仿真后机器人应该会移动,LED闪烁,并且主动避免障碍物。这是因为它已经具备默认的控制器。你可能已经注意到3D视图的左上角出现了一个黑色的小窗口。它显示了电子冰球机器人的相机拍摄的图像。该图像将保持黑色,直到由机器人的控制器明确启用相机为止。可以通过拖动来移动该小图像窗口。也可以通过拖动右下角来调整其大小。最后,可以通过单击右上角的“ x”将其关闭。您可以通过在Overlays菜单中的Camera Devices中将其选中,使其再次可见。因为我们不需要它,所以您实际上可以将其关闭。