2.1 初识Webots

来源:互联网 发布:数据新闻的特点 编辑:程序博客网 时间:2024/06/05 04:32

2.1 Webots作用

Webots是一款专业的移动机器人仿真软件平台。它提供一个机器人快速建模的软件环境,让用户能够虚拟的3D环境和物理属性,比如 质量、关节、摩擦系数 等。用户能够加入简单的被动或者主动的机器人。这些机器人能够有不同的运动方案,如

  • 轮式机器人
  • 足式机器人
  • 飞行机器人

更多的是,这些机器人身上还能加上一系列传感器和电机,例如

  • 距离传感器
  • 驱动轮
  • 摄像头
  • 舵机
  • 触觉传感器
  • 发射器
  • 接收器

最后,用户能够给每个机器人编程去展示想要的行为和动作。Webots已经有许多机器人模型和控制器程序例程帮助用户使用。

Webots还有许多和实际移动机器人的接口,你能够按照你所想的去仿真机器人,并且将仿真的控制程序转移到实际的机器人上。比如

  • e-puck
  • DARwIn-OP
  • Nao

2.1.2 你能用Webots做什么

Webots非常适合移动机器人的研究和教育项目。许多移动机器人的项目长久的依赖Webots,如以下项目:

  • 移动机器人的原型设计(学术研究,汽车行业,航空, 吸尘器行业, 玩具产业, 爱好者等)
  • 机器人运动研究(足式,类人机器人,四足机器人等)
  • 多机器人的研究(群智能, 合作的移动机器人组等)
  • 自适应行为研究( 遗传算法, 神经网络,人工智能等)
  • 教学机器人(机器人讲座, C/C++/Java/Python programming 教学等)
  • 机器人竞赛(例如:www.robotstadium.org 或 www.ratslife.org)

2.1.3 我需要知道如何使用Webots

你需要掌握最少的技术来开发你的仿真

  • 基本的C, C++, Java, Python或者Matlab编程语言是必须的,可以用来编写你自己的机器人控制器。然而,即使你不知道这些编程语言,你还是能够通过使用简单的图形编程语言BotStudio来编写e-puck和Hemisson机器人的控制程序。
  • 如果你不想用Webots提供的机器人模型,想要创建你自己的机器人,或者在仿真环境中加入特别的物体,你将会需要一些3D计算机图形学和VRML97描述语言。这些语言会帮助你在Webots创建3D模型或者从3D建模软件导入这些模型。

2.1.4 Webots仿真

Webots仿真有下列项目组成
1. 一个Webots的世界文件(.wbt), 该文件定义了一个或者几个机器人和物理环境。 .wbt文件有时候依赖于外部的原型(.proto)和纹理。
2. 对于上述的机器人有一个或几个机器人控制程序(in C/C++/Java/Python/Matlab).
3. 一个可选的物理插件,用来修改Webots常规的物理行为(in C/C++)

2.1.5 什么是一个世界

在Webots中,一个世界,是机器人的属性和环境的3d描述。这包含一系列对于每个物体的描述:

  • 位置
  • 方向
  • 几何(geometry)
  • 外观 (颜色和亮度)
  • 物理属性
  • 物体的种类

世界被组织为层次结构,其中对象可以包含其他对象(比如VRML97)。例如,一个机器人可以包含两个轮子,一个距离传感器,一个含有摄像头的舵机等。世界文件没有含有机器人的控制代码;它只列出每个机器人的控制器的名字。世界被保存到 .wbt 文件中。 .wbt文件被保存到每个webots项目的子目录。

2.1.6 什么是控制器

控制器是一个计算机程序,它可以控制在世界文件中指定的机器人。 控制器可以使用任意Webots支持的语言进行编程:C, C++, Java, Python 或 Matlab。
当一个仿真运行时,Webots启动指定的控制器,每个作为单独的过程, 并且其将控制器处理与模拟的机器人相关联。注意几个机器人可以使用同一个控制代码,然而,Webots需要为每个机器人启动不同的过程。

一些编程语言需要变编译(C , C++),其他的编程语言需要被解释(Python和Matlab),还有一些需要被编译,解释(Java)。例如,C和C++被编译成平台相关的二进制可执行文件(比如windows的.exe)。Python和Matlab控制器运行时由系统解释(这需要安装好)。Java控制器需要被编译成字节代码(.class 文件或者 .jar),然后由Java虚拟机解释。

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

2.1.7 什么是Supervisor

Supervisor是一个特殊类型的机器人,它可以执行仅仅由人类操作员可以执行的(不能被真实机器人执行的)操作。Supervisor通常可以与任何上述编程语言编写的控制器程序相关联。然而,相比于一个常规的机器人控制器,Supervisor能进行特殊操作,比如仿真控制,可以移动机器人到任意一个位置,进行一个视频捕捉仿真等。

1 0
原创粉丝点击