,,
(上海交通大學機械與動力工程學院,上海 200240)
在傳統工業生產中大量應用的是基于傳送帶的生產模式,固定的流水線適合大規模量產,但面對不同產品的生產需求,傳統的生產線需要進行改造以適應新的裝配工藝和工序,存在適應性差的情況。同時增加了制造成本,影響到生產效益[1]。隨著工業4.0的提出,生產的個性化和靈活性要求生產線具有高度柔性的特點,可以靈活地處理組裝零件和工藝順序的變化[2]。同時無人駕駛運輸系統快速發展,通過將原本只是用作物料搬運的小車和機器人進行深度融合,打破現有的固定流水線,取而代之的是,載著工件的自動導航小車從一個機器人工位移動到另一個機器人工位,形成一條移動的生產線。這種方式可以適應個性化需求,提升生產線的柔性和自主性。
但由于自動導航小車每次到達機器人工位時的位置存在不確定性,給機器人的裝配任務引入了偏差,即便使用了定位板等輔助技術來提高自動導航小車的定位精度,仍存在3~5 cm的定位偏差,無法滿足精度要求高的任務,如自動打螺釘、插銷孔等[3]。為校正定位偏差,可運用機器視覺技術,通過在機器人的末端安裝工業相機,對到達機器人工位小車上的多個定位孔進行識別,并計算轉換到全局坐標系下,結合多組匹配點來計算小車實際位姿,進而調整機器人抓取的目標位置來實現既定的裝配任務。
在此,研究了利用機器視覺技術進行位置校正的各個關鍵環節,推導了目標位置的計算公式及小車位姿的校正算法。在此基礎上分析過程中可能引入的誤差,并提出了一系列消除偏差、提高精度的策略,最后通過對比實驗驗證了誤差消除算法的效果,為視覺引導下的機器人裝配工作提供了依據。
本文中的機器人視覺裝配系統包括工控機、工業機器人及末端執行器、工業相機及光源、自動導航移動平臺及其上定位孔等。系統整體如圖1所示。

圖1 機器人視覺裝配系統
視覺校正過程主要分為2步:第1步,從源圖像中識別出定位孔中心并計算定位孔的實際坐標;第2步,根據多個定位孔的位置計算小車實際位姿相對于基準位姿的轉換關系。
分析定位孔的識別和計算過程,其中涉及到了坐標在多個參考系間的轉換,過程如圖2所示。

圖2 坐標間的轉換關系
根據以上得到的每個定位孔在全局坐標系下的位置,通過多組匹配點校準計算最優的旋轉平移矩陣,即當前小車位姿相對于基準位姿的關系,并利用該矩陣計算裝配工件的實際位置,控制機器人到目標點進行裝配作業。
機器視覺系統中涉及多個坐標系間的轉換,包括像素坐標系(u,v),相機坐標系(xc,yc,zc)和世界坐標系(xw,yw,zw)[4]。各坐標系間的關系如圖3所示。

圖3 坐標系的關系轉換
相機標定的參數可以分為內參和外參。相機內參,顧名思義描述相機的內部屬性,如相機的焦距、像素點大小和相機畸變屬性等。內參用于像素坐標系和相機坐標系間的轉換。外參描述相機的空間位置,也即相機坐標相對于世界坐標系的旋轉和平移。
相機內參矩陣定義為
(1)
fx和fy為以像素為單位的焦距參數;γ為x軸和y軸間的傾斜系數,其值通常為0;u0和v0為主點,即理想條件下圖像的中點。相機內參的標定可以采用張正友標定法,對單平面棋盤格采集n幅圖像,每幅圖像中有棋盤格角點m個,利用多參數非線性系統優化問題的Levenberg-Marquardt算法[5]進行迭代求最優解。相機內參標定有成熟的算法和標定工具,根據極大似然估計得到的內參在相機定焦的情況下相當穩定。利用內參可以計算出目標物體在相機坐標系下的位置。計算公式為
(2)
相機外參的標定即手眼標定,涉及到相機、機器人基座、末端執行器和標定板坐標系之間的關系。根據相機是與機器人末端或是與基座固連,可以分為eye on hand和eye to hand 2種方式[6]。本文采用eye on hand模式,坐標系之間的關系如圖4所示。相機和機器人末端固定在一起,標定板和機器人基坐標系固定在一起。在這種關系下,機器人移動過程中任意2個位姿,標定板和底座的關系始終不變,求解的量為相機和機器人末端之間的關系。

圖4 手眼標定坐標系的轉換
本文使用arUco標定板,該標記的外圍都有1組黑色邊框,同時內部有確定該標記ID的二維矩陣,黑色的邊框能加速標記在圖像中的檢測速度,內部的二維編碼能唯一識別該標記,同時進行錯誤檢測和錯誤修復。標記的大小確定了內部矩陣的大小,例如4×4大小的標記有16個bit。其檢測結果返回圖片中4個角點的位置以及標記的ID號。利用OpenCV中的solvePnP函數可以得到標定板相對于相機坐標系的齊次矩陣。為了得到精確的手眼關系,相機在不同位姿對標定板拍攝17~20張圖片進行計算。任意2次拍攝滿足以下約束:
(4)

(5)
(6)

AX=XB
(7)
A為相鄰2次運動中機器人末端關節的變換關系;B為相鄰2次運動時相機坐標的相對運動。以上方程為手眼標定的最終求解方程,可以通過Tsai-Lenz方法[7]計算轉換矩陣X。求解得到結果用四元數q=[wxyz]T和向量t=[δxδyδz]T表示。其中四元數的定義滿足
|q|2=w2+x2+y2+z2=1
(8)
四元數轉換為旋轉矩陣的公式為
(9)
則相機坐標系和末端坐標系的手眼關系為
(10)
上一小節完成了定位孔在全局坐標系中坐標的計算推導。接著根據多個定位孔的計算結果,來估計小車實際位姿相對于基準位姿的旋轉平移矩陣。基準位姿和實際位姿如圖5所示,虛線部分表示AGV基準位姿及其4個定位孔的位置,實線部分表示當前AGV到達機器人工位時的實際位姿,十字形標記表示待裝配工件。

圖5 AGV實際位姿

(11)
對于所有匹配點,滿足
(12)
簡記為Q=MP,求解得M=QP-1。剛性變換矩陣M包含6個參數,通過視覺識別并計算得到的4個定位孔位置包含12個已知量,所以存在冗余,且可以得到多組可行解。將每一對匹配點的歐氏距離作為誤差目標函數,利用SVD分解求出R和T,使得誤差目標函數最小。
在得到M的最優估計后,利用該旋轉平移矩陣計算出待裝配工件的實際位置,以此作為視覺校正后的目標位置控制機器人進行裝配工作。
本節分析在計算目標位置的各階段中可能引入誤差的情形。
首先,相機獲取到1張原始圖像,應用機器視覺算法從源圖像中找到定位孔的中心位置。本文設計了一種基于特征的模板匹配算法,利用邊緣的梯度方向作為特征,訓練出一系列不同角度不同尺寸的模板。在識別時將圖像中的特征與這一系列模板進行匹配,根據匹配率篩選出符合條件的模板。可能會出現多個相似模板同時匹配的情況,例如大小十分接近,轉角存在微小差異的模板,如圖6所示。若從其中隨機取1個模板,雖然和實際的中心位置只有幾個像素的偏差,但這些誤差經過相機內參和外參的傳遞,在實際計算目標位置中會被放大,甚至會因此造成裝配任務的失敗。

圖6 多個相似模板同時匹配上
其次,手眼標定計算相機外參齊次矩陣的結果受標定過程中采樣點的選擇影響大,包括拍攝標定板采樣點的數量及相對位置關系等。計算手眼標定矩陣采用Tsai提出的旋轉軸-旋轉角方法[7],在優化階段以匹配點歐氏距離作為誤差目標函數,其中用到了最小二乘法的思想。如果某一次標定板局部或全部偏出相機視野則會出現標定板識別錯誤,導致數據不可用,1組點的明顯偏離會對擬合結果造成非常大的偏差。
針對上一小節中的誤差分析,本文提出相應的誤差消除策略,減小可能引入的誤差,提高目標位置計算的精度。
首先,在圖像識別階段,利用模板匹配篩選出1組特征匹配度高的模板后,利用圓孔識別的特殊性,選擇最靠近中心尺寸最小的圓作為識別結果,如圖7所示。

圖7 對多個模板進行優選
此外,如果在視野內出現多個圓孔干擾項,如待裝配工件上的螺釘孔,則根據孔的位置與相機視野中心的距離,并結合識別孔與實際定位孔的大小差別來進行干擾項的過濾。
其次,手眼標定時增加拍攝標定板的數量,用更多的輸入點來優化外參矩陣的準確度。同時調整機器人不同末端姿態,改變相機和標定板之間的旋轉和平移關系。例如,對于每一組采樣點的選擇,控制機器人末端的位移達到5 mm,旋轉角度達到10°,從不同視角進行拍攝。對于誤檢的標定板,采用RANSAC算法通過多次迭代將不匹配的輸入點進行剔除,最后利用可靠的位置點進行手眼標定矩陣的計算。
由于本文應用場景的特殊性,即AGV小車的高度在過程中不會發生變化,所以定位孔在z方向上恒為常數,故位姿校正可以簡化為2個平面間的剛性變換過程。三維場景退化為二維后,矩陣M中需要確定的參數縮減到3個,即1個旋轉角和2個平移量。同時,數據流的傳遞過程也可以得到簡化,如圖8所示,直接從相機坐標系轉換到全局坐標系。

圖8 二維空間下的坐標轉換關系
以上做法的優勢有2點:一是省去了中間轉換到機器人基坐標系再轉換到世界坐標系的過程,簡化了問題的復雜度和計算的過程;二是由于坐標系的直接轉換而帶來誤差的減小,同時保證了精度的可靠性。
這種情況下,相機外參的標定即為相機坐標系x-y平面到世界坐標系x-y平面的剛體變換矩陣的求解。如圖9所示,利用機器人定位的高精度,控制機器人分別在x方向和y方向上移動指定的距離,分別求出定位孔在相機坐標系下的位置,以此計算2個平面間的變換矩陣。

圖9 相機坐標系與世界坐標系的關系
Mw=RMc
(13)
容易計算求解得到旋轉矩陣R。通過該矩陣可將定位孔的坐標從相機坐標系的x-y平面直接轉換到全局坐標系x-y平面下。在此基礎上進行后續計算,整個視覺校正過程得到了簡化,同時保證了定位精度。
通過實驗,對以上提出的提高視覺定位精度的方法進行驗證。實驗原理如圖10所示,通過測量視覺校正計算后得到位置P′和實際位置P在世界坐標系x-y平面上的偏差,來反映視覺校正結果的精確度。

圖10 測量視覺校正結果的偏差
本文設計了2組實驗,一組是采用普通視覺標定流程得到的參數,另一組是采用誤差消除策略改進后標定得到的參數。按上文反映精度的方法測量視覺校正得到的位置與實際位置的偏差值,將最終的偏差結果表現在同一張圖中,如圖11所示,橫坐標為x方向上的偏差,縱坐標為y方向上的偏差。

圖11 消除偏差策略實驗效果
圖11中,圓圈表示直接用標定結果計算的偏差,星號表示誤差消除算法改進后的結果。可以看出偏差問題得到了明顯的改善,直接標定結果的偏差值均方根為1.428 9 mm,改進后的偏差值均方根為0.188 1 mm。2組數據在y方向上偏差分布均勻,在x方向上多數出現偏大,分析原因可能是相機坐標系z軸與世界坐標系z軸的平行程度存在微小偏差導致。同時測量數據顯示,應用誤差消除算法后定位偏差可以控制在0.5 mm以內,滿足精度要求高的裝配需求。
通過機器人視覺系統,完成裝配目標位置的精確定位和校正。在分析了相機標定原理的基礎上,通過內參標定和手眼標定計算出各坐標系間轉換的齊次矩陣。分析坐標從源圖像到世界坐標系的計算過程中可能引入的誤差,并提出相應的誤差消除策略。針對定位孔識別的特殊性,提出了簡化計算模型和坐標轉換過程的算法,最后通過實驗驗證了誤差消除策略的可行性,精度提升效果明顯,為機器人視覺裝配工作提供了依據。