趙安安,王洲濤,汪 俊
(1.中航西安飛機(jī)工業(yè)集團(tuán)股份有限公司,西安710089;2.南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,南京211106;3.南京航空航天大學(xué)機(jī)電學(xué)院,南京210016)
在現(xiàn)代制造業(yè)中,數(shù)字化制造技術(shù)已經(jīng)成為支撐現(xiàn)在工業(yè)發(fā)展的重要推動(dòng)力量[1?5]。在航空航天領(lǐng)域中,目前已經(jīng)完成生產(chǎn)開(kāi)發(fā)的高端飛機(jī)型號(hào)中,無(wú)一不采用了先進(jìn)的數(shù)字化技術(shù)輔助飛機(jī)制造的各項(xiàng)工藝程序。進(jìn)入21世紀(jì)以后,計(jì)算機(jī)輔助技術(shù)進(jìn)一步發(fā)展。數(shù)字化與信息化的浪潮在各個(gè)行業(yè)都實(shí)現(xiàn)了創(chuàng)新性發(fā)展。特別是在航空航天領(lǐng)域中,國(guó)內(nèi)外研究機(jī)構(gòu)投入了大量資源、人員開(kāi)展數(shù)字化制造相關(guān)先進(jìn)技術(shù)研究。其中,數(shù)字化測(cè)量技術(shù)是目前在航空航天制造流程中,應(yīng)用最為廣泛,實(shí)用價(jià)值高的一項(xiàng)技術(shù)之一[6?12]。
精確的數(shù)字化測(cè)量系統(tǒng),能夠?yàn)轱w機(jī)的外形檢測(cè)、裝配干涉分析等,提供高質(zhì)量的數(shù)字模型。近些年來(lái),隨著測(cè)量設(shè)備與技術(shù)的進(jìn)步,傳統(tǒng)的接觸式測(cè)量已經(jīng)被光學(xué)測(cè)量所取代。光學(xué)測(cè)量憑借著非接觸、數(shù)據(jù)采集量巨大等優(yōu)點(diǎn),在航空航天制造領(lǐng)域中,越來(lái)越多被應(yīng)用于零部件尺寸的測(cè)量、整機(jī)質(zhì)量分析、數(shù)字化裝配以及輔助加工制造中[13?18]。為了實(shí)現(xiàn)飛機(jī)泊位系統(tǒng)的高效與精確,王春彥等[13]建立了基于雙振鏡的激光掃描系統(tǒng)。通過(guò)采用去噪、精簡(jiǎn)等優(yōu)化技術(shù),對(duì)激光掃描數(shù)據(jù)進(jìn)行分析,提高了掃描數(shù)據(jù)的質(zhì)量。馮上朝等[14]對(duì)激光掃描儀采集的飛機(jī)點(diǎn)云數(shù)據(jù),采用對(duì)齊、精簡(jiǎn)等預(yù)處理手段,提高了后續(xù)飛機(jī)建模的處理效率。李棟等[15]基于激光掃描數(shù)據(jù),提取飛機(jī)蒙皮的下陷特征點(diǎn)。楊角龍等[16]針對(duì)飛機(jī)蒙皮修配量問(wèn)題,基于掃描線點(diǎn)云,提出了一種修配量提取方法。該方法精度極高,滿足了飛機(jī)實(shí)際裝配過(guò)程中的需求。為了快速準(zhǔn)確地對(duì)飛機(jī)表面孔進(jìn)行檢測(cè)與加工,石循磊等[17]提出了一種基于線激光數(shù)據(jù)的飛機(jī)表面锪窩孔參數(shù)提取方法。并且,該方法對(duì)于粗糙的曲面也具有魯棒性。趙慶輝等[18]重點(diǎn)分析了手持式三維激光掃描儀在大飛機(jī)裝配中的偏差問(wèn)題,為飛機(jī)機(jī)身內(nèi)部裝配的偏差檢測(cè)提供了一種實(shí)用的方法。
然而,現(xiàn)有的三維激光掃描系統(tǒng)在掃描復(fù)雜零部件時(shí),容易出現(xiàn)掃描不完整的問(wèn)題,進(jìn)一步影響后續(xù)的加工制造[19?21]。對(duì)于一個(gè)待掃描的飛機(jī)零部件,其表面的槽特征,筋特征在模型的粗測(cè)量階段不易被掃描到。圖1展示了兩種不易被掃描的飛機(jī)表面特征。為了克服上述問(wèn)題,在粗測(cè)量階段后。需要對(duì)帶掃描零件執(zhí)行一次精細(xì)化掃描。在精細(xì)化掃描階段,對(duì)其中存在的槽特征、筋特征給出若干條掃描路徑,使持有掃描儀的機(jī)械臂能沿此路徑對(duì)該零部件的各類特征進(jìn)行完整精細(xì)地掃描。
圖1 飛機(jī)壁板的兩種常見(jiàn)表面特征Fig.1 Two surface features of aircraft siding
本文提出一種基于特征識(shí)別的飛機(jī)零部件掃描路徑生成方法。針對(duì)上述存在的各類槽特征、筋特征,生成完整的掃描路徑,并使機(jī)械臂沿著生成的路徑實(shí)現(xiàn)自動(dòng)化掃描與測(cè)量。掃描路徑的生成,主要通過(guò)特征面的提取實(shí)現(xiàn)。首先將每個(gè)特征面投影到二維平面中,在二維空間中對(duì)該特征面規(guī)劃出一條合適的掃描路徑。待二維空間路徑生成后,將其投影回三維空間。再對(duì)其進(jìn)行一定角度的偏置,得到最終規(guī)劃的三維掃描路徑。
在航空制造業(yè)數(shù)字化測(cè)量過(guò)程中,復(fù)雜零部件存在特征不能完整測(cè)量的問(wèn)題。為了進(jìn)一步精確掃描,獲得待掃描部件的細(xì)致特征,提出了一種飛機(jī)零部件掃描路徑生成方法。針對(duì)飛機(jī)零部件上存在的各類槽特征、筋特征給出完整的掃描路徑,并結(jié)合機(jī)械臂實(shí)現(xiàn)自動(dòng)化掃描與測(cè)量。
對(duì)于一個(gè)飛機(jī)零部件數(shù)字模型,本文的目標(biāo)是對(duì)其中存在的槽特征、筋特征給出若干條掃描路徑,使持有掃描儀的機(jī)械臂能沿此路徑對(duì)該零部件的各類特征進(jìn)行完整精細(xì)地掃描。這類特征往往在模型的粗測(cè)量階段不易被掃描到,如筋特征的側(cè)面、槽特征四壁的側(cè)壁等。本文采用區(qū)域分割的方法對(duì)各類特征進(jìn)行分割和提取??紤]到槽、筋等特征中不易被掃描到的區(qū)域均為和掃描方向近似垂直特征面,在對(duì)模型進(jìn)行區(qū)域分割之后,將這些特征面進(jìn)行提取,作為后續(xù)處理的基礎(chǔ)。
掃描路徑的生成主要是通過(guò)分析提取出的特征面來(lái)進(jìn)行的:將每個(gè)特征面投影到一個(gè)二維平面內(nèi),并在二維空間內(nèi)對(duì)該特征面規(guī)劃出一條合適的掃描路徑,將該路徑投影返回三維后,對(duì)其沿著一定角度進(jìn)行偏置,就得到了最終規(guī)劃的三維掃描路徑。
具體流程如圖2所示,從結(jié)果可視化圖可知該方法能夠有效識(shí)別出飛機(jī)零部件的特征細(xì)節(jié),并依據(jù)特征形狀準(zhǔn)確地給出掃描路徑。
圖2 方法流程圖Fig.2 Method flow chart
在機(jī)械臂代替人工進(jìn)行飛機(jī)零部件掃描的過(guò)程中,對(duì)于較復(fù)雜的模型掃描難度往往體現(xiàn)在零件特征掃描不完整上。這些特征諸如筋特征的側(cè)面、槽特征四壁的側(cè)壁等,想要從一個(gè)固定的角度進(jìn)行全部掃描是比較困難的。本文的思想是先將此類特征進(jìn)行識(shí)別,然后對(duì)其掃描路徑單獨(dú)進(jìn)行規(guī)劃。本節(jié)提出基于區(qū)域分割的特征提取方法實(shí)現(xiàn)第一步的目的。
考慮幾乎所有機(jī)械臂難以一次掃描到的區(qū)域都是由于該區(qū)域的法向量和掃描儀入射角度近乎垂直,所以先將整個(gè)零件用區(qū)域分割算法將每一個(gè)面分割出來(lái),然后從中提取出法向量和掃描入射角度垂直的“側(cè)面”。在本文中,將這些“側(cè)面”稱為特征面。此外,為了方便描述,定義粗掃描階段零件朝向掃描儀的方向?yàn)榱慵幕蛄浚卣髅婢褪欠ㄊ负突蛄拷拼怪钡拿妗?/p>
區(qū)域分割算法基于模型三角面片的生長(zhǎng)和融合,使分割出來(lái)的每一個(gè)區(qū)域內(nèi)所有三角面片法向量之間的最大夾角小于設(shè)定的閾值。輸入待掃描的模型和設(shè)定的夾角閾值,對(duì)其中所有的邊進(jìn)行遍歷,計(jì)算和邊相鄰的兩個(gè)三角面片的二面角,在此過(guò)程中為每一個(gè)面賦值上一個(gè)區(qū)域編號(hào),表示該面所屬的區(qū)域。當(dāng)計(jì)算每一個(gè)邊所對(duì)應(yīng)的二面角時(shí),根據(jù)它和設(shè)定閾值的大小比較結(jié)果,可以得到如下兩種情況:如果二面角不超過(guò)閾值,說(shuō)明左右兩個(gè)面片分屬不同的區(qū)域,這時(shí)只需給它們表示上不同的區(qū)域編號(hào);如果二面角比閾值大,就要考慮是否能將左右兩個(gè)面片所代表的區(qū)域進(jìn)行融合。融合的方法是計(jì)算這兩個(gè)區(qū)域內(nèi)面片法矢夾角的最大值,對(duì)比最大值和閾值之間的關(guān)系,如果最大值小于閾值,就將兩區(qū)域融合,賦值上相同的區(qū)域編號(hào)。如圖3所示。其中,不同面片之間的法矢夾角計(jì)算定義為
圖3 面片法矢夾角示意圖Fig.3 Angle between the normal vectors of the patch
式中:CA(·)為兩個(gè)不同面片的法矢夾角計(jì)算函數(shù);pn、qm分別為不同區(qū)域中的面片。
當(dāng)所有的邊遍歷結(jié)束時(shí),模型中所有的面片均已賦值上區(qū)域編號(hào),最終完成區(qū)域分割,其中每一個(gè)區(qū)域內(nèi)所有的面片兩兩之間的夾角均不超過(guò)設(shè)定的閾值。
為了找出零件模型中所有的特征并進(jìn)行提取,即找出和基向量近似垂直的特征面,計(jì)算每一塊分割出的區(qū)域的平均法矢,如果一個(gè)區(qū)域的平均法矢和基向量近似垂直,即兩者的夾角大于一定的角度,就可以將這個(gè)區(qū)域作為一個(gè)特征進(jìn)行提取。提取出的特征作為下一步進(jìn)行掃描路徑規(guī)劃的基礎(chǔ)。
在1.1節(jié)中所述的區(qū)域分割算法,能有效地保證所分割出的每一塊區(qū)域內(nèi)所有三角面片之間的夾角都嚴(yán)格小于一定的閾值,從直觀上看,如果閾值設(shè)定較小,這些區(qū)域就會(huì)足夠“平坦”。但是,在算法過(guò)程中對(duì)于區(qū)域是否能融合的判斷卻是十分耗時(shí)的,其時(shí)間復(fù)雜度為指數(shù)級(jí),這使得該算法不能接受較為復(fù)雜的模型。于是,根據(jù)飛機(jī)零部件模型的實(shí)際特點(diǎn),提出一種簡(jiǎn)化的替代策略作為更為通用的區(qū)域分割算法,這將會(huì)在大幅減少時(shí)間復(fù)雜度的同時(shí),適應(yīng)大部分模型的掃描。
實(shí)際的飛機(jī)零部件數(shù)字模型大多為CAD模型,這些模型邊緣明顯,曲面較少。根據(jù)這個(gè)特點(diǎn)對(duì)1.1節(jié)算法中區(qū)域融合的過(guò)程簡(jiǎn)化如下:當(dāng)一個(gè)邊所對(duì)應(yīng)的二面角大于閾值時(shí),即可以將兩個(gè)三角片賦值同一個(gè)區(qū)域編號(hào)。這種做法能省去計(jì)算兩個(gè)區(qū)域面片法矢最大夾角的計(jì)算,從而大幅度降低時(shí)間復(fù)雜度。雖然這種做法降低了算法區(qū)域分割的能力,但是針對(duì)零部件模型來(lái)說(shuō),卻不會(huì)明顯降低實(shí)際應(yīng)用的效果。因此,通常采用簡(jiǎn)化的區(qū)域分割算法作為整個(gè)方法的第一步。而1.1節(jié)中提出的方法作為可選項(xiàng)處理較為特殊的模型,如一些曲面較多,區(qū)域間夾角較小的模型。算法流程偽代碼如下:
其中,A(·)用于計(jì)算兩個(gè)面片的二面角,C(·)用于融合兩個(gè)可以合并的面片區(qū)域。在數(shù)字模型E={e0,e1,…,ei}Ii=0中,ei為三角網(wǎng)格數(shù)字模型中的一條邊,s'i和s″i表示邊ei兩側(cè)的區(qū)域。執(zhí)行區(qū)域分割后的數(shù)字模型為S={s0,s1,…,sj}Jj=0,sj表示分割后的區(qū)域。
特征面是掃描路徑規(guī)劃的實(shí)施對(duì)象,特征面的提取有利于對(duì)其掃描路徑進(jìn)行單獨(dú)規(guī)劃,生成更符合特征形狀的掃描路徑。本節(jié)中,將介紹提出的掃描路徑生成算法。
三維世界有著更高的自由度和更大的信息量,而提取出的特征面可以視為三維世界中的二維平面,這意味著在三維中直接進(jìn)行掃描路徑規(guī)劃會(huì)更為復(fù)雜。為此,算法的第一步是將特征面投影到一個(gè)規(guī)范的二維局部坐標(biāo)系,在此坐標(biāo)系下,特征面的二維包圍盒的長(zhǎng)邊和寬邊分別與兩坐標(biāo)軸平行。
主成分分析(Principal component analysis,PCA)是一種統(tǒng)計(jì)方法,經(jīng)常用于數(shù)據(jù)空間的降維,它能夠分析數(shù)據(jù)存在的相關(guān)性,并轉(zhuǎn)化為一組線性不相關(guān)的變量,稱為主成分。對(duì)于點(diǎn)云數(shù)據(jù),主成分分析常用來(lái)計(jì)算點(diǎn)云的包圍盒,其直接輸出的主成分對(duì)應(yīng)包圍盒不同邊的方向向量。算法將PCA直接應(yīng)用于確定特征面局部坐標(biāo)系:將特征面數(shù)據(jù)中的面片角點(diǎn)視為點(diǎn)云數(shù)據(jù)作為輸入,利用PCA分析其主成分,得到兩個(gè)二維方向向量,單位化后即可作為局部坐標(biāo)系的兩個(gè)坐標(biāo)軸,并將所有點(diǎn)的平均坐標(biāo)作為原點(diǎn),其過(guò)程可以表達(dá)為
式中:T為降維后的二維坐標(biāo),C為兩個(gè)二維方向向量,P為原始的點(diǎn)云坐標(biāo)。
在確定了局部坐標(biāo)系后,三維空間中的特征面就可以投影到二維平面中進(jìn)行二維的路徑規(guī)劃,實(shí)現(xiàn)對(duì)問(wèn)題的簡(jiǎn)化。
在二維路徑下規(guī)劃特征面的掃描路徑,并不能單純地將特征面包圍盒的中線作為輸出。對(duì)于規(guī)則的矩形特征面,這種方法是可行的,而當(dāng)特征面形狀不規(guī)則時(shí),如圓弧形特征面,其掃描路徑也應(yīng)該是圓弧,這種簡(jiǎn)單的處理方式不再適用。為了能讓掃描路徑依據(jù)不同特征面的形狀生成,提出采樣法提取掃描路徑。具體過(guò)程如下:首先確定特征面包圍盒,將其一條長(zhǎng)邊作為采樣邊進(jìn)行等間距采樣。然后將每一個(gè)采樣點(diǎn)投影到另一條長(zhǎng)邊上,得到投影點(diǎn),投影點(diǎn)和采樣點(diǎn)的連線稱為投影線,其寬度顯然和包圍盒的長(zhǎng)邊相等。每一條投影線都會(huì)和該特征面的邊界至少形成兩個(gè)交點(diǎn),取所有交點(diǎn)中離該采樣點(diǎn)最遠(yuǎn)的點(diǎn)和最近的點(diǎn),計(jì)算它們的平均值,便得到其中一個(gè)掃描點(diǎn)。計(jì)算出所有掃描點(diǎn),掃描點(diǎn)所連成的線就是該特征面二維下掃描路徑規(guī)劃的結(jié)果。
為了得到三維空間中的掃描路徑,將每個(gè)特征面的二維掃描點(diǎn)映射回三維空間中,并將其沿著掃描方向進(jìn)行一定距離的偏置,就得到了三維空間中的掃描路徑。掃描方向和偏置距離均可根據(jù)實(shí)際應(yīng)用時(shí)的機(jī)械臂和工作環(huán)境進(jìn)行參數(shù)設(shè)置。
為了驗(yàn)證所提出方法的有效性,本節(jié)采用飛機(jī)壁板數(shù)字模型進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)運(yùn)行的硬件環(huán)境為內(nèi)置英特爾I7 8700 CPU,16 GB內(nèi)存的臺(tái)式計(jì)算機(jī),使用Visual Studio 2017社區(qū)版運(yùn)行與編輯算法代碼。實(shí)驗(yàn)主要分為以下幾個(gè)主要部分:首先,采用本文所提出的方法對(duì)飛機(jī)壁板特征生成掃描路徑。接著,將飛機(jī)壁板模型生成的掃描路徑與人工標(biāo)定的掃描路徑進(jìn)行對(duì)比。根據(jù)路徑上掃描點(diǎn)是否匹配,得到每個(gè)特征下總體的掃描精確度。并且,在實(shí)驗(yàn)中還通過(guò)記錄算法生成整個(gè)飛機(jī)壁板數(shù)字模型的完整掃描路徑的總體時(shí)間來(lái)評(píng)判算法的效率。
圖4為飛機(jī)壁板筋特征的掃描路徑生成結(jié)果圖。圖4(a)為待掃描的飛機(jī)壁板數(shù)字模型,針對(duì)其中的筋特征面(圖4(b)),首先進(jìn)行區(qū)域分割。圖4(c)為區(qū)域分割的結(jié)果,其中藍(lán)色部分即是筋特征面。黃色、綠色和灰色部分為其他非目標(biāo)特征面。圖4(d)中浮于筋特征面上的藍(lán)色離散點(diǎn),即為生成的掃描路徑。從圖中可以觀察到,生成的掃描路徑很好地覆蓋了藍(lán)色的筋特征面。并且分割出來(lái)的筋特征面也能夠和其他特征面進(jìn)行較好地區(qū)分。
圖4 筋特征掃描路徑生成結(jié)果Fig.4 Scan path generation result of rib feature
圖5則是飛機(jī)壁板槽特征的掃描路徑生成結(jié)果圖。有區(qū)別于筋特征面,圖5(c)中紫色和綠色的特征面即是分割出來(lái)的槽特征面,從圖5(d)中可以觀察到黑色的掃描路徑點(diǎn)很好地覆蓋了待掃描的特征面。本文所提出的方法在筋特征中的表現(xiàn)要優(yōu)于槽特征。槽特征在部分區(qū)域由于形狀變化劇烈,如圖6所示。導(dǎo)致區(qū)域分割算法難以分割出此類區(qū)域,分割算法失效,進(jìn)一步導(dǎo)致生成的掃描路徑失敗。
圖5 槽特征掃描路徑生成結(jié)果Fig.5 Scan path generation result of slot feature
圖6 分割失敗的槽特征Fig.6 Slot feature for failed segmentation
本文所提出的算法包含兩種不同的區(qū)域分割算法,為了進(jìn)一步分析二者之間在效率與精度上的差異,本節(jié)將飛機(jī)壁板的數(shù)字模型進(jìn)行人工掃描路徑標(biāo)定,隨后將人工標(biāo)定的掃描路徑與本文所提出算法生成的路徑進(jìn)行對(duì)比。當(dāng)生成的掃描路徑點(diǎn)與人工標(biāo)注的掃描路徑點(diǎn)位置的差值不超過(guò)10 cm的閾值,即表示此掃描點(diǎn)為正確預(yù)測(cè)點(diǎn),反之亦然。此外,通過(guò)完整執(zhí)行掃描流程所花費(fèi)的時(shí)間,對(duì)比兩種算法效率的差異。如表1所示,對(duì)于一個(gè)完整的飛機(jī)壁板數(shù)字模型,簡(jiǎn)化算法與完整算法的時(shí)間分別為14.4與128.4 s。在實(shí)際測(cè)量過(guò)程中,復(fù)雜的模型可以選擇完整算法提升掃描精度,簡(jiǎn)易模型可以采用簡(jiǎn)化算法,提升掃描效率。
表1 算法對(duì)比Table 1 Algorithm comparison
上述兩個(gè)實(shí)驗(yàn)可以看出本文所提出的方法可以有效生成掃描路徑,與人工標(biāo)定的結(jié)果已經(jīng)十分接近。表2展示了4個(gè)不同結(jié)構(gòu)的數(shù)字模型,采用完整算法進(jìn)行掃描路徑生成的結(jié)果對(duì)比。為保證實(shí)驗(yàn)結(jié)果的有效性,表2中的所有結(jié)果均在相同的實(shí)驗(yàn)環(huán)境中測(cè)試5次,取均值為最終結(jié)果。4個(gè)數(shù)字模型結(jié)構(gòu)從簡(jiǎn)單到復(fù)雜分別進(jìn)行排序,1的結(jié)構(gòu)最簡(jiǎn)單,4的結(jié)構(gòu)最復(fù)雜。如表2所示,當(dāng)模型的結(jié)構(gòu)趨于復(fù)雜時(shí),算法運(yùn)行時(shí)間也會(huì)增加。分析原因,是因?yàn)樵趶?fù)雜的模型中,特征面數(shù)量增加,導(dǎo)致計(jì)算量增加。對(duì)于復(fù)雜的4號(hào)數(shù)字模型,本文的方法依舊能夠在算法運(yùn)行時(shí)間不顯著增加的情況下,保持較高的準(zhǔn)確率。
表2 不同結(jié)構(gòu)數(shù)字模型結(jié)果對(duì)比Table 2 Comparison of different digital models
本文提出了一種基于飛機(jī)壁板特征的掃描路徑生成方法,用于克服自動(dòng)化掃描系統(tǒng)在掃描飛機(jī)復(fù)雜零部件時(shí),部分掃描缺失的問(wèn)題。針對(duì)槽、筋特征中不易被掃描到的區(qū)域均為和掃描方向近似垂直特征面,本文提出了兩種版本的區(qū)域分割算法,分割出與基平面法向量垂直的特征平面。完整的區(qū)域分割算法執(zhí)行時(shí)間較長(zhǎng),但是精度較高。簡(jiǎn)化的區(qū)域分割算法,執(zhí)行時(shí)間較短,適用于簡(jiǎn)單模型的處理。在得到特征平面后,將特征平面進(jìn)行二維投影。在二維空間中,生成對(duì)應(yīng)特征面的掃描路徑。最終,將掃描路徑從二維映射回三維空間中,在進(jìn)行一定的偏置后得到最終的掃描路徑??梢暬c量化評(píng)估的結(jié)果顯示,本文所提出的方法,可以準(zhǔn)確生成大部分區(qū)域的掃描路徑。為飛機(jī)實(shí)際生產(chǎn)制造的自動(dòng)化測(cè)量過(guò)程提供有效的支持。