摘 要:【目的】為解決現(xiàn)有虛擬裝配環(huán)境中裝配工作不夠具體、裝配精確性無法保證的問題,構(gòu)建減速器虛擬裝拆系統(tǒng)?!痉椒ā坎捎肧olidWorks和3ds Max軟件建立減速器實驗場景,完成建模和格式處理,并收集裝配關(guān)系信息?;诜謱痈罴▉泶_定裝配序列規(guī)劃的裝配過程模型,并解決裝配序列問題;使用包圍盒碰撞檢測算法處理裝配過程中零件間的干涉或穿透問題。在Unity 3D平臺中導(dǎo)入減速器3D模型,編寫控制腳本,通過鼠標、鍵盤等交互方式,實現(xiàn)碰撞檢測及虛擬裝拆操作,并設(shè)計系統(tǒng)交互界面?!窘Y(jié)果】實驗結(jié)果表明,在應(yīng)用所構(gòu)建的系統(tǒng)后,能顯著提高用戶體驗和操作效率。【結(jié)論】與傳統(tǒng)裝配方法相比,虛擬裝拆操作不僅提高了教學(xué)和培訓(xùn)效果,還能有效降低設(shè)備損耗和成本。
關(guān)鍵詞:虛擬仿真;仿真設(shè)計;裝配序列;碰撞檢測
中圖分類號:TG95;TP391.9" " 文獻標志碼:A" "文章編號:1003-5168(2024)22-0027-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.22.006
Design and Implementation of Reducer Assembly Simulation Based on Virtual Reality
Abstract:[Purposes] To address the issues of lack of specificity and insufficient assembly precision in current virtual assembly environments,the reducer virtual assembly and disassembly system is constructed.[Methods] The study employs SolidWorks and 3ds Max software to establish the experimental scene for the reducer, completing modeling and format processing, and collecting assembly relationship information. Based on the layered partition method, the assembly process model for assembly sequence planning is determined to solve the assembly sequence problem. The bounding box collision detection algorithm is used to handle interference or penetration issues between adjacent parts during the assembly process. The 3D model of the gearbox is imported into the Unity 3D platform, where control scripts are written. Through mouse and keyboard controls, collision detection and virtual assembly and disassembly operations are realized, and the system interface is designed.[Findings] Experimental results show that the constructed system significantly enhances user experience and operational efficiency.[Conclusions] Compared with traditional assembly methods, virtual assembly and disassembly operations not only improve teaching and training effectiveness but also effectively reduce equipment wear and costs.
Keywords: virtual simulation; simulation design; assembly sequence ; collision detection
0 引言
在現(xiàn)代工業(yè)制造中,機械零件裝配是一個非常重要的環(huán)節(jié),其裝配性能的好壞將直接影響產(chǎn)品的質(zhì)量、可靠性及生產(chǎn)效率。然而,現(xiàn)有的虛擬裝配方法一般是在Solidworks、UG等三維軟件中繪制裝配圖、爆炸圖,或者將裝配過程以動畫的形式展現(xiàn)出來[1]。目前,這種虛擬裝配方法對真實的裝配環(huán)境模擬不夠具體,操作者依賴大量的圖紙、手冊及個人經(jīng)驗來指導(dǎo)操作,且因人為因素和操作技巧的不足,往往無法保證裝配的精確性和正確性,導(dǎo)致裝配效率低下、成本增加等[2]。為了解決上述問題,虛擬現(xiàn)實(virtual reality,VR)技術(shù)應(yīng)運而生,為機械裝配提供了全新的解決方案。
在虛擬仿真技術(shù)的應(yīng)用中,宋辛辛等[3]、張宏帥等[4]利用Solidworks、3ds Max等軟件建立實驗場景,并以Unity 3D為開發(fā)平臺,實現(xiàn)了對液壓元件的虛擬拆裝;謝振清等[5]利用碰撞檢測、坐標轉(zhuǎn)換等技術(shù),通過交互控制實現(xiàn)了模型的移動、旋轉(zhuǎn)、裝配功能。 上述研究在一定程度上實現(xiàn)了某些機械產(chǎn)品的虛擬化,但在裝配過程中仍以動畫的形式控制裝配路徑,并沒有求解出最優(yōu)的裝配序列。
因此,本研究以減速器拆裝實驗為研究對象,利用分層割集法對來確定裝配序列規(guī)劃,并用包圍盒碰撞檢測算法對系統(tǒng)交互界面進行設(shè)計。
1 系統(tǒng)總體設(shè)計
1.1 系統(tǒng)整體架構(gòu)
減速器裝配系統(tǒng)的整體框架可分為模型層、控制層和應(yīng)用層。模型層主要使用Solidworks軟件和3ds Max 軟件來完成減速器建模、格式處理等工作;控制層通過在Unity 3D 中導(dǎo)入減速器模型資源,從而完成碰撞檢測、虛擬裝配等工作;應(yīng)用層通過PC端來對減速器虛擬裝配場景進行發(fā)布。系統(tǒng)整體架構(gòu)如圖1所示。
1.2 系統(tǒng)開發(fā)流程
本研究以減速器的拆裝為例,進行虛擬裝配系統(tǒng)設(shè)計,開發(fā)流程圖如圖2所示。其中,技術(shù)方案主要包含以下四個步驟。首先,在Solidworks軟件中完成減速器的建模工作,并收集用于虛擬裝配時的裝配關(guān)系信息;其次,根據(jù)減速器裝配時零件的配合及約束關(guān)系,使用分層割集法來確定裝配序列規(guī)劃的裝配過程模型,得到裝配序列規(guī)劃;再次,將減速器的三維模型導(dǎo)入到3ds Max中,制作減速器裝配過程動畫,并將生成的資源文件導(dǎo)入到Unity 3D平臺中;最后,在Unity 3D平臺軟件中添加控制減速器拆裝的相關(guān)腳本,并通過鼠標、鍵盤等控制方式,實現(xiàn)對減速器裝拆操作。
2 減速器模型處理與裝配序列規(guī)
2.1 減速器模型處理
當減速器模型建立后,需要導(dǎo)入到3ds Max軟件中進行優(yōu)化處理,從而提高虛擬仿真系統(tǒng)的流暢性,減少系統(tǒng)運行時所占用的內(nèi)存。因此,需要在不影響減速器模型準確的前提下,通過調(diào)整面域值、偏差量等參數(shù)來減少模型的面數(shù)[6]。 模型優(yōu)化前后對比如圖3所示。優(yōu)化前的模型面數(shù)為97 750、頂點數(shù)為48 327;優(yōu)化后的模型面數(shù)為69 204、頂點數(shù)為34 054。優(yōu)化后模型面數(shù)減少了29.2%,頂點數(shù)減少了29.5%。
2.2 減速器模型裝配序列規(guī)劃
減速器在裝配過程中,需要按照一定的裝配序列將零件組裝起來,組裝序列是否合理將直接影響后續(xù)的裝配效率及質(zhì)量[7-9]。本研究采用分層割集法對各個組件中的零件裝配序列進行求解,從而獲得減速器最優(yōu)裝配序列。求解流程如圖4所示。
為了求解最優(yōu)的裝配序列,需要對零件進行編號,如圖5所示,零件名稱見表1。為了降低計算量,將減速器劃分為3層。其中,聚族1零件包含12、13、27,聚族2零件包含4、5,聚族3零件包含7、8,聚族4零件包含22、23,聚族5零件包含24、25,聚族6零件包含螺塞1、螺塞墊片2。
子裝配體ZPT1包含齒輪軸28、高速軸軸承9,子裝配體ZPT2包含低速軸18、平鍵17、齒輪19、定距環(huán)20、低速軸軸承21,子裝配體ZPT3包含上箱蓋10、通氣器14、螺釘15、窺視孔蓋16,子裝配體ZPT4包含聚族6、 箱體26、油標尺3。
根據(jù)分層割集法,求解出的每一層裝配序列見表2。減速器的最優(yōu)裝配序列為:(26-2-1-3)-(18-17-19-20-21)-28-9-11-(10-16-15-14)-8-7-25-24-5-4- 22-23-27-13-12。
3 減速器元件交互功能實現(xiàn)
3.1 碰撞檢測算法
在減速器虛擬拆裝過程中,為避免零件之間產(chǎn)生干涉,要對每個零件添加包圍盒碰撞器。Unity內(nèi)置的碰撞器有盒碰撞器(Box Collider)、球碰撞器(Sphere Collider)、膠囊碰撞器(Capsule Collider)和網(wǎng)絡(luò)碰撞器(Mesh Collider)。其中,Box Collider結(jié)構(gòu)簡單、效率高,適用于立方體,特別是長方體對象之間的碰撞;Mesh Collider密封性比較好,適用于形狀比較復(fù)雜的零件。因此,對形狀簡單、類似于長方體的零件可添加盒碰撞器Box Collider(Box Collider),對形狀復(fù)雜的零件可添加網(wǎng)絡(luò)碰撞器(Mesh Collider)。
對復(fù)雜的模型采用網(wǎng)絡(luò)碰撞器(Mesh Collider),雖會提高裝配精度,但也會降低碰撞效率。因此,本研究使用AABB層次包圍盒碰撞檢測算法,以提高碰撞效率。
3.1.1 AABB包圍盒樹的建立與更新。設(shè)組成對象的基本元素集合為S,對集合S采用自頂向下的方法構(gòu)造包圍盒樹[10-11]。自頂向下構(gòu)造包圍盒樹如圖6所示。
減速器零件具有剛體屬性,因此,包圍盒的更新只考慮對象運動,如果對象零件坐標點發(fā)生變化,就必須更新包圍盒樹。
設(shè)減速器零件沿[x]、[y]、[z]軸平移的向量為[T=(x,y,z)T],繞[x]、[y]、[z]軸的旋轉(zhuǎn)參數(shù)為[θ]、[φ]、[?],各坐標軸旋轉(zhuǎn)對應(yīng)的變換矩陣見式(1)至式(3)。
[Rot(x,θ)]、[Rot(y,φ)]、[Rot(z,?)]合成的旋轉(zhuǎn)矩陣見式(4)。
減速器零件經(jīng)平移和旋轉(zhuǎn)后,對其包圍盒進行坐標轉(zhuǎn)換,即可得到新狀態(tài)下的包圍盒。
3.1.2 AABB包圍盒間的相交測試。由分離軸定律推理可知,如果兩個AABB包圍盒在三維坐標軸上的投影區(qū)域都重合,則其必定相交[12]。
設(shè)AABB1的最小、最大頂點坐標分別為[P1(L10,L11,L12)]、[P2(H10,H11,H12)],AABB2的最小、最大頂點坐標分別為[Q1(L20,L21,L22)]、[Q2(H20,H21,H22)]。要判斷兩個零件是否相交,只要滿足式(5)中的一條,即可判斷兩個零件不相交。
3.1.3 AABB層次包圍盒與Mesh Collider 碰撞檢測算法。為了提高零件碰撞檢測的精確度,需要建立AABB多層次包圍盒,如果檢測到兩個零件接觸,Unity引擎中的OnCollisionEnter()就會被觸發(fā)。
建立接觸點集合[C=c0c1???cn-1cn]。設(shè)接觸點為[c0(x0,y0,z0)],AABB1[(xmin,ymin,zmin),(xmax,ymax,zmax)]包圍盒要滿足的條件見式(6)。
如果接觸點不在包圍盒內(nèi),則從集合[C]中刪除。一直遞歸到AABB1包圍盒葉子的節(jié)點,此時集合[C]為零件最終的接觸點。如果集合[C]是空集,則結(jié)束遞歸程序。當檢測到包圍盒內(nèi)包含有接觸點時,則證明兩個零件相接觸。
3.2 減速器零件的拾取與裝拆功能
3.2.1 減速器零件拾取功能。為了使零件與零件在虛擬場景中發(fā)生接觸時能及時被發(fā)現(xiàn),需要給每個零件添加包圍盒碰撞器,避免零件在裝配時發(fā)生干涉等現(xiàn)象。當鼠標接觸零件,且按下鼠標左鍵時,即可實現(xiàn)對零件的抓取移動。
3.2.2 減速器零件裝拆功能。為了實現(xiàn)減速器的準確裝配,該虛擬系統(tǒng)為每個零件設(shè)置有待裝配的位置。在裝配時,當零件被移動到對應(yīng)的安裝位置時,松開鼠標后,零件即被安裝到對應(yīng)位置。由于零件安裝時,裝配的第一個零件會被賦予Pigidbody重力屬性,在完成上一個零件裝配后,下一個零件才會被賦予以上屬性,直至完成所有減速器元件的裝配。
4 系統(tǒng)界面設(shè)計及發(fā)布
減速器拆裝系統(tǒng)界面主要包含減速器裝配和減速器拆解兩個模塊,如圖7所示。在完成減速器拆裝功能開發(fā)后,發(fā)布至Windows平臺,通過鍵盤和鼠標等控制方式,實現(xiàn)對減速器的裝拆操作。
5 結(jié)語
本研究主要對減速器虛擬拆裝系統(tǒng)總體設(shè)計、分層割集法裝配序列規(guī)劃、交互功能實現(xiàn)和系統(tǒng)設(shè)計等進行研究,使用包圍盒碰撞檢測算法解決裝配過程中可能存在的干涉或穿透問題,以Unity 3D軟件為開發(fā)平臺,并將減速器模型導(dǎo)入該軟件,實現(xiàn)碰撞檢測、虛擬裝拆等功能,完成減速器虛擬裝拆操作和系統(tǒng)交互界面的設(shè)計。
參考文獻:
[1]吳琪.基于Unity 3D的車間虛擬現(xiàn)實系統(tǒng)研究與實現(xiàn)[D].武漢:華中科技大學(xué),2020.
[2]馬帥.基于Unity3D的機械產(chǎn)品虛擬仿真及增強現(xiàn)實應(yīng)用技術(shù)研究[D].石家莊:河北科技大學(xué),2017.
[3]宋辛辛,陳永當,顧金芋,等.基于Unity3D的液壓元件虛擬拆裝實驗系統(tǒng)[J].微型電腦應(yīng)用,2022,38(7):7-11.
[4]張宏帥,姜寶柱.基于Unity3D的數(shù)字化工廠建模仿真系統(tǒng)[J].河南科技,2020,39(29):71-74.
[5]謝振清.基于Unity3D的虛擬裝配技術(shù)研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2018.
[6]田博.探討3DSMAX在虛擬現(xiàn)實構(gòu)建中三維模型建立的方法和技巧[J].中國管理信息化,2017,20(14):133-134.
[7]秦建華,鄧晨韻,李穩(wěn).基于分層割集法的行星齒輪減速器的裝配序列求解[J].制造業(yè)自動化,2017,39(3):60-63.
[8]ONESES M S, SONG C, WILLIAMSON L, et al. Hierarchical patterns of three-dimensional block copolymer films formed by electro-hydrodynamic jet printing and self-assembly[J].Nature Nanotechnology,2013,8:667-675.
[9]張根保,羅冬梅,冉琰等.基于相對熵排序的裝配序列質(zhì)量模糊評價方法[J].中國機械工程,2016,27(8):1089-1095.
[10]楊浩凡.基于Unity3D的虛擬肝臟手術(shù)形變建模與碰撞檢測研究[D].南昌:南昌大學(xué),2023.
[11]林菲,鄒玲,張聰.基于混合層次包圍盒的快速碰撞檢測算法[J].計算機仿真,2023,40(9):454-457.
[12]李永強.基于Unity3D的神經(jīng)外科虛擬手術(shù)訓(xùn)練軟件設(shè)計與開發(fā)[D].杭州:浙江工業(yè)大學(xué),2016.