【webots教程】你在webots搭建的第一个仿真环境

2023-11-18

系列文章目录

【webots教程】简介与软硬件要求

【webots教程】安装

【webots教程】关于webots的超详细介绍

【webots教程】你在webots搭建的第一个仿真环境

【webots教程】编写你的第一个控制器

【webots教程】简单的避障机器人

一、创建一个新的World

一个World是包含像对象是一个信息的文件,比如他们的样式,它们如何相互约束,天空是怎样的,重力是多少,摩擦力,物体的质量等。不同的对象称为“ 节点”,并在“ 场景树”中进行分层组织。因此,一个节点可能包含子节点。World存储在具有.wbt扩展名的文件中。文件格式源自VRML97语言,并且易于阅读。世界文件必须直接存储在名为的目录中worlds。

1、场景

单击3D视图中的Pause按钮暂停当前​​模拟,位置如下图。如果主工具栏上的虚拟时间计数器已停止,则模拟将暂停。

在这里插入图片描述
依次点击Wizards->New Project Directory,该步骤用于创建一个新项目,点击后你应该能看到以下画面:

如果你把界面设置成了中文则为 向导->新项目目录

在这里插入图片描述
点击下一步,可以填入指定的项目目录
在这里插入图片描述
点击下一步,这里填入仿真文件的名称,这里勾选上最后一栏(默认是不勾选的)
在这里插入图片描述

点击下一步,完成,现在应该能看到我们创建好的场景了

在这里插入图片描述

2、修改场景

如果你成功看到以上画面,恭喜,你刚刚创建了一个Webots世界!这时候您可以使用鼠标在3D视图中移动视点:左按钮(旋转),右按钮(平移)和滚轮(缩放)

存储在世界文件中的Webots节点构成了场景树。可以在主窗口的两个子窗口中查看场景树:3D视图(在主窗口的中心)是场景树的3D表示,而场景树视图(在左侧)是层次表示。场景树。可以在场景树视图中修改节点和字段。它当前应列出以下节点:

  • WorldInfo:包含模拟的全局参数。
  • Viewpoint:定义主要视点相机参数。
  • TexturedBackground:定义场景的背景(如果稍微旋转视点,您应该看到远处的山)
  • TexturedBackroundLight:定义与上述背景关联的光。
  • RectangleArena:定义到目前为止您在该场景中看到的唯一对象。

在这里插入图片描述
每个节点都有一些称为Fields的可自定义属性。我们可以修改这些字段以更改矩形区域:

双击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键并左击对象并拖动该框,将其移动到舞台的某个角落。

shift+左键为平移

在这里插入图片描述

选择3D场景中的木箱子,然后按Ctrl-C,Ctrl-V(Windows,Linux)或Cmd-C,Cmd-V(macOS)进行复制和粘贴。按住Shift并单击并拖动新框,将其移到其他位置。用同样的方法创建第三个木箱。移动这些木箱,尽量让其分散且不会位于竞技场的中心。您也可以使用绿色的旋转箭头沿垂直轴旋转框。也可以通过按住Shift并用鼠标右键拖动来完成。或者,您可以更改场景树中节点的rotation视场角度WoodenBox。

shift+右键为旋转

在这里插入图片描述

需要注意的是,木箱子默认mass为0,不受重力影响,因此会悬空在棋盘上方,你需要重新设置质量

对结果满意后,请使用保存按钮保存世界。

4、添加e-puck机器人

e-puck是一款小型机器人,带有差速轮,10个LED和几个传感器,其中包括8个DistanceSensors和一个Camera。在本教程中,我们仅对使用其轮子感兴趣。在接下来的教程中,我们将学习如何使用其他功能。

现在,我们将向世界添加一e-puck机器人模型。确保模拟已暂停并且仿真为0。如果不是这种情况,请使用Reset按钮重置模拟。

当修改Webots世界以进行保存时,首先要暂停模拟并将其重新加载到其初始状态,这是基本的要求,即主工具栏上的虚拟计时器应显示0:00:00:000。否则,每次保存时,每个3D对象的位置都会累积错误。因此,对世界的任何修改都应按以下顺序执行:暂停,重置,修改和保存仿真。

我们不需要从头开始创建e-puck机器人,只需要导入一个E-puck节点即可。这个节点实际上是一个PROTO节点,就像我们之前介绍的RectangleArena或WoodenBox一样。原型制作允许您创建自定义对象并重用它们。

选择WoodenBox场景树视图的最后一个节点。单击场景树视图顶部的Add按钮。在对话框中,选择PROTO nodes (Webots Projects) / robots / gctronic / e-puck / E-puck (Robot)。电子冰球机器人应该出现在舞台中央。移动和旋转此机器人,就像处理盒子一样。保存模拟并按下Run real-time按钮。

在这里插入图片描述

开始仿真后机器人应该会移动,LED闪烁,并且主动避免障碍物。这是因为它已经具备默认的控制器。你可能已经注意到3D视图的左上角出现了一个黑色的小窗口。它显示了电子冰球机器人的相机拍摄的图像。该图像将保持黑色,直到由机器人的控制器明确启用相机为止。可以通过拖动来移动该小图像窗口。也可以通过拖动右下角来调整其大小。最后,可以通过单击右上角的“ x”将其关闭。您可以通过在Overlays菜单中的Camera Devices中将其选中,使其再次可见。因为我们不需要它,所以您实际上可以将其关闭。


如果觉得ok,点个赞,点个关注,也欢迎给个打赏支持一下编者的工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【webots教程】你在webots搭建的第一个仿真环境 的相关文章

随机推荐

  • AD20的元件库及加载(一)

    开始时我们画的是元器件 元器件在后缀名为 的文件里画 以画电容为例 上图就是结果 画着简单 过程能学会很多 小伙伴们可能刚刚接触 不知道在哪找线 选择元器件不放 按住鼠标左键 并按下空格 即可旋转元器件的角度 每次旋转90度 电阻的两边的四
  • 福到了(15 分)

    L1 6 福到了 15 分 福 字倒着贴 寓意 福到 不论到底算不算民俗 本题且请你编写程序 把各种汉字倒过来输出 这里要处理的每个汉字是由一个 N N 的网格组成的 网格中的元素或者为字符 或者为空格 而倒过来的汉字所用的字符由裁判指定
  • 软件测试基础内容学习(二)之边界值分析法

    对限定边界规则设计测试点 边界值分析法 说明 1 边界范围节点 2 应用设计步骤 3 案例 4 适用场景 边界范围节点 选取正好等于 上点 刚好大于 刚好小于 离点 边界的值作为测试数据 内点 一般取最中间的点 在范围内的点 应用设计步骤
  • Python deque的用法介绍

    Python deque的用法介绍 deque 是Python标准库 collections 中的一个类 实现了两端都可以操作的队列 相当于双端队列 与Python的基本数据类型列表很相似 Python实现双端队列参考 https blog
  • JVM 一. 字节码与数据类型相关

    目录 一 字节码 数据类型相关 一 字节码 数据类型相关 字节码文件是跨平台的吗 是的 java虚拟机主要识别字节码文件 其实现在的java虚拟机已经不是单纯的java的 只要语言满足虚拟机的规范 都可以在这个虚拟机上运行 class文件中
  • 一、Kubernetes系列之介绍篇

    Kubernetes介绍 1 背景介绍 云计算飞速发展 IaaS PaaS SaaS Docker技术突飞猛进 一次构建 到处运行 容器的快速轻量 完整的生态环境 2 什么是kubernetes 首先 他是一个 全新的基于容器技术的分布式架
  • 微信回调模式配置企业服务器URL

    转载请标明出处 尊重他人劳动成果 谢谢 前几天微信推出了企业号 我就进去关注了一下 发现用途大大的多 就顺手整了一个测试号来试试 由于是新出的玩意儿 很多东西有文档也不到一定知道整 我这个配置就花了蛮久才找到失败的原因 最终是借用了浩然哥的
  • STL——queue模板类常见函数

    include
  • 【Python数据分析】Pandas按行遍历Dataframe

    Pandas按行遍历Dataframe的方法主要有两种 iterrows 和itertuples 具体用法如下 构建数据集 import pandas as pd import numpy as np N 20 dataset pd Dat
  • 08C++11多线程编程之unique_lock类模板

    08C 11多线程编程之unique lock类模板 前述 如果看懂了该篇文章 你对unique lock可以说随便使用 并且可以只看第5点的总结即可 1 unique lock概念 当不加参数时 和lock guard一样能自动上锁解锁
  • Unity 实现选框选中物体

    最近在看RTS游戏视频注意到了选框功能 就尝试做了一下 功能实现 脚本挂载到Camera上 要不然OnPostRender 函数无法调用 rectMat新建一个材质球 设置成默认的Sprites就可以了 using System Colle
  • Vue的安装和部署

    1 下载安装node js 官网下载地址 https nodejs org en 如果C盘较小 可以自定义安装到其他盘 解压完的目录如下 2 node v npm v 能看到版本号说明安装成功 3 在安装目录下 创建全局安装目录 node
  • Sqlite进阶之--附加数据库关联查询以及Pragma的相关使用

    数据库连接 基本的 Data Source c mydb db Version 3 此类库不支持版本 2 内存数据库 Data Source memory Version 3 New True SQLite 数据库通常存储在磁盘上 但数据库
  • 元组学习python复习资料

    a 第0个 2 3 d 倒1 1 倒1 2 这里我们区分好命名各元祖 1为第0个元祖 2为第1个元祖 csharp 再介绍一下元祖的概念 数据结构在python中包含 元祖 列表和字典 特点1 元祖一旦被创建不能被修改 a 第0个 2 3
  • 简洁直观的飞行器数学模型推导

    运动学方程 动力学方程 值得注意的是 对于非定轴和定轴转动 h r
  • HDOJ 7328 Snake —— 2023“钉耙编程”中国大学生算法设计超级联赛(5)(2023杭电多校第五场)

    题目链接 简要题意 题目相当于求 n n n个人排成 m m m个队伍 队伍内部有序 队伍之间无序 最长的长度不超过 k
  • ffmpeg最简单方式支持nvidia硬编解码

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 nvidia硬编解码是什么 二 使用步骤 1 安装 2 确认 1 硬件解码器 2 硬件编码器 3 测试 总结 前言 因为工作内容的需要 之前写过一篇文章关
  • java 线程休眠 假死,java多线程-jstack线程阻塞问题排查

    线上高并发时 tomcat挂掉了 应用假死等问题 都可以使用jstack查看线程堆栈的问题 jstack参数解说 首先线程状态如下 New 当线程对象创建时存在的状态 此时线程不可能执行 Runnable 当调用thread start 后
  • IT项目管理(4)

    文章目录 联合同学做一个年级微信公众号加强各班相互了解 联合活动等 请编制项目章程和项目管理计划 指导该项目实施与运营 必须包含 WBS 和 甘特图 项目章程 测量目的 可测量的项目目标和相关的成功标准 高层级需求 高层级项目描述 边界定义
  • 【webots教程】你在webots搭建的第一个仿真环境

    系列文章目录 webots教程 简介与软硬件要求 webots教程 安装 webots教程 关于webots的超详细介绍 webots教程 你在webots搭建的第一个仿真环境 webots教程 编写你的第一个控制器 webots教程 简单