轉載請註明出處 https://blog.csdn.net/wanggao_1990/article/details/81435660
機器人視覺系統中要實現像素座標與實際座標的轉換,首先要進行標定。這裏標定不僅包括攝像頭標定,也包括機器人系統的手眼標定。這裏的構型爲Eye-in-hand。
1、攝像機標定
(1)理論
張正友棋盤標定法對攝像機進行標定。
由於攝像機標定結果要用到後面的手眼標定中,棋盤圖片拍攝時需要遵守:標定板固定位置不動,手眼組合體變換姿態拍攝圖片。
目的:兩組座標系的兩兩轉化矩陣:T1和T2
1) 攝像機座標系C轉化爲圖片像素座標系P的轉換矩陣T1
P=T1∗C
T1在攝像機標定中內參矩陣3*3
2) 棋盤世界座標系G轉化爲攝像機座標系C的轉換矩陣T2
P=T2∗C
T2在攝像機標定中外參矩陣4*4,由旋轉矩陣r33和平移向量t31構成[ t r; 0 0 0 1]
(2) 方法
OpenCv 或者 Matlab
2、手眼標定
(1)理論部分
手眼標定目的:得到機器手座標系H轉化爲攝像機座標系C的轉化矩陣T3。可表示爲:
C=T3∗H
T3需要根據公式AX=XB得到;實際中,分別知道A、B求出來的X有無窮多個解。所以爲了實現唯一解至少需要兩組A和B,即至少需要3個位置的攝像機標定結果。
下圖爲AX=XB圖解,棋盤相對機器人基座標系固定,因此有
B1∗X∗A1=B2∗X∗A2
轉換A2∗A1−1∗X=X∗B2−1∗B1
可令 A=A2∗A1−1,B=B2−1∗B1。
###1) A的求法
A是兩個攝像機座標系之間的變換矩陣。假設上述攝像機標定中有3張標定圖片的外參標定結果分別是Hc1、Hc2、Hc3,那麼可以得到兩個A矩陣:
A1=Hc2∗Hc1−1
A2=Hc3∗Hc2−1
2) B的求法
B是兩個機器手座標系之間的變換矩陣。假設上述攝像機標定中的3張標定圖片所一一對應的機器手座標系在基座標系(也可以是工件座標系或者其他固定的參考座標系)中的座標系描述矩陣結果分別是Hg1、Hg2、Hg3(需要從機器人控制器或示教器中讀取或轉換),那麼可以得到兩個B矩陣:
B1=Hc2−1∗Hc1
B2=Hc3−1∗Hc2
由以上兩組A和B,代入AX=XB就可以得到唯一解X,從而T3=X。
至少2組數據,可以進行求解,參考Navy_HandEye或Tsai_HandEye等方法。
(2)計算過程
-
獲取攝像機標定已知攝像機外參矩陣Hc1、Hc2、Hc3(攝像機標定時已有)
-
從機器人控制器中讀取對應的機械手座標末端姿態描述數據
機器人系統的座標系描述數據可能有2種形式:
- 平移向量+歐拉角: $ x, y, z, r_z, r_y, r_z $ , 需要知道轉換關係.
- 平移向量+四元數模式: $ x, y, z, q_w, q_x, q_y, q_z$,唯一轉換。
推薦選擇四元數模式,轉換成旋轉矩陣部分唯一,如下
R=⎣⎡2(qw2+qx2)−12(qxqy+qwqz)2(qxqz+qwqx)2(qxqy−qwqz)2(qw2+qy2)−12(qyqz+qwqx)2(qxqz+qwqx)2(qyqz−qwqx)2(qw2+qz2)−1⎦⎤
-
求解攝像機座標系到機械手座標系的變換矩陣X
例如採集圖像25幅,進行相機標定,可得到25個外參矩陣,同時對應可以從控制器界面讀取或者轉換得到25個姿態矩陣。接着可以利用 1) 2)得到C252組A、B,再利用AX=XB計算得到X。
標題3、根據標定結果對目標定位
##(1)理論部分
由上述1、2標定得到:
矩陣 |
含義 |
說明 |
Hpc |
內參矩陣 |
攝像機座標系C -> 像素座標系P |
Hcg |
手眼矩陣 |
機械手座標系H -> 攝像機座標系C |
Hg |
從控制器讀取的末端姿態矩陣 |
機械手座標系H -> 基座標系B |
基座標系轉化爲像素座標系的變換矩陣,可由下面兩式求解(注意使用齊次座標系)。
zc∗[u,v,1]T=Hpc∗[xc,yc,zc]T
[x,y,z]T=Hg∗Hcg−1∗[xc,yc,zc]T
未完 …