钟玲 张晨
摘 要:将虚拟现实技术应用与仿真技术相结合,建立了面粉生产工艺虚拟现实流程仿真系统。针对面粉生产工艺流程设计了三维场景浏览、知识问答和工艺流程仿真等部分。分析了基于欧拉角变化的视角旋转方法和知识问答实现方法,详述谷物粒子仿真与流程仿真相结合的工艺流程仿真方法。
关键词: 虚拟现实;场景浏览;知识问答;流程仿真
文章编号: 2095-2163(2019)03-0092-05 中图分类号: TP391.9 文献标志码: A
0 引 言
虚拟现实(VR)技术可以创造出虚拟现实世界,将该技术应用于产品设计、场景模拟等,使工业生产设计者通过视觉、听觉、甚至触觉,直观了解规划设计的生产场景、生产流程以及产品功能和质量等方面的情况,有助于及时发现产品生产的不足并做出后期修正。工业设计水平的高低直接关系到现代工业的水平与制造质量[1],虚拟现实技术的使用,能够提高工业生产的效率,缩短工艺制造时间并降低生产成本,从而提高企业利润。
作为日常必需品,面粉生产流程较复杂、涉及设备较多,缺乏系统性仿真平台。故而,文中提出了一种基于虚拟现实的面粉生产工艺流程仿真方法,基于此则研究了仿真系统的设计与实现。通过将虚拟现实技术与系统仿真技术相结合,实现生产流程的可视化及其与用户之间的人机交互,有效帮助生产设计者更深入地了解工艺流程[2],同时还可以辅助培训人员学习相关设备和工艺知识[3]。工艺流程仿真系统为企业的生产工艺研究、人员培训等提供有效的决策支持,从而更好地保证了生产作业的安全性和可行性,大幅度降低了员工的训练成本。
1 系统设计与开发
1.1 系统设计
面粉生产工艺流程仿真系统以虚拟现实技术和仿真技术为基础,系统结构设计上要兼顾环境仿真、虚拟设备交互、工艺知识学习以及工艺流程仿真等环节。系统的总体结构主要分为四大模块,分别是:三维场景查看模块、车间漫游模块、工艺知识问答模块和工艺流程仿真模块,功能设计结构如图1所示。根据功能模块建立相应的三维场景浏览部分、知识问答部分和工艺流程仿真部分。
1.2 开发思路
仿真系统开发流程可以分为2部分,对此阐释如下。
(1) 构建三维场景模型。主要利用3ds Max进行三维建模,包括车辆、厂区环境、各类生产设备、谷仓和管道。
(2) 生产场景的构建及场景中的交互。首先用Unity3D读取搭建完成的三维模型,构建场景;然后根据交互设计编写C#脚本,使用C#脚本编程把静态的三维模型与用户操作连接起来;最后研发设计工艺流程仿真算法,实现工艺流程的可视化。
1.2.1 三维场景建模
考虑到虚拟现实系统中显示对象的真实性,要求所显示的对象模型在形态、光照、质感等方面都十分相似。仿真系统的虚拟场景建模分为几何建模和物理建模[4]。本系统亦如此。对此内容可做探讨描述如下。
对象的几何建模是描绘对象内部固有的几何性质的抽象模型[5]。对象模型的组织结构对仿真系统的运行质量起着关键性的作用,根据虚拟场景中每个实体的几何空间位置,以及模型间的结构关系,确定面粉厂虚拟场景的树形结构,如图2所示。
仿真系统中虚拟场景的物理建模是利用3ds Max进行建模和贴图,模型完成后需保存为 FBX 文件,为 Unity3D 平台进一步开发做准备。在保存为 FBX 文件時,需要将单位设置为“米”,并设置 Y 轴方向向上,同时勾选“嵌入媒体”选项。
1.2.2 Unity3D开发场景构建及交互
Unity3D是由Unity Technologies 开发的多平台综合型虚拟现实开发工具,该软件的视觉编辑特点是所见即所得,即可以根据实际需要组成一些相关的场景。该工具在物理引擎、场景特效和跨平台开发中具有一定优势[6],比较适合开发虚拟环境下的仿真系统。
仿真系统需要编辑大量的模型数据,所有对象(GameObject)均在Hierarchy视图中列出,每个对象都有自身专属的特定属性[7]。把编写的C#脚本绑定在对象上,驱动与虚拟设备的交互,以此完成系统的各功能。
2 仿真系统的关键点
面粉生产工艺仿真系统根据面粉实际生产中的生产场景和生产流程,模拟面粉生产的工艺流程,在虚拟现实空间中展示生产场景,利用知识问答功能更好地满足人员培训需要。因此仿真系统包括工艺流程仿真、三维场景浏览和知识问答等3个关键点。
根据各设备中物料的类别和运转时间占比,采用工艺流程仿真方法模拟面粉生产工艺流程;根据三维空间中相机和虚拟人物的关系,通过视角旋转方法使人物进行三维场景浏览;设计知识问答方法实现基于虚拟现实的知识问答。对此本文将展开研究论述如下。
2.1 工艺流程仿真方法
工艺流程仿真方法包括谷物粒子仿真和随着时间变化的流程仿真。研究设计过程可详述如下。
2.1.1 谷物粒子仿真
谷物粒子仿真主要分为生成新谷物粒子,谷物粒子运动模拟以及粒子绘制等3个步骤。为此,拟做研发表述如下。
某时刻t0,谷物粒子在虚拟现实世界三维坐标系的某点产生,根据谷物形状特征,文章采用椭圆球近似谷物粒子。设谷物粒子在x、y、z轴的半径分别为a、b和c,则谷物粒子的形状可以表示为:
设初速度为V、初始方向为D,x轴方向的初速度为vx,y轴方向的初速度为vy,z轴方向的初速度为vz,运动类型为T,粒子淡化系数为A,粒子运行的最大高度为H,垂直加速度为g。
随时间增加,粒子在y轴上的分量逐渐减小,存在时刻tx,当ti
t0时刻,当A=1时,谷物粒子完全不透明,随着时间的增加颜色逐渐变浅,直至A=0时粒子完全透明。
2.1.2 流程仿真
工艺流程仿真系统的相机旋转均绕y轴方向的左右旋转,旋转矩阵如公式(8)所示:
2.2 视角旋转方法
处于虚拟世界三维坐标系(X,Y,Z)中O点的物体或人物旋转时,相机M应满足同步旋转的条件,当相机旋转时应以物体或人物为中心,即向量MO绕O旋转。
假设交互设备P(如鼠标、键盘等)每次触发时所处位置为投影平面直角坐标系x1,y1,其原点O10,0,每次拖动P在x1和y1轴方向移动的系统时间分别记为tx和ty,速度标识为v。则P在x1、y1轴方向上的移动分量分别为xm=vtx和ym=vty。
P在x1轴方向的移动控制虚拟现实世界中的相机M在水平方向上的左右旋转。相机M绕O旋转度数θ1=xm×360°,旋转轴与y轴平行,根据定点旋转的欧拉变换[10],相机M在水平方向上的旋转矩阵Rx(θ1)即如上文式(8)所示。
P在y1轴方向的移动控制虚拟现实世界中的相机M在垂直方向上的上下旋转。相机旋转的度数为θ2=ym×360°,与水平方向的旋转不同,垂直方向的旋转轴需根据向量内积的性质求得。设向量MO=x0,y0,z0,其中y0=0,旋转轴l→=(lx,ly,lz)。
因为l→过点O且垂直于y轴,则ly=y0。令lz=1,由此求得旋转轴l→=(-z0/x0,y0,1)。则相机M在垂直方向上的旋转矩阵Ry(θ2)可表示为:
2.3 知识问答方法
综上分析后,文章又给出一种基于虛拟现实的知识问答方法。首先,对工艺知识题库做预处理[11],将处理后的题库储存在工程对象数据库中。给每道题添加3种作答状态:回答正确、回答错误或没有作答,分别用T、F和N表示。根据题目对应的设备不同把题目进行分类,即每个设备代表一个类别的题目,类别用CN表示,其中N∈Z+。类别CN所包含的每道题目的标号为CNxm,其中xm∈(1,2,…,n),例如C2x3即表示第2类设备第3道题。
设CNM表示类别CN中随机抽取的题目数量,链表CNF存储类别CN中已经作答过的题目标号,CNS表示类别CN已经作答的题目数量。MAX表示问卷题目总数,S表示所得成绩,SUM表示已答题目数量。研究最终得到的基于虚拟现实的知识问答算法步骤可分述如下。
Step1 初始化:S=0,SUM=0,CNM=0。
Step2 判断题目类型Cn,若该类型满足CnS=CnM,则需漫游至其它设备。否则随机分配数量CnM(CnM≤MAX)。
Step3 从Cn类题库中随机抽取一道题Cnxm,遍历CNF,判断是否已经作答,若已经作答则重新抽取。
Step4 判断题目Cnxm的作答状态,若为T,则S=S+1;若为F,则S=S;若为N,则继续作答本题。
Step5 重复Step3、Step4,若CnS=CnM,提示该类别题目答题结束。
Step6 重复Step2~Step5,直至∑CnM=MAX。
[ST4”HZ][WT4”HZ]3 仿真系统的实现
由前文讨论可知,仿真系统包括三维场景浏览、知识问答和工艺流程仿真等3部分,三者之间相互联系组成有机整体。在Unity3D中,使用NGUI设计系统界面,包括系统导航栏(内嵌二级菜单)、系统操作提示、知识问答界面以及工艺流程仿真交互等,系统界面如图3所示。点击左侧导航可在场景浏览、面粉工艺知识问答、工艺流程仿真等功能中来回切换。基于此,对每一部分的功能设计可分别解析阐述如下。
三维场景浏览部分实现了三维场景查看模块和车间漫游模块的功能,两功能模块交互方式相同,采用基于欧拉角变换的视角旋转方法,通过长按右键并拖动鼠标,使虚拟世界中对应物体在三维坐标系中旋转,控制视角范围,多次实验取速度标识v=0.3。
在知识问答部分中,使用基于虚拟现实的知识问答算法,随机从题库中抽取题目组成一套问卷。每套问卷包含多个设备的考点,每个设备的题目数量随机。在三维场景浏览系统中漫游至某台设备,可触发该设备的相关问答题目,该设备随机题目回答完毕后,漫游至其它设备可继续答题。通过Unity引擎使虚拟现实交互和题目数据库建立连接,最后实现知识问答功能如图4所示。
工艺流程仿真部分的功能以动画的方式予以呈现。根据面粉实际生产中,各设备加工物料需运转的时间占比,采用工艺流程仿真方法,使相机通过平移和旋转随着流程移动,把谷物粒子仿真和流程仿真有机地结合在一起。用不同颜色的滚动箭头标识不同物料的运行轨迹,并在储存设备中显示粒子仿真特效。期间经过主要设备时,该设备就会闪烁并显示设备结构和工作原理,实际视像效果如图3所示。可以交互实现流程的暂停和继续显示。
谷物粒子的色彩渲染和纹理图案的映射是使用Unity引擎完成的,通过该引擎设置粒子系统的Renderer、Material等属性,并通过实验确定初速度、方向、最大高度和粒子淡化系数等函数的取值,参数设置见表1,谷物粒子倾泻入仓库的仿真结果如图5所示。
利用Unity引擎,通过实验为T[N+1]、VC[N][2]、CM[N][2]和CS[N][2]设置合适的参数值,完成工艺流程的仿真。整个工艺流程仿真系统即如图6所示。
4 结束语
基于虚拟现实的面粉生产工艺仿真系统,通过将虚拟现实技术和仿真相结合,利用Unity3D研究设计了三维场景浏览部分、知识问答部分和工艺流程仿真部分,各部分之间可以自由交换信息。而且,基于虚拟现实的知识问答方法的成功研发,使该系统能更好地应用于员工培训。其中的工艺流程仿真方法结合谷物粒子仿真和工艺流程仿真,配合关键设备详解和三维场景浏览,实现了面粉生产工艺流程及其生产设备的仿真和展示。同时,仿真系统具有良好的跨平台性和扩展性。但文章所涉及的内容仅对工业虚拟场景的构建、人机交互和工艺流程仿真进行了初步讨论,虚拟现实技术在工业中还有着巨大的应用潜力。
参考文献
[1]杨茜. 虚拟现实技术在工业设计中的应用现状与发展趋势[J]. 中国高新技术企业, 2015(16):48-49.
[2] 朱玉韬. 流程工业信息可视化平台理论与应用研究[D]. 杭州:浙江大学, 2008.
[3] 陈晓青, 王少伟. 基于Unity的虚拟现实技术在教育中的应用[J]. 软件导刊(教育技术), 2011(12):76-78.
[4] 赵铭超. 虚拟现实中三维建模技术的研究与应用[D]. 天津:天津师范大学, 2011.
[5] 宋沫飞. 交互式数字几何建模及其关键技术研究[D]. 南京:南京大学, 2015.
[6] 修春华, 孙秀娟, 苗坡,等. 基于Unity3 D的虚拟矿山漫游仿真系统设计与实现[J]. 金属矿山, 2015, 44(4):262-266.
[7] 张典华, 陈一民. 基于Unity3D的多平台虚拟校园设计与实现[J]. 计算机技术与发展, 2014,24(2):127-130,135.
[8] 潘秋羽, 毕硕本, 陆良虎,等. 基于粒子系统三维动态云的快速仿真算法[J]. 系统仿真学报, 2014, 26(1):85-89,106.
[9] 吴仲明, 田联房, 李彬,等. 基于体可视化的计算机辅助轮廓测量系统设计[J]. 计算机应用与软件, 2016, 33(4):146-150.
[10]苏召斌, 林森. 绞刀运动姿态的欧拉角表示[J]. 中国港湾建设, 2017, 37(12):62-66.
[11]杨玉芬, 李明明, 高晓旸. 对象管理在面向对象数据库中的应用研究[J]. 吉林大学学报(信息科学版), 2015, 31(5):548-553.