【机器人仿真Webots教程】-Webots安装

news2024/9/24 13:17:08

在这里插入图片描述

Webots安装

文章目录

  • Webots安装
    • 1. Webots简介
    • 2. Webots安装
      • 2.1 系统要求
      • 2.2 验证显卡驱动
      • 2.3 安装
    • 3. Webots仿真
      • 3.1 world文件
      • 3.2 Controller文件
      • 3.3 Supervisor Controller
    • 4. 启动方式

1. Webots简介

webots是一个开源3D移动机器人仿真框架。其为Cyberbotics公司旗下研发开源框架,为机器人的建模、编程和仿真提供了完整的开发环境。Webots内核基于开源动力学引擎ODE和OpenGL,可以在Windows、Linux和macOS上运行,并且支持多种编程语言(C/C++,Python,Java,MATLAB)。

Webots的主要功能是机器人的建模、控制与仿真,用于开发、测试和验证机器人算法。其内核基于ODE引擎,动力学仿真效果较为真实。

Webots支持多种不同类型的机器人仿真,如工业机械臂,轮式机器人,足式机器人,履带式机器人,汽车,无人机,水下机器人,航天器等。Webots支持多种虚拟传感器,如相机,雷达,力传感器,位置传感器,陀螺仪,惯性单元,GPS等。Webots还支持多种复杂环境的模拟,如室内,室外,崎岖路面,空中环境,水下环境等。

Webots场景采用OpenGL渲染,画面展示效果很棒。Webots可将仿真过程导出为动画或交互式HTML用于展示。

官方链接:Cyberbotics: Robotics simulation with Webots

Webots应用举例

  • 移动机器人原型(学术研究、自动化工业、玩具工业等等)
  • 机器人运动学研究(四足、腿式、人形等等)
  • 多智能体研究(集群、协同等等)
  • 适应性行为研究(遗传算法、神经网络等等)
  • 教学机器人(机器人课程)

2. Webots安装

2.1 系统要求

需求项最低要求
内存2G
主频2GHz
NVIDIA or AMD OpenGLV3.3
显存512MB

对于Linux系统只推荐NVIDIA系列。

典型适配系统:

  • Linux系列
    支持近期x86-64架构的Linux系统,例如Ubuntu20.04LTS,早于20.04之前的Ubuntu不支持。
  • Windows系列
    Windows10、Windows11
  • Mac系列
    macOS 11 “Big Sur” and 12 “Monterey”

在早期版本系列运行Webots可能会出现不兼容的问题。

2.2 验证显卡驱动

Ubuntu参考

Ubuntu20.04、22.04安装nvidia显卡驱动_ubuntu install xianka qudong_xianrenli38的博客-CSDN博客

Windows参考

windows10安装NVIDIA显卡驱动+cuda10.0教程

2.3 安装

注意:安装版安装之后,核心的模块功能均能使用,但是第三方工具(如Java、Python、MatLab)需要对指定项目进行运行和编译。

Deabin系列

wget -qO- https://cyberbotics.com/Cyberbotics.asc | sudo apt-key add -
sudo apt-add-repository 'deb https://cyberbotics.com/debian/ binary-amd64/'
sudo apt-get update
sudo apt-get install webots

Windows系列

官网下载安装

在这里插入图片描述

3. Webots仿真

一个Webots仿真由以下部分组成:

  • 一个world文件(.wbt),world文件定义了一个或多个环境中的机器人,.wbt文件有时也取决于额外的原型文件(PROTO,文件后缀为.proto)和一些纹理配置组成。
  • 机器人控制程序(C/C++/JAVA/PYTHON/MATLAB)
  • 可选物理插件约束webots的物理行为

3.1 world文件

其包含每个对象位置、方向、几何、外观的描述,包含物理属性,world按照层次结构构建组织对象包含其他对象(VRML97),例如一个wbt文件包含一个机器人,机器人有两个轮子、一个距离传感器和一个包含摄像头的关节,这些都保存再.wbt文件中,其不包含控制代码,.wbt文件中仅指定每个机器人的控制器名,.wbt文件放置再worlds的子目录中。

3.2 Controller文件

一个controller控制器是指定机器人的电脑程序,支持C,C++,Java,Python或者MatLab编写,仿真开启,webots启动指定的控制器,每一个作为独立的进程,并且每个独立的进程都和仿真环境中的机器人联系起来,请注意,多个机器人可以使用相同的控制器代码,但是将为每个机器人启动不同的进程。

不同的语言会有不同的编译过程和过程文件,解释器语言没有执行文件,所有控制器的源文件和二进制文件都存放在controller文件夹中,每个机器人的控制器文件夹都作为controllers的子目录存放。

3.3 Supervisor Controller

监管控制器当supervisor域设定为TRUE的时候生效,它可以执行一些人为干预操作,其也可以被上述任何一种语言编写,不同于有规则的机器人控制器,监管控制器拥有权限操作,包括仿真控制等,例如,将机器人设定到随机点位,或者对仿真进行视频截取等。

4. 启动方式

对于Linux系列,可以直接终端输入webots命令直接启动

对于Windows用户双击桌面图标即可

在这里插入图片描述

选择主题后进入仿真软件。

在这里插入图片描述

对于Windows如果有DOS命令的需求,可以将主程序所在路径添加到环境变量中。

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.

  --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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Fastjson反序列化漏洞复现(实战案例)

本文转载于&#xff1a;https://blog.csdn.net/jinzezhi/article/details/124274123 漏洞介绍 FastJson在解析json的过程中&#xff0c;支持使用autoType来实例化某一个具体的类&#xff0c;并调用该类的set/get方法来访问属性。通过查找代码中相关的方法&#xff0c;即可构造出…

【Python_Opencv图像处理框架】图像基本操作+90bb5729-b33a-4e82-a0d9-faa3e5cbf621

写在前面 很幸运能选择Python语言进行学习&#xff0c;这是有关Opencv的图像处理的第一篇文章&#xff0c;讲解了有关图像处理的一些基础操作&#xff0c;作为初学者&#xff0c;我尽己所能&#xff0c;但仍会存在疏漏的地方&#xff0c;希望各位看官不吝指正❤️ 写在中间 1…

unity物体运动经过特定点并绘出轨迹

经过线如果有圆滑可以参考 Unity物体运动时画出轨迹_天人合一peng的博客-CSDN博客 并修改里面的数值轨迹会有变化 float angle Mathf.Min(1, Vector3.Distance(this.transform.position, targetPos) / distanceToTarget) * 45; this.transform.rotation this.t…

App灰度发布实现路径之小程序容器

灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域&#xff0c;所以说对于互联网产品来说&#xff0c;上线和未上线就是黑与白之分&#xff0c;而实现未上线功能平稳过渡的一种方式就叫做灰度发布。 灰度发布将新版本应用程序推送给一部分用户进行测试和反馈的过程…

7、ThingsBoard使用docker compose集群部署

1、概述 今天我将讲解官方文档说的使用docker compose集群部署ThingsBoard,这种部署方式也是目前企业中常用的形式,希望大家能够掌握,我不是直接使用官方的镜像,我是自己拉起代码,然后自己构建镜像,在传到服务器上,使用自己的镜像来部署。而且这种部署中间有个大坑,我…

【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理

缓存管理前言缓存概念HDFS 集中式缓存有两个主要概念。缓存管理命令HDFS 集中式缓存架构CacheManager 类实现CacheReplicationMonitor前言 Hadoop 2.3.0 版本新增了集中式缓存管理&#xff08;Centralized Cache Management&#xff09;功能&#xff0c;允许用户将一些文件和目…

数字滤波器设计——FIR 滤波器

数字滤波器设计实践介绍 此示例说明如何使用 Signal Processing Toolbox 产品中的 designfilt 函数&#xff0c;根据频率响应设定设计 FIR 和 IIR 滤波器。该示例重点讲述低通滤波器&#xff0c;但大多数结果也适用于其他响应类型。 此示例主要介绍数字滤波器的设计&#xff…

MATLAB | 如何用MATLAB如何绘制各式各样精致的三元相图(ternary plot)

整了个大活&#xff0c;写了一个能够生成非常精致三元相图的函数&#xff0c;这种图主要用于展示三种变量之间的比例&#xff0c;本期实验绘制效果如下&#xff1a; 编写不易&#xff0c;这个工具写的脑壳痛&#xff0c;求多多点赞&#xff0c;依旧先介绍咋使用&#xff0c;工具…

嵌入式软件架构

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录1 嵌入式软件分类 – BAREMETAL2 嵌入式软件分类 – 实时操作系统 (RTOS)3 嵌入式软件分类 – “通用”操作系统4 嵌入式软件分类 – 容器/微服务微服务容器5 嵌…

入行 4 年,跳槽 2 次,我摸透了软件测试这一行

最近几年行业在如火如荼的发展壮大&#xff0c;以及其他传统公司都需要大批量的软件测试人员&#xff0c;但是20年的疫情导致大规模裁员&#xff0c;让人觉得行业寒冬已来&#xff0c;软件测试人员的职业规划值得我们深度思考。 大家都比较看好软件测试行业&#xff0c;只是因为…

python入门(四)python眼里的图像

文章目录背景一.搭建jupyter环境Jupyter 是什么:安装Jupyter Lab1: cmd中找到 anaconda powershell prompt2.切换到python3.8环境中3. 安装Jupyter4. 运行jupyter-lab5. 备注6.命令练习二.图像的本质背景 本人工作中&#xff0c;用到了ai相关技术&#xff0c;但是java出身&…

CNStack 云服务云组件:打造丰富的云原生技术中台生态

作者&#xff1a;刘裕惺 CNStack 相关阅读&#xff1a; CNStack 多集群服务&#xff1a;基于OCM 打造完善的集群管理能力 CNStack 虚拟化服务&#xff1a;实现虚拟机和容器资源的共池管理 CNStack 云边协同平台&#xff1a;实现原生边缘竟能如此简单 01 前言 CNStack 2.0…

Linux网络IO精华指南

在互联网中提起网络&#xff0c;我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现&#xff0c;脱离不了网络 IO 的选择&#xff0c;因此本文作为一篇个人学习的笔记&#xff0c;特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。 1.网…

小说情感倾向分析工具

目前有很多中英文小说情感倾向工具&#xff0c;以下是一些常用的工具&#xff1a; 情感分析工具&#xff1a;可以对文本进行情感识别&#xff0c;根据文本中包含的情感信息&#xff0c;将其转化成情感值&#xff0c;通常有积极情感值、消极情感值、中性情感值等&#xff0c;常…

Vue3.0的生命周期

要说清这个生命周期钩子&#xff0c;首先我们要通过一个实例来讲解 就是点击这个按钮来切换Demo组件的显示隐藏&#xff0c;当然它也疯狂的操作Demo的挂载&#xff0c;卸载 红色是卸载流程&#xff0c;蓝色是挂载流程 我们写在外面可以实现&#xff0c;但是v3的思想是组合api因…

树状数组与线段树的应用

一、树状数组 树状数组给人的感觉就像&#xff0c;一直在维护前缀和一样&#xff0c;只是加快了前缀和的速度&#xff0c;再用前缀和结合题目得出一些性质&#xff0c;从而去解题。&#xff08;一些不成熟的看法&#xff09; 基础知识&#xff08;一般树状数组用来处理单点修…

含氢微网优化调度模型matlab

目录 1 主要内容 模型示意图 目标函数 2 部分程序 3 程序结果 4 下载链接 1 主要内容 最近咨询含氢微网优化调度模型的同学较多&#xff0c;本次就分享一个高质量的源码资源。该程序方法复现《Simulation of design and operation of hydrogen energy utilization syste…

ssm拦截器

ssm拦截器 #&#xff1a; 与之前的过滤器不一样&#xff0c;过滤器是指在servlet中的&#xff0c;而拦截器是属于SpringMVC的&#xff0c;可以对请求的数据进行提前操作和后置操作&#xff1a; 先自己创建一个拦截器Interception类&#xff08;其实人家真名叫Interceptor&…

flutter dart中用ffi调用golang或C的动态链接库

本文介绍从dart中&#xff0c;通过ffi方式调用golang生成的动态链接库。 go/lib.go package mainimport "C"//export GetKey func GetKey() *C.char {theKey : "123-456-789"return C.CString(theKey) }func main() {}cd go go build -buildmodec-shared…

高通QSSI方式导致CI编译失败问题记录

一、问题背景 1、QSSI说明 QSSI 是 Qualcomm Single System Image 的缩写&#xff0c;高通平台从Android Q开始&#xff0c;为了解决Android碎片化问题&#xff0c;把system.img和vendor.img进一步拆分&#xff0c;增加了QSSI编译选项&#xff0c;QSSI就是用来编译system.img的…