鄭紅梅,丁 鵬
(合肥工業(yè)大學(xué) 機械工程學(xué)院,安徽 合肥 230009)
變壓器在整體上是由多層鐵芯片組合疊裝而成的,每層鐵芯片又由5片硅鋼片拼接而成。疊片的過程是將硅鋼片料片疊成“日”字型鐵芯。料片的種類多,疊裝步驟繁瑣使得人工疊裝的工作強度大而復(fù)雜。故本文設(shè)計了一種視覺系統(tǒng)應(yīng)用于桁架機械手,利用工業(yè)相機采集料片的特征,利用位姿信息實現(xiàn)料片的定位,從而實現(xiàn)桁架機械手的定位,并最終將機械手的位姿傳輸給下位機控制機器人進行組合疊裝。
疊片機器人視覺系統(tǒng)分為硬件系統(tǒng)和軟件系統(tǒng)兩個部分。
硬件系統(tǒng)由工控機、安川控制器、工業(yè)相機、LED光源等組成。軟件系統(tǒng)基于Windows操作系統(tǒng),利用Visual Studio開發(fā)工具,使用C#語言開發(fā)。圖1所示為疊片機器人視覺系統(tǒng)整體架構(gòu)。工業(yè)相機采集信號后,將圖像通過以太網(wǎng)傳輸至上位機,上位機完成圖像處理后確定目標機械手位姿(X、Y、Z電機位置及角度)并傳給運動控制器,由運動控制器通過以太網(wǎng)通信實現(xiàn)與機械手的交互。
系統(tǒng)主要通過工業(yè)相機采集圖像,并利用圖像預(yù)處理、坐標轉(zhuǎn)換算法計算目標硅鋼片相對于機械手的位姿,將計算結(jié)果反饋給上位機控制運動控制器,最終由機械手實現(xiàn)對硅鋼片的搬運。
圖像處理是料片位姿檢測算法的核心,它的主要任務(wù)是對工業(yè)相機采集的圖片進行一系列處理以便得到后續(xù)工作所需要的料片位姿。但由于工廠環(huán)境光線等因素干擾,會對圖像的分割、特征提取等造成很大的影響。因此,在進行圖像特征提取前需要進行圖像預(yù)處理。圖像預(yù)處理包括圖像濾波、圖像分割、邊緣檢測等。
圖1 疊片機器人視覺系統(tǒng)整體架構(gòu)
2.2.1 圖像濾波
常見濾波方式為均值濾波、中值濾波、高斯濾波。中值濾波屬于非線性濾波,可以高效地消除圖像的噪聲點。高斯濾波通過平滑,可以去除噪聲干擾,能夠提高邊緣檢測的精準度,因此對拍得的硅鋼片采用中值濾波疊加高斯濾波的方式進行處理。
2.2.2 圖像分割
圖像分割的主要方法有閾值分割、邊緣檢測等。
(1) 閾值分割。大津算法對于單一目標的分割非常有效,計算量少,程序運行時間短,且不受圖像亮度、對比度和飽和度影響,故采用大津算法進行閾值分割,效果如圖2所示。
(2) 邊緣檢測。邊緣檢測的目的在于從圖像中標記出物體輪廓,采用Canny邊緣檢測算法,圖3為針對硅鋼片的檢測結(jié)果。
圖2 硅鋼片閾值分割效果圖
圖3 硅鋼片的邊緣線
(3) 線特征提取。檢測到目標物輪廓,對邊緣圖像進行Hough變換用于提取目標物表面的特征直線。圖4為提取出的硅鋼片邊緣直線的效果圖。
圖4 硅鋼片線特征提取效果圖
建立坐標系的目的是將檢測到的料片位姿轉(zhuǎn)換成抓取料片的機械手位姿,因此需要建立起像素坐標系到機械手坐標系再到機床坐標系的關(guān)系。圖5為三坐標系模型。其中,Ow-XwYwZw為機床坐標系,也叫世界坐標系,Om-XmYmZm為機械手坐標系,Oc-XcYc為像素坐標系。
圖5 三坐標系模型
2.3.1 像素坐標系到機械手坐標系的轉(zhuǎn)換
轉(zhuǎn)換的目的是將硅鋼片上任意一點的像素坐標描述成機械手坐標系下的坐標。
像素坐標系和機械手坐標系之間的轉(zhuǎn)換關(guān)系如圖6所示。圖6中,(Xc1,Yc1)為硅鋼片像素坐標,(Xc2,Yc2)為相機中心像素坐標,(Xm1,Ym1)為相機中心機械手坐標。硅鋼片中心像素坐標轉(zhuǎn)換到機械手坐標系如公式(1)所示:
Xt1Yt1=Xm1+(Xc2-Xc1)mYm1+(Yc2-Yc1)m.
(1)
其中:m為相機分辨率。利用式(1)最終計算得到的為硅鋼片中心在機械手坐標系下的坐標(Xt1,Yt1)。
圖6 像素坐標系與機械手坐標系的轉(zhuǎn)換關(guān)系
2.3.2 機械手坐標系到機床坐標系的轉(zhuǎn)換
機械手坐標系和機床坐標系之間的轉(zhuǎn)換關(guān)系如圖7所示。圖7中,Om是機械手中心,(Xw1,Yw1)是機械手在機床坐標系下的坐標,(Xm1,Ym1)即P點是硅鋼片中心在機械手坐標系下的坐標,角度θ為硅鋼片在機床坐標系下的偏轉(zhuǎn)角。P點旋轉(zhuǎn)θ后得到的硅鋼片中心在機械手坐標系下的坐標為(Xt,Yt)。硅鋼片中心的機械手坐標需要通過旋轉(zhuǎn)平移轉(zhuǎn)換到機床坐標系,得到硅鋼片中心在機床坐標系下的坐標,轉(zhuǎn)換關(guān)系如式(2)、式(3)所示:
XtYt1=Xm1Ym11cosθsinθ0-sinθcosθ0 0 0 1.
(2)
XrYr=Xt+Xw1Yt+Yw1.
(3)
最終得到硅鋼片中心在機床坐標系下的坐標(Xr,Yr)。
圖7 機械手坐標系與機床坐標系的轉(zhuǎn)換關(guān)系
定位的主要步驟為首先識別抓取位硅鋼片中心位姿,其次在設(shè)計的界面上提前預(yù)設(shè)好需要放置的目標硅鋼片中心位姿,最后計算得出機械手4個軸的電機需要移動的距離,從而實現(xiàn)定位功能。
2.4.1 抓取位硅鋼片位姿識別
首先對硅鋼片進行拍照預(yù)處理獲得硅鋼片表面的霍夫線段,再對霍夫線段進行分組,最后通過排序分組得到硅鋼片的邊。這個方法的目的是利用對應(yīng)的邊找到硅鋼片的中心,再利用2.3節(jié)式(1)、式(2)、式(3)得到吸附處硅鋼片中心在機床坐標系中的坐標(Xr,Yr)。偏轉(zhuǎn)角θ通過識別出的硅鋼片上端點世界坐標系下的坐標,并通過斜率公式即可求出。
2.4.2 機械手定位至放置位
目標硅鋼片的位姿(機床位置,硅鋼片偏轉(zhuǎn)角)是預(yù)設(shè)好的待放置位姿,因此需要通過獲取抓取位與放置位硅鋼片偏轉(zhuǎn)角的角度差調(diào)整機械手角度,實現(xiàn)將吸取位硅鋼片定位至目標位置的功能。
如圖8所示,P1、θ分別為吸附處硅鋼片中心位置和硅鋼片在機床坐標系的偏轉(zhuǎn)角,P3、θ1為目標硅鋼片中心位置和其在機床坐標系的偏轉(zhuǎn)角,(Xh1,Yh1)是機械手在機床坐標系下的坐標。實現(xiàn)定位功能需要將吸附處硅鋼片中心的機械手坐標在機械手坐標系旋轉(zhuǎn)(θ1-θ)角度得到P2。機械手吸附硅鋼片,因此可認定此時的硅鋼片與目標硅鋼片平行,兩者在機床坐標系下的偏轉(zhuǎn)角均為θ1。最后只需計算P3與P2轉(zhuǎn)換為機床坐標系下的點的差值,將結(jié)果傳給下位機發(fā)送定位指令驅(qū)動機械手移動即可實現(xiàn)定位至目標硅鋼片的功能。計算公式如下:
Xp3
Yp3=Xp2
Yp2cos(θ1-θ) -sin(θ1-θ)
sin(θ1-θ) -cos(θ1-θ)+Xh1
Yh1.
(4)
本課題在Visual Studio可視化編程開發(fā)軟件中搭建視覺處理平臺,設(shè)計了WinForm界面,如圖9所示。該界面能夠清晰地顯示圖像處理結(jié)果、坐標轉(zhuǎn)換每一步的坐標結(jié)果,方便人員使用,擴展能力強。首先采集圖像,然后保存到系統(tǒng)中,接著加載圖像,對圖像進行預(yù)處理和特征提取,根據(jù)建立的坐標系分別得到吸附位置硅鋼片中心點在像素坐標系、機械手坐標系、機床坐標系下的坐標以及硅鋼片實際偏轉(zhuǎn)角度。
圖8 硅鋼片移動至目標位置坐標系
進行坐標轉(zhuǎn)換,由2.4節(jié)驗證坐標轉(zhuǎn)換后硅鋼片中心的機床坐標及偏轉(zhuǎn)角,如表1所示。
圖9 識別與定位WinForm界面
由表1可知,坐標轉(zhuǎn)換后得出的硅鋼片開口大小誤差在1 mm以內(nèi),料片坐標檢測結(jié)果誤差在0.5 mm以內(nèi),角度誤差在0.05°以內(nèi)。精度滿足疊片要求。
算法通過圖像識別與坐標轉(zhuǎn)換識別出抓取位的硅鋼片特征、中心位姿,通過坐標轉(zhuǎn)換得到機械手搬運到目標位置所需要移動的距離及角度,利用上位機控制機械手實現(xiàn)搬運功能。實驗結(jié)果表明,視覺系統(tǒng)可以滿足一般疊片機器人的疊裝要求,并且具有較好的精確性。
表1 硅鋼片中心點坐標偏轉(zhuǎn)角及誤差