本發(fā)明涉及實(shí)時(shí)碰撞檢測(cè)技術(shù)領(lǐng)域,具體涉及一種虛擬齒輪測(cè)量中心上回轉(zhuǎn)體工件快速碰撞檢測(cè)的方法。
背景技術(shù):
虛擬齒輪測(cè)量中心是齒輪測(cè)量機(jī)和虛擬現(xiàn)實(shí)技術(shù)的有機(jī)結(jié)合,以真實(shí)齒輪測(cè)量中心為基礎(chǔ),在計(jì)算機(jī)中以軟件形式為主,沒(méi)有真實(shí)量?jī)x實(shí)體,卻有真實(shí)量?jī)x感覺(jué)和功能的虛擬機(jī)。虛擬齒輪測(cè)量中心的掃描檢測(cè)技術(shù)實(shí)現(xiàn)了系統(tǒng)的虛擬測(cè)量功能,即虛擬測(cè)頭與被測(cè)虛擬工件表面的連續(xù)掃描檢測(cè),它將直接影響到誤差采集系統(tǒng)功能的完整性。
被測(cè)虛擬工件采用三維建模,一般利用三角面片來(lái)逼近真實(shí)工件的復(fù)雜表面。目前虛擬機(jī)常用的碰撞檢測(cè)算法是基于Voronoi圖的算法,采用遍歷式掃描碰撞檢測(cè)算法,需要計(jì)算測(cè)頭相對(duì)于工件模型上的所有面片的距離,從而找到最近的面片。尤其高精度的回轉(zhuǎn)體工件模型的三角面片數(shù)將急劇增加,碰撞檢測(cè)時(shí)間延長(zhǎng),從而大大增加仿真時(shí)間,直接導(dǎo)致仿真測(cè)量運(yùn)行速度太慢。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要提供一種適用于虛擬齒輪測(cè)量中心上回轉(zhuǎn)體工件快速碰撞檢測(cè)的方法,以解決虛擬齒輪測(cè)量中心復(fù)雜回轉(zhuǎn)體工件的碰撞檢測(cè)時(shí)間過(guò)長(zhǎng),仿真測(cè)量運(yùn)行速度太慢的問(wèn)題。
為了解決達(dá)到上述目的,本發(fā)明提供的解決方案是:一種適用于虛擬齒輪測(cè)量中心上回轉(zhuǎn)體工件快速碰撞檢測(cè)的方法,包括以下步驟:
1)、在虛擬齒輪測(cè)量中心上加載已經(jīng)構(gòu)建好的回轉(zhuǎn)體工件三角網(wǎng)格模型:虛擬齒輪測(cè)量中心的回轉(zhuǎn)體工件是基于中心的對(duì)稱的,由多個(gè)三角面片集組成;假設(shè)工件外徑為D,Z方向最大最小坐標(biāo)分別為Zmin和Zmax;
2)、構(gòu)建回轉(zhuǎn)體工件的最小圓柱體包圍盒:構(gòu)建的最小圓柱體包圍盒與工件軸線重合,直徑等于工件最大外徑D,Z方向最大最小坐標(biāo)分別為Zmin和Zmax;
3)、對(duì)圓柱體包圍盒進(jìn)行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成M個(gè)扇區(qū),Z方向等高度剖分成N份,從而將工件剖分成得到M×N個(gè)扇形區(qū)域。
扇區(qū)ki,j的Z向范圍和扇區(qū)角度范圍可由以下公式計(jì)算:
其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1;
4)、讀取虛擬測(cè)頭的位置P(Px,Py,Pz)和測(cè)頭半徑,計(jì)算測(cè)頭極角范圍和Z向高度范圍,從而判斷測(cè)頭落于哪些小扇區(qū)的范圍內(nèi),并存儲(chǔ)該扇區(qū)序號(hào)ki,j;
5)、將所有與測(cè)頭相交的扇區(qū)對(duì)應(yīng)的三角面片集作為候選面片集;
6)、對(duì)候選面片集進(jìn)行遍歷碰撞檢測(cè)并返回測(cè)頭到最近面片的距離值。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是:
1、方法簡(jiǎn)單:本發(fā)明針對(duì)回轉(zhuǎn)體工件的結(jié)構(gòu)和測(cè)量動(dòng)作特點(diǎn),進(jìn)行扇形剖分,測(cè)頭所在扇區(qū)容易確定;
2、有效提高虛擬環(huán)境下的碰撞檢測(cè)效率:本發(fā)明是基于遍歷式掃描碰撞檢測(cè)算法提出的,原方法中需要對(duì)模型的所有三角面片進(jìn)行碰撞距離計(jì)算,有效的碰撞檢測(cè)數(shù)據(jù)多,對(duì)于復(fù)雜模型來(lái)說(shuō)數(shù)據(jù)更多,費(fèi)時(shí)費(fèi)力,而本發(fā)明是對(duì)復(fù)雜模型先進(jìn)行分區(qū)預(yù)處理,提取有可能發(fā)生碰撞的模型數(shù)據(jù),搜索出測(cè)頭附近的候選三角面片集,再對(duì)候選面片集進(jìn)行遍歷碰撞檢測(cè),碰撞檢測(cè)時(shí)間大大縮短,從而大大縮短仿真時(shí)間,仿真測(cè)量運(yùn)行速度大幅度提升。
附圖說(shuō)明
圖1為回轉(zhuǎn)體工件坐標(biāo)系示意圖;
圖2為回轉(zhuǎn)體工件XY平面扇形剖分示意圖;
圖3為回轉(zhuǎn)體工件Z向剖分示意圖;
圖4為實(shí)施例1中的測(cè)頭僅與一個(gè)小扇區(qū)碰撞的示意圖;
圖5為實(shí)施例2中的測(cè)頭與2個(gè)小扇區(qū)碰撞的示意圖;
圖6為實(shí)施例3中的測(cè)頭與4個(gè)小扇區(qū)碰撞的示意圖。
具體實(shí)施方式
本發(fā)明提供的一種適用于虛擬齒輪測(cè)量中心上回轉(zhuǎn)體工件快速碰撞檢測(cè)的方法,包括以下步驟:
步驟1)、在虛擬齒輪測(cè)量中心上加載已經(jīng)構(gòu)建好的回轉(zhuǎn)體工件三角網(wǎng)格模型:參見(jiàn)圖1,虛擬齒輪測(cè)量中心的回轉(zhuǎn)體工件是基于中心的對(duì)稱的,由多個(gè)三角面片集組成;假設(shè)工件外徑為D,Z方向最大最小坐標(biāo)分別為Zmin和Zmax;
步驟2)、構(gòu)建回轉(zhuǎn)體工件的最小圓柱體包圍盒:構(gòu)建的最小圓柱體包圍盒和工件軸線重合,直徑等于工件最大外徑D,Z方向最大最小坐標(biāo)分別為Zmin和Zmax;
步驟3)、參見(jiàn)圖2和圖3,對(duì)圓柱體包圍盒進(jìn)行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成M個(gè)扇區(qū),Z方向等高度剖分成N份,從而將工件剖分成得到M×N個(gè)扇形區(qū)域。扇區(qū)ki,j的Z向范圍和扇區(qū)角度范圍可由以下公式計(jì)算:
其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1;
步驟4)、讀取虛擬測(cè)頭的位置P(Px,Py,Pz)和半徑,計(jì)算測(cè)頭極角范圍和Z向高度范圍,從而判斷測(cè)頭落于哪些小扇區(qū)的范圍內(nèi),也就說(shuō),判斷發(fā)生角度和高度的相交的扇區(qū),并存儲(chǔ)該扇區(qū)序號(hào)ki,j;
步驟5)、參見(jiàn)圖4~圖6,將所有與測(cè)頭相交的扇區(qū)對(duì)應(yīng)的三角面片集作為候選面片集??赡芩阉鞯?~4個(gè)扇區(qū),如測(cè)頭位于圖4所示位置時(shí)搜索到1個(gè)扇區(qū);如測(cè)頭位于圖5所示位置時(shí)搜索到2個(gè)扇區(qū);測(cè)頭位于圖6所示位置時(shí),會(huì)搜索到上下相鄰和左右相連的一共4個(gè)扇區(qū)上。最多搜索到4個(gè)扇區(qū)。
步驟6)、對(duì)候選面片集進(jìn)行遍歷碰撞檢測(cè)并返回測(cè)頭到最近面片的距離值。
在測(cè)試過(guò)程中:實(shí)際碰撞檢測(cè)的次數(shù)跟測(cè)頭與工件相對(duì)位置相關(guān),一次搜索的總碰撞次數(shù)=M*N+1~4個(gè)扇區(qū)的總面片數(shù)。當(dāng)測(cè)頭位于圖4時(shí)總碰撞次數(shù)=M*N+1個(gè)扇區(qū)的面片數(shù);當(dāng)測(cè)頭位于圖5位置時(shí),總碰撞次數(shù)=M*N+2個(gè)扇區(qū)的面片數(shù)。當(dāng)測(cè)頭位于圖6位置時(shí),總碰撞次數(shù)=M*N+4個(gè)扇區(qū)的面片數(shù)。單個(gè)扇區(qū)面片數(shù)≥總面片數(shù)/(M*N),因?yàn)榻?jīng)常會(huì)出現(xiàn)一個(gè)三角面片位于多個(gè)扇區(qū)的情況。理論上M和N越大,扇區(qū)個(gè)數(shù)越多,單個(gè)扇區(qū)內(nèi)的三件面片數(shù)越少,搜索次數(shù)也越少,搜索效率也越高。M值一般根據(jù)工件的自然分齒來(lái)確定;N值可根據(jù)測(cè)頭直徑大小來(lái)確定,一般扇區(qū)的高度應(yīng)該不小于3~5倍的測(cè)頭直徑。比如一個(gè)齒數(shù)34、寬度為30mm的齒輪,當(dāng)采用直徑為2mm的測(cè)頭進(jìn)行檢測(cè)時(shí),一般取M=34,N=3~5。
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的方法進(jìn)行詳細(xì)地說(shuō)明。
實(shí)施例1:
一種適用于虛擬齒輪測(cè)量中心的齒輪快速碰撞檢測(cè)的方法,包括以下步驟:
步驟1),參見(jiàn)圖1,加載已構(gòu)建好的齒輪三角網(wǎng)格模型:齒輪齒數(shù)=34,齒寬為30mm,工件直徑D=114mm,Zmin=0,Zmax=30;采用工具軟件創(chuàng)建該齒輪虛擬模型,模型包含的總面片數(shù)為13782個(gè)。
步驟2),構(gòu)建圓柱體包圍盒:包圍盒與工件軸線重合,D=114mm和Z方向最大最小坐標(biāo)Zmin=0和Zmax=30mm;
步驟3),對(duì)圓柱體包圍盒進(jìn)行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34個(gè)扇區(qū)(參見(jiàn)圖2),Z方向等高度剖分成3份(參見(jiàn)圖3),從而將工件剖分成得到102個(gè)扇形區(qū)域。扇區(qū)ki,j的Z向范圍和扇區(qū)角度范圍可由以下公式計(jì)算:
其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。
步驟4)、參見(jiàn)圖4,讀取虛擬測(cè)頭的位置P(Px,Py,Pz)和半徑,計(jì)算測(cè)頭極角范圍和高度范圍,判斷測(cè)頭落于一個(gè)扇區(qū)內(nèi),并存儲(chǔ)該扇區(qū)序號(hào)ki,j;
步驟5)、參見(jiàn)圖4,將所有與測(cè)頭相交的扇區(qū)對(duì)應(yīng)的三角面片集作為候選面片集。該候選集內(nèi)實(shí)際存在面片數(shù)為148個(gè)。
步驟6)、對(duì)候選面片集內(nèi)的148個(gè)面片進(jìn)行遍歷碰撞檢測(cè)并返回測(cè)頭到最近面片的距離值。
為了說(shuō)明快速碰撞檢測(cè)算法的優(yōu)點(diǎn),這里對(duì)檢測(cè)時(shí)間進(jìn)行對(duì)比??蛇M(jìn)行對(duì)比的基礎(chǔ)有兩個(gè),一是采用快速碰撞檢測(cè)算法時(shí),預(yù)處理動(dòng)作(即步驟一到步驟三)是在裝載工件時(shí)完成的,在虛擬機(jī)工作過(guò)程一次碰撞檢測(cè)算法時(shí)只循環(huán)執(zhí)行步驟四到步驟六;二個(gè)是碰撞檢測(cè)的核心內(nèi)容是計(jì)算測(cè)頭到每一個(gè)元素體的距離,并取最小值,計(jì)算一次測(cè)頭到三角面片距離的時(shí)間與計(jì)算一次測(cè)頭到包圍盒距離的時(shí)間是相當(dāng)?shù)摹R虼丝梢杂每偱鲎泊螖?shù)的對(duì)比來(lái)進(jìn)行效率的對(duì)比。按照遍歷式掃描碰撞檢測(cè)算法,總碰撞檢測(cè)次數(shù)為13782次;快速碰撞檢測(cè)算法分兩步進(jìn)行,第一步進(jìn)行預(yù)選的檢測(cè)次數(shù)為34*3=102次,第二步碰撞檢測(cè)次數(shù)為148次,總次數(shù)為102+148=250次。由此可見(jiàn)快速碰撞檢測(cè)算法檢測(cè)時(shí)間(次數(shù))約為遍歷式碰撞檢測(cè)算法的1.8%,檢測(cè)效率大大提高。
實(shí)施例2:
一種適用于虛擬齒輪測(cè)量中心的齒輪快速碰撞檢測(cè)的方法,包括以下步驟:
步驟1)、參見(jiàn)圖1,加載已構(gòu)建好的齒輪三角網(wǎng)格模型:齒輪齒數(shù)=34,齒寬為30mm,工件直徑D=114mm,Zmin=0,Zmax=30;采用工具軟件創(chuàng)建該齒輪虛擬模型,模型包含的總面片數(shù)為13782個(gè)。
步驟2)、構(gòu)建圓柱體包圍盒:包圍盒與工件軸線重合,D=114mm和Z方向最大最小坐標(biāo)Zmin=0和Zmax=30mm;
步驟3)、對(duì)圓柱體包圍盒進(jìn)行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34個(gè)扇區(qū)(參見(jiàn)圖2),Z方向等高度剖分成3份(參見(jiàn)圖3),從而將工件剖分成得到102個(gè)扇形區(qū)域。扇區(qū)ki,j的Z向范圍和扇區(qū)角度范圍可由以下公式計(jì)算:
其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。
步驟4)、參見(jiàn)圖5,讀取虛擬測(cè)頭的位置P(Px,Py,Pz)和半徑,計(jì)算測(cè)頭極角范圍和高度范圍,判斷測(cè)頭落于2個(gè)扇區(qū)內(nèi),并存儲(chǔ)該扇區(qū)序號(hào)ki,j,ki+1,j;
步驟5)、參見(jiàn)圖5,將所有與測(cè)頭相交的兩個(gè)扇區(qū)對(duì)應(yīng)的三角面片集作為候選面片集。該候選集內(nèi)實(shí)際存在面片數(shù)為294個(gè)。
步驟6)、對(duì)候選面片集內(nèi)的294個(gè)面片進(jìn)行碰撞檢測(cè)并返回測(cè)頭到最近面片的距離值。
為了說(shuō)明快速碰撞檢測(cè)算法的優(yōu)點(diǎn),這里對(duì)檢測(cè)時(shí)間(次數(shù))進(jìn)行對(duì)比。按照遍歷式掃描碰撞檢測(cè)算法,總碰撞檢測(cè)次數(shù)為13782次;快速碰撞檢測(cè)算法分兩步進(jìn)行,第一步進(jìn)行預(yù)選的檢測(cè)次數(shù)為34*3=102次,第二步碰撞檢測(cè)次數(shù)為294次,總次數(shù)為102+587=396次。由此可見(jiàn)快速碰撞檢測(cè)算法檢測(cè)時(shí)間(次數(shù))約為遍歷式掃描碰撞檢測(cè)算法的2.9%,檢測(cè)效率大大提高。
實(shí)施例3:
一種適用于虛擬齒輪測(cè)量中心的齒輪快速碰撞檢測(cè)的方法,包括以下步驟:
步驟1)、參見(jiàn)圖1,加載已構(gòu)建好的齒輪三角網(wǎng)格模型:齒輪齒數(shù)=34,齒寬為30mm,工件直徑D=114mm,Zmin=0,Zmax=30;采用工具軟件創(chuàng)建該齒輪虛擬模型,模型包含的總面片數(shù)為13782個(gè)。
步驟2)、構(gòu)建圓柱體包圍盒:包圍盒與工件軸線重合,D=114mm和Z方向最大最小坐標(biāo)Zmin=0和Zmax=30mm;
步驟3)、對(duì)圓柱體包圍盒進(jìn)行等角度的扇形剖分和Z向等高度剖分:等角度剖分方向剖分成34個(gè)扇區(qū)(參見(jiàn)圖2),Z方向等高度剖分成3份(參見(jiàn)圖3),從而將工件剖分成得到102個(gè)扇形區(qū)域。扇區(qū)ki,j的Z向范圍和扇區(qū)角度范圍可由以下公式計(jì)算:
其中i=0,1,…M-1,j=0,1,…N-1,k=0,1,…M×N-1。
步驟4)、參見(jiàn)圖6,讀取虛擬測(cè)頭的位置P(Px,Py,Pz)和半徑,計(jì)算測(cè)頭極角范圍和高度范圍,判斷測(cè)頭落于四個(gè)扇區(qū)內(nèi),并存儲(chǔ)該扇區(qū)序號(hào)ki,j,ki,j-1,ki+1,j,ki+1,j-1;
步驟5)、參見(jiàn)圖6,將所有與測(cè)頭相交的四個(gè)扇區(qū)對(duì)應(yīng)的三角面片集作為候選面片集。該候選集內(nèi)實(shí)際存在面片數(shù)為587個(gè)。
步驟6)、采用遍歷式掃描碰撞檢測(cè)算法對(duì)候選面片集內(nèi)的587個(gè)面片進(jìn)行碰撞檢測(cè)并返回測(cè)頭到最近面片的距離值。
為了說(shuō)明快速碰撞檢測(cè)算法的優(yōu)點(diǎn),這里對(duì)檢測(cè)時(shí)間(次數(shù))進(jìn)行對(duì)比。按照遍歷式掃描碰撞檢測(cè)算法,總碰撞檢測(cè)次數(shù)為13782次;快速碰撞檢測(cè)算法分兩步進(jìn)行,第一步進(jìn)行預(yù)選的檢測(cè)次數(shù)為34*3=102次,第二步碰撞檢測(cè)次數(shù)為587次,總次數(shù)為102+587=689次。由此可見(jiàn)預(yù)處理的碰撞檢測(cè)算法檢測(cè)時(shí)間(次數(shù))約為遍歷式掃描碰撞檢測(cè)算法的5.0%,檢測(cè)效率大大提高。
綜合實(shí)例1、實(shí)例2和實(shí)例3,當(dāng)剖分系數(shù)為34:3時(shí),一次快速碰撞檢測(cè)時(shí)間最短約為遍歷式掃描碰撞算法檢測(cè)時(shí)間的1.9%,最長(zhǎng)約為5.0%。圖表1針對(duì)不同的工件進(jìn)行了兩種算法效率的對(duì)比。從該圖表可以看到,與原有的遍歷式掃描碰撞檢測(cè)算法相比,進(jìn)行快速碰撞檢測(cè)算法的碰撞次數(shù)大大減少,提高了搜索效率。
表1 不同回轉(zhuǎn)體工件的兩種算法對(duì)比測(cè)試實(shí)驗(yàn)
為了說(shuō)明剖分系數(shù)對(duì)檢測(cè)效率的影響,圖表2給出了不同剖分系數(shù)下快速碰撞算法的檢測(cè)時(shí)間(次數(shù))的對(duì)比。
表2 不同剖分精度下的同一模型(圓棒模型)預(yù)處理后算法測(cè)試實(shí)驗(yàn)
從該圖表可以看到,一般情況下,當(dāng)剖分系數(shù)越大,搜索效率越高。但是當(dāng)剖分系數(shù)相對(duì)工件過(guò)大時(shí),搜索效率反而會(huì)受影響。一般遵循兩個(gè)原則:一是剖分后單個(gè)扇區(qū)的三角面片數(shù)大于剖分系數(shù)的乘積的兩倍以上,單個(gè)面片數(shù)≥總面片數(shù)/(M*N);二是剖分扇區(qū)的實(shí)際尺寸應(yīng)該大于測(cè)頭直徑的3~5倍。