QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3962|回复: 5
打印 上一主题 下一主题

使用Matlab/Simulink实现运动可视化技术

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2014-12-10 09:52 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    使用Matlab/Simulink实现运动可视化技术
    还在为不知道如何使自己的仿真结果更容易让人接受而烦恼吗?
           还在为用一条条曲线所表示的运动太过抽象而苦不堪言吗?
           建个3D模型,使用Matlab平台,投资小,利润高!小本经营,无限回报,赶快继续阅读吧,依托强大的Matlab平台支持,帮你解决仿真过程中遇到的这些烦恼~~
           试想一下,无论是学术活动还是各种汇报,一个会动的仿真结果和一组组曲线相比哪个更直观,再配以必要的文字、数字说明,相信下面介绍的方法所得到的结果,无论从哪个角度来讲可能都会更具说服力。是个不错的选择~~   ^_^
    ===================================分割线===============================
           广告打完了,言归正传。运动可视化使用到的是虚拟现实技术。虚拟现实(Virtual Reality,VR)顾名思义就是使用电脑模拟一个三维空间,让观察者有身临其境感觉的一项可视化技术。如果其中物体的运动是受外界控制的,那么就实现了运动的可视化,使运动不再抽象,控制效果也不再是一条条仿真曲线,可以从3D模型的运动中直观地反映出来。
           运动可视化技术可以应用于很多领域,如控制中可以用它来反映被控对象的运动情况,机械中借助于外界输入设备(鼠标、操纵杆等)可以观察复杂机械设备的联动情况。做出来的虚拟现实系统也可以应用于虚拟训练、虚拟地图等场合。
            虚拟现实所使用到的语言为VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。由于早期的网络使用的语言HTML (HyperText Mark-up Language)无法满足巨大信息量的要求,为了解决这个问题,就应运而生了VRML语言,此处的运动可视化技术是借用VRML的强大建模的功能,在Matlab平台上实现虚拟现实。
            那么下面就介绍一下虚拟现实的实现流程吧
    205203iaazjijrpxpj888a.jpg.thumb.jpg
    [img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\Y]~]QT2[7SFIAYT]_6@@4U4.tmp[/img]
            从流程图上看,操作过程并不复杂,实际上也是这样的,下面介绍的这样方法,即使没有VRML语言基础也能建立很好的虚拟现实场景。
            首先是VRML建模工具的选择。
            建模工具有很多种,比如V-Realm Builder 2.0(Matlab自带的VR建模工具),3D Max(功能强大,操作相对简单的工具,强烈推荐),如果对VRML语言十分精通,甚至可以使用记事本进行建模,虽然看起来最拽,但前期需要投入相当多的精力研究VRML语言。我使用的工具是3D Max和V-Realm Builder 2.0兼用,前者是在初期建模时使用的工具,后者是在对模型修改时所使用到的工具。
            其次是虚拟现实浏览器的选择。
            虚拟现实浏览器可以理解为VRML语言编译的编译器,通过虚拟现实浏览器可以将VRML语言编译成为3D模型。至于VRML浏览器的选择也有很多种,但如果是基于Matlab平台的系统,推荐使用Matlab/Simulink/Simulink 3D Animation工具箱中自带的VR Sink浏览器,使用这种浏览器不用考虑与Matlab的接口问题。
            工具选择好之后,那么就举个例子看一下到底怎么用吧
    1.建立3D模型
            使用3D Max建立3D模型
    210115cfxxjescecmomxnj.jpg.thumb.jpg
    file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\I2~W6K9ZY}8DVV%@]0IADM7.tmp
            3D Max建模过程相对简单,效果可以做到相当逼真的程度,完全可以满足虚拟现实中对模型精度的要求。如果不想自己建模也可以借助网络资源,使用搜索引擎搜索“3D模型”,可以找到大量现成的模型。
    2.生成VRML 97格式文件
            为了能在虚拟现实浏览器中反映出使用3D Max建立出的3D模型,需要将模型转换生成VRML97格式的文件。导出的方法很简单,选择文件→导出→VRML97格式的文件就行了。
    3.使用虚拟现实浏览器
            将Matlab/Simulink/Simulink 3D Animation/VR Sink模块拖拽到新建文件中,双击,出现如下界面
    212815wqallghdnqbennwz.jpg.thumb.jpg
    [img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\NS1}SHQ2(A[HP4O)AY6GFVC.tmp[/img]
            单击Browse按钮,选择上步所生成的VRML97格式文件,之后界面变成如下形式
    212922wdeto6no6ebn6bfb.jpg.thumb.jpg
    [img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\}J{}}65~0PL[%WM6YD8X0`V.tmp[/img]
            这时窗口的右侧VRML Tree中就显示了很多节点,这些节点和VRML语言中的节点是一一对应的,这里面对于控制而言经常用到两个节点为rotation(旋转),translation(位置)。
            需要注意的是,在建模过程中需要将一起运动的部件分到一个“组”中,控制时控制这个组的“旋转”和“位置”就行了。
    4.虚拟现实浏览器的数据接口
            常用的数据接口主要是针对rotation节点和translation节点的。
            对于rotation节点需要四维数据,前三维定义绕哪个轴旋转,定义方法如下[1,0,0]表示绕x轴旋转,[0,1,0] 表示绕y轴旋转,[0,0,1] 表示绕z轴旋转;最后一维定义转动角度,以弧度为单位。坐标轴定义如下
    21272659m7lurqnz9zqus4.jpg.thumb.jpg
    [img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\P[]G73LV`YFR@J84NH5_G@8.tmp[/img]
            对于translation节点只需要三维数据,即三个当前时刻中心的坐标。
            由于rotation是经常需要使用到的节点,所以,每次都写很多0,1很麻烦,可以将rotation的接口用一个模块来替代,使用之前只需要选择绕哪个轴即可,输入由原来的四维变成了一维,可以大大提高建模效率。模块参数如下
    2130211cqy6cq1up6u7uqu.jpg.thumb.jpg
    file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\9D6GNC89XLIA9(9]PQ6I2@H.tmp
            做好一切准备工作之后,剩下的就是按动开始仿真的按钮了,让我们一起看一下效果吧~~
    213142fy5wwyhqppzyquq3.jpg.thumb.jpg
    [img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\Q%`I_$TL1CX(6`9L79@QMVF.tmp[/img]
            模型是使4个轮子旋转,并且整体移动,如果这样的试验通过了,下一步就是接入能使车真正运动起来的数据,进而可以仿真真实车辆行驶的全过程了
            上图中左侧的图就是Matlab自带的虚拟现实浏览器,其中下方有许许多多按钮,下方的这些按钮是控制观察者的视角的,类似一些RPG游戏一样,观察者也可以通过鼠标任意调整视角,360°看到虚拟现实世界中的一切,不过前提是场景得做的十分精细,附件中的模型我指贴了一面的贴图,如果大家好奇心特别重,旋转了视角,将会看到另一个世界~~
    ==================================分割线================================
            上面介绍了VRML建模的全过程,如果遇到复杂的模型,耗费时间的地方在于对真实模型和环境的刻画,Matlab这边的工作,Simulink 3D Animation工具箱已经做了足够多,不需要更改什么,设置一些参数就能直接用了。
            此外,Simulink 3D Animation工具箱还提供了很多其他强大的功能,例如在虚拟现实世界中显示文字(VR Text Output),将运动物体的运动后的轨迹记录并在浏览器中显示(VR Tracer),一些外部输入设备的驱动(Joystick Input,Space Mouse Input)。最经典的是Demos模块中提供了各式各样的例子,里面不同类型的应用,基本能够满足简单的要求,同时也是学习虚拟现实一个很好的工具。

    下载:
    游客,如果您要查看本帖隐藏内容请回复


    附件使用方法:将压缩文件解压生成car.WRL文件,打开car.mdl,双击VR Sink,单击Brown找到car.WRL文件,在左侧节点列表中下找到如下节点
    SUV/children.rotation      整车的旋转
    SUV/children.translation  整车的位置
    Reifen_VL.rotation          左前轮旋转
    Reifen_HL.rotation          左后轮旋转
    Reifen_VR.rotation          右前轮旋转
    Reifen_HL.rotation          左后轮旋转
    勾选上述节点,旋转需要四维数据(格式见上文所述),位置需要三维数据,输入相应数据,即可观察到相应的运动


    21272659m7lurqnz9zqus4.jpg.thumb.jpg (12.78 KB, 下载次数: 222)

    21272659m7lurqnz9zqus4.jpg.thumb.jpg

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏1 支持支持0 反对反对0 微信微信
    张银银 实名认证       

    4

    主题

    13

    听众

    1268

    积分

    创造思考

    升级  26.8%

  • TA的每日心情
    开心
    2018-9-20 23:23
  • 签到天数: 394 天

    [LV.9]以坛为家II

    群组华南理工大学

    回复

    使用道具 举报

    励俊07        

    0

    主题

    11

    听众

    364

    积分

    升级  21.33%

  • TA的每日心情
    奋斗
    2016-9-13 17:20
  • 签到天数: 222 天

    [LV.7]常住居民III

    自我介绍
    建模爱好新手

    群组数学建模

    群组国赛讨论

    回复

    使用道具 举报

    0

    主题

    7

    听众

    705

    积分

    升级  26.25%

  • TA的每日心情

    2017-5-7 16:58
  • 签到天数: 366 天

    [LV.9]以坛为家II

    邮箱绑定达人 社区QQ达人

    群组2012HIMCM培训群组

    群组第四届数学中国美赛实

    群组第三届数模基础实训

    群组高数系列公益培训

    群组物联网工程师培训

    回复

    使用道具 举报

    yqybsd        

    3

    主题

    10

    听众

    105

    积分

    升级  2.5%

  • TA的每日心情
    开心
    2015-7-27 11:01
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    自我介绍
    北京 大二

    群组Matlab讨论组

    群组建模讨论组

    回复

    使用道具 举报

    0

    主题

    1

    听众

    1

    积分

    升级  20%

    该用户从未签到

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-31 18:21 , Processed in 2.253073 second(s), 88 queries .

    回顶部