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