2、了解Webots的窗口-1

一、介绍Webots

1、Webots是什么?

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

2、使用Webots可以做什么?

Webots非常适合与移动机器人相关的研究和教育项目。多年来,许多移动机器人项目在以下领域都依赖Webots:
移动机器人原型(学术研究、汽车行业、航空、吸尘器行业、玩具行业、爱好者等)
机器人运动研究(腿机器人、类人机器人、四足机器人等)
多智能体研究(群体智能、协作移动机器人群体等)
自适应行为研究(遗传算法、神经网络、人工智能等)。
机器人教学(机器人讲座、C/C++/Java/Python编程讲座等)
机器人竞赛(例如Robotstadium或Rat's Life)

3、为了使用Webots,我需要知道什么?

您需要最少的技术知识来开发自己的模拟:

 编写自己的机器人控制器程序需要掌握C、C++、Java、Python或MATLAB编程语言的基本知识。然而,即使你不知道这些语言,你仍然可以使用一种名为BotStudio的简单图形编程语言对e-puck和Hemisson机器人进行编程。

如果你不想使用Webots中提供的现有机器人模型,并且想创建自己的机器人模型,或者在模拟环境中添加特殊对象,你需要掌握3D计算机图形学和VRML97描述语言的基本知识。这将允许您在Webots中创建三维模型或从三维建模软件导入它们

4、Webots仿真

Webots模拟由以下项目组成:

Webots世界文件(.wbt),用于定义一个或多个机器人及其环境。.wbt文件有时确实依赖于外部PROTO文件(.PROTO)和纹理。

用于上述机器人的一个或多个控制器程序(在C/C++/JJava/Python/MATLAB中)。

一个可选的物理插件,可用于修改Webots的常规物理行为(在C/C++中)。

5、"世界"是什么?

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

6、“控制器”是什么?

控制器是一种控制世界文件中指定的机器人的计算机程序。控制器可以用Webots支持的任何编程语言编写:C、C++、Java、Python或MATLAB。当模拟开始时,Webots启动指定的控制器,每个控制器都作为一个单独的进程,并将控制器进程与模拟的机器人相关联。请注意,几个机器人可以使用相同的控制器代码,但每个机器人都会启动不同的过程。
一些编程语言需要编译(C和C++),其他语言需要解释(Python和MATLAB),还有一些需要编译和解释(Java)。例如,C和C++控制器被编译为依赖于平台的二进制可执行文件(例如Windows下的“.exe”)。Python和MATLAB控制器由相应的运行时系统(必须安装)进行解释。Java控制器需要编译成字节码(“.class”文件或“.jar”),然后由Java虚拟机进行解释。
每个控制器的源文件和二进制文件一起存储在控制器目录中。控制器目录位于每个Webots项目的“controllers”子目录中。

7、”超级控制器“是什么?

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

 

二、启动Webots

在Linux下直接在终端输入webots

命令行参数

从终端(Linux/Mac)或命令提示符(Windows)启动Webots时,以下命令行选项可用:

复制代码
Usage: webots [options] [worldfile]

Options:

  --help
    Display this help message and exit.

  --version
    Display version information and exit.

  --sysinfo
    Display information about the system and exit.

  --mode=<mode>
    Choose the startup mode, overriding application preferences. The <mode>
    argument must be either pause, realtime or fast.

  --no-rendering
    Disable rendering in the main 3D view.

  --fullscreen
    Start Webots in fullscreen.

  --minimize
    Minimize the Webots window on startup.

  --batch
    Prevent Webots from creating blocking pop-up windows.

  --clear-cache
    Clear the cache of Webots on startup.

  --stdout
    Redirect the stdout of the controllers to the terminal.

  --stderr
    Redirect the stderr of the controllers to the terminal.

  --port
    Change the TCP port used by Webots (default value is 1234).

  --stream[=<mode>]
    Start the Webots streaming server. The <mode> argument should be either
    x3d (default) or mjpeg.

  --extern-urls
    Print on stdout the URL of extern controllers that should be started.

  --heartbeat[=<time>]
    Print a dot (.) on stdout every second or <time> milliseconds if specified.

  --log-performance=<file>[,<steps>]
    Measure the performance of Webots and log it in the file specified in the
    <file> argument. The optional <steps> argument is an integer value that
    specifies how many steps are logged. If the --sysinfo option is used, the
    system information is prepended into the log file.

  convert
    Convert a PROTO file to a URDF, WBO, or WRL file.

Please report any bug to https://cyberbotics.com/bug
View Code
复制代码

worldfile参数指定要打开的.wbt文件名字,没指定的话,则打开最近使用的已打开的文件。

--minimize选项用于在启动时最小化(图标化)Webots窗口。这也会跳过启动屏幕和最终的欢迎对话框。当从脚本自动启动Webot时,此选项可用于避免屏幕与窗口混淆。请注意,当指定--minimize时,Webots会自动使用快速模式。
--mode=<mode>选项可用于在指定的模拟模式下启动Webot。四种可能的模拟模式是:暂停、实时、运行和快速;它们对应于Webots的图形用户界面的模拟控制按钮。此选项覆盖但不修改保存在Webots首选项中的启动模式。例如,键入webots-mode=pause filename.wbt以在暂停模式下启动webots。
--stdout和--stderr选项具有将Webots控制台输出重定向到调用终端或进程的效果。例如,这可以用于将控制器输出重定向到文件,或通过管道将其发送到shell命令--stdout重定向控制器的stdout流,而--stderr重定向stderr流。请注意,stderr流还可能包含Webots错误或警告消息。
--port选项更改Webots用于服务机器人窗口、web流和外部控制器的默认TCP端口。默认情况下,Webots在端口1234上设置其TCP服务器。启动多个Webot实例时,端口配置为连续值1234。
--stream选项可在x3d(默认)或mjpeg模式下启用Webots流式服务器。您可以在本节中获得有关网络流媒体的更多信息。

例如,以下命令将在TCP端口“1235”上以“mjpeg”模式启用流式服务器的情况下启动Webots:Webots--port=1235 --stream=mjpeg
convert子命令允许将PROTO文件转换为URDF、WBO或WRL文件。您可以使用-p标志来覆盖默认的PROTO参数。用法示例:

webots convert -p extensionSlot="Box {}" ${WEBOTS_HOME}/projects/robots/adept/pioneer3/protos/Pioneer3dx.proto -o pioneer3dx.urdf

安全模式

可能会发生Webots无法启动的情况,因为它在"世界"上被阻止,导致Webots或OpenGL崩溃。在这种情况下,Webot可以在安全模式下启动。安全模式强制Webot从一个空世界开始,减少所有OpenGL选项,并存储这些首选项。要做到这一点,只需在运行WEBOTS的环境中设置环境变量WEBOTS_SAFE_MODE。
一旦以这种方式成功启动,您必须取消设置此环境变量,再次打开您的"世界"并增加OpenGL首选项。此操作可能会导致新的崩溃。

在linux和macOS上操作方式:

export WEBOTS_SAFE_MODE=true
webots

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on   gary_123  阅读(295)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2017-07-26 nav2d 下karto的920接口编译
2016-07-26 掌握时钟的切换,控制串口
2016-07-26 RAW编程接口

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示