VR虚拟仿真丨VR定制开发解决方案
VR虚拟仿真技术,是用计算机系统模仿一个真实场景的技术。VR虚拟仿真构成的三维信息虚拟环境,可以逼真地模拟现实世界(甚至是不存在的)的事物和环境,还可以投入到这种环境中,体验到“亲临其境”的感觉,并可模拟人的视觉、听觉、触觉等 感觉器官自然地和计算机虚拟环境系统进行交互。突破了空间、时间以及其他客观条件的限制,从而感受到真实世界中无法亲身经历的体验。
沉浸性 计算机产生一种人为虚拟的环境,通过计算机图形构成的三维数字模型,编制到计算机中去产生逼真的虚拟环境,让用户感受到自己已进入虚拟环境的感觉, 获得身临其境的感受和临场参与感。
交互性 VR虚拟仿真系统中,可以通过外部设备以及人近乎自然的行为(自身的语言、肢体的动作等)对环境进行控制,并能够对人的操作予以实时的反应。例如,当操作员按动采煤机启动按钮时,会看见虚拟场景的采煤机开始运转;按滚筒左升按钮时,采煤机会随着速度的控制而向左上升进行采煤
虚幻性 系统中的环境是虚幻、模拟的,既可以模拟客观世界中以前存在过的或是现在真实存在的环境,也可模拟出客观世界中当前并不存在的但将来可能出现的环境,还可模拟客观世界中并不会存在的而仅仅属于人们幻想的环境。
逼真性 虚拟环境给人的各种感觉与所模拟的客观世界非常相像,一切感觉如同在真实世界一样逼真; 当人以自然的行为作用于虚拟环境时,虚拟环境做出的反应也符合客观世界的有关规律。如当给 虚幻物体一个作用力,该物体的运动就会符合力学定律,会沿着力的方向产生相应的加速,当它 遇到障碍物时,就会被阻挡。
随着高端技术的迅速发展以及在设备中的成功应用,使得设备的科技含量不断升高,功能不断增强,设备的使用及维护也变得越来越复杂,如何快速地让技术人员掌握高精设备的使用和维修方法是迫切需要解决的问题。太阳城亚洲官网科技有限公司利用虚拟设备技术将训练的部分内容移植到虚拟设备上,能在很大程度上避免这些缺点,同时基于虚拟设备的训练不受时间空间以及天气环境的限制,不受设备数量的限制,可反复实施而几乎不会增加成本,从而也可以最大化提高训练效率。
设备虚拟操作训练系统的优点包括:
1) 成本更低。一次性投入,可无限复制,单套产品成本低。
2) 应用范围不受限制,对场地硬件要求较低。
3) 表现元素更丰富。可以集文字、声音、图像、视频、动画、控制逻辑、数据库等于一体。
4) 表现力更直观。可以任意视角、任意距离观看设备的任何一个外部或内部的部件,同时超现实的手段的运用可以将设备的工作原理以更直 观的方式表达出来, 例如机构的运动、油路、电路的走向等。
5) 训练更人性化。技术人员进行虚拟的操作训练,不用担心损坏设备,在操作的过程中如果出现错误还可以给出语音和文字提示。
6) 更易修改和扩充。当设备进行修改或升级时,软件系统也能方便地进行更新,升级成本远低于实物教学设备的升级。
通过VR虚拟仿真技术还原真实的场景及场景中装备相应的操作,来验证操作的合理性和规范性,可以给新配备的操作人员提供相应的指导和学习,也可以用来优化现场操作流程。
1)对指挥室内进行建模,包括室内控制设备、指挥台等方面布局的验证,并在室内漫游;
2)对室外场地的建模、车辆装备、维修设施、道路规划、车辆装备停靠标志等;
3)对指挥室内控制系统功能的模拟,包括对室外场地设备的管理、场地车辆装备数据状态收集、对场地车辆等装备指令发出等;
4)室外地面的各种车辆等设备的操作流程模拟,包括车辆装备的达到状态、到达场地停泊的规范操作,车辆装备停靠后检修保养模拟、车辆装备出发前操作流程模拟与监控;
5)模拟不同天气状况下对场外车辆装备的操作,同时开发相应的接口,便于后期添加不同的气候状况与相应的操作流程;
6)在指挥室内对室外全场景的监控、可以调整视角查看任何地方、也可以查看任何地方设备的状态数据、可实现全场景漫游、视角切换等;
项目整体方案
构建虚拟场景,模拟室内和室外地面的数据操作流程。
➢ 达到逼真的三维效果,纹理和现实一致。
➢ 实现操作面板和现实一致的可视化,对操作室的人机界面进行仿真。
➢ 将自动化系统的各种逻辑关系,结合到操作流程中进行模拟。
➢ 整个操作平台的使用(动作)和实际现场作业状况相一致。
➢ 对流程、技术规范、操作规程等按实际情况规范,对操作流程步骤进行评分。
➢ 对整个流程以及各环节设备的启动、停止(多种工况)进行模拟。
序 号 |
类别 |
具体内容 |
|
1 |
前期调研、需求沟通 |
前期的项目调研、数据需求沟通、数据采集 |
|
2
|
美工建模 |
场景模型 |
室内模型布局、外景广场模型、天气特效等 |
设备模型 |
室内物品、室外车辆装备等 |
||
工具模型 |
室外车辆装备所用到的工具 |
||
贴图 |
所有模型贴图(带场景) |
||
UI 界面设计 |
软件平面元素设计 |
||
3 |
VR开发 |
漫游动画 |
在整个虚拟场景里漫游 |
车辆等装备流程动画 |
车辆加油、维修等相关的动画 |
||
监控台视角 |
视角视野特效 |
||
与硬件数据匹配 |
HTC按钮功能匹配 |
||
监控台数据指令处理 |
地面的出现车辆或者其它装备、监控台收到消息,然后发 出相应的数据指令,指挥车辆或者装备做出下一步操作 |
||
数据接口 |
开发后期添加一些天气和其它状态的数据接口 |
|
|
交互流程设计 |
车辆加油、车辆维修、车辆卸载 |
4 |
软硬件调试 |
从用户需要是否满足、系统稳定性等方面测试 |
功能设计
1) 虚拟仿真体验 本虚拟系统打造和实物设备、实地场景一致的效果,使用户觉得操作模拟就和操作实物设备一样;
2) 室内布局模拟 室内设备物品等摆放布局的模拟对指挥室内进行建模,包括室内控制设备、指挥台等方面布局的验证,并在室内漫游;
3) 视角的随意切换 在指挥室内对室外全场景的监控、可以调整视角查看任何地方、也可以查看任何地方设备的状态数据、可实现全场景漫游、视角切换等;
4) 对指挥室内控制系统功能的模拟,包括对室外场地设备的管理、场地车辆装备数据状态收集、对场地车辆等装备指令发出等;
5) 模拟车辆装备在室外场地的操作等 室外地面的各种车辆等设备的操作流程模拟,包括车辆装备的达到状态、到达场地停泊的规范操作,车辆装备停靠后检修保养模拟、车辆装备出发前操作流程模拟与监控;
6) 模拟不同天气状况下对场外车辆装备的操作,同时开发相应的接口,便于后期添加不同的气候状况与相应的操作流程;
接口设计
基于 untiy3D 开发的虚拟仿真系统,通信协议和接口都是通用标准化的接口,可以根据需求定向设计开发。
(1) 数据准备 虚拟装备的数据主要为尺寸信息,那么可以通过获取装备的尺寸图纸和实地测绘两种方式获得。
(2) 纹理制作 利用数码相机拍摄装备的数字影像,然后利用 Photoshop 图像处理软件对其进行纠正、缩放、匹配等处理,存储格式可以是 JPG 或 BMP。
(3) 模型建立 系统采用 3Dmax 根据模型的尺寸信息 1:1 完成装备的三维模型。也可使用主流 3D 软件来建模,最后以平台模型格式导出。
(4) 模型渲染 三维模型和纹理准备好后,将三维模型导入至开放平台中、对三维模型进行材质和纹理的添加,最终形成装备的数字模型。再通过插件将 MAX 文件导出生成 vis 模型,通过平台打开以供后期编辑。
界面设计
系统采用全中文界面设计,根据系统设备类型设计合理的操作界面,主界面布局如下图(此图仅供参考,具体以后期实际界面为主)。
动画制作
根据项目脚本中,对需要进行操作的设备、工具进行动画制作;
项目开发
将三维模型、动画、平面元素导入,根据脚本流程进行相应的项目开发,并完成制作,打包生产相应的工程文件。
本项目中将采用 Unity3D 为基础平台开发,Unity3D 是由 Unity Technologies 开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity3D 利用交互的图型化开发环境为首要方式的软件其编辑器运行在 Windows 和 Mac OS X 下,可发布游戏至 Windows、Mac、Wii、iPhone、Windows phone 8 和 Android 平台。也可以利用 Unity web player 插件发布网页游戏,支持 Mac 和 Windows 的网页浏览。它的网页播放器也被 Mac widgets 所支持。
3dmax 创建的场景物体,有两种方式导入至 Unity 当中,第一种为直接 max 文件存至你的unity3d 项目文件夹中;第二种为将其导出为fbx 文件格式。在此推荐直接存为 max 文件,现在unity3d 已经支持 max 文件的直接导入。
自定义控件的扩展和运行时 GUI 的使用方式一样,如果你打算自定义自己的控件,那么最简单的方式就是实现一个静态方法(也可以不是静态的),并提供一些可选参数,在方法内部根据这些参数来完成对控件的布局(就像你在 OnGUI 中做的一样)。如果你打算把自定义控件实现在窗口类内部,你可以使用 Partial 类来更好的管理你的代码。
Unity3D 的方便之处在于,它很容易地扩展编辑器套件。每款游戏都对加工有着不同的需求, 可以快速地以完全集成的方法来构建这些内容并极大地提升开发速度。
扩充功能的实现思路如下:
1、建一个 IPlugin 接口,每个插件都要继承这个接口。
2、建一个插件管理类,利用 Unity 来管理各个插件。
3、注意容器内注册的类型应为 ExternallyControlledLifetime。
Manager 类型的生命周期,外 部控制生命周期管理器,这个生命周期管理允许你使用
RegisterType 和 RegisterInstance 来注册对象之间的关系,但是其只会对对象 保留一个弱引用,其生命周期交由外部控制,也就是意味着你可以将这个对象缓存或者销毁而不用在意UnityContainer,而当其他地方没有强引用这 个对象时,其会被 GC 给销毁掉。在默认情况下, 使用这个生命周期管理器,每次调用 Resolve 都会返回同一对象(单件实例),如果被 GC 回收后再次调用 Resolve 方法将会重新创建新的对象。
集成调试
将开发的软件导入硬件,进行集成、并调试。