< >
Home » ROS2与webots入门教程 » ros2与webots入门教程-目录

ros2与webots入门教程-目录

ros2与webots入门教程-目录

说明:

  • 这个专栏介绍什么是webots,用途,如何编写webots仿真机器人,如何实现建图,导航等相关功能

什么是Webots?

  • Webots是专业的移动机器人仿真软件包。它提供了快速的原型制作环境,使用户可以创建具有物理特性(例如质量,关节,摩擦系数等)的3D虚拟世界。用户可以添加简单的被动对象或称为移动机器人的主动对象。

  • 这些机器人可以具有不同的移动方案(轮式机器人,有腿机器人或飞行机器人)。而且,它们可能配备有许多传感器和执行器设备,例如距离传感器,驱动轮,摄像机,马达,触摸传感器,发射器,接收器等。最后,用户可以对每个机器人进行单独编程,以表现出所需的行为。Webots包含大量机器人模型和控制器程序示例,以帮助用户入门。

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

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控制器将有权访问特权操作。特权操作包括仿真控制,例如,将机器人移动到随机位置,对仿真进行视频捕获等。

目录

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与webots入门教程