, , ,
(西安工業(yè)大學(xué)機(jī)電工程學(xué)院,陜西 西安 710021)
機(jī)械產(chǎn)品的拆裝展示能有效提高工程人員對(duì)產(chǎn)品結(jié)構(gòu)設(shè)計(jì)和裝配設(shè)計(jì)的能力,同時(shí)能夠幫助維修人員提高維修設(shè)備的技能,也能夠幫助機(jī)械專業(yè)學(xué)生更好地理解機(jī)械原理,提高他們對(duì)機(jī)械結(jié)構(gòu)的理解。但是,目前的機(jī)械產(chǎn)品的拆裝展示僅局限于二維圖像,只能使觀看者有一種抽象的感性認(rèn)知,如果缺乏機(jī)械的基礎(chǔ)知識(shí),會(huì)讓觀看者錯(cuò)誤理解機(jī)械產(chǎn)品結(jié)構(gòu),另一方面,觀看者不能主動(dòng)調(diào)整觀看視角,只能被動(dòng)接受知識(shí),缺乏主觀能動(dòng)性,學(xué)習(xí)效果達(dá)不到預(yù)期。結(jié)合虛擬現(xiàn)實(shí)技術(shù)的機(jī)械產(chǎn)品拆裝系統(tǒng)可以很好地解決上述問題。
近幾年,虛擬現(xiàn)實(shí)技術(shù)發(fā)展迅速,在軍事、航空、教育和影視等方面發(fā)揮著重要作用。將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用機(jī)械產(chǎn)品拆裝展示,有利于產(chǎn)品的設(shè)計(jì)、裝配集成化和智能化。目前,何高奇等[1-2]利用虛擬現(xiàn)實(shí)技術(shù)進(jìn)行了能源站和電力作業(yè)交互技術(shù)的研究,使工程現(xiàn)場(chǎng)管理更加科學(xué)、方便。王靦等[3-4]利用虛擬現(xiàn)實(shí)技術(shù)設(shè)計(jì)了展示與交互的教學(xué)系統(tǒng)和特種設(shè)備教學(xué)系統(tǒng),對(duì)新的教學(xué)模式進(jìn)行了探討。郭曉明等[5]基于虛擬現(xiàn)實(shí)技術(shù)和智能手機(jī)實(shí)現(xiàn)了EAST裝置的虛擬現(xiàn)實(shí)漫游,起到設(shè)備維修功能。李為等[6-7]利用虛擬現(xiàn)實(shí)技術(shù)進(jìn)行了產(chǎn)品虛擬展示平臺(tái)的研究與開發(fā),提出了一種交互式的產(chǎn)品虛擬展示平臺(tái)。劉春芳等[8]基于OSG設(shè)計(jì)了機(jī)械產(chǎn)品虛擬拆裝展示系統(tǒng),針對(duì)采用Pro/Engineer軟件設(shè)計(jì)的產(chǎn)品數(shù)字化裝配模型,實(shí)現(xiàn)了具有真實(shí)感的虛擬拆裝。
以上介紹的系統(tǒng)都是搭載在PC機(jī)上,必須在特定的實(shí)驗(yàn)室進(jìn)行,受到空間的限制。針對(duì)此問題,提出一種基于手機(jī)終端的虛擬拆裝展示系統(tǒng),更加體現(xiàn)出智能化和便捷性,使用者只需攜帶手機(jī)和簡(jiǎn)易的手機(jī)盒子便可隨時(shí)觀看。利用Unity3D引擎,將機(jī)械產(chǎn)品拆裝進(jìn)行三維可視化,調(diào)用手機(jī)的陀螺儀傳感器對(duì)頭部運(yùn)動(dòng)進(jìn)行跟蹤,通過外部設(shè)備的輸入,使系統(tǒng)具有簡(jiǎn)潔友好的交互性能,設(shè)定雙目立體視覺,使觀看者能有良好的沉浸感,提高對(duì)機(jī)械產(chǎn)品學(xué)習(xí)的效率。
機(jī)械產(chǎn)品拆裝展示系統(tǒng)是在手機(jī)終端上運(yùn)行,設(shè)計(jì)系統(tǒng)時(shí)考慮市場(chǎng)上手機(jī)的一般性能,要求系統(tǒng)可以實(shí)現(xiàn)虛擬拆裝的沉浸感和良好的人機(jī)交互性能,且交互必須是動(dòng)態(tài)的[9-10],并在手機(jī)上流暢運(yùn)行,同時(shí),在構(gòu)建系統(tǒng)時(shí),以減少開發(fā)周期和綠色設(shè)計(jì)為原則,將系統(tǒng)組織結(jié)構(gòu)分為3個(gè)模塊:功能模塊、模型簡(jiǎn)化模塊和虛擬環(huán)境管理與渲染模塊,其系統(tǒng)結(jié)構(gòu)如圖1所示。
a.模型簡(jiǎn)化模塊。機(jī)械產(chǎn)品模型都是通過專業(yè)的三維繪圖軟件(SolidWorks,Pro/E,CATIA和UG)繪制而成,這類軟件在零件的生成過程中會(huì)生成大量的幾何頂點(diǎn),而這些特征在導(dǎo)入3DMax時(shí),會(huì)轉(zhuǎn)化成FBX格式,導(dǎo)致模型面數(shù)大量增加,在Unity3D中模型的面數(shù)多,嚴(yán)重消耗內(nèi)存,導(dǎo)致場(chǎng)景加載速度變慢,所以必須要進(jìn)行模型簡(jiǎn)化。在3DMax中可以通過貼圖、刪除模型之間的重疊面和刪除模型底部看不見的面等方法減少模型面數(shù)。
圖1 系統(tǒng)組織結(jié)構(gòu)
b.功能模塊。其是系統(tǒng)的關(guān)鍵模塊,實(shí)現(xiàn)拆裝路徑的生成,對(duì)三維模型的拆裝先后順序進(jìn)行邏輯判斷,使模型拆裝順序符合機(jī)械工藝準(zhǔn)則;調(diào)用手機(jī)陀螺傳感器,控制場(chǎng)景內(nèi)相機(jī)的位姿;根據(jù)不同的手機(jī)盒子,選取雙目立體視覺抗畸變類型;在交互外設(shè)適配及控制上,給出一種通用的適配方式,可以用類型不同的藍(lán)牙手柄進(jìn)行交互;以第一人稱視角進(jìn)行角色控制,用戶可以在模型的拆裝過程中主動(dòng)調(diào)整觀看視角,使沉浸感加強(qiáng)。
c.虛擬場(chǎng)景管理與渲染模塊。該模塊進(jìn)行場(chǎng)景的制作、場(chǎng)景渲染、場(chǎng)景管理和場(chǎng)景之間的切換。許多機(jī)械產(chǎn)品拆裝展示的場(chǎng)景都是可以通用的,對(duì)虛擬場(chǎng)景建立管理機(jī)制,在展示類型相同的機(jī)械產(chǎn)品時(shí),可以節(jié)約資源,直接調(diào)用場(chǎng)景資源以加快系統(tǒng)運(yùn)行速度。
基于Unity3D引擎進(jìn)行開發(fā),Unity3D是一款強(qiáng)大的虛擬現(xiàn)實(shí)開發(fā)引擎,具有良好的渲染能力,提供學(xué)習(xí)的源程序,可通過腳本語言實(shí)現(xiàn)功能需求,簡(jiǎn)單易學(xué),Unity3D制作的場(chǎng)景可以發(fā)布到PC,Mac,iOS和Android等平臺(tái)。結(jié)合Unity開發(fā)特點(diǎn)和系統(tǒng)模塊劃分,基于手機(jī)終端的機(jī)械產(chǎn)品拆裝展示系統(tǒng)的設(shè)計(jì)流程如圖2所示。
首先,在模型簡(jiǎn)化模塊將三維模型簡(jiǎn)化并轉(zhuǎn)化格式,然后進(jìn)入到功能模塊,逐步實(shí)現(xiàn)各設(shè)計(jì)功能,最后,在虛擬場(chǎng)景管理與渲染模塊,將做好的素材進(jìn)行統(tǒng)一管理,方便系統(tǒng)應(yīng)用于不同的機(jī)械產(chǎn)品對(duì)象。系統(tǒng)開發(fā)的具體步驟如下:
圖2 系統(tǒng)設(shè)計(jì)
a.3DMax中簡(jiǎn)化好的模型以FBX格式導(dǎo)入Hierarchy中,在Scene中構(gòu)建好場(chǎng)景并利用材質(zhì)球進(jìn)行渲染。
b.將制作好的VRcamera.Prefab導(dǎo)入Hierarchy,其包含了VR Camera Left,VR Camera Left,Main Camera和Gaze Pointer4個(gè)子物體,還有雙目立體視覺控制腳本和手機(jī)陀螺儀控制腳本,VR Camera Left和VR Camera Left攝像機(jī)實(shí)現(xiàn)雙目立體視覺,Main Camera抓捕Canvas事件,Gaze Pointer將頭部跟蹤可視化。
c.根據(jù)模型拆裝路徑規(guī)劃信息,生成產(chǎn)品拆裝路徑。
d.利用Unity自帶的UGUI制作World Space交互菜單,在Canvas上掛載System Input Manager腳本和Gaze Input Manager腳本,分別用于管理外部設(shè)備輸入信息和凝視響應(yīng)事件。在Button的On Click函數(shù)中加入拆裝邏輯判斷,使機(jī)械產(chǎn)品的拆裝順序符合機(jī)械工藝要求。
e.IntegrateInputManager.Prefab導(dǎo)入Hierarchy,用于偵聽外設(shè)狀態(tài),接收數(shù)據(jù)。
f.FirstCharacterControl.Prefab導(dǎo)入Hierarchy,控制角色自主漫游、跳躍、慣性、碰撞檢測(cè)等。
g.進(jìn)行場(chǎng)景管理和場(chǎng)景切換,保存好可重復(fù)利用的資源,提高系統(tǒng)運(yùn)行效率,最后在Unity中打包生成Apk/Ipa。
機(jī)械產(chǎn)品的拆裝先后順序必須符合工藝要求,在設(shè)置交互按鈕時(shí),每個(gè)按鈕觸發(fā)不同的拆裝路徑,并執(zhí)行相應(yīng)的動(dòng)畫。觸發(fā)的方式是凝視點(diǎn)對(duì)準(zhǔn)按鈕,使按鈕被選中,然后按下手柄按鍵,即可觸發(fā)Button點(diǎn)擊事件,執(zhí)行拆裝。如不加邏輯判斷,用戶在自主拆裝機(jī)械產(chǎn)品時(shí),拆裝的先后順序可能不會(huì)符合工藝要求,這就起不到本系統(tǒng)拆裝展示的效果,所以必須進(jìn)行拆裝邏輯判斷。
本系統(tǒng)采用讀寫配置文件的方式,在執(zhí)行拆裝動(dòng)畫之前加上邏輯判斷,按鈕的觸發(fā)事件就可按照系統(tǒng)設(shè)定好先后順序執(zhí)行,即只有第一步拆裝動(dòng)畫執(zhí)行,第二拆裝動(dòng)畫才能執(zhí)行。本系統(tǒng)是要運(yùn)行在手機(jī)終端上的,在系統(tǒng)的開發(fā)測(cè)試階段需要一種在PC機(jī)和手機(jī)上都能讀寫配置文件的路徑,Application.persistentDataPath可讀取PC機(jī)和手機(jī)上的配置文件,在PC機(jī)上查看存儲(chǔ)配置文件的地址為:C//用戶//計(jì)算機(jī)名//AppDaTa//LocalLow。拆裝邏輯判斷流程如圖3所示。
圖3 拆裝邏輯判斷
目前,市場(chǎng)上有許多類型的手機(jī)盒子,如谷歌Cardboard、聚眾創(chuàng)科技Vrbox/Vrminni、暴風(fēng)魔鏡、小宅科技和小鳥看看科技Picol Cop等,每種手機(jī)盒子鏡片畸變都不一樣,為使用戶獲得更好的沉浸感,手機(jī)屏幕輸出的圖像就需要有抗畸變效果。抗畸變是為了適用于對(duì)抗鏡片畸變、色散而必須在顯示圖像中做特殊的圖形處理和顏色處理的過程,所有畸變函數(shù)的調(diào)用必須在Open GL線程中進(jìn)行。
為滿足市場(chǎng)需要,符合綠色設(shè)計(jì)的原則,設(shè)計(jì)了適用不同手機(jī)盒子的鏡片抗畸變效果,不同的抗畸變效果如圖4所示。實(shí)現(xiàn)的原理是利用C#語言繼承、封裝的特點(diǎn),通過不同腳本之間調(diào)用,訪問json文本中g(shù)lass列表,獲取glasseskeylist,然后做出雙目視覺改變,數(shù)據(jù)訪問流程如圖5所示。
圖4 抗畸變效果
圖5 數(shù)據(jù)訪問
本系統(tǒng)具有簡(jiǎn)潔友好的人機(jī)交互性能,通過頭部跟蹤和藍(lán)牙手柄輸入,可現(xiàn)實(shí)選取World Space交互菜單的Button、控制角色移動(dòng)、對(duì)焦Canvas菜單和退出應(yīng)用功能,為用戶的沉浸感和自主學(xué)習(xí)機(jī)械產(chǎn)品提供了保障,Unity中交互框架如圖6所示。
圖6 Unity中交互框架
IntegrateInputManager.Prefab偵聽外設(shè)狀態(tài),接收數(shù)據(jù),其功能包括設(shè)備連接檢測(cè)、設(shè)備斷開檢測(cè)、系統(tǒng)藍(lán)牙開關(guān)檢測(cè)、設(shè)備按鍵按下響應(yīng)檢測(cè)、設(shè)備按鍵按下幀響應(yīng)檢測(cè)、設(shè)備按鍵抬起響應(yīng)檢測(cè)和設(shè)備按鍵長(zhǎng)按響應(yīng)檢測(cè)等,可以和Unity自帶的UI系統(tǒng)進(jìn)行數(shù)據(jù)交互。在Canvas掛載上輸入管理腳本SystemInputManager.cs,響應(yīng)手柄輸入事件,Canvas中的EventSystem加上GazeInputModule.cs,響應(yīng)頭部跟蹤凝視響應(yīng)。這種交互框架的設(shè)計(jì),系統(tǒng)設(shè)計(jì)人員可以隨意設(shè)定手柄上的按鍵功能,減少系統(tǒng)開發(fā)的工作量,也為系統(tǒng)維護(hù)提供了方便。
基于Unity強(qiáng)大的腳本引擎和可視化開發(fā)環(huán)境,將Monodevelop作為開發(fā)平臺(tái),C#作為編程語言,實(shí)現(xiàn)了各設(shè)計(jì)模塊的功能。以二級(jí)減速器作為機(jī)械產(chǎn)品拆裝對(duì)象,對(duì)該系統(tǒng)進(jìn)行分析與測(cè)試。二級(jí)減速器展示子系統(tǒng)中,按照機(jī)械工藝要求,拆卸展示設(shè)置螺栓拆卸、上箱蓋拆卸、齒輪嚙合、主動(dòng)軸拆卸和從動(dòng)軸拆卸5個(gè)拆卸路徑觸發(fā)按鈕,裝配展示設(shè)置從動(dòng)軸裝配、主軸裝配、上箱蓋裝配和螺栓裝配,通過手柄按鍵信息輸入可按順序?qū)Π粹o進(jìn)行觸發(fā)。模型簡(jiǎn)化模塊和場(chǎng)景切換模塊測(cè)試,如圖7所示。通過選擇“拆卸”、“裝配”和“返回主菜單”可以分別進(jìn)入到減速器拆卸展示、裝配展示和返回主界面場(chǎng)景,模型簡(jiǎn)化模塊將齒輪、軸等幾何頂點(diǎn)數(shù)多的零件模型簡(jiǎn)化,場(chǎng)景切換時(shí)間短,系統(tǒng)運(yùn)行流暢;圖8是功能模塊測(cè)試,通過手機(jī)旋轉(zhuǎn),可觀看到不同角度的場(chǎng)景,如圖8a所示。用手柄搖桿控制角色運(yùn)動(dòng),可以在場(chǎng)景中實(shí)現(xiàn)漫游,全方位觀察產(chǎn)品拆裝展示,如圖8b所示。將凝視點(diǎn)對(duì)準(zhǔn)菜單按鈕,按鈕處在紅色選中狀態(tài),根據(jù)拆裝邏輯判斷,按下手柄上的按鍵,即可觸發(fā)拆裝動(dòng)畫,如圖8c所示。
測(cè)試結(jié)果表明,系統(tǒng)可以在手機(jī)上流暢運(yùn)行,各模塊功能實(shí)現(xiàn)正常,滿足機(jī)械產(chǎn)品在裝配設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì)和維修培訓(xùn)時(shí)對(duì)虛擬拆裝的要求,驗(yàn)證了系統(tǒng)的可行性。
圖7 模型簡(jiǎn)化模塊和場(chǎng)景切換模塊測(cè)試
圖8 功能模塊測(cè)試
基于Unity3D的機(jī)械產(chǎn)品拆裝系統(tǒng)在手機(jī)終端的實(shí)現(xiàn),打破了傳統(tǒng)的機(jī)械產(chǎn)品拆裝展示方法,用戶可以不受時(shí)間、空間的約束隨時(shí)學(xué)習(xí)機(jī)械產(chǎn)品的專業(yè)知識(shí),具有便捷性。通過對(duì)拆裝邏輯判斷、雙目視覺抗畸變類型選取和交互外設(shè)適配及控制等問題的處理,給予用戶更佳的體驗(yàn)效果。系統(tǒng)簡(jiǎn)潔友好的人機(jī)交互功能,用戶可以自主對(duì)機(jī)械產(chǎn)品進(jìn)行拆裝,了解拆裝步驟,學(xué)習(xí)機(jī)械結(jié)構(gòu),切實(shí)為工程人員提供在裝配設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì)時(shí)的幫助,給虛擬現(xiàn)實(shí)技術(shù)應(yīng)用在機(jī)械產(chǎn)品結(jié)構(gòu)學(xué)習(xí)方面提供實(shí)例,具有一定參考價(jià)值。
[1] 何高奇,楊凱林,金袆,等.基于Unity3D的能源站交互展示技術(shù)研究[J].系統(tǒng)仿真學(xué)報(bào),2016,28(10):2626-2631.
[2] 陳奇明,羅滇生,胡強(qiáng),等.基于虛擬現(xiàn)實(shí)技術(shù)的電力作業(yè)仿真培訓(xùn)系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(11):232-236.
[3] 王靦.基于VR展示與交互的教學(xué)系統(tǒng)設(shè)計(jì)與現(xiàn)實(shí)[D].上海:上海交通大學(xué),2013.
[4] 傅招國,王天威,倪小鵬,等. 基于Virtools的虛擬現(xiàn)實(shí)技術(shù)及在特種設(shè)備教學(xué)中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2012,34(6):97-100.
[5] 郭曉明.基于VR眼鏡和智能手機(jī)的虛擬現(xiàn)實(shí)系統(tǒng)[D].西安:西安電子科技大學(xué),2015.
[6] 李為.產(chǎn)品虛擬展示平臺(tái)的研究與開發(fā)[D].北京:北京郵電大學(xué),2014.
[7] 李曉玲,陸長(zhǎng)德,李小麗.基于網(wǎng)絡(luò)的交互式虛擬展示技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(3):90-93.
[8] 劉春芳,程熙,謝利,等.基于OSG的機(jī)械產(chǎn)品拆裝展示系統(tǒng)的設(shè)計(jì)[J].信息技術(shù),2016(10):48-51.
[9] Anderson B,McGrath A.Strategies for mutability Virtual environments[C]//Virtual Worlds on the Internet. Los A lamitos,Calif:IEEE CS Press,1988:123-134 .
[10] 黃薇. Unity引擎方式下3D對(duì)戰(zhàn)型游戲的網(wǎng)絡(luò)設(shè)計(jì)與開發(fā)[J].現(xiàn)代電子技術(shù),2015,38(23):118-121.