首页 > 其他分享 > 9、教程-6 第一个PROTO文件

9、教程-6 第一个PROTO文件

时间:2023-07-27 22:45:04浏览次数:37  
标签:文件 教程 PROTO 机器人 FourWheelsRobot rotation 节点

本教程的目的是创建与上一教程中的四轮机器人相对应的PROTO文件。

目前,机器人的定义完全包含在世界文件中。在PROTO文件中移动此定义将允许您使用此机器人,而无需完全复制和粘贴其定义(在同一世界或不同世界中多次)。

在您喜欢的文本编辑器中打开上一教程中创建的世界4_wheels_robot.wbt。在项目的protos文件夹中创建一个新的空文本文件,名为FourWheelsRobot.proto,并在文本编辑器中打开该文件,该文件将包含机器人的定义。

任何PROTO文件至少应遵循以下结构:

#VRML_SIM R2023b utf8
PROTO protoName [
  protoFields
]
{
  protoBody
}

protoName应该是PROTO文件的名称(即本例中的FourWheelsRobot),protoFields定义PROTO节点的可修改字段(该部分目前应为空),protoBody是根节点的定义(即本案中的Robot节点)。

使用正确的protoName在PROTO文件中写入此默认结构。从4_wheels_robot.wbt世界文件复制robot节点(以robot{开始,以final}结束),并将其粘贴到PROTO文件中,而不是protoBody中。最后,保存PROTO文件。

  #VRML_SIM R2023b utf8
  PROTO FourWheelsRobot [

  ]
  {
    Robot {
      # list of fields
    }
  }

使用PROTO节点

这个新的PROTO节点现在可用于当前项目中的每个世界。

在Webots中打开4_wheels_robot.wbt世界,然后添加FourWheelsRobot节点(您刚刚定义的)。该节点位于PROTO节点(当前项目)/ForWheelsRobot(机器人)中。

应该在与现有机器人完全相同的位置添加第二个4轮机器人。

增加域

正如您可能注意到的,这个新的PROTO节点没有任何开放字段,因此不可能平移、旋转或更改控制器。将新字段添加到PROTO节点并将其与内部字段链接是非常容易的。这应该在PROTO接口部分([和]之间的部分)中完成。

在文本编辑器中编辑PROTO文件,并在PROTO接口部分添加平移、旋转和bodyMass字段的定义:

 field SFVec3f    translation  0 0 0
  field SFRotation rotation     0 0 1 0
  field SFFloat    bodyMass     1

您的PROTO节点现在有两个打开的字段,但它们没有链接到任何内部字段。要链接应使用IS关键字的字段,只需将Robot节点的平移x y z和旋转x y z角度字段替换为:

 translation IS translation
  rotation IS rotation

和机器人节点的物理节点的质量域通过:

  mass IS bodyMass

保存PROTO文件

#VRML_SIM R2023b utf8
PROTO FourWheelsRobot [
  field SFVec3f    translation  0 0 0
  field SFRotation rotation     0 0 1 0
  field SFFloat    bodyMass     1
]
{
  Robot {
    translation IS translation
    rotation IS rotation
    children [
      # list of children nodes
    ]
    boundingObject USE BODY
    physics Physics {
      density -1
      mass IS bodyMass
    }
    controller "four_wheels_collision_avoidance"
  }
}

现在,您可以将模拟保存在Webots中并进行还原。FourWheelsRobot节点的平移、旋转和bodyMass现在可以更改(在场景树中或使用三维视图中的控制柄)。
同样的机制也可以用于暴露机器人节点的控制器字段。

 

标签:文件,教程,PROTO,机器人,FourWheelsRobot,rotation,节点
From: https://www.cnblogs.com/gary-guo/p/17586308.html

相关文章

  • 9、教程-7 Supervisor
    主管监督一个世界,并可以设置或获取有关它的信息。本教程将教你:Howtomoveobjectsusingthesupervisor.Howtodeleteanodeandspawnanotherinitsplace.Howtotracktheevolutionofanobjectinthescene.Howtochangethepropertiesofanobject,namely......
  • linux软件管理:rpm文件及指令 | 软件的安装、卸载、查询、查看
    摘要介绍linux的rpm文件以及rpm指令一、rpm介绍rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHatPackageManager(RedHat软件包管理工具)的缩写,类似windows的setup.exe(可以理解为rpm文件是一个安装的可执行程序)......
  • 9、教程-5 四轮机器人
    本教程旨在从头开始创建您的第一个机器人。机器人将由一个身体、四个轮子和两个距离传感器组成。结果如图所示。下图显示了机器人的俯视图。tutorial_4_wheels_robot.png四轮机器人的三维视图。请注意,机器人主体及其轮子的坐标系表示以相同的方式定向。它们的+x矢量(红色)定义机器......
  • 设置ip和主机名映射:linux配置hosts文件 | windows配置hosts文件
    摘要目的:Windows下主机名和ip的映射关系linux设置主机名和ip的映射关系一、Windows设置主机名和ip映射修改文件C:\Windows\System32\drivers\etc\hosts,添加ip和主机名192.168.200.130CentOS192.168.10.100hadoop100192.168.10.101hadoop101192.168.10.102hadoop1......
  • 主机名解析过程:Hosts文件 | DNS | windows查看DNS缓存 | 隐患
    摘要目的:本文以linux虚拟机和Windows为例,来介绍一下主机名解析过程主机名解析不完全是靠DNS一、基本概念主机名:比如www.baidu.com、hadoop100等等1.Hosts文件hosts文件是一个文本文件,用来记录IP和Hostname(主机名)的映射关系在Windows和linux里面都有Windows:C:\Wi......
  • linux rwx权限:rwx权限含义 | 更改文件权限
    摘要目的:讲述关于linux的rwx操作一、含义1.rwx含义rwx的含义如下第1-3位确定所有者(该文件的所有者)拥有该文件的权限第4-6位确定所属组(同用户组的)拥有该文件的权限第7-9位确定其他用户拥有该文件的权限具体含义如下rwx作用于文件字符说明r代表可读(re......
  • linux文件权限案例
    摘要目的:通过列举以下的案例来说明linux文件权限的作用;可以自己领会一、警察和土匪游戏前提:两个组,每组有两个人police:jack,Jerrybandit:xh,xq要求:创建组和用户jack创建一个文件,自己可以读写,本组人(警察们)可以读,其他人没有任何权限jack修改文件,让其他人可以读,本族人可以......
  • linux统计文件/目录个数
    摘要目的:介绍以下常用的统计一个目录下文件/目录的个数指令指令功能说明选项`ll/opt/grep"^-"wc-l`统计/opt文件夹下文件的个数`ll/opt/grep"^d"wc-l`统计/opt文件夹下目录的个数`ll-R/opt/grep"^-"wc-l`统计/opt文件夹下文件的个数,包括......
  • Xml文件相关操作
    Xml文件相关操作C#中的XML是一种可扩展标记语言(ExtensibleMarkupLanguage),用于存储和交换数据。在C#中,我们可以使用内置的System.Xml命名空间来处理和操作XML数据。一、关键概念1.标签(Tags)XML使用标签来标识数据的起始和结束。标签由尖括号(<>)包围,可以包含标签名称和属性。......
  • Java 按行写入 文本文件
    Java按行写入文本文件在Java中,我们经常需要将数据写入到文本文件中。而将数据按行写入文本文件是一种常见的需求。本文将介绍如何使用Java按行写入文本文件,以及提供相应的代码示例。1.创建文件在开始之前,我们需要先创建一个文本文件,用于存储我们要写入的数据。可以使用File类......