日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手眼标定

發(fā)布時(shí)間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手眼标定 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載請注明出處 https://blog.csdn.net/wanggao_1990/article/details/81435660

機(jī)器人視覺系統(tǒng)中要實(shí)現(xiàn)像素坐標(biāo)與實(shí)際坐標(biāo)的轉(zhuǎn)換,首先要進(jìn)行標(biāo)定。這里標(biāo)定不僅包括攝像頭標(biāo)定,也包括機(jī)器人系統(tǒng)的手眼標(biāo)定。這里的構(gòu)型為Eye-in-hand。

1、攝像機(jī)標(biāo)定

(1)理論

張正友棋盤標(biāo)定法對攝像機(jī)進(jìn)行標(biāo)定。
由于攝像機(jī)標(biāo)定結(jié)果要用到后面的手眼標(biāo)定中,棋盤圖片拍攝時(shí)需要遵守:標(biāo)定板固定位置不動(dòng),手眼組合體變換姿態(tài)拍攝圖片。
目的:兩組坐標(biāo)系的兩兩轉(zhuǎn)化矩陣:T1T_1T1?T2T_2T2?
1) 攝像機(jī)坐標(biāo)系C轉(zhuǎn)化為圖片像素坐標(biāo)系P的轉(zhuǎn)換矩陣T1

P=T1?CP=T_1*CP=T1??C

T1在攝像機(jī)標(biāo)定中內(nèi)參矩陣3*3
2) 棋盤世界坐標(biāo)系G轉(zhuǎn)化為攝像機(jī)坐標(biāo)系C的轉(zhuǎn)換矩陣T2

C=T2?GC=T_2*GC=T2??G

T2在攝像機(jī)標(biāo)定中外參矩陣4*4,由旋轉(zhuǎn)矩陣r33和平移向量t31構(gòu)成[ t r; 0 0 0 1]

(2) 方法

OpenCv 或者 Matlab

2、手眼標(biāo)定

(1)理論部分

手眼標(biāo)定目的:得到機(jī)器手坐標(biāo)系H轉(zhuǎn)化為攝像機(jī)坐標(biāo)系CCC的轉(zhuǎn)化矩陣T3T_3T3???杀硎緸?#xff1a;

C=T3?HC=T_3*HC=T3??H

T3需要根據(jù)公式AX=XBAX=XBAX=XB得到;實(shí)際中,分別知道AAA、BBB求出來的X有無窮多個(gè)解。所以為了實(shí)現(xiàn)唯一解至少需要兩組AAABBB,即至少需要3個(gè)位置的攝像機(jī)標(biāo)定結(jié)果。
下圖為AX=XBAX=XBAX=XB圖解,棋盤相對機(jī)器人基坐標(biāo)系固定,因此有

B1?X?1?A1=B2?X?1?A2B_1*X^{-1}*A_1 = B_2*X^{-1}*A_2B1??X?1?A1?=B2??X?1?A2?

轉(zhuǎn)換A2?A1?1?X=X?B2?1?B1A_2*A_1^{-1}*X = X*B_2^{-1}*B_1A2??A1?1??X=X?B2?1??B1?

可令 A=A2?A1?1A= A_2*A_1^{-1}A=A2??A1?1?B=B2?1?B1B=B_2^{-1}*B_1B=B2?1??B1?。

1) AAA的求法

AAA是兩個(gè)攝像機(jī)坐標(biāo)系之間的變換矩陣。假設(shè)上述攝像機(jī)標(biāo)定中有3張標(biāo)定圖片的外參標(biāo)定結(jié)果分別是Hc1H_{c1}Hc1?、Hc2H_{c2}Hc2?、Hc3H_{c3}Hc3?,那么可以得到兩個(gè)AAA矩陣:

A1=Hc2?Hc1?1A_1=H_{c2}*H_{c1}^{-1}A1?=Hc2??Hc1?1?

A2=Hc3?Hc2?1A_2=H_{c3}*H_{c2}^{-1}A2?=Hc3??Hc2?1?

2) BBB的求法

B是兩個(gè)機(jī)器手坐標(biāo)系之間的變換矩陣。假設(shè)上述攝像機(jī)標(biāo)定中的3張標(biāo)定圖片所一一對應(yīng)的機(jī)器手坐標(biāo)系在基坐標(biāo)系(也可以是工件坐標(biāo)系或者其他固定的參考坐標(biāo)系)中的坐標(biāo)系描述矩陣結(jié)果分別是Hg1H_{g1}Hg1?、Hg2H_{g2}Hg2?Hg3H_{g3}Hg3?(需要從機(jī)器人控制器或示教器中讀取或轉(zhuǎn)換),那么可以得到兩個(gè)BBB矩陣:

B1=Hc2?1?Hc1B_1=H_{c2}^{-1}*H_{c1}B1?=Hc2?1??Hc1?

B2=Hc3?1?Hc2B_2=H_{c3}^{-1}*H_{c2}B2?=Hc3?1??Hc2?

由以上兩組AAABBB,代入AX=XBAX=XBAX=XB就可以得到唯一解X,從而T3=XT_3=XT3?=X。
至少2組數(shù)據(jù),可以進(jìn)行求解,參考Navy_HandEye或Tsai_HandEye等方法。

(2)計(jì)算過程

  • 獲取攝像機(jī)標(biāo)定已知攝像機(jī)外參矩陣Hc1H_{c1}Hc1?、Hc2H_{c2}Hc2?、Hc3H_{c3}Hc3?(攝像機(jī)標(biāo)定時(shí)已有)

  • 從機(jī)器人控制器中讀取對應(yīng)的機(jī)械手坐標(biāo)末端姿態(tài)描述數(shù)據(jù)
    機(jī)器人系統(tǒng)的坐標(biāo)系描述數(shù)據(jù)可能有2種形式:
    - 平移向量+歐拉角: x,y,z,rz,ry,rzx, y, z, r_z, r_y, r_zx,y,z,rz?,ry?,rz? , 需要知道轉(zhuǎn)換關(guān)系.
    - 平移向量+四元數(shù)模式: x,y,z,qw,qx,qy,qzx, y, z, q_w, q_x, q_y, q_zx,y,z,qw?,qx?,qy?,qz?,唯一轉(zhuǎn)換。
    推薦選擇四元數(shù)模式,轉(zhuǎn)換成旋轉(zhuǎn)矩陣方式唯一,如下

    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]R = \begin{bmatrix} 2(q_w^2+q_x^2)-1 & 2(q_xq_y - q_wq_z) & 2(q_xq_z+q_wq_x) \\ 2(q_xq_y+q_wq_z) & 2(q_w^2 + q_y^2)-1 & 2(q_yq_z-q_wq_x) \\ 2(q_xq_z+q_wq_x) & 2(q_yq_z + q_wq_x) & 2(q_w^2 + q_z^2)-1\\ \end{bmatrix}R=???2(qw2?+qx2?)?12(qx?qy?+qw?qz?)2(qx?qz?+qw?qx?)?2(qx?qy??qw?qz?)2(qw2?+qy2?)?12(qy?qz?+qw?qx?)?2(qx?qz?+qw?qx?)2(qy?qz??qw?qx?)2(qw2?+qz2?)?1????

  • 求解攝像機(jī)坐標(biāo)系到機(jī)械手坐標(biāo)系的變換矩陣X
    例如采集圖像25幅,進(jìn)行相機(jī)標(biāo)定,可得到25個(gè)外參矩陣,同時(shí)對應(yīng)可以從控制器界面讀取或者轉(zhuǎn)換得到25個(gè)姿態(tài)矩陣。接著可以利用 1) 2)得到C252C_{25}^2C252?AAABBB,再利用AX=XBAX=XBAX=XB計(jì)算得到XXX。

  • 標(biāo)題3、根據(jù)標(biāo)定結(jié)果對目標(biāo)定位

    ##(1)理論部分
    由上述1、2標(biāo)定得到:

    矩陣含義說明
    HpcH_{pc}Hpc?內(nèi)參矩陣攝像機(jī)坐標(biāo)系C -> 像素坐標(biāo)系P
    HcgH_{cg}Hcg?手眼矩陣機(jī)械手坐標(biāo)系H -> 攝像機(jī)坐標(biāo)系C
    HgH_gHg?從控制器讀取的末端姿態(tài)矩陣機(jī)械手坐標(biāo)系H -> 基坐標(biāo)系B

    基坐標(biāo)系轉(zhuǎn)化為像素坐標(biāo)系的變換矩陣,可由下面兩式求解(注意使用齊次坐標(biāo)系)。

    zc?[u,v,1]T=Hpc?[xc,yc,zc]Tz_c* [u,v,1]^{T} = H_{pc} * [x_c,y_c,z_c]^{T}zc??[u,v,1]T=Hpc??[xc?,yc?,zc?]T

    [x,y,z]T=Hg?Hcg?1?[xc,yc,zc]T[x,y,z]^{T} = H_g * H_{cg}^{-1}*[x_c,y_c,z_c]^{T}[x,y,z]T=Hg??Hcg?1??[xc?,yc?,zc?]T


    未完 …

    win10,vs2015。 linux下使用有幾個(gè)小錯(cuò)誤或警告地方,根據(jù)編譯器輸出略作修改。源碼 https://github.com/wanggao1990/HandEyeCalibration, 有用煩請star一下。

    新浪演示視頻地址 http://t.cn/RDW1sAf?m=4271991789966178&u=2335487824,CSDN視頻 https://live.csdn.net/v/177543

    opencv4.1 也加入了手眼標(biāo)定,可以嘗試。

    總結(jié)

    以上是生活随笔為你收集整理的手眼标定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。