三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf ·...

46
三种手眼标定方法的实现与比较 王海霞

Transcript of 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf ·...

Page 1: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

三种手眼标定方法的实现与比较

王海霞

Page 2: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

目录

背景

基本知识

三种手眼标定方法

传统的两步法

Ma的Self-calibrationLei的Self-calibration

实验与比较

提出问题

Page 3: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

背景

背景

①操作员处在高空、高压危险环境中,仍存在人从高空跌落和触电的危险;②主从控制的作业方式,作业速度慢、耗费时间长。

Page 4: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

第一代 第二代

Page 5: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

实验平台

Page 6: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• Euler表示旋转矩阵

• Rodrigues表示旋转矩阵R(k,θ)• Cayley表示旋转矩阵

• FOE点• 点线对偶(duality)• 手眼关系数学模型

基本知识

Page 7: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Euler表示旋转矩阵

旋转顺序 xyx,xyz,zyz,zyx

旋转坐标系 局部坐标参考:T=[first rotation]*[second rotation] 全局坐标参考: T=[second rotation]*[first rotation]

旋转矩阵 物理意义 表示坐标系A经过齐次变换T转换成坐标系B;

表示坐标系B相对于坐标系A的位置和姿态;

表示三维空间点的齐次坐标由坐标系B向坐标系A的映射。

TBA

Page 8: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

z’ y’

x’

y

x

z

A

B

M

• M点在A-xyz下的坐标为(x,y,z),在B-x'y'z'下的坐标为(x',y',z') ,坐标原点 之间的关系 为P=

AB

Page 9: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

两个坐标的关系为:

=

1z'y'x'

T

1zyx

BA

=

1 0 0 0 P )'zz(cos )'zy(cos )'zx(cos

P )'yz(cos )'yy(cos )'yx(cos

P )'xz(cos )'xy(cos )'xx(cos

Tx

x

x

BA

Page 10: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

R=Rz(z,90)*Ry(y,0)*Rx(x,180)

y

x

zx’

z’y’

R,t

E

W

R:{E}相对{W}的姿态

Page 11: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Cayley表示旋转矩阵

• Cayley表示旋转矩阵

1

1

)w][I)(w][I(

)w][I()w][I(R−

××

×−

×

+−=

−+=

• Cayley与Rodrigues关系

k)2/(tanw ⋅= θ

1

1

)RI)(RI(

)RI()RI(]w[−

−×

+−=

−+=

Page 12: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

FOE点

• 当做纯平移运动时,极点e=e',此时的极点称为FOE点,对应点连线交于FOE点,且C1e与摄像机运动方向相同

Page 13: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

点线关系

• 由点得线

xl'l =×

• 由线得点

• 点在线上

lx'x =×

0T =lx

Page 14: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

手眼关系数学模型

xd

yd

W

C

R

Page 15: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

1c λ −=X K u

• 摄像机坐标系{C}下的坐标与图像点之间的关系:

• 机器人末端{R}下的坐标与{C}下坐标之间的关系:r r

r c c c= +X R X t

• 世界坐标系{W}下的坐标与{R}下坐标之间的关系:w w

w r r r= +X R X t

• 图像点与世界坐标系{W}下的坐标之间的关系:w w wr r

c cw r r rλ= + +-1u R tX R KR t

Page 16: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

传统的两步法

• 机器人运动一次得到关系式AX=XB

=

⇒=

1

1

1

1 ccrr

0tR

0tR

0tR

0tR

XBAX

• K已知,先求R,后求t。

• 经典的AX=XB求解方法

(2) -)-( (1)

rcr

cr

ttRtIRRRRR⋅=

⋅=⋅

Page 17: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

W1

C1 C2C3

D3

D2D1

Rc12,Tc12 Rc23,Tc23

Rr23,Tr23Rr12,Tr12

W2

(Rc1,Tc1)

(Rc2,Tc2)

(Rc3,Tc3)

(Rr1,Tr1)

(Rr2,Tr2)

(Rr3,Tr3)

R,t R,tR,t

运动坐标关系图

Page 18: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

求R

• 利用Rodrigues表示旋转矩阵,即R=Rot(k,θ)

),(kRRR),(kR 2cc1rr θθ ⋅=⋅

• kr和kc分别是Rr和Rc的旋转轴,也是它们1特征值对应的特征向量,θ1和θ2分别是旋转角

• 由上式得到两个推论:

cr-1

cr21 RRRRRR:proof, .1 ≈⇒⋅⋅=== θθθ

r c-1 -1

c r2. ,proof:R U U , R (RU)k (RU)R k = Λ = Λ= ⋅

Page 19: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

根据kr=R*kc得到如下关系图:

α

θ

BA

C

D

O

2/kk/2)2/k(tan

k'

kk'k)kk(skewk)kk(skk

)kk(k

crcr

crcr

cr

=

−=⋅+⇒⋅+=−⇒

−⊥

根据左图得到几个关系:

Page 20: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

R求解步骤:(在kri×kci≠0,θi≠0或π)

−=

++

×

×

c2r2

c1r1

r2r2

c1r1

k-kkk

'k]kk[]kk[

Rk)

2(tank'

'k2tan 1

=

= −

θ

θ

12c1c2c1c2r1rr2r1 ]kk k k[]kk k k[R −×⋅×=

13c2c1c3rr2r1 ]k k k[]k k k[R −⋅=

Page 21: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

求t

−⋅

−⋅⋅

−=

−⋅=⋅−

−⋅=⋅−

23r23c

12r12c1

23r

12r

23r23c23r

12r12c12r

ttRttR

IRIR

t

ttRtI)(RttRtI)(R

Page 22: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

误差分析

• ∠(kc1,kc2)(=∠(kr1,kr2))小;

• θ1和θ2小;

• 摄像机坐标系原点到标定块的距离|Tci|大;

• 机器人末端在不同位置的距离|Tri-Trj|大;

Page 23: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

解决方案

• 设计运动方案使∠(kc1,kc2)尽量大;

• 控制机器人使旋转角θ1和θ2尽量大;

• 选择小的标定板,调整相机位置使每次外参数距离|Tci|尽量小;

• 在运动过程中减小机器人移动距离|Tri-Trj|;• 增加运动次数,误差与sqrt(N)成反比,N是位置数;

• 尽量提高每次运动中相机外参数精度;

• 预标定机器人的平移和旋转参数。

Page 24: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• 同步法

1( ) 'n

i ii=1

f = −∑R k Rk'kRk =

2 ( , ) ( 'n

i ii=1

f = − −∑R t Rp R'- I)t prcr t-tRI)t-R( ⋅=

Page 25: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Ma的Self-calibration

• 其中

0ee jTi =

• 若运动方向相互垂直,则FOE点之间有:

3,...,1 ,) (( T =−−= if)dy,v(v)dx,uue 0i0ii

• 则得到如下关系:

Ma的Self-calibration

求K

• 前提条件:做纯平移运动

Page 26: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

−−

=

−−−−−−−−

))

) )

312

321

1

10

0

312031031

321032032

u(uuu(uu

ttv

u

v(vv)vv(v)uu(uv(vv)vv(v)uu(u

2

1

=

dxdyt

2

2

=

dxft

0))(())(( 2030210302 =+−−+−− tvvvvtuuuu

Page 27: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

求R

⋅=

⋅=⋅⇒=

rcr

cr

t-tRI)t-R(RRRR

XBAX

rc ttR =⋅

[ ] crcr ttwtt −=+ ×

)]w[I()[w](IR -1×× −+=

iuKt 1c

−=

Page 28: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

求t• 重构方法:

• 控制机器人延摄像机X轴方向运动

TT1

3

2

1

rc ]0,0,d[rrrr

Rtt =

==

1 1 cm KXλ =

2 2 c cm KX Ktλ = + 1 2,λ λ⇒ cX⇒

Page 29: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

运动:A-P,P-A,A-B,B-P,P-B

Rc,tc

(d1,

0,0)

(d2,

0,0)

Camera at position A

Camera at position B

O1

O2

P

r c r(R I)t Rt t− = −

Page 30: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

c 2 c 1R (O P) t O P+ =

1c r rR R RR−=

r c r(R I)t Rt t− = −

ct⇒

t

Page 31: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Lei的Self-calibration

1C2C

1E

2E

P

rt

ct

CX

'CX

rX

'rX

cc'c

rr'r

'r

'c

rc

tXXtXX

tRXXtRXX

=−

=−

+=

+=

rλ =e KRt

Lei的Self-calibration

rc Rtt =

c' Ktee λ==

1

2

3

= =

RA aa

Ka

Page 32: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

r11 r12 r13 11 r11 11 r12

r11 r12 r13 12 r11 12 r12

rN1 rN2 rN3 N1 rN

t t t 0 0 0 -e t -e t0 0 0 t t t -e t -e t... ... ... ... ... ... ... ... t t t 0 0 0 -e t

11

1211 r13

1312 r13

21

221 N1 rN2 N1 rN3

23rN1 rN2 rN3 N2 rN1 N2 rN2 N2 rN3

31

32

a'a'

e ta'

e ta'

...a'

-e t e ta'

0 0 0 t t t -e t -e t e ta'a'

=

1

33 2 33 3

3

r A a A ' K r a 1/ '

r

= = ⇒ =

aij ij 33 a ' a / a=其中,

Page 33: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• 重构法:

• 重构点方法与前面相同;

• 第二次:回到原处,做旋转R1,得到t的一个约束方程:

• 第三次:回到原处,做旋转R2,得到t的另一个约束方程:

求t

r c

c c c c1

(R -I)t Rtt X -R X

==

Page 34: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Rc,tc

(d1,

0,0)

(d2,

0,0)

Camera at position A

Camera at position B

O1

O2

P

r c(R -I)t Rt=

Page 35: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• 极点法:

• 运动两次得到关于 的方程组。

唯一解条件:

与 旋转轴不平行;

不在与 旋转轴正交的平面上。

1r rR(R I) e'Kt tλ −− = −

ce' 'Ktλ=

1 2, , tλ λ

r1R r2R

ritriR

r c r(R I)t Rt t− = −

Page 36: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

1r1 1 r1

11r2r2 2

2

t(I R ) RK e ' 0 t

t(I R ) 0 RK e ' λλ

− = −

Page 37: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• 新重构方法:

w r1 1 r1 r1 1X λ= + +-1u R tK tRR

w r2 2 r2 r2 2X λ= + +-1u R tK tRR

Tr1 1 r2 2 r1 r2 r2 r1

Tr3 r2r2 2 r3 3 r2

1

2

3r3

-

λλλ

− − − = −−

-1 -1

-1 -1

R RK u R RK u 0 R R t tt t0 R RK u R R

tK u R R

r1 1 r2 2 r1 r2 1 21 2 r r( )λ λ− + − + − =-1 -1R RK u R RK u R t ttR 0

Page 38: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

实验

Page 39: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

第一种方法实验结果:

1022.466 0 435.572K= 0 1020.689 266.827

0 0 1

[ ]0.0115 0.0067 0.99989.942

T=[114.6563 5.0081 -2.1965]

= − − −

=[ ]0.0045 0.0088 1.0089.6176

T=[113.704 0.521 -13.7395]

= − − −

=

[ ]0.002 0.0004 1.0090.4396

T=[113.4890 1.821 4.609]

= − − −

=

Page 40: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

第二种方法实验结果:

879.145 0 244.25K= 0 917.44 274.67

0 0 1

[ ]0.3089 0.331 0.89256.2252

T=[448.915 -55.11 710.55]

= −

=

923.049 0 300.96K= 0 1066.326 171.52

0 0 1

[ ]0.0167 0.011 -0.99990.9209

T=[68.89 -148.95 98.35]

=

=

1082.26 0 370.44K= 0 1071.55 205.123

0 0 1

[ ]0.232 0.1545 -0.9660.6559

T=[-131.3 -1245 -961.4]

= −

=

Page 41: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

第三种方法实验结果:

1044.02 45.1 365.34K= 0 1029.05 264.37

0 0 1

[ ]

1

2

-0.025 0.01 -0.99987.4

T =[99.45 -33.34 419.08]T =[86.57 35.95 -123.44]

=

=

966.03 -15.224 385.61K= 0 967.33 390.16

0 0 1

[ ]

1

2

0.012 0.021 -0.99990.365

T =[101.14 -39.88 417.28]T =[88.35 17.13 37.105]

= −

=

994.65 -9.27 404.2K= 0 1003.69 349.4

0 0 1

[ ]

1

2

0.007 0.051 -0.99990.7148

T =[100.34 -43.5 415.89]T =[86.41 22.91 39.46]

= −

=

Page 42: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

方法比较

• Tsai方法:参考物:棋盘;运动次数:2次;(保存3次数据)利用同一组数据,分别求出R和t;事先求出摄像机内参数K。

• Ma的Self-calibration:不需要参考物,任取2个点;运动次数:6次+8次;利用6次纯平移运动得到K,再利用其中的3组数据求R,最后做2次带旋转的运动,6次辅助运动求t;

不需要事先求摄像机内参数。

Page 43: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

• Lei的Self-calibration:不需要参考物:任取8个点,或2个点;运动次数:4次+2次;(保存8次数据)利用4次纯平移运动得到RK,再做2次带旋转的运动求t;不需要事先求摄像机内参数K 。

Page 44: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

提出问题• 在自标定方法中是否可以利用同一组数据求

RK和T?

1r( ) 'λ −= −r RKtR - I e t

w r r rX λ= + +-1u RK tRR t

c r=Rk k

c c d d⋅ = ⋅k t k t

c λ= -1t K e'

问题的提出

c c=k t d d=k t

想法:

Page 45: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

Screw Motion螺丝运动

Page 46: 三种手眼标定方法的实现与比较 - IAvision.ia.ac.cn/zh/senimar/reports/Whxia.pdf · 目录 背景 基本知识 三种手眼标定方法 传统的两步法 Ma 的 Self-calibration

请各位老师和同学给与指导!