,,
(上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院,上海 200240)
在傳統(tǒng)工業(yè)生產(chǎn)中大量應(yīng)用的是基于傳送帶的生產(chǎn)模式,固定的流水線適合大規(guī)模量產(chǎn),但面對不同產(chǎn)品的生產(chǎn)需求,傳統(tǒng)的生產(chǎn)線需要進(jìn)行改造以適應(yīng)新的裝配工藝和工序,存在適應(yīng)性差的情況。同時(shí)增加了制造成本,影響到生產(chǎn)效益[1]。隨著工業(yè)4.0的提出,生產(chǎn)的個(gè)性化和靈活性要求生產(chǎn)線具有高度柔性的特點(diǎn),可以靈活地處理組裝零件和工藝順序的變化[2]。同時(shí)無人駕駛運(yùn)輸系統(tǒng)快速發(fā)展,通過將原本只是用作物料搬運(yùn)的小車和機(jī)器人進(jìn)行深度融合,打破現(xiàn)有的固定流水線,取而代之的是,載著工件的自動(dòng)導(dǎo)航小車從一個(gè)機(jī)器人工位移動(dòng)到另一個(gè)機(jī)器人工位,形成一條移動(dòng)的生產(chǎn)線。這種方式可以適應(yīng)個(gè)性化需求,提升生產(chǎn)線的柔性和自主性。
但由于自動(dòng)導(dǎo)航小車每次到達(dá)機(jī)器人工位時(shí)的位置存在不確定性,給機(jī)器人的裝配任務(wù)引入了偏差,即便使用了定位板等輔助技術(shù)來提高自動(dòng)導(dǎo)航小車的定位精度,仍存在3~5 cm的定位偏差,無法滿足精度要求高的任務(wù),如自動(dòng)打螺釘、插銷孔等[3]。為校正定位偏差,可運(yùn)用機(jī)器視覺技術(shù),通過在機(jī)器人的末端安裝工業(yè)相機(jī),對到達(dá)機(jī)器人工位小車上的多個(gè)定位孔進(jìn)行識別,并計(jì)算轉(zhuǎn)換到全局坐標(biāo)系下,結(jié)合多組匹配點(diǎn)來計(jì)算小車實(shí)際位姿,進(jìn)而調(diào)整機(jī)器人抓取的目標(biāo)位置來實(shí)現(xiàn)既定的裝配任務(wù)。
在此,研究了利用機(jī)器視覺技術(shù)進(jìn)行位置校正的各個(gè)關(guān)鍵環(huán)節(jié),推導(dǎo)了目標(biāo)位置的計(jì)算公式及小車位姿的校正算法。在此基礎(chǔ)上分析過程中可能引入的誤差,并提出了一系列消除偏差、提高精度的策略,最后通過對比實(shí)驗(yàn)驗(yàn)證了誤差消除算法的效果,為視覺引導(dǎo)下的機(jī)器人裝配工作提供了依據(jù)。
本文中的機(jī)器人視覺裝配系統(tǒng)包括工控機(jī)、工業(yè)機(jī)器人及末端執(zhí)行器、工業(yè)相機(jī)及光源、自動(dòng)導(dǎo)航移動(dòng)平臺及其上定位孔等。系統(tǒng)整體如圖1所示。
圖1 機(jī)器人視覺裝配系統(tǒng)
視覺校正過程主要分為2步:第1步,從源圖像中識別出定位孔中心并計(jì)算定位孔的實(shí)際坐標(biāo);第2步,根據(jù)多個(gè)定位孔的位置計(jì)算小車實(shí)際位姿相對于基準(zhǔn)位姿的轉(zhuǎn)換關(guān)系。
分析定位孔的識別和計(jì)算過程,其中涉及到了坐標(biāo)在多個(gè)參考系間的轉(zhuǎn)換,過程如圖2所示。
圖2 坐標(biāo)間的轉(zhuǎn)換關(guān)系
根據(jù)以上得到的每個(gè)定位孔在全局坐標(biāo)系下的位置,通過多組匹配點(diǎn)校準(zhǔn)計(jì)算最優(yōu)的旋轉(zhuǎn)平移矩陣,即當(dāng)前小車位姿相對于基準(zhǔn)位姿的關(guān)系,并利用該矩陣計(jì)算裝配工件的實(shí)際位置,控制機(jī)器人到目標(biāo)點(diǎn)進(jìn)行裝配作業(yè)。
機(jī)器視覺系統(tǒng)中涉及多個(gè)坐標(biāo)系間的轉(zhuǎn)換,包括像素坐標(biāo)系(u,v),相機(jī)坐標(biāo)系(xc,yc,zc)和世界坐標(biāo)系(xw,yw,zw)[4]。各坐標(biāo)系間的關(guān)系如圖3所示。
圖3 坐標(biāo)系的關(guān)系轉(zhuǎn)換
相機(jī)標(biāo)定的參數(shù)可以分為內(nèi)參和外參。相機(jī)內(nèi)參,顧名思義描述相機(jī)的內(nèi)部屬性,如相機(jī)的焦距、像素點(diǎn)大小和相機(jī)畸變屬性等。內(nèi)參用于像素坐標(biāo)系和相機(jī)坐標(biāo)系間的轉(zhuǎn)換。外參描述相機(jī)的空間位置,也即相機(jī)坐標(biāo)相對于世界坐標(biāo)系的旋轉(zhuǎn)和平移。
相機(jī)內(nèi)參矩陣定義為
(1)
fx和fy為以像素為單位的焦距參數(shù);γ為x軸和y軸間的傾斜系數(shù),其值通常為0;u0和v0為主點(diǎn),即理想條件下圖像的中點(diǎn)。相機(jī)內(nèi)參的標(biāo)定可以采用張正友標(biāo)定法,對單平面棋盤格采集n幅圖像,每幅圖像中有棋盤格角點(diǎn)m個(gè),利用多參數(shù)非線性系統(tǒng)優(yōu)化問題的Levenberg-Marquardt算法[5]進(jìn)行迭代求最優(yōu)解。相機(jī)內(nèi)參標(biāo)定有成熟的算法和標(biāo)定工具,根據(jù)極大似然估計(jì)得到的內(nèi)參在相機(jī)定焦的情況下相當(dāng)穩(wěn)定。利用內(nèi)參可以計(jì)算出目標(biāo)物體在相機(jī)坐標(biāo)系下的位置。計(jì)算公式為
(2)
相機(jī)外參的標(biāo)定即手眼標(biāo)定,涉及到相機(jī)、機(jī)器人基座、末端執(zhí)行器和標(biāo)定板坐標(biāo)系之間的關(guān)系。根據(jù)相機(jī)是與機(jī)器人末端或是與基座固連,可以分為eye on hand和eye to hand 2種方式[6]。本文采用eye on hand模式,坐標(biāo)系之間的關(guān)系如圖4所示。相機(jī)和機(jī)器人末端固定在一起,標(biāo)定板和機(jī)器人基坐標(biāo)系固定在一起。在這種關(guān)系下,機(jī)器人移動(dòng)過程中任意2個(gè)位姿,標(biāo)定板和底座的關(guān)系始終不變,求解的量為相機(jī)和機(jī)器人末端之間的關(guān)系。
圖4 手眼標(biāo)定坐標(biāo)系的轉(zhuǎn)換
本文使用arUco標(biāo)定板,該標(biāo)記的外圍都有1組黑色邊框,同時(shí)內(nèi)部有確定該標(biāo)記ID的二維矩陣,黑色的邊框能加速標(biāo)記在圖像中的檢測速度,內(nèi)部的二維編碼能唯一識別該標(biāo)記,同時(shí)進(jìn)行錯(cuò)誤檢測和錯(cuò)誤修復(fù)。標(biāo)記的大小確定了內(nèi)部矩陣的大小,例如4×4大小的標(biāo)記有16個(gè)bit。其檢測結(jié)果返回圖片中4個(gè)角點(diǎn)的位置以及標(biāo)記的ID號。利用OpenCV中的solvePnP函數(shù)可以得到標(biāo)定板相對于相機(jī)坐標(biāo)系的齊次矩陣。為了得到精確的手眼關(guān)系,相機(jī)在不同位姿對標(biāo)定板拍攝17~20張圖片進(jìn)行計(jì)算。任意2次拍攝滿足以下約束:
(4)
(5)
(6)
AX=XB
(7)
A為相鄰2次運(yùn)動(dòng)中機(jī)器人末端關(guān)節(jié)的變換關(guān)系;B為相鄰2次運(yùn)動(dòng)時(shí)相機(jī)坐標(biāo)的相對運(yùn)動(dòng)。以上方程為手眼標(biāo)定的最終求解方程,可以通過Tsai-Lenz方法[7]計(jì)算轉(zhuǎn)換矩陣X。求解得到結(jié)果用四元數(shù)q=[wxyz]T和向量t=[δxδyδz]T表示。其中四元數(shù)的定義滿足
|q|2=w2+x2+y2+z2=1
(8)
四元數(shù)轉(zhuǎn)換為旋轉(zhuǎn)矩陣的公式為
(9)
則相機(jī)坐標(biāo)系和末端坐標(biāo)系的手眼關(guān)系為
(10)
上一小節(jié)完成了定位孔在全局坐標(biāo)系中坐標(biāo)的計(jì)算推導(dǎo)。接著根據(jù)多個(gè)定位孔的計(jì)算結(jié)果,來估計(jì)小車實(shí)際位姿相對于基準(zhǔn)位姿的旋轉(zhuǎn)平移矩陣?;鶞?zhǔn)位姿和實(shí)際位姿如圖5所示,虛線部分表示AGV基準(zhǔn)位姿及其4個(gè)定位孔的位置,實(shí)線部分表示當(dāng)前AGV到達(dá)機(jī)器人工位時(shí)的實(shí)際位姿,十字形標(biāo)記表示待裝配工件。
圖5 AGV實(shí)際位姿
(11)
對于所有匹配點(diǎn),滿足
(12)
簡記為Q=MP,求解得M=QP-1。剛性變換矩陣M包含6個(gè)參數(shù),通過視覺識別并計(jì)算得到的4個(gè)定位孔位置包含12個(gè)已知量,所以存在冗余,且可以得到多組可行解。將每一對匹配點(diǎn)的歐氏距離作為誤差目標(biāo)函數(shù),利用SVD分解求出R和T,使得誤差目標(biāo)函數(shù)最小。
在得到M的最優(yōu)估計(jì)后,利用該旋轉(zhuǎn)平移矩陣計(jì)算出待裝配工件的實(shí)際位置,以此作為視覺校正后的目標(biāo)位置控制機(jī)器人進(jìn)行裝配工作。
本節(jié)分析在計(jì)算目標(biāo)位置的各階段中可能引入誤差的情形。
首先,相機(jī)獲取到1張?jiān)紙D像,應(yīng)用機(jī)器視覺算法從源圖像中找到定位孔的中心位置。本文設(shè)計(jì)了一種基于特征的模板匹配算法,利用邊緣的梯度方向作為特征,訓(xùn)練出一系列不同角度不同尺寸的模板。在識別時(shí)將圖像中的特征與這一系列模板進(jìn)行匹配,根據(jù)匹配率篩選出符合條件的模板。可能會出現(xiàn)多個(gè)相似模板同時(shí)匹配的情況,例如大小十分接近,轉(zhuǎn)角存在微小差異的模板,如圖6所示。若從其中隨機(jī)取1個(gè)模板,雖然和實(shí)際的中心位置只有幾個(gè)像素的偏差,但這些誤差經(jīng)過相機(jī)內(nèi)參和外參的傳遞,在實(shí)際計(jì)算目標(biāo)位置中會被放大,甚至?xí)虼嗽斐裳b配任務(wù)的失敗。
圖6 多個(gè)相似模板同時(shí)匹配上
其次,手眼標(biāo)定計(jì)算相機(jī)外參齊次矩陣的結(jié)果受標(biāo)定過程中采樣點(diǎn)的選擇影響大,包括拍攝標(biāo)定板采樣點(diǎn)的數(shù)量及相對位置關(guān)系等。計(jì)算手眼標(biāo)定矩陣采用Tsai提出的旋轉(zhuǎn)軸-旋轉(zhuǎn)角方法[7],在優(yōu)化階段以匹配點(diǎn)歐氏距離作為誤差目標(biāo)函數(shù),其中用到了最小二乘法的思想。如果某一次標(biāo)定板局部或全部偏出相機(jī)視野則會出現(xiàn)標(biāo)定板識別錯(cuò)誤,導(dǎo)致數(shù)據(jù)不可用,1組點(diǎn)的明顯偏離會對擬合結(jié)果造成非常大的偏差。
針對上一小節(jié)中的誤差分析,本文提出相應(yīng)的誤差消除策略,減小可能引入的誤差,提高目標(biāo)位置計(jì)算的精度。
首先,在圖像識別階段,利用模板匹配篩選出1組特征匹配度高的模板后,利用圓孔識別的特殊性,選擇最靠近中心尺寸最小的圓作為識別結(jié)果,如圖7所示。
圖7 對多個(gè)模板進(jìn)行優(yōu)選
此外,如果在視野內(nèi)出現(xiàn)多個(gè)圓孔干擾項(xiàng),如待裝配工件上的螺釘孔,則根據(jù)孔的位置與相機(jī)視野中心的距離,并結(jié)合識別孔與實(shí)際定位孔的大小差別來進(jìn)行干擾項(xiàng)的過濾。
其次,手眼標(biāo)定時(shí)增加拍攝標(biāo)定板的數(shù)量,用更多的輸入點(diǎn)來優(yōu)化外參矩陣的準(zhǔn)確度。同時(shí)調(diào)整機(jī)器人不同末端姿態(tài),改變相機(jī)和標(biāo)定板之間的旋轉(zhuǎn)和平移關(guān)系。例如,對于每一組采樣點(diǎn)的選擇,控制機(jī)器人末端的位移達(dá)到5 mm,旋轉(zhuǎn)角度達(dá)到10°,從不同視角進(jìn)行拍攝。對于誤檢的標(biāo)定板,采用RANSAC算法通過多次迭代將不匹配的輸入點(diǎn)進(jìn)行剔除,最后利用可靠的位置點(diǎn)進(jìn)行手眼標(biāo)定矩陣的計(jì)算。
由于本文應(yīng)用場景的特殊性,即AGV小車的高度在過程中不會發(fā)生變化,所以定位孔在z方向上恒為常數(shù),故位姿校正可以簡化為2個(gè)平面間的剛性變換過程。三維場景退化為二維后,矩陣M中需要確定的參數(shù)縮減到3個(gè),即1個(gè)旋轉(zhuǎn)角和2個(gè)平移量。同時(shí),數(shù)據(jù)流的傳遞過程也可以得到簡化,如圖8所示,直接從相機(jī)坐標(biāo)系轉(zhuǎn)換到全局坐標(biāo)系。
圖8 二維空間下的坐標(biāo)轉(zhuǎn)換關(guān)系
以上做法的優(yōu)勢有2點(diǎn):一是省去了中間轉(zhuǎn)換到機(jī)器人基坐標(biāo)系再轉(zhuǎn)換到世界坐標(biāo)系的過程,簡化了問題的復(fù)雜度和計(jì)算的過程;二是由于坐標(biāo)系的直接轉(zhuǎn)換而帶來誤差的減小,同時(shí)保證了精度的可靠性。
這種情況下,相機(jī)外參的標(biāo)定即為相機(jī)坐標(biāo)系x-y平面到世界坐標(biāo)系x-y平面的剛體變換矩陣的求解。如圖9所示,利用機(jī)器人定位的高精度,控制機(jī)器人分別在x方向和y方向上移動(dòng)指定的距離,分別求出定位孔在相機(jī)坐標(biāo)系下的位置,以此計(jì)算2個(gè)平面間的變換矩陣。
圖9 相機(jī)坐標(biāo)系與世界坐標(biāo)系的關(guān)系
Mw=RMc
(13)
容易計(jì)算求解得到旋轉(zhuǎn)矩陣R。通過該矩陣可將定位孔的坐標(biāo)從相機(jī)坐標(biāo)系的x-y平面直接轉(zhuǎn)換到全局坐標(biāo)系x-y平面下。在此基礎(chǔ)上進(jìn)行后續(xù)計(jì)算,整個(gè)視覺校正過程得到了簡化,同時(shí)保證了定位精度。
通過實(shí)驗(yàn),對以上提出的提高視覺定位精度的方法進(jìn)行驗(yàn)證。實(shí)驗(yàn)原理如圖10所示,通過測量視覺校正計(jì)算后得到位置P′和實(shí)際位置P在世界坐標(biāo)系x-y平面上的偏差,來反映視覺校正結(jié)果的精確度。
圖10 測量視覺校正結(jié)果的偏差
本文設(shè)計(jì)了2組實(shí)驗(yàn),一組是采用普通視覺標(biāo)定流程得到的參數(shù),另一組是采用誤差消除策略改進(jìn)后標(biāo)定得到的參數(shù)。按上文反映精度的方法測量視覺校正得到的位置與實(shí)際位置的偏差值,將最終的偏差結(jié)果表現(xiàn)在同一張圖中,如圖11所示,橫坐標(biāo)為x方向上的偏差,縱坐標(biāo)為y方向上的偏差。
圖11 消除偏差策略實(shí)驗(yàn)效果
圖11中,圓圈表示直接用標(biāo)定結(jié)果計(jì)算的偏差,星號表示誤差消除算法改進(jìn)后的結(jié)果。可以看出偏差問題得到了明顯的改善,直接標(biāo)定結(jié)果的偏差值均方根為1.428 9 mm,改進(jìn)后的偏差值均方根為0.188 1 mm。2組數(shù)據(jù)在y方向上偏差分布均勻,在x方向上多數(shù)出現(xiàn)偏大,分析原因可能是相機(jī)坐標(biāo)系z軸與世界坐標(biāo)系z軸的平行程度存在微小偏差導(dǎo)致。同時(shí)測量數(shù)據(jù)顯示,應(yīng)用誤差消除算法后定位偏差可以控制在0.5 mm以內(nèi),滿足精度要求高的裝配需求。
通過機(jī)器人視覺系統(tǒng),完成裝配目標(biāo)位置的精確定位和校正。在分析了相機(jī)標(biāo)定原理的基礎(chǔ)上,通過內(nèi)參標(biāo)定和手眼標(biāo)定計(jì)算出各坐標(biāo)系間轉(zhuǎn)換的齊次矩陣。分析坐標(biāo)從源圖像到世界坐標(biāo)系的計(jì)算過程中可能引入的誤差,并提出相應(yīng)的誤差消除策略。針對定位孔識別的特殊性,提出了簡化計(jì)算模型和坐標(biāo)轉(zhuǎn)換過程的算法,最后通過實(shí)驗(yàn)驗(yàn)證了誤差消除策略的可行性,精度提升效果明顯,為機(jī)器人視覺裝配工作提供了依據(jù)。