系列文章

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

【webots教程】安装

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

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

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

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

Webots是专业的移动机器人仿真软件包。它提供了快速的原型制作环境,使用户可以创建具有物理特性(例如质量,关节,摩擦系数等)的3D虚拟世界。本文将会对webots进行超详细的介绍,他是什么,他能干啥?将会在本文中一一获知

更多详细内容可以在webots官方文档获取

一、什么是Webots?

Webots是专业的移动机器人仿真软件包。它提供了快速的原型制作环境,使用户可以创建具有物理特性(例如质量,关节,摩擦系数等)的3D虚拟世界。用户可以添加简单的被动对象或称为移动机器人的主动对象。这些机器人可以具有不同的移动方案(轮式机器人,有腿机器人或飞行机器人)。而且,它们可能配备有许多传感器和执行器设备,例如距离传感器,驱动轮,摄像机,马达,触摸传感器,发射器,接收器等。最后,用户可以对每个机器人进行单独编程,以表现出所需的行为。Webots包含大量机器人模型和控制器程序示例,以帮助用户入门。

Webots还包含许多与真实移动机器人的接口,因此,一旦您模拟的机器人表现出预期的行为,您就可以将其控制程序转移到诸如e-puck,DARwIn-OP,Nao等真实机器人上。可以添加新接口通过相关系统。

二、我用Webots能做什么?

Webots非常适合与移动机器人相关的研究和教育项目。多年来,许多移动机器人技术项目都在以下方面依靠Webots:

  • 移动机器人原型制作(学术研究,汽车工业,航空航天,吸尘器工业,玩具业,业余爱好者等)
  • 机器人运动研究(有腿,类人动物,四足机器人等)
  • 多主体研究(群智能,协作式移动机器人小组等)
  • 自适应行为研究(遗传算法,神经网络,人工智能等)。
  • 教授机器人技术(机器人学讲座,C / C ++ / Java / Python编程讲座等)
  • 机器人竞赛(例如,Robotstadium 和 Rat’s Life)

三、使用Webot我需要知道些什么?

如果你想开发自己的仿真,你讲需要以下描述的,关于该方面的最基础的知识:

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

四、Webots模拟

Webots模拟由以下各项组成:

  • 一个Webots 世界文件(.wbt),它定义一个或多个机器人及其环境。.wbt文件有时取决于外部PROTO文件(.proto)和纹理。
  • 机器人的一个或几个控制器程序(在C / C ++ / Java / Python / MATLAB中)。
  • 一个可选的物理插件,可用于修改Webots的常规物理行为(在C / C ++中)。

五、什么是Webots 世界文件(.wbt)?

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

六、什么是控制器?

控制器是控制世界文件中指定的机器人的计算机程序。可以使用Webots支持的任何编程语言编写控制器:C,C ++,Java,Python或MATLAB。当模拟开始时,Webots启动指定的控制器,每个控制器都是一个单独的进程,并将控制器进程与模拟的机器人相关联。请注意,多个机器人可以使用相同的控制器代码,但是将为每个机器人启动一个不同的过程。

一些编程语言需要编译(C和C ++),其他语言需要解释(Python和MATLAB),而另一些则需要同时编译和解释(Java)。例如,C和C ++控制器被编译为平台相关的二进制可执行文件(例如Windows下的“ .exe”)。Python和MATLAB控制器由相应的运行时系统(必须安装)解释。Java控制器需要编译为字节码(“ .class”文件或“ .jar”),然后由Java虚拟机进行解释。

每个控制器的源文件和二进制文件一起存储在控制器目录中。控制器目录放置在每个Webots项目的“ controllers”子目录中。

七、什么是主管控制器?

该主管控制器是的控制机器人,其supervisor字段设置为TRUE,它可以执行通常只能由人工操作,而不是由一个真正的机器人进行操作。该主管控制器可以写在上述任何编程语言。但是,与常规的Robot控制器相比,Supervisor控制器将有权访问特权操作。特权操作包括仿真控制,例如,将机器人移动到随机位置,对仿真进行视频捕获等。

总结

通过对以上问题的解答,是否已经对webots有一定了解了呢?接下来将会正式进入webots教学中去,从图形界面开始,一步一步敲开机器人仿真的大门


如果觉得ok,点个赞,点个关注,也欢迎给个打赏支持一下编者的工作

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

  1. Git安装教程(Windows安装超详细教程)

    Git安装教程(Windows安装超详细教程)  weir_will 关注 0.9 2017.10.08 00:59* 字数 728 阅读 17955评论 8喜欢 41 2018年4月14日更新  更 ...

  2. MyBatis超详细介绍——SQL语句构建器类

    MyBatis超详细介绍--SQL语句构建器类 (本文作为学习笔记,了解更多请参考:MyBatis参考文档) MyBatis3提供了SQL类帮助构造SQL语句: private String sele ...

  3. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

  4. 卷积神经网络(CNN)超详细介绍

    文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图 ...

  5. 卷积神经网络超详细介绍1

    1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 9.Al ...

  6. 垃圾收集概述和垃圾收集算法(超详细介绍)

    文章目录 垃圾收集概述和垃圾收集算法(超详细介绍) 为什么我们还要去了解垃圾收集和内存分配 哪些内存需要回收 不需要回收的 需要回收的 方法区的回收 回收废弃常量 回收"不再被使用的类&qu ...

  7. 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍

    如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...

  8. 卷积神经网络超详细介绍(转载)

    卷积神经网络超详细介绍 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8 ...

  9. AIOT核心技术之一--37种传感器超详细介绍

    AIOT核心技术之一–37种传感器超详细介绍 我们知道,传感器对于AIOT来说是最核心的技术之一,在物理层中几乎就是通过各种传感器来从周围读取数据用网络技术传给应用层的人工智能.机器学习.大数据等领域 ...

最新文章

  1. GPIO代码使用流程(伪代码部分示例)
  2. 上海交大发布「人类行为理解引擎」:深度学习+符号推理,AI逐帧理解大片中每个动作...
  3. python工程师-我是如何转行成为了一名Python工程师
  4. 微型计算机的外存储器可与 直接打交道,微型计算机的外存储器可与( )直接打交道。...
  5. 亚马逊向土耳其企业启动“全球开店”计划,要和中国卖家抢夺欧洲市场
  6. UIKit 框架之UIActionSheet
  7. 【IDEA】推荐一些好用的IDEA插件
  8. 为什么不建议学python贴吧_为什么那么多自学Python的后来都放弃了,总结下来就这些原因...
  9. 张弥曼获“世界杰出女科学家奖”,她的贡献在哪你一定要知道!
  10. 【原创】FlashFXP_4.0.0.1510 值得研究
  11. java map取第一个元素_Java 8从Map中的匹配值中提取第一个键
  12. 利用Xcode建立PhoneGap应用程序环境
  13. 十大经典算法_家庭用电预测:线性回归算法(时间与功率功率与电流之间的关系)
  14. 032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
  15. asp php 一句话,ASP_asp一句话木马原理分析,通过HTTP协议来访问 一句话木 - phpStudy...
  16. 暴力猴插件的安装及使用
  17. 【C标准库】通过locale.h设置美元的格式
  18. 进阶学习,如何无代码设计一款美观且实用的网站?
  19. 南京大学2021计算机考研复试线是多少,2021南京大学
  20. mysql using where_mysql 优化问题 Using where; Using filesort

热门文章

  1. MS SQL Server 数据库分离-SQL语句
  2. java swing 技术简介,javaswing开发简介
  3. linux下gcc更新,Linux gcc版本如何升级
  4. opencv之 cvCvtColor的用法
  5. mysql提示Got timeout reading communication packets、Got an error reading communication packets
  6. 资源分享 | 摄影视频 | 碧水天颜摄影视频
  7. superfetch_将SuperFetch更改为仅在Vista中缓存系统启动文件
  8. Gmail之父发声:有了ChatGPT,搜索引擎活不过两年了...
  9. 薪资真相:程序员薪资被医生碾压!
  10. C语言和Python,哪个更适合入门?