劉東來 崔亞飛 羅 輝 鄧子林
(永州職業(yè)技術(shù)學(xué)院智能制造與建筑工程學(xué)院,湖南 永州425100)
隨著“德國工業(yè)4.0”、“中國制造2025”等[1-4]戰(zhàn)略的出臺,傳統(tǒng)制造業(yè)正逐步進入智能制造時代,其中“中國制造2025”明確指出我國制造業(yè)要向智能化、自動化方向發(fā)展。焊接技術(shù)作為制造業(yè)中的重要一環(huán),傳統(tǒng)的人工焊接方式已逐漸被焊接機器人所淘汰。目前的焊接機器人系統(tǒng)前期準(zhǔn)備相當(dāng)繁瑣,必須進行人工手動示教,然后再實現(xiàn)焊接機器人焊接作業(yè)。當(dāng)焊接對象發(fā)生變化時,需要重新示教,對于日益復(fù)雜與多樣化的焊接需求,這種焊接方式無法感知外界環(huán)境的變化,自主適應(yīng)變化能力不足,智能化和自動化水平不高,生產(chǎn)效率較低,其實現(xiàn)焊接過程智能化和自動化將成為必然趨勢[5-8]。近年來,機器視覺技術(shù)快速發(fā)展,已廣泛應(yīng)用于各個領(lǐng)域,將機器視覺引入焊接機器人系統(tǒng)可以充當(dāng)焊接機器人的眼睛,提高焊接機器人感知外界環(huán)境變化的能力[9]。焊接機器人有了感知能力后,需根據(jù)焊接對象的變化自主實現(xiàn)焊接路徑規(guī)劃,以滿足多樣化小批量生產(chǎn)的要求。
針對焊縫識別及軌跡規(guī)劃的問題,國內(nèi)外學(xué)者開展了大量研究。Kiddee P等人[10]利用線激光和單目視覺,通過霍夫變換獲得激光條紋后,采用最遠點算法獲得焊縫中心坐標(biāo)。Dinham M等人[11]通過相機獲取焊縫圖像,在圖像預(yù)處理后,采用Sobel算子實現(xiàn)焊縫的邊緣檢測,從而實現(xiàn)焊縫識別。Mulik P B等人[12]提出了一種基于進化算法的機器人最優(yōu)軌跡規(guī)劃算法,該方法同時進行多準(zhǔn)則優(yōu)化,采用B樣條函數(shù)生成機器人運行軌跡。李宇鵬[13]等人提出采用馬鞍形曲線插補與示教相結(jié)合的方式實現(xiàn)軌跡規(guī)劃算法,該方法很好地實現(xiàn)了對焊槍運動軌跡的控制。陳子健等人[14]提出了一種三角網(wǎng)格特征提取算法實現(xiàn)對焊縫的識別,同時使用三次樣條曲線插值獲取機器人焊接軌跡。以上研究雖然解決了直線、圓等簡單焊縫的問題,但對于復(fù)雜的焊縫則有一定的局限性,自主路徑規(guī)劃能力有待提高。
針對復(fù)雜曲線焊縫的焊接作業(yè)問題,本文設(shè)計了一種基于機器視覺的弧焊機器人系統(tǒng),該系統(tǒng)通過視覺采集焊縫圖像,之后進行圖像預(yù)處理、焊縫中心線識別、焊縫軌跡生成、坐標(biāo)轉(zhuǎn)換等操作,實現(xiàn)復(fù)雜焊縫路徑自主規(guī)劃能力,提高弧焊機器人的智能化和自動化水平。
工業(yè)機器人焊接實驗系統(tǒng)如圖1所示,主要由工業(yè)相機、工控機以及工業(yè)機器人3部分組成。采用Cognex工業(yè)相機采集焊縫圖像,工控機用于實現(xiàn)焊縫識別以及路徑生成算法,六軸工業(yè)機器人用于執(zhí)行焊接操作,通過以太網(wǎng)實現(xiàn)各部分間的信息傳遞。
本文所構(gòu)建的工業(yè)機器人焊接系統(tǒng)本質(zhì)上是一個運動控制系統(tǒng),主要包括了控制器、執(zhí)行器、被控對象以及檢測裝置4部分。被控對象為工業(yè)機器人末端安裝的焊槍,被控量是焊槍的位姿與速度,執(zhí)行器為工業(yè)機器人,控制器即控制機器人運動的裝置,檢測裝置則由傳感器組成,用于焊縫的檢測識別,如圖2所示。
焊接機器人焊接的前提是通過雙目相機拍攝焊件圖像,提取出焊件的三維信息坐標(biāo),才能引導(dǎo)末端焊搶完成焊接任務(wù)。因此,首要任務(wù)是建立像素坐標(biāo)、圖像坐標(biāo)、相機坐標(biāo)和世界坐標(biāo)之間的坐標(biāo)系轉(zhuǎn)換關(guān)系,4個坐標(biāo)系的關(guān)系如圖3所示。
(1)像素坐標(biāo)與圖像坐標(biāo)。圖像坐標(biāo)系u-v的原點為Op,橫坐標(biāo)為u表示圖像所在行,縱坐標(biāo)為v表示圖像所在列;圖像坐標(biāo)系x-y的原點為Om,dx和dy分布表示每個像素在橫縱坐標(biāo)軸的物理尺寸,如圖3所示像素點P坐標(biāo)(u0,v0),則圖像坐標(biāo)系與像素坐標(biāo)系的關(guān)系為
(1)
(2)相機坐標(biāo)與圖像坐標(biāo)。設(shè)相機中的點P坐標(biāo)為(Xc,Yc,Zc),則相機坐標(biāo)與圖像坐標(biāo)的關(guān)系為:
(2)
(3)世界坐標(biāo)與相機坐標(biāo)。設(shè)點P的世界坐標(biāo)為(Xw,Yw,Zw),兩個坐標(biāo)系轉(zhuǎn)換可以通過正交單位旋轉(zhuǎn)矩陣R和平移向量矩陣T得到,則世界坐標(biāo)與相機坐標(biāo)的關(guān)系為
(3)
式中:M1為相機的外部參數(shù)。
(4)像素坐標(biāo)與世界坐標(biāo)。由式(1)~(3)可得像素坐標(biāo)與世界坐標(biāo)轉(zhuǎn)換關(guān)系為
式中:M0是相機的內(nèi)參數(shù),其中kx=x/dx,ky=y/dy。
由式(4)可知,只需要知道內(nèi)參數(shù)M0和外參數(shù)M1,就可以確定像素坐標(biāo)與世界坐標(biāo)映射關(guān)系,獲取內(nèi)外參數(shù)的方法就是相機標(biāo)定,將世界坐標(biāo)系與機器人坐標(biāo)系映射的關(guān)系是機器人標(biāo)定。
(1)相機標(biāo)定。本文搭建相機固定視覺系統(tǒng),利用如圖4所示的棋盤格標(biāo)定板,每個格子大小為20 mm,改變標(biāo)定板姿態(tài)和角度,對左右相機采集18張標(biāo)定圖像。
將采集的18張標(biāo)定圖像導(dǎo)入MATLAB的Stereo Camera Calibrator工具箱中,然后對標(biāo)定板進行參數(shù)設(shè)定,通過圖像灰度化和二值化等預(yù)處理后進行角點檢測,最后通過角點的世界坐標(biāo)與像素坐標(biāo)以張正友標(biāo)定法[15]求解得到左右相機的內(nèi)參數(shù)矩陣。
左相機內(nèi)參數(shù)矩陣為:
(5)
右相機內(nèi)參數(shù)矩陣為:
(6)
每一張標(biāo)定圖對應(yīng)一組旋轉(zhuǎn)矢量和位移矢量的相機外部參數(shù),通過上述參數(shù)可計算得到右相機到左相機的旋轉(zhuǎn)矩陣:
(7)
右相機到左相機的位移矩陣:
(8)
由式(3)可得相機的外部參數(shù)M1為:
(9)
(2)機器人坐標(biāo)的標(biāo)定。機器人坐標(biāo)的標(biāo)定即是當(dāng)機器人末端執(zhí)行器焊槍移動到標(biāo)定板左上內(nèi)角點時,記錄此時機器人的3個方向的坐標(biāo),即可得到世界坐標(biāo)系原點。經(jīng)實驗測得此時的機器人的坐標(biāo)為:
(10)
由式(1)~(10)可得像素坐標(biāo)(u,v)與機器人坐標(biāo)(Xr,Yr,Zr)的轉(zhuǎn)換關(guān)系為:
(11)
完成機器人和相機的坐標(biāo)系標(biāo)定以后,需要對相機采集的焊接件焊縫圖像進行圖像預(yù)處理和焊縫中心線提取,這是機器人焊縫自主軌跡規(guī)劃的關(guān)鍵一步。
本文相機采集了2種類型的焊縫,如圖5所示,分別包括了直線型焊縫和曲線型焊縫,這2種焊縫能很好地模擬各種類型的焊縫。采集的圖像包含了各種額外信息,增大了計算量也增加了干擾信息,因此需要進行圖像預(yù)處理,主要包括:圖像灰度化、ROI(提取感興趣區(qū)域)、直方圖均衡化、閾值分割、膨脹腐蝕及去干擾等操作,如圖6所示。
相機采集的圖像是由RGB三通道組成的彩色圖像,圖像灰度化是將三通道轉(zhuǎn)化為單通道,可以減少計算的工作量。相機和焊接區(qū)域是固定不變的,為了進一步減少計算量,通過ROI提取感興趣的焊接件焊縫區(qū)域。直方圖均衡化可以增強圖像的對比度,突出焊接件的焊縫區(qū)域。閾值分割將焊接件焊縫的前景和背景二值化區(qū)分開,有利于后續(xù)焊縫特征的識別。通過圖6閾值分割結(jié)果可知,焊接件之間的有空隙且不連續(xù),因此需要通過形態(tài)學(xué)膨脹腐蝕操作使焊縫更加完整。膨脹腐蝕以后仍然有一些較小的干擾信息,通過計算各單獨的連通區(qū)域面積,對小于焊縫區(qū)域面積的區(qū)域進行過濾。
經(jīng)過焊縫圖像預(yù)處理之后,需要對焊接件進行特征識別,主要包括焊縫邊緣特征提取和焊縫中心線提取。
(1)焊縫邊緣特征提取。獲取焊縫邊緣特征是獲取焊縫中心線特征的基礎(chǔ)。經(jīng)過圖像預(yù)處理去干擾之后,圖像只剩焊縫特征區(qū)域信息,在獲取焊縫中心線特征之前,首先是獲取焊縫邊緣特征。常用的邊緣特征提取方法主要有Sobel、Roberts、Prewitt和Canny算子等,經(jīng)實驗發(fā)現(xiàn),Canny算子對焊縫的檢測效果較好,能克服一定噪聲影響,因此本文采用Canny算子對焊縫進行邊緣特征提取,結(jié)果如圖7邊緣提取所示。
(2)焊縫中心線提取。經(jīng)過焊縫邊緣特征提取得到2條邊緣線,本文遍歷2條邊緣線所有像素,并記錄2條邊緣線像素的位置,通過同一行的所有像素的位置計算得到中心像素的坐標(biāo)值,即可得到焊縫中心線,效果如圖8所示。
經(jīng)過焊縫圖在識別焊縫中心線后可以得到數(shù)百個離散的像素坐標(biāo)點,理論上可以把像素坐標(biāo)點直接轉(zhuǎn)換機器人坐標(biāo)并發(fā)給機器人,機器人根據(jù)焊接像素坐標(biāo)轉(zhuǎn)換的機器人坐標(biāo)進行焊接作業(yè),焊接軌跡如圖9所示。
由圖9可知,機器人焊接運行軌跡不夠光滑,這樣會導(dǎo)致機器人在焊接時產(chǎn)生抖動的問題,機器人會在過渡處出現(xiàn)劇烈的振動和沖擊,影響焊槍的位移和速度的連續(xù)性,不符合焊接的連續(xù)性和穩(wěn)定性要求,降低了焊接的質(zhì)量。
為此,本文提出一種將離散的焊縫中心線像素坐標(biāo)點擬合為一種連續(xù)的多項式曲線函數(shù),以此作為機器人軌跡規(guī)劃的基礎(chǔ)。
本文多項式曲線擬合采用的線性最小二乘法求解,定義m次多項式擬合曲線函數(shù)為:
(14)
式中:r是未知系數(shù),x是自變量,若要求解該方程,需要求建立一個超定方程組,即方程的個數(shù)大于未知量個數(shù)的方程組為:
式(15)中,令
(16)
則式(15)可以簡寫為:
RX=Y
(17)
一般情況下,焊縫中心線點數(shù)遠遠大于未知量的個數(shù),所以式(17)一定存在解,但不是所有解都符合要求,只有使得n個點的(xi,yi)與曲線f(x)的距離達到殘差模最小時,才滿足條件,如式(18):
(18)
即使R矩陣滿足式(18),使得ε的值達到最小,則該R矩陣就是超定方程的最小殘差模的解。
本文采用MATLAB對焊縫軌跡規(guī)劃進行仿真,仿真數(shù)據(jù)采用實驗獲取的真實數(shù)據(jù),包括兩條具有代表性的焊縫,分別是直線型和曲線型焊縫,其他各種復(fù)雜的焊縫可以由這兩種曲線組成,實驗采集的原始焊縫如圖10所示的原始數(shù)據(jù)軌跡,分別是直線型和曲線型原始數(shù)據(jù)軌跡。
采用多項式擬合焊縫軌跡,多項式軌跡規(guī)劃可以提高機器人的運行效率和平滑性,且次數(shù)越高,擬合精度越好。但是,次數(shù)高時軌跡容易出現(xiàn)龍格現(xiàn)象,在擬合軌跡的兩端出現(xiàn)較大波動。故為平衡擬合精度和出現(xiàn)龍格現(xiàn)象,本文通過求解多項式擬合曲線型殘差模(擬合值和實際值差的絕對值)的最小值,選出擬合曲線最優(yōu)的次數(shù),實驗結(jié)果如圖10所示。圖10a中,直線型焊縫殘差最優(yōu)次數(shù)出現(xiàn)在48次方,圖10b中,曲線型焊縫殘差最優(yōu)次數(shù)出現(xiàn)在27次方,程序可根據(jù)殘差的最小值,選出最優(yōu)的擬合曲線次數(shù)。
根據(jù)圖10選出的最優(yōu)擬合曲線次數(shù),本實驗選取5階多項式作為和最優(yōu)擬合曲線次數(shù)的對比實驗,實驗結(jié)果如圖11所示。通過實驗可以發(fā)現(xiàn),圖11a直線型5次和48次擬合曲線軌跡大致相同,但是48次擬合曲線更符合波動的焊縫軌跡,并且殘差模小于5次的擬合曲線殘差模;圖11b曲線型擬合曲線,27次多項式擬合曲線軌跡明顯比5次的要好,基本符合焊縫軌跡,并且兩者殘差模相差較大,說明27次擬合曲線更符合曲線焊縫軌跡。
為驗證算法的正確性,選取圖5所示的Q35不銹鋼板曲線焊接件作為焊接實驗對象,其尺寸為20 cm×20 cm,厚2 mm,其焊接面寬約8 mm。焊接技術(shù)采用氬弧焊,主要工藝參數(shù)如表1所示。
表1 焊接技術(shù)參數(shù)
工控機通過相機采集圖像,使用OpenCV和VC++實現(xiàn)焊縫圖像預(yù)處理、焊縫中心線提取及焊接路徑規(guī)劃,通過式(4)將軌跡規(guī)劃所得路徑點的像素坐標(biāo)轉(zhuǎn)換為機器人坐標(biāo),并通過以太網(wǎng)發(fā)送至機器人,引導(dǎo)弧焊機器人完成焊接任務(wù),焊接效果如圖12所示。
為驗證焊接的精度,在進行焊接實驗之前,等間距選取待焊接的6個測量坐標(biāo)點,測得其實際物理坐標(biāo)值,稱為實測坐標(biāo)。同時,測量焊槍經(jīng)過6個點坐標(biāo)值,稱為計算坐標(biāo)。最后,將實測坐標(biāo)值減去計算坐標(biāo)值,得到弧焊機器人在焊接過程中偏離實際焊接點的誤差,稱為焊接誤差?;『笝C器人的焊接誤差實驗結(jié)果如表2所示。
從表2可以看出,通過本文設(shè)計的焊縫軌跡識別及路徑生成系統(tǒng)得到的計算坐標(biāo)值與實測坐標(biāo)值,在X、Y、Z方向上的最大焊接誤差值分別是0.30 mm、0.28 mm、0.21 mm,3個方向上的平均絕對值誤差分別是0.247 mm、0.210 mm、0.143 mm。誤差數(shù)據(jù)表明,弧焊機器人焊槍在3個方向上的最大誤差值不超過0.30 mm,本文設(shè)計的焊縫軌跡識別及路徑生成系統(tǒng)滿足焊接精度要求。
表2 焊接誤差
本文在傳統(tǒng)弧焊機器人的基礎(chǔ)上,提出一種焊縫軌跡識別及路徑生成系統(tǒng)。經(jīng)過實驗驗證可以得出,該算法主要有以下優(yōu)點:
(1)本文設(shè)計的焊縫中心線提取的算法,可以實現(xiàn)復(fù)雜曲線焊縫軌跡識別。
(2)根據(jù)焊縫曲線的復(fù)雜度,本文設(shè)計了自適應(yīng)多項式擬合函數(shù),可根據(jù)殘差模的最小值,選出最優(yōu)的多項式次數(shù)。
(3)通過坐標(biāo)轉(zhuǎn)換模型把擬合曲線的像素坐標(biāo)轉(zhuǎn)換成機器人坐標(biāo),引導(dǎo)機器完成焊接作業(yè)。本文提出焊縫軌跡識別及路徑生成系統(tǒng)最大誤差不超過0.30 mm,滿足焊接精度要求,為類似軌跡識別及路徑生成領(lǐng)域提供了技術(shù)參考。