周海陶,陳新度,吳 磊
(廣東工業(yè)大學機電工程學院,廣州 510006)
目前,我國鑄件產(chǎn)量不斷增加,利用傳統(tǒng)人工打磨鑄件飛邊具有打磨效率低、打磨質(zhì)量不穩(wěn)定、人工成本高、打磨粉塵大,影響工人健康等缺點[1]。自動化技術(shù)具有低成本、高效率等特點[2]。因此,將機器人等自動化智能設(shè)備運用到鑄件打磨領(lǐng)域具有巨大的發(fā)展前景[3]。
現(xiàn)有的機器人打磨方法主要是基于鑄件CAD 模型,在模型中獲取相應的打磨路徑,利用CAM 軟件規(guī)劃該路徑,但是,大部分商用的CAM軟件都是基于機床的CAM進行改進的,將其直接運用到機器人可能會造成運動限制問題[4]。同時,由于鑄造技術(shù)的限制,現(xiàn)實鑄件與CAD 模型之間存在鑄造余量,無法準確提取現(xiàn)實鑄件中待打磨部分,從而無法滿足相關(guān)加工要求。席文明、謝劍陽等[5]基于鑄件CAD 模型,利用機器人作為測量工具,建立CAM 空間與作業(yè)空間的映射一致性,可以提高打磨精度,但是該方法較為復雜。
針對上述情況,本文利用掃描真實工件獲取的點云數(shù)據(jù)作為離線編程的模型,可以避免采用CAD 模型與實際鑄件尺寸相差較大的問題,從而避免出現(xiàn)機器人欠打磨或過打磨的情況。其次,現(xiàn)有的商用CAM 軟件難以處理點云數(shù)據(jù),無法對打磨路徑進行準確地控制。因此,本文提出基于鑄件點云對飛邊打磨點進行提取和打磨路徑擬合的方法,并對路徑擬合效果進行評價,擬合結(jié)果可以作為機器人打磨路徑的參考。
總體方案流程如圖1所示。將鑄件點云分割成本體和飛邊兩大模塊。對于飛邊模塊,利用點云邊緣檢測算法,但是主流的邊緣檢測算法并不能很好地區(qū)分出飛邊的內(nèi)外邊緣,由于飛邊形態(tài)各異,內(nèi)外邊緣普遍存在高度差,而外邊緣會影響機器人打磨飛邊高度位置的確定。本文提出在利用法線估計邊緣檢測的基礎(chǔ)上加入近鄰點搜索算法,利用飛邊內(nèi)邊緣是飛邊和鑄件本體界限這一特征,可以有效地區(qū)分出飛邊的內(nèi)外邊緣。
圖1 總體方案流程
對于鑄件本體模塊,利用飛邊內(nèi)邊緣的平均高度進行點云單側(cè)面投影,將三維點云轉(zhuǎn)換成平面點云,再提取整體邊緣,但是,單純的邊緣提取會引入內(nèi)腔輪廓,影響后續(xù)打磨路徑的擬合。因此,本文提出在邊緣提取的基礎(chǔ)上,加入DBSCAN(Density-Based Spatial Clustering of Application with Noise)聚類算法,可以有效排除鑄件的內(nèi)腔輪廓,保留外層邊緣。
對于打磨路徑擬合,利用體素下采樣算法將本體外層邊緣點分為擬合點集和擬合評價點集,利用非均勻三次B 樣條進行路徑擬合,擬合效果利用評價點集在擬合曲線上與最近鄰點的平均距離和均方根誤差進行評價。
鑄件完整點云如圖2所示;分割后的鑄件本體點云如圖3所示;鑄件飛邊點云如圖4所示。
圖2 鑄件掃描點云
圖3 鑄件本體點云
圖4 鑄件飛邊點云
利用基于法線估計對飛邊點云進行邊界檢測,實際上近似于估計點云表面的相切面法線的問題[6]。待擬合的平面方程如下所示:
估計點到擬合平面的距離為:
要得到最佳的擬合平面,可轉(zhuǎn)化成求解極值問題,如下所示:
將式(3)對d求偏導,并化簡,得到:
將式(4)代入到式(2)可得:
式(3)繼續(xù)對a、b、c求偏導,可得:
將式(6)中統(tǒng)一得:
根據(jù)式(7)求解出的最小特征值對應的特征向量即為所選點云的法向量。
利用各個法線方向之間夾角的大小判斷所求的點是否為邊界點,對相鄰的夾角順時針兩兩做差得到Ω=(θ1,θ2,θ3,…,θ1),找尋Ω中最大的夾角θmax,若θmax大于閾值,則選定的目標點為邊界點,否則為非邊界點。鑄件飛邊的邊緣提取如圖5所示。
圖5 鑄件飛邊邊緣
點云邊緣檢測算法只能提取出飛邊的邊界點,無法區(qū)分飛邊的內(nèi)外邊緣?,F(xiàn)實中飛邊的內(nèi)外邊緣往往存在高度差,飛邊的內(nèi)邊緣緊鄰鑄件的本體,因此內(nèi)邊緣可以確定鑄件的打磨位置,引入外邊緣反而會使打磨位置有較大的誤差。故本文在邊緣提取的基礎(chǔ)上,加入在鑄件本體區(qū)域近鄰點搜索算法,利用飛邊的內(nèi)邊緣是鑄件本體和飛邊的界限這一特征,在指定點半徑范圍內(nèi)搜索到的鑄件本體的點數(shù)大于閾值k,則該指定點為飛邊的內(nèi)邊緣點,從而可以區(qū)分出飛邊的內(nèi)外邊緣,提取完整的內(nèi)邊緣。飛邊的內(nèi)邊緣如圖6所示。
圖6 鑄件飛邊內(nèi)邊緣
將所得飛邊內(nèi)邊緣的高度取平均值,該高度值作為鑄件打磨位置的高度。鑄件本體按照該高度的平面進行單側(cè)面的點云投影,將三維點云轉(zhuǎn)化為平面點云。點云的投影結(jié)果如圖7所示。
圖7 鑄件本體單側(cè)面投影
得到鑄件本體的平面點云后,利用邊緣檢測算法提取該點云的輪廓。鑄件本體的內(nèi)腔輪廓和外層輪廓如圖8所示。對鑄件本體的平面點云采用邊緣檢測算法會引入鑄件的內(nèi)腔輪廓。故本文在邊緣檢測的基礎(chǔ)上加入DBSCAN 聚類算法,目的是排除鑄件本體的內(nèi)腔輪廓,保留外層邊緣。DBSCAN 聚類算法是一種基于密度的聚類算法,可以在非凸集合上獲得很好的聚類效果[7]。樣本點集為D=(x1,x2,…,xm),樣本點的?鄰域定義如下:
圖8 鑄件本體輪廓和內(nèi)腔輪廓
樣本點X(i)?鄰域的樣本個數(shù)Nξ(X(i))如下:
通過與設(shè)定的密度下限minPts 可以將樣本點分為核心點、邊界點和噪聲點3 大類[8]。核心點為樣本點X(i)處的密度高于minPts;邊界點為樣本點X(i)處的密度小于minPts,但該樣本點在某一核心點的鄰域內(nèi);噪聲點既不是核心點也不是邊界點。通過尋找一系列的高密度的核心點,以及核心點外層的邊界點,將樣本點聚類成簇。通過聚類可以將樣本點分成不同的樣本點類,從而可以對不同的樣本點類進行不同的操作。排除內(nèi)腔輪廓的鑄件本體的外層邊緣如圖9所示。
圖9 鑄件本體外層邊緣
由于提取的鑄件本體外層邊緣的點數(shù)較多,密度較大,不適合直接進行擬合操作。故本文對提取的點進行體素質(zhì)心下采樣,選取合適的打磨路徑擬合樣本點。該算法首先將鑄件的外層邊緣進行體素劃分,利用非空體素中的質(zhì)心代替該體素中的邊緣點,從而實現(xiàn)邊緣點的下采樣[9]。同時將下采樣點分為路徑擬合點集和擬合評價點集。體素的質(zhì)心為:
路徑擬合點集如圖10所示。
圖10 路徑擬合點集
在獲取鑄件本體外邊緣下采樣點后,需要對其進行打磨路徑的擬合規(guī)劃,以便機器人打磨。由于鑄件的外邊緣輪廓較為多樣,屬于自由曲線。若采用多項式曲線方法進行擬合需要高階多項式,可能出現(xiàn)過擬合問題,且擬合效果受干擾點影響較大[10]。同時,多項式曲線擬合不方便后續(xù)打磨點的調(diào)整,擬合后的整體曲線會因為某個點的改變而發(fā)生變化。相比于多項式曲線擬合,利用B 樣條曲線擬合可以用分段低階多項式通過連續(xù)的連接來代替高階多項式,可以避免過擬合的情況,同時,B 樣條中的分段曲線相互獨立,不同但連續(xù)的曲線段只受相應控制點的影響,因此,進行曲線擬合后還可以根據(jù)實際打磨路徑需要修改某處控制點,進而帶動相應的分段曲線進行改變,但是不會影響其他的曲線段,且整體的曲線擬合仍然保持連續(xù)。
非均勻有理B 樣條(NURBS Non-Uniform Rational BSplines)的曲線方程表達式,有理分式如下:
式中:
其中,ωi(i=0,1,…,n)稱為權(quán)因子,ω0、ωn>0,其余ωi≥0,且不能連續(xù)k個權(quán)因子同時為0,k為k次曲線。di(i=0,1,…,n)為曲線的控制頂點,ωi與其對應,順序連接控制頂點可以獲得控制多邊形。Ni,k(u)是由節(jié)點矢量U={u0,u1,…,un+k+1} 確定的k次規(guī)范B 樣條基函數(shù),其中,首末節(jié)點的重復度r=k+1。即:
本文對打磨路徑擬合采用的是非均勻三次B 樣條曲線插值擬合方法,k=3。選取鑄件本體外層邊緣的下采樣點中的92個點作為曲線的型值點,因此,需要進行曲線的反算,一般包括計算節(jié)點矢量,確定邊界條件,反算曲線控制頂點3個步驟[11]。
pi點有節(jié)點值ui+k(i=0,1,…,n)。首先需要對型值點進行參數(shù)化處理,確定型值點的參數(shù)值ui+k。具有n+1 個型值點pi的三次NURBS 曲線是由n+3 個控制頂點di(i=0,1,…,n+2) 及其權(quán)因子ωi和節(jié)點矢量U={u0,u1,…,un+6} 定義,由于首末節(jié)點的重復度r=k+1,故前k+1 個節(jié)點取值為0,后k+1 個節(jié)點取值為1??紤]到數(shù)據(jù)點多邊形各弦長分布不均勻的情況,本文采用積累弦長參數(shù)化法求解各型值點pi的參數(shù)值,如下所示:
其次,確定擬合曲線的邊界條件,由于本文的打磨路徑為閉合曲線,即首末端點重合且二階連續(xù),則邊界條件為:
最后,求解NURBS曲線的控制頂點。對于二階連續(xù)的NURBS三次閉合曲線,首末數(shù)據(jù)點相同,其控制頂點反算的矩陣表達式為:
其中:
根據(jù)上述的方程式組,可以求解出NURBS曲線的控制頂點,結(jié)合求得的節(jié)點矢量和曲線邊界條件,根據(jù)要求選擇合適的權(quán)因子,本文的權(quán)因子wi(i=0,1,…,n+2)取值為1,最終可以確定三次非均勻NURBS 曲線。本文的打磨路徑插值擬合效果如圖11所示。圖中,圓型點為提供擬合插值的型值點;星型點為NURBS曲線反求的控制頂點;折線為順序連接控制頂點形成的曲線控制多邊形;粗曲線為擬合的打磨路徑。
圖11 打磨路徑擬合
利用非擬合點作為評價點集對打磨路徑的擬合效果進行評價。評價點作為目標點,擬合后的曲線作為搜索區(qū)域,計算目標點與最近鄰點的距離,利用其平均距離和均方根誤差對NURBS曲線進行評價。如下所示:
式中:(xi,yi)和(x'i,y'i)分別為評價點集和對應最近鄰點的坐標。
根據(jù)上式所得,評價點與曲線的最近鄰點平均距離為0.174 812 mm,其均方根誤差為0.249 56。因為本文針對的鑄件飛邊打磨為粗加工,故曲線擬合效果符合粗加工要求。圖12所示為評價點集和對應的最近鄰點。
圖12 評價點集和最近鄰點
本文基于真實鑄件的點云信息,提出一種對鑄件飛邊打磨點提取和路徑擬合的方法。該方法提出利用點云的基于法線估計邊緣檢測和近鄰點搜索結(jié)合的方法區(qū)分飛邊的內(nèi)外邊緣,避免外邊緣對打磨位置造成干擾;利用單側(cè)面投影和DBSCAN 聚類結(jié)合的方法去除鑄件的內(nèi)腔輪廓,保留外層邊緣,減少后續(xù)打磨路徑擬合的干擾;利用體素下采樣提取鑄件飛邊的打磨點,運用三次非均勻有理B 樣條曲線插值擬合算法對打磨路徑進行擬合,通過評價點集對擬合效果進行評價,評價點集與曲線的最近鄰點的平均距離和均方根誤差為0.174 812 mm 和0.249 56,反映曲線擬合誤差較小,可以作為鑄件邊緣粗加工的路徑參考。