Controllo dei Robot - poliba.itcomuni . Il vettore 𝒑rappresentativo di un generico punto nello...

Post on 12-Mar-2020

2 views 0 download

Transcript of Controllo dei Robot - poliba.itcomuni . Il vettore 𝒑rappresentativo di un generico punto nello...

Paolo Lino

Controllo dei Robot

Controllo dei Robot 1

Table of contents

Introduction

Paolo LinoDipartimento di Ing. Elettrica e dell’Informazione (DEI)

Politecnico di Bari

e-mail: paolo.lino [at] poliba.it

Cinematica – Parte 1

Paolo Lino

La cinematica si occupa dello studio analitico della geometria

del movimento del braccio rispetto ad un sistema di riferimento

in funzione del tempo, prescindendo dalle forze e dai momenti

che provocano il moto

CINEMATICADIRETTA

CINEMATICAINVERSA

Variabili di giuntoPosizione e orientamento (posa)

end-effector

Cinematica del braccio di un robot

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Posizione ed orientamento di un corpo rigido

Controllo dei Robot

Corso di Controllo dei Robot

𝑂′ = 𝑂π‘₯β€² π’Š + 𝑂𝑦

β€² 𝒋 + π‘‚π‘§β€²π’Œ 𝑂′ =

𝑂π‘₯β€²

𝑂𝑦′

𝑂𝑧′

π’Šβ€² = π‘₯π‘₯β€² π’Š + π‘₯𝑦

β€² 𝒋 + π‘₯π‘§β€²π’Œ

𝒋′ = 𝑦π‘₯β€²π’Š + 𝑦𝑦

β€² 𝒋 + π‘¦π‘§β€²π’Œ

π’Œβ€² = 𝑧π‘₯β€² π’Š + 𝑧𝑦

β€² 𝒋 + π‘§π‘§β€²π’Œ

π’Šβ€² =

π‘₯π‘₯β€²

π‘₯𝑦′

π‘₯𝑧′

𝒋′ =

𝑦π‘₯β€²

𝑦𝑦′

𝑦𝑧′

π’Œβ€² =

𝑧π‘₯β€²

𝑧𝑦′

𝑧𝑧′

x

z

yiAO

O’

'

xO

'

yO

'

zO

jk

i' j'

k'

x

z

yi

'

xz

'

yz

'

zz

jk k'

Paolo Lino

Matrice di rotazione

ORTOGONALE

det 𝑅 = 1 se la terna Γ¨ levogira

det 𝑅 = βˆ’1 se la terna Γ¨ destrogira.

π’Šβ€²π‘‡

𝒋′𝑇

π’Œβ€²π‘‡

π’Šβ€² 𝒋′ π’Œβ€² =

π’Šβ€²π‘‡π’Šβ€² π’Šβ€²

𝑇𝒋′ π’Šβ€²

π‘‡π’Œβ€²

π’‹β€²π‘‡π’Šβ€² 𝒋′

𝑇𝒋′ 𝒋′

π‘‡π’Œβ€²

π’Œβ€²π‘‡π’Šβ€² π’Œβ€²π‘‡π’‹β€² π’Œβ€²π‘‡π’Œβ€²

=1 0 00 1 00 0 1

Controllo dei Robot

Corso di Controllo dei Robot

𝑅 = π’Šβ€² 𝒋′ π’Œβ€² =

π‘₯π‘₯β€²

π‘₯𝑦′

π‘₯𝑧′

𝑦π‘₯β€²

𝑦𝑦′

𝑦𝑧′

𝑧π‘₯β€²

𝑧𝑦′

𝑧𝑧′

=π’Šβ€²

π‘‡π’Š

π’Šβ€²π‘‡π’‹

π’Šβ€²π‘‡π’Œ

π’‹β€²π‘‡π’Š

𝒋′𝑇𝒋

π’‹β€²π‘‡π’Œ

π’Œβ€²π‘‡π’Š

π’Œβ€²π‘‡π’‹

π’Œβ€²π‘‡π’Œ

𝑅𝑇𝑅 = 𝐼

det 𝑅 = π’Œβ€²π‘‡ π’Šβ€² ∧ 𝒋′ = π’Šβ€²π‘‡

𝒋′ ∧ π’Œβ€² = 𝒋′𝑇

π’Œβ€² ∧ π’Šβ€²

Paolo Lino

Rotazioni elementari

π‘…π‘˜ βˆ’πœ— = π‘…π‘˜π‘‡ πœ— con π‘˜ = π‘₯, 𝑦, 𝑧

Controllo dei Robot

Corso di Controllo dei Robot

a

a

a)

a)

a)

a)

b)b

bb)

b)

b)

g

g

g)

g)

g)

g)

𝑅𝑧 𝛼 = 𝑖′ 𝑗′ π‘˜β€² =π‘π‘œπ‘  𝛼𝑠𝑒𝑛 𝛼

0

βˆ’π‘ π‘’π‘› π›Όπ‘π‘œπ‘  𝛼

0

001

a

a

a)

a)

a)

a)

b)b

bb)

b)

b)

g

g

g)

g)

g)

g)

a

a

a)

a)

a)

a)

b)b

bb)

b)

b)

g

g

g)

g)

g)

g)

𝑅𝑦 𝛽 = 𝑖′ 𝑗′ π‘˜β€² =π‘π‘œπ‘  𝛽

0βˆ’π‘ π‘’π‘› 𝛽

010

𝑠𝑒𝑛 𝛽0

π‘π‘œπ‘  𝛽𝑅π‘₯ 𝛾 = 𝑖′ 𝑗′ π‘˜β€² =

100

0π‘π‘œπ‘  𝛾

𝑠𝑒𝑛 𝛾

0βˆ’π‘ π‘’π‘› 𝛾

π‘π‘œπ‘  𝛾

Paolo Lino

Esempio 1

a

-p'sen(a)p'cos(a)

a

p = p'cos(a) - p'sen(a)

Si considerino due terne con origine comune

ruotate tra loro di un angolo a attorno all’asse

𝑧. Sia, poi, 𝑃 un punto del piano π‘₯ βˆ’ 𝑦.

Il punto 𝑃 nel sistema ruotato avrΓ  coordinate

𝒑′ ≑ 𝑝π‘₯β€² , 𝑝𝑦

β€² , 𝑝𝑧′ .

La rappresentazione dello stesso punto 𝑃 nel

sistema di riferimento sarΓ :

essendo 𝒑 e 𝒑′ i vettori rappresentativi del

punto P nei due sistemi.

Controllo dei Robot

Corso di Controllo dei Robot

𝑝π‘₯

𝑝𝑦

𝑝𝑧

=π‘π‘œπ‘  𝛼𝑠𝑒𝑛 𝛼

0

βˆ’π‘ π‘’π‘› π›Όπ‘π‘œπ‘  𝛼

0

001

𝑝π‘₯β€²

𝑝𝑦′

𝑝𝑧′

𝒑 = 𝑅𝑧 𝛼 𝒑′

𝑝π‘₯ = 𝑝π‘₯β€² π‘π‘œπ‘  𝛼 βˆ’ 𝑝𝑦

β€² 𝑠𝑒𝑛 𝛼

𝑝𝑦 = 𝑝π‘₯β€² 𝑠𝑒𝑛 𝛼 + 𝑝𝑦

β€² π‘π‘œπ‘  𝛼

𝑝𝑧 = 𝑝𝑧′

Paolo Lino

Si consideri un vettore 𝒑, ottenuto ruotando un vettore

𝒑′ nel piano π‘₯ βˆ’ 𝑦 di un angolo 𝛼 attorno all’asse 𝑧 della

terna di riferimento in cui esso Γ¨ espresso.

Dette 𝑝π‘₯β€² , 𝑝𝑦

β€² , 𝑝𝑧′ le coordinate del vettore 𝒑′, il vettore 𝒑

risultante dalla rotazione ha componenti:

Ξ±

P

P’

p’x

p’y

py

pxx

y

z

p

p’

Ξ± Ξ±

P

P’

p’x

p’y

py

pxx

y

x’

y’

p’yp’x

zz’

𝒑 = 𝑅𝑧 𝛼 𝒑′

Esempio 2

Controllo dei Robot

Corso di Controllo dei Robot

𝑝π‘₯ = 𝑝π‘₯β€² π‘π‘œπ‘  𝛼 βˆ’ 𝑝𝑦

β€² 𝑠𝑒𝑛 𝛼

𝑝𝑦 = 𝑝π‘₯β€² 𝑠𝑒𝑛 𝛼 + 𝑝𝑦

β€² π‘π‘œπ‘  𝛼

𝑝𝑧 = 𝑝𝑧′

𝑝π‘₯

𝑝𝑦

𝑝𝑧

=π‘π‘œπ‘  𝛼𝑠𝑒𝑛 𝛼

0

βˆ’π‘ π‘’π‘› π›Όπ‘π‘œπ‘  𝛼

0

001

𝑝π‘₯β€²

𝑝𝑦′

𝑝𝑧′

Paolo Lino

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 riferimento.

Rappresenta una trasformazione di coordinate che mette in relazione

le coordinate di un punto in due terne differenti con origine comune

𝒑 = 𝑅𝒑′. Inoltre in virtΓΉ della proprietΓ  di ortogonalitΓ  della matrice 𝑅,

la trasformazione inversa si scrive 𝒑′ = 𝑅𝑇𝒑

La matrice di rotazione 𝑅 rappresenta l’operatore che permette di

ruotare un vettore (nella stessa terna), di un angolo prefissato, attorno

ad un generico asse di rotazione nello spazio.

Significato geometrico della matrice di rotazione

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Composizione di matrici di rotazione

Siano assegnate tre terne di coordinate 𝑂 βˆ’ π‘₯0𝑦0𝑧0, 𝑂 βˆ’ π‘₯1𝑦1𝑧1 e 𝑂 βˆ’ π‘₯2𝑦2𝑧2 aventi origini

comuni 𝑂. Il vettore 𝒑 rappresentativo di un generico punto nello spazio puΓ² essere

rappresentato in ciascuna delle tre terne.

Siano π’‘πŸŽ, π’‘πŸ, e π’‘πŸ i vettori rappresentativi di 𝒑 nei tre sistemi.

Nel seguito, l’apice di un vettore o di una matrice indica la terna in cui sono espressi i

suoi elementi

Indichiamo con 𝑅𝑖𝑗

la matrice di rotazione della terna 𝑖 rispetto alla terna 𝑗.

La matrice di rotazione di un sistema rispetto ad un altro puΓ² essere espressa mediante

la composizione di matrici di rotazione rappresentanti rotazioni successive dello stesso

sistema

Controllo dei Robot

Corso di Controllo dei Robot

𝑝0 = 𝑅10𝑝1

𝑝0 = 𝑅20𝑝2

𝑝1 = 𝑅21𝑝2

𝑝0 = 𝑅10𝑅2

1𝑝2

𝑝0 = 𝑅20𝑝2

𝑅20 = 𝑅1

0𝑅21

Paolo Lino

Siano 𝑂– π‘₯𝑦𝑧, 𝑂′ βˆ’ π‘₯′𝑦′𝑧′ e 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ tre terne, che per il momento supponiamo

coincidenti.

Ruotiamo contemporaneamente attorno all’asse 𝑧 due sistemi 𝑂′ βˆ’ π‘₯′𝑦′𝑧′ e

𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ dell’angolo 𝛼′. La matrice di rotazione che esprime questa rotazione

sarΓ :

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

Ruotiamo adesso attorno all’asse 𝑧 il sistema 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ dell’angolo 𝛼′′, rispetto alla

terna corrente 𝑂′ βˆ’ π‘₯′𝑦′𝑧′. La rotazione del sistema 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ rispetto alla terna

𝑂′ βˆ’ π‘₯′𝑦′𝑧′ si esprime con la relazione:

𝑅10 =

π‘π‘œπ‘  𝛼′

𝑠𝑒𝑛 𝛼′

0

βˆ’π‘ π‘’π‘› 𝛼′

π‘π‘œπ‘  𝛼′

0

001

𝑅21 =

π‘π‘œπ‘  𝛼′′

𝑠𝑒𝑛 𝛼′′

0

βˆ’π‘ π‘’π‘› 𝛼′′

π‘π‘œπ‘  𝛼′′

0

001

Paolo Lino

La rotazione totale della terna 𝑂– π‘₯𝑦𝑧 di un angolo 𝛼 attorno all’asse 𝑧, quindi, puΓ² essere

espressa come composizione delle matrici di rotazione rappresentativa della prima

rotazione con la matrice di rotazione rappresentativa della seconda rotazione rispetto alla

terna giΓ  ruotata , infatti:

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

𝑅20 =

π‘π‘œπ‘  𝛼𝑠𝑒𝑛 𝛼

0

βˆ’π‘ π‘’π‘› π›Όπ‘π‘œπ‘  𝛼

0

001

=π‘π‘œπ‘  𝛼′ + 𝛼′′

𝑠𝑒𝑛 𝛼′ + 𝛼′′

0

βˆ’π‘ π‘’π‘› 𝛼′ + 𝛼′′

π‘π‘œπ‘  𝛼′ + 𝛼′′

0

001

𝑅10𝑅2

1 =π‘π‘œπ‘  𝛼′

𝑠𝑒𝑛 𝛼′

0

βˆ’π‘ π‘’π‘› 𝛼′

π‘π‘œπ‘  𝛼′

0

001

π‘π‘œπ‘  𝛼′′

𝑠𝑒𝑛 𝛼′′

0

βˆ’π‘ π‘’π‘› 𝛼′′

π‘π‘œπ‘  𝛼′′

0

001

𝑅10𝑅2

1 =π‘π‘œπ‘  𝛼′ π‘π‘œπ‘  𝛼′′ βˆ’ 𝑠𝑒𝑛 𝛼′ 𝑠𝑒𝑛 𝛼′′

𝑠𝑒𝑛 𝛼′ π‘π‘œπ‘  𝛼′′ + π‘π‘œπ‘  𝛼′ 𝑠𝑒𝑛 𝛼′′

0

βˆ’π‘π‘œπ‘  𝛼′ 𝑠𝑒𝑛 𝛼′′ βˆ’ 𝑠𝑒𝑛 𝛼′ π‘π‘œπ‘  𝛼′′

βˆ’π‘ π‘’π‘› 𝛼′ 𝑠𝑒𝑛 𝛼′′ + π‘π‘œπ‘  𝛼′ π‘π‘œπ‘  𝛼′′

0

001

𝑅10𝑅2

1 =π‘π‘œπ‘  𝛼′ + 𝛼′′

𝑠𝑒𝑛 𝛼′ + 𝛼′′

0

βˆ’π‘ π‘’π‘› 𝛼′ + 𝛼′′

π‘π‘œπ‘  𝛼′ + 𝛼′′

0

001

Paolo Lino

Si noti che la rotazione complessiva Γ¨ espressa come successione

di rotazioni parziali, ciascuna delle quali Γ¨ definita rispetto alla

rotazione precedente. La terna rispetto alla quale avviene la

rotazione in atto Γ¨ definita terna corrente.

In conclusione, la composizione di rotazioni successive rispetto alla

terna corrente si ottiene per moltiplicazione da sinistra verso destra

le matrici delle singole rotazioni, nell’ordine della rotazione.

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

PoichΓ© dobbiamo fare riferimento alla terna base, supponiamo che i due sistemi

𝑂′ βˆ’ π‘₯′𝑦′𝑧′ e 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ abbiano subito le loro rotazioni. Seguiamo allora i seguenti

passi:

β€’ Esprimiamo la rotazione della terna 𝑂′ βˆ’ π‘₯′𝑦′𝑧′ rispetto alla terna di riferimento,

mediante la rotazione 𝑅10.

β€’ Riallineiamo la terna 𝑂′ βˆ’ π‘₯′𝑦′𝑧′ con la terna 𝑂 – π‘₯𝑦𝑧 mediante la rotazione 𝑅01

β€’ Essendo, adesso, le due terne allineate, si esprime la rotazione della terna 𝑂′ βˆ’ π‘₯′𝑦′𝑧′

per sovrapporla alla terna 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ mediante la matrice 𝑅21

β€’ Infine si compensa la rotazione effettuata per il riallineamento con la rotazione inversa

𝑅10

Matrice che caratterizza la terna 𝑂′′ βˆ’ π‘₯′′𝑦′′𝑧′′ rispetto alla terna

𝑂– π‘₯𝑦𝑧, ottenuta da rotazioni successive riferite alla terna fissa

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

𝑅20

Paolo Lino

In conclusione, la composizione di rotazioni successive

rispetto ad una terna fissa si ottiene moltiplicando da destra

verso sinistra le singole matrici di rotazione nell’ordine delle

rotazioni.

Rotazioni successive rispetto alla terna corrente

Controllo dei Robot

Corso di Controllo dei Robot

𝑅20 = 𝑅1

0𝑅01 𝑅2

1𝑅10 = 𝐼 𝑅2

1𝑅10 = 𝑅2

1𝑅10

Paolo Lino

Importanza dell’ordine delle rotazioni

Controllo dei Robot

Corso di Controllo dei Robot

Rotazioni rispetto ad una terna fissa

Paolo Lino

Importanza dell’ordine delle rotazioni

Controllo dei Robot

Corso di Controllo dei Robot

Rotazioni rispetto alla terna corrente

Paolo Lino

Rotazione intorno ad un asse arbitrario

Sovrapposizione di 𝒓 su 𝑧, che si ottiene come successione di rotazioni di βˆ’π›Όintorno a 𝑧 e di una rotazione di βˆ’π›½ intorno a 𝑦

Rotazione di πœƒ intorno a 𝑧

Ripristino dell’orientamento iniziale di 𝒓, che si ottiene come successione di una

rotazione di 𝛽 attorno all’asse 𝑦 e di una rotazione 𝛼 attorno all’asse 𝑧.

)()()()()()( abba zyzyzr RRRRRR

x

z

y

r

-r

ry

rx

rz

Ξ±

Ξ²

ΞΈ

-ΞΈ A

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Rotazione intorno ad un asse arbitrario

) )

)

)

)

)

)

)22

22

22

22 cos

sen

cos

sen

cos

sen

cos

sen

yx

x

yx

y

z

yx

yx

x

y

z

rr

r

rr

r

r

rr

rrA

Ar

Ar

r

A

a

a

b

b

a

a

b

b

)

) ) )

) ) ) ) ) )

ccrsrcrrsrcrr

srcrrccrsrcrr

srcrrsrcrrccr

R

zxzyyzx

xzyyzyx

yzxzyxx

r

111

111

111

2

2

2

Osserviamo che vale la relazione: π‘…βˆ’π‘Ÿ βˆ’πœƒ = π‘…π‘Ÿ πœƒ

Questo dimostra che la rappresentazione non Γ¨ univoca, poichΓ© una rotazione

di βˆ’πœƒ intorno a βˆ’π’“ provoca gli stessi effetti della rotazione di πœƒ attorno ad 𝒓.

x

z

y

r

-r

ry

rx

rz

Ξ±

Ξ²

ΞΈ

-ΞΈ A

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Rotazione intorno ad un asse arbitrario: Problema inverso

β€’ Per 𝑠𝑒𝑛 πœƒ β‰  0 le due espressioni caratterizzano la rotazione in termini di

quattro parametri: l’angolo e le tre componenti del vettore 𝒓. Tuttavia si puΓ²

osservare che le tre componenti del vettore non sono linearmente

indipendenti, poichΓ© π‘Ÿπ‘₯2 + π‘Ÿπ‘¦

2 + π‘Ÿπ‘§2 = 1.

β€’ Se 𝑠𝑒𝑛 πœƒ = 0 le relazioni trovate perdono di significato. Per il problema

inverso occorre fare riferimento alla particolare matrice di rotazione ed

individuare le formule risolutive nei due casi πœƒ = 0 e πœƒ = πœ‹. Si noti che per

πœƒ = 0 (rotazione nulla) il versore 𝒓 Γ¨ arbitrario.

Controllo dei Robot

Corso di Controllo dei Robot

𝑅 =

π‘Ÿ11π‘Ÿ21π‘Ÿ31

π‘Ÿ12π‘Ÿ22π‘Ÿ32

π‘Ÿ13π‘Ÿ23π‘Ÿ33

Problema inverso

πœƒ = πΆπ‘‚π‘†βˆ’1π‘Ÿ11 + π‘Ÿ22 + π‘Ÿ33 βˆ’ 1

2

𝒓 =1

2𝑠𝑒𝑛 πœƒ

π‘Ÿ32 βˆ’ π‘Ÿ23π‘Ÿ13 βˆ’ π‘Ÿ31π‘Ÿ21 βˆ’ π‘Ÿ12

Paolo Lino

Quaternione unitario

Controllo dei Robot

Corso di Controllo dei Robot

Gli inconvenienti della descrizione asse e angolo possono essere superati

ricorrendo ad una rappresentazione a quattro parametri: il quaternione

unitario

𝓠 = πœ‚, 𝝐

πœ‚ = π‘π‘œπ‘ πœ—

2

𝝐 =

πœ–π‘₯

πœ–π‘¦

πœ–π‘§

= π‘ π‘–π‘›πœ—

2𝒓

parte scalare

parte vettoriale

πœ‚2 + πœ–π‘₯2 + πœ–π‘¦

2 + πœ–π‘§2 = 1 vincolo

𝑅 πœ‚, 𝝐 =

2 πœ‚2 + πœ–π‘₯2 βˆ’ 1 2 πœ–π‘₯πœ–π‘¦ βˆ’ πœ‚πœ–π‘§ 2 πœ–π‘₯πœ–π‘§ + πœ‚πœ–π‘¦

2 πœ–π‘₯πœ–π‘¦ + πœ‚πœ–π‘§ 2 πœ‚2 + πœ–π‘¦2 βˆ’ 1 2 πœ–π‘¦πœ–π‘§ βˆ’ πœ‚πœ–π‘§

2 πœ–π‘₯πœ–π‘§ βˆ’ πœ‚πœ–π‘¦ 2 πœ–π‘¦πœ–π‘§ + πœ‚πœ–π‘§ 2 πœ‚2 + πœ–π‘§2 βˆ’ 1

Paolo Lino

Quaternione unitario: Problema inverso

β€’ Si Γ¨ implicitamente assunto πœ‚ β‰₯ 0, ovvero πœ— ∈ βˆ’πœ‹, πœ‹ , il che consente di

descrivere qualsiasi rotazione

β€’ A differenza della soluzione inversa del problema asse e angolo, le formule

non presentano singolaritΓ 

β€’ Il quaternione estratto da π‘…βˆ’1 = 𝑅𝑇, indicato con π“ βˆ’πŸ, puΓ² essere calcolato

come π“ βˆ’πŸ = πœ‚,βˆ’π

Controllo dei Robot

Corso di Controllo dei Robot

𝑅 =

π‘Ÿ11π‘Ÿ21π‘Ÿ31

π‘Ÿ12π‘Ÿ22π‘Ÿ32

π‘Ÿ13π‘Ÿ23π‘Ÿ33

Problema inverso

πœ‚ =1

2π‘Ÿ11 + π‘Ÿ22 + π‘Ÿ33 + 1

𝝐 =1

2

𝑠𝑔𝑛 π‘Ÿ32 βˆ’ π‘Ÿ23 π‘Ÿ11 βˆ’ π‘Ÿ22 βˆ’ π‘Ÿ33 + 1

𝑠𝑔𝑛 π‘Ÿ13 βˆ’ π‘Ÿ31 π‘Ÿ22 βˆ’ π‘Ÿ33 βˆ’ π‘Ÿ11 + 1

𝑠𝑔𝑛 π‘Ÿ21 βˆ’ π‘Ÿ12 π‘Ÿ33 βˆ’ π‘Ÿ11 βˆ’ π‘Ÿ22 + 1

Paolo Lino

Le matrici di rotazione forniscono una descrizione ridondante

dell’orientamento di una terna: 9 elementi legati tra loro da 6 vincoli di

ortogonalitΓ .

Rappresentazioni minime dell’orientamento

000

111

ikkjji

kkjjii

TTT

TTT

Controllo dei Robot

Corso di Controllo dei Robot

I parametri effettivi per la descrizione di un orientamento sono 3. Una

descrizione in termini di 3 parametri indipendenti costituisce una

rappresentazione minima (e.g. 3 angoli).

Una generica matrice di rotazione puΓ² essere ricavata per composizione di

tre rotazioni elementari secondo opportune sequenze, in modo da garantire

che due rotazioni successive non avvengano intorno ad assi paralleli (12

possibili combinazioni). Ciascun insieme di tre angoli rappresenta una

terna di angoli di Eulero

Paolo Lino

Angoli di Eulero

Rappresentazioni minime dell’orientamento

Rappresentazione di angoli di Eulero ZYZ

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Si ruota la terna originale dell’angolo

πœ‘ attorno all’asse 𝑧

Angoli di Eulero ZYZ

Controllo dei Robot

Corso di Controllo dei Robot

Si ruota la terna, ruotata, dell’angolo

attorno all’asse corrente 𝑦′

Si ruota ancora la terna, ruotata,

dell’angolo πœ“ attorno all’asse

corrente 𝑧′′

𝑅𝑧 πœ‘ =π‘π‘œπ‘  πœ‘

𝑠𝑒𝑛 πœ‘0

βˆ’π‘ π‘’π‘› πœ‘

π‘π‘œπ‘  πœ‘0

001

𝑅𝑦′ πœ— =π‘π‘œπ‘  πœ—

0βˆ’π‘ π‘’π‘› πœ—

010

𝑠𝑒𝑛 πœ—0

π‘π‘œπ‘  πœ—

𝑅𝑧′′ πœ‘ =π‘π‘œπ‘  πœ“

𝑠𝑒𝑛 πœ“0

βˆ’π‘ π‘’π‘› πœ“

π‘π‘œπ‘  πœ“0

001

Paolo Lino

L’orientamento finale della terna, che si ottiene con la composizione di

rotazioni definite rispetto alla terna corrente Γ¨:

Angoli di Eulero ZYZ

Controllo dei Robot

Corso di Controllo dei Robot

π‘…πΈπ‘ˆπΏ = 𝑅𝑧 πœ‘ 𝑅𝑦′ πœ— 𝑅𝑧′′ πœ“ =

π‘πœ‘π‘πœ—π‘πœ“ βˆ’ π‘ πœ‘π‘ πœ“ βˆ’π‘πœ‘π‘πœ—π‘ πœ“ βˆ’ π‘ πœ‘π‘πœ“ π‘πœ‘π‘ πœ—π‘ πœ‘π‘πœ—π‘πœ“ + π‘πœ‘π‘ πœ“ βˆ’π‘ πœ‘π‘πœ—π‘ πœ“ + π‘πœ‘π‘πœ“ π‘ πœ‘π‘ πœ—

βˆ’π‘ πœ—π‘πœ“ π‘ πœ—π‘πœ“ π‘πœ—

Paolo Lino

Angoli di Eulero ZYZ: Problema inverso

πœ‘ = π‘Žπ‘‘π‘Žπ‘›2 π‘Ÿ23, π‘Ÿ13

πœ— = π‘Žπ‘‘π‘Žπ‘›2 π‘Ÿ132 + π‘Ÿ23

2 , π‘Ÿ33

πœ“ = π‘Žπ‘‘π‘Žπ‘›2 π‘Ÿ32, βˆ’π‘Ÿ31

πœ‘ = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ23, βˆ’π‘Ÿ13

πœ— = π‘Žπ‘‘π‘Žπ‘›2 βˆ’ π‘Ÿ132 + π‘Ÿ23

2 , π‘Ÿ33

πœ“ = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ32, π‘Ÿ31

Controllo dei Robot

Corso di Controllo dei Robot

𝑅 =

π‘Ÿ11π‘Ÿ21π‘Ÿ31

π‘Ÿ12π‘Ÿ22π‘Ÿ32

π‘Ÿ13π‘Ÿ23π‘Ÿ33

Si possono ricavare due soluzioni in

funzione del valore di πœ—:

πœ— ∈ 0, πœ‹ πœ— ∈ βˆ’πœ‹, 0

Le due soluzioni ricavate degenerano

quando 𝑠𝑒𝑛 πœ— = 0 ; in questo caso Γ¨

possibile determinare soltanto la somma o la

differenza di πœ‘ e πœ“. Infatti, se πœ— = 0, πœ‹ , le

rotazioni successive di πœ‘ e πœ“ sono effettuate

intorno ad assi di terna corrente paralleli fra

di loro, fornendo così effetti di rotazione

equivalenti.

πœ— ∈ 0, πœ‹

πœ— ∈ βˆ’πœ‹, 0

Problema inverso

π‘…πΈπ‘ˆπΏ =

π‘πœ‘π‘πœ—π‘πœ“ βˆ’ π‘ πœ‘π‘ πœ“ βˆ’π‘πœ‘π‘πœ—π‘ πœ“ βˆ’ π‘ πœ‘π‘πœ“ π‘πœ‘π‘ πœ—π‘ πœ‘π‘πœ—π‘πœ“ + π‘πœ‘π‘ πœ“ βˆ’π‘ πœ‘π‘πœ—π‘ πœ“ + π‘πœ‘π‘πœ“ π‘ πœ‘π‘ πœ—

βˆ’π‘ πœ—π‘πœ“ π‘ πœ—π‘πœ“ π‘πœ—

Paolo Lino

Tale rappresentazione trae origine da una descrizione delle rotazioni usate

frequentemente in nautica ed aeronautica.

L’acronimo RPY indica, rispettivamente, il rollio (Roll), il beccheggio (Pitch),

e l’imbardata (Yaw).

In questo caso, la terna di parametri rappresenta rotazioni definite rispetto ad

una terna fissa solidale al baricentro.

Angoli RPY

Controllo dei Robot

Corso di Controllo dei Robot

Paolo Lino

Si ruota la terna origine dell’angolo πœ“intorno all’asse π‘₯ (imbardata)

Angoli RPY

Controllo dei Robot

Corso di Controllo dei Robot

Si ruota la terna originale dell’angolo πœ‘intorno all’asse 𝑧 (rollio)

Si ruota la terna originale dell’angolo πœ—intorno all’asse 𝑦 (beccheggio)

𝑅𝑧 πœ‘ =π‘π‘œπ‘  πœ‘

𝑠𝑒𝑛 πœ‘0

βˆ’π‘ π‘’π‘› πœ‘

π‘π‘œπ‘  πœ‘0

001

𝑅𝑦 πœ— =π‘π‘œπ‘  πœ—

0βˆ’π‘ π‘’π‘› πœ—

010

𝑠𝑒𝑛 πœ—0

π‘π‘œπ‘  πœ—

𝑅π‘₯ πœ“ =100

0π‘π‘œπ‘  πœ“

𝑠𝑒𝑛 πœ“

0βˆ’π‘ π‘’π‘› πœ“

π‘π‘œπ‘  πœ“

Paolo Lino

Angoli RPY

La rotazione globale della terna, essendo ottenuta per composizione rispetto

ad una terna fissa, Γ¨:

Controllo dei Robot

Corso di Controllo dei Robot

π‘…π‘…π‘ƒπ‘Œ = 𝑅𝑧 πœ‘ 𝑅𝑦 πœ— 𝑅π‘₯ πœ“ =

π‘πœ‘π‘πœ— π‘πœ‘π‘ πœ—π‘ πœ“ βˆ’ π‘ πœ‘π‘πœ“ π‘πœ‘π‘ πœ—π‘πœ“ + π‘ πœ‘π‘ πœ“π‘ πœ‘π‘πœ— βˆ’π‘ πœ‘π‘ πœ—π‘ πœ“ + π‘πœ‘π‘πœ“ π‘ πœ‘π‘ πœ—π‘πœ“ βˆ’ π‘πœ‘π‘ πœ“βˆ’π‘ πœ— π‘πœ—π‘ πœ“ π‘πœ—π‘πœ“

Paolo Lino

Angoli RPY: Problema inverso

πœ‘ = π‘Žπ‘‘π‘Žπ‘›2 π‘Ÿ21, π‘Ÿ11

πœ— = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ31, π‘Ÿ322 + π‘Ÿ33

2

πœ“ = π‘Žπ‘‘π‘Žπ‘›2 π‘Ÿ32, π‘Ÿ33

πœ‘ = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ21, βˆ’π‘Ÿ11

πœ— = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ31, βˆ’ π‘Ÿ322 + π‘Ÿ33

2

πœ“ = π‘Žπ‘‘π‘Žπ‘›2 βˆ’π‘Ÿ32, βˆ’π‘Ÿ33

Controllo dei Robot

Corso di Controllo dei Robot

πœ— βˆˆπœ‹

2,3

2πœ‹

πœ— ∈ βˆ’πœ‹

2,πœ‹

2

𝑅 =

π‘Ÿ11π‘Ÿ21π‘Ÿ31

π‘Ÿ12π‘Ÿ22π‘Ÿ32

π‘Ÿ13π‘Ÿ23π‘Ÿ33

Si possono ricavare due soluzioni in

funzione del valore di πœ—:

πœ— ∈ βˆ’πœ‹

2,πœ‹

2πœ— ∈

πœ‹

2,3

2πœ‹

Le due soluzioni ricavate degenerano

quando π‘π‘œπ‘  πœ— = 0 ; in questo caso Γ¨

possibile determinare soltanto la somma o

la differenza di πœ‘ e πœ“.

Problema inverso

π‘…π‘…π‘ƒπ‘Œ =

π‘πœ‘π‘πœ— π‘πœ‘π‘ πœ—π‘ πœ“ βˆ’ π‘ πœ‘π‘πœ“ π‘πœ‘π‘ πœ—π‘πœ“ + π‘ πœ‘π‘ πœ“π‘ πœ‘π‘πœ— βˆ’π‘ πœ‘π‘ πœ—π‘ πœ“ + π‘πœ‘π‘πœ“ π‘ πœ‘π‘ πœ—π‘πœ“ βˆ’ π‘πœ‘π‘ πœ“βˆ’π‘ πœ— π‘πœ—π‘ πœ“ π‘πœ—π‘πœ“

Paolo Lino

Trasformazioni omogenee

Trasformazione di coordinate

Trasformazione inversa

Controllo dei Robot

Corso di Controllo dei Robot

𝑝0 = π‘œ10 + 𝑅1

0𝑝1

𝑝1 = βˆ’π‘…01π‘œ1

0 + 𝑅01𝑝0

𝑝1 = βˆ’ 𝑅10 π‘‡π‘œ1

0 + 𝑅10 𝑇𝑝0

Paolo Lino

Coordinate omogenee

matrice di trasformazione omogenea

1010

0

1

1

0

1

00

1

0

1

0

11

0 TT

TToRRoRR

Atrasformazione inversa

Si osserva che in generale Γ¨ π΄βˆ’1 β‰  𝐴𝑇. Inoltre, se le terne hanno la stessa

origine, essendo π‘œ10 = 0 0 0 𝑇, essa si riduce alla semplice matrice di rotazione.

𝐴10 =

𝑅10 π‘œ1

0

0𝑇 1

𝑝0 = π‘œ10 + 𝑅1

0𝑝1 𝑝0 = 𝐴10 𝑝1

𝑝 =𝑝1

=

𝑝π‘₯

𝑝𝑦

𝑝𝑧

1

𝑝0 = 𝐴10𝐴2

1 β‹―π΄π‘›π‘›βˆ’1 𝑝𝑛

Controllo dei Robot

Corso di Controllo dei Robot

Successione di trasformazioni consecutive di coordinate

Paolo Lino

Esempio

a1

a2

Controllo dei Robot

Corso di Controllo dei Robot

) ) ) )

1000

0100

0

0

12211101212

12211101212

0

2

soosoocs

coocoosc

A

Paolo Lino

Esempio

) )

1000

0100

0

0

11011

11011

0

1

soocs

coosc

A

) )

1000

0100

0

0

22122

22122

1

2

soocs

coosc

A

) )

) )

1000

0100

0

0

1000

0100

0

0

22122

22122

11011

11011

1

2

0

1

0

2

soocs

coosc

soocs

coosc

AAA

) ) ) ) ) )

1000

0100

0

0

11021212121212121

11021212121212121

soosccsooccsssccs

coossccoocsscsscc ) ) ) )

1000

0100

0

0

12211101212

12211101212

0

2

soosoocs

coocoosc

A

Controllo dei Robot

Corso di Controllo dei Robot

) ) ) )

1000

0100

0

0

12211101212

12211101212

0

2

soosoocs

coocoosc

A