机器人仿真系统调研

仿真是机器人学习和研究过程中最重要的工具之一,是指通过计算机对实际的物理系统进行模拟的技术。机器人仿真基于交互式计算机图形技术和机器人学理论,生成机器人的几何图形,并对其进行三维显示,用来描述机器人及工作环境的动态变化过程。

传统的产品开发流程
产品定义—>概念设计—>方案评审—>详细设计—>样机试制—>测试—>方案优化等流程。但是随着产品复杂度的增大,尤其对于机器人这种多自由度复杂系统,直接采用上述流程的弊端越来越大。首先,当测试发现问题时,需要对方案进行迭代优化,尤其对于硬件设计,加工以及组装的过程耗时费力,中间一旦出现问题,迭代的周期很容易就会拖长。
[图片]

为了提升产品开发的效率,现在产品的开发往往采用基于仿真驱动的开发流程。在方案评审环节之后通过仿真对方案进行评估,针对方案中不合理的部分进行迭代优化,然后再对方案进行详细设计。这样可以缩短开发周期,降低开发成本,减小设计风险。

[图片]
最后,很多个人和团队不具备搭建硬件平台的条件。对于一些工业机械臂而言,其价格达到几十万甚至更高,这对于一些机器人爱好者或者初学者是无法承受的,而仿真可以提供一个廉价的学习环境,使用者可以在仿真环境中轻松搭建自己的机器人硬件,来实现和测试自己的软件算法。
在这里插入图片描述

仿真系统的系统架构
一个完整的机器人仿真平台主要负责三件事:模型建模、动力学计算、可视化显示。这分别对应了仿真平台的三个组成部分:模型描述、动力学引擎、渲染引擎。

[图片]
在这里插入图片描述

▍模型描述
主要负责机器人模型的建模,使用计算机语言向仿真平台描述机器人是如何构成的。机器人的基本构成可以使用连杆(link)和关节(joint)来描述。除此之外,还需要知道这些基本组成部分的一些物理信息,例如连杆的质量属性,惯量属性,颜色,以及关节的种类(到底是转动关节还是平动关节)。
目前业界主要使用URDF(Unified Robot Description Format)和SDF(Simulation Description Format)文件来描述机器人模型,他们都是XML语法框架下用来描述机器人的语言格式。虽然URDF是ROS中的标准格式,但它缺乏许多功能来描述更复杂的场景。例如,URDF只能指定单个机器人的运动学和动力学特性,它无法指定摩擦特性和处理闭链结构。此外,它不能指定环境信息,例如灯光、高度图等。SDF的提出就是为了解决URDF的缺点,它可以实现对机器人所有内容的完整描述,其可扩展性更适合于复杂的仿真。

▍动力学引擎
可以根据物体的物理属性计算运动、旋转和碰撞。动力学引擎的基础是系统动力学,动力学是对现实世界中物体运动规律的数学描述,这种数学描述主要是基于常微分方程的,物理引擎核心的任务就在于求解常微分方程。
常用的机器人仿真物理引擎有ODE,Bullet,MuJoCo等。Bullet和ODE开发的初衷主要是用于3D电影和游戏。因此,在数值求解器上用的是一阶的半隐式欧拉方法(Semi-implicit Euler method),主要追求的是速度、稳定性而非精度。MuJoCo是一个近期开源的物理引擎,旨在促进机器人学、生物力学、图形和动画以及其他需要快速准确模拟的领域的研究和开发。MuJoCo提供了速度、精度和建模能力的独特组合,主要应用于强化学习和最优化控制领域。

[图片]
在这里插入图片描述

▍渲染引擎
使用计算机图形学技术,根据机器人模型和纹理渲染出机器人的三维图形,这样我们可以通过可视化平台观察机器人运行的正确性。目前机器人渲染引擎主要使用OpenGL。OpenGL(Open Graphics Library)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发,具有强大的通用性和可移植性。
[图片]
在这里插入图片描述

三、仿真评价指标
为了客观评价仿真软件的优劣,需要制定统一的标准。早期的研究学者确定了评估机器人仿真平台的通常标准:逼真度、可扩展性、开发简易性和成本。这四个标准可以用来判断任何一款机器人仿真软件。但随着仿真软件的发展以及应用场景的丰富,在不同开发环境下对仿真软件的评价标准也稍有不同。特殊地,对于足式机器人仿真而言,其结构为多自由度的开链或闭链结构,导致其动力学模型比一般的轮式机器人更为复杂,并且机器人运动过程中需要与环境实时进行多点接触,这对仿真器在多物体碰撞检测方面的性能要求就会很高。使用精确的数学模型来描述动力学模型和碰撞模型固然是好的,但是这无疑会增大求解器的负担。因此,仿真器需要在计算精度与计算速度之间进行合理的权衡。除此之外,仿真器还需要考虑扩展性、维护性以及兼容性等因素,这些因素对于开发者项目的开发、部署以及后期维护都很重要。下表列出了一些更为丰富的评价指标。

评价指标指标描述
计算速度仿真计算效率
计算精度仿真结果与理论值的接近程度
接触模型接触模型准确,确保动力学仿真结果与实际相近
编程环境支持的编程语言
兼容性支持的操作系统
可扩展性支持的第三方工具,包括矩阵计算、数值优化、数据分析等
开源源代码开源程度,API接口开放程度
成本包括资金花费和时间花费
WebotsCoppeliaSim(V-rep )Gazebo
开源[x][x][x]
支持的编程语言[] C++ [] Java [] URBI [] MATLAB [] Python[] C++[] C++
支持的操作系统LinuxWindows,Linux或macOSLinux,Mac,Window
物理引擎ODEODE Bullet Newton Vortex DynamicsODE Bullet Simbody DART

Webots
Webots是瑞士公司Cyberbotics发布的一种用户友好型机器人模拟仿真器。它可以在Windows,Linux或macOS上运行,并且支持大多数编程语言,例如C/C++,Java,URBI,MATLAB和Python。还可以使用API或任何标准TCP/IP网络从外部控制Webots模拟器。Webots模拟器使用ODE(开放动力引擎)在逼真的3D环境中模拟物理。它还支持对碰撞和接触点进行精确建模,这可以使用虚拟机器人测试各种场景。Webots甚至附带一个机器人模型库,可使用PR2,Atlas,Aibo甚至是某些NASA机器人。Webots还支持VRML97,因此可以使用大多数建模软件(Solidworks,AutoCAD,Blender和Inventor)导入机器人设计。还可以导入地图和地形数据以在测试环境中创建准确的世界表示。
[图片]
在这里插入图片描述

https://blog.csdn.net/ZhangRelay/article/details/100519183

  1. 文档:http://wiki.ros.org/webots_ros2
  2. 源码:https://github.com/cyberbotics/webots_ros2
    Gazebo
    Gazebo模拟器是一个免费的开源平台,可用于设计,开发,测试和可视化几乎任何类型的机器人。Gazebo可在Linux,Windows和Mac上运行,并且内置了对ROS(机器人操作系统)的支持。Gazebo支持多种高性能物理引擎,例如ODE,Bullet,Simbody和DART。它还使用ORGE 3D图形引擎来渲染具有准确照明,阴影和纹理的高质量环境。Gazebo模拟器还附带了一些机器人模型,例如PR2,DX,Irobot Create和TurtleBot,因此即使没有自己的机器人模型,也可以快速上手。它还支持广泛的传感器,并且可以模拟噪声和传感器故障,以准确模拟实际问题。甚至可以在云中运行Gazebo,并使用简单的Web浏览器与模拟器进行交互。如果想在笔记本电脑上工作,这是完美的选择,因为可以租用AWS实例来快速测试和设计机器人
    CoppeliaSim(V-rep 老版名称)
    V-REP(现在更新命名为CoppeliaSim)是免费的,用于教育目的,如果计划将其用于商业项目,则可以升级到专业版。可以在Windows,Linux或macOS上运行V-REP,并且可以使用六种不同的编程语言对其进行编程。它还具有ROS&BlueZero支持,因此可以只使用3D模拟器并使代码在另一个平台上运行。V-REP支持四种不同的物理引擎(Bullet, ODE, Newton, and Vortex Dynamics)。它可以准确地处理对象的交互,例如碰撞,接触点和抓取。V-REP还支持粒子物理学来模拟空气和水,因此可以准确地对喷气发动机和螺旋桨建模。V-REP还可以模拟各种传感器,甚至可以通过插件将新传感器添加到模拟器。V-REP甚至支持路径和运动规划,甚至可以计算正向和逆向运动学。它还支持网格编辑,因此可以在模拟器中对设计进行小的调整,或者可以轻松导入任何五种不同3D模型格式(Obj,STL,URDF等)的模型
    NVIDIA ISAAC Platform for Robotics
    在NVIDIA ISAAC平台是由领先的显卡厂商这也是迅速成为AI行业的大玩家之一的NVIDIA开发。它可以在启用GPU的桌面上运行,也可以在AWS,Google Cloud或Azure上的云中运行。它还支持NVIDIA Jetson AGX Xavier,Jetson TX2和Jetson Nano。由于ISAAC机器人技术平台是由NVIDIA制造的,因此它提供了所有机器人模拟仿真器中最好的图形。它还对更复杂的任务(例如机器学习和数据处理)具有更好的GPU支持。NVIDIA ISAAC机器人平台也支持称为GEM的软件模块。这些模块可使开发者快速向机器人添加功能,例如关键字检测,LIDAR,立体视觉和预先训练的神经网络视觉识别系统。ISAAC模拟器还运行在虚幻引擎4的增强版上,虚幻引擎4是一个开放源代码游戏引擎,可为PC和控制台上的某些顶级视频游戏提供支持。NVIDIA ISAAC机器人技术平台和虚幻引擎都是开源平台,因此,如果是经验丰富的C++程序员,则可以使用自己的自定义代码来增强其功能

Robot Virtual Worlds

Robot Virtual Worlds是功能齐全的模拟器,可让用户对虚拟LEGO Mindstorms机器人进行编程。它具有免费试用版,或者,如果想使用所有高级选项,则可以升级并支付完整的许可证费用。该模拟器的主要目的是用作教育平台,向年轻人介绍机器人技术的基础知识。它具有内置的3D仿真器,可以在其中构建和测试LEGO机器人,然后在类似游戏的环境中竞争挑战。Robot Virtual Worlds还支持使用NXT-G或LabVIEW对LEGO Mindstorms机器人进行编程。还可以使用内置扩展系统在模拟器中创建自定义机器人模型或级别。该模拟器对于教师也非常有用,因为“机器人虚拟世界”提供了适合所有年龄和技能水平的学生的课程。教师还可以设置各种机器人竞赛,以在完全虚拟的环境中挑战和评估学生。

Microsoft Robotics Developer Studio
Microsoft Robotics Developer Studio可用于在3D模拟环境中创建,测试和开发各种机器人。由于它是由Microsoft制造的,因此只能在Windows操作系统上运行。它支持大多数机器人平台,例如LEGO Mindstorms,VEX,并且还支持不同类型的传感器。 不幸的是,微软关闭了机器人研究部门,而对MRDS的支持却很少。发布的最终版本是Microsoft Robotics Developer Studio 4,并且看起来微软在可预见的将来不会更新MRDS。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

九章量子计算机:探索量子世界的革命性工具

九章量子计算机:探索量子世界的革命性工具 一、引言 九章量子计算机的推出,是近年来科技界最为引人瞩目的成就之一。这款基于量子力学的计算机,以其独特的计算方式和潜在的应用前景,引发了全球范围内的关注和讨论。本文将深入探讨九章量子计算机的原理、技术特点、应用前景…

计算机硬件(二)

1.内存和内存条的用途 假设运行内存16个g,能开多少软件 后台和前台能同时运行多少APP RAM越大越好 464 6128 8128 10256 例子: 8gx216g 两根内存条 16g运行内存 2.内存频率的用途 DDR5 DDR4 DDR3 后面的数字越大,越好,可以理解为传输的速度,内存搭配主…

小米智能摄像头mp4多碎片手工恢复案例

小米智能摄像头mp4多碎片手工恢复案例 智能摄像头目前在市场上极为常见,仅需要一张存储卡即可实现视频、音频的采集,同时可以通过手机APP进行远程控制,相比传统安防品牌成本更低、更容易部署。在智能摄像头品牌中小米算是绝对的大厂&#xf…

ES-深入理解倒排索引

倒排索引 idproductdesc1新版 小米 至尊-纪念版手机1小米 NFC 手机3NFC手机4小米 耳机5华为 耳机6扫地机器人7华为 Mata………………term_indexterm dictionaryposting list------------------------------------小米1……100W华为6,7,9NFC76,90耳机5352红米643,98机器人645,9…

数字电源为什么一般用DSP控制,而不能用普通的单片机?

数字电源为什么一般用DSP控制,而不能用普通的单片机? 首先你要清楚,数字电源需要一个芯片具备什么功能? 1 能发PWM波 ,并且具备保护关断功能; 电源对PWM发波 要求很高,精度要ns级甚至ps级的&…

C++中异常的栈展开概念

C中的异常栈展开是指,当某个函数中有异常产生(这里不考虑是主动抛出的还是被动产生的),在异常被捕获之前的函数调用链上,函数不会正常执行返回,即异常产生之后的程序逻辑不会被执行。 (注意&…

RTDETR阅读笔记

RTDETR阅读笔记 摘要 DETR的高计算成本限制了它们的实际应用,并阻碍了它们充分利用无需后处理(例如非最大抑制NMS)的优势。文中首先分析了NMS对实施目标检测的精度和速度的负面影响。(RTDETR是第一个实时端到端的目标检测器。具…

temu货不对板哪里修改图片

在Temu这个跨境电商平台上,如果您需要修改商品图片,通常需要在卖家中心进行操作。下面是一般的步骤,但请注意,不同平台的操作可能略有不同,具体请参考Temu官方的帮助文档或联系客服。 先给大家推荐一款拼多多/temu运营…

OpenCV快速入门:彩蛋——小游戏制作

文章目录 前言一、游戏玩法1.1 核心玩法1.2 特殊事件 二、功能模块划分2.1 主游戏文件 (main.py)2.2 游戏对象 (game_objects.py)2.3 游戏逻辑 (game_logic.py)2.4 事件和奖励 (events_and_rewards.py)2.5. 游戏界面 (game_ui.py) 三、完整代码3.1 主游戏文件 (main.py)3.1.1 游…

计算机网络(超详解!) 第二节 物理层(下)

1.信道复用技术 复用 (multiplexing) 是通信技术中的基本概念。 它允许用户使用一个共享信道进行通信,降低成本,提高利用率。 1.频分复用 FDM(Frequency Division Multiplexing) 将整个带宽分为多份,用户在分配到一定的频带后,…

20、LED点阵屏

LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等 LED点阵屏分类 按颜色:单色、双色、全彩 按像素…

企业营销管理能够实现自动化吗?怎么做?

当今企业面临着越来越多的营销难题:如何有效培育潜在客户、如何提高营销活动的效果、如何优化营销资源的分配......企业的营销管理怎么做?或许CRM系统营销自动化会起到作用。 客户细分: 企业可以通过CRM的客户细分功能,根据客户…

【libGDX】立方体手动旋转

1 前言 本文主要介绍使用 libGDX 绘制立方体,并实现手动触摸事件控制立方体旋转。 为方便控制触摸旋转,并提高渲染性能,我们通过改变相机的位置和姿态实现立方体旋转效果。 读者如果对 libGDX 不太熟悉,请回顾以下内容。 使用Me…

11.31链表,之前的数据结构(未完,饼)

根据输入序列建立二叉树 链表 回顾一下二分面积最小 一些性质题回顾 哈夫曼树构建 第十一周——哈夫曼树 5 1 2 2 5 9 37 桶排序 #include <iostream> #include <vector> #include <algorithm> #include<stack> #include<queue> #includ…

docker部署kerberos,群晖nas中nfs开启kerberos校验

背景 nas开启nfs存储共享&#xff0c;默认情况下只能给IP/24做限制, 达不到安全效果 需要增加kerberos策略校验&#xff0c;并且持久化kerberos数据&#xff0c;避免容器重启丢失数据 环境描述 宿主机系统&#xff1a;CentOS Linux release 7.9.2009 (Core) Docker版本&#xf…

ESP32-Web-Server编程- 实现 Web 登录网页

ESP32-Web-Server编程- 实现 Web 登录网页 概述 是时候实现更加安全的网页了。登录机制是最简单的控制网页访问权限的方法。 需求及功能解析 本节演示如何在 ESP32 上部署一个 Web 服务器&#xff0c;并建立登录页面的机制&#xff0c;用户可以实现登录、登出的功能&#x…

【Python表白限定】李峋同款可写字版跳动的爱心(完整代码)

文章目录 跳动的爱心环境需求完整代码详细分析系列文章 跳动的爱心 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库用于打包&#xff0c;使程序没有python环境也可以运行&#xff0c;如果想发给好朋友的话需要这…

nginx配置反向代理及负载均衡

目录 1.前端发送的请求&#xff0c;是如何请求到后端服务的1.nginx 反向代理的好处&#xff1a;2.nginx 反向代理的配置方式&#xff1a;3. nginx 负载均衡的配置方式 1.前端发送的请求&#xff0c;是如何请求到后端服务的 1.nginx 反向代理的好处&#xff1a; 提高访问速度 因…

一文解决msxml3.dll文件缺失问题,快速修复msxml3.dll

在了解问题之前&#xff0c;我们必须首先清楚msxml3.dll到底是什么。DLL&#xff08;Dynamic Link Libraries&#xff09;文件是Windows操作系统使用的一个重要组成部分&#xff0c;用于存储执行特定操作或任务的代码和数据。msxml3.dll为Windows系统提供处理XML文档的功能。如…

小米摄像头拆机教程

今天拆解一下好久不用的小米摄像头&#xff0c;记录下拆机过程&#xff0c;有需要的小伙伴可以自行查看 一、拆底座 首先拿出底座的四个橡皮塞、把对应的螺丝拧下来就可以了&#xff0c;这一步还是比较简单的 二、拆下底部排线 三、拆下底部电机和底座 按下方的红圈拆掉电机上的…
最新文章