文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.004
中文引用格式: 黨宏社,,候金良,,強(qiáng)華,等. 基于視覺(jué)引導(dǎo)的SCARA機(jī)器人自動(dòng)裝配系統(tǒng)[J].電子技術(shù)應(yīng)用,,2017,,43(5):21-24.
英文引用格式: Dang Hongshe,,Hou Jinliang,Qiang Hua,,et al. SCARA automatic assembly system based on vision guided[J].Application of Electronic Technique,,2017,43(5):21-24.
0 引言
工業(yè)機(jī)器人是機(jī)電一體化高度集成的產(chǎn)物,,作為《中國(guó)制造2025》重點(diǎn)發(fā)展的十大領(lǐng)域之一,,是工業(yè)自動(dòng)化水平和工業(yè)4.0的重要標(biāo)志[1]。工業(yè)機(jī)器人具有重復(fù)精度高,、可靠性好,、適用性強(qiáng)等優(yōu)點(diǎn),廣泛應(yīng)用于汽車,、機(jī)械,、電子、物流等行業(yè),,已被證明是當(dāng)前最高效的生產(chǎn)工具,,需求量不斷攀升[2]。自上世紀(jì)60年代初以來(lái),,工業(yè)機(jī)器人經(jīng)歷了三個(gè)階段的發(fā)展[3],。第一代是示教再現(xiàn)型工業(yè)機(jī)器人,只能將操作者告訴它的軌跡,、順序,、要求等把知識(shí)記憶下來(lái),然后根據(jù)再現(xiàn)指令讀取這些知識(shí),,完成規(guī)定任務(wù),。第二代工業(yè)機(jī)器人是感知型工業(yè)機(jī)器人,通過(guò)給工業(yè)機(jī)器人安裝相關(guān)傳感器使其有所感知,,對(duì)外部信息能進(jìn)行反饋,。第三代工業(yè)機(jī)器人是智能工業(yè)機(jī)器人,可對(duì)周圍環(huán)境,、作業(yè)條件等做出判斷然后再執(zhí)行任務(wù),。一般由機(jī)器視覺(jué)作為反饋,,通過(guò)圖像處理信息引導(dǎo)工業(yè)機(jī)器人執(zhí)行任務(wù)。
機(jī)器視覺(jué)是工業(yè)機(jī)器人的重要研究領(lǐng)域[4],,而目前生產(chǎn)線上多數(shù)工業(yè)機(jī)器人都通過(guò)預(yù)先示教或者離線編程的方式來(lái)控制機(jī)器人執(zhí)行預(yù)定的指令動(dòng)作,,一旦工作環(huán)境或目標(biāo)對(duì)象發(fā)生變化,機(jī)器人不能及時(shí)適應(yīng)這些變化,,從而導(dǎo)致任務(wù)失敗,,而且這種工作方式在很大程度上限制了工業(yè)機(jī)器人的靈活性和工作效率。
1 裝配系統(tǒng)的組成
本文設(shè)計(jì)并實(shí)現(xiàn)了基于機(jī)器視覺(jué)的機(jī)器人裝配系統(tǒng),,可在線完成對(duì)不同型號(hào)和任意擺放工件的裝配任務(wù),。系統(tǒng)主要由機(jī)器視覺(jué)系統(tǒng)和機(jī)器人裝配系統(tǒng)組成。機(jī)器視覺(jué)系統(tǒng)包括圖像獲取,、相機(jī)標(biāo)定,、模板匹配,可對(duì)不同工件進(jìn)行識(shí)別,、定位以及旋轉(zhuǎn)角度的確定,。機(jī)器人裝配系統(tǒng)包括工件的抓取和安裝,在視覺(jué)的引導(dǎo)下完成工件的裝配,。PC利用Socket通信把坐標(biāo)和姿態(tài)數(shù)據(jù)發(fā)送給機(jī)器人,,機(jī)器人根據(jù)位置數(shù)據(jù)抓取工件,然后放到裝配位置,。
2 視覺(jué)系統(tǒng)的設(shè)計(jì)
2.1 圖像獲取
采用韓國(guó)IMI tech Amazon2系列工業(yè)相機(jī)[5],,它是數(shù)字逐行掃描相機(jī),采用千兆以太網(wǎng)GigE協(xié)議標(biāo)準(zhǔn),,采用Sony逐行掃描CCD芯片,,具有非常高的圖像質(zhì)量。通過(guò)以太網(wǎng)與PC連接,,且采集頻率可調(diào),。首先通過(guò)安裝IMI相機(jī)的驅(qū)動(dòng)軟件獲得相機(jī)的C++接口,,然后將接口函數(shù)移植到Visual Studio2015中進(jìn)行二次開(kāi)發(fā),。在包含相機(jī)類庫(kù)的情況下,通過(guò)實(shí)例化相機(jī)句柄類來(lái)讀取相機(jī)的數(shù)據(jù),。通過(guò)OneFrameGrab來(lái)獲取相機(jī)的一幀圖像,,并將數(shù)據(jù)保存在固定的位置,實(shí)現(xiàn)實(shí)時(shí)讀取IMI相機(jī)的功能,。
2.2 相機(jī)標(biāo)定
在機(jī)器視覺(jué)應(yīng)用中,,相機(jī)參數(shù)的標(biāo)定是非常關(guān)鍵的環(huán)節(jié),其標(biāo)定結(jié)果的精度及算法的穩(wěn)定性直接影響相機(jī)工作產(chǎn)生結(jié)果的準(zhǔn)確性[6],。由于機(jī)器人抓取的工件位于同一平面,,所以只對(duì)標(biāo)定板圖像采集一次就可以得到相機(jī)的外參,。得到相機(jī)的外參后,即可以得到圖像坐標(biāo)上每個(gè)像素在世界坐標(biāo)系下對(duì)應(yīng)的實(shí)際距離,。然后通過(guò)坐標(biāo)系的變換公式即可得到圖像坐標(biāo)系與機(jī)器人世界坐標(biāo)系的轉(zhuǎn)換關(guān)系,。
2.3 標(biāo)準(zhǔn)模板的建立
在進(jìn)行模板匹配之前需要制作不同工件的標(biāo)準(zhǔn)形狀模板。將標(biāo)準(zhǔn)的工件放在相機(jī)的視野下,,獲取圖像,,對(duì)圖像提取ROI區(qū)域,然后進(jìn)行輪廓提取,,得到模板的標(biāo)準(zhǔn)輪廓,。首先獲取標(biāo)準(zhǔn)工件圖像,利用矩形截取函數(shù)來(lái)截取矩形的ROI區(qū),;然后對(duì)圖像進(jìn)行增強(qiáng),;最后通過(guò)模板創(chuàng)建函數(shù)來(lái)創(chuàng)建模板,得到模板二值化后的標(biāo)準(zhǔn)輪廓,。創(chuàng)建模板的算法思路如下:
(1)尋找ROI區(qū)域圖像的灰度梯度,,使用Sobel算子對(duì)圖像進(jìn)行處理可以返回X方向的像素灰度值(Gx)和T方向的像素灰度值(Gy)。用下面的公式計(jì)算當(dāng)前像素點(diǎn)的灰度值和梯度方向,。
(2)利用非極大值抑制算法(NMS)來(lái)搜索梯度方向的局部極大值,,抑制非極大值元素,可以細(xì)化邊緣,。非最大抑制算法跟蹤邊緣方向的左右像素,,如果當(dāng)前像素的灰度值小于左、右像素灰度值,,則抑制當(dāng)前像素灰度,。
(3)采用雙閾值算法提取和連接邊緣。非極大值抑制算法處理后可能會(huì)有少量的非邊緣像素被包含到結(jié)果中,,所以要通過(guò)選取閾值進(jìn)行取舍,。雙閾值選擇與邊緣連接方法通過(guò)假設(shè)兩個(gè)閾值其中一個(gè)為高閾值TH,另外一個(gè)為低閾值TL,,則有:對(duì)于任意邊緣像素低于TL的,,則丟棄;對(duì)于任意邊緣像素高于TH的,,則保留,;任意邊緣像素值在TL與TH之間的,如果能通過(guò)邊緣連接到一個(gè)像素大于TH而且邊緣所有像素大于最小閾值TL的,,則保留,,否則丟棄。最終對(duì)邊緣圖像進(jìn)行保存,,圖1是工件A的模板創(chuàng)建過(guò)程,。
2.4 模板匹配
對(duì)相機(jī)采集的工作區(qū)域?qū)崟r(shí)圖像搜索模板圖像,,得到工件的像素坐標(biāo)和旋轉(zhuǎn)角度。模板匹配的流程如圖2所示,。
其中相似性度量用到了歸一化處理,,圖像中包含與模板越相似的圖像輸出的數(shù)值越接近1,公式如下:
其中代表模板圖像X和Y方向的梯度,,
代表待匹配圖像的X和Y方向的梯度,。歸一化相似性度量會(huì)得到當(dāng)前圖像與模板的相似度Score,Score的閾值MinScore設(shè)定為0.75,??梢栽O(shè)定圖像的最大匹配個(gè)數(shù),如果匹配時(shí)的質(zhì)量系數(shù)大于MinScore的目標(biāo)個(gè)數(shù)多于最大匹配個(gè)數(shù),,僅僅返回質(zhì)量系數(shù)最好的目標(biāo)位置,。如果找的匹配目標(biāo)不夠,那么就只返回已找到的目標(biāo),。輸出的匹配角度Angle為弧度值0~2π,,對(duì)應(yīng)模板圖像逆時(shí)針旋轉(zhuǎn)0~360°。最終根據(jù)相機(jī)標(biāo)定的結(jié)果將工件圖像坐標(biāo)轉(zhuǎn)化為機(jī)器人的世界坐標(biāo),。經(jīng)過(guò)多次匹配實(shí)驗(yàn)得出匹配的準(zhǔn)確率為98%,,匹配的最大絕對(duì)誤差為5個(gè)像素,匹配平均時(shí)間為60 ms,。
3 機(jī)器人裝配系統(tǒng)設(shè)計(jì)
SCARA(Selectively Compliance Assembly Robot Arm)機(jī)器人是一種平面關(guān)節(jié)型工業(yè)機(jī)器人,,具有4個(gè)關(guān)節(jié)[7],3個(gè)旋轉(zhuǎn)關(guān)節(jié)軸線相互平行,,實(shí)現(xiàn)平面內(nèi)定位和定向,;1個(gè)移動(dòng)關(guān)節(jié),實(shí)現(xiàn)末端件升降運(yùn)動(dòng),,廣泛應(yīng)用于塑料工業(yè),、汽車工業(yè)、電子產(chǎn)品工業(yè),、藥品工業(yè)和食品工業(yè)等領(lǐng)域[8],。本次設(shè)計(jì)中機(jī)器人要與PC通信接收工件的坐標(biāo)信息和角度,然后抓取工件以固定的姿態(tài)放到指定的位置,。
3.1 SCARA機(jī)器人通信程序設(shè)計(jì)
機(jī)器人控制器的IP1端口作為客戶端連接到運(yùn)行在PC上的服務(wù)器,,利用無(wú)線通信完成數(shù)據(jù)的收發(fā),。使用機(jī)械手語(yǔ)言的PRINT和INPUT命令,,與機(jī)械手語(yǔ)言程序進(jìn)行數(shù)據(jù)通信。通過(guò)使用PRINT命令,,可以從控制器發(fā)送任意的字符串,,控制器發(fā)送以PRINT命令指定的字符串及變量值,。接收數(shù)據(jù)使用INPUT命令,控制器能接收的僅是實(shí)數(shù)或整數(shù),??刂破饕呀邮盏臄?shù)據(jù)被代入為用INPUT命令指定的變量。在機(jī)械手語(yǔ)言的程序中,,可以通過(guò)參照該變量,,使用已接收的數(shù)據(jù)。在Visual Studio中利用C++開(kāi)發(fā)了基于Socket通信的服務(wù)器,,將模板匹配得到的工件坐標(biāo)發(fā)送給機(jī)器人客戶端,。PC與機(jī)器人通信程序流程圖如圖3所示。
3.2 SCARA機(jī)器人抓放程序設(shè)計(jì)
機(jī)器人程序在TSPC軟件中完成,,主要功能是根據(jù)接收到的工件坐標(biāo)和角度數(shù)據(jù),,移動(dòng)機(jī)器人將工件以固定的姿態(tài)放到裝配位置。由于抓取的工作區(qū)域比較大,,因此要將工作區(qū)域分開(kāi)抓取,。通過(guò)對(duì)機(jī)器人的軌跡范圍的研究,確定將工作區(qū)域分為兩個(gè)部分,,分別以不同的姿態(tài)抓取工件,。以機(jī)器人世界坐標(biāo)X=331.6為分界,對(duì)上半部分采用C=-254.380 基準(zhǔn)對(duì)工件進(jìn)行抓取,,下半部分采用C=-74.306基準(zhǔn)對(duì)工件進(jìn)行抓取,。由于工件在工作區(qū)域有0~360°的旋轉(zhuǎn)角度,所以要在基準(zhǔn)的基礎(chǔ)上對(duì)機(jī)器人的旋轉(zhuǎn)角度進(jìn)行調(diào)整,,使得每次機(jī)器人的末端執(zhí)行器都與工件平行,。
機(jī)器人末端執(zhí)行器根據(jù)工件角度旋轉(zhuǎn)的原理。由于模板匹配返回工件中心的坐標(biāo)點(diǎn),,當(dāng)角度發(fā)生變化時(shí),,相應(yīng)的機(jī)器人的坐標(biāo)也要變化,才能保證以與工件平行的姿態(tài)抓取工件,。其原理如圖4所示,。
如果工件A的旋轉(zhuǎn)角度為零,那么末端執(zhí)行器以工件中心點(diǎn)(X0,,Y0)到(X1,,Y1)的直線抓取工件。當(dāng)工件A旋轉(zhuǎn)θ角度時(shí),,末端執(zhí)行器以工件中心點(diǎn)(X0,,Y0)到(X2,Y2)的直線抓取工件。機(jī)器人的坐標(biāo)偏移量用下面的公式計(jì)算,,其中θ為工件的旋轉(zhuǎn)角度,,L為末端執(zhí)行器的長(zhǎng)度7.564 cm。
然后用MOVE SAFEPLAY,,將不同旋轉(zhuǎn)角度的工件都以固定的角度移動(dòng)到放置安全點(diǎn),,最后完成放置。機(jī)器人的抓放程序流程圖如圖5所示,。
4 實(shí)驗(yàn)驗(yàn)證
在Visual Studio中采用MFC開(kāi)發(fā)實(shí)現(xiàn)上述圖像處理算法,,并建立Socket服務(wù)器與SCARA通信。在MFC程序中采用多線程的方法實(shí)時(shí)顯示機(jī)器人工作區(qū)域的圖像,,采用中斷的方式定時(shí)對(duì)圖像進(jìn)行模板匹配,。當(dāng)匹配到工件,利用Socket通信將工件坐標(biāo)發(fā)送給機(jī)器人完成裝配,。MFC程序界面及裝配實(shí)驗(yàn)系統(tǒng)如圖6所示,。
系統(tǒng)誤差的主要來(lái)源為相機(jī)標(biāo)定、光照的變化,、坐標(biāo)變換以及機(jī)器人末端執(zhí)行器的精度等,。利用本系統(tǒng)對(duì)任意擺放的工件進(jìn)行識(shí)別和抓取,對(duì)連續(xù)50次的裝配點(diǎn)誤差進(jìn)行統(tǒng)計(jì),,如圖7所示,。通過(guò)以上實(shí)驗(yàn)測(cè)試,本系統(tǒng)可以對(duì)任意擺放的工件進(jìn)行識(shí)別,,并可以精確地放到裝配位置,,工件裝配的最大絕對(duì)誤差為0.2 mm,平均絕對(duì)誤差為0.15 mm,,可以滿足生產(chǎn)的要求,,證明系統(tǒng)的準(zhǔn)確性良好。實(shí)驗(yàn)測(cè)試時(shí)間超過(guò)100 min且系統(tǒng)仍然穩(wěn)定運(yùn)行,,證明系統(tǒng)的穩(wěn)定性良好,。
5 結(jié)束語(yǔ)
為了使現(xiàn)有生產(chǎn)線工業(yè)機(jī)器人能更好地適應(yīng)抓取環(huán)境,設(shè)計(jì)了基于視覺(jué)引導(dǎo)的機(jī)器人抓放系統(tǒng),。通過(guò)對(duì)工作區(qū)域圖像實(shí)時(shí)采集和模板匹配得到工件的坐標(biāo)和姿態(tài),,由機(jī)器人完成抓放。通過(guò)對(duì)生產(chǎn)線的改進(jìn),,工件可以任意放入工作區(qū)域,,也可根據(jù)生產(chǎn)需要改變抓取策略,提高機(jī)器人對(duì)環(huán)境的適應(yīng)性,,大大提高生產(chǎn)效率,。通過(guò)多次測(cè)試實(shí)驗(yàn),,本系統(tǒng)可以完成上述所有功能,滿足工業(yè)生產(chǎn)的要求,。
參考文獻(xiàn)
[1] 周濟(jì).智能制造─“中國(guó)制造2025”的主攻方向[J].中國(guó)機(jī)械工程,2015,,26(17):2273-2284.
[2] 譚民,,王碩.機(jī)器人技術(shù)研究進(jìn)展[J].自動(dòng)化學(xué)報(bào),2013,,39(7):963-972.
[3] 駱敏舟,,方健,趙江海.工業(yè)機(jī)器人的技術(shù)發(fā)展及其應(yīng)用[J].機(jī)械制造與自動(dòng)化,,2015,,44(1):1-4.
[4] 劉藝,夏文杰.基于機(jī)器視覺(jué)的移動(dòng)工件抓取和裝配的研究[J].計(jì)算機(jī)測(cè)量與控制,,2015,,23(7):2329-2332.
[5] LEE W S,EOM J H,,WON J D.A study on visual servoing control of industrial robot[C].2012 12th International Conference on Control,,Automation and Systems(ICCAS).JeJu Island,2012:1886-1890.
[6] 郭斌,,朱戈,,陸藝,等.智能化上料系統(tǒng)中工件視覺(jué)定位的研究[J].計(jì)算機(jī)測(cè)量與控制,,2016,,24(2):232-238.
[7] 翟敬梅,董鵬飛,,張鐵.基于視覺(jué)引導(dǎo)的工業(yè)機(jī)器人定位抓取系統(tǒng)設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與研究,,2014,30(5):45-49.
[8] 劉振宇,,李中生,,趙雪,等.基于機(jī)器視覺(jué)的工業(yè)機(jī)器人分揀技術(shù)研究[J].制造業(yè)自動(dòng)化,,2013,,35(9):25-30.
作者信息:
黨宏社,候金良,,強(qiáng) 華,,張 超
(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安710021)