67
ROBOTICA Prof. Fabrizio Caccavale CINEMATICA Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioni minime dell’orientamento Trasformazioni omogenee Cinematica diretta Spazio dei giunti e spazio operativo Calibrazione cinematica Problema cinematico inverso

CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

CINEMATICA

• Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale

Matrice di rotazione

Rappresentazioni minime dell’orientamento

Trasformazioni omogenee

Cinematica diretta

Spazio dei giunti e spazio operativo

Calibrazione cinematica

Problema cinematico inverso

Page 2: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

POSIZIONE E ORIENTAMENTO DI UN CORPO RIGIDO

• Terna di riferimento Σ : O − xyz e Terna solidale al corpo Σ′ : O − x′y′z′

• Posizione (vettore posizione dell’origine) + Orientamento (versori: coseni direttori)

o′ =

o′xo′yo′z

x′ = x′

xx+ x′

yy + x′

zz x′

x = x′Tx . . .y′ = y′xx+ y′yy + y′zz y′x = y′Tx . . .z′ = z′xx+ z′yy + z′zz z′x = z′Tx . . .

Page 3: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

MATRICE DI ROTAZIONE

R =

⎣x′ y′ z′

⎦ =

x′

x y′x z′xx′

y y′y z′yx′

z y′z z′z

⎦ =

x′Tx y′Tx z′Tx

x′Ty y′Ty z′Ty

x′Tz y′Tz z′Tz

• Matrice ortogonale: 6 vincoli

⋆ ortogonalità (3): x′Ty′ = 0, x′Tz′ = 0, y′Tz′ = 0

⋆ norma unitaria (3): x′Tx′ = 1, y′Ty′ = 1, z′Tz′ = 1

RTR = I

RT = R−1

⋆ det(R) = ±1: terna levogira/destrogira

Page 4: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Rotazioni elementari

• Rotazione di α intorno a z (positiva in senso antiorario)

Rz(α) =

cosα −sinα 0sinα cosα 00 0 1

Page 5: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Rotazione di β intorno a y

Ry(β) =

cosβ 0 sinβ0 1 0

−sinβ 0 cosβ

• Rotazione di γ intorno a x

Rx(γ) =

1 0 00 cos γ −sin γ0 sin γ cos γ

• Vale Rk(−ϑ) = RTk (ϑ), con k = x, y, z

• Prima interpretazione di R come operatore di rotazioneΣ → Σ′: R esprime l’operazione di rotazione

che bisogna compiere intorno ad un asse dello spazio per sovrapporre gli assi della della terna di

riferimento, Σ, agli assi omologhi della terna solidale al corpo, Σ′

Page 6: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Rappresentazione di un vettore

Terna solidale e terna di riferimento con origine comune

p =

pxpypz

p′ =

p′xp′yp′z

p = p′xx′ + p′yy

′ + p′zz′ ⇒ p =

⎣x′ y′ z′

⎦p′ ⇒

{

p = Rp′

p′ = RTp

Page 7: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Esempio

px = p′x cosα− p′y sinα

py = p′x sinα+ p′y cosα

pz = p′z

⇒ p = Rz(α)p′

• Seconda interpretazione di R come matrice di trasformazione delle coordinate di un vettore espresse

nella terna Σ′ nelle coordinate dello stesso vettore espresse nella terna Σ

Page 8: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Rotazione di un vettore

• p′ e p = Rp′ vettori espressi nella stessa terna di riferimento

• Il vettore p, espresso nella terna Σ, ha norma pari a quella di p′ e risulta ruotato rispetto a p′ secondola matrice R

Infatti se

p = Rp′

si ha

pTp = p′TRTRp′ = p′Tp′

Page 9: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Esempio

px = p′x cosα− p′y sinα

py = p′x sinα+ p′y cosα

pz = p′z

⇒ p = Rz(α)p′

• Terza interpretazione di R come operatore matriciale di rotazione di un vettore di un angolo prefissato

intorno ad un generico asse di rotazione nello spazio

Page 10: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Significati della 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 puntoin due terne differenti (di origine comune)

E l’operatore che consente di ruotare un vettore in una stessa terna di coordinate

Page 11: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

COMPOSIZIONE DI MATRICI DI ROTAZIONE

• Tre terne di riferimento con origine comune:Σ0 : O−x0, y0, z0,Σ1 : O−x1, y1, z1,Σ2 : O−x2, y2, z2

• Stesso vettore espresso nelle tre terne

p1 = R1

2p2, p0 = R0

1p1, p0 = R0

2p2 ⇒ R0

2 = R0

1R1

2

dove Rji e la matrice di rotazione di Σi rispetto a Σj , ovvero che descrive la rotazione Σj → Σi

Rji = (Ri

j)−1 = (Ri

j)T

Rotazione in terna corrente (moltiplicazione da sx a dx)

Σ0 → Σ1 → Σ2

R01 R1

2

=⇒ R0

2 = R0

1R1

2

Rotazione in terna fissa (moltiplicazione da dx a sx)

Σ0 → Σ1 → Σ0 → Σ2 → Σ2

R01 R1

0 R12 R0

1

=⇒ R02 = R1

2R01

Page 12: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Esempio (rotazioni ZY e Y Z): rotazioni in terna corrente e in terna fissa, non commutativita dellerotazioniTerna corrente

Terna fissa

Page 13: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

ROTAZIONE INTORNO A UN ASSE ARBITRARIO

• Rappresentazione a 4 parametri (ϑ e r = [rx ry rz]T )

R(ϑ, r) = Rz(α)Ry(β)Rz(ϑ)Ry(−β)Rz(−α)

sinα =ry

r2x + r2ycosα =

rx√

r2x + r2ysinβ =

r2x + r2y cosβ = rz

Page 14: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Espressione esplicita

R(ϑ, r) =

r2x(1− cϑ) + cϑ rxry(1− cϑ)− rzsϑ rxrz(1− cϑ) + rysϑ

rxry(1− cϑ) + rzsϑ r2y(1− cϑ) + cϑ ryrz(1− cϑ)− rxsϑ

rxrz(1− cϑ)− rysϑ ryrz(1− cϑ) + rxsϑ r2z(1− cϑ) + cϑ

• La rappresentazione non e univoca poiche

R(ϑ, r) = R(−ϑ,−r)

Page 15: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Problema inverso

Assegnata R =

r11 r12 r13r21 r22 r23r31 r32 r33

l’angolo e l’asse equivalente sono (per sinϑ = 0):

somma elementi diagonale: ϑ = cos−1

(

r11 + r22 + r33 − 1

2

)

differenze elementi fuori diagonale: r =1

2 sinϑ

r32 − r23r13 − r31r21 − r12

componenti del versore dell’asse vincolate: r2x + r2y + r2z = 1

soluzione per sinϑ = 0:

ϑ =

{

formule ricavabili dall’espressione diR

ϑ = 0 asse non definito (singolarita della rappresentazione)

Page 16: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

QUATERNIONE UNITARIO

• Rappresentazione a 4 parametri Q = {η, ϵ}

η = cosϑ

2

ϵ = sinϑ

2r

η2 + ϵ2x + ϵ2y + ϵ2z = 1

⋆ (ϑ, r) e (−ϑ,−r) forniscono lo stesso quaternione

R(η, ϵ) =

2(η2 + ϵ2x)− 1 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

• Prodotto tra quaternioni

Q1 ∗Q2 = {η1η2 − ϵT1 ϵ2, η1ϵ2 + η2ϵ1 + ϵ1 × ϵ2}

Page 17: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Problema inverso

⋆ Assegnata

R =

r11 r12 r13r21 r22 r23r31 r32 r33

il quaternione e (η ≥ 0)

η =1

2

√r11 + r22 + r33 + 1

ϵ =1

2

sgn (r32 − r23)√r11 − r22 − r33 + 1

sgn (r13 − r31)√r22 − r33 − r11 + 1

sgn (r21 − r12)√r33 − r11 − r22 + 1

• Quaternione estratto da R−1 = RT

Q−1 = {η,−ϵ}

Page 18: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

RAPPRESENTAZIONI MINIME DELL’ORIENTAMENTO

• Rappresentazioni dell’orientamento

⋆ Matrice di rotazione: 9 parametri con 6 vincoli ⇒ solo 3 sono indipendenti

⋆ Asse/angolo: 4 parametri con 1 vincolo ⇒ solo 3 sono indipendenti

• Rappresentazioni in termini di 3 angoli che rappresentano

⋆ 3 rotazioni elementari intorno ad assi coordinati

⋆ 12 sequenze possibili (escludendo rotazioni successive intorno ad assi paralleli)

Page 19: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Angoli di Eulero (ZY Z)

• Rotazione ZY Z in terna corrente

REUL = Rz(ϕ)Ry′(ϑ)Rz′′(ψ)

=

cϕcϑcψ − sϕsψ −cϕcϑsψ − sϕcψ cϕsϑsϕcϑcψ + cϕsψ −sϕcϑsψ + cϕcψ sϕsϑ

−sϑcψ sϑsψ cϑ

• Se ϑ = 0, π: rotazioni intorno ad assi paralleli ⇒ la rappresentazione degenera

Page 20: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Problema inverso

Assegnata R =

r11 r12 r13r21 r22 r23r31 r32 r33

i 3 angoli di Eulero sono (segno√

):

per ϑ ∈ (0,π)

ϕ = Atan2(r23, r13)

ϑ = Atan2

(

r213

+ r223, r33

)

ψ = Atan2(r32,−r31)

per ϑ ∈ (−π, 0)

ϕ = Atan2(−r23,−r13)

ϑ = Atan2

(

−√

r213

+ r223, r33

)

ψ = Atan2(−r32, r31)

• Per ϑ = 0, π le soluzioni degenerano, in quanto e possibile solo determinare ϕ± ψ :

Singolarita di rappresentazione

Page 21: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Angoli di RPY (ZY X)

• Rotazione ZY X in terna corrente (o XY Z in terna fissa)

RRPY = Rz(ϕ)Ry(ϑ)Rx(ψ)

=

cϕcϑ cϕsϑsψ − sϕcψ cϕsϑcψ + sϕsψsϕcϑ sϕsϑsψ + cϕcψ sϕsϑcψ − cϕsψ−sϑ cϑsψ cϑcψ

• Se ϑ = ±π/2: rotazioni intorno ad assi paralleli ⇒ la rappresentazione degenera

Page 22: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Problema inverso

Assegnata R =

r11 r12 r13r21 r22 r23r31 r32 r33

i 3 angoli di RPY sono (segno√

):

per ϑ ∈ (−π/2,π/2)

ϕ = Atan2(r21, r11)

ϑ = Atan2

(

−r31,√

r232

+ r233

)

ψ = Atan2(r32, r33)

per ϑ ∈ (π/2, 3π/2)

ϕ = Atan2(−r21,−r11)

ϑ = Atan2

(

−r31,−√

r232

+ r233

)

ψ = Atan2(−r32,−r33)

• Per ϑ = ±π/2 le soluzioni degenerano, in quanto e possibile solo determinare ϕ∓ ψ :

Singolarita di rappresentazione

Page 23: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

TRASFORMAZIONI OMOGENEE

• Trasformazione di coordinate (traslazione + rotazione)

p0 = o01 +R0

1p1

• Trasformazione inversa (R10 = (R0

1)T )

p1 = −R1

0o0

1 +R1

0p0

Page 24: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Rappresentazione omogenea

p =

[

p1

]

• Matrice di trasformazione omogenea (4× 4)

A0

1 =

[

R01 o0

1

0T 1

]

• Trasformazione di coordinatep0 = A0

1p1

Page 25: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Trasformazione inversap1 = A1

0p0 =

(

A0

1

)−1p0

ove

A10 =

(

A01

)−1=

[

R10 −R1

0o01

0T 1

]

Si noti cheA−1 = AT ⇒ A non e ortogonale

• Successione di trasformazioni

p0 = A01A

12 . . .A

n−1n pn

Page 26: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

CINEMATICA DIRETTA

• Catena cinematica aperta

⋆ base → sequenza bracci → organo terminale

⋆ sequenza di bracci connessi tramite giunti

⋆ variabile di giunto qi = grado di mobilita

⋆ giunti rotoidali e prismatici

• Problema della cinematica diretta: determinare posizione e orientamento dell’organo terminale in

funzione delle variabili di giunto

Page 27: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore

• Terne

{

Terna base (Σb)Terna utensile (Σe), versori ne (normale), se (sliding), ae (approach)

• Equazione cinematica diretta

T be (q) =

nbe(q) sbe(q) ab

e(q) pbe(q)

0 0 0 1

Page 28: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore planare a due bracci

T be (q) =

nbe sbe ab

e pbe

0 0 0 1

=

0 s12 c12 a1c1 + a2c120 −c12 s12 a1s1 + a2s121 0 0 00 0 0 1

Page 29: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

CONVENZIONE DI DENAVIT-HARTENBERG

• Manipolatore ad n giunti: n+ 1 bracci (braccio 0 fisso a terra)

⋆ Successione di n+ 1 terne solidali ai bracci: Σ0 . . .Σn

⋆ Σ0: fissata alla base, Σb: terna base, Σe: terna utensile

• Terne fissate

⋆ in modo arbitrario

⋆ secondo procedure sistematiche

Page 30: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• 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 O′

i siindica l’intersezione della normale comune con zi−1 (asse del giunto i)

• si assume l’asse xi diretto lungo la normale comune agli assi zi−1 e zi con verso positivo dal giunto ial giunto i+ 1

• si sceglie l’asse yi in modo da completare una terna levogira

Page 31: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Definizione non univoca della terna:

⋆ con riferimento alla terna 0, per la quale la sola direzione dell’asse z0 risulta specificata: si possonoquindi scegliere arbitrariamente O0 ed x0

⋆ con riferimento alla terna n, per la quale il solo asse xn risulta soggetto a vincolo (deve esserenormale all’asse zn−1): infatti non vi e giunto n+ 1, per cui non e definito zn e lo si puo sceglierearbitrariamente (se il giunto n Ł rotoidale, tipicamente si sceglie zn ∥ zn−1

⋆ quando due assi consecutivi sono paralleli, in quanto la normale comune tra di essi non e univoca-mente definita

⋆ quando due assi consecutivi si intersecano, in quanto il verso di xi e arbitrario

⋆ quando il giunto i e prismatico, nel qual caso la sola direzione dell’asse zi−1 e determinata

• Sfruttare le indeterminatezze per semplificare la procedura (ad es., allineando assi di terne consecutive)

Page 32: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Parametri di Denavit-Hartenberg

ai distanza di Oi da O′

i;di coordinata su zi−1 di O′

i;α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 e rotoidale la variabile e ϑi

se il giunto e prismatico la variabile e di

Page 33: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Trasformazione di coordinate

Σi−1 → Σi′ ≡ rotazione di ϑi intorno a zi−1

traslazione di di lungo zi−1

⇒ Ai−1

i′ =

cϑi−sϑi

0 0sϑi

cϑi0 0

0 0 1 di0 0 0 1

Σi′ → Σi ≡ rotazione di αi intorno a xi′

traslazione di ai lungo xi′⇒ Ai′

i =

1 0 0 ai0 cαi

−sαi0

0 sαicαi

00 0 0 1

Ai−1

i (qi) = Ai−1

i′ Ai′

i =

cϑi−sϑi

cαisϑi

sαiaicϑi

sϑicϑi

cαi−cϑi

sαiaisϑi

0 sαicαi

di0 0 0 1

⎦qi =

{

di prismaticoϑi rotoidale

Page 34: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Composizione di trasformazioni

T 0

n (q) = A0

1(q1)A1

2(q2) . . .An−1

n (qn)

T be (q) = T b

0T0

n(q)Tne

Page 35: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Procedura operativa

1. Individuare e numerare consecutivamente gli assi dei giunti; assegnare, rispettivamente, le direzioniagli assi z0, . . . , zn−1

2. Fissare la Σ0 posizionandone l’origine sull’asse z0; gli assi x0 e y0 sono scelti in maniera tale daottenere una terna levogira

Eseguire i passi da 3 a 5 per i = 1, . . . , n− 1:

3. Individuare l’origineOi 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 e rotoidale, posizionare Oi in modo da annullare di; se il giunto i e

prismatico, scegliere Oi in corrispondenza di una posizione di riferimento per la corsa del giunto (adesempio 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 algiunto i+ 1

5. Fissare l’asse yi in modo da ottenere una terna levogira

Page 36: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Per completare:

6. Fissare la terna n scegliendo l’asse xn perpendicolare all’asse zn−1; se il giunto n e di rotazione,allineare zn lungo la direzione di zn−1

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

i (qi)per i = 1, . . . , n

9. Calcolare la funzione cinematica diretta T 0n(q) = A0

1 . . .An−1n che fornisce posizione e orientamento

della terna n rispetto alla terna base

10. Calcolare T be (q) = T b

0T0n (q)T

ne

Page 37: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore planare a tre bracci

Braccio ai αi di ϑi

1 a1 0 0 ϑ12 a2 0 0 ϑ23 a3 0 0 ϑ3

Page 38: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Ai−1

i =

ci −si 0 aicisi ci 0 aisi0 0 1 00 0 0 1

⎦i = 1, 2, 3

T 0

3 = A0

1A1

2A2

3

=

c123 −s123 0 a1c1 + a2c12 + a3c123s123 c123 0 a1s1 + a2s12 + a3s1230 0 1 00 0 0 1

Page 39: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore sferico

Braccio ai αi di ϑi

1 0 −π/2 0 ϑ12 0 π/2 d2 ϑ23 0 0 d3 0

Page 40: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

A0

1 =

c1 0 −s1 0s1 0 c1 00 −1 0 00 0 0 1

⎦A1

2 =

c2 0 s2 0s2 0 −c2 00 1 0 d20 0 0 1

A2

3 =

1 0 0 00 1 0 00 0 1 d30 0 0 1

T 0

3 = A0

1A1

2A2

3

=

c1c2 −s1 c1s2 c1s2d3 − s1d2s1c2 c1 s1s2 s1s2d3 + c1d2−s2 0 c2 c2d30 0 0 1

Page 41: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore antropomorfo

Braccio ai αi di ϑi

1 0 π/2 0 ϑ12 a2 0 0 ϑ23 a3 0 0 ϑ3

Page 42: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

A0

1 =

c1 0 s1 0s1 0 −c1 00 1 0 00 0 0 1

Ai−1

i =

ci −si 0 aicisi ci 0 aisi0 0 1 00 0 0 1

⎦i = 2, 3

T 0

3 = A0

1A1

2A2

3

=

c1c23 −c1s23 s1 c1(a2c2 + a3c23)s1c23 −s1s23 −c1 s1(a2c2 + a3c23)s23 c23 0 a2s2 + a3s230 0 0 1

Page 43: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Polso sferico

Braccio ai αi di ϑi

4 0 −π/2 0 ϑ45 0 π/2 0 ϑ56 0 0 d6 ϑ6

Page 44: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

A3

4 =

c4 0 −s4 0s4 0 c4 00 −1 0 00 0 0 1

⎦A4

5 =

c5 0 s5 0s5 0 −c5 00 1 0 00 0 0 1

A5

6 =

c6 −s6 0 0s6 c6 0 00 0 1 d60 0 0 1

T 3

6 = A3

4A4

5A5

6

=

c4c5c6 − s4s6 −c4c5s6 − s4c6 c4s5 c4s5d6s4c5c6 + c4s6 −s4c5s6 + c4c6 s4s5 s4s5d6

−s5c6 s5s6 c5 c5d60 0 0 1

Page 45: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore di Stanford

T 0

6 = T 0

3 T3

6 =

n0 s0 a0 p0

0 0 0 1

Page 46: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

p0 =

c1s2d3 − s1d2 +(

c1(c2c4s5 + s2c5)− s1s4s5)

d6s1s2d3 + c1d2 +

(

s1(c2c4s5 + s2c5) + c1s4s5)

d6c2d3 + (−s2c4s5 + c2c5)d6

n0 =

c1(

c2(c4c5c6 − s4s6)− s2s5c6)

− s1(s4c5c6 + c4s6)s1(

c2(c4c5c6 − s4s6)− s2s5c6)

+ c1(s4c5c6 + c4s6)−s2(c4c5c6 − s4s6)− c2s5c6

s0 =

c1(

−c2(c4c5s6 + s4c6) + s2s5s6)

− s1(−s4c5s6 + c4c6)s1(

−c2(c4c5s6 + s4c6) + s2s5s6)

+ c1(−s4c5s6 + c4c6)s2(c4c5s6 + s4c6) + c2s5s6

a0 =

c1(c2c4s5 + s2c5)− s1s4s5s1(c2c4s5 + s2c5) + c1s4s5

−s2c4s5 + c2c5

Page 47: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Manipolatore antropomorfo con polso sferico

Braccio ai αi di ϑi

1 0 π/2 0 ϑ12 a2 0 0 ϑ23 0 π/2 0 ϑ34 0 −π/2 d4 ϑ45 0 π/2 0 ϑ56 0 0 d6 ϑ6

Page 48: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

A2

3 =

c3 0 s3 0s3 0 −c3 00 1 0 00 0 0 1

⎦A3

4 =

c4 0 −s4 0s4 0 c4 00 −1 0 d40 0 0 1

p0 =

a2c1c2 + d4c1s23 + d6(

c1(c23c4s5 + s23c5) + s1s4s5)

a2s1c2 + d4s1s23 + d6(

s1(c23c4s5 + s23c5)− c1s4s5)

a2s2 − d4c23 + d6(s23c4s5 − c23c5)

n0 =

c1(

c23(c4c5c6 − s4s6)− s23s5c6)

+ s1(s4c5c6 + c4s6)s1(

c23(c4c5c6 − s4s6)− s23s5c6)

− c1(s4c5c6 + c4s6)s23(c4c5c6 − s4s6) + c23s5c6

s0 =

c1(

−c23(c4c5s6 + s4c6) + s23s5s6)

+ s1(−s4c5s6 + c4c6)s1(

−c23(c4c5s6 + s4c6) + s23s5s6)

− c1(−s4c5s6 + c4c6)−s23(c4c5s6 + s4c6)− c23s5s6

a0 =

c1(c23c4s5 + s23c5) + s1s4s5s1(c23c4s5 + s23c5)− c1s4s5

s23c4s5 − c23c5

Page 49: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

SPAZIO DEI GIUNTI E SPAZIO OPERATIVO

• Spazio dei giunti

q =

q1...qn

⎦ ∈ IRn qi =

{

ϑi (giunto rotoidale)di (giunto prismatico)

• Spazio operativo (m ≤ 6)

x =

[

]

∈ IRm

{

p (posizione)φ (orientamento)

• Equazione cinematica diretta

x = k(q) =

[

p(q)φ(q)

]

Page 50: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Esempio

x =

pxpyφ

⎦ = k(q) =

a1c1 + a2c12 + a3c123a1s1 + a2s12 + a3s123

ϑ1 + ϑ2 + ϑ3

• Nel caso piu generale il calcolo di φ(q) non e attuabile in forma diretta, ma deve passare attraverso larisoluzione del problema (inverso) R0

n(q) → φ(q)

Page 51: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Spazio di lavoro

• Spazio di lavoro raggiungibile (con almeno 1 orientamento)

p = p(q) qim ≤ qi ≤ qiM i = 1, . . . , n

⋆ regione finita, chiusa e connessa (p(q) continua)

⋆ elementi di superficie planare, sferica, toroidale e cilindrica (giunti rotoidali e/o prismatici)

• Spazio di lavoro destro

⋆ orientamenti diversi

• SPD ⊂ SPR

Page 52: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Esempio

configurazioni ammissibili (gomito alto/basso ↔ q2 <> 0)

spazio di lavoro (gomito alto/basso ↔DAEFD/BCDAB)

Page 53: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Accuratezza

⋆ scostamento tra posizione conseguita con la postura assegnata e posizione calcolata tramite lacinematica diretta

⋆ valori tipici: (0.2, 1) mm su un’estensione di 1.5 m

• Ripetibilita

⋆ capacita del manipolatore di tornare in una posizione precedentemente raggiunta

⋆ valori tipici: (0.02, 0.2) mm su un’estensione di 1.5 m

• Ridondanza cinematica

⋆ m < n (intrinseca)

⋆ r < m = n (funzionale)

Page 54: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

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,ϑ)

⋆ a = [a1 . . . an]T . . . ϑ = [ϑ1 . . .ϑn]

T

⋆ xm: locazione misurata

⋆ xn: locazione nominale (parametri fissi + variabili giunto)

⋆ ∆x = xm − xn: errore

Page 55: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Per piccoli scostamenti:

∆x =∂k

∂a

ζn

∆a+∂k

∂α

ζn

∆α+∂k

∂d

ζn

∆d+∂k

∂ϑ

ζn

∆ϑ

= Φ(ζn)∆ζ

⋆ ζ = [a α d ϑ]T

⋆ ∆a = am − an . . . ∆ζ = ζm − ζn

⋆ Φ: matrice di calibrazione

⋆ m equazioni nelle 4n incognite ∆ζ (m < 4n)

Page 56: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• l misure (lm ≫ 4n)

∆x =

∆x1

...∆xl

⎦ =

Φ1

...Φl

⎦∆ζ = Φ∆ζ

• Soluzione iterativa

∆ζ = (ΦT Φ)−1ΦT∆x

ζ′ = ζn +∆ζ

ζ′ → ζn

. . .finche ∆ζ converge

⋆ stime piu accurate dei parametri fissi

⋆ correzioni alle misure dei trasduttori

• Inizializzazione

⋆ postura di riferimento (home)

Page 57: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

PROBLEMA CINEMATICO INVERSO

• Cinematica diretta

⋆ q =⇒ T oppure q =⇒ x

• Cinematica inversa

⋆ T =⇒ q oppure x =⇒ q

• Complessita

⋆ esistenza di soluzioni ammissibili ? soluzione analitica (in forma chiusa) ?

⋆ soluzioni multiple, infinite soluzioni

• Intuizione algebrica e geometrica

• Tecniche numeriche

Page 58: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Soluzione del manipolatore planare a tre bracci

• Soluzione algebrica φ = ϑ1 + ϑ2 + ϑ3

pWx = px − a3cφ = a1c1 + a2c12

pWy = py − a3sφ = a1s1 + a2s12

Page 59: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Soluzione per ϑ2 (±↔ gomito basso/alto), −1 ≤ c2 ≤ 1 (altrimenti /∈ SPR)

c2 =p2Wx + p2Wy − a21 − a22

2a1a2, s2 = ±

1− c22, ⇒ ϑ2 = Atan2(s2, c2)

• Soluzione per ϑ1 (ϑ2 noto)

s1 =(a1 + a2c2)pWy − a2s2pWx

p2Wx + p2Wy

, c1 =(a1 + a2c2)pWx + a2s2pWy

p2Wy + p2Wy

, ⇒ ϑ1 = Atan2(s1, c1)

• Soluzione per ϑ3 da angolo di orientamento (ϑ1 e ϑ2 noti)

ϑ3 = φ− ϑ1 − ϑ2

Page 60: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Soluzione geometrica

• |OW | =√

p2Wx + p2Wy

• Teorema dei coseni p2Wx + p2Wy = a21 + a22 − 2a1a2cos (π − ϑ2)

Page 61: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Soluzione per ϑ2 (ϑ2 ∈ (0,π) / ϑ2 ∈ (−π, 0) ↔ gomito basso/alto),√

p2Wx + p2Wy ≤ a1 + a2

(altrimenti /∈ SPR)

c2 =p2Wx + p2Wy − a21 − a22

2a1a2, ⇒ ϑ2 = cos−1(c2)

• Soluzione per ϑ1 (±↔ se ϑ2 <> 0), β ∈ (0,π)

pWy

pWx= tanα, cβ

p2Wx + p2Wy = a1 + a2c2

α = Atan2(pWy, pWx), β = cos−1

p2Wx + p2Wy + a21 − a22

2a1√

p2Wx + p2Wy

⎠ ⇒ ϑ1 = α± β

• Soluzione per ϑ3

ϑ3 = φ− ϑ1 − ϑ2

Page 62: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Soluzione di manipolatori con polso sferico

• Assegnati p e R = [n s a]

• Soluzione disaccoppiata: punto polso pW = p− d6a⋆ calcolo di pW (q1, q2, q3)⋆ cinematica inversa per (q1, q2, q3) ⇒ calcolo di R0

3(q1, q2, q3)⋆ calcolo di R3

6(ϑ4,ϑ5,ϑ6) = R03TR ⇒ cinematica inversa per (ϑ4,ϑ5,ϑ6)

Page 63: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Soluzione del manipolatore antropomorfo

• DisallineamentoΣ3: d4 = a3, d6 = 0, ϑ3 → ϑ3+π2

=⇒ cinematica del manipolatore antropomorfosenza polso

pWx = c1(a2c2 + a3c23)pWy = s1(a2c2 + a3c23)pWz = a2s2 + a3s23

⇒ a2c2 + a3c23 = ±√

p2Wx + p2Wy

Page 64: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Se pWx = 0 e/o pWy = 0 (se pWx = pWy = 0⇒∞ soluzioni per ϑ1), si hanno 2 soluzioni

{

ϑ1,d = Atan2(pWy, pWx)

ϑ1,s = Atan2(−pWy,−pWx) = Atan2(pWy, pWx)± π + se pWy < 0 − se pWy ≥ 0

Corrispondono alle configurazioni di spalla destra e spalla sinistra

Page 65: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Bracci 2 e 3: struttura planare formata dai primi 2 bracci del planare a tre bracci (con pWx →±√

p2Wx + p2Wy , pWy → pWz , a1 → a2, a2 → a3, ϑ1 → ϑ2, ϑ2 → ϑ3)

2 soluzioni per ϑ3: ϑ3,b (+) → gomito basso e ϑ3,a (-) → gomito alto

c3 =p2Wx + p2Wy + p2Wz − a22 − a23

2a2a3

s3 = ±√

1− c23

⇒ ϑ3 = Atan2(s3, c3)

4 soluzioni per ϑ2: ϑ2,bd, ϑ2,bs → gomito basso, spalla destra/sinistra e ϑ2,ad, ϑ2,as → gomito alto,

spalla destra/sinistra

s2 =(a2 + a3c3)pWz ∓ a3s3

p2Wx + p2Wy

p2Wx + p2Wy + p2Wz

c2 =±(a2 + a3c3)

p2Wx + p2Wy + a3s3pWz

p2Wx + p2Wy + p2Wz

⇒ ϑ2 = Atan2(s2, c2)

Page 66: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

• Quattro configurazioni ammissibili (a meno di fine corsa...)

⋆ soluzione univoca solo sepWx = 0 pWy = 0

⋆ Se pWx = 0 e pWy = 0 ⇒ ∞ soluzioni (e possibile ricavare ϑ2 e ϑ3 a prescindere dal valore diϑ1) ⇒ singolarita cinematica

Page 67: CINEMATICA · CINEMATICA • Relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioniminime dell’orientamento

ROBOTICA Prof. Fabrizio Caccavale

Soluzione del polso sferico

• Soluzione inversa per angoli di Eulero ZY Z!

R3

6 =

n3x s3x a3x

n3y s3y a3y

n3z s3z a3z

⎦ ⇒

ϑ5 ∈ (0,π)

ϑ4 = Atan2(a3y, a3x)

ϑ5 = Atan2(√

(a3x)2 + (a3y)

2, a3z

)

ϑ6 = Atan2(s3z,−n3z)

ϑ5 ∈ (−π, 0)

ϑ4 = Atan2(−a3y,−a3x)

ϑ5 = Atan2(

−√

(a3x)2 + (a3y)

2, a3z

)

ϑ6 = Atan2(−s3z, n3z)