机器人的位姿:
位置:末端执行器在操作空间坐标系的位置,通常用一个向量表示
姿态:末端执行器的朝向,即相对于操作空间坐标系的旋转,通常用一个旋转矩阵表示
操作空间坐标系通常是固定的,因此决定机器人位姿的关键是找到从操作空间坐标系到末端执行器坐标系的坐标系变换
一、Translation and Linear Velocity平移与线速度
1.平移:坐标系B相对于坐标系A原点的位移
ArAB=ArBORG
A
r
A
B
=
A
r
B
O
R
G
Cartesian coordinates笛卡尔坐标
XPc=⎛⎝⎜xyz⎞⎠⎟ X P c = ( x y z )
Ar=⎛⎝⎜xyz⎞⎠⎟ A r = ( x y z )Cylindrical coordinates圆柱坐标系
XPz=⎛⎝⎜ρθz⎞⎠⎟ X P z = ( ρ θ z )
Ar=⎛⎝⎜ρcosθρsinθz⎞⎠⎟ A r = ( ρ cos θ ρ sin θ z )Spherical coordinates球坐标系
XPs=⎛⎝⎜rθϕ⎞⎠⎟ X P s = ( r θ ϕ )
Ar=⎛⎝⎜rcosθsinϕrsinθsinϕrcosϕ⎞⎠⎟ A r = ( r cos θ sin ϕ r sin θ sin ϕ r cos ϕ )
2.线速度
AvAB=EP(XP)XP˙
A
v
A
B
=
E
P
(
X
P
)
X
P
˙
Cartesian coordinates笛卡尔坐标
EPc(XPc)=E−1Pc(XPc)=I E P c ( X P c ) = E P c − 1 ( X P c ) = ICylindrical coordinates圆柱坐标系
EPz(XPz)=⎡⎣⎢cosθsinθ0−ρsinθρcosθ0001⎤⎦⎥ E P z ( X P z ) = [ cos θ − ρ sin θ 0 sin θ ρ cos θ 0 0 0 1 ]
E−1Pz(XPz)=⎡⎣⎢cosθ−sinθ/ρ0sinθcosθ/ρ0001⎤⎦⎥
E
P
z
−
1
(
X
P
z
)
=
[
cos
θ
sin
θ
0
−
sin
θ
/
ρ
cos
θ
/
ρ
0
0
0
1
]
- Spherical coordinates球坐标系
EPs(XPs)=⎡⎣⎢cosθsinϕsinθsinϕcosϕ−rsinθsinϕrcosθsinϕ0rcosθcosϕrsinθcosϕ−rsinϕ⎤⎦⎥ E P s ( X P s ) = [ cos θ sin ϕ − r sin θ sin ϕ r cos θ cos ϕ sin θ sin ϕ r cos θ sin ϕ r sin θ cos ϕ cos ϕ 0 − r sin ϕ ]
E−1Ps(XPs)=⎡⎣⎢cosθsinϕ−sinθ/(rsinϕ)(cosθcosϕ)/rsinθsinϕcosθ/(rsinϕ)(sinθcosϕ)/rcosϕ0−sinϕ/r⎤⎦⎥
E
P
s
−
1
(
X
P
s
)
=
[
cos
θ
sin
ϕ
sin
θ
sin
ϕ
cos
ϕ
−
sin
θ
/
(
r
sin
ϕ
)
cos
θ
/
(
r
sin
ϕ
)
0
(
cos
θ
cos
ϕ
)
/
r
(
sin
θ
cos
ϕ
)
/
r
−
sin
ϕ
/
r
]
二、Rotation and Angular Velocity旋转与角速度
1.旋转 :坐标系B相对于坐标系A的旋转
CAB=[AeBxAeByAeBx]
C
A
B
=
[
A
e
x
B
A
e
y
B
A
e
x
B
]
- Euler Angles欧拉角
- ZYZ Euler Angles
XR,eulerZYZ=⎛⎝⎜z1yz2⎞⎠⎟ X R , e u l e r Z Y Z = ( z 1 y z 2 )
CAD=CAB(z1)CBC(y)CCD(z2) C A D = C A B ( z 1 ) C B C ( y ) C C D ( z 2 ) - ZXZ Euler Angles
XR,eulerZXZ=⎛⎝⎜z1xz2⎞⎠⎟ X R , e u l e r Z X Z = ( z 1 x z 2 )
CAD=CAB(z1)CBC(x)CCD(z2) C A D = C A B ( z 1 ) C B C ( x ) C C D ( z 2 ) - ZYX Euler Angles
XR,eulerZYX=⎛⎝⎜zyx⎞⎠⎟ X R , e u l e r Z Y X = ( z y x )
CAD=CAB(z)CBC(y)CCD(x) C A D = C A B ( z ) C B C ( y ) C C D ( x ) - XYZ Euler Angles
XR,eulerXYZ=⎛⎝⎜xyz⎞⎠⎟ X R , e u l e r X Y Z = ( x y z )
CAD=CAB(x)CBC(y)CCD(z) C A D = C A B ( x ) C B C ( y ) C C D ( z )
- ZYZ Euler Angles
- Angle Axis角轴
XR,AngleAxis=(θn) X R , A n g l e A x i s = ( θ n )
CAB=⎡⎣⎢n2x(1−cθ)+cθnxny(1−cθ)+nzsθnxnz(1−cθ)−nysθnxny(1−cθ)−nzsθn2y(1−cθ)+cθnynz(1−cθ)+nxsθnxnz(1−cθ)+nysθnynz(1−cθ)−nxsθn2z(1−cθ)+cθ⎤⎦⎥ C A B = [ n x 2 ( 1 − c θ ) + c θ n x n y ( 1 − c θ ) − n z s θ n x n z ( 1 − c θ ) + n y s θ n x n y ( 1 − c θ ) + n z s θ n y 2 ( 1 − c θ ) + c θ n y n z ( 1 − c θ ) − n x s θ n x n z ( 1 − c θ ) − n y s θ n y n z ( 1 − c θ ) + n x s θ n z 2 ( 1 − c θ ) + c θ ] - Unit Quaternions单位四元数
XR,quat=ξ=(ξ0ξ˘) X R , q u a t = ξ = ( ξ 0 ξ ˘ )
ξ0=cos(θ2) ξ 0 = cos ( θ 2 )
ξ˘=sin(θ2)n=⎛⎝⎜ξ1ξ2ξ3⎞⎠⎟ ξ ˘ = sin ( θ 2 ) n = ( ξ 1 ξ 2 ξ 3 )
CAD=(2ξ20−1)I3×3+2ξ0[ξ˘]×+2ξ˘ξ˘T C A D = ( 2 ξ 0 2 − 1 ) I 3 × 3 + 2 ξ 0 [ ξ ˘ ] × + 2 ξ ˘ ξ ˘ T
2.角速度
AωAB=ER(XR)XR˙
A
ω
A
B
=
E
R
(
X
R
)
X
R
˙
Euler Angles欧拉角
ZYZ Euler Angles
ER,eulerZYZ=⎡⎣⎢001−sin(z1)cos(z1)0cos(z1)sin(y)sin(z1)sin(y)cos(y)⎤⎦⎥ E R , e u l e r Z Y Z = [ 0 − sin ( z 1 ) cos ( z 1 ) sin ( y ) 0 cos ( z 1 ) sin ( z 1 ) sin ( y ) 1 0 cos ( y ) ]
E−1R,eulerZYZ=⎡⎣⎢⎢⎢⎢−cos(y)cos(z1)sin(y)−sin(z1)cos(z1)sin(y)−cos(y)sin(z1)sin(y)cos(z1)sin(z1)sin(y)100⎤⎦⎥⎥⎥⎥ E R , e u l e r Z Y Z − 1 = [ − cos ( y ) cos ( z 1 ) sin ( y ) − cos ( y ) sin ( z 1 ) sin ( y ) 1 − sin ( z 1 ) cos ( z 1 ) 0 cos ( z 1 ) sin ( y ) sin ( z 1 ) sin ( y ) 0 ]ZXZ Euler Angles
ER,eulerZXZ=⎡⎣⎢001cos(z1)sin(z1)0sin(z1)sin(x)−cos(z1)sin(x)cos(x)⎤⎦⎥ E R , e u l e r Z X Z = [ 0 cos ( z 1 ) sin ( z 1 ) sin ( x ) 0 sin ( z 1 ) − cos ( z 1 ) sin ( x ) 1 0 cos ( x ) ]
E−1R,eulerZXZ=⎡⎣⎢⎢⎢⎢−cos(x)sin(z1)sin(x)cos(z1)sin(z1)sin(x)cos(x)cos(z1)sin(x)sin(z1)−cos(z1)sin(x)100⎤⎦⎥⎥⎥⎥ E R , e u l e r Z X Z − 1 = [ − cos ( x ) sin ( z 1 ) sin ( x ) cos ( x ) cos ( z 1 ) sin ( x ) 1 cos ( z 1 ) sin ( z 1 ) 0 sin ( z 1 ) sin ( x ) − cos ( z 1 ) sin ( x ) 0 ]ZYX Euler Angles
ER,eulerZYX=⎡⎣⎢001−sin(z)cos(z)0cos(y)cos(z)cos(y)sin(z)−sin(y)⎤⎦⎥ E R , e u l e r Z Y X = [ 0 − sin ( z ) cos ( y ) cos ( z ) 0 cos ( z ) cos ( y ) sin ( z ) 1 0 − sin ( y ) ]
E−1R,eulerZYX=⎡⎣⎢⎢⎢⎢cos(z)sin(y)cos(y)−sin(z)cos(z)cos(y)sin(y)sin(z)cos(y)cos(z)sin(z)cos(y)100⎤⎦⎥⎥⎥⎥
E
R
,
e
u
l
e
r
Z
Y
X
−
1
=
[
cos
(
z
)
sin
(
y
)
cos
(
y
)
sin
(
y
)
sin
(
z
)
cos
(
y
)
1
−
sin
(
z
)
cos
(
z
)
0
cos
(
z
)
cos
(
y
)
sin
(
z
)
cos
(
y
)
0
]
- XYZ Euler Angles
ER,eulerXYZ=⎡⎣⎢1000cos(x)sin(x)sin(y)−cos(y)sin(x)cos(x)cos(y)⎤⎦⎥ E R , e u l e r X Y Z = [ 1 0 sin ( y ) 0 cos ( x ) − cos ( y ) sin ( x ) 0 sin ( x ) cos ( x ) cos ( y ) ]
E−1R,eulerXYZ=⎡⎣⎢⎢⎢⎢100sin(x)sin(y)cos(y)cos(x)−sin(x)cos(y)−cos(x)sin(y)cos(y)sin(x)cos(x)cos(y)⎤⎦⎥⎥⎥⎥
E
R
,
e
u
l
e
r
X
Y
Z
−
1
=
[
1
sin
(
x
)
sin
(
y
)
cos
(
y
)
−
cos
(
x
)
sin
(
y
)
cos
(
y
)
0
cos
(
x
)
sin
(
x
)
0
−
sin
(
x
)
cos
(
y
)
cos
(
x
)
cos
(
y
)
]
- Angle Axis角轴
ER,angleaxis=[nsinθI3×3+(1−cosθ)[n]×] E R , a n g l e a x i s = [ n sin θ I 3 × 3 + ( 1 − cos θ ) [ n ] × ]
E−1R,angleaxis=[nT−12sinθ1−cosθ[n]2×−12[n]×]
E
R
,
a
n
g
l
e
a
x
i
s
−
1
=
[
n
T
−
1
2
sin
θ
1
−
cos
θ
[
n
]
×
2
−
1
2
[
n
]
×
]
- Unit Quaternions单位四元数
H(ξ)=⎡⎣⎢−ξ1−ξ2−ξ3ξ0ξ3−ξ2−ξ3ξ0ξ1ξ2−ξ1ξ0⎤⎦⎥ H ( ξ ) = [ − ξ 1 ξ 0 − ξ 3 ξ 2 − ξ 2 ξ 3 ξ 0 − ξ 1 − ξ 3 − ξ 2 ξ 1 ξ 0 ]
ER,quat=2H(ξ)
E
R
,
q
u
a
t
=
2
H
(
ξ
)
E−1R,quat=12H(ξ)T
E
R
,
q
u
a
t
−
1
=
1
2
H
(
ξ
)
T
三、Transformation and Velocity变换与速度
1.变换:平移+旋转
TAB=[CAB01×3ArAB1]
T
A
B
=
[
C
A
B
A
r
A
B
0
1
×
3
1
]
2.速度
vP=vB+Ω×rBP
v
P
=
v
B
+
Ω
×
r
B
P
四、坐标空间
1.Joint Space关节空间
Joint Configuration关节角坐标
q=⎛⎝⎜⎜q1⋮qn⎞⎠⎟⎟
q
=
(
q
1
⋮
q
n
)
2.Task Space任务空间
End-Effector Configuration末端执行器坐标
Xe=(reϕe)
X
e
=
(
r
e
ϕ
e
)
Operational Space coordinates操作空间坐标
Xo=(roϕo)
X
o
=
(
r
o
ϕ
o
)
附:kinematic redundancy:任务空间维数<关节空间维数