多语言展示
当前在线:1196今日阅读:39今日分享:10

matlab如何建立和连接虚拟世界?

本示例说明如何使用3D世界编辑器创建简单的虚拟世界。该示例并未显示您可以使用编辑器进行的所有操作。但是,该示例确实向您展示了如何执行一些基本任务以开始使用。本示例假定您已将默认编辑器设置为3D World编辑器。有关详细信息,请参见设置默认编辑器。本例介绍的步骤来构建虚拟世界的简化版本,你看,如果你在MATLAB输入这个命令®命令窗口:编辑(vrworld('vrdeform.wrl'))
工具/原料
1

电脑

2

matlab软件

方法/步骤
1

定义问题假设您要在虚拟现实中模拟和可视化球体的变形。在您的虚拟世界中,您希望有两个框代表刚性板(B1,B2)和它们之间的弹性球体(S)。所有三个对象均沿x轴居中对齐。框B1和B2以相同的速度向S移动,但方向相反。当它们到达球体S时,它们开始通过减小其x尺寸并拉伸其 y和z尺寸来使其变形。这是虚拟世界的外观:

3

在Simulink的® 3D动画™产品包括教程模型vrtut3。这个简化的模型模拟了弹性球体的变形。与刚性块碰撞后,球的x 尺寸从1减小到0.4。此外,y和 z尺寸会扩大以使变形球体-椭球体的体积保持恒定。模型中的其他块将正确大小的矢量提供给Simulink 3D Animation块。当球体在x方向上变形为原始大小的0.4倍时,模拟将停止。

4

您的第一个任务是打开Simulink模型并将Simulink 3D动画块添加到模型中。

5

添加Simulink 3D动画块此过程使用Simulink模型vrtut3演示如何将Simulink 3D动画块添加到模型中。该模型生成B1的位置,B2的位置和S的尺寸的值(如“ 定义问题”中所述)。1、打开Tutorial #3。例。     在打开的页面顶部,选择打开此示例。     将vrtut3文件保存到您的MATLAB工作文件夹中。2、在MATLAB中,将当前文件夹更改为您的MATLAB工作文件夹。3、在MATLAB命令窗口中,输入:      vrtut3 将打开一个Simulink窗口,其中包含一个包含Simulink 3D Animation VR信号扩展器模块的模型,但没有VR Sink模块可将数据从模型写入Simulink 3D Animation。相反,此模型使用范围块临时监视相关信号。4、在MATLAB Command Window中,键入      vrlib      将打开Simulink 3D动画库。5、从“库”窗口中,将VR Sink 块拖放到Simulink图中。然后,您可以关闭“库浏览器”窗口。您的下一个任务是创建一个将与VR Sink块关联的虚拟世界。请参阅打开新的虚拟世界。

6

打开一个新的虚拟世界您必须创建一个虚拟世界才能连接到Simulink模型以可视化信号。 此过程将打开一个新的虚拟世界,在其中添加用于可视化模型信号的节点vrtut3。虚拟世界和Simulink模型之间的连接要求该模型包含一个VR Sink块,如添加Simulink 3D动画块中所述。 1、在空的虚拟世界中启动3D世界编辑器。在MATLAB Toolstrip的“ 应用程序”选项卡的“ 仿真图形和报告”部分中,单击“ 3D世界编辑器”。3D世界编辑器显示:     在左窗格中,只有一个ROOT 节点的虚拟场景树     在右窗格中,一个空的虚拟世界     在底部窗格中,一个用于编辑对象的空白窗格2、您可以随时保存虚拟世界。将虚拟世界保存在 文件所在vrtut3.wrl的相同工作文件夹中 vrtut3。不要关闭3D世界编辑器。接下来的两个任务将创建一个虚拟世界以用于vrtut3 模型:     添加节点     建立和连接虚拟世界

7

添加节点创建盒子 定义虚拟世界对象涉及定义节点的层次结构。此示例示出了如何定义Transform节点的下ROOT 节点,每个Transform节点包括的层次结构 children,Shape,Appearance,Geometry,和特定的形状(在这种情况下,Box)节点。 1、在左窗格的树中,单击ROOT (最上面的项)。2、Transform使用以下菜单选择序列添加节点。3、该Transform节点用于B1框。命名Transform节点:     右键单击该Transform节点。     选择“ 编辑名称”菜单项。     在Transform节点左侧的编辑框中,键入 B1。4、添加一个Shape节点:     展开B1 Transform节点。     选择children节点。     Shape使用以下菜单选择序列添加节点:5、Appearance为Shape节点添加一个节点:     在Shape节点下,选择appearance (SFNode)节点。     Appearance使用以下菜单选择序列添加节点。6、将Material节点添加到该 Appearance节点:     展开(Appearance)节点并选择该 material(SFNode)节点。     Material使用以下菜单选择序列添加节点。7、将Box节点添加到该 geometry节点:     选择geometry(SFNode)节点的 (Shape)节点。     Box使用以下菜单选择序列添加节点。     展开所有节点后,“ 3D世界编辑器”现在在虚拟世界显示窗格中显示一个框 。8、通过编辑框的size 属性来使其更小:     选择 节点的size属性Box。     在3D世界编辑器底部的对象属性编辑窗格中,0.3在第一栏中输入, 1在第二和第三栏中输入。     点击应用。盒子变小了。9、通过更改节点的translation(SFVec3f)属性, 将框向右移动 B1(Transform)。在对象属性编辑窗格中,将第一列设置为3,将第二列和第三列设置为0。10、添加第二个类似于第一个框的框。       在ROOT节点下,添加一个Transform 节点(请参阅步骤2)并命名B2(请参阅步骤3)。       复制Shape节点。在B1 Transform节点下,右键单击Shape节点中的 B1 Transform节点,然后选择“ 复制”菜单项。       将复制的Shape节点粘贴到该B2 Transform节点中。在B2 Transform节点下),右键单击该 children节点,然后选择“ 粘贴节点” >“ 粘贴”菜单项。随着B1节点的折叠和B2 节点的展开,“ 3D世界编辑器”如下图所示。11、通过更改 节点的translation属性,将您创建的框移动到左侧 B2(Transform)。在对象属性编辑窗格中,将第一列设置为 -3,将第二列和第三列设置为 0。

8

创建一个球体 您的下一个任务是在两个框之间添加一个球体。本节假定您已完成“ 添加节点”中描述的任务。 1、为了使树结构窗格更容易地集中在要添加的节点上,请折叠B1(Transform)和 B2(Transform)节点。2、在左窗格的树中,单击“ ROOT 节点”。3、添加一个Sphere节点。3D世界编辑器包括用于建立虚拟世界的对象库,其中包括一个 Sphere对象。 Sphere使用以下菜单选择序列添加库对象。从组件库文件夹列表中,选择Shapes 文件夹,然后选择Sphere.wrl文件。 4、选择Transform节点并命名 S。在S Transform节点完全展开而其他 Transform节点折叠的情况下,“ 3D世界编辑器”如下图所示。 5、要使球形变为蓝色,请在Material节点下选择 diffuseColor属性。在对象属性编辑窗格中,将第一列的值更改为0.2,将第二列的值更改为1,将第三列的值更改为 1。 6、保存虚拟世界文件。您的下一个任务是将模型输出连接到Simulink模型中的Simulink 3D Animation模块。请参阅链接到Simulink模型。

9

链接到Simulink模型创建虚拟世界和带有VR Sink块的Simulink模型后,定义模型信号与虚拟世界之间的关联。

10

注意此过程以模型vrtut3为例。假定您已打开模型并添加了VR Sink块,并且已创建了一个名为的虚拟世界vrtut3.wrl。请参阅从添加Simulink 3D动画块开始的教程。

11

1、打开“ VR接收器块参数”对话框。在Simulink编辑器中,双击VR Sink块。2、在“ 源文件”编辑框旁边,单击“ 浏览”。3、选择vrtut3.wrl,然后单击 打开。4、在“ 输出”窗格中,选择“ 自动打开查看器”。此复选框指定在运行模型时启动虚拟世界的查看器。5、对于Description参数,输入 vrtut3。6、在“ VR Sink”对话框中,单击“ 应用”。7、在树结构窗格中,选择 B1平移,B2平移和 S比例复选框作为要连接到模型信号的节点。单击确定。将显示VR Sink块以及相应的输入。8、删除三个示波器模块及其关联的输入信号线。9、将来自两个VR信号扩展器模块的输入线连接S Scaling in XYZ到VR Sink模块中的相应端口。10、双击VR Sink块。查看器出现。11、在查看器中,选择“ 仿真” >“ 块参数”选项。您的默认查看器将打开并显示虚拟世界。有关更改默认查看器的更多信息,请参见设置默认查看器。12、在“ VR接收器块参数”对话框中,单击“ 查看”按钮。13、在Simulink编辑器中,选择Simulation > Run。在默认查看器中,您会看到场景的3D动画。使用查看器控件,您可以从各个角度观察动作。当球体的宽度减小到其原始大小的0.4时,模拟将停止运行。

12

本示例向您展示如何创建和使用简单的虚拟现实模型。使用相同的方法,可以创建更复杂的模型来解决您面临的特定问题。

推荐信息