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