劉慶濤,趙 權(quán),文國(guó)軍,王玉丹,桑明琪
1(中國(guó)地質(zhì)大學(xué)(武漢) 機(jī)械與電子信息學(xué)院,武漢 430074)
2(湖北省智能地質(zhì)裝備工程技術(shù)研究中心,武漢 430074)
以交互性好、逼真度高、沉浸感強(qiáng)為特征,同時(shí)引入具有人工智能的虛擬現(xiàn)實(shí)技術(shù),已逐步應(yīng)用于農(nóng)機(jī)裝備、地質(zhì)裝備虛擬實(shí)訓(xùn)等領(lǐng)域[1-3].隨著資源開(kāi)采向地球深部進(jìn)軍,地質(zhì)鉆探過(guò)程復(fù)雜性提高,對(duì)地質(zhì)鉆探裝備的性能及操作人員的業(yè)務(wù)水平要求越來(lái)越高[4].操作人員通過(guò)對(duì)巖心鉆機(jī)的拆裝實(shí)訓(xùn),能夠?qū)ζ洚a(chǎn)生感性認(rèn)識(shí),有利于掌握巖心鉆機(jī)的結(jié)構(gòu)原理、裝配工藝等知識(shí),從而提高實(shí)際操作和維修保養(yǎng)能力.
巖心鉆探工程實(shí)踐教學(xué)中普遍存在高成本、高風(fēng)險(xiǎn)、不能及、周期長(zhǎng)等困難,許多高校建立了虛擬仿真實(shí)驗(yàn)教學(xué)平臺(tái),并取得了不錯(cuò)的教學(xué)效果[5].但目前這些平臺(tái)多集中在真實(shí)場(chǎng)景模擬及鉆探工藝上,而缺少裝備本體結(jié)構(gòu)的虛擬仿真教學(xué).
虛擬現(xiàn)實(shí)技術(shù)早已應(yīng)用于各種零部件及整機(jī)拆裝上,如減速器[6]、發(fā)動(dòng)機(jī)[7]、鄂式破碎機(jī)[8]等,但主要交互手段主要還是通過(guò)鼠標(biāo)、手柄等,交互性上還有待提高.zSpace 作為近年來(lái)新興的虛擬現(xiàn)實(shí)教學(xué)設(shè)備,以其良好的交互性、增強(qiáng)現(xiàn)實(shí)觀察模式等特點(diǎn),迅速在醫(yī)學(xué)手術(shù)[9]、地理教學(xué)[10]、機(jī)床仿真[11,12]等領(lǐng)域上得到應(yīng)用.
鑒于此,本文以巖心鉆機(jī)為對(duì)象,結(jié)合zSpace、Unity3D 軟硬件平臺(tái),開(kāi)發(fā)一套巖心鉆機(jī)虛擬拆裝實(shí)訓(xùn)系統(tǒng),以六自由度觸控筆為主要交互工具,實(shí)現(xiàn)巖心鉆機(jī)主要部件及整機(jī)的拆裝及相關(guān)理論知識(shí)學(xué)習(xí),以提高地質(zhì)鉆探實(shí)踐教學(xué)的效果.
zSpace 是一款整合現(xiàn)實(shí)世界工作環(huán)境的桌面虛擬現(xiàn)實(shí)平臺(tái),可以通過(guò)虛擬現(xiàn)實(shí)環(huán)境改變?nèi)藗兲剿鳌⒀芯亢驮O(shè)計(jì)事物的方式,加深數(shù)字化學(xué)習(xí)體驗(yàn)深度.圖1描述了zSpace 硬件及3 個(gè)坐標(biāo)系之間的空間關(guān)系,硬件系統(tǒng)主要包括3D 顯示器、3D 追蹤眼鏡和觸控筆,其主要特點(diǎn)有:(1)高保真的立體效果,圖像可以隨著眼鏡在跟蹤區(qū)域內(nèi)的位置變化而自動(dòng)調(diào)節(jié);(2)在立體三維空間與物體進(jìn)行360°旋轉(zhuǎn)移動(dòng)等交互操作;(3)增強(qiáng)現(xiàn)實(shí)顯示效果,通過(guò)zView 軟件,虛擬畫(huà)面“掙脫”屏幕,融入現(xiàn)實(shí)環(huán)境之中.

圖1 zSpace 硬件系統(tǒng)與空間坐標(biāo)
zSpace 利用3D 眼鏡產(chǎn)生視差來(lái)實(shí)現(xiàn)高保真的立體效果.根據(jù)視差值的不同,視差又可分為正視差、負(fù)視差和零視差.當(dāng)用戶在觀看時(shí),正視差使人產(chǎn)生物體深入屏幕的感覺(jué):負(fù)視差使人產(chǎn)生物體懸浮于屏幕外的感覺(jué):零視差是正視差和負(fù)視差的分界,物體剛好被投射到屏幕上.另外,為了準(zhǔn)確描述3D 眼鏡和觸筆的位置,zSpace 利用紅外追蹤技術(shù)判斷眼鏡和觸筆的空間位置,在顯示器上建立了一個(gè)固定坐標(biāo)系xyz,在3D眼鏡和觸筆上分別建立了運(yùn)動(dòng)坐標(biāo)系x'y'z'、x"y"z",通過(guò)坐標(biāo)變換描述運(yùn)動(dòng)坐標(biāo)系在固定坐標(biāo)系中的位姿,從而實(shí)現(xiàn)對(duì)3D 眼鏡和觸筆空間位置的描述.
隨著社會(huì)需求不同及技術(shù)進(jìn)步,我國(guó)巖心鉆機(jī)發(fā)展呈現(xiàn)出小批量、多品種的特點(diǎn).本文以國(guó)內(nèi)巖心鉆機(jī)典型產(chǎn)品XY-4 型為對(duì)象,具有普遍意義.XY-4 型巖心鉆機(jī)實(shí)物如圖2所示,是一種機(jī)械傳動(dòng)、液壓給進(jìn)、滑軌行走的立軸式巖心鉆機(jī),虛擬拆裝系統(tǒng)主要針對(duì)其機(jī)械結(jié)構(gòu)部分.該鉆機(jī)機(jī)械系統(tǒng)主要由電機(jī)、減速器、分動(dòng)箱、卷?yè)P(yáng)機(jī)、回轉(zhuǎn)器、油壓卡盤及機(jī)殼等部件組成,利用SolidWorks 軟件進(jìn)行零部件建模、裝配直至整機(jī)裝配,最終三維模型如圖3所示.

圖2 XY-4 型巖心鉆機(jī)實(shí)物圖
為提高三維模型真實(shí)感,在幾何模型基礎(chǔ)上需要進(jìn)行貼圖渲染.3DMax 具有強(qiáng)大的外觀美化功能,對(duì)鉆機(jī)模型進(jìn)行貼圖后,鉆機(jī)模型更加逼真,真實(shí)感更強(qiáng),圖4展示了鉆機(jī)渲染后的效果.
(1) 項(xiàng)目開(kāi)發(fā)流程
依托硬件平臺(tái)進(jìn)行虛擬現(xiàn)實(shí)項(xiàng)目開(kāi)發(fā),通常需要借助硬件廠商配套提供的軟件開(kāi)發(fā)包.zSpace 除硬件設(shè)備外,還為軟件開(kāi)發(fā)提供了相應(yīng)的SDK 開(kāi)發(fā)包、zCore和zView 兩個(gè)Unity3D 插件包以及幫助開(kāi)發(fā)文檔.結(jié)合Unity3D 軟件和zSpace,項(xiàng)目開(kāi)發(fā)流程如圖5所示.
本系統(tǒng)開(kāi)發(fā)以zSpace330 型一體機(jī)為硬件平臺(tái),結(jié)合Unity 3D 虛擬引擎.首先利用SolidWorks 進(jìn)行三維幾何建模,將建好的模型導(dǎo)入到3DMax 軟件中進(jìn)行渲染,并進(jìn)行格式轉(zhuǎn)換,最終導(dǎo)入到Unity3D 軟件中進(jìn)行系統(tǒng)開(kāi)發(fā).在系統(tǒng)開(kāi)發(fā)的過(guò)程中,須在zSpace 公司提供的開(kāi)發(fā)網(wǎng)站上下載并安裝好zSpace SDK,并將zSpace 提供的zCore 和zView 兩個(gè)插件包導(dǎo)入到Unity3D中,結(jié)合Unity3D 提供的開(kāi)發(fā)引擎進(jìn)行開(kāi)發(fā),最后將開(kāi)發(fā)出來(lái)的系統(tǒng)在zSpace 平臺(tái)上進(jìn)行測(cè)試.
(2) 交互及立體顯示
zSpace 打破傳統(tǒng)的交互方式,使用具有六自由度的觸筆代替了傳統(tǒng)只能在二維平面移動(dòng)的鼠標(biāo),使人機(jī)交互的方式更加自然,貼合實(shí)際.基于此,zSpace 的一大核心功能就是使用觸筆代替人手與虛擬世界的模型進(jìn)行交互,模擬人抓取并移動(dòng)物體的過(guò)程.實(shí)現(xiàn)這個(gè)功能要解決抓取時(shí)機(jī)和被抓物體移動(dòng)這兩個(gè)問(wèn)題.

圖3 巖心鉆機(jī)裝配圖

圖4 三維模型渲染效果圖

圖5 項(xiàng)目開(kāi)發(fā)流程
對(duì)于抓取時(shí)機(jī),主要通過(guò)射線與待拾取物體包圍盒碰撞檢測(cè)的方式來(lái)實(shí)現(xiàn),其中主要使用的函數(shù)是zCore插件包中提供的GetTargetPose (targetType,coordinate Space) (獲取射線發(fā)射位置、方向)和Unity3D 軟件提供的Raycast(origin,direction,hitInfo) (檢測(cè)是否碰撞).針對(duì)被抓物體移動(dòng)的問(wèn)題,要想達(dá)到“抓取”的效果,必須讓物體隨著觸筆移動(dòng)而移動(dòng)同樣使用GetTargetPose函數(shù)獲取射線發(fā)射位置和方向,再經(jīng)坐標(biāo)變換求取射線末端的位置和方向,將射線末端的位置和方向作為物體的位姿,物體就會(huì)隨著觸筆位姿的變化而變化,從而達(dá)到“抓取”的效果.另外,觸筆還內(nèi)置了按鍵、LED 和簡(jiǎn)單的力反饋設(shè)備,通過(guò)相應(yīng)的程序定義,可以提高用戶的交互感受和效率.圖6為實(shí)現(xiàn)抓取功能的算法流程圖.
增強(qiáng)現(xiàn)實(shí)技術(shù)可以讓虛擬世界與現(xiàn)實(shí)世界融合在一起,增強(qiáng)視覺(jué)效果.為提高開(kāi)發(fā)產(chǎn)品的真實(shí)感,zSpace為開(kāi)發(fā)人員提供了專門的開(kāi)發(fā)插件zView 和增強(qiáng)現(xiàn)實(shí)顯示軟件,大大降低了增強(qiáng)現(xiàn)實(shí)功能的開(kāi)發(fā)難度.增強(qiáng)現(xiàn)實(shí)視圖的實(shí)現(xiàn)依賴外接攝像頭,主要使用的函數(shù)有GetCurrentActiveConnection() (獲取當(dāng)前鏈接)、ConnectToDefaultViewer() (連接到顯示軟件)、以及SetConnectionMode() (設(shè)置連接模式).處于增強(qiáng)現(xiàn)實(shí)模式下,模型可以“掙脫”顯示屏的束縛,跑到屏幕之外和現(xiàn)實(shí)世界融為一體,便于360°觀察虛擬物體.

圖6 抓取功能算法流程圖
(1) 系統(tǒng)框架
為了使巖心鉆機(jī)虛擬拆裝系統(tǒng)更加完善,更加適合學(xué)生學(xué)習(xí)巖心鉆機(jī)的知識(shí),系統(tǒng)除了開(kāi)發(fā)拆裝模塊,還包括系統(tǒng)管理模塊和鉆機(jī)理論知識(shí)模塊,圖7為系統(tǒng)功能框架圖.
系統(tǒng)管理模塊讓系統(tǒng)結(jié)構(gòu)更加完整,使用戶對(duì)系統(tǒng)的操作更容易上手,對(duì)系統(tǒng)的框架結(jié)構(gòu)更容易掌握,有效地避免了繁瑣復(fù)雜的操作流程:鉆機(jī)理論知識(shí)模塊的設(shè)置解決單方面對(duì)鉆機(jī)進(jìn)行拆裝而對(duì)鉆機(jī)基礎(chǔ)知識(shí)掌握不足的問(wèn)題.拆裝模塊是系統(tǒng)的核心模塊,在該模塊中設(shè)置了5 個(gè)拆裝對(duì)象,分別是鉆機(jī)整體、分動(dòng)箱、卷?yè)P(yáng)機(jī)、減速器以及回轉(zhuǎn)器,這樣的設(shè)置能夠讓用戶從整體到局部對(duì)鉆機(jī)結(jié)構(gòu)進(jìn)行認(rèn)知.系統(tǒng)管理模塊、鉆機(jī)理論知識(shí)模塊和拆裝模塊,這3 個(gè)模塊有機(jī)結(jié)合成一體,使得系統(tǒng)更加完整.

圖7 系統(tǒng)功能模塊圖
(2) 功能實(shí)現(xiàn)
為了使拆裝系統(tǒng)具備良好的交互性,增強(qiáng)用戶的拆裝體驗(yàn)感,系統(tǒng)除了在zSpace 基礎(chǔ)上開(kāi)發(fā)了拆裝功能和增強(qiáng)現(xiàn)實(shí)外,還開(kāi)發(fā)了縮放模型、爆炸動(dòng)畫(huà)、重置模型、切換模型等幾種功能.圖8展示了系統(tǒng)交互功能框架.

圖8 系統(tǒng)功能框架圖
在拆卸裝配體之后,由于顯示器屏幕空間有限,對(duì)各個(gè)零部件進(jìn)行觀察學(xué)習(xí)時(shí)可能會(huì)遇到零件尺寸太小不便于觀察的問(wèn)題,所以在系統(tǒng)中設(shè)計(jì)了模型縮放的功能,通過(guò)該改變模型的Scale 屬性實(shí)現(xiàn)這個(gè)功能.當(dāng)需要對(duì)模型進(jìn)行縮放時(shí),讓觸筆發(fā)出的射線與模型發(fā)生碰撞,按下觸筆上的一個(gè)按鍵,拖動(dòng)觸筆即可完成縮放.
爆炸動(dòng)畫(huà)是了解鉆機(jī)結(jié)構(gòu)的另一手段.系統(tǒng)使用Unity3D 的動(dòng)畫(huà)系統(tǒng)制作了鉆機(jī)及其重要零部件的爆炸動(dòng)畫(huà),對(duì)要制作動(dòng)畫(huà)的模型的每一個(gè)零部件設(shè)置預(yù)定動(dòng)作,使用動(dòng)畫(huà)狀態(tài)機(jī)設(shè)置動(dòng)畫(huà)邏輯,在程序中使用anima.SetBool(“anima_name”,true)對(duì)動(dòng)畫(huà)進(jìn)行播放控制,從而實(shí)現(xiàn)模型爆炸的效果.重置模型可以將拆亂的模型恢復(fù)成原始摸樣,切換模型可以讓學(xué)生對(duì)多種模型進(jìn)行拆裝.
這些功能之間相互配合,使得用戶在拆裝系統(tǒng)上的操作更加自然,激發(fā)學(xué)生學(xué)習(xí)興趣,達(dá)到“以?shī)蚀俳獭钡男Ч?
在虛擬拆裝系統(tǒng)中的UI 設(shè)計(jì),主要包括界面、字體、色彩等視覺(jué)設(shè)計(jì)以及按鈕、文本框等UI 控件設(shè)計(jì),這些可視化方面的設(shè)計(jì)與改良創(chuàng)造了用戶與虛擬環(huán)境間良好的交互媒介,使用戶進(jìn)入虛擬世界進(jìn)行輸入操作以及得到反饋的過(guò)程更加流暢與自然,從而實(shí)現(xiàn)了一套完整而連續(xù)的交互系統(tǒng).圖9~圖11為界面及功能的效果圖.

圖9 學(xué)習(xí)模塊選擇界面

圖10 拆裝界面及拆裝效果圖

圖11 增強(qiáng)現(xiàn)實(shí)模式
熟練掌握巖心鉆機(jī)結(jié)構(gòu)及相關(guān)理論知識(shí),對(duì)提高地質(zhì)鉆探人員業(yè)務(wù)水平具有重要意義.通過(guò)對(duì)巖心鉆機(jī)虛擬實(shí)訓(xùn)需求分析,開(kāi)發(fā)了一套包含虛擬拆裝和理論知識(shí)介紹的虛擬實(shí)訓(xùn)系統(tǒng).系統(tǒng)采用Solidworks 軟件建立鉆機(jī)模型后,聯(lián)合Unity3D 和zSpace 軟硬件平臺(tái),以觸控筆為主要交互工具實(shí)現(xiàn)了對(duì)巖心鉆機(jī)部件及整機(jī)進(jìn)行拆裝演示,利用zView 資源包實(shí)現(xiàn)了拆裝過(guò)程的增強(qiáng)現(xiàn)實(shí)顯示效果.本系統(tǒng)已應(yīng)用于《工程機(jī)械設(shè)計(jì)》等課程的實(shí)踐教學(xué)環(huán)節(jié),并憑借交互方式靈活、AR 顯示等優(yōu)勢(shì),激發(fā)了學(xué)習(xí)熱情,提高了虛擬實(shí)訓(xùn)的效果.本系統(tǒng)開(kāi)發(fā)所采用的方法,對(duì)工程機(jī)械等復(fù)雜裝備的虛擬拆裝也具有一定的指導(dǎo)意義.