预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号(10)申请公布号CNCN103680248103680248A(43)申请公布日2014.03.26(21)申请号201310581688.2(22)申请日2013.11.19(71)申请人大连海联自动控制有限公司地址116000辽宁省大连市高新园区火炬路1号A座(72)发明人刘雨(51)Int.Cl.G09B9/06(2006.01)权利要求书2页权利要求书2页说明书2页说明书2页(54)发明名称船舶机舱虚拟现实仿真系统(57)摘要本发明提出并实现一种基于虚拟现实技术的船舶轮机仿真系统。给出应用于船舶轮机仿真的虚拟立体视觉图象生成算法,研究了使用立体眼镜和立体头盔视觉设备的虚拟现实系统的实现,讨论了虚拟机舱漫游、虚拟船舶驾驶台和虚拟集控室等船舶仿真系统。CN103680248ACN1036824ACN103680248A权利要求书1/2页1.船舶机舱虚拟现实仿真系统包括以下几个部分:虚拟现实与现场感虚拟现实(VirtualReality,VR)技术是一种全新的人-机交互环境,也是一种先进的仿真手段;其主要特点是用户可以身临其境地与计算机生成的三维虚拟环境进行直接和自然的交互;VR利用计算机和电子技术产生逼真的视、听、触、力等三维感觉,用户通过专门的交互装置(例如立体眼镜、立体头盔、数据手套等)与虚拟环境交互,产生身临其境的感觉,即所谓现场感;现场感和虚拟现实有很多共通之处;其主要特点是人能身临其境地与三维计算机世界进行交互;这里的计算机世界可以是基于计算机图形生成的虚拟环境,也可以是遥在环境通过摄像机在计算机中复现;其重要的研究内容均是改善人-机交互方式,使操作者或观察者能够获得身临其境的感觉;因此它们在立体视觉的形成,三维声音的形成,力、触觉反馈等方面有相似的研究内容;虚拟现实技术和现场感技术的主要差别在于,前者的视觉输入是由计算机计算生成的三维图形;通过专有外设进行人与该虚拟环境交互;而后者的视觉输入是由摄像机的真实场景;一般现场感技术应用于遥操作系统中,是将操作者不能亲临的现场环境通过摄像机及通信设备传送至计算机显示;视觉现场感的产生及立体视觉形成的机理视觉现场感的产生主要通过立体和大视场的显示来实现,通常应着重从以下几方面来研究视觉现场感的产生和实现技术:(1)视觉的基本特征:根据视觉的生理特性,描述视觉的亮度特性,彩色特性,视觉分辨力和视觉惰性;(2)双目立体视觉的原理;(3)虚拟立体视觉图象的获取与生成;(4)基于双目视差的分时式、分路式立体视觉显示;(5)立体视觉测试及研究;(6)影响立体视觉效果的其它因素;立体显示现场视景或虚拟的三维生成环境是实现现场感与虚拟现实的一个重要方面;只有准确地取得三维尺寸和方向信息,用户才能准确地与现场操作机或虚拟环境进行交互;人类的经验和视觉实验均表明,人不仅用双眼观看景物时具有立体感,就是用单眼观看景物时,也能辨别物体的前后深度,具有一定的立体感;只不过辨别精度比用双眼时低,主观感较弱;人能感受到立体,主要是立体提示因素的作用;我们将产生立体感的因素分为两大类:即单眼体视因素和双眼体视因素;在虚拟现实系统中,对于给定的三维物体造型,解算出其立体视觉图象对便于立体观察是很重要的;通常采用的方法是按照摄像模型沿不同的视点方向分别进行投影;使用立体视觉设备的虚拟立体视觉图象的实现本仿真系统中,立体显示的实现是根据视差的原理,利用虚拟现实软件工具包WTK7.0提供的函数,通过立体眼镜或立体头盔分别为观察者的双眼传送有视差的图象,从而产生立体感;通过立体眼镜或立体头盔来观察虚拟机舱设备,可以产生非常逼真的三维立体效果;WTK程序一般是按照以下步骤运行:(1)首先调用WTuniversenew()建立宇宙,调入图形对象,设置视点、纹理、窗口、传感器等,完成宇宙的初始化工作;(2)调用WTuniverseready()为进入仿真循环做准备,然后调用WTuniversego()进入仿真循环,利用WTK提供的API,在VC中开发出需要的演示系统;2CN103680248A权利要求书2/2页该阶段是WTK仿真的核心内容;(3)最后调用WTuniversedelete()以使图形硬件返回到缺省状态;由于每个人的两眼距离以及其它的一些特征都有微小的差别,为了使每个用户在进行虚拟漫游时均产生最佳的立体效果,需要根据个人体征的不同进行单独调整对视差的调节程序如下:if(nChar==VKDELETE)//左眼视差调整{parallax++;WTviewpointsetparallax(WTuniversegetviewpoints(),parallax);}elseif(nChar==VKNEXT)//右眼视差调整{parall