孫家樂 羅 晨 周怡君 王偉 張剛
1.東南大學機械工程學院,南京,2111892.無錫黎曼機器人科技有限公司,無錫,214000
光學三維視覺測量具有非接觸、高精度、高效率的特點,發展很快。雙目視覺測量[1]作為最接近人眼的系統,可以通過雙目圖像特征的匹配和三維重建實現高精度的產品位姿計算和裝配。雙目視覺測量通常需要借助測量物體信息或主動投影結構光[2]獲取額外信息來尋找匹配特征。機器人視覺三維測量系統廣泛應用于曲面測量[3]、目標抓取[4]和機器人焊接[5]等領域。利用機器人關節給視覺測量系統添加多個自由度的位姿[6]可以提高測量系統的適應性,使其適用于更復雜的形狀和拓撲結構的曲面三維測量。
機器人視覺三維測量系統的相機標定是三維重建的基礎,標定的精度直接決定測量的精度。主動視覺相機標定法[7]精度高、魯棒性強,但標定使用的設備昂貴、標定成本高;相機自標定法[8]可在線實時標定,但精度差。經典的Tsai兩步法[9]、張正友標定法[10]可在常見的相機模型上選定特定的標定物進行標定。為統一視覺系統坐標系和機器人坐標系,機器人視覺測量系統需要穩定性好、精度高的手眼標定技術[11]。手眼標定使用的視覺系統相機標定參數和機器人位姿數據均存在誤差,且標定精度還受環境噪聲影響,因此如何提高手眼標定的效率和精度仍是研究的焦點和難點?;贏x=xB方程求解的Eye-in-Hand手眼標定模型[12]適用于視覺系統固接在機器人末端并隨機器人位姿變換進行測量和分析的情景。求解Ax=xB方程的經典方法主要有四元數和對偶四元數[13-14]、克羅內克積[15]、歐幾里得群[16]等。近年來的研究主要集中在手眼標定解析解的參數優化問題上。ZHI等[17]首先利用克羅內克積計算手眼標定參數的初始解,然后交替采用三角測量法和光束平差法優化手眼標定參數初始解。SHANG等[18]通過分析影響手眼標定精度的因素,優化調整標定的具體步驟。KOIDE等[19]、MALTI[20]分別通過圖像的重投影誤差和圖像對的對極誤差最小化優化手眼標定參數和相機標定參數。若機器人視覺測量系統還包含直線導軌平動或多個機器人的協同運動,則上述手眼標定參數的優化方法需要調整以滿足測量系統的需求。
本文研究對象是一個多自由度的三維視覺測量系統,研究的關鍵是系統標定過程。系統標定除了進行相機標定和手眼標定外,還要對直線導軌、旋轉平臺等額外增加的參考坐標系之間的位姿變換關系進行分析計算。相機標定、手眼標定和旋轉軸標定等都會產生誤差,且多種誤差相互耦合。為得到更高精度的標定結果,提出一種基于多維角點誤差補償的標定參數優化方法,并提出相應的精度評估方法和相應指標以評估標定誤差和參數優化效果。
如圖1所示,復雜視覺測量系統涉及多個參考坐標系,主要包括:相機坐標系{C}、機器人末端坐標系{E}、機器人基坐標系{S}、導軌坐標系{O1}、轉臺中心坐標系{O2},以及后續標定引入的標定板坐標系{G}。

圖1 系統結構示意與坐標系分布
機器人基坐標系{S}始終沿導軌參考坐標系{O1}的某一固定方向運動,因此可將直線導軌視為機器人延展軸,即導軌平動位姿可以與機器人位姿合并。導軌基座固定,因此設導軌坐標系{O1}為系統的世界坐標系,并設{O1}原點為導軌位置零點。{O1}的Y軸方向為導軌運動方向,也是機器人基坐標系{S}在{O1}下的運動方向。{O1}的Z軸豎直向上。測量系統依據坐標系的轉換關系可得
Y=NXM
(1)
式中,X為坐標系{C}到坐標系{E}的機器人手眼標定矩陣;Y為坐標系{O2}到坐標系{O1}的變換矩陣;M為由旋轉軸標定[21]得到的坐標系{O2}到坐標系{C}的變換矩陣;N為由機器人-導軌位姿數據計算得到的坐標系{E}到坐標系{O1}的位姿變換矩陣。
不失一般性,設轉臺中心坐標系{O2}的原點為旋轉中心軸與轉臺平面的交點,其X軸、Y軸分別與坐標系{O1}的X軸、Y軸平行,則矩陣Y的旋轉變換陣為單位陣。
利用機器人手眼標定矩陣X和旋轉軸標定矩陣M并結合機器人-導軌位姿數據,可由式(1)求得變換矩陣Y。測量系統標定過程如圖2所示。標定使用常見的棋盤格標定板,角點為特征點,且所有角點都在相機視場內。
機器人-導軌位姿變換矩陣N的改變會帶動視覺系統運動改變相機坐標系的位姿,進而使旋轉軸標定矩陣M改變,因此系統標定通常先進行旋轉軸標定,再進行手眼標定。旋轉軸標定使用相機拍攝轉臺多個轉角下的棋盤格圖案,利用棋盤格上的多個角點在同一相機坐標系下的各點坐標計算多個圓心。根據所有圓心坐標,計算各圓心的重心點坐標并擬合得到相機坐標系下旋轉軸的方向向量,最終結合轉角可構造出旋轉軸標定矩陣M。由于測量系統的視覺部件固定于機器人末端支架,因此可以基于Eye-in-Hand手眼標定方程Ax=xB[12]并結合張正友相機標定原理[10]求解X。
上述標定過程都存有誤差,為提高標定精度,提出一種基于多維角點誤差補償的標定參數優化方法。在介紹方法前,先定義多維角點誤差并對不同標定過程的多維角點誤差進行分析。
不同維度誤差的計算量綱不一致,相機二維成像平面上的角點誤差E2D量綱為像素(pixel),而三維重建后的角點誤差E3D量綱通常為mm。這里通過最小二乘法[22]求得的權重系數α來平衡不同量綱的誤差。多維角點誤差可表示為
Emulti=αE2D+E3D
(2)
2.2.1二維成像平面的角點誤差E2D
二維成像平面角點誤差E2D主要有重投影誤差Erep和對極誤差Eepi。
(1)重投影誤差[23]是標定后空間中的三維角點根據相機的投影矩陣計算得到的圖像所有角點位置與實際圖像對應角點位置的距離總和:
(3)

(2)對極誤差。對極幾何約束的構建需要依靠左右相機拍攝圖像的成像點對及兩相機坐標系轉換關系[24-25]。對極誤差是左右各匹配點對及其所在左右極平面上對應極線間的距離平方之和:
(4)

2.2.2三維重建角點誤差E3D
三維重建角點誤差E3D的計算如下:先將三維重建出的相鄰行列角點的距離與棋盤格標定板對應距離真實值依次相減,得到所有重建角點的距離偏差,再對所有偏差求和。結合雙目相機標定結果匹配左右標定圖像的所有角點,再對所有匹配角點對進行三角計算,求得所有角點的三維坐標[26]。三維重建角點誤差計算公式為
(5)
式中,Dc為實際棋盤格相鄰角點間隔距離;d(Ch,Cv)為由三維重建得到的棋盤格水平和豎直方向上相鄰角點坐標Ch、Cv的歐氏距離。
2.3.1雙目相機標定過程誤差
雙目相機標定誤差由左右相機圖像投影點的重投影誤差和對極誤差組成:
(6)
(7)
(8)
(9)
2.3.2旋轉軸標定和手眼標定過程誤差
旋轉軸標定和手眼標定均只需要單一相機標定配合轉臺、機器人-導軌位姿求解M和X。標定誤差由二維成像平面角點誤差及三維重建角點誤差組成,可表示為
(10)
(11)
旋轉軸標定與手眼標定僅使用左相機,計算M和X標定過程的對極誤差時,基礎矩陣F計算公式有所不同:
(12)
(13)
式中,N0為旋轉軸標定對應的初始機器人-導軌位姿;Trot,i為第i組旋轉平臺轉角位姿;Nj為用于手眼標定的第j組機器人-導軌位姿。
(14)
基于LM算法對標定參數進行迭代優化[25,27]的偽代碼如下:

算法1:基于多維角點誤差補償的標定參數優化輸入:X0,K1,K2,N0,Nj,Trot,i,ci,j,Ch,Cv輸出:X^1:初始化Δx←+∞,q←02:whileΔx>10-5and q<104 do3: for i=1 to n do4: for j=1 to m do5: FC←K-T2TCcK-116: FMi←K-T1f(XN0Trot,iN-10X-1)K-117: FXj←K-T1f(XNj+1N-1jX-1)K-118: 計算雙目相機標定誤差ECscc9: 計算旋轉軸標定誤差EMmuti10: 計算手眼標定誤差EXmuti11: E(X)←min(ECscc+EMmuti+EXmuti)12: x←X(羅德里格斯逆變換)13: E(x)←E(X)(雅可比矩陣變換)14: Δx=(ET(x)E(x)+μqI)-1ET(x)f(x)15: xq+1=xq-Δx16: X^←x(羅德里格斯變換)17: q←q+118: end for19: end for20:end while21:return X^

(15)
設殘差函數f(x)=(f1(x),f2(x),…,fk(x))T,對x=(r1,r2,r3,t1,t2,t3)中各參數求偏導可得對應的雅可比矩陣E(x)。迭代優化的公式為
(16)
式中,μq為第q次的修正項;Δx為LM迭代增量。
參數在優化過程中迭代更新,直到迭代增量小于10-5或迭代次數達到104。
測量系統標定過程中的誤差包含系統標定算法誤差、硬件誤差,以及固有的系統安裝誤差。系統標定算法誤差是一系列雙目相機標定誤差、手眼標定誤差、旋轉軸標定誤差耦合疊加的結果。硬件誤差包含機器人-導軌各關節運動以及旋轉平臺的位姿誤差。硬件誤差是標定過程中的位姿數據測量值和實際值不一致產生的隨機誤差。系統安裝誤差是測量系統實際安裝尺寸與標稱尺寸之間的誤差,且在測量系統裝配完成后固定不變。
標定模型Y=NXM中,轉臺中心坐標系到世界坐標系的變換矩陣Y的誤差可評估系統整個標定過程中的誤差。旋轉平臺中心和導軌零點之間的距離之差以及測量系統實際的變換矩陣Y不易精確獲得,因此,將轉臺中心與導軌零點之間坐標變換的標稱值(U,V,W)計算出的變換矩陣Y的誤差作為系統標定精度的評估標準。關鍵標稱值可查詢設計圖紙或產品說明書后計算獲得,且導軌坐標系與轉臺中心坐標系的旋轉變換矩陣為單位陣I,故評估標準矩陣為
(17)
標定得到初始標定矩陣X0,進而可計算出優化前的轉臺中心坐標系到世界坐標系的變換矩陣Y0。Y0與Y的初始系統誤差ΔY0由系統初始標定誤差E(X0)和安裝誤差組成,對應的誤差矩陣為Y-1Y0。Y-1Y0可以分成旋轉分量(對應旋轉誤差矩陣)和X軸、Y軸、Z軸的平移分量(對應平移誤差向量)。將誤差矩陣的旋轉部分轉換成軸-角形式[I0θ0],其中,I0為轉軸的三維坐標向量,θ0為繞轉軸的旋轉角度。平移誤差向量Δt0=(Δtx,Δty,Δtz)。系統初始誤差為
ΔY0=(θ0,Δtx,Δty,Δtz)
(18)
(19)


(20)

以系統標定誤差優化率間接評價基于多維角點誤差補償的標定參數優化方法的有效性和優越性。系統標定誤差優化率φ為標定參數優化方法優化前后計算得到的系統標定誤差之差與初始標定參數計算出的優化前系統標定誤差的比值。φ由旋轉誤差偏角的優化率φθ和平移誤差向量模的優化率φΔt組成:
(21)

(22)
(23)
復雜視覺測量系統的標定參數優化和精度評估的流程如圖3所示。測量系統通過采集不同標定過程中的標定圖片及其機器人-導軌和轉臺的位姿數據進行標定實驗,求得初始的標定矩陣。結合基于多維角點誤差補償的系統標定參數優化方法,通過算法1對初始標定參數進行迭代優化。最后進行系統精度評估,即首先對比優化前后的系統標定誤差,然后使用系統標定誤差優化率評價優化效果,再進行三維測量實驗來衡量系統的測量精度。

圖3 系統標定流程圖
本系統標定實驗使用7行9列(有效角點總數為63),相鄰角點的水平、豎直間距離均為20 mm的陶瓷棋盤格標定平板。
5.1.1雙目相機標定
雙目相機標定使用左右相機采集不同姿態的標定板圖案共18組。每組圖案均需要保證標定板上角點全部在畫面內且盡量清晰。運用張正友標定法進行標定,雙目相機標定過程如圖4所示,求得的左右相機的內參矩陣如下:

圖4 雙目相機標定過程
5.1.2手眼標定
手眼標定實驗僅使用視覺系統的左相機采集不同機器人-導軌位姿下的標定棋盤格圖像和對應機器人-導軌位姿。標定過程中,保證棋盤格角點全部在畫面內且畫面清晰,共采集25幅圖像,其中的幾幅如圖5所示。

圖5 手眼標定采集圖案
根據25幅標定圖像可計算得到24組相機標定的外參變換矩陣A和機器人-導軌位姿變換矩陣B。使用克羅內克積方法[15]計算Ax=xB,得到初始手眼標定矩陣:
基于多維角點誤差補償的系統標定參數優化方法,通過算法1對初始手眼標定矩陣X0進行參數優化,可得
5.1.3旋轉軸標定
旋轉軸標定同樣僅使用視覺系統左相機采集5個轉角(0°、10.04°、20.05°、30.04°、40.00°)下的標定棋盤格圖像,其中的4幅圖像見圖6。旋轉軸標定過程如圖7所示。

(a)θ=10.04° (b)θ=20.05°
通過旋轉軸標定計算,得到初始機器人-導軌位姿變換矩陣:
坐標系{O2}到{C}的變換矩陣為
將X0、N0、M0代入式(1),可求得初始轉臺中心坐標系到世界坐標系的變換矩陣:


表1 測量系統重要參數


表2 優化前后系統標定誤差

為驗證測量系統是否滿足實際測量的需求,選取3個不同尺寸的正方體鐵塊進行三維測量實驗。分別用游標卡尺和三維測量系統測量正方體鐵塊指定測量面的4條棱長,分析系統測量的最大絕對誤差,評估系統測量精度。
利用測量系統測得的點云,如圖8所示,具體測量實驗結果見表3。結果顯示,絕對誤差最大值不超過0.3 mm,約占實際棱長的1%,這表明系統測量精度較高,可以滿足測量需求。

表3 系統三維測量實驗結果

(a)大正方體鐵塊 (b)中正方體鐵塊 (c)小正方體鐵塊
針對多自由度的復雜三維視覺測量系統,提出了一種Y=NXM的系統數學模型,求解過程包括相機標定、機器人手眼標定與轉臺旋轉軸標定。為獲得更高精度的標定結果,提出一種基于多維角點誤差補償的標定矩陣參數的優化方法。首先定義多維角點誤差,并對不同標定過程中的多維角點誤差進行分析,再根據誤差較大的初始手眼標定矩陣參數構造相應的目標優化函數,然后運用LM算法進行迭代優化。
提出的系統標定精度評估方法中,評估標準為轉臺中心與導軌零點之間坐標變換的標稱值計算出的變換矩陣Y的誤差。通過對比評估標準和優化前后標定求解結果之間的誤差來衡量系統標定的精度。同時,使用系統標定誤差優化率來間接評價標定參數優化方法的效果。
多組實驗數據表明,系統標定誤差與評估標準的比值較小,對后續三維測量影響較小;標定參數優化方法對系統初始標定誤差旋轉和平移部分的優化率可達到48%,優化效果較好;該系統進行三維測量時的測量精度能達到毫米級。