林強強,金守峰,馬秋瑞,張 浩
(1.西安工程大學 機電工程學院,陜西 西安 710048;2. 西安工程大學 服裝與藝術設計學院,陜西 西安 710048)
隨著現(xiàn)代先進制造技術的進步,工業(yè)機器人在生產(chǎn)加工過程中扮演著越來越重要的角色,并且不斷地向著智能化和柔性化方向發(fā)展[1-3]。機器視覺使工業(yè)機器人具有了視覺感知的能力[4-5]。徐博凡等人基于FANUC機器人平臺,研發(fā)了一套視覺引導系統(tǒng),提高了機器人柔性化抓取能力[6];李鵬飛等應用雙目相機作為引導,實現(xiàn)了機器人對織物的自動抓取[7];李振雨等應用神經(jīng)網(wǎng)絡算法,使用改進的Hebb學習規(guī)則提高了識別的精度[8];康存鋒等應用機器視覺完成了對并聯(lián)機器人的引導,實現(xiàn)了穩(wěn)定可靠的抓取[9];韋攀東等人應用多關節(jié)機器人實現(xiàn)了柔軟織物的抓取[10]。工業(yè)機器人對于固定未知的工件具有較好的抓取精度,但是,實際生產(chǎn)中,工件位置的隨機擺放,將導致機器人抓取失敗,影響工作效率。
針對工件位置隨機擺放,影響抓取精度和效率等問題,提出了基于圖像旋轉(zhuǎn)和灰度投影的工件抓取方法。首先對采集的圖像經(jīng)過預處理后,用雙線性插值法進行旋轉(zhuǎn)校正,在得到的校正圖后應用Canny算子提取零件的邊緣,最后對邊緣圖像灰度投影,得到工件的測量尺寸,從而實現(xiàn)定位與測量。
(1)
圖 1夾角計算模型Fig.1 Angle calculation model
在實際的計算過程中,經(jīng)過二值化和邊緣檢測等一系列預處理后,如圖1所示長形工件的邊緣則被置為1,其余區(qū)域則置為0。選取圖形的中點P為起始點,向右尋找像素值為1的點,則該點為旋轉(zhuǎn)基準點O,為避免圖像噪聲的影響,需要驗證該點周圍的像素點是否為1,若不為1則向下一行繼續(xù)尋找,從而可確定基準點O的位置;得到O點后,向y軸的方向搜索,直到像素值變?yōu)?,則為A點的位置;B點為x正半上軸隨機一點。
在機器人抓取工件時,需要調(diào)整末端手爪的位姿來準確地抓取工件,提高抓取的精度以及效率。因此可通過建立旋轉(zhuǎn)模型來求取工件與水平方向的夾角。圖像旋轉(zhuǎn)是一種常用的數(shù)字圖像處理技術,已廣泛應用于各個領域[11-12]。
由于在灰度投影時,投影的零件圖像應處于水平或者豎直狀態(tài),因而需要對采集的圖像做旋轉(zhuǎn)校正處理。如圖2所示,旋轉(zhuǎn)是指將圖像中所有的像素(基準點除外)按給定的角度沿著圓弧方向逆時針或者順時針旋轉(zhuǎn)。(x0,y0)是原始圖像的坐標點,(x,y)是旋轉(zhuǎn)后圖像坐標點,R是(x0,y0)到原點的距離[13-15]。
根據(jù)圖2中的三角關系可得
(2)
旋轉(zhuǎn)后
(3)
圖 2圖像旋轉(zhuǎn)模型Fig.2 Image rotation model
聯(lián)立式(2),(3)后寫成矩陣形式
(4)
在進行位圖旋轉(zhuǎn)時,確定旋轉(zhuǎn)后的位圖大小后,可以確定旋轉(zhuǎn)之后位圖矩形區(qū)域,需要訪問該區(qū)域的每一個坐標,以獲得該坐標對應于源位圖的坐標,最后獲得該坐標對應于原位圖坐標點處的像素值。因此,在得到式(4)的旋轉(zhuǎn)矩陣后,需要做逆運算,逆運算矩陣如式(5)所示。
(5)
由于圖像坐標系原點在左上角,因此需要與實際數(shù)學坐標系進行坐標系轉(zhuǎn)換。假設位圖的寬度和高度分別為W和H,則圖像坐標(x0,y0)與數(shù)學坐標(x,y)的關系為
(6)
逆運算關系為
(7)
旋轉(zhuǎn)需要再將數(shù)學坐標轉(zhuǎn)換為圖像坐標,設旋轉(zhuǎn)后圖像的寬度和高度分別為W1和H1,則旋轉(zhuǎn)矩陣和逆運算矩陣為
(8)
(9)
整個旋轉(zhuǎn)過程為:(1)將原始圖像的坐標轉(zhuǎn)換為數(shù)學坐標;(2)通過旋轉(zhuǎn)公式將圖像進行旋轉(zhuǎn);(3)將旋轉(zhuǎn)后的數(shù)學坐標轉(zhuǎn)換為圖像坐標。
旋轉(zhuǎn)過程矩陣變換為
(10)
式中:A=-0.5Wcosθ+0.5Hsinθ+0.5W1;
B=-0.5Wsinθ-0.5Hcosθ+0.5H1.
由于旋轉(zhuǎn)后圖像的坐標不是整數(shù),故旋轉(zhuǎn)后必須對像素點灰度進行插值運算。常用的插值方法有最近鄰法、雙線性插值法和雙三插值法等3種[16-17]。最近鄰插值法操作簡單,運算速度高,但效果較差,圖像容易模糊;雙三插值法速度慢,但圖像質(zhì)量很高;綜合比較后,本文采用比較適中的雙線性插值法,對圖像進行插值運算。
雙線性插值原理如圖3所示,利用(X,Y)處鄰近的4個灰度值,計算(X,Y)處的灰度值。設4個鄰近像素,為A,B,C,D,其坐標分別為(i,j),(i+1,j),(i,j+1),(i+1,j+1),灰度值分別為g(A),g(B),g(C),g(D),首先計算E,F(xiàn)點處的灰度值g(E) ,g(F)
圖 3雙線性插值Fig.3 Bilinear interpolation g(E)= (X-i)[g(B)-g(A)]+g(A)= (i+1-X)g(A)+ (X-i)g(B)
(11)
g(F)= (X-i)[g(D)-g(C)]+g(C)=
(i+1-X)g(C)+
(X-i)g(D)
(12)
則(X,Y)處的灰度值為
g(X,Y)= (Y-j)[g(F)-g(E)]-g(E)=
(j+1-Y)g(E)+
(Y-j)g(E)
(13)
經(jīng)過計算,圖1中的圖像與x軸的夾角為32.149 3°,將此圖像經(jīng)過旋轉(zhuǎn)校正后得到水平的軸邊緣檢測圖。
經(jīng)過旋轉(zhuǎn)后的圖像與水平方向的夾角近似于0°,為了快速得到工件的尺寸,因此采用灰度投影的方法測量軸徑。灰度投影算法是利用圖像灰度曲線進行圖像分析的一種方法,由于只需對圖像行列做投影運算,因此,在減少計算量的同時也提高了運算速度。設經(jīng)過旋轉(zhuǎn)校正后的圖像為I(x,y),大小為M×N,按式(14)對其進行圖像行、列像素灰度值累加投影[18-19]。
(14)
式中:fk(i,j)為圖像中(i,j)點的灰度值;Ck(j)為圖像中第j列像素灰度值的累加投影;Rk(i)為圖像中第i行像素灰度值的累加投影。對校正后軸邊緣檢測圖像做行投影,得到圖4的投影曲線。從圖4可得,投影曲線的峰值位置即為軸的邊緣處,計算兩峰值位置的坐標差值,即為軸的直徑大小。
圖 4投影曲線圖Fig.4 Projection curve
Dobot機械臂、工業(yè)相機及計算機搭建的機器人視覺抓取實驗平臺如圖5所示,Dobot機械臂為四軸四自由度的機器人,手爪為氣動機械手爪,滑軌有效行程為0~1 000 mm,Dobot機械臂通過支撐板安裝在滑軌上,可實現(xiàn)移動抓取。工業(yè)相機為AVT-GE相機,分辨率為1 024×1 024,最大幀頻為59幀/s,使用鏡頭為Computar手動光圈鏡頭,焦距25 mm。
通過以上計算所得的數(shù)據(jù)都以像素(pixel)為單位,因而需要通過相機標定轉(zhuǎn)換為以mm為單位的數(shù)值。實驗過程中,首先采集不同尺寸的標準量塊。假定量塊為P(mm),經(jīng)過圖像處理之后得到相應像素數(shù)為M,可計算物面分辨率K=P/M。采用20 mm,30 mm,40 mm,50 mm的量塊進行標定,實驗之后以計算出多組物面分辨率的平均值作為機器視覺系統(tǒng)的物面分辨率。標定實驗數(shù)據(jù)如表1所示。
圖 5機器人抓取系統(tǒng)Fig.5 Robotic grab system表 1標定實驗數(shù)據(jù)Table 1 Calibration experiment data
量塊規(guī)格量塊尺寸/mm標定像素/px物面分辨率/(mm·px-1) 20201030.194 2 30301520.197 4 40402040.196 1 50502530.197 6
根據(jù)表1中標定的物面分辨率,計算得到物面分辨率的均值K:
0.196 3(mm/px)
表 2夾角計算Table 2 Angle calculation result
由表2可知,建立的旋轉(zhuǎn)模型校正誤差保持在±2°以內(nèi)。由于采用灰度投影的計算方式,累加投影曲線對于圖片的旋轉(zhuǎn)誤差并不敏感,因此建立的旋轉(zhuǎn)模型可以滿足本文的計算要求。其中20°和60°的軸旋轉(zhuǎn)結(jié)果如圖6所示。
(a) 20°工件原始圖 (b) 旋轉(zhuǎn)校正圖
(c) 60°工件原始圖 (d) 旋轉(zhuǎn)校正圖圖 6部分工件校正圖Fig.6 Correction chart of parts of the workpiece
從表3可以看出,除編號2的軸徑測量值超出了實際的軸徑誤差外,其余測量值均在誤差范圍內(nèi)。實際測量值與計算值的誤差也保持在0.2 mm以內(nèi),在精度要求不高的生產(chǎn)環(huán)境中,可以滿足實際識別與定位要求。
在工件的識別與定位過程中,對于旋轉(zhuǎn)角的計算存在±2°的誤差,因而導致在投影計算峰值時出現(xiàn)了誤差,計算值與實際的軸徑誤差經(jīng)過計算為0.134 1 mm。而在機器人識別抓取的過程中,這個誤差可以滿足抓取要求,并不會影響抓取精度,因而本文提出的方法可以應用于實際生產(chǎn)。
(1) 建立了旋轉(zhuǎn)校正模型,在提取散放工件邊緣輪廓特征點的基礎上,通過坐標轉(zhuǎn)換、雙線性插值計算工件與水平方向的夾角,實現(xiàn)工件的校正。所得夾角可用于機器人手爪位姿的調(diào)整,便于快速抓取。
(2) 提出了工件尺寸測量的灰度投影方法,對校正后的工件邊緣輪廓進行行投影,查詢投影曲線的峰值,峰值點所對應的像素坐標差值為工件的像素尺寸,結(jié)合標定參數(shù)得到實際尺寸,根據(jù)工件尺寸進行機器人手爪開合大小的調(diào)整。
(3) 以Dobot機械臂構(gòu)建了機器人視覺抓取實驗平臺,對本文方法進行驗證,實驗結(jié)果表明該方法校正角度的誤差控制在2°以內(nèi),測量尺寸誤差控制在0.5 mm以內(nèi),達到機器人末端手爪的位姿和手抓開合的調(diào)整精度。