專利名稱:三次元離線碰撞檢測系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種檢測系統(tǒng)及方法,尤其涉及一種三次元離線碰撞檢測系統(tǒng)及方法。
技術(shù)背景質(zhì)量是一個(gè)企業(yè)保持長久發(fā)展能力的重要因素之一,如何保證和提高產(chǎn)品質(zhì)量,是企業(yè)活動(dòng)中的重要內(nèi)容。
制造工廠在批量生產(chǎn)產(chǎn)品前需生產(chǎn)出幾件樣品進(jìn)行量測,以檢驗(yàn)是否存在質(zhì)量問題,如工件的各種長度和形位是否在公差規(guī)定范圍內(nèi)。
在模具制造工業(yè),量測者利用三次元量測機(jī)臺(tái)對(duì)待測物體做尺寸檢查。當(dāng)三次元量測機(jī)臺(tái)測量待測物體時(shí),待測物體與該三次元量測機(jī)臺(tái)的運(yùn)動(dòng)物體(例如,探針)容易發(fā)生碰撞,產(chǎn)生安全事故,造成該三次元量測機(jī)臺(tái)和待測物體損壞,浪費(fèi)成本。為了防止三次元量測機(jī)臺(tái)在測量待測物體時(shí)發(fā)生事故,有時(shí)需要更改該三次元量測機(jī)臺(tái)的運(yùn)行參數(shù),例如,接近距離和回彈距離,以便測量的順利進(jìn)行。一般情況下,所述運(yùn)行參數(shù)由量測者給出估計(jì)值,若該估計(jì)值不準(zhǔn)確,則無法抑制事故的發(fā)生,若量測者反復(fù)修改該估計(jì)值,則浪費(fèi)大量測量的時(shí)間。
發(fā)明內(nèi)容鑒于以上內(nèi)容,有必要提供一種三次元離線碰撞檢測系統(tǒng),其通過軟件模擬三次元量測機(jī)臺(tái)運(yùn)動(dòng)物體的運(yùn)行路徑,輸出碰撞時(shí)的詳細(xì)信息,可以避免機(jī)臺(tái)發(fā)生安全事故,節(jié)約成本,提高量測效率。
鑒于以上內(nèi)容,還有必要提供一種三次元離線碰撞檢測方法,其通過軟件模擬三次元量測機(jī)臺(tái)運(yùn)動(dòng)物體的運(yùn)行路徑,輸出碰撞時(shí)的詳細(xì)信息,可以避免機(jī)臺(tái)發(fā)生安全事故,節(jié)約成本,提高量測效率。
一種三次元離線碰撞檢測系統(tǒng),用于模擬三次元量測機(jī)臺(tái)運(yùn)動(dòng)物體的運(yùn)行路徑,檢測該運(yùn)動(dòng)物體與一待測物體是否碰撞,其特征在于,該系統(tǒng)包括一輸入/輸出模塊,用于輸入所述運(yùn)動(dòng)物體、待測物體、該待測物體上需量測的單點(diǎn)坐標(biāo)及其向量、所述運(yùn)動(dòng)物體的參數(shù),及輸出該運(yùn)動(dòng)物體與所述待測物體碰撞點(diǎn)的坐標(biāo);一建模模塊,用于根據(jù)所輸入的運(yùn)動(dòng)物體和待測物體建立碰撞檢測模型,且分別合并所述運(yùn)動(dòng)物體的模型和待測物體的模型,并將合并后的待測物體模型加入一待測物體數(shù)組;一計(jì)算模塊,用于根據(jù)所述運(yùn)動(dòng)物體的參數(shù)計(jì)算運(yùn)動(dòng)物體在所量測單點(diǎn)處的運(yùn)動(dòng)坐標(biāo),用以確定該運(yùn)行物體的運(yùn)行路徑;一碰撞檢測模塊,用于檢測所述待測物體數(shù)組中的對(duì)象,以確定該待測物體與所述運(yùn)動(dòng)物體是否有碰撞;一處理模塊,用于當(dāng)所述待測物體與所述運(yùn)動(dòng)物體碰撞時(shí),用一指定的顏色繪制該運(yùn)動(dòng)物體的起始點(diǎn)和碰撞點(diǎn)之間的路徑線,及當(dāng)所述待測物體與所述運(yùn)動(dòng)物體沒有碰撞時(shí),用不同于所述指定的顏色繪制該運(yùn)動(dòng)物體的起始點(diǎn)和終點(diǎn)之間的路徑線。
其中,所述三次元離線碰撞檢測系統(tǒng)的運(yùn)動(dòng)物體包括一接觸部件,該接觸部件為所述運(yùn)動(dòng)物體與所述待測物體接觸的部分。
進(jìn)一步地,所述三次元離線碰撞檢測系統(tǒng)還包括一判斷模塊,用于判斷所述運(yùn)動(dòng)物體內(nèi)的部件是否大于1個(gè)、判斷建模模塊改變合并后的運(yùn)動(dòng)物體的中心到接觸部件中心是否成功、判斷碰撞檢測模塊所檢測的對(duì)象與運(yùn)動(dòng)物體之間的距離是否小于零及判斷碰撞檢測模塊是否檢測完接觸部件每秒移動(dòng)距離所對(duì)應(yīng)的對(duì)象。
其中,所述運(yùn)動(dòng)物體的參數(shù)包括所述接觸部件與所述待測物體在所量測單點(diǎn)處的接近距離、回彈距離、位移速度及該接觸部件的半徑,所述運(yùn)動(dòng)物體參數(shù)可以由量測者確定。所述運(yùn)動(dòng)坐標(biāo)包括接近距離點(diǎn)坐標(biāo)、接觸點(diǎn)坐標(biāo)和回彈距離點(diǎn)坐標(biāo),用以確定所述運(yùn)動(dòng)物體的運(yùn)行路徑。
一種三次元離線碰撞檢測方法,該方法包括如下步驟(a)輸入一運(yùn)動(dòng)物體、一待測物體及該運(yùn)動(dòng)物體所量測的單點(diǎn)坐標(biāo)及其向量;(b)建立碰撞檢測模型,且分別合并所述運(yùn)動(dòng)物體的模型和待測物體的模型,并將合并后的待測物體模型加入一待測物體數(shù)組;(c)輸入所述運(yùn)動(dòng)物體的參數(shù),計(jì)算該運(yùn)動(dòng)物體的運(yùn)動(dòng)坐標(biāo);(d)所述運(yùn)動(dòng)物體根據(jù)所計(jì)算出的運(yùn)動(dòng)坐標(biāo)運(yùn)行;(e)檢測所述待測物體數(shù)組中的對(duì)象,以確定該待測物體與所述運(yùn)動(dòng)物體是否有碰撞;(f)若所述待測物體與所述運(yùn)動(dòng)物體有碰撞,則用一指定的顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和碰撞點(diǎn)之間的路徑線,且輸出碰撞點(diǎn)的坐標(biāo);(g)若所述待測物體與所述運(yùn)動(dòng)物體沒有碰撞,則用不同于所述指定的顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和終點(diǎn)之間的路徑線。
進(jìn)一步地,所述的三次元離線碰撞檢測方法步驟(e)還包括如下步驟(e1)判斷改變所述合并后的運(yùn)動(dòng)物體的中心為接觸部件中心是否成功;(e2)若改變所述合并后的運(yùn)動(dòng)物體的為接觸部件中心不成功,則計(jì)算所述接觸部件的中心坐標(biāo);(e3)讀取所述接觸部件當(dāng)前所在點(diǎn)的坐標(biāo);(e4)計(jì)算所述接觸部件的位移距離;(e5)輸入所述接觸部件的位移速度,計(jì)算該接觸部件的位移時(shí)間;(e6)計(jì)算所述接觸部件每秒鐘移動(dòng)的距離,所述接觸部件每秒鐘移動(dòng)的距離分別對(duì)應(yīng)一對(duì)象;(e7)依次檢測所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;(e8)計(jì)算當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離;(e9)判斷當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離是否小于零;(e10)若當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離小于零,則所述運(yùn)行物體與所述待測物體有碰撞;(e11)若當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體的距離不小于零,則判斷是否檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;(e12)若沒有檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則返回檢測所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;(e13)若已檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則直接結(jié)束流程。
進(jìn)一步地,所述的三次元離線碰撞檢測方法的步驟(e1)還包括步驟若改變所述合并后的運(yùn)動(dòng)物體的為接觸部件中心成功,則直接讀取所述接觸部件當(dāng)前所在點(diǎn)的坐標(biāo)。
相較現(xiàn)有技術(shù),所述三次元離線碰撞檢測系統(tǒng)及方法,通過對(duì)三次元量測機(jī)臺(tái)的運(yùn)動(dòng)物體和待測物體建立碰撞檢測模型,軟件模擬該運(yùn)動(dòng)物體的運(yùn)行路徑,輸出碰撞時(shí)的詳細(xì)信息,所述信息包括碰撞距離、碰撞速度和碰撞點(diǎn)坐標(biāo),可以避免機(jī)臺(tái)發(fā)生安全事故,節(jié)約成本,提高了量測效率。
圖1是本發(fā)明三次元離線碰撞檢測系統(tǒng)較佳實(shí)施例的功能模塊圖。
圖2是本發(fā)明碰撞檢測模型的示意圖。
圖3是本發(fā)明碰撞檢測時(shí)的運(yùn)動(dòng)示意圖。
圖4是本發(fā)明三次元離線碰撞檢測方法較佳實(shí)施例的作業(yè)流程圖。
圖5是本發(fā)明碰撞運(yùn)動(dòng)物體建模的具體流程圖。
圖6是本發(fā)明三次元離線碰撞檢測的具體流程圖。
具體實(shí)施方式如圖1所示,是本發(fā)明三次元離線碰撞檢測系統(tǒng)1較佳實(shí)施例的功能模塊圖。該三次元離線碰撞檢測系統(tǒng)1可安裝于任意計(jì)算機(jī)設(shè)備,例如個(gè)人電腦,所述三次元離線碰撞檢測系統(tǒng)1包括一輸入/輸出模塊10、一建模模塊12、一計(jì)算模塊14、一碰撞檢測模塊16、一判斷模塊18及一處理模塊20。下面結(jié)合圖2和圖3詳述上述模塊。
圖2是本發(fā)明碰撞檢測模型的示意圖,圖3是本發(fā)明碰撞檢測時(shí)的運(yùn)動(dòng)示意圖。
輸入/輸出模塊10用于向三次元離線碰撞檢測系統(tǒng)1輸入一待測物體2、一運(yùn)動(dòng)物體3、該待測物體2上需量測的單點(diǎn)坐標(biāo)PT(X,Y,Z)及其向量( )。其中,所述運(yùn)動(dòng)物體3(如探針)安裝于一三次元量測機(jī)臺(tái),用于量測待測物體2。如圖2所示,該待測物體2和所述運(yùn)動(dòng)物體3可能分別由多個(gè)部件構(gòu)成,所述運(yùn)動(dòng)物體3包括一接觸部件30,該接觸部件30指所述運(yùn)動(dòng)物體3與待測物體2碰撞時(shí)所接觸的部分。所述單點(diǎn)坐標(biāo)可由量測者確定。
輸入/輸出模塊10還用于輸入所述運(yùn)動(dòng)物體3的參數(shù),該參數(shù)包括接觸部件30與待測物體2在所量測單點(diǎn)處的接近距離、回彈距離、該接觸部件30的半徑R及所述運(yùn)動(dòng)物體3的運(yùn)行速度。所述接近距離和回彈距離可以由量測者確定,該接近距離和回彈距離大于接觸點(diǎn)與接觸點(diǎn)相近棱角頂點(diǎn)之間的距離,例如,接近距離為接觸點(diǎn)到接觸點(diǎn)相近棱角頂點(diǎn)距離的1.2倍,如圖3所示,a點(diǎn)為待測物體2的棱角頂點(diǎn),b為接近距離點(diǎn),c為接觸點(diǎn),d點(diǎn)為回彈距離點(diǎn),b、c、d三點(diǎn)在c點(diǎn)空間向量所在的直線上,b點(diǎn)到c點(diǎn)為接近距離,c點(diǎn)到d點(diǎn)為回彈距離,該棱角頂點(diǎn)a在運(yùn)動(dòng)物體3的運(yùn)動(dòng)方向上,其中,b點(diǎn)到c點(diǎn)的距離大于a點(diǎn)到c點(diǎn)的距離。所述運(yùn)動(dòng)物體3的運(yùn)行速度可根據(jù)三次元量測機(jī)臺(tái)的工作速度確定。輸入/輸出模塊10還可以用于輸出所述待測物體2上點(diǎn)的坐標(biāo),例如碰撞點(diǎn)的坐標(biāo)。
建模模塊12用于根據(jù)輸入/輸出模塊10所輸入的運(yùn)動(dòng)物體3和待測物體2建立碰撞檢測模型,如圖2所示,該模型包括運(yùn)動(dòng)物體3的模型和待測物體2的模型,建模模塊12分別合并所述模型,并將合并后的待測物體2的模型加入一待測物體數(shù)組,其中,合并后的運(yùn)動(dòng)物體3模型為一單一物體G。建模模塊12還用于改變所述單一物體G的中心到接觸部件30的中心,具體而言,建模模塊12改變所述單一物體G的屬性,將該單一物體G的中心坐標(biāo)改成接觸部件30的中心坐標(biāo),所述接觸部件30的中心為所述運(yùn)動(dòng)物體3每次位移的起始點(diǎn)。當(dāng)建模模塊12合并所述運(yùn)動(dòng)物體3為所述的單一物體G后,輸入/輸出模塊10還用于輸出該單一物體G的中心坐標(biāo)P1(X1,Y1,Z1)和接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2)。所述接觸部件30的中心坐標(biāo)為合并前該接觸部件30的中心坐標(biāo),該合并前的接觸部件30的中心坐標(biāo)和所述單一物體G的中心坐標(biāo)可以從輸入/輸出模塊10中直接讀取。
計(jì)算模塊14用于根據(jù)所輸入的運(yùn)動(dòng)物體3的參數(shù),計(jì)算接觸部件30與待測物體2在所量測單點(diǎn)處的接近距離點(diǎn)的坐標(biāo)、接觸點(diǎn)坐標(biāo)和回彈距離點(diǎn)坐標(biāo)以確定該運(yùn)動(dòng)物體3的運(yùn)行路徑,所述公式包括X2=I→*D+X1,]]>Y2=J→*D+Y1,]]>Z2=K→*D+Z1,]]>其中,所述X2、Y2和Z2分別為所計(jì)算點(diǎn)在X軸、Y軸和Z軸上的坐標(biāo)值,D為距離,例如,所量測單點(diǎn)的坐標(biāo)為PT(X,Y,Z),其向量為( ),若計(jì)算該單點(diǎn)處的接近距離點(diǎn)坐標(biāo),則距離D為輸入/輸出模塊10所輸入的接近距離,計(jì)算模塊14根據(jù)上述公式計(jì)算出該單點(diǎn)處的接近距離點(diǎn)坐標(biāo);若計(jì)算該單點(diǎn)處的接觸點(diǎn)坐標(biāo),則距離D為所述接觸部件30的半徑,計(jì)算模塊14將該接觸部件30的半徑R、該單點(diǎn)坐標(biāo)及其向量代入上述公式,計(jì)算出該單點(diǎn)處的接觸點(diǎn)坐標(biāo);若計(jì)算該單點(diǎn)處的回彈距離點(diǎn)坐標(biāo),則距離D為輸入/輸出模塊10所輸入的回彈距離,計(jì)算模塊14根據(jù)上述公式計(jì)算出該單點(diǎn)處的回彈距離點(diǎn)坐標(biāo)。
接觸部件30的中心點(diǎn)相對(duì)于所述單一物體G的中心點(diǎn)有一個(gè)空間向量( ),計(jì)算模塊14用于根據(jù)公式計(jì)算該空間向量,及計(jì)算該接觸部件30的中心與所述單一物體G的中心之間的距離D0,并保存該空間向量( )和距離D0。當(dāng)建模模塊12改變所述單一物體G的中心到接觸部件30中心不成功時(shí)(如Pro/E等繪圖軟件不能改變點(diǎn)的屬性),計(jì)算模塊14根據(jù)所計(jì)算出的空間向量( )和距離D0計(jì)算接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2)。所述公式包括I→=(X2-X1)/D0,]]>J→=(Y2-Y1)/D0,]]>K→=(Z2-Z1)/D0,]]>Dx=|X1-X2|,Dy=|Y1-Y2|,Dz=|Z1-Z2|,D0=Dx2+Dy2+Dz2,]]>其中,(X1,Y1,Z1)為所述單一物體G的中心坐標(biāo),該坐標(biāo)可以從輸入/輸出模塊10中直接讀取。
計(jì)算模塊14還用于利用公式計(jì)算接觸部件30從起始點(diǎn)坐標(biāo)移動(dòng)到當(dāng)前點(diǎn)坐標(biāo)P′(X′,Y′,Z′)的位移距離D′,并根據(jù)輸入/輸出模塊10所輸入的運(yùn)行速度計(jì)算接觸部件30的位移時(shí)間,且計(jì)算出接觸部件30每秒鐘的位移距離。計(jì)算模塊14還用于計(jì)算碰撞檢測模塊16所讀取的對(duì)象與運(yùn)動(dòng)物體3之間的距離,所述對(duì)象的坐標(biāo)可以從輸入/輸出模塊10中讀取。所述起始點(diǎn)坐標(biāo)指接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2),所述公式包括Dx=|X1-R-X′|,Dy=|Y1-R-Y′|,Dz=|Z1-R-Z′|,D′=Dx2+Dy2+Dz2,]]>其中,R為接觸部件30的半徑。
碰撞檢測模塊16用于檢測所述待測物體2以確定該待測物體2是否與所述運(yùn)動(dòng)物體3碰撞,讀取接觸部件30當(dāng)前所在點(diǎn)的坐標(biāo)P′(X′,Y′,Z′),并依次檢測接觸部件30每秒鐘所移動(dòng)的距離,所述接觸部件30每秒鐘所移動(dòng)的距離分別對(duì)應(yīng)一對(duì)象,該等對(duì)象在所述待測物體數(shù)組中,碰撞檢測模塊16依次檢測該等對(duì)象。當(dāng)建模模塊12改變所述單一物體G的中心到接觸部件30中心成功時(shí),碰撞檢測模塊16還用于從輸入/輸出模塊10中讀取該單一物體G的中心坐標(biāo)P1(X1,Y1,Z1)和接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2)。
判斷模塊18用于判斷所述運(yùn)動(dòng)物體3內(nèi)的部件是否大于1個(gè)、判斷建模模塊12改變單一物體G的中心到接觸部件30中心是否成功、判斷碰撞檢測模塊16所檢測的對(duì)象與運(yùn)動(dòng)物體3之間的距離是否小于零及判斷碰撞檢測模塊16是否檢測完接觸部件30每秒移動(dòng)距離所對(duì)應(yīng)的對(duì)象。
處理模塊20用于當(dāng)所述運(yùn)動(dòng)物體3與所述待測物體2碰撞時(shí),將所述運(yùn)動(dòng)物體3的起始點(diǎn)和碰撞點(diǎn)之間的路徑線繪制成紅色;及用于當(dāng)所述運(yùn)動(dòng)物體3與所述待測物體2沒有碰撞時(shí),將所述運(yùn)動(dòng)物體3的起始點(diǎn)和終點(diǎn)之間的路徑線繪制成黃色。處理模塊20還用于將計(jì)算模塊14所計(jì)算出的位移時(shí)間劃分成很小的等份,例如,處理模塊20以1秒為單位劃分所計(jì)算出的位移時(shí)間,計(jì)算模塊14計(jì)算出接觸部件30每秒鐘移動(dòng)的距離。
如圖4所示,是本發(fā)明三次元離線碰撞檢測方法較佳實(shí)施例的作業(yè)流程圖。
首先,輸入/輸出模塊10向三次元離線碰撞檢測系統(tǒng)1輸入一運(yùn)動(dòng)物體3、一待測物體2、該待測物體2上需量測的單點(diǎn)坐標(biāo)PT(X,Y,Z),其中,所述運(yùn)動(dòng)物體3(如探針)安裝于一三次元量測機(jī)臺(tái),用于量測待測物體2,如圖2所示,該待測物體2和所述運(yùn)動(dòng)物體3可能分別由多個(gè)部件構(gòu)成,所述運(yùn)動(dòng)物體3包括一接觸部件30,該接觸部件30指所述運(yùn)動(dòng)物體3與待測物體2碰撞時(shí)所接觸的部分,所述單點(diǎn)坐標(biāo)可由量測者確定(步驟S400)。
建模模塊12根據(jù)輸入/輸出模塊10所輸入的運(yùn)動(dòng)物體3和待測物體2建立碰撞檢測模型,該模型包括運(yùn)動(dòng)物體3的模型和待測物體2的模型,建模模塊12分別合并所述模型,并將合并后的待測物體2的模型加入一待測物體數(shù)組,其中,所述合并后的運(yùn)動(dòng)物體3的模型為一單一物體G(步驟S401)。
輸入/輸出模塊10輸入所述運(yùn)動(dòng)物體3的參數(shù),該參數(shù)包括接觸部件30與待測物體2在所量測單點(diǎn)處的接近距離、回彈距離及該接觸部件30的半徑R,所述接近距離和回彈距離可以由量測者確定,該接近距離和回彈距離大于接觸點(diǎn)與接觸點(diǎn)相近棱角頂點(diǎn)之間的距離,例如,接近距離為接觸點(diǎn)到接觸點(diǎn)相近棱角頂點(diǎn)距離的1.2倍,如圖3所示,a點(diǎn)為待測物體2的棱角頂點(diǎn),b為接近距離點(diǎn),c為接觸點(diǎn),b、c、d三點(diǎn)在c點(diǎn)空間向量所在的直線上,d點(diǎn)為回彈距離點(diǎn),b點(diǎn)到c點(diǎn)為接近距離,c點(diǎn)到d點(diǎn)為回彈距離,該棱角頂點(diǎn)a在運(yùn)動(dòng)物體3的運(yùn)動(dòng)方向上,其中,b點(diǎn)到c點(diǎn)的距離大于a點(diǎn)到c點(diǎn)的距離,計(jì)算模塊14根據(jù)所輸入的運(yùn)動(dòng)物體3的參數(shù),利用公式計(jì)算該運(yùn)動(dòng)物體3的運(yùn)動(dòng)坐標(biāo)以確定該運(yùn)動(dòng)物體3的運(yùn)行路徑,具體而言,計(jì)算模塊14根據(jù)所輸入的運(yùn)動(dòng)物體3的參數(shù),計(jì)算接觸部件30與待測物體2在每一單點(diǎn)坐標(biāo)處的接近距離點(diǎn)坐標(biāo)、接觸點(diǎn)坐標(biāo)和回彈距離點(diǎn)坐標(biāo)(步驟S402)。
碰撞檢測模塊16檢測所述待測物體2以確定該待測物體2與所述運(yùn)動(dòng)物體3是否碰撞(步驟S403)。
若所述待測物體2與所述運(yùn)動(dòng)物體3碰撞,則處理模塊20將所述運(yùn)動(dòng)物體3的起始點(diǎn)和碰撞點(diǎn)之間的路徑線繪制成紅色,輸入/輸出模塊10輸出所述運(yùn)動(dòng)物體3在待測物體2上碰撞點(diǎn)的坐標(biāo),然后結(jié)束流程(步驟S404)。
若所述待測物體2與所述運(yùn)動(dòng)物體3沒有碰撞,則處理模塊20將所述運(yùn)動(dòng)物體3的起始點(diǎn)和終點(diǎn)之間的路徑線繪制成黃色,然后結(jié)束流程(步驟S405)。
在步驟S402中,所述公式包括X2=I*D+X1,Y2=J*D+Y1,Z2=K*D+Z1,其中,所述X2、Y2和Z2分別為所計(jì)算點(diǎn)在X軸、Y軸和Z軸上的坐標(biāo)值,D為距離,例如,所量測單點(diǎn)的坐標(biāo)為PT(X,Y,Z),其向量為( ),若計(jì)算該單點(diǎn)處的接近距離點(diǎn)坐標(biāo),則距離D為輸入/輸出模塊10所輸入的接近距離,計(jì)算模塊14根據(jù)上述公式計(jì)算出該單點(diǎn)處的接近距離點(diǎn)坐標(biāo);若計(jì)算該單點(diǎn)處的接觸點(diǎn)坐標(biāo),則距離D為所述接觸部件30的半徑,計(jì)算模塊14將該接觸部件30的半徑R、該單點(diǎn)坐標(biāo)及其向量代入上述公式,計(jì)算出該單點(diǎn)處的接觸點(diǎn)坐標(biāo);若計(jì)算該單點(diǎn)處的回彈距離點(diǎn)坐標(biāo),則距離D為輸入/輸出模塊10所輸入的回彈距離,計(jì)算模塊14根據(jù)上述公式計(jì)算出該單點(diǎn)處的回彈距離點(diǎn)坐標(biāo)。
如圖5所示,是本發(fā)明碰撞運(yùn)動(dòng)物體建模的具體流程圖。首先,輸入/輸出模塊10向三次元離線碰撞檢測系統(tǒng)1輸入所述運(yùn)動(dòng)物體3,該運(yùn)動(dòng)物體3包括一接觸部件30(步驟S500)。
判斷模塊18判斷所述運(yùn)動(dòng)物體3內(nèi)的部件是否大于1個(gè)(步驟S501)。
若所述運(yùn)動(dòng)物體3內(nèi)的部件大于1個(gè),例如,該運(yùn)動(dòng)物體3中不只是包括接觸部件30,還包括其它部件,則建模模塊12合并該運(yùn)動(dòng)物體3為所述的單一物體G(步驟S502)。
建模模塊12改變?cè)搯我晃矬wG的中心為接觸部件30的中心,具體而言,建模模塊12改變?cè)搯我晃矬wG的屬性,將該單一物體G的中心坐標(biāo)改成接觸部件30的中心坐標(biāo),所述接觸部件30的中心為所述運(yùn)動(dòng)物體3每次位移的起始點(diǎn)(步驟S503)。
判斷模塊18判斷建模模塊12改變單一物體G的中心到接觸部件30的中心是否成功(步驟S504)。
若建模模塊12改變單一物體G的中心到接觸部件30的中心不成功,則碰撞檢測模塊16從輸入/輸出模塊10讀取該單一物體G的中心坐標(biāo)P1(X1,Y1,Z1)和接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2),所述接觸部件30的中心坐標(biāo)為合并前該接觸部件30的中心坐標(biāo),該合并前的接觸部件30中心坐標(biāo)和所述單一物體G的坐標(biāo)可以從輸入/輸出模塊10中直接讀出(步驟S505)。
接觸部件30的中心點(diǎn)相對(duì)于所述單一物體G的中心點(diǎn)有一個(gè)空間向量( ),計(jì)算模塊14利用公式計(jì)算該空間向量,及計(jì)算該接觸部件30的中心與所述單一物體G的中心之間的距離D0,并保存該空間向量( )和距離D0,所述公式包括I→=(X2-X1)/D0,]]>J→=(Y2-Y1)/D0,]]>K→=(Z2-Z1)/D0,]]>Dx=|X1-X2|,Dy=|Y1-Y2|,Dz=|Z1-Z2|,D0=Dx2+Dy2+Dz2]]>(步驟S506)。
在步驟S501中,若所述運(yùn)動(dòng)物體3內(nèi)的部件不大于1個(gè),也就是說所述運(yùn)動(dòng)物體內(nèi)的部件等于1個(gè),則直接進(jìn)入步驟S503。
在步驟S504中,若建模模塊12改變單一物體G的中心到接觸部件30的中心成功,則直接結(jié)束流程。
如圖6所示,是本發(fā)明三次元離線碰撞檢測較佳實(shí)施例的具體流程圖。判斷模塊18判斷建模模塊12改變所述單一物體G的中心為接觸部件30的中心是否成功(步驟S600)。
若建模模塊12改變單一物體G的中心到接觸部件30的中心不成功,則計(jì)算模塊14利用公式計(jì)算所述接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2),然后進(jìn)入步驟S602,所述公式包括X2=I→*D0+X1,]]>Y2=J→*D0+Y1,]]>Z2=K→*D0+Z1,]]>其中,所述(X1,Y1,Z1)為所述單一物體G的中心坐標(biāo),該坐標(biāo)可以從輸入/輸出模塊10中直接讀取,所述( )為所述接觸部件30中心相對(duì)于所述單一物體G的空間向量,D0為該單一物體G的中心與接觸部件30的中心之間的距離,如圖5的步驟S506所示(步驟S601)。
若建模模塊12改變單一物體G的中心到接觸部件30中心成功,則碰撞檢測模塊16從輸入/輸出模塊10讀取接觸部件30當(dāng)前所在點(diǎn)的坐標(biāo)P′(X′,Y′,Z′)(步驟S602)。
計(jì)算模塊14利用公式計(jì)算接觸部件30從起始點(diǎn)坐標(biāo)移動(dòng)到當(dāng)前點(diǎn)坐標(biāo)的位移距離D′,所述起始點(diǎn)坐標(biāo)指接觸部件30的中心坐標(biāo)P2(X2,Y2,Z2),所述公式包括Dx=|X1-R-X′|,Dy=|Y1-R-Y′|,Dz=|Z1-R-Z′|,D′=Dx2+Dy2+Dz2,]]>其中,R為接觸部件30的半徑(步驟S603)。
輸入/輸出模塊10根據(jù)所述三次元量測機(jī)臺(tái)的工作速度輸入運(yùn)動(dòng)物體3的運(yùn)行速度,計(jì)算模塊14根據(jù)所計(jì)算出的移動(dòng)距離D′和運(yùn)行速度計(jì)算出接觸部件30從所述單點(diǎn)移動(dòng)到當(dāng)前坐標(biāo)的位移時(shí)間(步驟S604)。
處理模塊20將計(jì)算模塊14所計(jì)算出的位移時(shí)間劃分成很小的等份,例如,處理模塊20以1秒為單位劃分所計(jì)算出的位移時(shí)間,計(jì)算模塊14計(jì)算出接觸部件30每秒鐘移動(dòng)的距離(步驟S605)。
碰撞檢測模塊16依次檢測接觸部件30每秒鐘所移動(dòng)的距離,所述接觸部件30每秒鐘所移動(dòng)的距離分別對(duì)應(yīng)一對(duì)象,該等對(duì)象在所述待測物體數(shù)組中,碰撞檢測模塊16依次檢測該等對(duì)象(步驟S606)。
計(jì)算模塊14計(jì)算碰撞檢測模塊16所檢測的對(duì)象與運(yùn)動(dòng)物體3之間的距離,所述對(duì)象的坐標(biāo)可以從輸入/輸出模塊10中讀取(步驟S607)。
判斷模塊18判斷步驟S607中所計(jì)算出的距離是否小于零(步驟S608)。
若步驟S607中所計(jì)算出的距離小于零,則運(yùn)動(dòng)物體3與待測物體2有碰撞,然后結(jié)束流程(步驟S609)。
若步驟S607中所計(jì)算出的距離不小于零,也就是說所計(jì)算出的距離大于零或等于零,則判斷模塊18判斷碰撞檢測模塊16是否檢測完接觸部件30每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象(步驟S610)。
若碰撞檢測模塊16沒有檢測完接觸部件30每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則返回步驟S606。
若碰撞檢測模塊16已檢測完接觸部件30每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則直接結(jié)束流程。
權(quán)利要求
1.一種三次元離線碰撞檢測系統(tǒng),用于模擬三次元量測機(jī)臺(tái)運(yùn)動(dòng)物體的運(yùn)行路徑,檢測該運(yùn)動(dòng)物體與一待測物體是否碰撞,其特征在于,該系統(tǒng)包括一輸入/輸出模塊,用于輸入所述運(yùn)動(dòng)物體、待測物體、該待測物體上需量測的單點(diǎn)坐標(biāo)及其向量、所述運(yùn)動(dòng)物體的參數(shù),及輸出該運(yùn)動(dòng)物體與所述待測物體碰撞點(diǎn)的坐標(biāo);一建模模塊,用于根據(jù)所輸入的運(yùn)動(dòng)物體和待測物體建立碰撞檢測模型,且分別合并所述運(yùn)動(dòng)物體的模型和待測物體的模型,并將合并后的待測物體模型加入一待測物體數(shù)組;一計(jì)算模塊,用于根據(jù)所述運(yùn)動(dòng)物體的參數(shù)計(jì)算運(yùn)動(dòng)物體在所量測單點(diǎn)處的運(yùn)動(dòng)坐標(biāo),以確定該運(yùn)行物體的運(yùn)行路徑;一碰撞檢測模塊,用于檢測所述待測物體,以確定該待測物體與所述運(yùn)動(dòng)物體是否碰撞;一處理模塊,用于當(dāng)所述待測物體與所述運(yùn)動(dòng)物體碰撞時(shí),用一指定的顏色繪制該運(yùn)動(dòng)物體的起始點(diǎn)和碰撞點(diǎn)之間的路徑線,及當(dāng)所述待測物體與所述運(yùn)動(dòng)物體沒有碰撞時(shí),用不同于所述指定的顏色繪制該運(yùn)動(dòng)物體的起始點(diǎn)和終點(diǎn)之間的路徑線。
2.如權(quán)利要求1所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述碰撞檢測模塊還用于檢測所述運(yùn)動(dòng)物體每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,所述對(duì)象在所述待測物體數(shù)組中。
3.如權(quán)利要求1所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述運(yùn)動(dòng)物體包括一接觸部件,該接觸部件為所述運(yùn)動(dòng)物體與所述待測物體接觸的部分。
4.如權(quán)利要求3所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述建模模塊還用于改變合并后的運(yùn)動(dòng)物體的中心為接觸部件中心。
5.如權(quán)利要求4所述的三次元離線碰撞檢測系統(tǒng),其特征在于,該系統(tǒng)還包括一判斷模塊,用于判斷所述運(yùn)動(dòng)物體內(nèi)的部件是否大于1個(gè)、判斷建模模塊改變合并后的運(yùn)動(dòng)物體的中心到接觸部件中心是否成功、判斷碰撞檢測模塊所檢測的對(duì)象與運(yùn)動(dòng)物體之間的距離是否小于零及判斷碰撞檢測模塊是否檢測完接觸部件每秒移動(dòng)距離所對(duì)應(yīng)的對(duì)象。
6.如權(quán)利要求5所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述接觸部件中心為所述運(yùn)動(dòng)物體每次位移的起始點(diǎn)。
7.如權(quán)利要求1所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述運(yùn)動(dòng)物體的參數(shù)包括所述接觸部件與所述待測物體的接近距離、回彈距離、位移速度及該接觸部件的半徑。
8.如權(quán)利要求1所述的三次元離線碰撞檢測系統(tǒng),其特征在于,所述運(yùn)動(dòng)坐標(biāo)包括接近距離點(diǎn)坐標(biāo)、接觸點(diǎn)坐標(biāo)和回彈距離點(diǎn)坐標(biāo),用以確定所述運(yùn)動(dòng)物體的運(yùn)行路徑。
9.一種三次元離線碰撞檢測方法,其特征在于,該方法包括如下步驟輸入一運(yùn)動(dòng)物體、一待測物體及該運(yùn)動(dòng)物體所量測的單點(diǎn)坐標(biāo)及其向量;建立碰撞檢測模型,且分別合并所述運(yùn)動(dòng)物體的模型和待測物體的模型,并將合并后的待測物體模型加入一待測物體數(shù)組;輸入所述運(yùn)動(dòng)物體的參數(shù),并計(jì)算該運(yùn)動(dòng)物體在所量測單點(diǎn)處的運(yùn)動(dòng)坐標(biāo);所述運(yùn)動(dòng)物體根據(jù)所計(jì)算出的運(yùn)動(dòng)坐標(biāo)運(yùn)行;檢測所述待測物體數(shù)組中的對(duì)象,以確定該待測物體與所述運(yùn)動(dòng)物體是否有碰撞;若所述待測物體與所述運(yùn)動(dòng)物體有碰撞,則用一指定的顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和碰撞點(diǎn)之間的路徑線,且輸出碰撞點(diǎn)的坐標(biāo);若所述待測物體與所述運(yùn)動(dòng)物體沒有碰撞,則用不同于所述指定的顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和終點(diǎn)之間的路徑線。
10.如權(quán)利要求9所述的三次元離線碰撞檢測方法,其特征在于,所述運(yùn)動(dòng)物體包括一接觸部件,該接觸部件中心為所述運(yùn)動(dòng)物體每次位移的起始點(diǎn)。
11.如權(quán)利要求9所述的三次元離線碰撞檢測方法,其特征在于,所述運(yùn)動(dòng)物體的參數(shù)包括所述接觸部件與所述待測物體的接近距離、回彈距離、位移速度及該接觸部件的半徑。
12.如權(quán)利要求9所述的三次元離線碰撞檢測方法,其特征在于,所述運(yùn)動(dòng)坐標(biāo)包括接近距離點(diǎn)坐標(biāo)、接觸點(diǎn)坐標(biāo)和回彈距離點(diǎn)坐標(biāo),用以確定所述運(yùn)動(dòng)物體的運(yùn)行路徑。
13.如權(quán)利要求9所述的三次元離線碰撞檢測方法,其特征在于,所述步驟檢測所述運(yùn)動(dòng)物體與所述待測物體是否有碰撞還包括如下步驟判斷改變所述合并后的運(yùn)動(dòng)物體的中心為接觸部件中心是否成功;若改變所述合并后的運(yùn)動(dòng)物體的中心為接觸部件中心不成功,則計(jì)算所述接觸部件的中心坐標(biāo);讀取所述接觸部件當(dāng)前所在點(diǎn)的坐標(biāo);計(jì)算所述接觸部件的位移距離;輸入所述接觸部件的位移速度,計(jì)算該接觸部件的位移時(shí)間;計(jì)算所述接觸部件每秒鐘移動(dòng)的距離,所述接觸部件每秒鐘移動(dòng)的距離分別對(duì)應(yīng)待測物體數(shù)組中的一對(duì)象;依次檢測所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;計(jì)算當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離;判斷當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離是否小于零;若當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離小于零,則該運(yùn)行物體與所述待測物體有碰撞;若當(dāng)前對(duì)象與所述運(yùn)動(dòng)物體之間的距離不小于零,則判斷是否檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;若沒有檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則返回檢測所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象;若已檢測完所述接觸部件每秒鐘移動(dòng)距離所對(duì)應(yīng)的對(duì)象,則直接結(jié)束流程。
14.如權(quán)利要求13所述的三次元離線碰撞檢測方法,其特征在于,所述步驟判斷改變所述合并后的運(yùn)動(dòng)物體的中心為接觸部件中心是否成功還包括步驟若改變所述合并后的運(yùn)動(dòng)物體的中心為接觸部件中心成功,則直接讀取所述接觸部件當(dāng)前所在點(diǎn)的坐標(biāo)。
全文摘要
本發(fā)明提供一種三次元離線碰撞檢測方法,包括如下步驟輸入一運(yùn)動(dòng)物體、一待測物體及所量測的單點(diǎn)坐標(biāo)及其向量;建立碰撞檢測模型,且分別合并模型;輸入所述運(yùn)動(dòng)物體的參數(shù),并計(jì)算該運(yùn)動(dòng)物體的運(yùn)動(dòng)坐標(biāo);根據(jù)所計(jì)算出的運(yùn)動(dòng)坐標(biāo)運(yùn)行;檢測是否有碰撞;若有碰撞,則用一指定顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和碰撞點(diǎn)之間的路徑線,且輸出碰撞點(diǎn)的坐標(biāo);若沒有碰撞,則用不同于所述指定的顏色繪制該運(yùn)動(dòng)物體起始點(diǎn)和終點(diǎn)之間的路徑線。利用本發(fā)明,可以避免機(jī)臺(tái)發(fā)生安全事故,節(jié)省成本,提高量測效率。
文檔編號(hào)G01B21/06GK1987351SQ200510121178
公開日2007年6月27日 申請(qǐng)日期2005年12月23日 優(yōu)先權(quán)日2005年12月23日
發(fā)明者張旨光, 吳新元, 陳杰榮, 湯曉丹, 楊炳根, 李東海 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司