蔡 寶,朱文華,孫張馳,顧鴻良
(上海第二工業(yè)大學(xué) 工程訓(xùn)練中心,上海 201209)
隨著計(jì)算機(jī)顯示技術(shù)的快速發(fā)展,虛擬現(xiàn)實(shí)(virtual reality,VR)技術(shù)的應(yīng)用研究愈發(fā)深入,并在高危險(xiǎn)、難實(shí)現(xiàn)、難操作、難觀察的實(shí)驗(yàn)教學(xué)和實(shí)踐教學(xué)中得到廣泛應(yīng)用,其中機(jī)械加工實(shí)訓(xùn)教學(xué)是其典型應(yīng)用之一[1-2]。國(guó)內(nèi)在機(jī)械加工虛擬仿真方面有很多科研成果,例如四開動(dòng)梁龍門式五軸聯(lián)動(dòng)高速數(shù)控雕銑機(jī)床虛擬加工仿真系統(tǒng)、虛擬車床加工過程仿真系統(tǒng)、基于VERICUT 仿真平臺(tái)的車銑復(fù)合加工中心虛擬仿真加工系統(tǒng)、數(shù)控機(jī)床機(jī)械結(jié)構(gòu)的虛擬裝配與運(yùn)動(dòng)仿真實(shí)驗(yàn)等[3-8]。然而國(guó)內(nèi)對(duì)于機(jī)械加工虛擬仿真系統(tǒng)的開發(fā)主要是實(shí)現(xiàn)機(jī)床的虛擬功能,而且虛擬現(xiàn)實(shí)的表現(xiàn)形式比較單一,系統(tǒng)的沉浸性和可交互性也有待完善。本文以銑床切削加工為例,研究開發(fā)虛擬現(xiàn)實(shí)技術(shù)的多種表現(xiàn)形式,使其具有更好的沉浸性與交互性。
在銑床切削加工虛擬現(xiàn)實(shí)仿真技術(shù)的研究中,首先應(yīng)用傳統(tǒng)的Unity3D 虛擬仿真軟件對(duì)機(jī)床加工進(jìn)行仿真開發(fā),然后分別進(jìn)行 zSpace 虛擬現(xiàn)實(shí)開發(fā)和Vuforia 增強(qiáng)現(xiàn)實(shí)開發(fā),最后基于裸眼立體的畫面跨屏顯示是建立在zSpace 虛擬現(xiàn)實(shí)開發(fā)基礎(chǔ)之上進(jìn)行。
基于zSpace 的虛擬現(xiàn)實(shí)系統(tǒng)是在Unity3D 軟件基礎(chǔ)之上建立的。zSpace 提供zCore 開發(fā)包,將開發(fā)包導(dǎo)入 Unity3D 中便可進(jìn)行后續(xù)開發(fā)。開發(fā)過程包含 3個(gè)核心步驟:模型準(zhǔn)備、交互方式開發(fā)和碰撞檢測(cè)。
三維模型的準(zhǔn)備包含幾何建模、物理建模和行為建模3 部分。
(1)幾何建模。使用SolidWorks 建模軟件建立幾何形狀,如圖1 所示。建模時(shí)應(yīng)將機(jī)床運(yùn)動(dòng)部件與靜止部件分開,以便后續(xù)添加運(yùn)動(dòng)指令。
圖1 銑床三維模型
(2)物理建模。在立體 Maxs 和 Photoshop 軟件中對(duì)幾何模型進(jìn)行貼圖和渲染。為了使模型更逼真,將相機(jī)拍下的實(shí)際銑床表面圖案導(dǎo)入 Photoshop 中,進(jìn)行校正處理后作為素材。在Maya 中進(jìn)行貼圖操作,銑床操作面板貼圖前后的效果比較如圖2 所示。
圖2 貼圖前后效果對(duì)比
(3)運(yùn)動(dòng)建模。在Maya 中描述虛擬模型動(dòng)作與行為邏輯,包括銑床基本運(yùn)動(dòng)和切削加工過程。由于該內(nèi)容單一,本文未列出。
zSpace 虛擬現(xiàn)實(shí)是整合現(xiàn)實(shí)工作環(huán)境的桌面式虛擬現(xiàn)實(shí)系統(tǒng)[9-10],它具有高保真的立體顯示系統(tǒng)和低延遲的跟蹤系統(tǒng)。
zSpace 虛擬現(xiàn)實(shí)使用的是Unity3D 開發(fā)引擎。傳統(tǒng)的人機(jī)交互操作大多是通過鼠標(biāo)和鍵盤手柄完成,而zSpace 提供了6 自由度的交互筆,故在開發(fā)虛擬銑床切削加工VR 系統(tǒng)時(shí),將UI 交互改為三維模型直接交互的方式,使其交互性能更為自然。
使用Unity3D 中的LineRender 創(chuàng)建一個(gè)可調(diào)整寬度、長(zhǎng)度的光線來指引現(xiàn)實(shí)中的交互筆在虛擬世界中的方向。當(dāng)交互筆與虛擬模型碰撞時(shí),筆尖會(huì)自適應(yīng)地依附在虛擬模型表面,提示用戶當(dāng)前可以進(jìn)行交互,其關(guān)鍵程序如下:
虛擬銑床切削過程必須符合實(shí)際銑床切削加工的邏輯順序。首先對(duì)實(shí)際切削數(shù)據(jù)進(jìn)行采集,包括銑床切削用量和運(yùn)動(dòng)參數(shù)等,然后在虛擬切削的程序中增加邏輯判斷與碰撞檢測(cè)功能,從而使得整個(gè)切削過程既具有邏輯控制性,也符合實(shí)際的工藝要求。
Unity3D 中的碰撞檢測(cè)是使虛擬銑床切削過程符合邏輯的關(guān)鍵環(huán)節(jié),其功能不僅是防止虛擬銑床刀具在切削過程中運(yùn)動(dòng)部件超出形成范圍,避免由操作失誤導(dǎo)致的部件間的碰撞,還要作為觸發(fā)器,觸發(fā)連帶的切削動(dòng)作。
碰撞檢測(cè)分為兩種:一種是切削加工碰撞檢測(cè),即如果工件與刀具發(fā)生碰撞,表示正在進(jìn)行切削,反之表示未進(jìn)行切削;另一種是機(jī)床運(yùn)動(dòng)部件碰撞檢測(cè),即如果部件間發(fā)生碰撞,則表示其運(yùn)動(dòng)越界或者超出規(guī)定行程,須停止運(yùn)動(dòng),否則可繼續(xù)運(yùn)動(dòng)。
開發(fā)虛擬銑床切削加工的跨屏顯示技術(shù),其目的是更好地顯示內(nèi)容和進(jìn)行信息的傳遞,而zSpace 虛擬現(xiàn)實(shí)顯示的立體畫面,跨屏幕展示的也為立體畫面,zSpace 虛擬現(xiàn)實(shí)屏幕為 26 英寸,立體顯示器屏幕為70 英寸,可適用于一般的教學(xué)、展覽等多人互動(dòng)場(chǎng)景。為了達(dá)到zSpace 立體畫面屏幕的分享功能,將zSpace虛擬現(xiàn)實(shí)與裸眼立體顯示設(shè)備相結(jié)合,在zSpace 虛擬現(xiàn)實(shí)的基礎(chǔ)上進(jìn)行開發(fā),具體實(shí)現(xiàn)步驟如下:
(1)創(chuàng)建虛擬跨屏相機(jī)。在Unity3D 軟件中創(chuàng)建一個(gè)跨屏幕照相機(jī),并設(shè)置相關(guān)參數(shù)。參數(shù)包括聚焦位置、相機(jī)小孔、聚焦尺寸、物體聚焦,相機(jī)的方位、角度和投影矩陣。
(2)設(shè)置渲染紋理,用于接收Unity3D 畫面。在Unity3D 軟件的場(chǎng)景中創(chuàng)建 RenderTexture 型渲染紋理,此渲染紋理實(shí)現(xiàn)DLL 渲染;設(shè)置3 種紋理渲染格式,包括s3d(彩色+深度)格式、sbs(左右格式或者上下格式)、null 其他格式。設(shè)置渲染紋理分辨率為1920×1080 像素,關(guān)鍵代碼如下:
(3)綁定zCore 中的相機(jī)。將創(chuàng)建的虛擬相機(jī)綁定于zSpace 中的任意一立體相機(jī),即可進(jìn)行深度方向的渲染。
(4)設(shè)置相機(jī)參數(shù),形成立體畫面。調(diào)整相機(jī)的位置等相關(guān)參數(shù),使裸眼立體顯示器中的畫面有較好的立體感。裸眼顯示屏幕設(shè)置為每25 ms 刷新一次,使畫面?zhèn)鬏斄鲿场?/p>
如圖 3 所示是按照上述步驟實(shí)現(xiàn)的裸眼立體+虛擬現(xiàn)實(shí)銑床加工系統(tǒng)跨屏幕顯示畫面,圖中左下為zSpace 虛擬現(xiàn)實(shí)立體畫面,右上為裸眼立體跨屏顯示畫面。由于裸眼立體屏幕較大(70 英寸),可以實(shí)現(xiàn)立體畫面屏幕的分享。
圖3 裸眼立體+虛擬現(xiàn)實(shí)跨屏顯示畫面
增強(qiáng)現(xiàn)實(shí)(augmented reality,AR)是近年來發(fā)展迅速的虛擬現(xiàn)實(shí)技術(shù),其沉浸感主要來源于虛擬場(chǎng)景與現(xiàn)實(shí)場(chǎng)景的融合。增強(qiáng)現(xiàn)實(shí)的交互性是指現(xiàn)實(shí)世界的特征物體與虛擬世界的場(chǎng)景之間的交互,它可拓展人們對(duì)現(xiàn)實(shí)世界的認(rèn)知[11]。增強(qiáng)現(xiàn)實(shí)利用移動(dòng)設(shè)備的攝像頭采集真實(shí)環(huán)境信息,并將本地或網(wǎng)絡(luò)上的虛擬信息通過特殊處理后疊加顯示,實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)的效果[12]。
銑床加工AR 系統(tǒng)是在Unity3D 虛擬仿真的基礎(chǔ)上開發(fā)的,Vuforia 可作為插件導(dǎo)入后直接進(jìn)行使用,其開發(fā)關(guān)鍵是特征圖的識(shí)別。
特征圖的識(shí)別準(zhǔn)確與否直接關(guān)系到最終顯示效果。識(shí)別圖一般為彩色圖,黑白二值圖不利于照相機(jī)進(jìn)行圖的特征識(shí)別。通常會(huì)設(shè)置識(shí)別閥值,照相機(jī)在識(shí)別特征圖時(shí)會(huì)產(chǎn)生一個(gè)實(shí)際值,當(dāng)實(shí)際值大于閥值時(shí)才會(huì)識(shí)別,否則識(shí)別失敗。當(dāng)照相機(jī)遠(yuǎn)離特征圖時(shí),該實(shí)際值會(huì)變小,識(shí)別率變低;當(dāng)照相機(jī)靠近特征圖時(shí),該實(shí)際值會(huì)變大,識(shí)別率變高。
為了能方便、有效地進(jìn)行虛擬銑床AR 演示和學(xué)習(xí),開發(fā)了基于移動(dòng)端(通常為安卓操作系統(tǒng))的虛擬銑床增強(qiáng)現(xiàn)實(shí)APP。按照?qǐng)D4 所示銑床加工AR 系統(tǒng)的操作流程,需先通過掃描二維碼下載APP 打包文件和特征圖,文件格式為 apk;APP 安裝完成后即可進(jìn)行特征圖的識(shí)別,識(shí)別不同的特征圖即可顯示不同的內(nèi)容。顯示的內(nèi)容主要包括銑床的基本結(jié)構(gòu)、工作原理、切削加工3 部分。APP 不需借助其他設(shè)備,僅利用手機(jī)或者平板電腦即可進(jìn)行操作學(xué)習(xí)。實(shí)踐教學(xué)表明:融入虛擬銑床APP 的虛實(shí)結(jié)合的工程實(shí)踐課程能夠加深學(xué)生對(duì)銑削加工的理解和認(rèn)識(shí)。
圖4 移動(dòng)端AR 操作流程
本文以銑床加工為例探究了機(jī)械加工的虛擬仿真實(shí)踐教學(xué)方法,將裸眼立體顯示技術(shù)與zSpace 虛擬現(xiàn)實(shí)開發(fā)相結(jié)合進(jìn)行跨屏顯示,初步形成虛實(shí)結(jié)合的教學(xué)體系。作為本研究的后續(xù)研究,將以單體設(shè)備的虛擬仿真為基礎(chǔ),開發(fā)制造系統(tǒng)的虛擬化實(shí)踐教學(xué)平臺(tái),特別要研究智能制造系統(tǒng)與虛擬現(xiàn)實(shí)技術(shù)的融合以及制造系統(tǒng)虛擬化的一般方法。