黃俊生
(泉州華中科技大學(xué)智能制造研究院,福建 泉州 362400)
隨著生產(chǎn)自動化應(yīng)用普及,生產(chǎn)系統(tǒng)的復(fù)雜性也隨之提高,同樣系統(tǒng)的改進(jìn)成本也成為工藝或產(chǎn)能優(yōu)化過程中生產(chǎn)管理者必須謹(jǐn)慎考慮的地方。于是依靠仿真技術(shù)的虛實(shí)制造成為生產(chǎn)線優(yōu)化決策的有效利器。虛擬制造是對真實(shí)制造系統(tǒng)的行為、結(jié)構(gòu)和狀態(tài)完整準(zhǔn)確的描述,是真實(shí)系統(tǒng)在信息世界的等價系統(tǒng)。虛擬制造技術(shù)的核心是虛擬仿真建模。因此,如何基于現(xiàn)代生產(chǎn)的組合單位,根據(jù)其物理模型及其相互之間的行為交互關(guān)系,進(jìn)行信息化建模,實(shí)現(xiàn)精確而快速地表達(dá)物理系統(tǒng)并模擬生產(chǎn)過程行為,是生產(chǎn)線仿真建模的關(guān)鍵任務(wù)。
生產(chǎn)線快速建模的方案多種多樣。文獻(xiàn)[3]提出一種基于面向任務(wù)的生產(chǎn)線快速建模仿真系統(tǒng),基于QUEST軟件實(shí)現(xiàn)三維數(shù)字化工廠或產(chǎn)線的快速構(gòu)建。文件[4]建立了仿真模型庫,包括幾何模型庫,運(yùn)動學(xué)模型庫和邏輯模型庫,在QUEST軟件中實(shí)現(xiàn)基于模型庫的船舶分段生產(chǎn)線快速建模,探索了模型庫在快速建模的關(guān)鍵作用。文獻(xiàn)[5]提出一種基于TeamCenter和NX 的航天產(chǎn)品自頂向下協(xié)同設(shè)計方法,探索仿真模型統(tǒng)一管理及共享對快速建模應(yīng)用的積極性。然而大部分對于產(chǎn)線快速建模及模型庫建設(shè)是基于傳統(tǒng)商業(yè)軟件實(shí)現(xiàn),從本質(zhì)上說是一種既有軟件產(chǎn)品的應(yīng)用。
本文在研究生產(chǎn)線快速建模實(shí)現(xiàn)方式及其仿真模型庫建設(shè)路徑的基礎(chǔ)上,提出一種多模型庫復(fù)合設(shè)計方法?;赨nity3D開源三維開發(fā)平臺,開發(fā)面向生產(chǎn)線快速建模的預(yù)設(shè)模型庫、自定義模型庫、共享模型庫以及靜態(tài)模型庫4種模型庫。系統(tǒng)功能實(shí)現(xiàn)證明,該模型庫設(shè)計能夠?qū)崿F(xiàn)動態(tài)模型的快速建模、應(yīng)用、存儲和共享,對實(shí)現(xiàn)生產(chǎn)線仿真快速建模具有一定的實(shí)用性。
復(fù)合模型庫總體框架如圖1所示。復(fù)合模型庫類型分為靜態(tài)模型庫、預(yù)設(shè)模型庫、自定義模型庫和共享模型庫4種類型。
圖1 復(fù)合仿真模型庫總體框架
1)靜態(tài)模型庫:該模型庫基于Unity3D的AssetBundle資源技術(shù)實(shí)現(xiàn)。通用外部Unity3D編輯器進(jìn)行資源處理,實(shí)現(xiàn)對模型、貼圖、預(yù)制體、聲音、甚至整個場景,統(tǒng)一打包為一個單獨(dú)的文件壓縮包,支持快速建模軟件運(yùn)行時按需加載。
2)預(yù)設(shè)模型庫:該模型庫基于Unity3D的預(yù)設(shè)體(prefab)技術(shù)實(shí)現(xiàn)。通用外部Unity3D編輯器進(jìn)行動態(tài)模型預(yù)設(shè)計及編輯,實(shí)現(xiàn)對標(biāo)準(zhǔn)生產(chǎn)線單元模型(數(shù)控機(jī)床、機(jī)器人、AGV等)及通用模型(多軸模組、傳送帶、傳感器等)的預(yù)制及保存。預(yù)設(shè)模型庫與快速建模軟件一同發(fā)布,是快速建模軟件的一部分。
3)自定義模型庫:該模型庫通過對外部通用三維模型文件的源文件解析、格式轉(zhuǎn)化、持久化等工作,實(shí)現(xiàn)從外部自定義三維模型轉(zhuǎn)為快速建模軟件模型庫內(nèi)部模型。同時基于Unity3D的腳本機(jī)制,結(jié)合本文設(shè)計的通用生產(chǎn)線仿真控制交互組件,實(shí)現(xiàn)自定義模型由靜態(tài)到動態(tài)模型的轉(zhuǎn)變。
4)共享模型庫:該模型庫是在自定義模型庫的基礎(chǔ)上,通過云端存儲服務(wù),實(shí)現(xiàn)動態(tài)模型的共享功能?;诠蚕砟P凸δ芸梢詫?shí)現(xiàn)生產(chǎn)線仿真的分工建模、快速歸并調(diào)試的目的,從而達(dá)到生產(chǎn)線快速仿真建模的目的。
生產(chǎn)線仿真模型中,最重要的便是包含物理運(yùn)動、工藝行為等交互功能的動態(tài)模型。在本文提出的復(fù)合模型庫設(shè)計中,動態(tài)模型是在靜態(tài)模型的基礎(chǔ)上通過集成通用生產(chǎn)線仿真控制交互組件實(shí)現(xiàn)。通用生產(chǎn)線仿真控制交互組件如圖2所示。
圖2 通用生產(chǎn)線仿真控制交互組件
本文設(shè)計的通用生產(chǎn)線仿真控制交互組件包括運(yùn)動組件、交互組件、對象控制組件、觸發(fā)器組件等8種仿真控制交互組件。
1)運(yùn)動組件是定義常用的位移和旋轉(zhuǎn)類運(yùn)動控制的通用控制組件集合?;诮M件屬性及三維可視化編輯,可以實(shí)現(xiàn)常見的位移及旋轉(zhuǎn)個性化設(shè)計功能。
2)碰撞體組件是定義三維仿真物體碰撞屬性、碰撞體積的碰撞控制組件集合?;诮M件屬性及三維可視化編輯,可以實(shí)現(xiàn)碰撞體類型、碰撞體體積編輯功能。
3)對象控制組件是定義仿真對象支持的交互類型的通用控制組件集合。
4)觸發(fā)器組件是定義通過碰撞檢測、射線碰撞檢測、交互碰撞檢測的組件集合。通過三維空間位置編輯、發(fā)光體設(shè)置、碰撞體編輯等操作,模擬交互按鈕、傳感器等功能器件。
5)交互控制組件是定義通過碰撞檢測與對象控制組件交互的組件集合。用于模擬虛擬加工過程中的氣缸、托盤、夾具等執(zhí)行部件。
6)傳輸控制組件是定義通過碰撞檢測與可傳送組件交互的組件集合。通過三維空間位置編輯、起點(diǎn)、終點(diǎn)編輯等操作,模擬各種傳輸面。
7)典型控制組件是實(shí)現(xiàn)機(jī)器人、模組、AGV定義的組件集合。三維靜態(tài)物體通過綁定類型定義組件和關(guān)節(jié)定義組件,可以實(shí)現(xiàn)機(jī)器人、模組、AGV的自定義。
8)其他組件是其他一些功能較為獨(dú)立的組件集合。
通用生產(chǎn)線仿真控制交互組件設(shè)計是實(shí)現(xiàn)動態(tài)模型快速建模的關(guān)鍵,也是統(tǒng)一仿真模型表達(dá)的基礎(chǔ)。
模型庫建設(shè)的核心是模型的統(tǒng)一表達(dá)及持久化。在本文提出的復(fù)合模型庫設(shè)計中,不同模型庫中的模型都使用統(tǒng)一的仿真模型表達(dá)方式。如圖3所示,本文的統(tǒng)一仿真模型表達(dá)分為4個部分:基礎(chǔ)信息、結(jié)構(gòu)層次信息、幾何信息和組件系統(tǒng)。
圖3 統(tǒng)一仿真模型表達(dá)
1)基礎(chǔ)信息:物體在三維空間的基礎(chǔ)物理信息。包括名稱、場景唯一標(biāo)識、位置、角度、縮放尺寸和層次等。
2)結(jié)構(gòu)層次信息:物體在三維空間的場景資源結(jié)構(gòu)關(guān)系。包括上級父物體、下級子物體集合。
3)幾何材質(zhì)信息:幾何材質(zhì)信息指物體頂點(diǎn)、三角形、紋理坐標(biāo)、法線和切線等幾何信息和材質(zhì)引用信息。
4)組件系統(tǒng):三維物體綁定的體現(xiàn)不同維度仿真行為的組件集合。包括基礎(chǔ)組件、物理模型組件、行為模型組件和規(guī)則模型組件等。
統(tǒng)一仿真模型表達(dá)可以有效完成對靜態(tài)模型和動態(tài)模型的統(tǒng)一性描述。其中基礎(chǔ)信息、結(jié)構(gòu)層次信息和幾何信息可以完成對靜態(tài)模型的完整表達(dá),動態(tài)模型便是靜態(tài)模型結(jié)合不同維度的組件系統(tǒng)實(shí)現(xiàn)。在模型設(shè)計空間中,對模型各維度組件的添加、刪除和屬性修改便可以實(shí)現(xiàn)實(shí)時的模型編輯功能。
任何模型信息持久化過程都必須包括序列化和持久化的過程。序列化(Seriallization)是一種將對象以一連串的字節(jié)描述的過程,相應(yīng)的反序列化(Deserialization)是一種將這些字節(jié)重建成一個對象的過程。本文的統(tǒng)一仿真模型表達(dá)是模型序列化和反序列化的基礎(chǔ)。如圖4所示,本文在對Unity3D基礎(chǔ)對象構(gòu)建序列化及反序列化基對象的基礎(chǔ)上,對仿真模型的所有靜態(tài)信息及組件信息構(gòu)建相應(yīng)的序列化反序列化執(zhí)行對象。這樣,從仿真模型解析得到的對象組件可以通過相應(yīng)的執(zhí)行對象進(jìn)行序列化和反序列化。
圖4 統(tǒng)一仿真模型序列化
持久化是一種將數(shù)據(jù)已結(jié)構(gòu)化或非結(jié)構(gòu)化的格式存儲到數(shù)據(jù)庫或者文件系統(tǒng)的過程。統(tǒng)一仿真模型表達(dá)及其序列化的最終目的是仿真模型的持久化。仿真模型的持久化不同于傳統(tǒng)三維模型的持久化(保存為step、fbx、obj等文件),而是將靜態(tài)幾何信息、材質(zhì)信息及仿真交互控制組件等都存儲為可識別文件。如圖5所示。仿真模型對象在Unity3D運(yùn)行時是一個樹狀層次結(jié)構(gòu),表達(dá)仿真模型間的零部件組合關(guān)系。由上文的仿真模型序列化可知,仿真模型可以表達(dá)為組件對象列表,每個組件經(jīng)過序列化和反序列化又可以轉(zhuǎn)化為相應(yīng)的資源對象,因此仿真模型也可以分解為數(shù)組結(jié)構(gòu)的資源對象列表。最后根據(jù)不同的資源對象類型可以保存不同的操作系統(tǒng)二進(jìn)制文件。其中基礎(chǔ)信息、層次信息和組件信息保存為預(yù)設(shè)體文件(.rtprefab),幾何信息保存為網(wǎng)格文件(.rtmesh),材質(zhì)信息保存為材質(zhì)文件(.rtmat),貼圖紋理信息保存為可預(yù)覽文件(.rtview)。
圖5 統(tǒng)一仿真模型持久化
在這一小節(jié)中,通過對仿真模型進(jìn)行統(tǒng)一表達(dá)、序列化和持久化技術(shù)路線研究,探索復(fù)合模型庫設(shè)計中的模型統(tǒng)一結(jié)構(gòu)化讀取和保存的策略。模型的統(tǒng)一表達(dá)及持久化也是實(shí)現(xiàn)本文提出的復(fù)合模型庫中模型共享的關(guān)鍵。
為了驗證本文提出的復(fù)合模型庫設(shè)計應(yīng)用性,本文基于Unity3D引擎開發(fā)生產(chǎn)線快速建模軟件,并實(shí)現(xiàn)了前文提出的4種仿真模型庫。開發(fā)平臺:Intel 八核 CPU I5-8300H,16G內(nèi)存,GTX1050Ti顯卡。編程工具:Unity3D 2020。
在4種仿真模型庫的基礎(chǔ)上進(jìn)行生產(chǎn)線快速建模驗證。針對教學(xué)試驗生產(chǎn)線和工業(yè)現(xiàn)場生產(chǎn)線分別進(jìn)行快速建模驗證。
通過實(shí)際生產(chǎn)線快速建模應(yīng)用證明,提出復(fù)合模型庫設(shè)計在模型存取及模型快速應(yīng)用方面的優(yōu)越性。