主要内容

链接到万博1manbetx模拟风景多体模型

要在模型和虚拟世界之间建立实时数据连接,请在动态模型对象数量和相应的虚拟世界对象属性之间创建关联。例如,创建与虚拟世界对象属性(如位置和旋转)的关联。

虽然模拟风景™ 多体™和仿真软万博1manbetx件®是通用的机械系统建模平台,也可以使用万博1manbetxSimulink三维动画™用于在MATLAB中实现模型可视化的产品®

将虚拟世界连接到万博1manbetx模型

将Simulink模型信号与万博1manbetx虚拟世界对象属性关联起来VR水槽块的万博1manbetxSimulink三维动画街区图书馆,vrlib

要将Simulink信号与虚拟万博1manbetx对象属性关联,请执行以下操作:

  1. vrlib图书馆,插入一个VR水槽块插入到Simulink模型中。万博1manbetx

  2. 要定义虚拟世界,请使用VR水槽“块参数”对话框。在中输入虚拟世界三维文件的名称源文件,或点击浏览以交互方式选择文件。单击,加载选中的虚拟现实场景申请

  3. 为了平滑显示运动,可以更改块采样时间.例如,要想每秒更新虚拟世界25次,设置采样时间0.04. 使用继承的采样时间进行采样时要小心VR水槽块根据使用的解算器,使用继承的采样时间可能会导致虚拟世界的非即时(在模拟时间内)更新。非即时更新会给观看虚拟世界的人留下系统动力学的错误印象。

  4. 虚拟世界树,展开主对象使改变树枝在场景对象层次中,根据中给出的名称,找到要从Simulink控制的所有零件万博1manbetx添加DEF的名字.命名使改变节点表示每个部分。选中“旋转”和“位置”字段旁边的复选框使改变节点。您可以选择虚拟世界对象的其他属性,例如颜色,但旋转和位置是最常控制的属性。

  5. 点击好啊.对于每个选定的字段,VR水槽块创建一个输入端口。增加VR水槽块大小适合输入端口的数量。

在您将VR水槽块与虚拟世界,可以双击它打开万博1manbetxSimulink三维动画查看器。要访问块参数,请在查看器中选择模拟>块属性

VR水槽输入接收与它们的虚拟世界表示相对应的信号类型。位置输入是类型的SFVec3f,这是中表示的位置[x y z]协调。旋转输入类型为SFRotation,将旋转定义为[轴角],使用中所述的坐标系使用的坐标系,其中角度值以弧度为单位。

将Simulink模型使用的坐标系与虚拟世界的坐标系进行匹配。万博1manbetx如果两个坐标系不相同,变换一个轴。

通常,对象位置以虚拟世界(笛卡尔坐标)所需的形式提供。通常,使用旋转矩阵表示法定义对象旋转。要将此类旋转转换为VRML格式,请使用旋转矩阵到VRML旋转

对象的位置和旋转会根据虚拟世界的层次而不同:

  • 要用全局坐标定义Simulink模型中的所有部件,万博1manbetx当虚拟世界有独立对象的平面结构时,使用这些位置和旋转。

    对象位置 发送到VR水槽全局坐标中的所有位置。
    对象旋转 发送到VR水槽所有的旋转在全局坐标中,旋转中心定义为坐标系原点。若默认旋转中心为使改变对象是[0 0 0],则不需要为虚拟世界三维文件中的每个零件定义中心。
  • 当Simulink模型中的所有部分都万博1manbetx遵循层次关系,并且虚拟世界具有嵌套结构时,请使用这些位置和旋转。

    对象位置 发送到VR水槽在对象层次结构中,相对于它们的父类或前类的局部坐标中的所有位置。例如,发送机器人工具相对于机器人手的位置。
    对象旋转

    发送到VR水槽相对于对象层次中的父对象或前置对象,在局部坐标中进行的所有旋转。例如,发送机器人工具相对于机器人手的旋转。

    通过使虚拟世界中的旋转中心与Simulink模型中的旋转中心重合,在视觉上匹配物体之间的关节位置。万博1manbetx重合的转动中心,因为当部件之间的关节不在原点([0 0 0])的父级坐标系。

    要定义不同于默认值的旋转中心,[0 0 0],定义中心童田使改变虚拟世界三维文件中的节点。例如,定义机器人工具旋转中心,使其与手部局部坐标中连接手部和工具的关节重合。

在分层场景结构中,当部件通过旋转关节连接时,很容易定义部件之间的相对旋转。关节轴直接定义虚拟世界旋转轴,因此可以构造[轴角]四元旋转矢量。

初始条件

Si万博1manbetxmulink模型初始条件必须与虚拟世界中定义的初始对象位置和旋转相对应。否则,由Simulink控制的对象将从VRML文件中定义的位置跳到Simulink为模拟指定的位置。要补偿此偏移,请使用以下方法之一:

  • 在虚拟世界三维文件中,定义另一个嵌套级别使改变在受控对象周围。

  • 在Simuli万博1manbetxnk模式下,将对象初始位置添加到模型计算中,然后再发送到VR水槽

将Simulink模万博1manbetx型初始条件与虚拟世界中的物体位置对齐,保持物体相对于周围场景的正确位置。你可以调整物体周围的位置。例如,移动道路位置,使汽车在位置[0 0 0]保持在道路上,车轮不会下沉或漂浮在道路上方。

VR占位符和VR信号扩展器块

这个VR水槽块只接受定义完全限定字段值的输入。仅在一维中描述系统行为的动态模型仍然需要所有受控对象的完整三维位置,以实现其虚拟现实可视化。

要简化此类情况下的建模,可以使用虚拟现实占位符VR扩张器街区万博1manbetxSimulink三维动画图书馆

这个虚拟现实占位符块发送一个特殊值,该值被VR水槽块当此占位符值出现在VR水槽输入,作为单个值或作为向量元素,虚拟世界中的适当值保持不变。

这个虚拟现实信号扩展器块创建一个具有预定义长度的向量,使用来自输入端口的一些值,并用占位符信号值填充其余的值。

要控制一维动态模型中虚拟对象的位置,请使用虚拟现实信号扩展器以受控尺寸作为其输入的块。对于其输出,在VR水槽块其余的矢量元素用占位符信号填充。

的使用虚拟现实信号扩展器当定义旋转时,块也是一种可能。当在虚拟世界3D文件中定义了旋转轴时,可以发送到VR水槽阻塞一个虚拟世界旋转值。使用由三个占位符信号和计算的角度组成的值。这个旋转值形成一个有效的四元素[轴角]向量。

链接到模拟风景多体模型

你可以使用万博1manbetxSimulink三维动画用于查看使用创建的模型的行为的产品Simscape多体软件

  1. 使用在Simulink界面中建立机器模型万博1manbetxSimscape多体阻碍。

  2. 在虚拟世界中创建计算机的详细视觉表示。

  3. 将虚拟世界连接到Simscape多体车身传感器输出。

  4. 在虚拟世界查看器中查看身体的行为。

你可以使用Simscape多体使用万博1manbetxSimulink三维动画产品。除了这些特性Simscape多体产品提供的建模机械装配,以下特点简化了可视化Simscape多体虚拟现实中的模型:

  • Simscape多体和虚拟世界坐标系是相同的。

  • Simscape多体软件,您可以使用全局和局部对象坐标。这种灵活性使得模型很容易适应从CAD工具导出的虚拟世界的结构。

这个Simscape多体该产品还提供了一种将CAD装配设计导入到Simscape多体机器通过Simscape多体链路或者,当您将CAD部件导出为虚拟世界格式时,可以将虚拟现实可视化添加到此类部件中。

这个万博1manbetxSimulink三维动画软件包括以下用于使用的功能Simscape多体文件:vrcadcleanup,弗拉菲斯莫stl2vrml

根据虚拟世界层次结构,您可以使用两种方法之一来帮助可视化Simscape多体机器:

  • 当虚拟世界具有独立对象的平面结构时,可以使用体传感器块。连接体传感器块到连接到实体的适当坐标系。使用全局坐标定义位置和旋转。通常,可以将传感器连接到原点位于的实体坐标系[0 0 0]初始旋转矩阵定义为单位矩阵,[1 0 0; 0 1 0, 0 0 1],在全局坐标中。

  • 当虚拟世界具有嵌套对象的层次结构时,可以获取身体位置和旋转体传感器块及其输出集,以使用局部体坐标。在特殊情况下,例如当两个物体通过一个旋转接头连接时,你可以用关节传感器

链接到一个MATLAB模型

为了帮助您与虚拟世界进行交互万博1manbetxSimulink三维动画产品提供了一组MATLAB函数和构造,统称为“MATLAB接口”。这种MATLAB功能适用于基于cad的设计的情况包括:

  • 使用自定义GUI在虚拟环境中可视化静态对象及其关系,例如在交互式机器装配指令中。

  • 基于独立数量(不一定是时间)可视化3D信息。

  • 在Simulink模型回调中使用MATLAB接口函数。万博1manbetx

  • 可视化系统,其动态模型可用MATLAB代码。

  • 可视化发生大规模对象变化(如变形)的系统。在这种情况下,仅使用Simulink信号无法将动态大小的矩阵类型数据从动态模型发送到虚拟世界。万博1manbetx

有关使用MATLAB接口设置对象属性的信息,请参见与虚拟现实世界互动

相关话题