汪常洋,施 群,游玉霖
(上海大學(xué) 機(jī)電工程與自動(dòng)化學(xué)院,上海 200072)
在五軸數(shù)控加工中,加工復(fù)雜的自由曲面型面時(shí)由于機(jī)床運(yùn)動(dòng)的復(fù)雜性,刀具很有可能會(huì)與機(jī)床或者夾具發(fā)生碰撞,對(duì)零件來(lái)講直接導(dǎo)致刀桿干涉和局部干涉的過(guò)切,對(duì)機(jī)床主軸頭及刀具來(lái)講可能與工件夾具發(fā)生全局干涉。對(duì)于大型復(fù)雜零件五軸加工的干涉碰撞檢測(cè)而言,由于工件形狀復(fù)雜和刀具運(yùn)動(dòng)復(fù)雜,使得每一個(gè)加工位置的計(jì)算量很大,而且在整個(gè)加工軌跡生成過(guò)程中所有加工位置尤其是重疊區(qū)域都需要進(jìn)行檢測(cè)。因此,高效碰撞檢測(cè)至關(guān)重要。
就上述問(wèn)題,齊曉松[1]在處理干涉檢測(cè)中使用了動(dòng)態(tài)的OBB 模型檢測(cè),當(dāng)檢測(cè)到與刀具發(fā)生碰撞時(shí),它將被劃分。這種方法雖然在一定程度上減少了內(nèi)存的消耗,但是前提是針對(duì)某一檢測(cè)位置,由于每更新一次刀具位姿就會(huì)重新動(dòng)態(tài)的進(jìn)行工件的OBB 模型的建立,很難快速的結(jié)束檢測(cè)的。彭芳瑜[2]等人在構(gòu)建OBB 模型中由于沒(méi)有考慮機(jī)床加工本身特點(diǎn),沒(méi)能夠?qū)⒂?jì)算量簡(jiǎn)化,也就不能保證計(jì)算的效率,同時(shí)在處理全局干涉的判定中,不能準(zhǔn)確的判定全局干涉和局部干涉。鄒益勝[3]提出了基于混合包圍盒的改進(jìn),為了進(jìn)一步加速排除不相交的物體,在每個(gè)物體的頂層OBB 增加一個(gè)包圍球,在進(jìn)行OBB 間的相交測(cè)試前,先進(jìn)行包圍球間的相交測(cè)試。此方法在一定程度上加快了碰撞區(qū)域的檢測(cè),但是球包圍盒不致密性導(dǎo)致了排除的效率不是很高。王偉[4]等人通過(guò)對(duì)傳統(tǒng)算法的改進(jìn)后,跳過(guò)剛開(kāi)始進(jìn)行的兩個(gè)葉子節(jié)點(diǎn)之間的包圍盒間的重疊測(cè)試,而直接進(jìn)行包圍盒與基本幾何元素的相交測(cè)試和基本幾何元素間的相交測(cè)試。郭凌云[5]提出一種空間分解與層次包圍盒相結(jié)合的碰撞檢測(cè)算法,并利用物體運(yùn)動(dòng)的時(shí)空相關(guān)性來(lái)加速物體之間的碰撞檢測(cè)速度。在包圍盒碰撞檢測(cè)時(shí)采用加入預(yù)判的OBB 相交測(cè)試方法,減少了包圍盒的相交測(cè)試計(jì)算。許熠[6]提出了一種改進(jìn)型的基于混和層次包圍盒的碰撞檢測(cè)算法,采用了獨(dú)創(chuàng)性的樹(shù)型結(jié)構(gòu),并且在樹(shù)的遍歷和更新上也作出了改進(jìn)Redon[7]和Jimenez P[8]等人在計(jì)算精度性方面進(jìn)行了深入的研究,提出的算法較好的克服了離散碰撞檢測(cè)算法存在的一些問(wèn)題,但通常運(yùn)算速度相對(duì)較慢,無(wú)法達(dá)到實(shí)時(shí)系統(tǒng)的要求。
綜述以上文獻(xiàn),在干涉檢測(cè)方面,有些文獻(xiàn)不惜算法和時(shí)間的復(fù)雜性進(jìn)行求取無(wú)干涉區(qū)域,不適合廣泛使用。針對(duì)以上問(wèn)題提出了一種先進(jìn)行工件球包圍盒與刀具膠囊體包圍盒檢測(cè)方法進(jìn)行快速檢測(cè)刀具與工件可能的碰撞區(qū)域,再進(jìn)行相對(duì)精確的OBB 檢測(cè)。在此基礎(chǔ)上進(jìn)行干涉類(lèi)型的劃分,根據(jù)不同的干涉類(lèi)型求取曲面干涉三角片與刀具的精確干涉量。本方法平衡了構(gòu)建包圍盒的復(fù)雜度和包圍盒緊密性的關(guān)系,根據(jù)機(jī)床加工特點(diǎn),從各種算法的優(yōu)點(diǎn)和最適用范圍出發(fā),將刀具等效為構(gòu)造簡(jiǎn)單而又相對(duì)緊密的膠囊體包圍盒,利用刀具膠囊體包圍盒與工件球包圍盒進(jìn)行檢測(cè),然后再進(jìn)行相對(duì)復(fù)雜并且更加精確的OBB 包圍盒的準(zhǔn)精確檢測(cè)。在整個(gè)過(guò)程中,“有數(shù)據(jù)再構(gòu)建”和“有碰撞再更新”的策略進(jìn)一步加快了整個(gè)碰撞過(guò)程中的檢測(cè)效率。此方法檢測(cè)結(jié)果與傳統(tǒng)的只有OBB模型檢測(cè)的方法進(jìn)行了對(duì)比。
OBB 模型包圍盒技術(shù)是利用簡(jiǎn)單的規(guī)則幾何體來(lái)代替復(fù)雜的不規(guī)則幾何體,先對(duì)物體的包圍盒進(jìn)行粗略檢測(cè),如果包圍盒相交,其包圍的真實(shí)幾何體才有可能相交;如果包圍盒不相交,其包圍的真實(shí)幾何體也一定不相交。刀具屬于運(yùn)動(dòng)部件,位姿不斷變化,故可根據(jù)對(duì)象位置更新刀軸方向的方向包圍盒表示刀具。
由于平底刀為圓柱體,可直接建立如圖1 所示的刀軸包圍盒OBB 模型。刀具OBB 包圍盒通過(guò)中心和3 個(gè)方向上的長(zhǎng)度以及在全局坐標(biāo)系下的變換矩陣T來(lái)定義。設(shè)OBB 的中心為Center,3 個(gè)相互正交的方向?yàn)閂1、V2和V3,3 個(gè)方向上相應(yīng)的長(zhǎng)度為r1、r2和r3。
當(dāng)?shù)毒甙l(fā)生旋轉(zhuǎn)后,只要對(duì)OBB 的基底進(jìn)行同樣的旋轉(zhuǎn)即可。對(duì)于刀具OBB 而言,其總變換矩陣T=T1T2,其OBB 數(shù)據(jù)結(jié)構(gòu)為:element T,其中T1為平移轉(zhuǎn)換T2為旋轉(zhuǎn)轉(zhuǎn)換。在此不用轉(zhuǎn)換基底,由于刀具OBB 模型的建立是很簡(jiǎn)單的,所以刀具OBB 模型發(fā)生位姿變換的時(shí)候可以通過(guò)重新建立數(shù)據(jù)來(lái)更新OBB 模型。
1.2.1 基于八叉樹(shù)的工件曲面表示
八叉樹(shù)包圍盒建立的過(guò)程是對(duì)三角面片數(shù)據(jù)進(jìn)行定位和分割,得到八叉樹(shù),節(jié)點(diǎn)采用指針?lè)绞酱鎯?chǔ),其中包含了節(jié)點(diǎn)的中心點(diǎn)位置和三邊長(zhǎng)。
由于干涉檢測(cè)是在八叉樹(shù)節(jié)點(diǎn)和刀具體OBB之間進(jìn)行的。被加工曲面一般是固定在機(jī)床上的,且按坐標(biāo)軸方向排列,故可以采用八叉樹(shù)方法對(duì)其進(jìn)行描述。八叉樹(shù)節(jié)點(diǎn)可被認(rèn)為是一個(gè)有固定位置和方向的OBB 模型,所以八叉樹(shù)節(jié)點(diǎn)也使用與OBB 相同的數(shù)據(jù)結(jié)構(gòu)來(lái)描述。為了更有效的進(jìn)行數(shù)據(jù)的儲(chǔ)存以及查找,這里用data 的或與非進(jìn)行節(jié)點(diǎn)的標(biāo)記,當(dāng)節(jié)點(diǎn)中沒(méi)有數(shù)據(jù)時(shí)不需要建立此節(jié)點(diǎn),不僅節(jié)省內(nèi)存,而且在查詢(xún)數(shù)據(jù)的時(shí)候會(huì)直接跳過(guò)沒(méi)有數(shù)據(jù)的節(jié)點(diǎn),提高了整體的計(jì)算時(shí)間。
1.2.2 八叉樹(shù)的遞歸生成
遞歸生成算法流程描述見(jiàn)圖2 所示。
1.3.1 分離軸理論應(yīng)用
分離軸理論[9]:如果兩個(gè)OBB 模型在一條軸上的投影不重疊,則稱(chēng)該軸為分離軸。如果兩個(gè)對(duì)象存在一條分離軸,則可以判定這兩個(gè)物體不相交。如圖3所示,需要判斷兩個(gè)任意方向的包圍盒A和B是否相交。A的半邊長(zhǎng)為a1,a2,a3,中心位于點(diǎn)AO,3 個(gè)軸方向?yàn)槭噶緼X,AY,AZ,標(biāo)記為同理:B也按照上述的方式描述。
如圖3 所示,計(jì)算方法為:給定一根方向?yàn)閚的軸,穿過(guò)原點(diǎn),然后將包圍盒A和B投影到該軸上,包圍盒中心點(diǎn)距離值為:S=T·n/|n|。
進(jìn)一步,根據(jù)半邊長(zhǎng)之和是否小于他們中點(diǎn)間的距離來(lái)判斷A和B的投影段是否相交。即當(dāng)式(1)成立時(shí),包圍盒在軸上的投影段是不相交:
在軸上由A的投影段的半邊長(zhǎng)為A的3 條半邊長(zhǎng)在各自正交邊方向上半徑向量的模數(shù)之和。
其中:
1.3.2 檢測(cè)算法的改進(jìn)
由于OBB檢測(cè)較為復(fù)雜,所以在檢測(cè)時(shí)間上消耗較多。而包圍球的相交測(cè)試代價(jià)最小,但是由于包圍球的緊密性較差會(huì)包容不會(huì)碰撞的OBB模型,同樣也是消耗了測(cè)試時(shí)間。結(jié)合球包圍盒和比球包圍盒緊密而消耗檢測(cè)時(shí)間又小的膠囊體包圍盒。將刀具膠囊體表示為所有到刀軸線段的距離等于刀具半徑R的點(diǎn)的集合,根據(jù)工件的球包圍盒中心到刀軸線段的距離是否小于刀具半徑R來(lái)快速的判定工件包圍盒是否與刀具膠囊體包圍盒碰撞,碰撞如圖4 所示。此方法結(jié)合了刀具本身的長(zhǎng)比例特點(diǎn)。
碰撞檢測(cè)過(guò)程:先對(duì)工件構(gòu)造包圍球,與刀具膠囊體包圍盒進(jìn)行粗檢。發(fā)現(xiàn)有相交的包圍球后,再對(duì)相交的包圍球內(nèi)的工件構(gòu)造OBB包圍盒,同時(shí)進(jìn)行刀具OBB包圍盒更新。
初步檢測(cè)的方法仍不能很精確的檢查出是否真正發(fā)生了干涉。所以,有必要在上述的檢測(cè)結(jié)果上進(jìn)行進(jìn)一步的三角片與刀具精確檢測(cè)。
五軸平底刀數(shù)控加工復(fù)雜曲面過(guò)程中,刀具與曲面干涉類(lèi)型也比較復(fù)雜。根據(jù)干涉現(xiàn)象在刀具上產(chǎn)生的位置不同,干涉可分為局部干涉和全局干涉兩類(lèi),兩種干涉形式對(duì)應(yīng)著不同的干涉特征,分析如下:
2.1.1 局部干涉特征分析
局部干涉,指在加工曲面時(shí)刀底切削了曲面上不該切削的部分。
局部干涉特征:如圖5 所示,復(fù)雜曲面為已知,切觸點(diǎn)為CC,刀位點(diǎn)為CL,刀具半徑為R,刀軸矢量為i,刀具與加工曲面發(fā)生干涉的條件是:
其中,Pt為刀具底面上的所有點(diǎn);P為Pt點(diǎn)在曲面上的刀軸方向的投影;n為P點(diǎn)的曲面法矢。
2.1.2 全局干涉特征分析
全局干涉,指刀桿與加工曲面或者其相鄰的約束表面之間發(fā)生的碰撞。
全局干涉特征:如圖6 所示,復(fù)雜曲面已知,切觸點(diǎn)為CC,刀位點(diǎn)為CL,刀具半徑為R,刀軸矢量為i,刀具與加工曲面發(fā)生刀桿干涉的條件是:
其中,Pt為刀具底面上的所有點(diǎn);P為Pt點(diǎn)在加工曲面上的投影;n為P點(diǎn)的曲面法矢。如圖6 所示,在有些加工狀況比較惡劣的情況下會(huì)出現(xiàn)超干涉,其發(fā)生的條件是:(Pt-P)·n>0,|Pt-CL| <R,并且刀軸矢量i與全局干涉三角片存在交點(diǎn)。
經(jīng)檢測(cè)找出所有產(chǎn)生碰撞的三角片,以及相對(duì)應(yīng)的三角片邊與刀軸公垂線的垂足點(diǎn),計(jì)算出三者中最大干涉距離di,然后計(jì)算所有干涉三角片最大干涉量dmax,如圖7 所示。
本文提出了一種先進(jìn)行工件球包圍盒與刀具膠囊體包圍盒檢測(cè)方法進(jìn)行快速檢測(cè)刀具與工件可能的碰撞區(qū)域。在此基礎(chǔ)上進(jìn)行不同干涉類(lèi)型的判別,并根據(jù)不同的干涉類(lèi)型求取三角片與刀具的精確干涉量。其實(shí)施流程圖,如圖8 所示。
對(duì)比傳統(tǒng)和改進(jìn)的方法說(shuō)明后者效率有所提高。模型如圖9 所示,自由曲面STL 文件數(shù)據(jù)的三角誤差是0.02mm,平底刀刀具半徑RN=5mm,刀具長(zhǎng)度TL=150mm。虛擬加工軟件平臺(tái)是VERICUT,刀軌以及干涉區(qū)域顯示軟件平臺(tái)是Visual Studio 2010。
圖9 刀具與工件的加工碰撞
如圖9a 所示在加工到某一位置時(shí)刀具與工件發(fā)生了碰撞,圖9b 表示的是工件八叉樹(shù)模型的可能碰撞區(qū)域。
表格1 表示檢測(cè)耗時(shí),可以看出檢測(cè)效率提高了。
表1 檢測(cè)耗時(shí)情況
從圖10 的加工狀態(tài)可以看出,刀具與零件的碰撞區(qū)域不僅可以檢測(cè)出來(lái),而且進(jìn)行了干涉處理,保證了被加工零件表面的質(zhì)量。
圖10 刀具干涉處理之后的加工狀態(tài)
本文提出的五軸數(shù)控加工碰撞干涉檢測(cè)方法,將碰撞干涉檢測(cè)劃分為粗略檢測(cè)和詳細(xì)檢測(cè),膠囊體包圍盒對(duì)刀具的近似誤差很小,工件的球包圍盒與刀具的膠囊體包圍盒相結(jié)合能快速準(zhǔn)確地確定可能存在碰撞干涉的刀位點(diǎn),將刀具的膠囊體包圍盒檢測(cè)與刀具OBB 檢測(cè)分開(kāi),在上述檢測(cè)結(jié)果的基礎(chǔ)上進(jìn)行檢測(cè),有效提高了碰撞干涉檢測(cè)的效率。“碰撞再更新”的策略也對(duì)檢測(cè)效率有很大的提升。在上述的檢測(cè)基礎(chǔ)上根據(jù)不同的干涉類(lèi)型做出判斷和處理。最后進(jìn)行了干涉檢測(cè)的三維仿真實(shí)現(xiàn)來(lái)驗(yàn)證效果,結(jié)果證明此方法不僅有效而且實(shí)用。
[1]齊曉松,胡青泥,劉晶. 基于多視角的動(dòng)態(tài)八叉樹(shù)碰撞檢測(cè)算法[J]. 東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,32(5):418-423.
[2]彭芳瑜,蘇永春,鄒孝明,等. 大型螺旋槳五軸加工中基于方向包圍盒層次樹(shù)的全局干涉碰撞檢測(cè)[J]. 中國(guó)機(jī)械工程,2007,18(3),4:41 -50.
[3]鄒益勝. 虛擬樣機(jī)環(huán)境下實(shí)時(shí)碰撞檢測(cè)算法研究[D].重慶:西南交通大學(xué),2010.
[4]王 偉,馬 峻,劉 偉. 基于OBB 包圍盒的碰撞檢測(cè)研究與應(yīng)用[J]. 計(jì)算機(jī)仿真,2009,67(11):15 -19.
[5]郭凌云,鄭延斌,劉晶晶. 基于時(shí)空相關(guān)性的快速碰撞檢測(cè)算法[J]. 計(jì)算機(jī)應(yīng)用與軟件,2013(12):62 -64.
[6]許熠. 基于混合包圍盒的碰撞檢測(cè)算法的優(yōu)化研究[D]. 南京:南京理工大學(xué),2013.
[7]Redon S,Kheddar A,Coquillarl S. Fast continuous collision detection between rigid bodies[C]. Computer Graphics Forum,2002. 21(3):279 -287.
[8]Jimenez P,Thomas F. Torras C. Collision detection:survey[J].Computers and Graphics,2001,25(2):269 -285.
[9]朱聃. 五軸數(shù)控加工全局干涉檢測(cè)技術(shù)研究與系統(tǒng)開(kāi)發(fā)[D].南京:南京航空航天大學(xué),2007.