使用Unity关节组件,模拟机器人动作,加速机器人的开发时间

在机器人设计中关节组件的使用让用真实的物理和运动来模拟机械臂和运动链比以往任何时候都更容易。在Unity的全新版本中加入了一个全新的物理组件:关节体。随着PhysX功能的其他改进,现在的Unity比之前更能够轻松模拟工业应用。

使用Unity关节组件,模拟机器人动作,加速机器人的开发时间

旧版Unity对工业设计存在局限性

虽然在旧版本中Unity对于各种各样的游戏类型提供了出色的性能,但也暴露出了一些缺点,如:为非游戏应用程序建模变得更加困难。在以往的版本中建立运动关节的模型,就像你在布娃娃、机械臂或有几个平行铰链的结构中看到的那种,会导致动作关节和运动效果非常不真实。这些关节不仅看起来奇怪,而且它们也不可能用于模拟真实的设备,这阻碍了工业设计师们使用Unity进行建模或原型工业设计。

造成这些缺点的主要原因之一是将刚体连接在一起的关节组件不真实。这些不真实的关节运动,加上为游戏性能优化的物理处理运算器,导致了在以往版本中运动学无法被真实的模拟出来。

使用关组件节模拟运动

某些应用需要约束一些刚体相对于彼此的运动。例如:一个娃娃的骨骼关节,一个多关节的机械臂,或者一扇门的铰链。通常来说,这是通过关节组件实现的,例如将两个刚体对象连接在一起的固定关节或可配置关节。

在设计中,每个关节被分解成几个基本约束状态,例如保持物体在某个特定距离的线性约束或保持物体围绕特定轴以特定方式、定向的角度进行约束。这些相同的约束通过保持相同的距离来防止物体彼此重叠。所有组合的约束将被插入到迭代求解器中进行运算求解,该迭代求解器会生成一组脉冲数据,而这组脉冲将应用于空间中的每个连接对象,使他们满足所有约束。

使用旧关节的问题

第一个问题是冲突因素的绝对数量,这些因素会给求解器带来数据的汇集问题。迭代次数、连接体的相对质量以及场景中约束集的总复杂性会产生一个无法解决的脚本。在这种情况下,则需要使用一些不完全的解决方案,因此会导致某些约束没有得到满足。

第二个问题是,施加的脉冲幅度取决于关节的误差——一个显示在给定时间内违反约束的程度的值。由于这种误差补偿行为,总会产生一些弹性效应,就像物体被一组阻尼弹簧连接一样,特别是当关节被链接在一起时。

将关节组件带入Unity——模拟真实运动

对与上述运动学问题的解决方案是新概念的关节组件:组织在逻辑树中的一组实体,其中亲子关系表现了相互约束运动的过程。总有一个单独的根体,不能有循环。我们需要使用Unity的转换层次结构将之表达清楚。

现在,Unity的使用者们可以很容易地对现有的机器人进行建模,比如下面的通用机器人UR3e,通过模拟可以实现一个更准确地反映真实世界中运动情况的任务。这使得机器人设计者们能够在一个合成环境中可视化的进行一个特定的运动序列,测试新的代码,甚至检验全新的设计。

使用Unity关节组件,模拟机器人动作,加速机器人的开发时间

关节组件可以在以下两个主要方面为机器人设计者们和其他工业开发人员提供帮助:

1、加入关节组件的机器人可以以更类似于现实世界的方式移动

2、全新的机器人建模相比旧的刚体+关节模式构建得更快,更加节省开发时间。

在未来关节的主要用例将出现在机器人领域。机器人手臂通常有六个或更多的关节串联组成,这意味着每个相对关节姿态的微小误差可能对末端执行器的姿态有着很大的影响;误差沿着运动链向上传播,从而会导致末端执行器与目标之间的位置产生较大的偏离。

通过模拟可以帮助机器人设计者们通过虚拟建模部署场景和单元测试来加速他们的开发时间,然后大规模地执行它们,而不是试图在真实的机器人上实时运行相同的测试套件。全新版本的Unity关节体组件和PhysX的改进可以帮助机器人设计者们使用Unity进行模拟工作。

给定亲子关系的自由度取决于实际使用的关节类型。目前,Unity支持:

固定:具有零自由度,用于相对于彼此锁定物体。

棱柱形:有一个自由度,即相对于父轴沿特定轴的线性偏移。

旋转:有一个自由度,基于棱柱的旋转模拟。

球形:最多有三个自由度,是一个球窝接头,只允许相对旋转,不允许线性运动。

为了进一步增加这些关节的真实感,Unity使用了基于费瑟斯通算法(Featherstone’s algorithm)的技术。这种技术使用简化坐标来计算施加到关节、连杆和实体结构上的力的效果,也就是说,每个实体相对于其父体的空间的自由度相同。以前,我们依赖最大坐标,这种坐标在一般情况下性能更好,但为了获得这种性能,我们经常会选择性的牺牲精度和精确度。

向前动力和关节

在简化的坐标空间中的前向动力学和关节运动有助于满足机器人手臂所需的高精度和准确度要求。关节首次使在Unity中模拟机械臂成为可能。使用迭代关节求解器生成对机器人建模需要的调整和捷径,仍无法匹配真实机器人的运动。

Unity使用前向动力学算法来模拟简化坐标空间中的关节(在这个空间中,每个物体相对于其父物体的坐标与自由度一样多)。这与关节中的总自由度成线性比例,并且可以比使用传统的迭代求解器更加快速,传统的迭代求解器与约束的数量成比例,以计算更为精确的结果。

关节体——Unity全新的物理组件

为了支持Unity中的关节组件,技术人员在新版Unity中添加了一个新组件——关节体。用常规物理学来打个比方,关节体就像刚体和可配置的关节一样是一个组件。在一个关节中,除了根身体之外,所有的个体都有一个关节将它们连接到它们的父体上,这就是为什么它们没有被分成单独的部分的原因。

使用Unity关节组件,模拟机器人动作,加速机器人的开发时间

Unity检查器中的关节体组件

物体的形状是通过使用常规的对撞机组件来描述的,就像刚体一样。

创建后,关节中的实体不能通过变换组件来移动,因为它可以打破由简化的空间坐标设置的限制。唯一的例外是根身体,可以使用关节身体移动。瞬移根身体功能。通过设计,身体不会对转换组件中的变化做出响应。

也就是说,有几种可能的方式与关节进行互动。首先,力和扭矩可以在关节中施加到每个物体上。其次,每个关节在每个自由度上都有一个线性驱动器,可以通过设置线性和角度目标来进行控制。最后,使在缩小的坐标空间中直接改变物体的姿态成为可能。

关节与固定或可配置的结点进行比较

关节的一个特别的优点是模拟的重量不直接取决于连接物体的重量比。对于刚体和固定关节,当连接体之间的重量比高于10:1时,模拟开始变得不真实。然而通过使用关节功能即使A物体重量是B物体重量的1000倍,通过固定关节连接的关节体的维度网格仍然可以精确模拟。

综上所述

通过Unity关节组件的模拟机器人设计者们可以通过虚拟建模许多部署场景和单元测试来加速他们的开发时间,并大规模地执行它们,而不是试图在真实的机器人上实时运行相同的测试套件。Unity的关节组件和PhysX的改进可以帮助机器人设计者们使用Unity进行机器人的模拟工作。

展开阅读全文

页面更新:2024-03-16

标签:关节   机器人   组件   刚体   自由度   设计者   误差   建模   线性   坐标   物体   物理   身体   动作   真实   时间   游戏   空间

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top