馬常霞 胡大勇 張占強
(江蘇海洋大學(xué)計算機工程學(xué)院 連云港 222005)
碳纖維(Carbon Fiber)是新一代增強纖維,通過添加樹脂、金屬、陶瓷、混凝土等材料制成碳纖維復(fù)合材料,主要應(yīng)用于航空航天、汽車、風(fēng)電、壓力容器、體育休閑等領(lǐng)域[1~2]。全球碳纖維的生產(chǎn)主要集中于日本、美國和歐洲企業(yè),預(yù)計到2020年,全球碳纖維在工業(yè)領(lǐng)域的應(yīng)用比例將達(dá)到72%。中國碳纖維產(chǎn)業(yè)起步較晚,但是中國市場對碳纖維的需求一直較為強勁,未來5年中國碳纖維需求量仍將保持15%以上的增長速度。而目前國內(nèi)碳纖維生產(chǎn)企業(yè)總體技術(shù)水平較低、生產(chǎn)成本高,缺少面向全行業(yè)的碳纖維復(fù)合材料生產(chǎn)試制、檢測、評價一體化公共服務(wù)平臺[3]。這樣的平臺成本高,數(shù)量少難以滿足國內(nèi)碳纖維生產(chǎn)企業(yè)生產(chǎn)試制、檢測、評價的需求。為了實現(xiàn)國內(nèi)碳纖維生產(chǎn)企業(yè),復(fù)合材料研發(fā)制造單位(企業(yè)、高校、科研院所)和復(fù)合材料終端用戶等企業(yè)的對接,利用網(wǎng)絡(luò)平臺和虛擬現(xiàn)實技術(shù)探索碳纖維復(fù)合材料試驗公共服務(wù)平臺及場景交互可視化仿真,截至目前國內(nèi)尚無這樣的系統(tǒng)。
近幾年來,由于計算機軟硬件技術(shù)的不斷提升,虛擬現(xiàn)實技術(shù)也取得成功發(fā)展,并日益應(yīng)用到教育、醫(yī)療、建筑、航天、汽車、導(dǎo)航、軍事等社會各個行業(yè)和領(lǐng)域。為實現(xiàn)國內(nèi)碳纖維生產(chǎn)企業(yè)、復(fù)合材料研發(fā)制造單位(企業(yè)、高校、科研院所)和復(fù)合材料終端用戶等企業(yè)的對接,根據(jù)當(dāng)前碳纖維復(fù)合材料行業(yè)發(fā)展的特點,設(shè)計一個關(guān)于碳纖維復(fù)合材料試驗公共服務(wù)平臺及可視化仿真。通過系統(tǒng)設(shè)計復(fù)合材料,可以更直觀,更合理,并利用該系統(tǒng)全面、準(zhǔn)確記錄各種材料、產(chǎn)品試驗過程中的各種數(shù)據(jù),掌握各種復(fù)合材料的試驗特性,利用平臺為整個復(fù)合材料行業(yè)提供咨詢、預(yù)約服務(wù),同時基于3DMax對碳纖維復(fù)合材料試驗公共服務(wù)平臺場景進(jìn)行三維建模,然后基于Unity3D進(jìn)行場景交互設(shè)計,重點開展VR場景動態(tài)融合表達(dá),語音伴隨介紹,使用第一人稱視角的VR場景交互方法,對碳纖維復(fù)合材料加工方式展開試驗虛擬仿真,可以形象的漫游碳纖維復(fù)合材料試驗公共服務(wù)平臺為碳纖維復(fù)合材料加工可視化分析提供重要的數(shù)據(jù)資源和技術(shù)支持,以解決碳纖維生產(chǎn)企業(yè)生產(chǎn)試制、檢測、評價一體化問題。
平臺部分的分析與設(shè)計采用SOA面向服務(wù)的技術(shù)架構(gòu),松耦合的設(shè)計模式,保證系統(tǒng)的靈活性、可擴展性和良好的維護(hù)性?;贐/S結(jié)構(gòu)構(gòu)建,JavaEE技術(shù)路線,支持跨平臺應(yīng)用,數(shù)據(jù)庫采用Oracle。針對整個業(yè)務(wù)模式和IT環(huán)境,在充分考慮到系統(tǒng)擴展性的要求基礎(chǔ)上,系統(tǒng)架構(gòu)設(shè)計多層的體系結(jié)構(gòu)模型。采用微服務(wù)開發(fā)業(yè)務(wù)功能的服務(wù),每個服務(wù)都有自己的處理和輕量通訊機制,可以部署在單個或多個服務(wù)器上,每個服務(wù)能夠獨立被部署并運行在一個進(jìn)程內(nèi)。系統(tǒng)采用Spring Boot作為腳手架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。
本系統(tǒng)分為對外服務(wù)部分(以下簡稱外平臺)和內(nèi)部試驗管理部分(以下簡稱內(nèi)平臺)。內(nèi)平臺主要由內(nèi)部員工使用,實現(xiàn)不同權(quán)限用戶登陸、設(shè)備管理、材料管理、試驗管理、產(chǎn)品管理、系統(tǒng)管理等。外平臺主要實現(xiàn)對外宣傳展示,仿真虛擬漫游,并接收客戶對服務(wù)的預(yù)約等,其主要功能包括產(chǎn)品展示,工藝展示,設(shè)備展示,咨詢服務(wù),服務(wù)預(yù)約,新聞資訊等模塊,試驗部分業(yè)務(wù)流圖如圖1所示,在數(shù)據(jù)庫的范式規(guī)范下,考慮具體的應(yīng)用,本系統(tǒng)的主要數(shù)據(jù)庫的物理設(shè)計如表1所示。

圖1 試驗業(yè)務(wù)流圖

表1 系統(tǒng)主要數(shù)據(jù)表
碳纖維復(fù)合材料試驗公共服務(wù)平臺虛擬漫游以Unity3D作為開發(fā)平臺,3DMax作為三維建模開發(fā)工具。由于3DMax能夠較好地適用于三維模型的創(chuàng)建如具有參數(shù)化模型創(chuàng)建技術(shù)、模型的創(chuàng)建過程中可交互式3D瀏覽、可以模擬仿真施工進(jìn)度、能渲染出照片級效果圖等顯著特性,所以本系統(tǒng)用它作為三維模型數(shù)據(jù)創(chuàng)建的基礎(chǔ)平臺。系統(tǒng)中需要對3D虛擬場景進(jìn)行渲染、設(shè)計交互仿真功能,本文采用Unity3D渲染技術(shù)實現(xiàn)場景渲染和交互設(shè)計功能。Unity3D基于C#編程,是可視化開發(fā)3D的應(yīng)用工具,擁有強大的開發(fā)者支持及第三方開發(fā)插件,所有平臺都被兼容,為確保開發(fā)更為便捷使用藍(lán)圖可視化腳本系統(tǒng)以及對VR硬件設(shè)備的高度支持[4]。為增強虛擬現(xiàn)實體驗,加入三維場景搭建,語音播報系統(tǒng),機械動畫模擬以及用戶場景交互。虛擬部分結(jié)構(gòu)如圖2所示。

圖2 虛擬部分結(jié)構(gòu)圖
本系統(tǒng)內(nèi)部資源管理系統(tǒng)前端采用Flex作為視圖框架,這些應(yīng)用程序利用Adobe Flash Player和Adobe AIR,可以實現(xiàn)跨瀏覽器、桌面和操作系統(tǒng)。
我們針對在云環(huán)境下的碳纖維復(fù)合材料試驗系統(tǒng)的特點,采用了Flex與HTML相結(jié)合的開發(fā)方法[5~6]。由于系統(tǒng)采用結(jié)構(gòu)化文檔管理模式,我們的文檔都是以XML的形式進(jìn)行存儲和數(shù)據(jù)交換,使用Flex的E4X技術(shù)可以方便地讀取和封裝XML文檔,并根據(jù)試驗數(shù)據(jù)模版格式以HTML的方式展現(xiàn)給用戶。通過精準(zhǔn)的控制HTML節(jié)點的讀寫和布局實現(xiàn)了材料試驗數(shù)據(jù)的富文本編輯,并可以進(jìn)行方便的標(biāo)注,和文本進(jìn)行比對。
碳纖維復(fù)合材料試驗平臺是云環(huán)境下的試驗大數(shù)據(jù)系統(tǒng)共享的核心。利用云計算技術(shù)對試驗設(shè)備中相關(guān)數(shù)據(jù)進(jìn)行分析和處理,是云計算服務(wù)推薦的基礎(chǔ)[7~9]。由于試驗設(shè)備產(chǎn)生的數(shù)據(jù)格式多樣,因此我們需要應(yīng)用文本分類技術(shù)來對試驗數(shù)據(jù)進(jìn)行智能化分類。文本分類算法有很多,如:K-近鄰法(KNN),支持向量機(SVM),神經(jīng)網(wǎng)絡(luò)(NNet),簡單貝葉斯,線性最小二乘法等,其中KNN算法是一種思想簡單且性能穩(wěn)定的分類算法,現(xiàn)已廣泛應(yīng)用于模式識別和數(shù)據(jù)挖掘的各個領(lǐng)域,但是KNN算法在處理文本分類的過程中需要不斷地計算待測文本與樣本的相似度,當(dāng)文本數(shù)量更大時,算法的效率就會更差[10]。對KNN算法在實際應(yīng)用中的限制較大,因此我們采用了改進(jìn)策略的KNN分類算法。
VR仿真模型構(gòu)建的關(guān)鍵過程如下:首先采集原始數(shù)據(jù),然后創(chuàng)建三維模型;在3DMax中對模型減面或重構(gòu);創(chuàng)建UVW模型對材質(zhì)賦予確保后續(xù)材質(zhì)和光照系統(tǒng)的仿真運行;將處理好的模型導(dǎo)入Unity3D,三維模型的構(gòu)建完成,其具體流程如圖3所示。

圖3 搭建流程圖
3.3.1 Polygon建模
Polygon建模就是將對象轉(zhuǎn)化為可編輯的多邊形對象,多邊形對象的面可以是三角形面、四邊形面以及具有任何多個節(jié)點的多邊形面,該可編輯多邊形對象包含了節(jié)點Vertex、邊界Edge、邊界環(huán)Border、多邊形面Polygon、元素Element五種子對象模式。建模過程就是通過編輯和修改該多邊形對象的各種子對象來實現(xiàn)的。
3.3.2 搭建實現(xiàn)
首先對碳纖維復(fù)合材料加工工廠實際結(jié)構(gòu)與生產(chǎn)過程進(jìn)行實際考察,借助CAD圖進(jìn)行廠房結(jié)構(gòu)制作,主要通過墻體間距確保結(jié)構(gòu)尺寸正確性。構(gòu)建建筑物模型的主體部分,采用多邊形建模技術(shù),該技術(shù)對于具有規(guī)則形物體的構(gòu)造有優(yōu)勢。首先將建筑物合理分離,獲得單個建筑物底圖,根據(jù)建筑物的實際尺寸進(jìn)行擠出操作,建筑物的主體建模完成之后,對廠房外觀進(jìn)行制作。制作前可先將外觀分為主體墻面,窗框,窗體等多個元素,再采用多邊形建模技術(shù)逐個完成各部分制作。為了使建好的模型從觀感上更加貼近實際的建筑物,待三維模型建立后,還要進(jìn)行材質(zhì)賦予。
廠房內(nèi)的生產(chǎn)車間及機械設(shè)備眾多分別進(jìn)行建模。其中,生產(chǎn)車間模型結(jié)構(gòu)如圖4(a)所示。由于制作的為工業(yè)設(shè)備,線路結(jié)構(gòu)都比較復(fù)雜,可對該部分進(jìn)行適當(dāng)簡化,完成主體制作。最后對制作的所有模型進(jìn)行合成匯總,使用3D捕捉工具,將模型三維坐標(biāo)進(jìn)行實時記錄,并完成與另一個模型的邊,面元素對齊操作,形成最終場景模型,如圖4(b)所示。

圖4 搭建結(jié)構(gòu)圖
3DMax建模完成后模型導(dǎo)入到Unity中,模擬設(shè)備的外形、材質(zhì)、零部件和內(nèi)部構(gòu)造,把設(shè)備的使用方式、原理、性能特征、工作過程等一系列真實的事物以動態(tài)視頻的形式演示出來。使用Animator窗口來制作機械動畫,按照這個原理依次完成車間動畫如圖5所示。

(a)生產(chǎn)車間模型結(jié)構(gòu)圖

圖5 機械動畫制作圖
語音系統(tǒng)通過Unity Audio Source組件用來播放場景中的Audio Clip,它是導(dǎo)入到Unity中的聲音文件。此外,Audio Source還可以設(shè)置一些播放聲音的效果,增強場景中的聲音效果。本文為了增強語音播報的靈活性,同時使用了文字轉(zhuǎn)語音的播報。
在計算機動畫、計算機圖形學(xué)和虛擬現(xiàn)實等領(lǐng)域,碰撞檢測問題都有著重要的意義。在虛擬現(xiàn)實系統(tǒng)中,為了防止漫游過程中穿入建筑物模型、設(shè)備等問題,經(jīng)常采用碰撞檢測技術(shù)從而保證仿真場景的真實性以及交互的自然性。碰撞檢測算法常常分為兩類基于空間的碰撞檢測算法和基于時間的碰撞檢測算[11~14]。
本系統(tǒng)采用的是層次包圍盒技術(shù)和射線檢測技術(shù),它們屬于基于空間碰撞檢測算法。另外部分采用了半透明顏色疊加與深度值的碰撞檢測算法[15~17]。
3.5.1 包圍盒技術(shù)
包圍盒技術(shù)是一種求解離散點集最優(yōu)包圍空間的算法,是基于圖形的碰撞檢測算法。其基本思想是用特定的體積稍大且特性簡單的幾何體(稱為包圍盒)來描述復(fù)雜的幾何對象,故只需要對相對較容易做相交判斷的特定體積進(jìn)行相交測試。在計算機圖形學(xué)與計算幾何領(lǐng)域,一組物體的包圍盒就是將場景中的復(fù)雜集合形體圍住即完全包容起來的一個封閉空間。用簡單的包圍盒形狀來近似代替復(fù)雜幾何體,從而用簡單的包圍盒封裝復(fù)雜集合體,以提高碰撞監(jiān)測運算的效率。在碰撞檢測中,兩物體是否碰撞,先判斷包圍盒是否相交,不相交說明不發(fā)生碰撞,如果包圍盒相交,就要對包圍盒所包圍的兩物體做幾何對象間精確的碰撞檢測。
包圍盒算法通常有包圍球(Sphere)、軸向包圍盒AABB(Axis-Aligned Bounding Box)、方向包圍盒OBB(Oriented Bounding Box)、固定方向包圍盒k-DOPs(Discrete Orientation Polytope)。AABB包圍盒是一個邊平行于坐標(biāo)軸的最小六面體且包含該對象,得到某一對象的AABB包圍盒需要先確定六個標(biāo)量,就是需要找出內(nèi)包圍對象的所有頂點中最大和最小的x、y、z坐標(biāo),兩個AABB包圍盒的碰撞檢測就是判斷它們在x、y、z坐標(biāo)軸上的投影區(qū)間是否有重疊[16~17]。OBB包圍盒的相交測試?yán)梅州S定理,即選定兩個OBB包圍盒的分離軸。一般情況下會確定15條分離軸,當(dāng)有一條分離軸檢測到投影不重疊即判定兩包圍盒不相交。構(gòu)造k-DOPs包圍盒比構(gòu)造AABB包圍盒和OBB包圍盒困難,但是k-DOPs包圍盒碰撞檢測的精確度要高于AABB包圍盒和OBB包圍盒。
本文場景中,為給第一視角創(chuàng)建合理的視覺效果,給移動行為創(chuàng)造正常的移動效果,避免穿模與透視,機械零部件、地板模塊、窗體模塊等部分可視化模型采用包圍盒技術(shù)。
3.5.2 射線碰撞檢測算法
射線是在三維世界中從一個點沿一個方向發(fā)射的一條無限長的線,在三維空間中,射線碰撞檢測算法就是檢測射線與平面是否有交點,如果有求解該交點的問題。在三維空間中,射線的表示相應(yīng)的可寫為如下射線方程:

式(1)中采用兩個矢量定義,一個表示其起點β,另一個表示其方向α,β0是射線上的起點,τ∈[ 0 ,∞)。三維空間中平面的定義借助該平面的法量N和該平面上一點β1,可以寫出任意一個平面方程為

式(2)中N是平面法量,β1是平面上一點,從坐標(biāo)系原點到該平面的距離表示為d。如果式(1)中的射線與式(2)中的平面相交,假設(shè)相交點為β',那么,β'就要同時滿足方程(1)和(2),求解方程組得到:

將式(3)帶入射線方程即可得碰撞點。
在本系統(tǒng)中,射線碰撞檢測主要應(yīng)用于鼠標(biāo)的點擊操作,由于鼠標(biāo)在點擊播放語音介紹按鈕時,是在三維立體環(huán)境下完成,二維平面的鼠標(biāo)點擊方法無法精確定位到目標(biāo),所以需要在鼠標(biāo)點擊的同時刻,由鼠標(biāo)原點向鼠標(biāo)指向方向發(fā)射一條射線,當(dāng)射線碰撞到搭載有射線碰撞檢測算法的模型時,返回真值并進(jìn)行語音播放,如圖6所示。

圖6 射線檢測
用戶角色控制:用Unity3D自帶的擴展資源(FPS游戲第一人稱擴展資源)進(jìn)行開發(fā),使用鍵盤WASD進(jìn)行移動控制,鼠標(biāo)控制視角旋轉(zhuǎn),空格鍵控制跳躍。同時將3ds max中制作的最終模型形成FBX模型導(dǎo)出后直接導(dǎo)入Unity,將模型三維坐標(biāo)初始化,大小尺寸進(jìn)行調(diào)整,在廠房內(nèi)部添加適當(dāng)?shù)狞c束光源,對3D物體設(shè)置Collider屬性,實現(xiàn)虛擬物體可碰撞。
開關(guān)門的實現(xiàn):需要利用到觸碰體Trigger和查找場景中物體,如圖7(a)、(b)所示。在靠近門時按F實現(xiàn)開關(guān)門,最終效果如圖7(c)所示。

圖7 開關(guān)門實現(xiàn)
語音播報控制:當(dāng)用戶點擊播放按鈕時,可由鼠標(biāo)向目標(biāo)地點發(fā)射一條射線,如果目的地點檢測到有相應(yīng)的按鈕物體,則加載Audio Source中的音頻文件實現(xiàn)語音介紹如圖8所示。

圖8 語音控制(綠色框起來的紅色按鈕)
平臺建立面向全行業(yè)的碳纖維復(fù)合材料生產(chǎn)試制、檢測、評價一體化公共服務(wù)平臺。實現(xiàn)國內(nèi)碳纖維生產(chǎn)企業(yè)、復(fù)合材料制造單位(企業(yè)、高校、科研院所)和復(fù)合材料終端用戶等企業(yè)的對接,產(chǎn)品的性能滿足下游用戶需求,在軌道交通、汽車、電纜、風(fēng)電葉片、航空航天領(lǐng)域完成碳纖維復(fù)合材料的應(yīng)用及推廣。
本文實現(xiàn)了三維虛擬漫游與實際生產(chǎn)加工的合理結(jié)合,針對我國當(dāng)前對碳纖維復(fù)合材料的巨大需求以及經(jīng)驗技術(shù)欠缺提供了良好的技術(shù)支持,提出了第一人稱虛擬漫游的研究方法,在一定程度上緩解了部分企業(yè)技術(shù)欠佳的窘境,同時為行業(yè)生產(chǎn)提供了研究方向,能夠減少企業(yè)資金的不必要浪費,實現(xiàn)行業(yè)間的緊密聯(lián)系與相互促進(jìn)。