CINEMATICA Matrice di rotazione Rappresentazioni dell

Transcript

CINEMATICA Matrice di rotazione Rappresentazioni dell
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
CINEMATICA
• relazioni tra posizioni dei giunti e posizione e orientamento
dell’organo terminale
Matrice di rotazione
Rappresentazioni dell’orientamento
Trasformazioni omogenee
Cinematica diretta
Spazio dei giunti e spazio operativo
Calibrazione cinematica
Problema cinematico inverso
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
POSA DI UN CORPO RIGIDO
• Posizione

o′x
o′ =  o′y 
o′z

• Orientamento
x′ = x′x x + x′y y + x′z z
y ′ = yx′ x + yy′ y + yz′ z
z ′ = zx′ x + zy′ y + zz′ z
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
MATRICE DI ROTAZIONE

R =  x′
y′

x′T x y ′T x z ′T x
z ′  =  x′T y y ′T y z ′T y 
x′T z y ′T z z ′T z


RT R = I
RT = R−1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Rotazioni elementari
• rotazione di α intorno a z

cos α
Rz (α) =  sin α
0
−sin α
cos α
0

0
0
1
CONTROLLO DEI ROBOT
• rotazione di β intorno a y

cos β
Ry (β) =  0
−sin β
• rotazione di γ intorno a x

1
0
Rx (γ) =  0 cos γ
0 sin γ
Prof. Bruno SICILIANO

0 sin β
1
0 
0 cos β

0
−sin γ 
cos γ
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Rappresentazione di un vettore

p′x
p′ =  p′y 
p′z

px
p =  py 
pz


p =  x′
= Rp′
p′ = RT p

y′

z ′  p′
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
px = p′x cos α − p′y sin α
py = p′x sin α + p′y cos α
pz = p′z
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Rotazione di un vettore
p = Rp′
pT p = p′T RT Rp′
• Esempio
px = p′x cos α − p′y sin α
py = p′x sin α + p′y cos α
pz = p′z
p = Rz (α)p′
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Matrice di rotazione
⋆ fornisce l’orientamento di una terna di coordinate rispetto
ad un’altra: i vettori colonna sono i coseni direttori degli
assi della terna ruotata rispetto alla terna di partenza
⋆ rappresenta una trasformazione di coordinate che mette in
relazione le coordinate di uno stesso punto in due terne
differenti (di origine comune)
⋆ è l’operatore che consente di ruotare un vettore in una stessa
terna di coordinate
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
COMPOSIZIONE DI MATRICI DI
ROTAZIONE
p1 = R21 p2
p0 = R10 p1
p0 = R20 p2
Rij = (Rji )−1 = (Rji )T
• Rotazione in terna corrente
R20 = R10 R21
• Rotazione in terna fissa
R20 = R21 R10
CONTROLLO DEI ROBOT
• Esempio
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
ANGOLI DI EULERO
• matrice di rotazione
⋆ 9 parametri con 6 vincoli
• rappresentazione minima dell’orientamento
⋆ 3 parametri indipendenti
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Angoli ZYZ
R(φ) = Rz (ϕ)Ry′ (ϑ)Rz′′ (ψ)

cϕ cϑ cψ − sϕ sψ −cϕ cϑ sψ − sϕ cψ
=  sϕ cϑ cψ + cϕ sψ −sϕ cϑ sψ + cϕ cψ
−sϑ cψ
sϑ sψ

cϕ sϑ
sϕ sϑ 
cϑ
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Problema inverso
⋆ Assegnata

r11
R =  r21
r31
r12
r22
r32

r13
r23 
r33
i 3 angoli ZYZ sono (ϑ ∈ (0, π))
ϕ = Atan2(r23 , r13 )
q
2 + r2 , r
ϑ = Atan2
r13
23 33
ψ = Atan2(r32 , −r31 )
ovvero (ϑ ∈ (−π, 0))
ϕ = Atan2(−r23 , −r13 )
q
2 + r2 , r
ϑ = Atan2 − r13
23 33
ψ = Atan2(−r32 , r31 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Angoli di RPY
R(φ) = Rz (ϕ)Ry (ϑ)Rx (ψ)

cϕ cϑ cϕ sϑ sψ − sϕ cψ
=  sϕ cϑ sϕ sϑ sψ + cϕ cψ
−sϑ
cϑ sψ

cϕ sϑ cψ + sϕ sψ
sϕ sϑ cψ − cϕ sψ 
cϑ cψ
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Problema inverso
⋆ Assegnata

r11
R =  r21
r31
r12
r22
r32

r13
r23 
r33
i 3 angoli di RPY sono (ϑ ∈ (−π/2, π/2))
ϕ = Atan2(r21 , r11 )
q
2 + r2
ϑ = Atan2 −r31 , r32
33
ψ = Atan2(r32 , r33 )
ovvero (ϑ ∈ (π/2, 3π/2))
ϕ = Atan2(−r21 , −r11 )
q
2 + r2
ϑ = Atan2 −r31 , − r32
33
ψ = Atan2(−r32 , −r33 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
ASSE/ANGOLO
R(ϑ, r) = Rz (α)Ry (β)Rz (ϑ)Ry (−β)Rz (−α)
ry
sin α = q
rx2 + ry2
q
sin β = rx2 + ry2
cos α = q
rx
rx2 + ry2
cos β = rz
CONTROLLO DEI ROBOT

Prof. Bruno SICILIANO
rx2 (1 − cϑ ) + cϑ

R(ϑ, r) =  rx ry (1 − cϑ ) + rz sϑ
rx rz (1 − cϑ ) − ry sϑ
rx ry (1 − cϑ ) − rz sϑ
ry2 (1 − cϑ ) + cϑ
ry rz (1 − cϑ ) + rx sϑ

rx rz (1 − cϑ ) + ry sϑ
ry rz (1 − cϑ ) − rx sϑ 
rz2 (1 − cϑ ) + cϑ
R(ϑ, r) = R(−ϑ, −r)
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Problema inverso
⋆ Assegnata

r11
R =  r21
r31
r12
r22
r32

r13
r23 
r33
l’angolo e l’asse di rotazione sono (sin ϑ 6= 0)
r11 + r22 + r33 − 1
ϑ = cos −1
2


r − r23
1  32
r=
r13 − r31 
2 sin ϑ
r21 − r12
con
rx2 + ry2 + rz2 = 1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
QUATERNIONE UNITARIO
• rappresentazione a 4 parametri Q = {η, ǫ}
ϑ
2
ϑ
ǫ = sin r
2
η = cos
η 2 + ǫ2x + ǫ2y + ǫ2z = 1
⋆ (ϑ, r) e (−ϑ, −r) forniscono lo stesso quaternione

2(η 2 + ǫ2x ) − 1

R(η, ǫ) =  2(ǫx ǫy + ηǫz )
2(ǫx ǫz − ηǫy )
2(ǫx ǫy − ηǫz )
2(η 2 + ǫ2y ) − 1
2(ǫy ǫz + ηǫx )
2(ǫx ǫz + ηǫy )


2(ǫy ǫz − ηǫx ) 
2(η 2 + ǫ2z ) − 1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Problema inverso
⋆ Assegnata

r11
R =  r21
r31
r12
r22
r32

r13
r23 
r33
il quaternione è (η ≥ 0)
1√
r11 + r22 + r33 + 1
2
√

sgn (r32 − r23 ) r11 − r22 − r33 + 1
√
1

ǫ =  sgn (r13 − r31 ) r22 − r33 − r11 + 1 
2
√
sgn (r21 − r12 ) r33 − r11 − r22 + 1
η=
• quaternione estratto da R−1 = RT
Q−1 = {η, −ǫ}
• prodotto tra quaternioni
Q1 ∗ Q2 = {η1 η2 − ǫT1 ǫ2 , η1 ǫ2 + η2 ǫ1 + ǫ1 × ǫ2 }
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
TRASFORMAZIONI OMOGENEE
• Trasformazione di coordinate (traslazione + rotazione)
p0 = o01 + R10 p1
• Trasformazione inversa
p1 = −R01 o01 + R01 p0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Rappresentazione omogenea
 
p
p̃ =  
1
• Matrice di trasformazione omogenea
A01


=
R10
0T
• Trasformazione di coordinate
p̃0 = A01 p̃1

o01 

1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Trasformazione inversa
p̃1 = A10 p̃0 = A01
−1
p̃0
ove
A10


=
R01
0T

−R01 o01 

1
A−1 6= AT
• Successione di trasformazioni
p̃0 = A01 A12 . . . An−1
p̃n
n
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
CINEMATICA DIRETTA
• Manipolatore
⋆ insieme di bracci connessi tramite giunti
• Catena cinematica (dalla base all’organo terminale)
⋆ aperta (sequenza unica)
⋆ chiusa (sequenza forma un anello)
• Grado di mobilità
⋆ tipicamente associato a una articolazione = variabile di
giunto
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Terna base e terna utensile
• Equazione cinematica diretta
Teb (q)

 nbe (q)
=
0

sbe (q) abe (q) pbe (q) 

0
0
1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Manipolatore planare a due bracci
Teb (q)

 nbe
=
sbe
abe

pbe 

0
0
0
1


0 s12 c12 a1 c1 + a2 c12
 0 −c12 s12 a1 s1 + a2 s12 
=

1
0
0
0
0
0
0
1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Catena aperta
Tn0 (q) = A01 (q1 )A12 (q2 ) . . . An−1
(qn )
n
Teb (q) = T0b Tn0 (q)Ten
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Convenzione di Denavit-Hartenberg
• si sceglie l’asse zi giacente lungo l’asse del giunto i + 1
• si individua Oi all’intersezione dell’asse zi con la normale
comune agli assi zi−1 e zi , e con Oi′ si indica l’intersezione
della normale comune con zi−1
• si assume l’asse xi diretto lungo la normale comune agli
assi zi−1 e zi con verso positivo dal giunto i al giunto i + 1
• si sceglie l’asse yi in modo da completare una terna levogira
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Definizione non univoca della terna:
⋆ con riferimento alla terna 0, per la quale la sola direzione
dell’asse z0 risulta specificata: si possono quindi scegliere
arbitrariamente O0 ed x0
⋆ con riferimento alla terna n, per la quale il solo
asse xn risulta soggetto a vincolo (deve essere normale
all’asse zn−1 ): infatti non vi è giunto n + 1, per cui non è
definito zn e lo si può scegliere arbitrariamente
⋆ quando due assi consecutivi sono paralleli, in quanto la
normale comune tra di essi non è univocamente definita
⋆ quando due assi consecutivi si intersecano, in quanto il verso
di xi è arbitrario
⋆ quando il giunto i è prismatico, nel qual caso la sola
direzione dell’asse zi−1 è determinata
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Parametri di Denavit-Hartenberg
ai distanza di Oi da Oi′ ;
di coordinata su zi−1 di Oi′ ;
αi angolo intorno all’asse xi tra l’asse zi−1 e l’asse zi valutato
positivo in senso antiorario;
ϑi angolo intorno all’asse zi−1 tra l’asse xi−1 e l’asse xi valutato
positivo in senso antiorario.
• ai e αi sono sempre costanti
• se il giunto è rotoidale la variabile è ϑi
• se il giunto è prismatico la variabile è di
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Trasformazione di coordinate
Ai−1
i′
cϑi
s
=  ϑi
0
0
−sϑi
cϑi
0
0

1
′
0
Aii = 
0
0

0
cαi
sαi
0
cϑi
 sϑi
i−1 i′
Ai−1
(q
)
=
A
=
A

′
i
i
i
i
0
0


0 0
0 0

1 di
0 1
0
−sαi
cαi
0
−sϑi cαi
cϑi cαi
sαi
0

ai
0

0
1
sϑi sαi
−cϑi sαi
cαi
0

ai cϑi
ai sϑi 

di
1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Procedura operativa
1. Individuare e numerare consecutivamente gli assi dei giunti;
assegnare, rispettivamente, le direzioni agli assi z0 , . . . , zn−1
2. Fissare la terna base posizionandone l’origine sull’asse z0 ; gli
assi x0 e y0 sono scelti in maniera tale da ottenere una terna
levogira
Eseguire i passi da 3 a 5 per i = 1, . . . , n − 1:
3. Individuare l’origine Oi all’intersezione di zi con la normale
comune agli assi zi−1 e zi . Se gli assi zi−1 e zi sono paralleli e
il giunto i è rotoidale, posizionare Oi in modo da annullare di ;
se il giunto i è prismatico, scegliere Oi in corrispondenza di
una posizione di riferimento per la corsa del giunto (ad esempio
un fine-corsa)
4. Fissare l’asse xi diretto lungo la normale comune agli assi zi−1
e zi con verso positivo dal giunto i al giunto i + 1
5. Fissare l’asse yi in modo da ottenere una terna levogira
Per completare:
6. Fissare la terna n, allineando zn lungo la direzione di zn−1 se il
giunto n è rotoidale, ovvero scegliendo zn in maniera arbitraria
se il giunto n è prismatico; fissare l’asse xn in accordo al punto 4
7. Costruire per i = 1, . . . , n la tabella dei parametri ai , di , αi , ϑi
8. Calcolare sulla base dei parametri di cui al punto 7 le matrici
di trasformazione omogenea Ai−1
(qi ) per i = 1, . . . , n
i
9. Calcolare Tn0 (q) = A01 . . . An−1
che fornisce posizione e
n
orientamento della terna n rispetto alla terna 0
10. Assegnate T0b e Ten , calcolare la funzione cinematica diretta
Teb (q) = T0b Tn0 Ten che fornisce posizione e orientamento della
terna utensile rispetto alla terna base
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Catena chiusa
• Connessione di un singolo braccio con due bracci
• giunto virtuale di taglio
Aij (q ′ ) = Aii+1′ (qi+1′ ) . . . Aj−1
(qj )
j
(qk )
Aik (q ′′ ) = Aii+1′′ (qi+1′′ ) . . . Ak−1
k
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Vincoli
⋆ giunto j + 1 rotoidale
( j
Ri (q ′ ) pij (q ′ ) − pik (q ′′ ) = [ 0
0 djk ]
zji (q ′ ) = zki (q ′′ )
⋆ giunto j + 1 prismatico
 iT ′ x
(q
)
0

j
i
′
i
′′

p
(q
)
−
p
(q
)
=

j
k
 y iT (q ′ )
0
j
zji (q ′ ) = zki (q ′′ )



 iT ′ i ′′
xj (q )xk (q ) = cos ϑjk
⋆ risolti in termini di q . . .
Tn0 (q) = A0i Aij Ajn
T
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Procedura operativa
1. Selezionare un giunto non attuato della catena chiusa. Ipotizzare
di aprire tale giunto in modo da ottenere una catena aperta con
struttura ad albero
2. Calcolare le trasformazioni omogenee secondo la convenzione
di Denavit-Hartenberg
3. Trovare i vincoli di uguaglianza per le due terne connesse dal
giunto di taglio
4. Risolvere i vincoli in termini di un numero ridotto di variabili
di giunto
5. Esprimere le trasformazioni omogenee in funzione di tali
variabili di giunto e calcolare la funzione cinematica diretta
per composizione della varie trasformazioni dalla terna base
alla terna utensile
CONTROLLO DEI ROBOT
Manipolatore planare a tre bracci
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
1
2
3
a1
a2
a3
0
0
0
0
0
0
ϑ1
ϑ2
ϑ3
CONTROLLO DEI ROBOT
Ai−1
i
Prof. Bruno SICILIANO
ci
s
= i
0
0

−si
ci
0
0

0 ai ci
0 ai si 

1
0
0
1
i = 1, 2, 3
T30 = A01 A12 A23
c123
s
=  123
0
0

−s123
c123
0
0

0 a1 c1 + a2 c12 + a3 c123
0 a1 s1 + a2 s12 + a3 s123 

1
0
0
1
CONTROLLO DEI ROBOT
Manipolatore a parallelogramma
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
1′
2′
3′
1′′
4
a1′
a2′
a3′
a1′′
a4
0
0
0
0
0
0
0
0
0
0
ϑ1′
ϑ2′
ϑ3′
ϑ1′′
0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
′
′
A03′ (q ′ ) = A01′ A12′ A23′
 ′ ′ ′
c1 2 3 −s1′ 2′ 3′
c1′ 2′ 3′
s ′ ′ ′
= 123
0
0
0
0
c1′′
 s ′′
A01′′ (q ′′ ) =  1
0
0

1
′
0
A34 = 
0
0


0 a1′ c1′ + a2′ c1′ 2′ + a3′ c1′ 2′ 3′
0 a1′ s1′ + a2′ s1′ 2′ + a3′ s1′ 2′ 3′ 

1
0
0
1
−s1′′
c1′′
0
0
0
1
0
0
0
0
1
0

0 a1′′ c1′′
0 a1′′ s1′′ 

1
0
0
1

a4
0

0
1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Risoluzione vincoli
⋆ orientamento (OK)
⋆ posizione
 
0
3′
′
0
′
0
′′
R0 (q ) p3′ (q ) − p1′′ (q ) =  0 
0
⇓
a1′ (c1′ + c1′ 2′ 3′ ) + a1′′ (c1′ 2′ − c1′′ ) = 0
a1′ (s1′ + s1′ 2′ 3′ ) + a1′′ (s1′ 2′ − s1′′ ) = 0
ϑ2′ = ϑ1′′ − ϑ1′
ϑ3′ = π − ϑ2′ = π − ϑ1′′ + ϑ1′
• Cinematica diretta
−c1′
′
 −s ′
T40 (q) = A03′ (q)A34 =  1
0
0

s1′
−c1′
0
0

0 a1′′ c1′′ − a4 c1′
0 a1′′ s1′′ − a4 s1′ 

1
0
0
1
CONTROLLO DEI ROBOT
Manipolatore sferico
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
1
2
3
0
0
0
−π/2
π/2
0
0
d2
d3
ϑ1
ϑ2
0
CONTROLLO DEI ROBOT
c1
s
A01 =  1
0
0

Prof. Bruno SICILIANO
0 −s1
0
c1
−1
0
0
0

0
0

0
1
1
0
A23 = 
0
0
c2
s
A12 =  2
0
0


0
1
0
0
−s1
c1
0
0
c1 s2
s1 s2
c2
0
0
0
1
0
0 s2
0 −c2
1
0
0
0

0
0 

d3
1
T30 = A01 A12 A23
c1 c2
s c
= 1 2
−s2
0


c1 s2 d3 − s1 d2
s1 s2 d3 + c1 d2 

c2 d3
1

0
0

d2
1
CONTROLLO DEI ROBOT
Manipolatore antropomorfo
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
1
2
3
0
a2
a3
π/2
0
0
0
0
0
ϑ1
ϑ2
ϑ3
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
c1
s
A01 =  1
0
0

ci −si
ci
s
= i
0
0
0
0

Ai−1
i
0 s1
0 −c1
1
0
0
0
0
0
1
0

ai ci
ai si 

0
1

0
0

0
1
i = 2, 3
T30 = A01 A12 A23
c1 c23
s c
=  1 23
s23
0

−c1 s23
−s1 s23
c23
0
s1
−c1
0
0

c1 (a2 c2 + a3 c23 )
s1 (a2 c2 + a3 c23 ) 

a2 s2 + a3 s23
1
CONTROLLO DEI ROBOT
Polso sferico
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
4
5
6
0
0
0
−π/2
π/2
0
0
0
d6
ϑ4
ϑ5
ϑ6
CONTROLLO DEI ROBOT
c4
s
A34 =  4
0
0

Prof. Bruno SICILIANO
0 −s4
0
c4
−1
0
0
0

0
0

0
1
c6
s
A56 =  6
0
0

c5
s
A45 =  5
0
0

−s6
c6
0
0
0 s5
0 −c5
1
0
0
0

0
0

0
1

0 0
0 0

1 d6
0 1
T63 = A34 A45 A56
c4 c5 c6 − s4 s6
 s c c + c4 s6
= 4 5 6
−s5 c6
0

−c4 c5 s6 − s4 c6
−s4 c5 s6 + c4 c6
s5 s6
0
c4 s5
s4 s5
c5
0

c4 s5 d6
s4 s5 d6 

c5 d6
1
CONTROLLO DEI ROBOT
Manipolatore di Stanford
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
T60
Prof. Bruno SICILIANO
=
T30 T63

 n0
=
0
s0
a0
0
0

p0 

1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO

c1 s2 d3 − s1 d2 + c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5 d6
0
p =  s1 s2 d3 + c1 d2 + s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 d6 
c2 d3 + (−s2 c4 s5 + c2 c5 )d6


c1 c2 (c4 c5 c6 − s4 s6 ) − s2 s5 c6 − s1 (s4 c5 c6 + c4 s6 )
n0 =  s1 c2 (c4 c5 c6 − s4 s6 ) − s2 s5 c6 + c1 (s4 c5 c6 + c4 s6 ) 
−s2 (c4 c5 c6 − s4 s6 ) − c2 s5 c6


c1 −c2 (c4 c5 s6 + s4 c6 ) + s2 s5 s6 − s1 (−s4 c5 s6 + c4 c6 )
s0 =  s1 −c2 (c4 c5 s6 + s4 c6 ) + s2 s5 s6 + c1 (−s4 c5 s6 + c4 c6 ) 
s2 (c4 c5 s6 + s4 c6 ) + c2 s5 s6


c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5
a0 =  s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 
−s2 c4 s5 + c2 c5

CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Manipolatore antropomorfo con polso sferico
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Braccio
ai
αi
di
ϑi
1
2
3
4
5
6
0
a2
0
0
0
0
π/2
0
π/2
−π/2
π/2
0
0
0
0
d4
0
d6
ϑ1
ϑ2
ϑ3
ϑ4
ϑ5
ϑ6
CONTROLLO DEI ROBOT
c3
s
A23 =  3
0
0

0 s3
0 −c3
1
0
0
0
Prof. Bruno SICILIANO

0
0

0
1
c4
s
A34 =  4
0
0

0 −s4
0
c4
−1
0
0
0

0
0

d4
1

a2 c1 c2 + d4 c1 s23 + d6 c1 (c23 c4 s5 + s23 c5 ) + s1 s4 s5 p0 =  a2 s1 c2 + d4 s1 s23 + d6 s1 (c23 c4 s5 + s23 c5 ) − c1 s4 s5 
a2 s2 − d4 c23 + d6 (s23 c4 s5 − c23 c5 )


c1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 + s1 (s4 c5 c6 + c4 s6 )
0
n =  s1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 − c1 (s4 c5 c6 + c4 s6 ) 
s23 (c4 c5 c6 − s4 s6 ) + c23 s5 c6


c1 −c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 + s1 (−s4 c5 s6 + c4 c6 )
s0 =  s1 −c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 − c1 (−s4 c5 s6 + c4 c6 ) 
−s23 (c4 c5 s6 + s4 c6 ) − c23 s5 s6


c1 (c23 c4 s5 + s23 c5 ) + s1 s4 s5
0
a =  s1 (c23 c4 s5 + s23 c5 ) − c1 s4 s5 
s23 c4 s5 − c23 c5

CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Manipolatore del DLR
Braccio
ai
αi
di
ϑi
1
2
3
4
5
6
7
0
0
0
0
0
0
0
π/2
π/2
π/2
π/2
π/2
π/2
0
0
0
d3
0
d5
0
d7
ϑ1
ϑ2
ϑ3
ϑ4
ϑ5
ϑ6
ϑ7
CONTROLLO DEI ROBOT
Ai−1
i
Prof. Bruno SICILIANO
ci
 si
=
0
0

0 si
0
0 −ci 0 

i = 1, . . . , 6
1
0
di 
0
0
1


c7 −s7 0 0
 s7 c7 0 0 
6

A7 = 
0
0
1 d7 
0
0
0 1



d3 xd3 + d5 xd5 + d7 xd7
p07 =  d3 yd3 + d5 yd5 + d7 yd7 
d 3 zd3 + d 5 zd5 + d 7 zd7
xd3 = c1 s2
xd5 = c1 (c2 c3 s4 − s2 c4 ) + s1 s3 s4
xd7 = c1 (c2 k1 + s2 k2 ) + s1 k3
yd3
yd5
yd7
zd3
zd5
= s1 s2
= s1 (c2 c3 s4 − s2 c4 ) − c1 s3 s4
= s1 (c2 k1 + s2 k2 ) − c1 k3
= −c2
= c2 c4 + s2 c3 s4
zd7 = s2 (c3 (c4 c5 s6 − s4 c6 ) + s3 s5 s6 ) − c2 k2
k1 = c3 (c4 c5 s6 − s4 c6 ) + s3 s5 s6
k2 = s4 c5 s6 + c4 c6
k3 = s3 (c4 c5 s6 − s4 c6 ) − c3 s5 s6
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO

((xa c5 + xc s5 )c6 + xb s6 )c7 + (xa s5 − xc c5 )s7
n07 =  ((ya c5 + yc s5 )c6 + yb s6 )c7 + (ya s5 − yc c5 )s7 
(za c6 + zc s6 )c7 + zb s7


−((xa c5 + xc s5 )c6 + xb s6 )s7 + (xa s5 − xc c5 )c7
 −((ya c5 + yc s5 )c6 + yb s6 )s7 + (ya s5 − yc c5 )c7 
s07 = 

−(za c6 + zc s6 )s7 + zb c7

a07


(xa c5 + xc s5 )s6 − xb c6
=  (ya c5 + yc s5 )s6 − yb c6 
za s6 − zc c6
xa
xb
xc
ya
yb
yc
za
zb
zc
= (c1 c2 c3 + s1 s3 )c4 + c1 s2 s4
= (c1 c2 c3 + s1 s3 )s4 − c1 s2 c4
= c1 c2 s3 − s1 c3
= (s1 c2 c3 − c1 s3 )c4 + s1 s2 s4
= (s1 c2 c3 − c1 s3 )s4 − s1 s2 c4
= s1 c2 s3 + c1 c3
= (s2 c3 c4 − c2 s4 )c5 + s2 s3 s5
= (s2 c3 s4 + c2 c4 )s5 − s2 s3 c5
= s2 c3 s4 + c2 c4
⋆ se α7 = π/2
c7
 s7
6
A7 = 
0
0

0 s7
0 −c7
0
1
0
0

a7 c7
a7 s7 

0 
1
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Manipolatore umanoide
• Braccia costituite da due manipolatori del DLR (α7 = π/2)
• Struttura di collegamento tra l’organo terminale del torso
antropomorfo e le terne base dei manipolatori che fungono
da braccia
⋆ meccanismo che permette di mantenere il ‘petto’ del
manipolatore umanoide sempre ortogonale al suolo (ϑ4 =
−ϑ2 − ϑ3 )
• Cinematica diretta
0
r
= T30 Tt3 Trt Trh
Trh
0
l
Tlh
= T30 Tt3 Tlt Tlh
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
c23
 −s
Tt3 =  23
0
0

s23
c23
0
0
0
0
1
0

0
0

0
1
⋆ T30 come nel manipolatore antropomorfo
⋆ Trt e Tlt dipendono da β
r
r
⋆ Trh
e Tlh
come nel manipolatore del DLR
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
SPAZIO DEI GIUNTI E SPAZIO OPERATIVO
• Spazio dei giunti

q1
.
q =  .. 
qn

⋆ qi = ϑi (giunto rotoidale)
⋆ qi = di (giunto prismatico)
• Spazio operativo
p
x=
φ
⋆ p (posizione)
⋆ φ (orientamento)
• Equazione cinematica diretta
x = k(q)
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio




px
a1 c1 + a2 c12 + a3 c123
x =  py  = k(q) =  a1 s1 + a2 s12 + a3 s123 
φ
ϑ1 + ϑ2 + ϑ3
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Spazio di lavoro
• Spazio di lavoro raggiungibile
p = p(q)
qim ≤ qi ≤ qiM
i = 1, . . . , n
⋆ elementi di superficie planare, sferica, toroidale e cilindrica
• Spazio di lavoro destro
⋆ orientamenti diversi
CONTROLLO DEI ROBOT
• Esempio
⋆ configurazioni ammissibili
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
⋆ spazio di lavoro
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Accuratezza
⋆ scostamento tra posizione conseguita con la postura
assegnata e posizione calcolata tramite la cinematica diretta
⋆ valori tipici: (0.2, 1) mm
• Ripetibilità
⋆ capacità del manipolatore di tornare in una posizione
precedentemente raggiunta
⋆ valori tipici: (0.02, 0.2) mm
• Ridondanza cinematica
⋆ m < n (intrinseca)
⋆ r < m = n (funzionale)
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
CALIBRAZIONE CINEMATICA
• Valori precisi dei parametri DH per migliorare l’accuratezza di
un manipolatore
• Equazione cinematica diretta in funzione di tutti i parametri
x = k(a, α, d, ϑ)
xm locazione misurata
xn locazione nominale (parametri fissi + variabili giunto)
∆x =
∂k
∂k
∂k
∂k
∆a +
∆α +
∆d +
∆ϑ
∂a
∂α
∂d
∂ϑ
= Φ(ζn )∆ζ
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
⋆ l misure (lm ≫ 4n)
 

∆x1
Φ1
.
.
∆x̄ =  ..  =  ..  ∆ζ = Φ̄∆ζ
∆xl
Φl

• Soluzione
∆ζ = (Φ̄T Φ̄)−1 Φ̄T ∆x̄
ζ ′ = ζn + ∆ζ
. . . finché ∆ζ converge
⋆ stime più accurate dei parametri fissi
⋆ correzioni alle misure dei trasduttori
Inizializzazione
• postura di riferimento (home)
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
PROBLEMA CINEMATICO INVERSO
• Cinematica diretta
⋆ q
=⇒
T
⋆ q
=⇒
x
• Cinematica inversa
⋆ T
=⇒
q
⋆ x
=⇒
q
• Complessità
⋆ soluzione analitica (in forma chiusa) ?
⋆ soluzioni multiple
⋆ infinite soluzioni
⋆ non esistono soluzioni ammissibili
• Intuizione
⋆ algebrica
⋆ geometrica
• Tecniche numeriche
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Soluzione del manipolatore planare a tre bracci
• Soluzione algebrica
φ = ϑ1 + ϑ2 + ϑ3
pW x = px − a3 cφ = a1 c1 + a2 c12
pW y = py − a3 sφ = a1 s1 + a2 s12
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
p2W x + p2W y − a21 − a22
c2 =
2a1 a2
q
s2 = ± 1 − c22
ϑ2 = Atan2(s2 , c2 )
s1 =
(a1 + a2 c2 )pW y − a2 s2 pW x
p2W x + p2W y
c1 =
(a1 + a2 c2 )pW x + a2 s2 pW y
p2W y + p2W y
ϑ1 = Atan2(s1 , c1 )
ϑ3 = φ − ϑ1 − ϑ2
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Soluzione geometrica
p2W x + p2W y − a21 − a22
c2 =
.
2a1 a2
ϑ2 = cos −1 (c2 )
α = Atan2(pW y , pW x )
q
cβ p2W x + p2W y = a1 + a2 c2
β = cos
−1


p2W x + p2W y + a21 − a22


q
2a1 p2W x + p2W y
ϑ1 = α ± β
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Soluzione di manipolatori con polso sferico
pW = p − d6 a
• Soluzione disaccoppiata
⋆ calcolare la posizione del polso pW (q1 , q2 , q3 )
⋆ risolvere la cinematica inversa per (q1 , q2 , q3 )
⋆ calcolare R30 (q1 , q2 , q3 )
⋆ calcolare R63 (ϑ4 , ϑ5 , ϑ6 ) = R30 T R
⋆ risolvere la cinematica inversa per l’orientamento (ϑ4, ϑ5 , ϑ6 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Soluzione del manipolatore sferico
(A01 )−1 T30 = A12 A23
p1W




pW x c1 + pW y s1
d3 s2
 =  −d3 c2 
=
−pW z
−pW x s1 + pW y c1
d2
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
1 − t2
c1 =
1 + t2
s1 =
2t
1 + t2
(d2 + pW y )t2 + 2pW x t + d2 − pW y = 0
q
2
2
2
ϑ1 = 2Atan2 −pW x ± pW x + pW y − d2 , d2 + pW y
pW x c1 + pW y s1
d3 s2
=
−pW z
−d3 c2
ϑ2 = Atan2(pW x c1 + pW y s1 , pW z )
d3 =
q
(pW x c1 + pW y s1 )2 + p2W z
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Soluzione del manipolatore antropomorfo
pW x = c1 (a2 c2 + a3 c23 )
pW y = s1 (a2 c2 + a3 c23 )
pW z = a2 s2 + a3 s23
p2W x + p2W y + p2W z − a22 − a23
c3 =
2a2 a3
q
s3 = ± 1 − c23
ϑ3 = Atan2(s3 , c3 )
⇓
ϑ3,I ∈ [−π, π]
ϑ3,II = −ϑ3,I
CONTROLLO DEI ROBOT
c2 =
s2 =
Prof. Bruno SICILIANO
q
± p2W x + p2W y (a2 + a3 c3 ) + pW z a3 s3
a22 + a23 + 2a2 a3 c3
q
pW z (a2 + a3 c3 ) ∓ p2W x + p2W y a3 s3
a22 + a23 + 2a2 a3 c3
ϑ2 = Atan2(s2 , c2 )
⇓
⋆ per s+
3 =
p
1 − c23 :
a3 s+
3
q
ϑ2,I = Atan2 (a2 + a3 c3 )pW z −
p2W x + p2W y ,
q
+
2
2
(a2 + a3 c3 ) pW x + pW y + a3 s3 pW z
q
+
ϑ2,II = Atan2 (a2 + a3 c3 )pW z + a3 s3 p2W x + p2W y ,
q
+
2
2
−(a2 + a3 c3 ) pW x + pW y + a3 s3 pW z
⋆ per
ϑ2,III
ϑ2,IV
s−
3
p
= − 1 − c23 :
q
−
= Atan2 (a2 + a3 c3 )pW z − a3 s3 p2W x + p2W y ,
q
−
2
2
(a2 + a3 c3 ) pW x + pW y + a3 s3 pW z
q
−
= Atan2 (a2 + a3 c3 )pW z + a3 s3 p2W x + p2W y ,
q
−
2
2
−(a2 + a3 c3 ) pW x + pW y + a3 s3 pW z
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
ϑ1,I = Atan2(pW y , pW x )
ϑ1,II = Atan2(−pW y , −pW x )
• Quattro configurazioni ammissibili
(ϑ1,I , ϑ2,I , ϑ3,I ) (ϑ1,I , ϑ2,III , ϑ3,II )
(ϑ1,II , ϑ2,II , ϑ3,I )
(ϑ1,II , ϑ2,IV , ϑ3,II )
⋆ soluzione univoca solo se
pW x 6= 0
pW y 6= 0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Soluzione del polso sferico
n3x
R63 =  n3y
n3z

s3x
s3y
s3z

a3x
a3y 
a3z
ϑ4 = Atan2(a3y , a3x )
q
3
3
2
3
2
ϑ5 = Atan2
(ax ) + (ay ) , az
ϑ6 = Atan2(s3z , −n3z )
ϑ4 = Atan2(−a3y , −a3x )
q
3
ϑ5 = Atan2 − (a3x )2 + (a3y )2 , az
ϑ6 = Atan2(−s3z , n3z )