華順剛,南花梅
(大連理工大學(xué)機(jī)械工程學(xué)院,遼寧 大連116024)
隨著CAD技術(shù)的發(fā)展和應(yīng)用,工程領(lǐng)域中各企業(yè)在設(shè)計(jì)過程中積累了大量三維模型,快速檢索并充分利用現(xiàn)有模型是實(shí)現(xiàn)產(chǎn)品快速設(shè)計(jì),提高企業(yè)競(jìng)爭(zhēng)力的重要手段[1]。目前零件模型檢索技術(shù)已相對(duì)成熟,與單獨(dú)機(jī)械零件相比,裝配體包含裝配關(guān)系,檢索更加復(fù)雜,有待進(jìn)一步的研究。
現(xiàn)有裝配體檢索方法對(duì)裝配體的描述主要分為兩類:裝配體整體描述[2-3]和組成裝配體的零件集合描述[4-6]。文獻(xiàn)[2]使用零件、裝配約束、功能信息來描述裝配體,需要提前對(duì)裝配體描述進(jìn)行規(guī)范化預(yù)處理。文獻(xiàn)[3]等使用包含零件節(jié)點(diǎn)、連接關(guān)系、零件節(jié)點(diǎn)間連接關(guān)系及數(shù)量組成四元組表示屬性鄰接圖描述裝配體,利用最優(yōu)二分圖匹配算法計(jì)算裝配體間相似度,需提前編碼裝配體零件的連接關(guān)系。組成裝配體的零件集合描述將裝配體看做沒有裝配關(guān)系的單獨(dú)零件的集合,單獨(dú)零件使用三維模型描述方法。文獻(xiàn)[4]提出將形狀分布應(yīng)用在三維模型的描述上,在三維模型表面隨機(jī)取點(diǎn)對(duì),使用形狀分布函數(shù)計(jì)算點(diǎn)對(duì)距離,按固定組數(shù)對(duì)點(diǎn)對(duì)距離分組,構(gòu)成形狀分布直方圖表示三維模型。文獻(xiàn)[5-6]把形狀分布直方圖應(yīng)用到三維CAD零件模型上,取點(diǎn)多耗時(shí)。
使用零件屬性矢量集合描述裝配體,可以直接通過CAD軟件獲取幾何、形狀、位置信息作為裝配體中每個(gè)零件模型原始數(shù)據(jù)。將每個(gè)零件各屬性數(shù)據(jù)占裝配體所有零件中該屬性數(shù)據(jù)和的百分比作為每個(gè)零件各屬性值,達(dá)到裝配體歸一化效果,構(gòu)成屬性矢量,組成集合表示裝配體。最后利用推土機(jī)距離(Earth Mover’s Distance,EMD)算法[7]計(jì)算裝配體模型間零件匹配的最低成本,也即裝配體間非相似度值以便實(shí)現(xiàn)檢索。
裝配體模型檢索過程,如圖1所示。
圖1 裝配體模型檢索示意圖Fig.1 Diagram of the Assembly Model Retrieval
檢索過程共三步:
Step1.建立裝配體模型數(shù)據(jù)庫。包含兩部分:CAD裝配體模型和裝配體模型描述符。
Step2.零件匹配及裝配體檢索。使用EMD算法將目標(biāo)裝配體模型與數(shù)據(jù)庫中所有裝配體模型進(jìn)行零件模型匹配,得到非相似度值,并存儲(chǔ)到結(jié)果數(shù)據(jù)庫中。
Step3.檢索結(jié)果顯示。從結(jié)果數(shù)據(jù)庫中獲取目標(biāo)裝配體模型檢索結(jié)果數(shù)據(jù),按非相似度值升序(即相似度值降序)在檢索界面上顯示。
質(zhì)心坐標(biāo)精確標(biāo)識(shí)裝配體中零件的位置;轉(zhuǎn)動(dòng)慣量對(duì)球體類、圓柱類等裝配體零件起到一定程度識(shí)別作用,如球類零件沿著三個(gè)坐標(biāo)軸方向的轉(zhuǎn)動(dòng)慣量相同,圓柱形零件沿軸向方向的轉(zhuǎn)動(dòng)慣量小,沿其它兩方向轉(zhuǎn)動(dòng)慣量較大,柱類零件軸向尺寸越長,差異越明顯;體積和表面積一定程度上識(shí)別裝配體中零件外貌。故選擇質(zhì)心坐標(biāo)、轉(zhuǎn)動(dòng)慣量、體積、表面積屬性描述零件。
描述步驟為:從CAD軟件直接獲取零件模型的質(zhì)心坐標(biāo)(x,y,z)、轉(zhuǎn)動(dòng)慣量(Ix,Iy,Iz)、體積(v)和表面積(s)數(shù)據(jù);生成零件屬性柱狀圖;構(gòu)建零件屬性矢量描述零件。
生成零件屬性柱狀圖的方法:選用8個(gè)參數(shù)(x,y,z,Ix,Iy,Iz,v,s)作為每個(gè)零件屬性分布狀圖的8個(gè)分組。一組代表零件一個(gè)屬性,每組高度為零件的該屬性占裝配體中所有零件該屬性和的百分比。相較于直接使用該零件原始屬性值,百分比之后屬性值作為柱狀圖柱子高度可以做到一定程度上的裝配體中零件模型歸一化。
裝配體模型由組成它的多個(gè)零件構(gòu)成,故裝配體模型可以由它所包含的零件的集合來描述?;诹慵傩允噶考系难b配體模型描述,如圖2所示。
圖2 使用零件屬性矢量集合描述裝配體模型Fig.2 Assembly Model Description with Parts’Attributes Vector Set
步驟為:生成裝配體A中各零件對(duì)應(yīng)的屬性柱狀圖和矢量,組成屬性矢量集合描述裝配體A。
由式(1)構(gòu)建裝配體A中每個(gè)零件的屬性矢量p,組合各零件屬性矢量并組成描述該裝配體的矢量集合:
式中:裝配體A共有n個(gè)零件,pi—屬性矢量表示的第i個(gè)零件。
文獻(xiàn)[7]提出EMD算法并用于解決圖片檢索工作中的分布比較問題,用EMD算法求圖片顏色分布之間最小花費(fèi)得到圖片之間的相似程度。裝配體模型間零件匹配問題也可以通過EMD算法來解決,求解兩裝配體使用屬性柱狀圖表示的零件間匹配的最小花費(fèi)得到其相似程度,花費(fèi)值即為兩裝配體間非相似度值。
EMD算法中首先要定義標(biāo)簽(Signature),設(shè)標(biāo)簽S=表示該標(biāo)簽共有N個(gè)元素,每個(gè)元素s包含兩個(gè)要素:位置u和重量(或權(quán)重)w。j表示第j個(gè)。
約束條件如下:
式中:dij—從位置uxi到uyj的距離,fij—uxi位置到位置uyj之間的運(yùn)輸量。
以裝配體A1、A2的零件匹配計(jì)算過程為例,在利用EMD算法計(jì)算零件匹配最小花費(fèi)之前,需做以下四步準(zhǔn)備工作:
Step1.根據(jù)式(2),構(gòu)造裝配體A1、A2的零件屬性矢量集合
Step2.A1、A2依次帶入到給定的兩個(gè)標(biāo)簽中,得到
Step3.確定上一步中權(quán)重參數(shù)w1i和w2j。
將每個(gè)零件權(quán)重w均選取1,即w1i=w2j=1(1≤i≤m,1≤j≤n)可保證裝配體間零件一對(duì)一匹配。
Step4.確認(rèn)式(3)中dij。
使用歐氏距離作為裝配體A1中第i個(gè)零件屬性矢量p1i與裝配體A2中第j個(gè)零件屬性矢量p2j之間的距離計(jì)算公式:
利用EMD算法計(jì)算裝配體A1、A2之間的非相似度:
利用SolidWorks 2016軟件平臺(tái)進(jìn)行裝配體檢索實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)計(jì)算機(jī)配置為Win7 64位操作系統(tǒng),Intel(R)Core(TM)i5-7500 3.4GHz CPU,8.00 GB運(yùn)行內(nèi)存,編譯環(huán)境VS2017,編程語言C++,實(shí)驗(yàn)中SolidWork裝配體模型(*.sldasm)包括網(wǎng)站[8]下載和自己創(chuàng)建兩部分。
由圖2可知,使用基于零件屬性矢量的EMD算法(EMD屬性矢量算法)獲得的各零件對(duì)應(yīng)屬性柱狀圖區(qū)別顯著,確定了零件標(biāo)識(shí)的唯一性,保證了零件匹配的合理性,提供了檢索實(shí)驗(yàn)有效進(jìn)行的基礎(chǔ)。
實(shí)驗(yàn)的裝配體模型庫中共有52個(gè)裝配體模型,其中包含電機(jī)系列(6個(gè)),輪子系列(6個(gè)),夾具系列(4個(gè))。實(shí)驗(yàn)就這3個(gè)系列,對(duì)基于形狀分布的EMD算法[6](EMD形狀分布)和EMD屬性矢量算法進(jìn)行比較,檢索結(jié)果中顯示前六個(gè)與目標(biāo)裝配體最相似的模型及其非相似度值,如表1所示。
表1中的EMD形狀分布算法在裝配體各零件表面取點(diǎn)對(duì)100萬個(gè),計(jì)算點(diǎn)對(duì)歐式距離,分為300組,生成形狀分布直方圖描述零件,組成零件集合描述裝配體模型。
使用EMD屬性矢量算法和EMD形狀分布算法就檢索效果的魯棒性、查全率和檢索時(shí)間三方面進(jìn)行比較分析。
(1)查全率比較。就表1中3組檢索實(shí)驗(yàn)的查全率進(jìn)行比較,如圖3所示。從輪子、夾具檢索實(shí)驗(yàn)的查全率對(duì)比中,可明顯發(fā)現(xiàn)使用EMD屬性矢量算法查全率、檢索精度更高。
圖3 EMD屬性矢量算法和EMD形狀分布算法前六個(gè)檢索結(jié)果查全率比較Fig.3 The Recall Ratio of the Top Six Retrieval Results Comparison between the EMD Attribute Vector Algorithm and the EMD Shape Distribution Algorithm
(2)魯棒性比較。對(duì)裝配體尺寸大小變化進(jìn)行魯棒性比較,根據(jù)零件匹配完整程度衡量算法魯棒性。電機(jī)檢索實(shí)驗(yàn)中定義:當(dāng)目標(biāo)電機(jī)有底座時(shí),數(shù)據(jù)庫中有底座電機(jī)在檢索結(jié)果前面顯示,電機(jī)尺寸對(duì)檢索結(jié)果影響小,視為魯棒性強(qiáng)。表1中,可以通過觀察B電機(jī)位置比較兩種算法的魯棒性,EMD屬性矢量和EMD形狀分布算法檢索結(jié)果中,B電機(jī)分別位于第4、6位,B電機(jī)比目標(biāo)電機(jī)尺寸大,其他4個(gè)電機(jī)與目標(biāo)電機(jī)尺寸相差不大。根據(jù)魯棒性的定義,EMD屬性矢量算法下,B電機(jī)位于兩個(gè)無底座模型之前;而EMD形狀分布算法下B電機(jī)則位于兩個(gè)無底座模型之后,故EMD屬性矢量算法對(duì)裝配體模型尺寸大小變化敏感度小,魯棒性更好。
表1 EMD屬性矢量算法與EMD形狀分布算法的前六個(gè)檢索結(jié)果比較Tab.1 The Top Six Retrieval Results Comparison between the EMD Attribute Vector Algorithm and the EMD Shape Distribution Algorithm
(3)檢索時(shí)間比較。對(duì)數(shù)據(jù)庫中的52個(gè)模型計(jì)算共計(jì)52×52次非相似度值,比較此過程中兩者耗時(shí)。EMD屬性矢量算法耗時(shí)1.893s,EMD形狀分布耗時(shí)35.604min,后者比前者多耗時(shí)1127倍,可見EMD屬性矢量算法檢索更加快捷。分析原因:EMD屬性矢量算法僅需的8組屬性數(shù)據(jù)直接從CAD軟件獲取,只使用屬性柱狀圖中該屬性與裝配體中所有零件該屬性總和的比值就作為每根柱子高度,而EMD形狀分布算法從零件模型表面隨機(jī)取高達(dá)100萬對(duì)點(diǎn)對(duì),按形狀函數(shù)計(jì)算這些點(diǎn)對(duì)距離,分布于300個(gè)距離區(qū)間,構(gòu)造形狀分布直方圖,耗時(shí)。
使用裝配體零件屬性構(gòu)成柱狀圖,組成集合描述裝配體,利用EMD算法計(jì)算裝配體間零件匹配的最小花費(fèi),實(shí)現(xiàn)檢索。該檢索方法具有以下特點(diǎn):
(1)使用裝配體各零件屬性,生成屬性矢量,組成集合構(gòu)成的裝配體描述符簡(jiǎn)潔明了,有效合理。
(2)所需的裝配體模型零件屬性可以直接從CAD軟件獲取,無需預(yù)處理,直接明了。
(3)對(duì)于尺寸大小存在差異的裝配體模型檢索仍然準(zhǔn)確、快速,魯棒性能高。