鐘玲 張晨
摘 要:將虛擬現(xiàn)實技術(shù)應(yīng)用與仿真技術(shù)相結(jié)合,建立了面粉生產(chǎn)工藝虛擬現(xiàn)實流程仿真系統(tǒng)。針對面粉生產(chǎn)工藝流程設(shè)計了三維場景瀏覽、知識問答和工藝流程仿真等部分。分析了基于歐拉角變化的視角旋轉(zhuǎn)方法和知識問答實現(xiàn)方法,詳述谷物粒子仿真與流程仿真相結(jié)合的工藝流程仿真方法。
關(guān)鍵詞: 虛擬現(xiàn)實;場景瀏覽;知識問答;流程仿真
文章編號: 2095-2163(2019)03-0092-05?中圖分類號: TP391.9?文獻(xiàn)標(biāo)志碼: A
0?引?言
虛擬現(xiàn)實(VR)技術(shù)可以創(chuàng)造出虛擬現(xiàn)實世界,將該技術(shù)應(yīng)用于產(chǎn)品設(shè)計、場景模擬等,使工業(yè)生產(chǎn)設(shè)計者通過視覺、聽覺、甚至觸覺,直觀了解規(guī)劃設(shè)計的生產(chǎn)場景、生產(chǎn)流程以及產(chǎn)品功能和質(zhì)量等方面的情況,有助于及時發(fā)現(xiàn)產(chǎn)品生產(chǎn)的不足并做出后期修正。工業(yè)設(shè)計水平的高低直接關(guān)系到現(xiàn)代工業(yè)的水平與制造質(zhì)量[1],虛擬現(xiàn)實技術(shù)的使用,能夠提高工業(yè)生產(chǎn)的效率,縮短工藝制造時間并降低生產(chǎn)成本,從而提高企業(yè)利潤。
作為日常必需品,面粉生產(chǎn)流程較復(fù)雜、涉及設(shè)備較多,缺乏系統(tǒng)性仿真平臺。故而,文中提出了一種基于虛擬現(xiàn)實的面粉生產(chǎn)工藝流程仿真方法,基于此則研究了仿真系統(tǒng)的設(shè)計與實現(xiàn)。通過將虛擬現(xiàn)實技術(shù)與系統(tǒng)仿真技術(shù)相結(jié)合,實現(xiàn)生產(chǎn)流程的可視化及其與用戶之間的人機(jī)交互,有效幫助生產(chǎn)設(shè)計者更深入地了解工藝流程[2],同時還可以輔助培訓(xùn)人員學(xué)習(xí)相關(guān)設(shè)備和工藝知識[3]。工藝流程仿真系統(tǒng)為企業(yè)的生產(chǎn)工藝研究、人員培訓(xùn)等提供有效的決策支持,從而更好地保證了生產(chǎn)作業(yè)的安全性和可行性,大幅度降低了員工的訓(xùn)練成本。
1?系統(tǒng)設(shè)計與開發(fā)
1.1?系統(tǒng)設(shè)計
面粉生產(chǎn)工藝流程仿真系統(tǒng)以虛擬現(xiàn)實技術(shù)和仿真技術(shù)為基礎(chǔ),系統(tǒng)結(jié)構(gòu)設(shè)計上要兼顧環(huán)境仿真、虛擬設(shè)備交互、工藝知識學(xué)習(xí)以及工藝流程仿真等環(huán)節(jié)。系統(tǒng)的總體結(jié)構(gòu)主要分為四大模塊,分別是:三維場景查看模塊、車間漫游模塊、工藝知識問答模塊和工藝流程仿真模塊,功能設(shè)計結(jié)構(gòu)如圖1所示。根據(jù)功能模塊建立相應(yīng)的三維場景瀏覽部分、知識問答部分和工藝流程仿真部分。
1.2?開發(fā)思路
仿真系統(tǒng)開發(fā)流程可以分為2部分,對此闡釋如下。
(1) 構(gòu)建三維場景模型。主要利用3ds Max進(jìn)行三維建模,包括車輛、廠區(qū)環(huán)境、各類生產(chǎn)設(shè)備、谷倉和管道。
(2) 生產(chǎn)場景的構(gòu)建及場景中的交互。首先用Unity3D讀取搭建完成的三維模型,構(gòu)建場景;然后根據(jù)交互設(shè)計編寫C#腳本,使用C#腳本編程把靜態(tài)的三維模型與用戶操作連接起來;最后研發(fā)設(shè)計工藝流程仿真算法,實現(xiàn)工藝流程的可視化。
1.2.1?三維場景建模
考慮到虛擬現(xiàn)實系統(tǒng)中顯示對象的真實性,要求所顯示的對象模型在形態(tài)、光照、質(zhì)感等方面都十分相似。仿真系統(tǒng)的虛擬場景建模分為幾何建模和物理建模[4]。本系統(tǒng)亦如此。對此內(nèi)容可做探討描述如下。
對象的幾何建模是描繪對象內(nèi)部固有的幾何性質(zhì)的抽象模型[5]。對象模型的組織結(jié)構(gòu)對仿真系統(tǒng)的運行質(zhì)量起著關(guān)鍵性的作用,根據(jù)虛擬場景中每個實體的幾何空間位置,以及模型間的結(jié)構(gòu)關(guān)系,確定面粉廠虛擬場景的樹形結(jié)構(gòu),如圖2所示。
仿真系統(tǒng)中虛擬場景的物理建模是利用3ds Max進(jìn)行建模和貼圖,模型完成后需保存為 FBX 文件,為 Unity3D 平臺進(jìn)一步開發(fā)做準(zhǔn)備。在保存為 FBX 文件時,需要將單位設(shè)置為“米”,并設(shè)置 Y 軸方向向上,同時勾選“嵌入媒體”選項。
1.2.2?Unity3D開發(fā)場景構(gòu)建及交互
Unity3D是由Unity Technologies 開發(fā)的多平臺綜合型虛擬現(xiàn)實開發(fā)工具,該軟件的視覺編輯特點是所見即所得,即可以根據(jù)實際需要組成一些相關(guān)的場景。該工具在物理引擎、場景特效和跨平臺開發(fā)中具有一定優(yōu)勢[6],比較適合開發(fā)虛擬環(huán)境下的仿真系統(tǒng)。
仿真系統(tǒng)需要編輯大量的模型數(shù)據(jù),所有對象(GameObject)均在Hierarchy視圖中列出,每個對象都有自身專屬的特定屬性[7]。把編寫的C#腳本綁定在對象上,驅(qū)動與虛擬設(shè)備的交互,以此完成系統(tǒng)的各功能。
2?仿真系統(tǒng)的關(guān)鍵點
面粉生產(chǎn)工藝仿真系統(tǒng)根據(jù)面粉實際生產(chǎn)中的生產(chǎn)場景和生產(chǎn)流程,模擬面粉生產(chǎn)的工藝流程,在虛擬現(xiàn)實空間中展示生產(chǎn)場景,利用知識問答功能更好地滿足人員培訓(xùn)需要。因此仿真系統(tǒng)包括工藝流程仿真、三維場景瀏覽和知識問答等3個關(guān)鍵點。
根據(jù)各設(shè)備中物料的類別和運轉(zhuǎn)時間占比,采用工藝流程仿真方法模擬面粉生產(chǎn)工藝流程;根據(jù)三維空間中相機(jī)和虛擬人物的關(guān)系,通過視角旋轉(zhuǎn)方法使人物進(jìn)行三維場景瀏覽;設(shè)計知識問答方法實現(xiàn)基于虛擬現(xiàn)實的知識問答。對此本文將展開研究論述如下。
2.1?工藝流程仿真方法
工藝流程仿真方法包括谷物粒子仿真和隨著時間變化的流程仿真。研究設(shè)計過程可詳述如下。
2.1.1?谷物粒子仿真
谷物粒子仿真主要分為生成新谷物粒子,谷物粒子運動模擬以及粒子繪制等3個步驟。為此,擬做研發(fā)表述如下。
某時刻t0,谷物粒子在虛擬現(xiàn)實世界三維坐標(biāo)系的某點產(chǎn)生,根據(jù)谷物形狀特征,文章采用橢圓球近似谷物粒子。設(shè)谷物粒子在x、y、z軸的半徑分別為a、b和c,則谷物粒子的形狀可以表示為:
設(shè)初速度為V、初始方向為D,x軸方向的初速度為vx,y軸方向的初速度為vy,z軸方向的初速度為vz,運動類型為T,粒子淡化系數(shù)為A,粒子運行的最大高度為H,垂直加速度為g。
隨時間增加,粒子在y軸上的分量逐漸減小,存在時刻tx,當(dāng)ti
t0時刻,當(dāng)A=1時,谷物粒子完全不透明,隨著時間的增加顏色逐漸變淺,直至A=0時粒子完全透明。
2.1.2?流程仿真
工藝流程仿真系統(tǒng)的相機(jī)旋轉(zhuǎn)均繞y軸方向的左右旋轉(zhuǎn),旋轉(zhuǎn)矩陣如公式(8)所示:
2.2?視角旋轉(zhuǎn)方法
處于虛擬世界三維坐標(biāo)系(X,Y,Z)中O點的物體或人物旋轉(zhuǎn)時,相機(jī)M應(yīng)滿足同步旋轉(zhuǎn)的條件,當(dāng)相機(jī)旋轉(zhuǎn)時應(yīng)以物體或人物為中心,即向量MO繞O旋轉(zhuǎn)。
假設(shè)交互設(shè)備P(如鼠標(biāo)、鍵盤等)每次觸發(fā)時所處位置為投影平面直角坐標(biāo)系x1,y1,其原點O10,0,每次拖動P在x1和y1軸方向移動的系統(tǒng)時間分別記為tx和ty,速度標(biāo)識為v。則P在x1、y1軸方向上的移動分量分別為xm=vtx和ym=vty。
P在x1軸方向的移動控制虛擬現(xiàn)實世界中的相機(jī)M在水平方向上的左右旋轉(zhuǎn)。相機(jī)M繞O旋轉(zhuǎn)度數(shù)θ1=xm×360°,旋轉(zhuǎn)軸與y軸平行,根據(jù)定點旋轉(zhuǎn)的歐拉變換[10],相機(jī)M在水平方向上的旋轉(zhuǎn)矩陣Rx(θ1)即如上文式(8)所示。
P在y1軸方向的移動控制虛擬現(xiàn)實世界中的相機(jī)M在垂直方向上的上下旋轉(zhuǎn)。相機(jī)旋轉(zhuǎn)的度數(shù)為θ2=ym×360°,與水平方向的旋轉(zhuǎn)不同,垂直方向的旋轉(zhuǎn)軸需根據(jù)向量內(nèi)積的性質(zhì)求得。設(shè)向量MO=x0,y0,z0,其中y0=0,旋轉(zhuǎn)軸l→=(lx,ly,lz)。
因為l→過點O且垂直于y軸,則ly=y0。令lz=1,由此求得旋轉(zhuǎn)軸l→=(-z0/x0,y0,1)。則相機(jī)M在垂直方向上的旋轉(zhuǎn)矩陣Ry(θ2)可表示為:
2.3?知識問答方法
綜上分析后,文章又給出一種基于虛擬現(xiàn)實的知識問答方法。首先,對工藝知識題庫做預(yù)處理[11],將處理后的題庫儲存在工程對象數(shù)據(jù)庫中。給每道題添加3種作答狀態(tài):回答正確、回答錯誤或沒有作答,分別用T、F和N表示。根據(jù)題目對應(yīng)的設(shè)備不同把題目進(jìn)行分類,即每個設(shè)備代表一個類別的題目,類別用CN表示,其中N∈Z+。類別CN所包含的每道題目的標(biāo)號為CNxm,其中xm∈(1,2,…,n),例如C2x3即表示第2類設(shè)備第3道題。
設(shè)CNM表示類別CN中隨機(jī)抽取的題目數(shù)量,鏈表CNF存儲類別CN中已經(jīng)作答過的題目標(biāo)號,CNS表示類別CN已經(jīng)作答的題目數(shù)量。MAX表示問卷題目總數(shù),S表示所得成績,SUM表示已答題目數(shù)量。研究最終得到的基于虛擬現(xiàn)實的知識問答算法步驟可分述如下。
Step1?初始化:S=0,SUM=0,CNM=0。
Step2?判斷題目類型Cn,若該類型滿足CnS=CnM,則需漫游至其它設(shè)備。否則隨機(jī)分配數(shù)量CnM(CnM≤MAX)。
Step3?從Cn類題庫中隨機(jī)抽取一道題Cnxm,遍歷CNF,判斷是否已經(jīng)作答,若已經(jīng)作答則重新抽取。
Step4?判斷題目Cnxm的作答狀態(tài),若為T,則S=S+1;若為F,則S=S;若為N,則繼續(xù)作答本題。
Step5?重復(fù)Step3、Step4,若CnS=CnM,提示該類別題目答題結(jié)束。
Step6?重復(fù)Step2~Step5,直至∑CnM=MAX。
[ST4”HZ][WT4”HZ]3?仿真系統(tǒng)的實現(xiàn)
由前文討論可知,仿真系統(tǒng)包括三維場景瀏覽、知識問答和工藝流程仿真等3部分,三者之間相互聯(lián)系組成有機(jī)整體。在Unity3D中,使用NGUI設(shè)計系統(tǒng)界面,包括系統(tǒng)導(dǎo)航欄(內(nèi)嵌二級菜單)、系統(tǒng)操作提示、知識問答界面以及工藝流程仿真交互等,系統(tǒng)界面如圖3所示。點擊左側(cè)導(dǎo)航可在場景瀏覽、面粉工藝知識問答、工藝流程仿真等功能中來回切換?;诖?,對每一部分的功能設(shè)計可分別解析闡述如下。
三維場景瀏覽部分實現(xiàn)了三維場景查看模塊和車間漫游模塊的功能,兩功能模塊交互方式相同,采用基于歐拉角變換的視角旋轉(zhuǎn)方法,通過長按右鍵并拖動鼠標(biāo),使虛擬世界中對應(yīng)物體在三維坐標(biāo)系中旋轉(zhuǎn),控制視角范圍,多次實驗取速度標(biāo)識v=0.3。
在知識問答部分中,使用基于虛擬現(xiàn)實的知識問答算法,隨機(jī)從題庫中抽取題目組成一套問卷。每套問卷包含多個設(shè)備的考點,每個設(shè)備的題目數(shù)量隨機(jī)。在三維場景瀏覽系統(tǒng)中漫游至某臺設(shè)備,可觸發(fā)該設(shè)備的相關(guān)問答題目,該設(shè)備隨機(jī)題目回答完畢后,漫游至其它設(shè)備可繼續(xù)答題。通過Unity引擎使虛擬現(xiàn)實交互和題目數(shù)據(jù)庫建立連接,最后實現(xiàn)知識問答功能如圖4所示。
工藝流程仿真部分的功能以動畫的方式予以呈現(xiàn)。根據(jù)面粉實際生產(chǎn)中,各設(shè)備加工物料需運轉(zhuǎn)的時間占比,采用工藝流程仿真方法,使相機(jī)通過平移和旋轉(zhuǎn)隨著流程移動,把谷物粒子仿真和流程仿真有機(jī)地結(jié)合在一起。用不同顏色的滾動箭頭標(biāo)識不同物料的運行軌跡,并在儲存設(shè)備中顯示粒子仿真特效。期間經(jīng)過主要設(shè)備時,該設(shè)備就會閃爍并顯示設(shè)備結(jié)構(gòu)和工作原理,實際視像效果如圖3所示??梢越换崿F(xiàn)流程的暫停和繼續(xù)顯示。
谷物粒子的色彩渲染和紋理圖案的映射是使用Unity引擎完成的,通過該引擎設(shè)置粒子系統(tǒng)的Renderer、Material等屬性,并通過實驗確定初速度、方向、最大高度和粒子淡化系數(shù)等函數(shù)的取值,參數(shù)設(shè)置見表1,谷物粒子傾瀉入倉庫的仿真結(jié)果如圖5所示。
利用Unity引擎,通過實驗為T[N+1]、VC[N][2]、CM[N][2]和CS[N][2]設(shè)置合適的參數(shù)值,完成工藝流程的仿真。整個工藝流程仿真系統(tǒng)即如圖6所示。
4?結(jié)束語
基于虛擬現(xiàn)實的面粉生產(chǎn)工藝仿真系統(tǒng),通過將虛擬現(xiàn)實技術(shù)和仿真相結(jié)合,利用Unity3D研究設(shè)計了三維場景瀏覽部分、知識問答部分和工藝流程仿真部分,各部分之間可以自由交換信息。而且,基于虛擬現(xiàn)實的知識問答方法的成功研發(fā),使該系統(tǒng)能更好地應(yīng)用于員工培訓(xùn)。其中的工藝流程仿真方法結(jié)合谷物粒子仿真和工藝流程仿真,配合關(guān)鍵設(shè)備詳解和三維場景瀏覽,實現(xiàn)了面粉生產(chǎn)工藝流程及其生產(chǎn)設(shè)備的仿真和展示。同時,仿真系統(tǒng)具有良好的跨平臺性和擴(kuò)展性。但文章所涉及的內(nèi)容僅對工業(yè)虛擬場景的構(gòu)建、人機(jī)交互和工藝流程仿真進(jìn)行了初步討論,虛擬現(xiàn)實技術(shù)在工業(yè)中還有著巨大的應(yīng)用潛力。
參考文獻(xiàn)
[1]楊茜. 虛擬現(xiàn)實技術(shù)在工業(yè)設(shè)計中的應(yīng)用現(xiàn)狀與發(fā)展趨勢[J]. 中國高新技術(shù)企業(yè), 2015(16):48-49.
[2]?朱玉韜. 流程工業(yè)信息可視化平臺理論與應(yīng)用研究[D]. 杭州:浙江大學(xué), 2008.
[3]?陳曉青, 王少偉. 基于Unity的虛擬現(xiàn)實技術(shù)在教育中的應(yīng)用[J]. 軟件導(dǎo)刊(教育技術(shù)), 2011(12):76-78.
[4]?趙銘超. 虛擬現(xiàn)實中三維建模技術(shù)的研究與應(yīng)用[D]. 天津:天津師范大學(xué), 2011.
[5]?宋沫飛. 交互式數(shù)字幾何建模及其關(guān)鍵技術(shù)研究[D]. 南京:南京大學(xué), 2015.
[6]?修春華, 孫秀娟, 苗坡,等. 基于Unity3 D的虛擬礦山漫游仿真系統(tǒng)設(shè)計與實現(xiàn)[J]. 金屬礦山, 2015, 44(4):262-266.
[7]?張典華, 陳一民. 基于Unity3D的多平臺虛擬校園設(shè)計與實現(xiàn)[J]. 計算機(jī)技術(shù)與發(fā)展, 2014,24(2):127-130,135.
[8]?潘秋羽, 畢碩本, 陸良虎,等. 基于粒子系統(tǒng)三維動態(tài)云的快速仿真算法[J]. 系統(tǒng)仿真學(xué)報, 2014, 26(1):85-89,106.
[9]?吳仲明, 田聯(lián)房, 李彬,等. 基于體可視化的計算機(jī)輔助輪廓測量系統(tǒng)設(shè)計[J]. 計算機(jī)應(yīng)用與軟件, 2016, 33(4):146-150.
[10]蘇召斌, 林森. 絞刀運動姿態(tài)的歐拉角表示[J]. 中國港灣建設(shè), 2017, 37(12):62-66.
[11]楊玉芬, 李明明, 高曉旸. 對象管理在面向?qū)ο髷?shù)據(jù)庫中的應(yīng)用研究[J]. 吉林大學(xué)學(xué)報(信息科學(xué)版), 2015, 31(5):548-553.