郁正綱 YU Zheng-gang;丁偉 DING Wei;李瑋 LI Wei
(①江蘇安方電力科技有限公司,泰州 225300;②國網江蘇省電力有限公司雙創中心,南京 210000)
在生產流水線中,工業機器人主要依靠示教或離線編程的形式來引導機械手抓取和放置工件,這種方式存在較大局限性,主要體現在兩個方面[1]:一是工作環境發生變化后,由于缺乏應變能力,機器人的操作范圍嚴重受限,導致任務中斷或失敗;如果工件在傳送過程中發生位置偏移,機器人依舊執行既定操作,則會降低工件放置的精確度。二是自動化水平偏低的工廠應用工業機器人參與生產流程,必須搭建配套的生產線,導致前期投資增加。隨著工業生產需求的多樣化,如何使工業機器人準確識別工件并引導機械手抓取工件已成為自動化生產領域面臨的挑戰之一。機器視覺技術具有精度高、信息量大、檢測范圍廣、開發潛能大等特點,將其應用于工業自動化中能夠快速精確識別工件、測量目標尺寸和位姿[2]。本研究針對工業機器人機械臂抓取過程中的工件識別與定位問題進行探究。
本研究選取M2S036 工業相機采集工件圖像,為滿足機器人抓取所需要的三維空間信息,必須構建小孔成像模型,將圖像投影至二維平面中,確定相機成像內外部參數,并運用算法計算目標姿態與空間位置。如圖1 所示。
圖1 小孔成像模型
假設重心坐標(u0,v0)和像素點的物理尺寸dx、dy,可以得到如下轉換關系式:
基于相同發射光心點O,將OOc作為攝像機的焦距f,通過矩陣轉換得到圖像坐標系oxy 與相機坐標系OcXcYcZc轉換關系式:
世界參考坐標系OwXwYwZw與相機坐標系構成OcXcYcZc存在剛體變換關系,可通過矩陣的齊次轉化得到兩者轉換關系式:
其中,R、T 分別表示旋轉矩陣、平移矢量,均屬于相機外參矩陣。
聯立上述公式可得到世界參考坐標系OwXwYwZw矩陣函數:
圖像傳感器的像素陣列為m×n,目標的長度Lx、寬度Ly,目標長邊像素點個數lx、寬邊像素點個數ly,得到公式[3]:
計算均值并將其帶入世界坐標矩陣函數中,即可得到目標三維空間坐標數據。
本文使用局部直方圖均衡化進行處理,具體流程為:首先,輸入原始圖像及其圖像灰度fj(j=0,1,…,L-1),計算灰度像素數量nj(j=0,1,…,L-1);其次,根據圖像灰度及灰度像素數量計算得到圖像直方圖Pf(fj)=nj/n,其中n 表示圖像總像素數量;再次,得到累積分布函數c(f),計算映射后的圖像灰度gj=INT[(gmax-gmin)c(f)+gmin+0.5];最后,統計像素灰度數量ni(i=0,1,…,p-1),得到直方圖Pg(gi)=ni/n,i=0,1,…,p-1。結合fj與gj的映射關系,得到的圖像直方圖呈均勻分布。
因此,本文采用隨機樹算法進行圖像特征點匹配,具體流程如圖2 所示。基于隨機樹的特征匹配算法原理為:建立隨機樹分類器Y,將圖像特征點匹配問題轉換為待匹配特征點與模板特征點集合C 中的哪個特征點相符Y(k)∈C={-1,1,2,…,N},如果Y(k)=-1 則表示匹配失敗。隨機樹為一顆二叉樹,從根節點開始,每個節點劃分兩個子節點,依據分類準則判斷輸入對象進入哪個子節點,從而完成特征點分類。
圖2 隨機樹算法流程圖
Harris 角點檢測法對于圖像變化具有較強的適應性和旋轉不變性,本文首先運用該方法對模板圖像特征點進行檢測,計算圖像窗口移動所產生的灰度變化,尋找角點并將其作為圖像特征點;然后以特征點為中心建立圖塊p(n×n),將所有圖塊輸入隨機樹,計算不同類型圖塊的統計概率;最后判斷圖塊走向,除特征點外,隨機選擇圖塊中的兩個像素點,對其灰度值進行比較,若m1>m2,則圖塊走向右節點,反之則走向左節點。選定比較像素點后,下一個圖塊進入該節點時,仍以之前選取的兩個像素點的比較為判斷準則。節點比較公式為:
式中,I(p,m2)為圖塊p 中像素點m 的灰度值。將所有圖塊輸入隨機樹后,在葉節點處得到相應的概率分布情況,即待檢測特征點的分類準則。
本文使用多棵隨機樹對不同區域的特征點進行分類,同時圖塊多大會降低分類準確性和計算效率,綜合考慮上述因素最終經過多次參數調整驗證,確定了隨機樹的棵數為30,層數為11,圖塊尺寸為17,建立隨機樹分類器,得到圖塊p 的概率分布:
其中,Y(p)為圖塊分類結果,c 為特征點類別,η(l,p)為圖塊到達第l 棵樹的葉節點,為到達葉節點中圖塊p 的數量和所有圖塊數比值。
最后,根據所有特征點圖塊的概率分布情況對待檢測點進行類別匹配,建立圖塊與模板圖像中某圖塊的匹配關系:
計算目標工件的圖像姿態,即求取目標工件主軸與圖像坐標系Xw軸的夾角θ,若夾角θ 位于Y 正方向則θ>0,若夾角θ 位于Y 負方向則θ<0。假設目標兩條平行邊上像素點坐標,計算該點斜率來確定其與主軸的夾角[4]:
本文采用張正友標定法獲得圖像坐標系與相機坐標系的轉換關系,使用Tsai-Lenz 標定法確定相機坐標系與機器人坐標系的轉換關系,然后基于隨機樹算法通過特征點的像素坐標、世界坐標求得目標工件的實際位姿,從而引導機械臂抓取工件。
本研究根據實驗需要搭建了單目視覺定位系統,該系統由ABB-IRB120 型工業機器人、Mecanum 輪移動平臺、Artcam-130mi-nir 工業相機、氣動手爪、控制器組成。實驗控制系統中,由上位機進行圖像處理和總體控制,工業相機接口為GigE,通過千兆以太網實現與上位機之間的通訊。
本研究將該算法與基于RANSAC 方法改進的SIFT算法性能進行對比。雜亂、傾斜、遮擋、陰暗四種情況下,兩種算法的特征匹配效果如圖3、圖4 所示。兩種算法的特征點匹配率以及匹配時間如表1 所示。
表1 隨機樹算法與改進SIFT 算法的特征點匹配結果
圖3 基于隨機樹的特征匹配效果圖
圖4 基于改進SIFT 算法的特征匹配效果圖
從表1 可以看出,在遮擋、陰暗環境下,隨機樹算法和改進SIFT 算法檢測到的特征點偏少,匹配率較低;在雜亂、傾斜環境下,兩種算法檢測到的特征點較多,運算時間較長。可以發現,隨機樹算法的匹配率更高、運算時間更短,原因在于該算法在目標識別之前就通過離線訓練對穩定特征點進行了篩選,剔除了不穩定的特征點;改進SIFT算法在線檢測特征點過多,并且直接進行在線匹配,經過RANSAC 算法剔除錯誤的匹配點后,導致匹配率較低。
使用ABB-IRB120 型工業機器人進行工件定位實驗。本研究共進行6 組抓取實驗,每次實驗中抓取不同位姿的工件,并記錄平均抓取位置誤差,實驗結果如表2 所示。同時,機械臂完成抓取作業后,需將工件放置在特定工位,共進行6 組放置實驗,記錄每次實驗的平均放置誤差,實驗結果如表3 所示。
表2 單目視覺系統抓取作業最大誤差
表3 單目視覺系統放置作業最大誤差
可以看出,單目視覺定位系統放置作業X、Y、Z 方向的最大誤差范圍為1.1~6.3mm,比抓取作業的精度稍高,這是因為進行放置作業時,指定工位點的標志圖案擺放整齊,相機采集到的正俯視圖與圖像模板的姿態相近,因此計算得到的工件位姿誤差較小。
本研究提出了一種基于隨機樹的特征匹配算法,實現對目標工件特征點的識別與定位,該算法較基于RANSAC改進的SIFT 算法相比具有更高的性能,匹配率更高、匹配速度更快。工件定位實驗結果表明單目視覺定位系統能夠精確識別與定位工件,較好地引導移動機械臂完成工件抓取與放置作業,對于提升工業生產效率具有重要意義。