尹力,胡美姣
(遼寧理工學(xué)院 智能工程學(xué)院,遼寧 錦州 121013)*
印制電路板(PCB)是信息產(chǎn)業(yè)的基礎(chǔ),其加工的自動化程度直接影響電子產(chǎn)品生產(chǎn)效率[1].影響雕刻機加工精度的因素有很多:如PCB板的制造誤差和定位誤差、雕刻機自身的滾珠絲杠、各軸零位傳感器精度等.因為PCB板具有柔性,在裝夾過程中會產(chǎn)生形變[2]:裝夾力度過大會因其柔性破壞原本加工件與雕刻機上的坐標(biāo)與精度;裝夾力度過小會在加工過程中產(chǎn)生竄動;兩種情形都會影響加工精度[3].以上的各種誤差最終反映會到成品的加工精度上.現(xiàn)如今高檔的自動加工系統(tǒng)已經(jīng)配備了快速、準確、魯棒性強的機器視覺系統(tǒng).可以說機器視覺當(dāng)下已經(jīng)成為數(shù)控加工保證高精度加工的必備要素[4].
傳統(tǒng)的數(shù)控系統(tǒng)主要是依靠純機械定位或者是光學(xué)定位的方式進行誤差矯正,已經(jīng)不能滿足電路板的加工精度需求.對于不同的生產(chǎn)任務(wù)也需要專門設(shè)計夾具,對當(dāng)下小批量、靈活性高的生產(chǎn)任務(wù)適應(yīng)性不佳.搭配了機器視覺系統(tǒng)的數(shù)控系統(tǒng)可以在保證加工精度的情況下對不同加工任務(wù)僅需進行特征點的采集即可,能夠有效節(jié)約生產(chǎn)成本和提高生產(chǎn)效率[5].
本實驗平臺使用工業(yè)攝像機配合相關(guān)機器視覺算法,對數(shù)控加工過程中因裝夾不標(biāo)準產(chǎn)生的平移量和旋轉(zhuǎn)量進行采集與處理,通過雕刻機作為數(shù)控實驗平臺實現(xiàn)加工的自動矯正,并開展具體實驗對系統(tǒng)的加工精度進行測試.針對誤差產(chǎn)生原因進行分析并提出系統(tǒng)性能提升的改進方式.
視覺定位需要數(shù)控系統(tǒng)的世界坐標(biāo)系與相機的世界坐標(biāo)系轉(zhuǎn)換矩陣、相機內(nèi)部參數(shù)、畸變參數(shù)信息等.工業(yè)相機的標(biāo)定基于“張正友”標(biāo)定法[6].通過標(biāo)定可以把攝像頭的像素(pixel)與現(xiàn)實中的實際物體大小單位(mm)達成一定的線性關(guān)系,以此可以將攝像機像素與其世界坐標(biāo)進行轉(zhuǎn)換[7].實驗使用的棋盤標(biāo)定板和選取的標(biāo)定用圖如圖1所示.
圖1 標(biāo)定板實物圖及標(biāo)定用圖
相機標(biāo)定共使用11張在各個角度拍攝的圖像作為標(biāo)定用圖,利用OpenCV開源計算視覺庫的現(xiàn)有標(biāo)定算法進行標(biāo)定(見圖2).標(biāo)定完成后,為提高圖像處理效率.在采集到的圖像中,手動選取目標(biāo)區(qū)域(RIO)進行圖像分割處理后再進行邊緣提取識別等工作[8](見圖3).大大減小需要處理的像素數(shù)量的同時也提高了系統(tǒng)的穩(wěn)定性.
圖2 標(biāo)定過程圖
圖3 感興趣區(qū)域(RIO)選取圖完成圖
將選取的感興趣區(qū)域降采樣為8bits灰度圖像后,采用Canny邊緣檢測算法進行邊緣檢測[9].為了獲取較好的邊界處理結(jié)果,對Canny算法進行非極大值抑制完成邊緣提取,在保證連通性的同時也能夠獲得較細的邊界.
Canny算子求解邊緣的算法步驟如下:
(a)對圖像進行高斯濾波,平滑圖像去除噪聲.
(b)用一階差分計算梯度值和梯度方向.
(c)對梯度進行非極大值抑制.
(d)利用雙閾值算法檢測和連接邊緣.
因Sobel算子得到的邊緣比較明亮且粗大,便于后續(xù)的待觀測邊緣像素驗證工作[10].邊緣提取算法中使用的一階差分算子為Sobel算子[11].在考慮8-鄰域的梯度的情況下,梯度角范圍從-π~π,將其近似為四個方向.分別代表水平垂直和對角線方向(0°,45°,90°,135°),以iπ/8(i=1,3,5,7)分割區(qū)域.給予落在不同區(qū)域的梯度角度一個指定值.這也就代表了待觀測邊緣像素的四個生長方向.
非極大值抑制(Non-Maximum Suppression)是進行邊緣檢測的一個重要步驟.通俗意義上就是尋找像素點局部的最大值,沿著梯度的方向,通過比較其前后的梯度,對當(dāng)前像素點是否為邊緣像素進行驗證[12].原理見圖4.
圖4 非極大值抑制原理圖
圖4中g(shù)1、g2、g3、g4都代表中心像素c的8-鄰域中的四個像素點,圖中斜線代表梯度的方向,也就是說c如果是局部的極大值,其梯度幅值必須要大于直線與g1g2和g3g4的交點.dtmp1和dtmp2是梯度幅值,因dtmp1和dtmp2不是整數(shù)倍的像素,即坐標(biāo)并不是整數(shù),所以只需已知dtmp1所占g1、g2之間的比例系數(shù)即可計算出當(dāng)前梯度幅值.而比例系數(shù)可以靠梯度角度計算得出.dtmp1由式(1)得出:
設(shè)M為錨點所在鄰域像素點的幅值.
M(dtmp1)=w·M(g2)+(1-w)·M(g1)
(1)
w=Dist(dtmp1,g1)/Dist(g1,g2)
(2)
式(2)中,Dist(g1,g2)表示兩點直接的距離,代表差分值,w為比例系數(shù),比例系數(shù)w可以通過梯度的正切值求得.
正切值由式(3)、(4)、(5)所得,以I表示梯度,以|I|表示梯度的模,再利用θ作為梯度的方向.
(3)
(4)
(5)
在選取各個梯度方向上的梯度幅值后,比較中心像素和鄰域像素,如果小于任意一個,則拋棄此像素點,取最大方向并移動.示意圖如圖5所示.
圖5 尋求真實邊緣像素原理圖
利用非最大值抑制算法后,輸出的幅值如果直接顯示結(jié)果可能會把少量的偽邊緣像素包括下來,所以要通過閾值進行取舍.傳統(tǒng)的單閾值方法可能無法有效的過濾偽邊緣.Canny提出了雙閾值(Fuzzy Threshold)的過濾方法很好的實現(xiàn)了真實邊緣的選取,在實際的應(yīng)用當(dāng)中雙閾值方法在圖像邊緣的表現(xiàn)上還有鏈接邊緣的效果[13].
霍夫直線檢測[13]的基本原理是把圖像空間的像素坐標(biāo)轉(zhuǎn)化為參數(shù)空間的正弦曲線.因為直角邊上的所有像素點都在參數(shù)空間有對應(yīng)的曲線,所以存在不同的直線與其對應(yīng).如果參數(shù)空間的曲線存在交點,此交點即為這些點共同對應(yīng)在世界坐標(biāo)空間中的同一條直線[14].(見圖6)由此可以確定直角邊方程如式(6)所示.
圖6 世界坐標(biāo)與參數(shù)空間轉(zhuǎn)換示意圖
(6)
在進行直線檢測時,豎直梯度方向PCB的直角邊和水平梯度方向PCB的直角邊需要分開檢測.以檢測其中一個角點為例,圖7為霍夫直線檢測檢測和Canny邊緣檢測的結(jié)果圖.
圖7 霍夫檢測和邊緣檢測圖
設(shè)PCB直角邊1與直角邊2的霍夫直線方程為式(6).通過計算求出兩個直線的交點(x,y),其中x和y的坐標(biāo)值推導(dǎo)如式(7)所示.這個交點即為需要采集的MARK點.
(7)
完成邊緣檢測后,可以得出PCB板非標(biāo)準裝夾和雕刻機加工坐標(biāo)系的實際偏差如圖8所示.當(dāng)圖像采集與計算處理完成后.根據(jù)角點坐標(biāo)和檢測所得直線與機床坐標(biāo)軸所成角度可以得出雕刻機機械平臺坐標(biāo)系和PCB板工件坐標(biāo)系轉(zhuǎn)換所需要的偏移量和旋轉(zhuǎn)角度參數(shù).
圖8 霍夫檢測后的與機械平臺坐標(biāo)偏差圖
利用所得偏移與旋轉(zhuǎn)角度參數(shù),可以通過機器人正逆運動學(xué)原理對數(shù)控系統(tǒng)機械坐標(biāo)和攝像機的世界坐標(biāo)即工件坐標(biāo)進行變換[15].
假設(shè)標(biāo)準安放的角點1坐標(biāo)為M(a0,b0),角點2坐標(biāo)為N(c0,d0),實際安裝位置角點1坐標(biāo)M(a1,b1),角點2坐標(biāo)N(c1,d1).此四點坐標(biāo)用于推導(dǎo)出矯正算法所需的相關(guān)參數(shù).將旋轉(zhuǎn)矩陣和平移矩陣先做點乘,這樣在確定X、Y軸的平移量和旋轉(zhuǎn)角度三個參數(shù)時可以減少運算量.式(8)和(9)都是推導(dǎo)的過程參數(shù)公式.為了減少浮點運算的計算量,不需求解θ具體角度,僅計算出其正余弦值.
對機械坐標(biāo)系和攝像機的世界坐標(biāo)系進行取點采集.為后續(xù)兩坐標(biāo)系之間的平移參數(shù)和旋轉(zhuǎn)參數(shù)求解做準備.
A=(a0-c0)2+(b0-d0)2
(8)
(9)
經(jīng)由式(8)、(9)推導(dǎo)得到式(10),可以得到旋轉(zhuǎn)與平移參量.其中Δx、Δy表示的就是平移矩陣中的軸向平移量,而旋轉(zhuǎn)矩陣中參數(shù)cosθ、sinθ如式(10)所示.
最后將自矯正公式(10)選取合適的數(shù)據(jù)精度編寫程序,經(jīng)過計算可得到相應(yīng)矯正后的加工位置坐標(biāo),再將矯正完成的G代碼傳輸?shù)竭\動控制器進行加工.
(10)
對PCB板標(biāo)準裝夾加工和非標(biāo)準裝夾兩種情形分別進行加工對比.非標(biāo)準安裝情況如圖9所示.為了驗證機械視覺定位自矯正算法的精度,我們隨機裝夾PCB板.要注意偏差不能過大[16].因為在實際生產(chǎn)情景中實際裝夾位置與標(biāo)準裝夾位置不會相差太遠.
在非標(biāo)準裝夾PCB板后需要進行定位處理,如圖9所示.利用視覺定位確定兩個Mark點坐標(biāo):
圖9 非標(biāo)準安裝圖
將首次定位的Mark點定義為PCB板右上角的頂點,后定位的Mark點定義為左下角PCB板的頂點;先后采集定位兩次;存儲坐標(biāo)值并傳至至矯正程序;再向矯正程序傳遞標(biāo)準裝夾時的加工G代碼,待矯正完成后自動,手動確認后開始加工.
加工完成后,將雕刻機所在標(biāo)準條件和非標(biāo)準條件下的加工情況進行對比,如圖10所示.左側(cè)為標(biāo)準裝夾,右側(cè)為非標(biāo)準裝夾.通過對比得知,在非標(biāo)準裝夾情況下加工的電路板與標(biāo)準裝夾下加工的電路板并無明顯差異,下面進行精度更高的誤差計算與統(tǒng)計.
圖10 標(biāo)準安裝和非標(biāo)安裝加工對比圖
根據(jù)矯正后的加工點坐標(biāo),計算到PCB板坐標(biāo)系X軸的距離[17].根據(jù)距離公式(式(11)所示),只要知道實際裝夾工件坐標(biāo)系中X軸在機械平臺坐標(biāo)系中的函數(shù)方程,即可求出矯正前后到數(shù)控系統(tǒng)機械坐標(biāo)X軸的距離距離,見圖11.
圖11 誤差分析示意圖
(11)
由于數(shù)控加工是基于數(shù)控系統(tǒng)的機械坐標(biāo)的,所以必須求出非標(biāo)準安裝PCB板的坐標(biāo)系X軸函數(shù)方程.將非標(biāo)準狀況下PCB電路板中對應(yīng)點到標(biāo)準安裝PCB板坐標(biāo)系對應(yīng)點沿X軸的距離,即可得到誤差值.隨機采集500個點的坐標(biāo)進行誤差分析.表1列出了部分實驗數(shù)據(jù).
表1 部分矯正誤差表 mm
對實驗數(shù)據(jù)進行數(shù)據(jù)可視化,分別計算實驗中X、Y軸兩個方向上實際位置與標(biāo)準位置的絕對誤差,利用matplotlib進行數(shù)據(jù)可視化.見圖12.
圖12 X、Y軸上的誤差折線圖
從圖12中可以得知:
(1)在進行矯正后,誤差總體范圍在0.13~0.2mm之間,符合 PCB板最低誤差0.5 mm的要求;
(2)當(dāng)非標(biāo)準裝夾距離過于接近機械平臺原點時,誤差產(chǎn)生的較大.但是總體來看,誤差范圍限制在了一定限度內(nèi);
(3)誤差與測試偏差的距離大致成線性關(guān)系,即機械行程越大,產(chǎn)生的誤差越大.
最終系統(tǒng)產(chǎn)生的誤差主要包含:圖像采集過程中邊緣像素拾取準確度的誤差、選取的數(shù)據(jù)類型精度被圓整產(chǎn)生的誤差.實驗當(dāng)中采用的工業(yè)相機分辨率為1260×960.如果攝像頭的性能參數(shù)(如分辨率),在標(biāo)定時使用更多的標(biāo)定圖像,在具體的加工場景選取更加合適的照明系統(tǒng)等方面上加以改進可以有效減小上述誤差,可以讓系統(tǒng)的矯正性能更佳.
本文實現(xiàn)了機器視覺技術(shù)與數(shù)控加工系統(tǒng)的結(jié)合應(yīng)用.并以雕刻機作為實驗平臺,以PCB電路板加工問題展開實驗.解決了傳統(tǒng)的雕刻機在待加工件非標(biāo)準裝夾情況下的加工難題.通過實驗驗證、誤差計算、誤差來源分析,得出系統(tǒng)滿足了精度要求的結(jié)論,提出了本系統(tǒng)性能可以提升的幾個方面.
實驗平臺基于數(shù)字圖像處理技術(shù),利用機器視覺定位及自矯正算法在保證了PCB板非標(biāo)準裝夾時加工的正確性的同時也達到了要求的精度.通過理論推導(dǎo)和實際測試并計算誤差證明矯正系統(tǒng)滿足設(shè)計的精度要求.可見在機器視覺技術(shù)的輔助下,未來的數(shù)控加工制造可以更加靈活.隨之帶來的就是產(chǎn)品品質(zhì)和生產(chǎn)效率的提升.