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