柳有權(quán),李 婉,王愿超,徐 琨
?
基于碰撞檢測強(qiáng)化的實(shí)時(shí)爆炸視圖自動(dòng)生成算法研究
柳有權(quán),李 婉,王愿超,徐 琨
(長安大學(xué)信息工程學(xué)院,陜西 西安 710064)
爆炸視圖在機(jī)械設(shè)計(jì)和裝配實(shí)踐中有著廣泛的應(yīng)用,可幫助人們直觀地理解機(jī)械結(jié)構(gòu)和裝配關(guān)系。為解決仿真中的干涉問題,提出一種基于碰撞檢測強(qiáng)化的實(shí)時(shí)爆炸視圖自動(dòng)生成算法。首先,構(gòu)建各機(jī)械零件的方向包圍盒,根據(jù)包圍盒的大小和位置偏差決定零件的分離次序和方向,構(gòu)造爆炸分離模型。其次,基于真實(shí)世界物體互斥屬性,對裝配的零部件進(jìn)行實(shí)時(shí)碰撞檢測,借助碰撞響應(yīng)推動(dòng)各部件進(jìn)行進(jìn)一步分離。該方法簡單易實(shí)現(xiàn),保證了零部件之間的合理移動(dòng),同時(shí)避免穿透現(xiàn)象的發(fā)生。實(shí)驗(yàn)充分驗(yàn)證了算法可行性和通用性。
爆炸視圖;方向包圍盒;碰撞檢測;空間分離
爆炸視圖(exploded view)通過將裝配體中的零件按一定順序、方向和距離層層拆分,可以構(gòu)建出一種真實(shí)立體的表現(xiàn)形式,從而直觀地呈現(xiàn)零部件復(fù)雜的裝配關(guān)系。與剖視圖、平面圖、透視圖等方式相比,爆炸視圖更能清晰地展現(xiàn)內(nèi)部零件的形狀信息及其關(guān)聯(lián)關(guān)系、裝配序列以及安裝路徑。另外,爆炸視圖不僅可以視為裝配順序的可視化載體,在產(chǎn)品構(gòu)思、演示和宣傳等過程中的裝配、拆卸動(dòng)畫、工業(yè)制造、設(shè)備檢測、場外維護(hù)過程中的裝配指導(dǎo)、零部件手冊等方面,爆炸視圖有著廣泛應(yīng)用。
本文提出了一種基于碰撞檢測的爆炸視圖生成算法。通過構(gòu)建各機(jī)械零件的方向包圍盒(oriented bounding box,OBB),根據(jù)其位置偏差決定零件的分離方向,構(gòu)建爆炸分離模型;另外基于真實(shí)世界物體互斥屬性,對裝配的零部件進(jìn)行實(shí)時(shí)碰撞檢測,借助碰撞響應(yīng)推動(dòng)各部件進(jìn)行自動(dòng)分離,從而生成爆炸視圖效果,保證了零部件之間的合理移動(dòng),同時(shí)避免穿透現(xiàn)象的發(fā)生。本文還利用Hololens頭盔結(jié)合手勢實(shí)現(xiàn)了爆炸視圖的交互操作,使操作人員更直觀、更方便地了解整個(gè)裝配體的內(nèi)部結(jié)構(gòu)。
爆炸視圖常用于機(jī)械制造領(lǐng)域。于嘉鵬等[1-2]提出一種優(yōu)先搜索層次化裝配序列算法。該算法利用遞歸循環(huán)的思想可以實(shí)現(xiàn)復(fù)雜零件層次化爆炸視圖的自動(dòng)生成。通過多規(guī)則篩選算法,將整體復(fù)雜的任務(wù)分割成若干易于計(jì)算的子任務(wù),構(gòu)建干涉矩陣和交叉矩陣,對二者簡單運(yùn)算得出零部件間裝配關(guān)系和次序優(yōu)先級(jí)。另外,通過實(shí)時(shí)計(jì)算已分離部分的累積包圍盒,確定剩余零部件方向矢量,從而自動(dòng)生成有次序、有方向的層次性爆炸視圖。但該方法在初始化時(shí)需要進(jìn)行大量的相交檢測,在爆炸過程中還需要根據(jù)算法不斷計(jì)算包圍盒間的距離,因此,爆炸視圖生成效率低。
趙鴻飛等[3]提出了一種基于同步解除幾何約束的爆炸視圖自動(dòng)生成方法。在定義拆卸軸方向后,建立了干涉矩陣和拆卸約束矩陣,按照同步解除幾何約束的優(yōu)先順序?qū)α悴考M(jìn)行劃分,并判斷是否具有母子裝配關(guān)系。結(jié)合OBB算法和FDH (fixed direction hull)包圍盒算法,由外向內(nèi)分層等速率移動(dòng)零件,實(shí)現(xiàn)了裝配體爆炸視圖的自動(dòng)生成。但使用FDH包圍盒,其算法測試復(fù)雜、計(jì)算量大、效率不高。
邢宇飛等[4]提出一種利用蟻群算法求零部件分離順序的局部爆炸視圖自動(dòng)生成方法。該方法較上述2種方法更為簡單,通過直接給定零件爆炸距離的算法構(gòu)建爆炸效果。生成零部件之間的拆卸矩陣和連接矩陣計(jì)算內(nèi)部布局及零件運(yùn)動(dòng)方向,但蟻群算法收斂速度慢、易陷入局部最優(yōu)。如果初始信息不足,蟻群算法一般需要較長的搜索時(shí)間。
LI等[5-6]開發(fā)了基于圖像的爆炸視圖編輯工具,在爆炸前設(shè)置零部件的裝配次序和順序,通過二維圖像重疊放置的方式顯示爆炸效果。MOTOMASA[7]同樣根據(jù)給定的裝配方向、次序、距離,手動(dòng)繪制爆炸視圖。KUMAMOTO等[8]開發(fā)了可以自動(dòng)生成爆炸效果及爆炸動(dòng)畫的工具,但仍需對各個(gè)零件規(guī)定其裝配序列、方向和距離。
DRISKILL和COHEN[9]首次使用特征推算爆炸方向法自動(dòng)生成爆炸視圖,但僅局限于單一零件的裝配。MOHAMMAD和KROLL[10]通過遍歷零件間面面是否接觸,生成具有接觸關(guān)系的有向圖(ABOVE graph),將有向圖轉(zhuǎn)變?yōu)槌橄蟊P(guān)系的二維平面有向圖,最終繪制出實(shí)際立體爆炸視圖。
BRUNO等[11]利用投影推斷爆炸的大致方向。AGRAWALA等[12]提出了分步裝配,但需要手動(dòng)輸入零部件的幾何信息、接壤信息、約束方向等,不適用于復(fù)雜產(chǎn)品。LI等[13]受其啟發(fā),利用手工輸入的一種包含相對爆炸順序的有向圖生成三維模型爆炸視圖,但耗時(shí)長,僅限于50個(gè)零件以內(nèi)。
TATZGERN等[14]選擇在所有裝配體中最具有代表性的子裝配體,通過計(jì)算裝配體中每個(gè)零件分離包圍盒以及爆炸方向根據(jù)單元球體法進(jìn)行爆炸,并用評價(jià)法選擇生成爆炸視圖的視角從而生成了更為緊湊的爆炸視圖。但干涉檢測耗時(shí)長,且不能實(shí)現(xiàn)全局干涉檢測計(jì)算。
此外,目前建模軟件中如UG、Solidworks、Pro/ENGINEER Wildfire等,均具有生成爆炸視圖的功能,但其生成爆炸視圖的自動(dòng)化程度不高,且對復(fù)雜裝配體生成效果較差,缺乏層次感。而且該爆炸視圖無法直接導(dǎo)入到虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)平臺(tái)中。
本文首先利用各零件的包圍盒大小和位置偏差決定零件的分離次序和方向,對于仍無法分離的部件,則賦予其物理屬性,通過基于碰撞檢測的思路實(shí)施進(jìn)一步分離,解決了爆炸仿真中的裝配干涉問題,使得爆炸分離過程更加自然,更具表現(xiàn)力。
根據(jù)零部件層次結(jié)構(gòu),本文提出了基于碰撞檢測自動(dòng)生成爆炸視圖,通過解析現(xiàn)有模型各個(gè)部件之間的相對位置關(guān)系使之自動(dòng)分離,其流程如圖1所示。
圖1 自動(dòng)生成爆炸視圖流程圖
利用碰撞檢測來進(jìn)行自動(dòng)爆炸視圖生成,按理應(yīng)該是一個(gè)更貼近爆炸視圖內(nèi)涵的算法。但是由于機(jī)械零件通常相互交疊,尤其是包圍盒會(huì)相互交疊,當(dāng)施加物理屬性后,各個(gè)部件之間會(huì)產(chǎn)生碰撞效應(yīng),形成的碰撞力將彼此推開,但該方法生成的爆炸視圖雜亂無序。如何形成有序且層層剝離的效果,是問題難點(diǎn)和關(guān)鍵所在。
基于此,本文提出了一個(gè)粗分離和細(xì)分離相結(jié)合的爆炸視圖生成算法。相對于其他方法,本文算法有著操作簡單方便、實(shí)時(shí)且具有一定的物理效果的優(yōu)勢,只需要將完整的模型導(dǎo)入到場景中即可。
爆炸過程仿真是將原本裝配完整的零部件進(jìn)行有序拆分。爆炸過程粗分離仿真的流程如圖2所示。
圖2 爆炸過程粗分離流程圖
爆炸視圖通常以某個(gè)大部件作為基準(zhǔn),其他的部件相對做分離移動(dòng),這樣生成的效果圖才符合人們的認(rèn)知。由于零件中可能出現(xiàn)一些扁長結(jié)構(gòu),本文采用OBB包圍盒最大面積準(zhǔn)則來選擇基準(zhǔn)物體,即計(jì)算這個(gè)零件的包圍盒的3個(gè)面積值,選擇具有最大面積的包圍盒所對應(yīng)的對象作為基準(zhǔn)。
圖3 偏移方向(點(diǎn)表示物體中心,箭頭表示分離方向)
具體偽代碼如算法1。
算法1.計(jì)算分離方向偽代碼Program CalcOffset(Object baseObject, Object attachObject) Vector3 diff = CenterOfAttachObject – CenterOfBaseObject OffsetCode = 0 if (diff.x > 0) OffsetCode |= 0x01 else if (diff.x < 0) OffsetCode |= 0x02 if (diff.y > 0) OffsetCode |= 0x04 else if (diff.y < 0) OffsetCode |= 0x08 if (diff.z > 0) OffsetCode |= 0x10 else if (diff.z < 0) OffsetCode |= 0x20 End
為了讓零件分離呈現(xiàn)出從外到內(nèi)的爆炸次序,實(shí)現(xiàn)有序爆炸,計(jì)算其余零件距中心對象的距離并根據(jù)距離進(jìn)行降序排列。并根據(jù)排序結(jié)果依次對各個(gè)零件進(jìn)行分離,分離距離與原始偏移距離形成一定比例,保證了爆炸分離后各個(gè)部件相對位置關(guān)系仍然準(zhǔn)確,且具有層次感。
上一節(jié)中的粗分離方法對于大部分部件可以生成很好的爆炸視圖效果。但是對于中心點(diǎn)重合的部件就無法進(jìn)行分離,如圖4所示。
圖4 中心點(diǎn)重合導(dǎo)致粗分離失敗
本文引入碰撞檢測進(jìn)行此類情形的分離,即通過剛體碰撞檢測進(jìn)一步進(jìn)行爆炸分離。當(dāng)兩個(gè)碰撞體發(fā)生碰撞時(shí),碰撞響應(yīng)產(chǎn)生的作用力會(huì)推動(dòng)兩個(gè)物體朝著與彼此接觸相背離的方向運(yùn)動(dòng),從而實(shí)現(xiàn)爆炸效果。如圖5(a)所示,兩個(gè)物體交疊在一起,通過賦予兩個(gè)物體剛體和碰撞體屬性,兩個(gè)物體將發(fā)生碰撞;圖5(b)為發(fā)生碰撞后的效果,顯然兩個(gè)物體在碰撞作用下會(huì)產(chǎn)生旋轉(zhuǎn)運(yùn)動(dòng),整個(gè)場景的爆炸視圖會(huì)顯得非常凌亂,其結(jié)果不符合爆炸視圖要求;圖5(c)為左右兩個(gè)物體同時(shí)施加了旋轉(zhuǎn)約束條件,即禁止其產(chǎn)生旋轉(zhuǎn)運(yùn)動(dòng),只允許做平移移動(dòng),這樣兩個(gè)物體可以很好的分離。
施加了旋轉(zhuǎn)約束的碰撞檢測可以很好地將中心點(diǎn)重合的物體進(jìn)行分離,然后在此基礎(chǔ)上可再次采用2.1節(jié)的方法做進(jìn)一步分離。
圖5 碰撞分離模擬圖
本文在Unity3D下進(jìn)行爆炸過程仿真,采用C#腳本控制相關(guān)對象的屬性和運(yùn)動(dòng)。本文給出3個(gè)測試場景分別驗(yàn)證該算法的實(shí)用性和可行性。
第1個(gè)測試場景對比了文獻(xiàn)[13]和本文算法,如圖6(a)為文獻(xiàn)[13]生成的渦輪模型爆炸視圖效果,圖6(b)為本文算法下自動(dòng)生成的爆炸視圖。其中,標(biāo)紅部分為相應(yīng)包圍盒最大零部件,文獻(xiàn)[12]用時(shí)1 010 s,本文算法為實(shí)時(shí)生成,且得到的結(jié)果類似,更有層次感。
圖6 渦輪模型爆炸視圖對比
實(shí)驗(yàn)結(jié)果表明,本文算法不僅對于存在同軸和包含關(guān)系的模型具有可行性,并且在爆炸圖的視覺效果上,分離更加細(xì)化。
將該算法應(yīng)用到復(fù)雜的飛機(jī)模型上。圖7(a)為飛機(jī)模型的原始狀態(tài),圖7(b)為飛機(jī)零部件分層爆炸的效果圖。
同理,將該算法應(yīng)用到汽車模型上。為了更好的說明粗分離和細(xì)分離的主要功能,在汽車測試場景中鎖定一個(gè)視角(側(cè)視角),如圖8(a)為汽車模型的原始狀態(tài),圖8(b)為汽車零部件粗分離爆炸后的效果圖,圖8(c)為細(xì)分離爆炸后的效果圖。
圖7 飛機(jī)模型爆炸效果
圖8 汽車模型爆炸效果
由圖8可以清晰地看出算法效果:在粗分離下,中心不重合的車身呈現(xiàn)爆炸效果,但擁有同一中心點(diǎn)的汽車底盤和車廂兩者未發(fā)生分離。實(shí)驗(yàn)證明,經(jīng)過基于碰撞檢測的細(xì)分離后,兩者呈現(xiàn)明顯的理想效果。
為了更好的說明該算法下的爆炸視圖具有層次性,在汽車測試場景中鎖定另一個(gè)視角(俯角)突出分層爆炸效果,如圖9所示。
在該測試場景中,由圖9可以清晰地看出分層效果:圖9(a)中,外層車身作為第1層開始分離;隨后,車窗第2層進(jìn)行分離。圖9(b)前后排車輪以及車頭、車尾分別作為第3和第4層爆炸,之后作為車頭子節(jié)點(diǎn)的車燈等進(jìn)行爆炸。最后爆炸視圖生成全部完成,分層效果理想。
圖9 汽車模型分層爆炸視圖(俯視圖)效果
此外,基于碰撞檢測的層次化爆炸視圖生成算法與增強(qiáng)現(xiàn)實(shí)交互設(shè)備相結(jié)合。本文將爆炸視圖最終實(shí)現(xiàn)在Hololens頭盔上,利用增強(qiáng)現(xiàn)實(shí)技術(shù)使爆炸視圖生成效果更加生動(dòng)[15]。當(dāng)給定特定識(shí)別手勢如圖10(a)后,汽車模型如10(b)開始自動(dòng)分層爆炸,其效果如圖10(c)和圖10(d)所示。
(a) 手勢控制(b) 交互模式下的原始狀態(tài) (c) 交互模式下的 爆炸視圖(主)(d) 交互模式下的 爆炸視圖(側(cè))
本文提出了一種自動(dòng)生成爆炸視圖的新思路。通過計(jì)算相對位置關(guān)系的幾何算法作為主要判斷依據(jù)來決定零部件爆炸次序和方向,并利用帶有旋轉(zhuǎn)約束的碰撞檢測進(jìn)一步優(yōu)化分離操作,最終得到的帶有物理效果的爆炸視圖。實(shí)驗(yàn)充分驗(yàn)證其可行性和通用性。
由于本文基于零部件完整模型進(jìn)行爆炸分離,沒有對這些模型進(jìn)行切割剖分來生成更為細(xì)膩的爆炸視圖效果,因此效果上仍有改進(jìn)空間,未來將圍繞此開展相關(guān)工作。
[1] 于嘉鵬, 王成恩, 張聞雷. 基于裝配序列規(guī)劃的爆炸圖自動(dòng)生成方法[J]. 機(jī)械工程學(xué)報(bào), 2010, 46(21): 149-157.
[2] 于嘉鵬, 王健熙. 基于遞歸循環(huán)的層次化爆炸圖自動(dòng)生成方法[J]. 機(jī)械工程學(xué)報(bào), 2016, 13(7): 175-188.
[3] 趙鴻飛, 張琦, 王海濤, 等. 基于同步約束解除的零件爆炸圖自動(dòng)生成方法[J]. 中國機(jī)械工程, 2015, 26(1): 70-73.
[4] 邢宇飛, 王成恩, 于嘉鵬. 基于蟻群算法的爆炸圖自動(dòng)生成方法[J]. 東北大學(xué)學(xué)報(bào), 2012, 33(6): 883-886.
[5] LI W, AGRAWALA M. Interactive exploded views from 2D images: US, 20050248560 [P]. 2005-11-10. http://www.freepatentsonline.com/y2005/0248560.html.
[6] LI W, AGRAWALA M, SALESIN D. Interactive image-based exploded view diagrams [C]//Proceedings Graphics Interface Conference. New York: ACM Press, 2004: 203-212.
[7] MOTOMASA K. Exploded view automatic creation apparatus, storage media and methods: EP, 20030043177 [P].2003-03-06. http://www.freepatentson line.com/y2003/0043177.html.
[8] KUMAMOTO K, SHIMOTSUKA Y, ISHIDA T, et al. Apparatus for producing exploded view and animation of assembling, and method thereof: US, 7262766 [P]. 2007-08-28. http://www.freepatentsonline.com/7262766.html.
[9] DRISKILL E, COHEN E. Interactive design, analysis, and illustration of assemblies [C]//Proceedings of the Symposium on Interactive 3D Graphics. New York: ACM Press, 1995: 27-33.
[10] MOHAMMAD R, KROLL E. Automatic generation of exploded view by graph transformation [C]//The Ninth Conference on Artificial Intelligence for Applications. New York: IEEE Press, 1993: 368-374.
[11] BRUNO J M, YAMROM B, DAVIS J E. Method and system for generating automated exploded views: US, 7295201 [P]. 2007-11-13. http://www.freepatentsonline. com/7295201.html.
[12] AGRAWALA M, PHAN D, HEISER J, et al. Designing effective step-by-step assembly instructions [J]. ACM Transactions on Graphics, 2003, 22(3): 828-837.
[13] LI W, AGRAWALA M, CURLESS B, et al. Automated generation of interactive 3D exploded view diagrams [J]. ACM Transactions on Graphics, 2008, 27(3): 101-109.
[14] TATZGERN M, KALKOFEN D, SCHMALSTIEG D. Multi-perspective compact explosion diagrams [J]. Computers and Graphics, 2011, 35(1): 135-147.
[15] 潘仁宇, 孫長樂, 熊偉, 等. 虛擬裝配環(huán)境中碰撞檢測算法的研究綜述與展望[J]. 計(jì)算機(jī)科學(xué), 2016, 43(S2): 136-139.
Real-Time Automatic Generation Algorithm of Exploded View with Collision Detection Enhancement
LIU You-quan, LI Wan, WANG Yuan-chao, XU Kun
(School of Information Engineering, Chang’an University, Xi’an Shaanxi 710064, China)
Exploded view has been widely applied in mechanical design and assembly practice, facilitating the understanding of the mechanical structure and assembly relationship visually. To solve the interference problem in simulation, this paper presents an automatic exploded view generation algorithm enhanced by collision detection. Firstly, according to the size and position deviation of the bounding boxes, the sequence and direction of explosion is calculated to conduct the initial separation. Secondly, based on the mutual exclusion properties of objects, the real-time collision detection is done to further separate exploded parts to enhance the exploded view effect with physics effects. The method is easy to implement, allows for reasonable movement between parts and avoids potential penetrations. The experiments have verified our method’s feasibility and universality.
exploded view; oriented bounding box; collision detection; spatial separation
TP 391
10.11996/JG.j.2095-302X.2019020235
A
2095-302X(2019)02-0235-05
2018-08-31;
2018-09-14
中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金(310824173401)
柳有權(quán)(1976-),男,湖北秭歸人,教授,博士,碩士生導(dǎo)師。主要研究方向?yàn)橛?jì)算機(jī)圖形學(xué)、虛擬現(xiàn)實(shí)技術(shù)。E-mail:youquan@chd.edu.cn