Professional Documents
Culture Documents
Robotika P06
Robotika P06
ROBOTIKA
Kinematika robota
FSB
Transformacija koordinata u ravnini - translacija
y y1
x1v px
yv y1v Poznato v1 = v p =
y1 py
xv
Traži se v = v
y
py
O1 x1v x1
O0 px xv x
x1v x v 1 0 px x1v
x x px
v v
x 1 0
v
px v v
v = +p v = 0 1 y = 0 1 p y y1v
1
p y 1
v
y
y y y y 1 1 0 0 1 1
1
FSB
Transformacija koordinata u ravnini - rotacija
y1
y y1v cos ϕ
x1v
yv Poznato v1 = v ϕ
y1
ϕ x1
x1v
xv
v
Traži se v = v
y 1 x1v sin ϕ y
ϕ
O0 O1 xv x
y sin ϕ
v
x cos ϕ
v 1
1
yv
x1v x1
y1v
ϕ
O0 O1 xv x
Homogene transformacije
♦ desnokretni pravokutni koordinatni sustav
k
O
j y
i
x
FSB
Matrica homogenih transformacija
♦ opis položaja i orijentacije sustava n prema sustavu m
ix jx kx px
i p y m R n
jy ky m
pn
m
An = y =
iz jz kz pz 0 1
0 0 0 1
k
O0
j 1 2
y
1
i
2 x1
x
FSB
p1 = A1( )
0 −1
p0 = A0 p0
1
2
c
k1
O10 b
j1 1 2
y1
1
i1
a 1 0 0 a
2 0 1 0 b
x1 A = Tran (a, b, c) =
0 0 1 c
0 0 0 1
FSB
Transformacije rotacije
z
z1
2
1
α
k1
O0 O1
i1 j1 1 2 y1y
1
i
1 0 0 0
2 0 cos α − sin α 0
x x1 A = Rot ( x,α ) =
0 sin α cos α 0
0 0 0 1
FSB
cos α 0 sin α 0
0 1 0 0
A = Rot ( y,α ) =
− sin α 0 cos α 0
0 0 0 1
cos α − sin α 0 0
sin α cos α 0 0
A = Rot ( z, α ) =
0 0 1 0
0 0 0 1
FSB
Relativne i apsolutne transformacije
Rot(x,90°) = 0A1
Tran(0,b,c) = 1A2 y2
y2
z y z y
1 1
z2 O2
O2
z2 x2
O1 O1
z1 O0 x2 y z1 O0 y
x x
x1 x1
T= 1A2 0A1 T= 0A1 1A2
♦ Apsolutne transformacije ♦ Relativne transformacije
FSB
Matrica transformacija
♦ upotrebljavat ćemo samo relativne transformacije
p 0 = 0 A1 p1
p 0 = 0 A11 A 2 p 2
p1 = 1A 2 p 2
0
T2 = 0 A11 A 2 matrica transformacija
p 0 = 0 T2 p 2
( )
p 2 = T2
0 −1
p 0 = 2 T0 p0
n
♦ prijelaz iz n-tog u m-ti sustav m
Tn = ∏ i −1
Ai
i = m +1
FSB
cos α − sin α 0 0
sin α cos α 0 0
Rot(z,α) A1 = Rot ( z ,α ) =
0 0 1 0
0 0 0 1
1 0 0 a
0 1 0 b
Tran(a,b,0) A 2 = Tran (a, b,0) =
0 0 1 0
0 0 0 1
1 0 0 0
0 cos β − sin β 0
Rot(x,β) A3 = Rot ( x, β ) =
0 sin β cos β 0
0 0 0 1
FSB
0
T3 = A1A 2 A 3
zi-1 qi
Oi-1
yi-1
xi-1
FSB
Matrica prihvata
z
a n= vektor normale
O o = vektor orijentacije
n o y a = vektor djelovanja
x p = vektor položaja
nx ox ax px
n p y
n o a p oy ay
0
Tn = = y
0 0 0 1 nz oz az pz
0 0 0 1
FSB
RRTR struktura robota
z4
O4
x4 y4
L4 z3
q4
y3
z2 x O3
3
z z1 q3
q2
L3 y2
O2
L1 x2 q O0 y1
1
O1 y
x
L2 x1 qi=0 nulti položaj
FSB
z4 c1 − s1 0 0
O4 s c1 0 0
y4 A1 = Rot ( z, q1) = 1
x4 z3 0 0 1 0
q4
0 0 0 1
y3
z2 x O3 c2 0 s2 0
3 0 1 0 0
A 2 = Tran (0,0, L1 )Rot ( y, q2 ) =
− s2 0 c2 L1
z z1
q3 0 0 0 1
q2
1 0 0 0
y2 0 1 0 L2
A3 = Tran (0, L2 , L3 + q3 ) =
O2 0 0 1 L3 + q3
x2 q O0 y1 0 0 0 1
1
O1 y c4 0 s4 s4 L4
0 1 0 0
x A 4 = Rot ( y, q4 )Tran (0,0, L4 ) =
x1 − s4 0 c4 c4 L4
0 0 0 1
FSB
0
T4 = A1 A 2 A3 A 4
L1=0.5 m
L2=0.15 m
L3=0.3 m
L4=0.15 m − 0.469 − 0.342 0.814 0.34257
− 0.171 0.939 0 .296 0.28431
0
T4 =
− 0.866 0.000 − 0.500 0.76972
q1=20° 0 0 0 1
q2=40°
q3=0.15 m
q4=80°
T6 G
E
B
S
T6 = E-1SBG
x
FSB
Definiranje okoline kamerom
z
KDG = ET6
y
T6 G
E
D
K
T6 = E-1KDG
x
FSB
z
Eulerovi kutevi
O
a n= vektor normale
n o y o = vektor orijentacije
x a = vektor djelovanja
p = vektor položaja
FSB
z
Eulerovi kutevi
O
a n= vektor normale
n o y o = vektor orijentacije
x a = vektor djelovanja
p = vektor položaja
skretanje
posrtanje
valjanje
FSB
Eulerovi kutevi
nx ox ax px
n oy ay p y nx = cosϑ cos ϕ cosψ − sin ϑ sinψ
0
Tn = y
nz oz az pz n y = sin ϑ cos ϕ cosψ + cosϑ sinψ
0 0 0 1
nz = sin ϕ cosψ
n = o = a =1
n×o = a ox = − cosϑ cos ϕ sinψ − sin ϑ cosψ
noo = ooa = aon = 0
o y = − sin ϑ cos ϕ sinψ + cosϑ cosψ
Rot ( z ,ϑ ) Rot ( y, ϕ )Rot ( z ,ψ ) oz = sin ϕ sinψ
z z1 ϑ = q1
q3
q2 ϕ = q2 + q4 = q24
y2 ψ =0
O2
x2 q O0 y1
1
O1 y
x
x1
29
FSB
Eulerovi kutevi – inverzna rješenja
ay ATAN2
ϑ = arctan y
ax
ϕ = arccos(az )
- +
− nz
ψ = arccos x
sin ϕ + -
ϑ = ATAN2(a y , ax )
ϕ = ATAN2(ax cosϑ + a y sin ϑ , az )
ψ = ATAN2(-nx sin ϑ + n y cosϑ , - ox sin ϑ + o y cosϑ )
FSB
Kvaternion
1
k1 = nx + o y + a z + 1
2
1
k2 = nx − o y − a z + 1 ⇒ sign k2 = sign (oz -a y )
2
1
k3 = o y − nx − a z + 1 ⇒ sign k3 = sign (a x-nz )
2
1
k4 = a z − nx − o y + 1 ⇒ sign k4 = sign (n y -ox )
2
♦ RRTR robot
q = [q1 q2 q3 q4 ]T ϑ = q1
ϕ = q2 + q4
r = [ px py pz ϕ ]T ψ =0
♦ traži se q=[ q1 q2 q3 q4 q5 q6 ]T
Upute za rješavanje
(1A 2 )−1 (0 A1 ) −1 0 T6 = 2 T6
( 2 A3 ) −1 (1A 2 ) −1 (0 A1 ) −1 0 T6 = 3T6
(3 A 4 ) −1 (2 A3 ) −1 (1A 2 ) −1 (0 A1 )−1 0 T6 = 4 T6
0
T6 = 0 T6
FSB
IKP za RRTR robota
(0 A1 )−1 0 T4 = 1T4
c1 s1 0 0 nx ox ax px c24 0 s24 s2 ( L3 + q3 ) + s24 L4
− s c 0 0 n y oy ay p y 0 1 0 L2
1 1 =
0 0 1 0 nz oz az pz − s24 0 c24 L1 + c2 ( L3 + q3 ) + c24 L4
0 0 0 1 0 0 0 1 0 0 0 1
f11 (n) f11 (o) f11 (a) f11(p) c24 0 s24 s2 ( L3 + q3 ) + s24 L4
f (n) f12 (o) f12 (a) f12 (p) 0 1 0 L2
12 =
f13 (n) f13 (o) f13 (a) f13 (p) − s24 0 c24 L1 + c2 ( L3 + q3 ) + c24 L4
0 0 0 1 0 0 0 1
f11 = c1x + s1 y
f12 = − s1x + c1 y
f13 = z
FSB
(2 , 4) = (2 , 4) − s1 p x + c1 p y = L2
px = r cosη r= px2 + p 2y
supstitucija
p y = r sin η py
η = arctan
px
sin(η − q1 ) = L2 / r L2
tan(η − q1) =
cos(η − q1 ) = 1 − ( L2 / r ) 2 ± r 2 − L22
py
q1 = arctan − arctan L2
px + r 2
− L2
2
FSB
ny
(2 , 1) = (2 , 1) q1 = arctan
nx
ay
(2 , 3) = (2 , 3) q1 = arctan
ax
q24 = ϕ
FSB
(1 , 4) = (1 , 4) c1 px + s1 p y = s2 ( L3 + q3 ) + s24 L4 (*)
(3 , 4) = (3 , 4) p z = L1 + c2 ( L3 + q3 ) + c24 L4 (**)
c1 px + s1 p y − s24 L4
iz (*) s2 =
L3 + q3
pz − L1 − c24 L4
iz (**) c2 =
L3 + q3
c1 px + s1 p y − s24 L4
q2 = arctan
p z − L1 − c24 L4
q4 = q24 − q2 = ϕ − q2
FSB
( 1 A 2 ) −1 ( 0 A1 ) −1 0
T4 = 2 T4
f 21 = c2 (c1x + s1 y ) − s2 z {+ s2 L1}p
f 22 = − s1x + c1 y
f 23 = s2 (c1x + s1 y ) + c2 z {− c2 L1}p
FSB
(3 , 4) = (3 , 4) s2 (c1 px + s1 p y ) + c2 pz − c2 L1 = L3 + q3 + c4 L4
q3 = s2 (c1 px + s1 p y ) + c2 ( pz − L1 ) − c4 L4 − L3
q3 = s2 (c1 px + s1 p y ) + c2 ( pz − L1) − c4 L4 − L3
FSB
Jacobieva matrica
r = f (q) ∂px ∂px ∂px ∂px ∂px ∂px
∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
∂r ∂p y ∂p y ∂p y ∂p y ∂p y ∂p y
J=
∂q
∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
∂pz ∂pz ∂pz ∂pz ∂pz ∂pz
J= ∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
∂ϑ ∂ϑ ∂ϑ ∂ϑ ∂ϑ ∂ϑ
∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
∂ϕ ∂ϕ ∂ϕ ∂ϕ ∂ϕ ∂ϕ
∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
∂ψ ∂ψ ∂ψ ∂ψ ∂ψ ∂ψ
∂q1 ∂q2 ∂q3 ∂q4 ∂q5 ∂q6
FSB
∆r = J (q) ∆q / ∆t
∆r ∆q / lim
= J (q) ∆t →0
∆t ∆t
dJ (q)
&r& = q& + J (q) q
&&
dt
∂p x
J12 = = c1c2 ( L3 + q3 ) + c1c24 L4
∂q2
∂px
J13 = = c1s2
∂q3
∂px
J14 = = c1c24 L4
∂q4
FSB
∂p y
J 21 = = − s1L2 + c1s2 ( L3 + q3 ) + c1s24 L4 = px
∂q1
∂p y
J 22 = = s1c2 ( L3 + q3 ) + s1c24 L4
∂q2
∂p y
J 23 = = s1s2
∂q3
∂p y
J 24 = = s1c24 L4
∂q4
FSB
∂pz ∂ϕ
J 31 = =0 J 41 = =0
∂q1 ∂q1
∂pz
J 32 = = s2 ( L3 + q3 ) − s24 L4 ∂ϕ
∂q2 J 42 = =1
∂q2
∂pz
J 33 = = c2 ∂ϕ
∂q3 J 43 = =0
∂q3
∂pz
J 34 = = − s24 L4 ∂ϕ
∂q4 J 44 = =1
∂q4
FSB
L1=0.5 m
L2=0.15 m
L3=0.3 m r = [0.3425 0.2843 0.7697 2/3π ] T
L4=0.15 m
[
∆q = 0.229o 0.229o 4.7mm - 0.229o ] T
FSB
Rješavanje IKP iteracijom
Saznati približno rješenje q* (kojemu odgovara r*)
qA=[ q1 q2 q3 q4 q5 q6 ]T q B=[ q1 q2 q3 q4 q5 q6 ]T
FSB
q1 q1B q2
q2B
q2A
q1A
τ1 t
τ2 t
q&1
∆qi q&2
τi = 2
q&&i.max
τ1 t
τ2 t
q&&1.max
q&&2.max
τ1 t
τ2 t
τ1 ≠ τ2 ≠ τi
FSB
qA=[ q1 q2 q3 q4 q5 q6 ]T qB=[ q1 q2 q3 q4 q5 q6 ]T
FSB
q1 q1B q2
q2B
q2A
q1A
τ1 t τ2 t
q&1 q&2
τ1 t τ2 t
q&&1 4∆qi q&&
q&&i = 2
τ2
τ1 t τ2 t
τ1 = τ2 = τi = τ
FSB
Vođenje po vektoru položaja
z
O y
x
između točaka: vođenje točka-točka slijednog tipa