劉瑩徽 薛涵 謝澤龍
摘 ?要:針對(duì)傳統(tǒng)的船舶輔機(jī)拆裝技術(shù)培訓(xùn),采用真實(shí)設(shè)備,周期長,設(shè)備老舊且易損耗等問題,老師一人講課,學(xué)生多人聽課等等不足,從而開發(fā)出基于虛擬現(xiàn)實(shí)的船舶輔機(jī)拆裝移動(dòng)端應(yīng)用。該應(yīng)用借助3dsMax進(jìn)行船舶輔機(jī)設(shè)備模型制作,并通過Unity3D引擎實(shí)現(xiàn)單人單機(jī)自主完成船舶輔機(jī)拆裝過程,在Android平臺(tái)發(fā)布應(yīng)用。該應(yīng)用有效解決了現(xiàn)實(shí)拆裝中場地限制,費(fèi)時(shí)費(fèi)力等問題。使船舶輔機(jī)拆裝教學(xué)可隨時(shí)在手機(jī)端進(jìn)行,降低教學(xué)成本。經(jīng)過調(diào)查研究,學(xué)生反應(yīng)良好,該應(yīng)用能平穩(wěn)運(yùn)行。
關(guān)鍵詞:虛擬現(xiàn)實(shí);船舶輔機(jī)設(shè)備;單人自主拆裝;移動(dòng)端
中圖分類號(hào):U676.2 ? ? ? ?文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2019)13-0034-04
Abstract: In view of the traditional ship auxiliary equipment disassembly and assembly technology training, is the use of real equipment, long cycle, old equipment easy to wear and tear, and other problems, teachers give lectures, students attend classes and so on, and so on. Therefore, the application of ship auxiliary machine disassembly and assembly mobile terminal based on virtual reality is developed. With the help of 3dsMax, the model of ship auxiliary equipment is made, and the process of disassembly and assembly of ship auxiliary equipment is completed independently by single machine through Unity3D engine, which is published and applied in Android platform. The application effectively solves the problems of site limitation, time-consuming and laborious in real disassembly and assembly. The teaching of ship auxiliary equipment disassembly and assembly can be carried out at any time on the mobile phone, and the teaching cost can be reduced. After investigation and research, the students' response is good, and the application can run smoothly.
Keywords: virtual reality; ship auxiliary equipment; single autonomous disassembly and assembly; mobile terminal
前言
對(duì)于海船船員來說,“船舶輔機(jī)拆裝課程”是非常重要的必修科目,還是海事局規(guī)定的船員適任證書的評(píng)估科目。在航海類院校的實(shí)際教學(xué)中,往往存在老師少,學(xué)生人數(shù)眾多,設(shè)備少且陳舊,教學(xué)時(shí)間緊張,場地限制等問題。學(xué)生很難熟練掌握拆裝方法,實(shí)踐時(shí)間大大減少,動(dòng)手能力不容易得到提升,解決這一現(xiàn)狀十分必要。
隨著科學(xué)技術(shù)的不斷進(jìn)步,虛擬現(xiàn)實(shí)技術(shù)慢慢出現(xiàn)在我們的生活中。我們目前常見的是VR眼鏡,人們帶上它,不僅可以帶來視覺上的仿真,還可以聽到特定情境下所發(fā)出的聲音。這是目前虛擬現(xiàn)實(shí)技術(shù)的一種體現(xiàn)方式。高的浸入感,逼真的視聽覺,讓人身臨其境一般。但是,虛擬現(xiàn)實(shí)技術(shù)的使用只是冰山一角。當(dāng)前,我們必須借助復(fù)雜的虛擬現(xiàn)實(shí)設(shè)備才能體驗(yàn)。用戶與虛擬現(xiàn)實(shí)設(shè)備的交互性比較差,還不夠完善。其次,承載虛擬現(xiàn)實(shí)技術(shù)的設(shè)備類型不夠多樣,功能不夠良好。這些不足也大大制約了虛擬現(xiàn)實(shí)技術(shù)發(fā)展。
針對(duì)上述存在的問題,本文開發(fā)出一款以虛擬現(xiàn)實(shí)為基礎(chǔ),進(jìn)行船舶輔機(jī)拆裝的移動(dòng)端應(yīng)用。它為學(xué)生提供隨時(shí)隨地,不限時(shí)長,高沉浸感的交互式虛擬訓(xùn)練場所,以及單人單機(jī)的高仿真操作環(huán)境。并有效解決了實(shí)際拆裝中所遇到的問題,讓學(xué)生沉浸在計(jì)算機(jī)創(chuàng)造的三維仿真環(huán)境之中。
1 系統(tǒng)概述
1.1 系統(tǒng)需求分析
現(xiàn)如今,網(wǎng)絡(luò)與移動(dòng)端飛速發(fā)展,手機(jī)應(yīng)用成為人們必不可少的工具,對(duì)于大學(xué)生,更是出現(xiàn)了手機(jī)不離手的現(xiàn)狀,而隨著計(jì)算機(jī)視覺技術(shù)的進(jìn)步,虛擬現(xiàn)實(shí)技術(shù)逐漸進(jìn)入大眾的視野,通過虛擬現(xiàn)實(shí)技術(shù),人們可以進(jìn)入計(jì)算機(jī)中的模擬世界,輔以專用的硬件系統(tǒng),與模擬世界進(jìn)行交互,達(dá)到身臨其境的真實(shí)感。起初,虛擬現(xiàn)實(shí)技術(shù)主要用于娛樂領(lǐng)域,但隨著計(jì)算機(jī)硬件,軟件的不斷發(fā)展,此項(xiàng)技術(shù)被廣泛運(yùn)用于教育,軍事,航空航天等領(lǐng)域,而以目前來講,虛擬現(xiàn)實(shí)技術(shù)已經(jīng)到了快速發(fā)展階段,將虛擬現(xiàn)實(shí)應(yīng)用在船舶拆裝中,不但可以還原真實(shí)拆裝環(huán)境,還能減少人力物力的耗費(fèi),但是針對(duì)PC端難以隨身攜帶的問題,我們利用Unity與Android sdk發(fā)布其移動(dòng)端應(yīng)用,還可以讓學(xué)生隨時(shí)隨地對(duì)設(shè)備的部件進(jìn)行探索與拆裝。
本系統(tǒng)首先要保證虛擬拆裝環(huán)境與實(shí)際拆裝環(huán)境的高度相似,讓學(xué)生有較好的沉浸感和交互性。其次,要保證系統(tǒng)操作時(shí)的連貫性,物理動(dòng)作要順暢自然,沒有明顯的卡頓。最重要的是,要兼容大多數(shù)移動(dòng)端(安卓),要讓其能夠平穩(wěn)的在移動(dòng)端中運(yùn)行。
1.2 系統(tǒng)功能
基于虛擬現(xiàn)實(shí)的船舶輔機(jī)拆裝應(yīng)用在使用過程中,占空間小,便捷實(shí)用,不受場地約束,擺脫復(fù)雜的數(shù)據(jù)線,僅僅需要用戶將應(yīng)用安裝在移動(dòng)端上,就能實(shí)現(xiàn)相關(guān)操作。學(xué)生安裝好應(yīng)用,進(jìn)入系統(tǒng)中,可對(duì)操作設(shè)備進(jìn)行選擇,并選擇相應(yīng)的模式進(jìn)行學(xué)習(xí)訓(xùn)練,系統(tǒng)功能框架如圖1。
(1)自動(dòng)演示模式:此模式主要用于模型的基本介紹和自動(dòng)爆炸演示,讓用戶了解設(shè)備的基本信息和內(nèi)部結(jié)構(gòu),并以拆裝動(dòng)畫的形式展示拆裝過程。
(2)手動(dòng)拆裝模式:此模式主要用于學(xué)生對(duì)相應(yīng)設(shè)備的自主拆卸,以及拆卸后的復(fù)原。學(xué)生練習(xí)拆裝過程主要依靠此模式完成。
1.3 開發(fā)框架
基于虛擬現(xiàn)實(shí)的船舶輔機(jī)拆裝應(yīng)用的核心在于可以建立人機(jī)交互拆裝實(shí)驗(yàn)平臺(tái)。系統(tǒng)將相關(guān)設(shè)備模型加載在數(shù)據(jù)庫中,然后學(xué)生通過移動(dòng)端進(jìn)行交互操作。
隨著計(jì)算機(jī)網(wǎng)絡(luò)的不斷發(fā)展,出現(xiàn)了許多模型制作軟件,我們這里使用的是3dsMax和Unity3D,因?yàn)檫@兩種軟件是我們大學(xué)生或者其他領(lǐng)域運(yùn)用較為普遍和熟練的。本文先利用3dsMax進(jìn)行模型制作,將真實(shí)環(huán)境下的船舶輔機(jī)設(shè)備模型化。并通過Unity3D引擎,給予腳本編寫,實(shí)現(xiàn)單人單機(jī)自主完成船舶輔機(jī)拆裝過程,最終打包成apk文件,由Android平臺(tái)發(fā)布應(yīng)用。圖2為開發(fā)流程圖。
2 核心技術(shù)
2.1 模型搭建與優(yōu)化
船舶輔機(jī)設(shè)備大多為機(jī)械設(shè)備,并具有明顯的幾何形狀,我們利用3dsMax三維建模軟件進(jìn)行模型搭建,為了讓學(xué)生能夠得到更好的沉浸感,更清晰地對(duì)船舶輔機(jī)設(shè)備內(nèi)部進(jìn)行認(rèn)知,良好的模型搭建是首要的要求。但是對(duì)于整個(gè)應(yīng)用來講,完全1:1的輔機(jī)模型,無疑增加了整個(gè)模型文件的大小,加大了計(jì)算機(jī)運(yùn)算的負(fù)擔(dān)。另一方面,我們還要實(shí)現(xiàn)拆裝動(dòng)作,以及演示動(dòng)畫等等交互功能。因此,我們必須既保證相對(duì)良好的模型外觀,也要保證模型迅速的加載速度,來減少交互時(shí)的卡頓現(xiàn)象。
在模型構(gòu)建實(shí)際操作過程中,我們發(fā)現(xiàn)模型的多邊形數(shù)目和節(jié)點(diǎn)個(gè)數(shù)對(duì)計(jì)算機(jī)運(yùn)算速度有極大的影響,如果使用增加面片的數(shù)量來使模型更加細(xì)致是很不值得的,我們查閱相關(guān)資料,采用了傳統(tǒng)三維建模和表面紋理烘焙相結(jié)合的方法,在初始建模成型之后,把觀察不到的內(nèi)表面模糊化處理,并且使用3dsMax軟件的Rendering to Texture模塊對(duì)表面紋理進(jìn)行渲染,這個(gè)烘焙功能模塊不再是傳統(tǒng)地使用面數(shù)換取細(xì)致結(jié)構(gòu),取而代之的是通過貼圖來渲染模型的表面紋理,達(dá)到相同甚至更逼真的效果,這樣做既保證了計(jì)算機(jī)運(yùn)算的速度,也保證了船舶輔機(jī)模型的真實(shí)感。圖3為油馬達(dá)模型。
2.2 交互行為定義
在利用3dsMax軟件將船舶輔機(jī)三維模型導(dǎo)入U(xiǎn)nity中之后,如果沒有交互行為的控制,拆裝系統(tǒng)中的三維模型將會(huì)是靜止的,不隨學(xué)生的動(dòng)作而變化,所以我們對(duì)學(xué)生于模型之間的交互行為進(jìn)行定義,有了良好的交互操作,可以使學(xué)生在使用中對(duì)船舶輔機(jī)的內(nèi)部結(jié)構(gòu)有更深的了解,模型通過交互行為“動(dòng)起來”,也可以激起學(xué)生對(duì)拆裝過程的興趣。本系統(tǒng)中的交互行為是用來描述學(xué)生在虛擬狀態(tài)下對(duì)船舶輔機(jī)三維模型的拆裝行為與操作,而合理的交互定義是一個(gè)虛擬拆裝系統(tǒng)的基礎(chǔ),方便實(shí)現(xiàn)虛擬拆裝系統(tǒng)中對(duì)模型的移動(dòng),旋轉(zhuǎn),拆卸的控制。
本文開發(fā)出的船舶輔機(jī)虛擬拆裝系統(tǒng)屬于安卓手機(jī)端系統(tǒng),學(xué)生與系統(tǒng)的交互主要由手指來實(shí)現(xiàn),虛擬拆裝系統(tǒng)通過學(xué)生手指動(dòng)作,個(gè)數(shù)等在手機(jī)屏幕上做出的動(dòng)作得到信息,并通過驅(qū)動(dòng)系統(tǒng)給出相應(yīng)的反饋,通過手機(jī)屏幕輸出相應(yīng)結(jié)果,例如,手指觸摸屏幕上下左右移動(dòng),則虛擬拆裝系統(tǒng)中的船舶輔機(jī)虛擬模型會(huì)跟隨手指的移動(dòng),手指點(diǎn)擊螺釘不放,系統(tǒng)中螺釘便會(huì)自動(dòng)旋出。具體交互定義可見圖4。
2.3 碰撞檢測
在Unity3D中,我們已經(jīng)賦予設(shè)備部件特定的動(dòng)作,但是,它并不存在真實(shí)世界所具有的物理碰撞。也就是說,在模擬虛擬世界中,當(dāng)一個(gè)部件進(jìn)行移動(dòng)時(shí),它會(huì)從部件內(nèi)部穿出到運(yùn)動(dòng)軌跡延長線以外,并且還可能與設(shè)備其它部件產(chǎn)生重疊,違背了物理事實(shí),產(chǎn)生完全不符合常理的場景,這就與虛擬現(xiàn)實(shí)良好的沉浸感要求背道而馳。在查閱相關(guān)資料以后,我們了解到,為了避免這種情況發(fā)生,我們可以采用多種碰撞檢測的方法,如方向包圍盒檢測(OBB),軸向包圍盒檢測(AABB),球體包圍盒檢測等,目前,由于Unity3D軟件的不斷優(yōu)化,該軟件內(nèi)部攜帶碰撞檢測功能,在Unity3D中包含基本碰撞檢測、觸發(fā)器碰撞檢測和角色控制碰撞器等,因?yàn)槲覀兊哪P瓦\(yùn)動(dòng)方式基本為直線運(yùn)動(dòng),所以我們這里使用觸發(fā)器碰撞檢測法或者基本碰撞檢測里面的網(wǎng)格碰撞檢測法,由于我們最終是輸出于移動(dòng)端使用,所以我們要調(diào)整相應(yīng)的參數(shù),來保證模型所占內(nèi)存的大小較為合適。然后指定一個(gè)處于觸發(fā)狀態(tài)的觸發(fā)器,將我們水位計(jì)模型的端蓋包含至此觸發(fā)器之中,這樣螺釘與端蓋的碰撞檢測就轉(zhuǎn)變成了螺釘與觸發(fā)器之間的碰撞檢測。當(dāng)系統(tǒng)檢測到螺釘已完全嵌入端蓋后,學(xué)生再次點(diǎn)擊螺釘則不會(huì)繼續(xù)旋入端蓋。
而網(wǎng)格碰撞檢測的簡要操作流程為,點(diǎn)擊Unity3D中菜單欄的Component,找到選項(xiàng)卡Physics中的MeshCollider對(duì)于指定對(duì)象進(jìn)行參數(shù)編寫,然后對(duì)MeshCollider進(jìn)行設(shè)置,實(shí)現(xiàn)簡單的碰撞檢測。簡要流程如圖5。
3 案例演示
按照開發(fā)流程,我們將本系統(tǒng)apk安裝在安卓客戶端上,當(dāng)應(yīng)用安裝完成后,在開始界面中,我們可以進(jìn)行設(shè)備的選擇,本文以油馬達(dá)為例,演示油馬達(dá)在手動(dòng)拆裝模式下的操作過程。
當(dāng)點(diǎn)擊油馬達(dá)模型后,彈出油馬達(dá)菜單選項(xiàng)界面,可以選擇自動(dòng)演示和手動(dòng)操作模式或者查看設(shè)備簡介。自動(dòng)演示點(diǎn)擊后,會(huì)彈出動(dòng)畫頁面,將對(duì)拆裝的整個(gè)過程進(jìn)行視頻演示,其中包括全部拆卸完畢后的爆炸效果。用戶可以通過這個(gè)功能了解拆裝的順序以及拆裝所需要的工具類型。設(shè)備簡介則是對(duì)于該船舶輔機(jī)設(shè)備的名稱,用途等參數(shù)進(jìn)行詳細(xì)介紹。當(dāng)用戶點(diǎn)擊手動(dòng)操作模式時(shí),學(xué)生可以選擇油馬達(dá)的拆卸或者拼裝。并且,在拆裝過程中,可以隨時(shí)還原模型或者返回主界面進(jìn)行其他模式的學(xué)習(xí)。
最后,我們讓20名同學(xué)進(jìn)行安裝試驗(yàn),進(jìn)行體驗(yàn)。整個(gè)運(yùn)行過程基本流暢,同學(xué)們反應(yīng)良好。此應(yīng)用有效的將虛擬現(xiàn)實(shí)技術(shù)與船舶輔機(jī)拆裝進(jìn)行了結(jié)合,解決了許多拆裝實(shí)習(xí)中會(huì)遇到的問題。整個(gè)系統(tǒng)對(duì)場景的加載也非常流暢,未出現(xiàn)卡頓以及停滯現(xiàn)象。我們考慮到不同手機(jī)的系統(tǒng)差異,我們進(jìn)行了軟件的多次安裝,在華為,小米,魅族等客戶端下,運(yùn)行平穩(wěn)。并且,有效提升了學(xué)生學(xué)習(xí)的熱情,為學(xué)習(xí)過程增加了不少的樂趣。
4 結(jié)束語
我們合理的結(jié)合了3dsmax的建模和Unity3D開發(fā)引擎,讓船舶輔機(jī)拆裝在手機(jī)客戶端能夠輕松實(shí)現(xiàn),大大減少了實(shí)際拆裝成本。并且該應(yīng)用中船舶輔機(jī)設(shè)備的模型類別,我們將不斷增加,讓設(shè)備覆蓋更加全面,虛擬現(xiàn)實(shí)沉浸感越來越強(qiáng)。該應(yīng)用在輪機(jī)專業(yè)的培養(yǎng)及海事系統(tǒng)大證考試評(píng)估等方面有廣闊發(fā)展前景。另外,基于虛擬現(xiàn)實(shí)的拆裝,也很適用于大多其他機(jī)械行業(yè)的教學(xué)和維修工作,有較好的發(fā)展前景。
參考文獻(xiàn):
[1]潘瑜.虛擬現(xiàn)實(shí)技術(shù)與室內(nèi)設(shè)計(jì)課程的融合與應(yīng)用[J].藝術(shù)教育,2018(20):67-68.
[2]楊燕紅,楊建軍,彭憶強(qiáng),等.現(xiàn)實(shí)與虛擬技術(shù)結(jié)合的汽車發(fā)動(dòng)機(jī)構(gòu)造實(shí)驗(yàn)課程設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2017,34(12):210-213.
[3]謝佳賓.水輪機(jī)虛擬拆裝的實(shí)現(xiàn)過程[J].企業(yè)技術(shù)開發(fā),2010,29(15):171-172.
[4]高穎,鐘嘯,許志國,等.基于VR的航空發(fā)動(dòng)機(jī)虛擬教學(xué)實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào),2008,20(11):2925-2930.
[5]鐘振龍,吳緯緯,趙悅.面向虛擬拆裝的產(chǎn)品裝配模型及其應(yīng)用[J].制造業(yè)自動(dòng)化,2010,32(7):176-178,232.
[6]陳鋒,李雪,沈軍.船艇裝備虛擬拆裝訓(xùn)練系統(tǒng)設(shè)計(jì)研究[J].中國高新技術(shù)企業(yè),2013(22):94-95.
[7]謝佳賓.水輪機(jī)虛擬拆裝的實(shí)現(xiàn)過程[J].企業(yè)技術(shù)開發(fā),2010,29(15):171-172.