彭輝輝 劉飛飛 代云勇 陳臻陽 陳文濤
摘? 要: 針對(duì)機(jī)器視覺結(jié)合工業(yè)機(jī)器人進(jìn)行自動(dòng)分揀工作存在的物料識(shí)別和定位等問題,提出一種基于運(yùn)動(dòng)視覺的物料測(cè)距和定位方法。主要原理是通過安裝在工業(yè)機(jī)器人末端的攝像頭在移動(dòng)過程中,對(duì)世界坐標(biāo)系不同位置進(jìn)行連續(xù)單點(diǎn)拍攝,進(jìn)而獲得類似雙目視覺測(cè)距的必要參數(shù),實(shí)現(xiàn)運(yùn)動(dòng)測(cè)距和定位的功能。針對(duì)現(xiàn)有的一種圓柱體工件自動(dòng)分揀作業(yè),利用視覺庫(kù)(OpenCV for Python)處理圖像數(shù)據(jù),在機(jī)器人運(yùn)行軌跡內(nèi)進(jìn)行逐點(diǎn)采樣計(jì)算。實(shí)驗(yàn)結(jié)果表明,單目運(yùn)動(dòng)視覺測(cè)距和定位效果良好,平均定位誤差小于4%,該測(cè)距方法在一定條件下能夠達(dá)到精度要求,具有降低自動(dòng)分揀系統(tǒng)升級(jí)成本的實(shí)際意義。
關(guān)鍵詞: 工業(yè)機(jī)器人; 分揀系統(tǒng); 移動(dòng)視覺; 運(yùn)動(dòng)測(cè)距; 運(yùn)動(dòng)定位; 測(cè)距實(shí)驗(yàn)
中圖分類號(hào): TN830?34? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)20?0026?05
Application research of industrial robot sorting system based on mobile vision
PENG Huihui1, LIU Feifei2, DAI Yunyong1, CHEN Zhenyang1, CHEN Wentao1
(1. School of Mechanical and Electrical Engineering, Jiangxi University of Science and Technology, Ganzhou 341000, China;
2. School of Electrical Engineering and Automation, Jiangxi University of Science and Technology, Ganzhou 341000, China)
Abstract: In allusion to the material identification and positioning in the automatic sorting work of machine vision combined with industrial robot, a method of material ranging and location based on motion vision is proposed. The main principle is to continuous single point shooting at different positions in the world coordinate system during the movement of the camera installed at the end of the industrial robot, so as to acquire the necessary parameters that similar to binocular vision ranging and realize the function of motion ranging and positioning. In allusion to the existing automatic sorting operation of cylinder workpiece, the OpenCV for Python is used to process image data, and point?by?point sampling calculation is carried out within the robot′s trajectory. The experimental results show that the monocular motion vision ranging and positioning is good, and the average positioning error is less than 4%. The ranging method can meet the accuracy requirements under a certain conditions. It has practical significance to reduce the upgrade cost of the automatic sorting system.
Keywords: industrial robot; sorting system; mobile vision; motion ranging; motion positioning; ranging experiment
0? 引? 言
隨著工業(yè)4.0的到來,生產(chǎn)制造產(chǎn)業(yè)面臨越來越高的柔性加工需求。目前,工業(yè)機(jī)器人已經(jīng)大規(guī)模引入自動(dòng)化生產(chǎn)線中,其廣泛應(yīng)用于碼垛、焊接、搬運(yùn)、裝配等工作中,代替?zhèn)鹘y(tǒng)人工勞動(dòng),大幅度提升了生產(chǎn)線的柔性制造水平 [1]。工業(yè)機(jī)器人因多關(guān)節(jié)、多自由度等特性而具有高柔性,但在工業(yè)現(xiàn)場(chǎng)復(fù)雜、物料情況多變的環(huán)境下,機(jī)器人軌跡調(diào)試具有較大難度。
為了提高機(jī)器人自主性,機(jī)器視覺結(jié)合工業(yè)機(jī)器人的應(yīng)用是進(jìn)一步提高生產(chǎn)加工柔性的主要發(fā)展趨勢(shì),如雙目視覺的自動(dòng)上下料系統(tǒng)[1]和深度學(xué)習(xí)算法的分揀系統(tǒng)[2]等。雙目相機(jī)可以直接從圖像數(shù)據(jù)中獲得深度信息,解決了傳統(tǒng)單目焦距適應(yīng)、深度測(cè)距等問題,但也提高了相機(jī)的成本,同時(shí)算法的復(fù)雜度成倍增加,多路圖像數(shù)據(jù)的并行處理難度大,對(duì)處理芯片的要求以及硬件的可靠性要求大大增加[3]。
目前,雙目視覺技術(shù)主要用于自動(dòng)駕駛及導(dǎo)航技術(shù),而在傳統(tǒng)制造業(yè)中,因成本高和開發(fā)難度問題,雙目視覺技術(shù)仍有待發(fā)展,自動(dòng)化生產(chǎn)線主流的方案仍是以單目相機(jī)為主的圖像處理技術(shù)。
本文綜合分析了單目測(cè)量、雙目測(cè)距等原理,針對(duì)傳統(tǒng)的固定式相機(jī)自動(dòng)分揀系統(tǒng)提出一種基于單目移動(dòng)視覺的測(cè)距和定位方法。本文實(shí)驗(yàn)通過安裝在機(jī)器人末端的工業(yè)相機(jī)對(duì)產(chǎn)品進(jìn)行連續(xù)拍照,實(shí)現(xiàn)產(chǎn)品的大致特征和位置的識(shí)別,為機(jī)器人的抓取提供空間坐標(biāo)。實(shí)驗(yàn)結(jié)果滿足一般生產(chǎn)加工需求,具有實(shí)際使用價(jià)值。
1? 攝像頭測(cè)距原理
1.1? 單目測(cè)量
使用單目攝像頭實(shí)現(xiàn)拍攝物尺寸測(cè)量的基本原理為三角形相似原理,如圖1所示。
圖1中:中間拍攝平面和成像平面的垂線是相機(jī)的主光軸;d是拍攝平面至鏡頭的距離;f為相機(jī)鏡頭的焦距;L為被拍攝線段的實(shí)際測(cè)量長(zhǎng)度;L′為在成像平面(感光元件)上的成像長(zhǎng)度[4]。 根據(jù)相似三角形公式可得:
[fd=L′L]? ? (1)
由小孔成像原理可知,相機(jī)的一個(gè)像素點(diǎn)對(duì)應(yīng)現(xiàn)實(shí)中某個(gè)矩形區(qū)域,排除相機(jī)的畸變和裝配誤差,兩個(gè)區(qū)域是成比例對(duì)應(yīng)的。而其中的對(duì)應(yīng)關(guān)系求解就是相機(jī)的標(biāo)定過程,相機(jī)標(biāo)定需要明確4個(gè)坐標(biāo)系,如圖1所示,分別為圖像像素坐標(biāo)系Cp,圖像物理坐標(biāo)系C,相機(jī)坐標(biāo)系Cc和世界坐標(biāo)系Cw。由此可得圖像的物理坐標(biāo)系和像素坐標(biāo)系轉(zhuǎn)換關(guān)系如下:
[xpyp1=1dx0x001dyy0001xy1]? ?(2)
式中,dx,dy分別為每個(gè)像素在x軸和y軸上的物理尺寸。相機(jī)坐標(biāo)系 (xc,yc,zc) 以相機(jī)的光心為原點(diǎn)Oc,光軸為zc軸,xc和yc軸分別與圖像物理坐標(biāo)系的x軸和y軸平行,具體轉(zhuǎn)換關(guān)系如下:
[zcxy1=f00? 0f0? ? 0? 0 1? ?0 0 0xcyczc1]? ? ?(3)
世界坐標(biāo)系(xw,yw,zw)是為了描述相機(jī)的位置而引進(jìn)的坐標(biāo)系,可用來描述真實(shí)世界中物體的位置。相機(jī)坐標(biāo)系與世界坐標(biāo)系之間的關(guān)系可通過相機(jī)外參數(shù)的平移矩陣T和旋轉(zhuǎn)向量R來表示,兩者關(guān)系如下:
[xcyczc1=RT0T1xwywzw1]? ? (4)
至此,結(jié)合式(2)~式(4),世界坐標(biāo)系到圖像像素坐標(biāo)系的關(guān)系為:
[zcxpyp1=1dx0x001dyy0001f00? 0f0? ? 0? 0 1? ?0 0 0RT0T1xwywzw1]? ? ? ?(5)
單目測(cè)距通過標(biāo)定物建立世界坐標(biāo)到圖像坐標(biāo)的轉(zhuǎn)換關(guān)系,在Zc已知的情況下,便可從相機(jī)圖像中確定圖片中某點(diǎn)的空間位置;但在相機(jī)焦距確定的情況下,圖中物體深度信息卻無法求解。
1.2? 雙目測(cè)距
雙目相機(jī)類似于人眼結(jié)構(gòu),是一種基于雙目視差原理的深度相機(jī),具體是安裝在同一平面的左右相機(jī),通過成像視差計(jì)算出世界坐標(biāo)系中的觀測(cè)點(diǎn)與雙目相機(jī)之間的相對(duì)距離[5],如圖2所示。
由圖2可知,左右兩型號(hào)相同的相機(jī)平行放置,兩個(gè)相機(jī)的投影中心連線的間距為光心距,又名基線b。目標(biāo)P(xc,zc)為場(chǎng)景中的一個(gè)點(diǎn),在兩攝像機(jī)成像面上的投影點(diǎn)分別為pl(xl,yl),pr(xr,yr)。假設(shè)2臺(tái)相機(jī)成像平面在同一平面上。
在已知相機(jī)焦距f的情況下,利用相似三角形原理可知:
[zcf=yyl=yyr=xxl=x-bxr] (6)
由此式可推導(dǎo)出z,x,y的求解公式:
[zc=f·bxl-xrxc=zc·xlf=b+zc·xrfyc=zc·ylf=zc·yrf] (7)
由式(7)可知,視差值xl-xr和深度z成反比關(guān)系。距離越遠(yuǎn),視差值越小。由位移差x可知,攝像機(jī)像素越高,可以求得的水平位移差x越精確,在相同距離上測(cè)距精度更高。
求解一個(gè)位置P的深度z,需要知道相機(jī)的焦距f,左右相機(jī)的間距b,以及視差xl-xr。深度已知后,便可進(jìn)一步求得x,y,最后獲得P點(diǎn)的空間位置[6]。
1.3? 運(yùn)動(dòng)立體測(cè)距
雙目相機(jī)特性雖然優(yōu)于單目相機(jī),但隨著圖像處理算法和深度學(xué)習(xí)技術(shù)的發(fā)展,直接從單目相機(jī)進(jìn)行圖像預(yù)測(cè)和深度估計(jì)也是應(yīng)用熱點(diǎn)。通過上述雙目測(cè)距原理可知,雙目視覺和單目視覺都是利用的三角相似原理實(shí)現(xiàn)定位和測(cè)距的。在一定條件下,雙目視覺技術(shù)可以看成一個(gè)單目相機(jī)在不同空間位置的拍攝形成視差進(jìn)行深度信息求解的過程。而本文提出的運(yùn)動(dòng)視覺是采用一個(gè)工業(yè)相機(jī),通過給定的方式改變其空間位置,在世界坐標(biāo)系中不同位置對(duì)同一物體進(jìn)行拍攝,然后將不同圖像進(jìn)行像素匹配,獲得視差,即可進(jìn)一步求解物體的深度信息[7]。相機(jī)在不同位置的拍攝示意圖如圖3所示。
由圖3可知,工業(yè)相機(jī)安裝在工業(yè)機(jī)器人末端關(guān)節(jié)上跟隨軌跡移動(dòng)(軌跡為水平面直線運(yùn)動(dòng)),f為相機(jī)的焦距,Pw為世界坐標(biāo)系某一點(diǎn)。相機(jī)每移動(dòng)一段距離拍攝Pw點(diǎn),圖中4點(diǎn)不同位置的成像坐標(biāo)為P1,P2,P3,P4,形成的基線距離為采樣點(diǎn)與上一個(gè)采樣點(diǎn)之間的世界坐標(biāo)系距離[bn=xn-xn-12+yn-yn-12] 。如圖3b)所示,相機(jī)從左到右移動(dòng)過程中拍攝P和P′點(diǎn),故能產(chǎn)生多組視差d1,d2,…,dn,如下:
[d1=xl1-xr1d′1=x′l1-x′r1d1=xl2-xr2? d′2=x′l2-x′r2?dn=xln-xrn? d′n=x′ln-x′rn]? ? ? (8)
所有視差求取平均值代入式(7)得:
[Depth=dm-d′m=f·bn=1ndnn-f·b n=1ndn′n′] (9)
根據(jù)雙目視覺測(cè)距公式和單目視覺定位公式,可以獲得目標(biāo)點(diǎn)在像素圖中和世界坐標(biāo)的運(yùn)算公式為:[zc=f·bdmzcxpyp1=1dx0x001dyy0001f00 0f0? 0? 0 1 0 0 0RT0T1xwywzw1]? ? (10)
2? 工業(yè)機(jī)器人測(cè)距實(shí)驗(yàn)
基于上述相機(jī)測(cè)距方法,本文通過ABB工業(yè)機(jī)器人IRC1415和工業(yè)相機(jī)Balser ACE?640?100GM進(jìn)行初步實(shí)驗(yàn)。如圖4所示,傳統(tǒng)的機(jī)器人分揀系統(tǒng)是固定式攝像頭,相機(jī)一般固定在一個(gè)世界坐標(biāo)系中不動(dòng),拍攝固定焦距平面的物體,實(shí)時(shí)處理一幅圖像進(jìn)行位置和形態(tài)的分析;而本文實(shí)驗(yàn)在工業(yè)機(jī)器人末端安裝了活動(dòng)式攝像頭。
實(shí)驗(yàn)方案中,工業(yè)機(jī)器人末端活動(dòng)式相機(jī)將移動(dòng)到傳送帶上方,軌跡線如圖5所示,分揀的類別分為A,B兩種。相機(jī)在傳送帶上方移動(dòng)拍照處理,從圖像ROI區(qū)域內(nèi)識(shí)別到產(chǎn)品開始,進(jìn)行移動(dòng)視覺處理算法,定位好空間坐標(biāo)后,工業(yè)機(jī)器人直線插補(bǔ)移動(dòng)到產(chǎn)品上方,用吸盤抓取產(chǎn)品后,沿分揀軌跡線進(jìn)行產(chǎn)品分揀。然后通過相機(jī)在不同位置進(jìn)行張氏標(biāo)定,獲得雙目測(cè)距需要的相機(jī)內(nèi)外參數(shù),最后使用立體匹配視差算法獲得實(shí)驗(yàn)數(shù)據(jù)。Python程序框圖如圖6所示。
2.1? 相機(jī)標(biāo)定
攝像機(jī)標(biāo)定是機(jī)器人視覺進(jìn)行目標(biāo)定位跟蹤的首要環(huán)節(jié),只有通過標(biāo)定板標(biāo)定好攝像機(jī)的內(nèi)外參數(shù),才可以根據(jù)參數(shù)進(jìn)行后續(xù)的定位識(shí)別工作[8]。相機(jī)標(biāo)定方法較多,基于張氏標(biāo)定法的相機(jī)標(biāo)定效率高,且滿足一般精度需求。實(shí)驗(yàn)采用Python代碼段進(jìn)行相機(jī)標(biāo)定,標(biāo)定過程中,標(biāo)定板選用角點(diǎn)數(shù)為4×6的棋盤格,棋盤格大小為5 mm×5 mm。通過程序循環(huán)檢測(cè)模板,返回對(duì)應(yīng)的角點(diǎn)。算法得到用于標(biāo)定的三維點(diǎn)和與其對(duì)應(yīng)的圖像上的二維點(diǎn)對(duì)后,利用標(biāo)定函數(shù)calibrateCamera()進(jìn)行標(biāo)定,函數(shù)會(huì)返回標(biāo)定結(jié)果有相機(jī)的內(nèi)參數(shù)矩陣、畸變系數(shù)、旋轉(zhuǎn)矩陣和平移向量[9?10],計(jì)算的相機(jī)參數(shù)如下:
[Ml=2 935.480303.0502 929.25376.51001]
[Mr=2 725.560406.1202 725.20391.84001]
[Dl=-0.496 21.546 7-1.081 80.001 6730]
[Dr=-0.505 71.635 1-1.126 10.001 2240]
[R=0.097 360.010 391.428 0-0.017 750.073 140.015 26-1.426 1-0.015 630.099 52]
[T=-59.41-24.261 713.32]
式中:[Mr]和[Ml]分別是左右位置相機(jī)的內(nèi)參數(shù);[Dl]和[Dr]分別是左右位置相機(jī)的畸變參數(shù);R是左右位置相機(jī)的旋轉(zhuǎn)矩陣;T是左右位置相機(jī)的平移矩陣。
2.2? 運(yùn)動(dòng)測(cè)距
標(biāo)定相機(jī)結(jié)束后,為求解不同位置處的視差圖,OpenCV提供了主流的BM,SGBM,GC三種匹配算法[11]。實(shí)驗(yàn)將選用這三種算法進(jìn)行測(cè)試,相機(jī)移動(dòng)100 mm采用一次條件下,測(cè)量直徑為60 mm,高為10 mm的工件如圖7所示,其中包括現(xiàn)場(chǎng)拍攝圖以及視差深度圖,部分實(shí)驗(yàn)測(cè)量數(shù)據(jù)見表1。
通過實(shí)驗(yàn)數(shù)據(jù)分析可知,相機(jī)在不同物距下進(jìn)行拍攝會(huì)影響深度和尺寸的計(jì)算,但在一定范圍內(nèi)能達(dá)到類似雙目的測(cè)距功能。其中,光照強(qiáng)度、背景紋理及顏色和視差匹配算法對(duì)實(shí)驗(yàn)誤差都有一定程度的影響,在不同環(huán)境下找到合適的參數(shù)和算法是后期工程應(yīng)用的重點(diǎn),如本實(shí)驗(yàn)環(huán)境下,物距為140~160 mm之間時(shí),測(cè)距和定位誤差較為準(zhǔn)確。
3? 結(jié)? 論
為了提高工業(yè)機(jī)器人工作柔性,工業(yè)上一般采用固定式攝像頭的方式進(jìn)行圖像處理,而本文創(chuàng)新地將單目相機(jī)安裝在機(jī)器人關(guān)節(jié)上進(jìn)行運(yùn)動(dòng)立體測(cè)距,進(jìn)一步提高了機(jī)器人的加工柔性。實(shí)驗(yàn)通過單目相機(jī)的運(yùn)動(dòng)進(jìn)行測(cè)距,一定程度上可以實(shí)現(xiàn)雙目相機(jī)測(cè)距功能。在生產(chǎn)應(yīng)用上,相機(jī)的移動(dòng)測(cè)距軌跡可以規(guī)劃到工件抓取軌跡內(nèi)進(jìn)行,從而實(shí)現(xiàn)工件的快速定位和抓取。此單目視覺測(cè)距方法降低了機(jī)器人視覺系統(tǒng)的開發(fā)難度和成本,在精度要求不嚴(yán)格的生產(chǎn)線中,具有較高的實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 李福東,季濤,徐德,等.基于雙目視覺與工業(yè)機(jī)器人的大型工件自動(dòng)上下料系統(tǒng)[J].機(jī)械設(shè)計(jì)與制造工程,2019,48(1):43?46.
[2] 伍錫如,黃國(guó)明,孫立寧.基于深度學(xué)習(xí)的工業(yè)分揀機(jī)器人快速視覺識(shí)別與定位算法[J].機(jī)器人,2016,38(6):711?719.
[3] 尹宏鵬,陳波,柴毅,等.基于視覺的目標(biāo)檢測(cè)與跟蹤綜述[J].自動(dòng)化學(xué)報(bào),2016,42(10):1466?1489.
[4] 李星云,李眾立,廖曉波.基于單目視覺的工業(yè)機(jī)器人定位系統(tǒng)的設(shè)計(jì)[J].機(jī)床與液壓,2015,43(9):35?38.
[5] 黃玉強(qiáng),葉磊.基于雙目視覺的目標(biāo)測(cè)距[J].汽車實(shí)用技術(shù),2017(2):148?151.
[6] 韓峰.基于SURF算法的單目轉(zhuǎn)雙目視覺定位[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(11):252?256.
[7] 羅丹,廖志賢.基于OpenCV的雙目立體視覺測(cè)距[J].大眾科技,2011(4):52?53.
[8] 秦保華,張海.基于OpenCV的雙目視覺標(biāo)定程序的開發(fā)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2007(8):142?144.
[9] SHEN Lin, YANG Jinhua, ZHAO Qun, et al. Research on measuring telephoto lens focal length by using image matching [J]. Journal of electronic measurement and instrument, 2010, 24(11): 1043?1047.
[10] 姚志生,許四祥,李天甲,等.基于雙目視覺的快速定位與測(cè)距方法[J].安徽工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,34(4):368?372.
[11] XU Jie. Analyzing and improving the tsai camera calibration method in machined vision [J]. Computer engineering & science, 2010, 32(4): 46?47.