劉志昌
(1.北京理工大學 計算機學院,北京 100081;2.珠海格力電器股份有限公司 裝備動力技術研究院,廣東 珠海 519070)
隨著科技的發展,現在很多制造工業都在用高科技設備來進行生產活動,電子元器件插裝與檢測是3C電子制造行業比較關鍵的工序,目前標準形狀的電子元器件采用通用的貼裝機器進行貼裝,但是IPM、IGBT、二極管、整流橋等異形電子元器件由于形態特殊與結構復雜,現階段還是采用手工插裝作業。隨著電子制造業對產品質量要求和自動化產品需求越來越高,對異形插裝的裝配自動化及裝配質量與效率等環節急迫需要進行智能化設計,對插裝機器人的智能化感知、決策和執行能力提出更高要求,采用異型插件機器人+視覺(如圖1所示)解決方案,替代制造業產線中的一線技術工人[1]。避免了人工插裝存在的誤插和誤檢問題,有效提高了插裝的生產效率和穩定性[2],可替代人工,節省大量勞動力,實現自動化產線及自動化工廠作業。

圖1 異形插件機器人視覺
其中,1工控機、2 PCB板、3上光源、4上相機、5工業機器人、6旋轉機構、7異型電子模塊、8下光源、9下相機、10運動控制器、11流水線。
機器視覺[3,4]是通過光學的裝置和非接觸的傳感器自動地接收和處理一個真實物體的圖像,以獲得所需信息或用于控制機器人[5]運動的裝置。機器視覺技術主要是代替人眼實現識別、定位、檢測等功能,在異形插件視覺系統中,視覺通過固定仰視相機拍照定位引腳位置,軸二俯視相機定位PCB板焊接孔位置,通過視覺的兩點對位工具計算出機器人坐標、機器人接收坐標將異型元器件準確插裝到PCB板的焊接孔中,實現視覺檢測、定位及坐標轉換一系列視覺算法功能,實現異形插件機器人的自動運行[6]。
然而現在行業內的標準插件機主要是針對來料一致,插件位置固定,且只能適合單一產品、換型困難,而異形插件機雖可試用不同產品類型,但產品類型多、無法達到兼容的效果;本文提出了一種機器人視覺高精度定位補償和檢測算法,通過對圖像進行預處理[7],采用幾何模板匹配算法[8,9]、圓度擬合算法[10]對元器件與電路板進行精確定位,再對位置信息進行像素點擬合與坐標轉換實現元器件缺陷檢測與是否插裝判斷,實現SCARA機器人[11]抓取任意形狀元器件進行插件操作,經過實驗驗證與產線測試,所提出的算法具有良好的穩定性與準確性。
該方案是基于模塊式的開發方式,根據機器人異形元器件插裝作業需求,算法采用自主研發的基于幾何模板匹配算法、坐標系變換、圖像邊緣特征點提取、坐標轉換、定位偏移矯正及缺陷檢測算法模塊,以算法速度、定位精度及缺陷檢測準確率為設計要求,按照算法功能和模塊為劃分指導,高精度異形元器件插件視覺定位與檢測算法設計流程如圖2所示,算法整體由電子元器件插件定位、PCB板定位及針腳檢測三部分組成。

圖2 高精度定位與檢測算法設計流程
算法具體步驟如下:
(1)機器人夾取元器件到下相機拍照位置,工業相機進行拍照采集針腳圖像,對圖像進行灰度化處理并進行濾波操作,提高圖像質量;
(2)將圖像進行二值化操作,并選取最佳圖像做為模板ROI繪制,做模板掩膜處理,保存模板圖像信息,再采集圖像進行模板匹配定位,輸出元器件位置信息與旋轉角度信息;
(3)對坐標系進行變換和特征點提取操作,提取針腳和針孔的特征點,對特征點進行像素坐標點提取,確定像素中心點位置;
(4)圖像像素坐標與機器人坐標轉換;
(5)采用kabsch方法計算偏移量,精確定位圓孔與針腳位置坐標;
(6)對照注冊位置映射關系,將針腳點與圓孔位置一一映射,根據設置的參數,確定針腳是否滿足插裝。
幾何模板匹配定位算法是在圖像定位算法中比較通用的算法之一,該算法具有精度高和魯棒性強等優點,被廣泛的應用于工業領域目標定位與檢測解決方案;該算法采用圖像邊緣梯度信息對需要定位物體在圖片中進行匹配[12],并結合金字塔自動分層及搜索策略,實現了快速穩定的模板匹配定位模塊功能。
幾何模板匹配定位算法流程是選擇一張邊緣較好的圖像作為模板圖像,后續輸入的圖像作為目標圖像,將模板圖像與目標圖像經過相同的圖像預處理過程,對圖像進行去噪和特定區域選擇,然后經過高斯金字塔分層,在金字塔每層利用曲面擬合的方法進行邊緣計算,得出圖像的邊緣梯度信息后,然后對圖像進行閾值判斷和極大值抑制得到圖像特定區域的邊緣位置,在邊緣位置處對像素梯度值進行曲面擬合,模板和目標圖像的邊緣梯度值作為匹配信息,經過邊緣檢測算法后,進行相似性度量計算,得出匹配算法的相似程度。
在異形插件視覺定位解決方案中,采用模板匹配方法對針腳進行定位與識別,其效果如圖3所示,存在模板無法匹配到目標這種情況,該問題是由于部分異形元器件在插件操作前,需要在折彎機中對異形元器件引腳進行折彎處理,處理后的針腳裁剪不一致,會導致針腳存在-5~5度之間的偏差,造成針腳一致性差以及針腳輪廓信息量少問題,因此采用該定位算法對Mark點進行模板匹配時結果不穩定。

圖3 模板匹配效果
在上述模板匹配算法中,針對定位效果不佳情況下,基于模板匹配邊緣梯度信息查找的方法,開發了一款適合異形插件的針腳定位和檢測算法,該算法通過設置針腳區域作為模板進行模板匹配粗定位,對標準圖像針腳位置進行手動框選,得到注冊圖像針腳的中心點,利用Blob連通域分析方法,在ROI區域中檢測定位當前針腳點,獲取針腳像素坐標轉移至機器人坐標,計算其與注冊標準位置的偏移量,并將PCB電路板點集映射至針腳區域,檢測針腳是否合格。該算法涉及到圖像自適應閾值分割獲取針腳區域、優化提取針腳中心坐標、RANSAC直線擬合[13,14]、計算模塊中心位置與標準位置偏移量以及針腳檢測等算法,該算法對針腳中心點提取與擬合效果如圖4所示。

圖4 針腳提取效果
算法實現流程首先對針腳圖像進行檢測區域框選,然后對框選區域內單個針腳進行框選,針對單個針腳點的灰度進行KMEANS灰度聚類[15,16],并找出背景灰度值,設置檢測區域灰度閾值,根據閾值初步對針腳進行檢測,然后根據初步檢測結果,再次精細化KMEANS聚類,優化閾值,將合格點的像素坐標點轉化為機器人坐標,然后對各個針腳進行RANSAC直線擬合,計算擬合直線針腳點方向和中心點,將檢測圖像中心點與注冊圖像中心點進行偏移量計算,輸出映射矩陣檢測出針腳點與注冊位置進行對比,判斷檢測是否合格。
1.1.1 KMEANS灰度聚類算法
由于元器件針腳平面存在不平整情況,在圖像采集時效果較差,形成四周明亮中間暗淡的情況。如果采用預設值進行灰度閾值處理,則造成針腳中間灰度信息損失,此為針腳閾值分割技術難點。
將針腳灰度圖轉為灰度立體圖,可知針腳中間區域和背景灰度值存在一定差異,如何準確尋找出背景和針腳的準確分割值?基于目標灰度值分布特點,采用KMEANS灰度聚類算法分割目標物體,即根據物體屬性相似,對應的灰度信息也相似的思想,對圖像進行區域劃分,并進行相似屬性區域合并,最終前景與背景能夠實現準確分離。
KMEANS是非常經典的聚類算法,至今也還保留著較強的生命力,圖像處理中經常用到KMEANS算法,或者其改進算法進行圖像分割操作,在數據挖掘中KMEANS經常用來做數據預處理。采用KMEANS計算最佳分割閾值,對針腳圖像進行二值化閾值,實現針腳區域完整分割。
1.1.2 RANSAC隨機一致性采樣直線擬合原理
如圖5所示,如對4針腳元器件提取針腳中心坐標,其坐標排布成曲線趨勢,然而元器件4個針腳應分布在一直線附近,并能擬合出一條準確的直線,來表征模塊的整體方向,最后根據模塊擬合直線的方向,計算該模塊與注冊標準位置模塊之間的整體偏移位置與角度。

圖5 針腳坐標分布
因此如何對擬合出一條準確的直線,是針腳定位研究的重點。基于坐標點分布情況,采用準確性和魯棒性較高的RANSAC直線擬合方法,以提高針腳整體定位精度和魯棒性。
RANSAC算法是通過反復選擇針腳點位置數據中的一組隨機子集信息來達成目標,被選取的數據點子集被假設為擬合直線局內點,其驗證方法如下:
(1)設置針腳點信息一組模型適用于假設的局內點,所有的未知參數都需要從假設的這個局內點進行計算得出。
(2)用(1)中得到的針腳點模型去測試所有的其它數據,如果這個針腳點適用于所估計的模型,認為此針腳點也是局內點。
(3)如果有足夠多的針腳點被歸類為假設的一組局內點,那么所估計的針腳點信息模型就足夠合理。
(4)用所有假設的針腳點信息去重新估計模型。
(5)最后,通過估計針腳點信息與模型的錯誤率來進行評估模型。
這個驗證過程被重復執行與迭代,每次所產生的新模型把針腳點信息太少而舍棄掉,如果針腳點信息所在的模型比現有的模型更好,則進行選擇替代。如圖6所示,根據RANSAC直線擬合算法效果,從效果圖上來看擬合直線定位更加準確,并經過實際元器件插裝效果驗證,對插裝精度能夠有效進行改善,符合算法設計要求。

圖6 針腳直線擬合效果
1.1.3 偏移量計算
其中包括計算模板匹配后的機器人偏移量、Kabsch計算機器人偏移量和直線擬合計算機器人偏移量。其中計算模板匹配后的機器人偏移量需要事先設置注冊時模板匹配到的位置和機器人坐標;Kabsch計算機器人偏移量和直線擬合計算機器人偏移量,需要事先設置注冊時的點集和機器人坐標。最后通過GetRobotOffset獲取機器人的偏移量(偏移量計算如圖7所示)。

圖7 偏移量計算
注冊機器人的插裝點為標準位置O,圖像的標準位置對應到機器人的工具坐標系的C點。當機器人再次抓取物料在A點進行視覺定位后,圖像的定位得到物料相對圖像標準位置的偏移量角度為θ,物料在機器人工具坐標系的坐標為點A(x1,y1),補償值的計算方式如下:
(1)A繞O旋轉θ角度得到B(x,y)
x=x1×cosθ+y1×sinθy=-x1×sinθ+y1×cosθ
(2)計算B點到C點的偏移量,即機器人需要補償的偏移量
Delta_x=x-x0Delta_y=x-y0
PCB焊盤區域的定位功能與針腳定位算法相同,首先設通過交互界面繪制一個矩形區域,矩形區域的具有明顯特征的邊緣區域作為模板查找區域,將該區域焊盤孔圓形的區域信息保存,即得到模板匹配的焊盤孔模板圖像(如圖8(a)所示)和焊盤孔的中心點邊緣信息(如圖8(b)所示);將輸入的目標圖像與模板圖像進行相似性度量對比,得到目標圖像中焊盤孔的中心點信息,再利用坐標變換算法將焊盤孔中心點信息變換到當前圖像的位置處,得到焊盤孔在整個圖像中的位置坐標(如圖8(c)所示);最后將模板匹配的結果和焊盤孔的中心點通過手眼標定方法轉到機器人坐標系下,得到在機器人坐標系下的焊盤孔位置信息的補償量。

圖8 模板圖像
由于生產物料元器件模塊引腳之間存在一致性差的問題,需要在模塊插裝前對元器件針腳質量進行視覺檢測,以保證高質量元器件插裝;可根據輸入模塊所有針腳間距參數方案,通過檢測針腳間距相關性設計方法,可判斷元器件針腳是否合格。
以上方案對于2、3、4針腳數目較少的元器件插裝檢測可行,然而對于像IPM模塊存在數十個針腳且針腳間距不同等情況,若采用輸入參數的方案,需要輸入參數多,操作復雜,因此基于異形元器件針腳插裝映射思路,提出了一種針腳映射檢測的方法,該方法具有參數設置少和魯棒性強的特點。
該檢測方法原理是將PCB板焊盤孔和元器件針腳映射變換過程采用注冊標準位置轉換與單一性轉換矩陣計算方法;假設我們能定位到PCB板和針腳的任意位置坐標,首先注冊PCB板和針腳模塊的標準位置坐標,然后建立兩者PCB板孔坐標和針腳注冊標準位置坐標之間的映射關系。對于任意位置的PCB板和針腳,分別映射到其注冊標準位置,再根據預先建立的映射矩陣H,PCB板映射到針腳位置,最后判斷針腳點是否在新孔洞內,即完成了對針腳是否適合插裝檢測。
工業相機與SCARA機器人的手部末端構成手眼視覺系統,根據相機與機器人相互位置的不同,手眼視覺系統分為眼在手上系統和眼在手外系統。眼在手上系統的相機安裝在機器人手部關節末端(end-effector),機器人工作過程中相機隨機器人末端一起移動;眼在手外系統的相機安裝在機器人本體外的固定位置,在機器人工作工程中不隨機器人末端一起運動[17]。
所謂手眼系統,就是人眼看到一個東西時候要讓手去抓取,就需要大腦知道眼和手的相對坐標關系。大腦比作B,眼睛比作A,手比作C,如果A和B的關系知道,B和C的關系知道,那么C和A的關系就知道了,也就是手和眼的坐標即可計算之間的關系。
進行手眼標定時,操作機器人夾持標定靶,進行姿勢變換采集數據,其姿勢分解為旋轉和平移,因此坐標變換時僅需要考慮平移和旋轉動作,其過程如圖9所示。

圖9 標定變換過程
其坐標點平移和旋轉變換過程,可由如下公式表示
利用SCARA四軸機器人對異形插件視覺算法進行識別定位與測試驗證,實驗平臺如圖10所示,其中該平臺中的視覺系統處理器是Intel i3-8100,內存為16 G,可擴展的多網口模塊,與機器人和相機進行通信處理數據;機器人實驗平臺由小型的光學平臺、工業相機、SCARA機器人及光源組成,光學平臺主要是固定相機與光源,將電路板和元器件進行打光采集圖像,得到最佳光源照射角度和圖像最佳信息,相機分為上相機和下相機,上相機主要采集電路板圖像,下相機主要采集元器件針腳圖像,電路板下面光源主要是將電路板孔打亮,獲取清晰的目標邊緣信息,下相機上的環形光源是將電子元器件針腳位置打亮,用于對針腳位置中心點進行定位;SCARA機器人是用于根據視覺拍攝圖像的位置信息進行元器件定位,將元器件插裝到電路板上,作為整個動作的執行者,而相機作為眼睛指導機器人進行插裝,整體構成了高精度異形元器件插件視覺定位驗證平臺。

圖10 實驗平臺
在測試過程中,機器人工作流程如下:通過手動發送觸發信息,機器人接收到信息執行抓取元器件動作,移動到下相機拍照處,對元器件針腳圖像進行拍照,提取元器件針腳點像素點信息,對該點進行定位與像素中心點查找,再通過對中心點擬合完成針腳點集信息計算;與此同時,系統中的上相機對需要定位的電路板進行拍照,將拍照圖像傳入視覺系統中,對圖像進行焊盤孔進行粗定位和ROI區域進行提取,將ROI區域進行像素點提取并對中心點集進行查找;將電路板和元器件點集信息進行對比與擬合,計算出是否適合插裝,然后將檢測結果是否適合插裝反饋給機器人,若不適合插裝進行拋料處理,若適合插裝,則給出插裝位置信息,機器人根據插裝信息進行插裝動作。
在控制器生產車間中異形插件機器人作業光環境受到外界干擾比較大,比如車間的生產照明燈、環境光及產線上的各種光源等,為了提高插件算法的精度和穩定性,實驗室測試采用針腳檢測光源和面光源對針腳與PCB焊盤孔進行打光,通過該打光方案有效的提高了針腳的前景和背景對比度,背光源也能夠較好采集焊盤孔邊緣的信息,有利于對圖像進行邊緣查找與閾值設定,能夠達到較高的定位精度與檢測準確率。
實驗分別采用2、3、4針腳元器件進行插裝測試,一部分是元器件針腳的定位結果測試,結果見下文,將機器人注冊標準位置與實測物理坐標的距離作為定位誤差,包括X方向、Y方向及旋轉角度誤差;另一部分是將PCB板定位測試;采用機器人夾持工件,在3×3 mm,正負1度的范圍內隨機移動,然后觸發相機,進行圖像采集,并保存對應的機器人坐標。然后利用程序讀圖及對應的坐標,與算法得到的定位結果進行對比,用于判斷算法的精度。
經過對3個模塊的測試數據結果分析,在實驗室環境下,針腳定位、PCB板定位及針腳檢測算法能夠很好實現物料定位與檢測功能,并且定位誤差在0.1 mm以內,該算法效果能夠很好地完成元器件針腳定位與檢測功能任務,相對于傳統的處理方法,本算法能夠較好提高異形插件視覺系統的準確性和魯棒性,結果也驗證了算法設計的合理性和有效性,能夠滿足異形元器件插裝的精度要求。
分別采用了2、3、4針腳模塊進行測試,測試結果見表1。

表1 4針腳PIN測試結果
本文研究了高精度異形插件視覺定位與檢測的關鍵技術,提出了圖像模板匹配、坐標系變換、針腳點和針孔點提取、偏移量計算及針腳檢測等算法,從原理上對針腳點和焊盤孔進行點集查找與計算,通過標準位置與偏移量計算方法,從算法原理上提高了異形插件系統的定位精度與檢測準確性,并通過在機器人異形插件平臺上進行了實驗驗證,能夠實現較高精度的異形元器件針腳與電路板焊盤孔定位與檢測,算法具有良好的穩定性與魯棒性,并通過不同數據驗證與分析驗證了本文算法的有效性和準確性。
本研究算法是結合SCARA機器人進行元器件插件實現與應用開發,在后續的工作中,還需要從兩方面優化該算法,一個是從算法適用性方面開展研究,對現有算法開展通用化與模塊化設計工作,推廣到自動化通用平臺中;另一個是從算法精度與速度方面進行優化,對底層算法各個模塊進行分析,將精度與速度影響較大的部分進行研究,如金字塔分層、并行處理機制等,使該算法在行業中具有很好的可復制性與可推廣性。