束 怡,翟歡樂
(江蘇航空職業(yè)技術(shù)學(xué)院工程學(xué)院,江蘇鎮(zhèn)江 212000)
在逆向工程中,數(shù)據(jù)采集和處理是實(shí)現(xiàn)三維模型重建的第一步工作,數(shù)據(jù)采集也稱零件的數(shù)字化,是通過特定的掃描設(shè)備和掃描方法獲取零件表面離散點(diǎn)的幾何坐標(biāo)數(shù)據(jù),這些幾何坐標(biāo)數(shù)據(jù)稱為點(diǎn)云,在此基礎(chǔ)上進(jìn)行復(fù)雜曲面的建模、評(píng)價(jià)、改進(jìn)和制造,點(diǎn)云數(shù)據(jù)處理的好壞程度直接影響整個(gè)逆向設(shè)計(jì)過程的精度[1]。點(diǎn)云數(shù)據(jù)常用采集方法有CMM 坐標(biāo)測(cè)量、激光掃描等,受測(cè)量技術(shù)、周圍環(huán)境、物體幾何形狀、定位以及夾具等因素的影響,通常需要對(duì)物體進(jìn)行多方位測(cè)量,然后將不同方位下測(cè)的點(diǎn)云拼合成一個(gè)表達(dá)完整實(shí)物的點(diǎn)云,最后通過模型重建方法生成零件的三維模型[2],然而這些方法獲取的測(cè)量物體表面數(shù)據(jù)點(diǎn)信息有限,需要進(jìn)行多次測(cè)量。點(diǎn)云的拼合過程就是根據(jù)點(diǎn)云間的共有特征信息,設(shè)定評(píng)判準(zhǔn)則,求解坐標(biāo)系變換的旋轉(zhuǎn)矩陣和平移矩陣,以將所有點(diǎn)云拼合在同一坐標(biāo)系下[3]。
點(diǎn)云拼合主要分為兩種方式,一種是基于點(diǎn)云的直接拼合,如最常見的ICP 算法[4],該算法是將目標(biāo)點(diǎn)云P與源點(diǎn)云Q 進(jìn)行比較,匹配得到最接近的點(diǎn)云對(duì),再進(jìn)行相關(guān)運(yùn)算得到誤差函數(shù),并計(jì)算出使得誤差函數(shù)最小的參數(shù)旋轉(zhuǎn)矩陣R和平移向量t。在此基礎(chǔ)上,再對(duì)目標(biāo)點(diǎn)云P 進(jìn)行旋轉(zhuǎn)和平移變換,得到新的對(duì)應(yīng)點(diǎn)集P′,隨后不斷重復(fù)該過程直到目標(biāo)收斂條件達(dá)成。除了應(yīng)用最廣泛的ICP 算法,還有Horn[5]提出的四元數(shù)法,劉宇[6]提出的基于法矢的點(diǎn)云拼合方法,孫世為[7]提出的基于曲率RGB 的多視點(diǎn)云拼合方法等;另一種是基于參考點(diǎn)的間接拼合,孫殿柱[8]、程俊延[9]等通過在零件上粘附一些固定球或者標(biāo)簽,完成點(diǎn)云的拼合。
基于點(diǎn)云的直接拼合,優(yōu)點(diǎn)是拼合精度高,缺點(diǎn)是計(jì)算難度大、成功率低;基于參考點(diǎn)的間接拼合,優(yōu)點(diǎn)是拼合簡單、成功率高,缺點(diǎn)是新增物在一定程度上覆蓋了原有零件的部分表面,為后期逆向設(shè)計(jì)增加了難度[10]。鑒于此,本文基于零件原有的平面、直線或點(diǎn)特征來研究點(diǎn)云的拼合方法,并引入粒子群算法來提高拼合效率。
零件表面測(cè)量可分為接觸式測(cè)量與非接觸式測(cè)量兩種方式,接觸式測(cè)量主要用不同類型的機(jī)械探頭接觸需要測(cè)量的物體表面,通過機(jī)械臂上的傳感器得到相對(duì)坐標(biāo)位置,最終得到測(cè)量零件的特征信息;非接觸式測(cè)量則是使用類似光學(xué)、聲學(xué)等領(lǐng)域的原理知識(shí),再將得到的物理模擬量轉(zhuǎn)化為測(cè)量零件的表面信息[11]。關(guān)節(jié)臂測(cè)量機(jī)集兩種測(cè)量方式于一身,每次的測(cè)量數(shù)據(jù)可同時(shí)包含特征數(shù)據(jù)及點(diǎn)云數(shù)據(jù),根據(jù)特征信息完成坐標(biāo)系變換,即完成了點(diǎn)云數(shù)據(jù)的拼合。
測(cè)量時(shí),會(huì)有環(huán)境、零件形狀、零件放置方式等因素影響測(cè)量結(jié)果,因此在測(cè)量之前,要做好規(guī)劃工作,以起到降低誤差的作用,一是判斷零件表面的顏色是否會(huì)產(chǎn)生鏡面反射,再確定掃描次數(shù)及放置方式,遵循全面性及穩(wěn)定性原則,將復(fù)雜面朝向容易掃描的方向;二是確定要測(cè)量的特征,確保所選的特征比較精確、距離相對(duì)較遠(yuǎn)且能夠使點(diǎn)云拼合方式唯一[12]。零件放置方式的規(guī)劃與特征的選擇相互影響,要綜合考慮,權(quán)衡取舍。
通過關(guān)節(jié)臂測(cè)量機(jī)測(cè)量的平面特征可用4 個(gè)點(diǎn)來表達(dá),直線特征可用2個(gè)點(diǎn)來表達(dá)。以2次掃描測(cè)得的數(shù)據(jù)進(jìn)行分析,可分別寫成數(shù)據(jù)集合A={MAI,XAJ,DAK,YAM},B={MBI,XBJ,DBK,YBN},其中MAI、MBI均代表I個(gè)特征平面組成的集合,分別用4I×3矩陣表示;XAJ、XBJ均代表J個(gè)特征直線組成的集合,分別用2J×3 矩陣表示;DAK、DBK均代表K個(gè)特征點(diǎn)組成的集合,分別用K×3 矩陣表示;YAM代表M個(gè)點(diǎn)組成的點(diǎn)云集合,用M×3矩陣表示;集合YBN代表N個(gè)點(diǎn)組成的點(diǎn)云集合,用N×3矩陣表示。
數(shù)據(jù)集合A中的MAI、XAJ和數(shù)據(jù)集合B中MBI、XBJ無法直接通過坐標(biāo)變換建立重合關(guān)系,需要變換表達(dá)方式,用方向向量和點(diǎn)坐標(biāo)來表示[13]。其中,方向向量根據(jù)特征點(diǎn)的相對(duì)位置確定唯一性,點(diǎn)坐標(biāo)通過特征點(diǎn)在平面或直線上到投影獲得。因此,集合A和B可采用新的表達(dá)方式:A={UA,WA,YAm},B={UB,WB,YBn} 。其中,UA和UB表示方向矩陣;WA和WB表示坐標(biāo)矩陣。因UB和WB的表達(dá)方式分別與UA和WA類似,只給出UA和WA的表達(dá)式:
點(diǎn)云的拼合需要將零件的幾何特征進(jìn)行對(duì)齊才能實(shí)現(xiàn),首先需要確保約束特征達(dá)到拼合條件,使得用于拼合的幾何特征是表達(dá)三維空間的唯一方式。零件特征可簡化為平面、直線和點(diǎn),即用這3種特征建立一個(gè)唯一的坐標(biāo)系[14]。
由于特征沒有方向的特性,難以用來直接表達(dá)坐標(biāo)軸,因此可以通過5個(gè)元素(原點(diǎn)、x軸、x軸正方向、y軸、y軸正方向)來定義坐標(biāo)軸,x軸和y軸只是通過同一個(gè)原點(diǎn),沒有方向,滿足這5個(gè)元素的特征集則被認(rèn)為是唯一的定義三維空間[15]。平面、直線和點(diǎn)可以組成多種特征集,如點(diǎn)集、直線集、平面集、平面-直線-點(diǎn)集等。通過分析知,點(diǎn)云的約束特征是否能拼合的判斷方法是這些約束特征是否可以定義唯一的坐標(biāo)系來表達(dá)三維空間,點(diǎn)云約束特征的數(shù)量與特征集拼合的可能性成正比。
點(diǎn)云拼合的效果與拼合的適應(yīng)度函數(shù)有關(guān),當(dāng)適應(yīng)度函數(shù)達(dá)到最小值時(shí),點(diǎn)云拼合效果最佳。拼合的適應(yīng)度函數(shù)包含平面、直線與點(diǎn)拼合適應(yīng)度3 種,平面和直線因?yàn)榫哂袩o限延伸、沒有邊界的特點(diǎn),不能采用距離的方式定義其拼合適應(yīng)度,而點(diǎn)拼合適應(yīng)度則可以[16]。因此,針對(duì)特征拼合效果的評(píng)價(jià)有3 種方法,一是參數(shù)法,即評(píng)價(jià)平面方程參數(shù)、直線方程參數(shù)及點(diǎn)坐標(biāo)參數(shù)的數(shù)值偏差,這種評(píng)價(jià)方式屬于直接評(píng)價(jià),參數(shù)偏差大小與點(diǎn)云的拼合效果成反比;二是距離法,即在一個(gè)包含所有點(diǎn)云數(shù)據(jù)的長方體空間內(nèi)評(píng)價(jià)平面、直線及點(diǎn)的最大距離偏差,這種評(píng)價(jià)方法屬于間接評(píng)價(jià),計(jì)算相較第一種更復(fù)雜,但精度更高;三是組合法,即參數(shù)法與距離法的組合使用,結(jié)合了兩種評(píng)價(jià)方式的優(yōu)勢(shì)。
粒子群算法是一種智能算法,通過群體中每個(gè)粒子位置和速度的不斷更新進(jìn)行迭代計(jì)算,來完成對(duì)問題尋優(yōu)[17-18]。粒子群算法與遺傳算法類似,但在解決一些典型函數(shù)優(yōu)化問題時(shí),優(yōu)化結(jié)果會(huì)比遺傳算法更佳[19-20],可以簡化問題解的編碼與適應(yīng)性函數(shù)的選擇等步驟,簡單易實(shí)現(xiàn),且需要調(diào)整的參數(shù)較少,同時(shí)具有收斂速度快的優(yōu)點(diǎn),具備良好的應(yīng)用前景。
粒子群算法計(jì)算步驟[21]如下。
(1)將旋轉(zhuǎn)矩陣R與平移矩陣T組合作為粒子的位置參數(shù),設(shè)置粒子群規(guī)模,并初始化粒子的位置和速度。
旋轉(zhuǎn)矩陣R表示為:
平移矩陣T表示為:
(2)計(jì)算適應(yīng)度函數(shù)f,并與定義的收斂值ζ進(jìn)行比較。
(3)更新粒子的位置和速度并再次計(jì)算,直至f≤ζ為止。
(4)將旋轉(zhuǎn)矩陣R與平移矩陣T用于點(diǎn)云YAM的坐標(biāo)變換,最終實(shí)現(xiàn)與點(diǎn)云YBN的拼合。
確定粒子群算法的變量為旋轉(zhuǎn)矩陣R和平移矩陣T,根據(jù)特征參數(shù)的對(duì)應(yīng)關(guān)系建立參數(shù)法適應(yīng)度函數(shù)。
適應(yīng)度函數(shù)為:
式中:fU為方向矩陣UA經(jīng)旋轉(zhuǎn)矩陣變換后與UB的誤差;fW為坐標(biāo)矩陣WA經(jīng)坐標(biāo)變換后與WB的誤差;a為引入的平衡系數(shù),用于平衡方向矩陣和坐標(biāo)矩陣在元素?cái)?shù)值大小方面的差距。
fU和fW的表達(dá)式為:
確定一個(gè)長方體區(qū)域?,使得點(diǎn)云YBN和經(jīng)過坐標(biāo)變換的點(diǎn)云YAM均包含在內(nèi):
計(jì)算集合B中的某一平面與?的邊線相交得到的交點(diǎn),再計(jì)算幾個(gè)交點(diǎn)到經(jīng)過坐標(biāo)變換后的集合A中對(duì)應(yīng)平面的垂直距離,取最大值,即表示兩平面在長方體區(qū)域?內(nèi)的最遠(yuǎn)距離偏差。用Γ表示?的邊線集,針對(duì)集合A和B的i平面計(jì)算拼合偏差值fMi:
用Ψ表示?的邊界平面集,針對(duì)集合A和B的j直線計(jì)算拼合偏差值fXj:
針對(duì)集合A和B的k點(diǎn)計(jì)算拼合偏差值fDk:
由此得到距離法適應(yīng)度函數(shù)f:
本文以發(fā)動(dòng)機(jī)右半軸支架為例進(jìn)行分析,兩次測(cè)量得到的點(diǎn)云和特征數(shù)據(jù)如圖1 所示。安裝面、安裝軸與定位孔是這個(gè)零件比較重要的特征,因此可以選取一個(gè)平面、一條直線、一個(gè)特征點(diǎn)來代表這個(gè)發(fā)動(dòng)機(jī)右半軸支架點(diǎn)云拼合的約束特征。其中,平面表示安裝面,直線表示安裝軸,點(diǎn)表示支架上其中的一個(gè)定位孔。
圖1 測(cè)量數(shù)據(jù)
(1)設(shè)定適應(yīng)度允許值為0.1,分別采用參數(shù)法與距離法進(jìn)行計(jì)算及收斂性比較,結(jié)果如表1 所示。由表可知,參數(shù)法的收斂性很好,5 次計(jì)算均能夠在10 s 內(nèi)完成收斂;距離法的收斂效果很差,5 次計(jì)算僅有1 次完成收斂。
表1 參數(shù)法與距離法收斂性比較
(2)設(shè)定適應(yīng)度允許值為0.01,分別采用參數(shù)法與組合法進(jìn)行計(jì)算,其中組合法是進(jìn)行兩次粒子群計(jì)算,第1次采用參數(shù)法,第2次采用距離法,第1次的計(jì)算結(jié)果作為第2次計(jì)算的初始值。
比較參數(shù)法與組合法的收斂性結(jié)果如表2 所示。由表可知,兩種方法的收斂速度相當(dāng),組合法的平均收斂速度略低。
表2 參數(shù)法與組合法收斂性比較
比較參數(shù)法與組合法的拼合精度,選擇拼合后點(diǎn)云的部分截線進(jìn)行分析,參數(shù)法得到的拼合點(diǎn)云存在錯(cuò)縫,組合法得到的拼合點(diǎn)云重合度較好,如圖2所示。
圖2 拼合精度比較
采用組合法得到拼合點(diǎn)云如圖3 所示,可很好地用于后期的三維模型重建工序。
圖3 組合法拼合的點(diǎn)云
本文基于粒子群算法,采用幾種方法對(duì)點(diǎn)云特征進(jìn)行拼合,結(jié)果表明:(1)參數(shù)法計(jì)算速度快,收斂性好,但整體精度不高;(2)距離法收斂性差,一旦收斂則具有較好的拼合精度;(3)組合法同時(shí)具備了參數(shù)法與距離法的優(yōu)點(diǎn),具有計(jì)算速度快,收斂性好,拼合精度高的特點(diǎn)。
本文以發(fā)動(dòng)機(jī)右半軸支架為例進(jìn)行點(diǎn)云拼合方法的研究,最終摸索出了基于零件原有平面、直線或點(diǎn)特征的一種點(diǎn)云拼合方法,通過粒子群算法進(jìn)行參數(shù)法及距離法數(shù)學(xué)模型的計(jì)算,減輕復(fù)雜問題的計(jì)算負(fù)擔(dān);與原拼合方法相比,本文探索的拼合方法拼合速度更快、拼合精度更高,能夠很好地用于點(diǎn)云數(shù)據(jù)處理,為后期三維模型重建打下堅(jiān)實(shí)的基礎(chǔ)。