机器人仿真系统调研

news2025/1/12 18:43:07

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

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

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

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

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

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

▍模型描述
主要负责机器人模型的建模,使用计算机语言向仿真平台描述机器人是如何构成的。机器人的基本构成可以使用连杆(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.coloradmin.cn/o/1274606.html

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

相关文章

FineReport帆软报表的表格动态列的实现

关于帆软 帆软报表(FineReport)是一款企业级的数据报表工具,旨在帮助用户快速创建、设计和生成各种类型的报表。它提供了丰富的报表设计功能和灵活的数据展示方式,适用于各种行业和业务需求 以下是帆软报表的一些主要特点和功能…

【赠书第10期】从概念到现实:ChatGPT和Midjourney的设计之旅

文章目录 前言 1 ChatGPT的崛起 2 Midjourney的探索 3 技术创新的交汇 4 对未来的影响 5 结论 6 推荐图书 7 粉丝福利 前言 在过去的几年里,自然语言处理和聊天模型的领域取得了飞速的发展。ChatGPT 作为一个由OpenAI 开发的大型语言模型,以其强…

C++解析xml示例

C解析xml示例 1. Xml文档介绍1.1 特点及作用1.2 Xml优点1.2.1 良好的可拓展性1.2.2 内容与形式分离 1.3 Xml组成1.3.1 Xml声明1.3.2 根元素1.3.3 元素1.3.4 属性1.3.5 实体1.3.6 注释 2 C解析Xml2.1 tinyXml2类库2.2 关键接口2.2.1 LoadFile2.2.2 RootElement2.2.3 FirstChildE…

重要通知丨JumpServer开源堡垒机V2社区版即将停止维护的通知

尊敬的JumpServer开源堡垒机用户:您好! 如《关于JumpServer开源堡垒机V2版本产品生命周期的相关说明》所示,JumpServer开源堡垒机V2版本(社区版)将于2023年12月31日停止维护支持。 在过去两年多的时间里,…

第十一章 Shell编程

第十一章 Shell编程 ​ Shell程序是通过文本编辑程序把一系列Linux命令放在一个文件中执行的实用程序。执行Shell程序时,文件中的Linux命令会被一条接一条地边解释边执行。因此,当用户需要通过多个Linux命令地执行才能完成最后地操作时,可以…

【Docker】Swarm的ingress网络

Docker Swarm Ingress网络是Docker集群中的一种网络模式,它允许在Swarm集群中运行的服务通过一个公共的入口点进行访问。Ingress网络将外部流量路由到Swarm集群中的适当服务,并提供负载均衡和服务发现功能。 在Docker Swarm中,Ingress网络使…

Spring简单的存储和读取

前言 前面讲了spring的创建,现在说说关于Bean和五大类注解 一、Bean是什么? 在 Java 语⾔中对象也叫做 Bean,所以后⾯咱们再遇到对象就以 Bean 著称。这篇文章还是以spring创建为主。 二、存储对象 2.1 俩种存储方式 需要在 spring-conf…

借助ETL快速查询金蝶云星空表单信息

随着数字化转型的加速,企业信息化程度越来越高,大量的数据产生并存储在云端,需要进行有效的数据管理和查询。金蝶云星空是金蝶云旗下的一款云ERP产品,为企业提供了完整的业务流程和数据管理功能,因此需要进行有效的数据…

使用 CSS Grid 的响应式网页设计:消除媒体查询过载

文章目录 前言介绍 CSS Grid让我们开始吧实现高级响应性1、Repeat() 2、Auto-fit3、Minmax()结论 前言 你是否厌倦了在实现响应式网站时需要管理多个媒体查询?说再见复杂的代码,拥抱更简单的解决方案吧:CSS Grid。 在这篇文章中,…

血的教训---入侵redis并免密登录redis所在服务器漏洞复现

血的教训—入侵redis并免密登录redis所在服务器漏洞复现 今天就跟着我一起来入侵redis并免密登录redis所在服务器吧,废话不多说,我们直接开始吧。 这是一个体系的学习步骤,当然如果基础扎实的话可以继续往下面看 以下都是关联的文章&#xff…

MobaXterm连接相关

其实最终解决的方法,还是,因为要远程连接的是个局域网ip,我所在的ip和要连接的这个不在同一个局域网内,需要实验室搭的VPN才行。 甚至,我连防火墙都没关,也可以连接 至于修改密码,passwd&#…

应用于智慧金融的AI边缘计算盒子+AI算法软硬一体化方案

传统金融营业厅存在运营管理模式落后、资源投放不平衡、从业人员培训效果不达预期、客户体验割裂等普遍现象; 部署英码数字金融解决方案,将助力企业从传统金融模式快速向数字金融模式转变,可针对每一个客户定制个性化“一对一”服务&#xff…

算法与数据结构有区别吗?

算法和数据结构并不是同一件事。严格来说,它们并不是等效的。但是,我们通常在使用的时候会互换这两个术语。为了简便,后文我们会用数据结构这个术语来指代“数据结构及其所有相关的方法”。 有很多方法可以用来说明这两个术语之间的区别&…

Linux信号超详细剖析

预备知识: 一、信号产生(OS发给进程) 1、键盘组合键 Linux中,一次登录对应一个终端,bash/shell。且只允许一个进程是前台进程,默认就是bash/shell,其它都是后台进程。获取键盘输入的是前台进程。 Ctrlc: 向前台进程…

Nginx配置文件全解析【深度剖析细节】

文章目录 💥 简介💫 基本结构🍉 事件处理器🥭 配置分析🍏 配置示例 🍉 HTTP服务器🥭 配置分析🍏 配置示例 🍉 虚拟主机 🍊 优化🍔 总结 &#x1f…

02-使用Git命令操作远程仓库,如克隆或添加远程仓库,拉取或推送内容

操作远程仓库 创建远程仓库 第一步: 访问GitHub官网,登录自己的账号创建一个远程仓库 第二步: 设置远程仓库的信息(一般远程库的名字和本地库的名字一样),仓库创建完成后可以看到仓库地址(每个仓库都会对应一个网络地址) 第三步: 查看本地仓库对应的Https/SSH连接 远程仓库命…

【负载均衡 SLB介绍及其算法详解】(一万两千字)

目录 一、负载均衡 SLB 定义 二、负载均衡SLB的作用 三、负载均衡器(Load Balancer) 【1】工作原理 【2】主要功能 【3】关键概念 四、工作负载(Workload) 五、负载均衡算法 【1】轮询(Round Robin&#xff0…

Oracle(2-8)Configuring the Database Archiving Mode

文章目录 一、基础知识1、Redo Log History2、NOARCHIVELOG Mode 非归档模式3、ARCHIVELOG Mode 归档模式4、Changing the Archiving Mode 更改归档模式![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d6a09f9a6de24de7bbcdad90b8d6b9ca.png)5、Auto and Manual Ar…

图扑参展高交会-全球清洁能源创新博览会

“相聚鹏城深圳,共享能源盛宴” 第二十五届中国国际高新技术成果交易会(简称“高交会”)于 11 月 15-18 日在深圳盛大开幕。高交会由商务部、科学技术部、工业和信息化部、国家发展改革委、农业农村部、国家知识产权局、中国科学院、中国工程院和深圳市人民政府共同…

从零开始Inline Hook

中断表进入0环 通过中断门进入0环&#xff0c;首先了解一下中断门的构成 构造一个中断号 Base:函数地址 DPL:3 //因为三环使用调用门的条件就是CPL(即cs段选择子的RPL)<DPL P:1 //P为1时&#xff0c;中断表才有效 Segment Selector: 0x0008 //中断成功后切换自己的CPL 在…