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
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球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编程接口