吳蓬勃,張金燕,張冰玉,王拓
(1.石家莊郵電職業技術學院,河北石家莊,050021; 2. 河北工程技術學院,河北石家莊,050091)
近年來,隨著電子商務的迅猛發展,快件處理量與日俱增,對快遞包裹配送的速度和準確性提出了更高的要求[1]。快遞處理中心是快遞網絡關鍵節點,其普遍采用交叉帶式分揀機、AGV(Automated Guided Vehicle,簡稱AGV)分揀小車等自動化分揀裝備,目前主要依靠人工來完成分揀系統的供件動作,大大降低了分揀效率,增加了企業的人工成本。
隨著機械臂技術、計算機視覺技術的不斷成熟,通過視覺識別物體位置,采用機械臂進行抓取的智能視覺抓取系統逐漸被各大企業所重視。本文通過樹莓派、相機和四軸機械臂設計了一套簡潔、高效的機械臂視覺抓取系統,實現了物體的快速識別和抓取。
系統架構圖如圖1所示,整個系統模擬了快遞分揀機自動供件的場景,系統主要由四部分組成:樹莓派、四軸機械臂、USB相機和傳輸帶。樹莓派通過USB連接相機,進行圖像采集和快遞包裹識別,此處采用不同顏色的積木模擬不同的快遞包裹。此外,樹莓派通過串口連接四軸機械臂,進行機械臂運動控制和抓取控制;通過IO口連接傳輸帶步進電機,控制傳輸帶的運動。整個系統工作流程為:首先,樹莓派通過相機識別物體放置區域的積木位置;其次,通過機械臂手眼標定,將像素坐標轉換為機械臂坐標,控制機械臂抓取積木并搬運到傳送帶上,模擬機械臂抓取快遞包裹搬運到自動分揀設備上這一業務流程。

圖1 系統架構圖[2]

圖3 凸透鏡成像
相機采用小孔成像的原理來采集圖像(如圖2所示),為了增加物體的成像亮度,使用了透鏡(如圖3所示)。但是,透鏡的制作工藝會使成像產生多種形式的畸變,主要包括:徑向畸變、切向畸變。為了完整還原真實的圖像,提高機械臂抓取的精度,需要對相機進行畸變校正。

圖2 小孔成像
系統中包括四種坐標系(如圖4所示),分別是:

圖4 四種坐標系的關系
(1)世界坐標系,Ow-XwYwZw:用于描述相機在物理世界的位置。
(2)相機坐標系,Oc-XcYcZc:光心為原點。
(3)圖像坐標系,O-xy:成像平面中點是原點。
(4)像素坐標系,C-uv:圖像左上角是原點。
其中,P為物理世界中的一點,p為點P在圖像中的成像點。p點在圖像坐標系中坐標為(x,y),p點在像素坐標系中坐標為(u,v)。此外,f為相機焦距。
坐標系轉換公式,如圖5所示。由于相機設計工藝問題,會造成相機成像與實際圖像不一致的現象。相機成像到實際圖像的轉換矩陣稱為相機內參矩陣。相機外部環境或者安裝方式也會造成圖像失真,將世界坐標到相機坐標的轉換矩陣,稱為相機外參矩陣。

圖5 坐標系轉換公式
由于從世界坐標到相機坐標的變換不會發生形變,只需進行旋轉和平移,所以相機外參矩陣主要包括:3×3旋轉矩陣R和1×3平移矩陣T。
相機內參矩陣與焦距f、1個像素點x方向的尺寸dx和y方向的尺寸dy、像素坐標原點C(u0,v0)相關。在圖5內相機參矩陣中,fx為焦距f與dx的商,fy為焦距f與dy的商。
相機標定的目標:通過獲取相機內參、外參、畸變系數,實現圖像校準。在OpenCV中,相機標定所使用的標定圖案主要有:棋盤格、對稱圓形、ArUco板和ChArUco板等。其中,棋盤格圖案操作簡單、快速,標定精度可滿足一般應用場景的需求,所以本系統采用棋盤格圖案進行相機標定,棋盤格為8行7列,每個方塊尺寸為27mm×27mm,通過A4紙打印圖案。

圖6 棋盤圖案圖像采集
將A4紙放置在相機圖像區域內,在確保A4紙不彎曲的情況下,調整A4紙在相機區域的位置、姿態,采集不少于20張圖像,保存到樹莓派中。運行OpenCV官方相機校準例程,獲取相機內參矩陣、外參矩陣和畸變系數。
機械臂與相機的位置關系分為“eye in hand”和“eye to hand”[3],為提高抓取效率,本系統采用“eye to hand”方式,相機與機械臂分離,架設在抓取區域上部。
本系統的目標是,通過視覺獲取物體圖像坐標,轉換為機械臂坐標,進而控制機械臂運動到指定位置進行物體抓取。所以,需要進行機械臂與相機的標定,實現像素坐標到機械臂坐標的變換。在進行坐標變換前,需要調用相機校準中獲取的相機內參矩陣、畸變系數,對圖像進行校準。
圖5的坐標變換公式,在此簡化為圖7的公式。

圖7 像素與機械臂坐標變換公式
圖7中,B為3個物理位置的機械臂笛卡爾坐標(對應圖5中的世界坐標),需要手動獲取;A為經過畸變校正后的圖像中3個位置的像素坐標(對應圖5中的像素坐標),需通過程序獲取;R為待求矩陣,需要通過實驗的方法獲取。
本系統通過修改OpenCV校準程序,對標定板的四個角點分別標注為:紅、綠、藍、紫(如圖8所示),并獲取對應的圖像坐標,選取其中3個點用于求解矩陣R。

圖8 標定板上的四個像素點
相機、棋盤圖和機械臂的位置關系,如圖9所示。調整機械臂位置,使得機械臂末端可達到棋盤圖的最少3個角點。通過機械臂示教功能,控制機械臂到達3個角點位置;通過機械臂上位機軟件讀取3個角點位置的坐標,通過圖7公式可求出轉換矩陣R。

圖9 位置關系圖
圖像處理流程,如圖10所示。首先,通過相機采集圖像,通過相機內參矩陣和畸變系數進行圖像校準。其次,通過OpenCV對圖像進行處理,包括:高斯模糊(減少圖像噪聲以及降低細節層次)、RGB轉HSV(方便單一顏色的提取)、腐蝕(去除噪聲點)、圖像二值化;最后,獲取積木矩形外框中心點的像素坐標,圖像處理效果圖如圖11所示。獲得積木像素坐標后,通過圖7公式,可以計算出機械臂坐標,從而可控制機械臂進行積木抓取。

圖10 圖像處理流程

圖11 圖像處理效果圖
將不同顏色的積木分別放置到抓取區域不同的位置,測試圖像識別和抓取效果,如圖12所示。經過上百次測試,系統抓取準確率達到了90%以上。

圖12 積木抓取測試
本文面向快遞分揀機自動供件場景,設計了一套基于視覺的機械臂抓取系統,通過相機標定、機械臂手眼標定、OpenCV圖像處理等環節,實現了積木的準確識別和抓取。如果將系統中的2D相機,替換為3D深度相機[4-5],則可以實現堆積物體的機械臂抓取,將更加適配實際的應用場景。