吳蓬勃,張金燕,張冰玉,王拓
(1.石家莊郵電職業(yè)技術(shù)學(xué)院,河北石家莊,050021; 2. 河北工程技術(shù)學(xué)院,河北石家莊,050091)
近年來,隨著電子商務(wù)的迅猛發(fā)展,快件處理量與日俱增,對快遞包裹配送的速度和準(zhǔn)確性提出了更高的要求[1]??爝f處理中心是快遞網(wǎng)絡(luò)關(guān)鍵節(jié)點,其普遍采用交叉帶式分揀機、AGV(Automated Guided Vehicle,簡稱AGV)分揀小車等自動化分揀裝備,目前主要依靠人工來完成分揀系統(tǒng)的供件動作,大大降低了分揀效率,增加了企業(yè)的人工成本。
隨著機械臂技術(shù)、計算機視覺技術(shù)的不斷成熟,通過視覺識別物體位置,采用機械臂進行抓取的智能視覺抓取系統(tǒng)逐漸被各大企業(yè)所重視。本文通過樹莓派、相機和四軸機械臂設(shè)計了一套簡潔、高效的機械臂視覺抓取系統(tǒng),實現(xiàn)了物體的快速識別和抓取。
系統(tǒng)架構(gòu)圖如圖1所示,整個系統(tǒng)模擬了快遞分揀機自動供件的場景,系統(tǒng)主要由四部分組成:樹莓派、四軸機械臂、USB相機和傳輸帶。樹莓派通過USB連接相機,進行圖像采集和快遞包裹識別,此處采用不同顏色的積木模擬不同的快遞包裹。此外,樹莓派通過串口連接四軸機械臂,進行機械臂運動控制和抓取控制;通過IO口連接傳輸帶步進電機,控制傳輸帶的運動。整個系統(tǒng)工作流程為:首先,樹莓派通過相機識別物體放置區(qū)域的積木位置;其次,通過機械臂手眼標(biāo)定,將像素坐標(biāo)轉(zhuǎn)換為機械臂坐標(biāo),控制機械臂抓取積木并搬運到傳送帶上,模擬機械臂抓取快遞包裹搬運到自動分揀設(shè)備上這一業(yè)務(wù)流程。
圖1 系統(tǒng)架構(gòu)圖[2]
圖3 凸透鏡成像
相機采用小孔成像的原理來采集圖像(如圖2所示),為了增加物體的成像亮度,使用了透鏡(如圖3所示)。但是,透鏡的制作工藝會使成像產(chǎn)生多種形式的畸變,主要包括:徑向畸變、切向畸變。為了完整還原真實的圖像,提高機械臂抓取的精度,需要對相機進行畸變校正。
圖2 小孔成像
系統(tǒng)中包括四種坐標(biāo)系(如圖4所示),分別是:
圖4 四種坐標(biāo)系的關(guān)系
(1)世界坐標(biāo)系,Ow-XwYwZw:用于描述相機在物理世界的位置。
(2)相機坐標(biāo)系,Oc-XcYcZc:光心為原點。
(3)圖像坐標(biāo)系,O-xy:成像平面中點是原點。
(4)像素坐標(biāo)系,C-uv:圖像左上角是原點。
其中,P為物理世界中的一點,p為點P在圖像中的成像點。p點在圖像坐標(biāo)系中坐標(biāo)為(x,y),p點在像素坐標(biāo)系中坐標(biāo)為(u,v)。此外,f為相機焦距。
坐標(biāo)系轉(zhuǎn)換公式,如圖5所示。由于相機設(shè)計工藝問題,會造成相機成像與實際圖像不一致的現(xiàn)象。相機成像到實際圖像的轉(zhuǎn)換矩陣稱為相機內(nèi)參矩陣。相機外部環(huán)境或者安裝方式也會造成圖像失真,將世界坐標(biāo)到相機坐標(biāo)的轉(zhuǎn)換矩陣,稱為相機外參矩陣。
圖5 坐標(biāo)系轉(zhuǎn)換公式
由于從世界坐標(biāo)到相機坐標(biāo)的變換不會發(fā)生形變,只需進行旋轉(zhuǎn)和平移,所以相機外參矩陣主要包括:3×3旋轉(zhuǎn)矩陣R和1×3平移矩陣T。
相機內(nèi)參矩陣與焦距f、1個像素點x方向的尺寸dx和y方向的尺寸dy、像素坐標(biāo)原點C(u0,v0)相關(guān)。在圖5內(nèi)相機參矩陣中,fx為焦距f與dx的商,fy為焦距f與dy的商。
相機標(biāo)定的目標(biāo):通過獲取相機內(nèi)參、外參、畸變系數(shù),實現(xiàn)圖像校準(zhǔn)。在OpenCV中,相機標(biāo)定所使用的標(biāo)定圖案主要有:棋盤格、對稱圓形、ArUco板和ChArUco板等。其中,棋盤格圖案操作簡單、快速,標(biāo)定精度可滿足一般應(yīng)用場景的需求,所以本系統(tǒng)采用棋盤格圖案進行相機標(biāo)定,棋盤格為8行7列,每個方塊尺寸為27mm×27mm,通過A4紙打印圖案。
圖6 棋盤圖案圖像采集
將A4紙放置在相機圖像區(qū)域內(nèi),在確保A4紙不彎曲的情況下,調(diào)整A4紙在相機區(qū)域的位置、姿態(tài),采集不少于20張圖像,保存到樹莓派中。運行OpenCV官方相機校準(zhǔn)例程,獲取相機內(nèi)參矩陣、外參矩陣和畸變系數(shù)。
機械臂與相機的位置關(guān)系分為“eye in hand”和“eye to hand”[3],為提高抓取效率,本系統(tǒng)采用“eye to hand”方式,相機與機械臂分離,架設(shè)在抓取區(qū)域上部。
本系統(tǒng)的目標(biāo)是,通過視覺獲取物體圖像坐標(biāo),轉(zhuǎn)換為機械臂坐標(biāo),進而控制機械臂運動到指定位置進行物體抓取。所以,需要進行機械臂與相機的標(biāo)定,實現(xiàn)像素坐標(biāo)到機械臂坐標(biāo)的變換。在進行坐標(biāo)變換前,需要調(diào)用相機校準(zhǔn)中獲取的相機內(nèi)參矩陣、畸變系數(shù),對圖像進行校準(zhǔn)。
圖5的坐標(biāo)變換公式,在此簡化為圖7的公式。
圖7 像素與機械臂坐標(biāo)變換公式
圖7中,B為3個物理位置的機械臂笛卡爾坐標(biāo)(對應(yīng)圖5中的世界坐標(biāo)),需要手動獲??;A為經(jīng)過畸變校正后的圖像中3個位置的像素坐標(biāo)(對應(yīng)圖5中的像素坐標(biāo)),需通過程序獲?。籖為待求矩陣,需要通過實驗的方法獲取。
本系統(tǒng)通過修改OpenCV校準(zhǔn)程序,對標(biāo)定板的四個角點分別標(biāo)注為:紅、綠、藍、紫(如圖8所示),并獲取對應(yīng)的圖像坐標(biāo),選取其中3個點用于求解矩陣R。
圖8 標(biāo)定板上的四個像素點
相機、棋盤圖和機械臂的位置關(guān)系,如圖9所示。調(diào)整機械臂位置,使得機械臂末端可達到棋盤圖的最少3個角點。通過機械臂示教功能,控制機械臂到達3個角點位置;通過機械臂上位機軟件讀取3個角點位置的坐標(biāo),通過圖7公式可求出轉(zhuǎn)換矩陣R。
圖9 位置關(guān)系圖
圖像處理流程,如圖10所示。首先,通過相機采集圖像,通過相機內(nèi)參矩陣和畸變系數(shù)進行圖像校準(zhǔn)。其次,通過OpenCV對圖像進行處理,包括:高斯模糊(減少圖像噪聲以及降低細節(jié)層次)、RGB轉(zhuǎn)HSV(方便單一顏色的提?。⒏g(去除噪聲點)、圖像二值化;最后,獲取積木矩形外框中心點的像素坐標(biāo),圖像處理效果圖如圖11所示。獲得積木像素坐標(biāo)后,通過圖7公式,可以計算出機械臂坐標(biāo),從而可控制機械臂進行積木抓取。
圖10 圖像處理流程
圖11 圖像處理效果圖
將不同顏色的積木分別放置到抓取區(qū)域不同的位置,測試圖像識別和抓取效果,如圖12所示。經(jīng)過上百次測試,系統(tǒng)抓取準(zhǔn)確率達到了90%以上。
圖12 積木抓取測試
本文面向快遞分揀機自動供件場景,設(shè)計了一套基于視覺的機械臂抓取系統(tǒng),通過相機標(biāo)定、機械臂手眼標(biāo)定、OpenCV圖像處理等環(huán)節(jié),實現(xiàn)了積木的準(zhǔn)確識別和抓取。如果將系統(tǒng)中的2D相機,替換為3D深度相機[4-5],則可以實現(xiàn)堆積物體的機械臂抓取,將更加適配實際的應(yīng)用場景。