Sei sulla pagina 1di 59

Rotazioni

Basilio Bona

DAUIN-Politecnico di Torino

2008

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 1 / 59


Introduzione

Il termine rotazione indica due concetti


un’azione fisica che viene applicata ad un oggetto per modificare il
suo orientamento nello spazio tridimensionale (interpretazione fisica),
la caratterizzazione matematica di questa azione, che permette di
studiarne le proprietà e la rappresentazione attraverso operatori
matematici opportuni (interpretazione astratta o matematica).
A sua volta l’interpretazione fisica è duplice:
1 L’azione viene applicata al corpo per portarlo da un orientamento ad
un altro.
2 Due oggetti identici hanno orientamenti diversi e vogliamo studiarne
la relazione reciproca.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 2 / 59


Corpo rigido

Il legame tra l’interpretazione matematica e l’interpretazione fisica della


rotazione, che si concretizza nella definizione del cosiddetto operatore di
rotazione, viene considerevolmente semplificata se si fa riferimento a corpi
rigidi.
Definizione
Un corpo rigido è insieme (anche infinito) di punti le cui distanze
reciproche non variano nel tempo e nello spazio.
Un corpo rigido è sempre riconducibile al sistema di riferimento (sdr)
ortogonale che lo caratterizza

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 3 / 59


Sistema di riferimento ortogonale

Definizione
Un sistema di riferimento (sdr) ortogonale nello spazio 3D è costituito
da tre versori mutuamente ortogonali applicati ad un’origine comune.
In inglese si chiama reference frame.

Il sdr si caratterizza con il simbolo R(O, i, j, k), dove O è l’origine comune,


i, j e k sono i tre versori mutuamente ortogonali.
I sdr possono essere destrorsi o sinistrorsi.
Poiché per definizione il prodotto vettoriale i × j = k obbedisce alla regola
della mano destra, i sdr

sono destrorsi se i × j = k
sono sinistrorsi se j × i = k

Useremo solo sdr destrorsi.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 4 / 59


Sistema di riferimento ortogonale

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 5 / 59


Corpo rigido ⇔ sdr

Un corpo rigido A è caratterizzato dal sdr RA ad esso associato.


Ogni generico punto del corpo rigido pi è univocamente definito nel sdr
RA dalle coordinate
 A
pi1
A  A
pi = pi2 
A
pi3
La distanza tra ogni coppia di punti rimane costante sotto qualsiasi
trasformazione o azione esterna sul corpo

A
pi − pAj = dij ≥ 0; ∀ i, j

Pertanto il corpo rigido è completamente determinato dal suo sdr e quando


parliamo di corpo rigido in realtà ci riferiamo al sdr che lo caratterizza.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 6 / 59


Corpo rigido ⇔ sdr
Due corpi rigidi, come quelli in Figura, possono essere interpretati come
due oggetti con orientamenti diversi nello stesso istante di tempo, oppure
come lo stesso oggetto in due istanti di tempo diversi.
In entrambi i casi ci interessa studiare la relazione tra i due orientamenti.

Figura: Due corpi rigidi tra loro ruotati.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 7 / 59


Relazione tra sdr
Dati due sdr RA e RB con origine in comune, ma con orientamento (o
assetto) differente, la loro reciproca relazione si può esprimere in due modi
il sdr RB rappresentato in RA
il sdr RA rappresentato in RB
Cosa sia meglio dipende dal significato fisico assegnato ai due riferimenti.

Figura: Due sdr RA e RB con origine comune, ma orientati diversamente.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 8 / 59


Matrici di rotazione
RB rappresentato in RA : rappresentiamo i tre versori iB , jB e kB in
RA , ottenendo una matrice 3 × 3
     
 iA   jA  kA  = RA
B
B B B

RA rappresentato in RB : rappresentiamo i tre versori iA , jA e kA in


RB , ottenendo una matrice 3 × 3
     
 iB   jB  kB  = RB
A
A A A

Le due matrici appartengono alla classe delle matrici di rotazione e la


relazione tra esse è la seguente
 T  T
RB
A = R A
B RA
B = RBA

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 9 / 59


Esempio.1
Prendiamo due sdr particolari e calcoliamo la matrice RA
B

  
          
0 0 1 0 0 1
 iA  =  0  ;  jA  = 1 ; kA  = 0 ;
B B B RA
B =
 0 1 0
−1 0 0 −1 0 0
Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 10 / 59
Esempio.1

Ora calcoliamo la matrice RB


A
             
0 0 −1 0 0 −1
 iB  = 0 ;  jB  = 1 ; kB  =  0  ;
A A A RB
A = 0 1
 0
1 0 0 1 0 0

Come si vede, le due matrici RA B


B e RA sono l’una la trasposta dell’altra.
Fisicamente possiamo interpretare questa rotazione come
la rotazione di 90◦ intorno al versore jA (asse yA ) che porta RA a
sovrapporsi a RB
la rotazione di −90◦ intorno al versore jB (asse yB ) che porta RB a
sovrapporsi a RA
Diciamo anche che ciascuna rotazione è inversa dell’altra e che l’operatore
di inversione è dato dalla trasposizione della matrice relativa.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 11 / 59


Matrici di rotazione: rappresentazione asse-angolo

Il teorema di Eulero stabilisce che ogni composizione di rotazioni può


sempre essere ricondotta ad una rotazione di un angolo θ intorno ad un
asse (versore) di rotazione u. Matematicamente si ha questa relazione
Matrice di rotazione intorno ad un generico asse di rotazione

Rot(u, θ) = R(u, θ) = Ru,θ =


 2 
u1 (1 − cθ ) + cθ u1 u2 (1 − cθ ) − u3 sθ u1 u3 (1 − cθ ) + u2 sθ
u1 u2 (1 − cθ ) + u3 sθ u22 (1 − cθ ) + cθ u2 u3 (1 − cθ ) − u1 sθ  (1)
u1 u3 (1 − cθ ) − u2 sθ u2 u3 (1 − cθ ) + u1 sθ u32 (1 − cθ ) + cθ

dove
cθ ≡ cos θ sθ ≡ sin θ

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 12 / 59


Esempio.1

Esempio
Riprendiamo l’Esempio.1
π
L’asse u coincide con j e l’angolo vale +90◦ = , quindi
2
 
0
u = 1 sθ = 1 cθ = 0
0

da cui  
0 0 1
R =  0 1 0
−1 0 0

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 13 / 59


Matrici di rotazione elementare

Esiste una specie di “base” di matrici di rotazione, che chiamiamo


elementari perché sono rotazioni intorno agli assi principali x, y e z del sdr.
Rotazione elementare di un angolo α intorno all’asse x

Rot(x, α) = Rot(i, α) = R(i, α) = Ri,α =


   
1 0 0 1 0 0
0 cos α − sin α = 0 cα −sα  (2)
0 sin α cos α 0 s α cα

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 14 / 59


Matrici di rotazione elementare

Rotazione elementare di un angolo β intorno all’asse y

Rot(y , β) = Rot(j, β) = R(j, β) = Rj,β =


   
cos β 0 sin β cβ 0 sβ
0 1 0  = 0 1 0  (3)
− sin β 0 cos β −sβ 0 cβ

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 15 / 59


Matrici di rotazione elementare

Rotazione elementare di un angolo γ intorno all’asse z

Rot(z, γ) = Rot(k, γ) = R(k, γ) = Rk,γ =


   
cos γ − sin γ 0 cγ −sγ 0
sin γ cos γ 0 = sγ cγ 0 (4)
0 0 1 0 0 1

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 16 / 59


Composizione di matrici di rotazione

Ogni altra rotazione (e la corrispondente matrice) può essere ottenuta


combinando opportunamente le rotazioni elementari.
Le regole sono semplici: per comporre una rotazione complessa, generata
da una serie di rotazioni elementari, occorre
a) scegliere la rotazione elementare,
b) definire l’angolo di rotazione
c) stabilire se la rotazione avviene rispetto agli assi fissi o agli assi mobili
d) se la rotazione avviene rispetto al sdr fisso, allora pre-moltiplicare, se
invece avviene rispetto al sdr mobile, allora post-moltiplicare

Regola di moltiplicazione delle matrici di rotazione


Pre-fisso Post-mobile

I termini “fisso” e “mobile” indicano rispettivamente il sdr che si assume


immobile e il sdr che si ottiene come risultato della rotazione precedente.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 17 / 59


Composizione di matrici di rotazione

Esempio.2 (1)
Supponiamo di avere due rotazioni da comporre, definite dalle matrici RA
e RB seguenti

RA = Rot(j, π/2) RB = Rot(k, −π/2)

Vogliamo effettuare prima la rotazione RA e successivamente la rotazione


RB rispetto agli assi del sdr di partenza (che chiamiamo
convenzionalmente sdr fisso); dobbiamo perciò applicare la regola
pre-fisso, ossia pre-moltiplichiamo RA per RB , ottenendo
    
0 1 0 0 0 1 0 1 0
RB RA = −1 0 0  0 1 0 =  0 0 −1
0 0 1 −1 0 0 −1 0 0

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 18 / 59


Composizione di matrici di rotazione - RB RA

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 19 / 59


Composizione di matrici di rotazione

Esempio.2 (2)
Ora invece effettuiamo prima la rotazione RA e successivamente la
rotazione RB rispetto agli assi del sdr cosı̀ ottenuto (che chiamiamo
convenzionalmente sdr mobile); dobbiamo perciò applicare la regola
post-mobile, ossia post-moltiplichiamo RA per RB , ottenendo
    
0 0 1 0 1 0 0 0 1
RA RB =  0 1 0 −1 0 0 = −1 0 0
−1 0 0 0 0 1 0 −1 0

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 20 / 59


Composizione di matrici di rotazione - RA RB

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 21 / 59


Composizione di matrici di rotazione

Osservando le Figure precedenti possiamo verificare direttamente che


entrambi i prodotti RA RB , RB RA forniscono la rappresentazione del sdr di
sinistra in quello di destra.
Perciò componendo le matrici in qualsiasi ordine, alla fine si ottiene una
matrice prodotto che rappresenta il sdr di “arrivo” rispetto a quello di
“partenza”, ovvero, come si preferisce dire, del sdr mobile nel sdr fisso.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 22 / 59


Matrici di rotazione - Trasformazione di vettori
Vediamo ora qual’è l’effetto della rotazione sui vettori rappresentati in due
diversi riferimenti RA e RB , uno ruotato rispetto all’altro.
Prima di tutto ricordiamo che i vettori sono enti matematici che possono
rappresentare due classi di entità geometriche
−−→
1 segmenti orientati MN, mediante la differenza tra le coordinate dei

due estremi
 
−−→  T vN1 − vM1
MN = vMN = v1 v2 v3 = vN − vM = vN2 − vM2 
vN3 − vM3

2 punti geometrici P, mediante le coordinate (di solito cartesiane) della


punta      
−→ vP1 0 vP1
OP ≡ P → vP − vO = vP2  − 0 = vP2 
vP3 0 vP3

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 23 / 59


Matrici di rotazione - Trasformazione di vettori

Se i sistemi di riferimento hanno la stessa origine la trasformazione è


identica per i due tipi di vettore, altrimenti deve essere considerata anche
la traslazione tra le origini.
Per il momento le traslazioni sono escluse dall’analisi delle trasformazioni.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 24 / 59


Matrici di rotazione - Trasformazione di vettori

1. Punti geometrici: consideriamo


due riferimenti Ra e Rb con origine
in comune e un punto geometrico P
qualunque rappresentato dal vettore
vP .

La relazione tra le rappresentazioni vettoriali dello stesso punto P nei due


sdr è la seguente

vPa = Rab vPb e vPb = Rba vPa con Rab = (Rba )T

La matrice di rotazione è un operatore (lineare) che trasforma le


coordinate di un punto da un sdr ad un altro.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 25 / 59


Matrici di rotazione - Trasformazione di vettori

2. Segmenti orientati: consideria-


mo due riferimenti Ra e Rb con ori-
gine in comune e un segmento orien-
−−→
tato MN rappresentato dal vettore
vMN .

La relazione tra le rappresentazioni vettoriali dello stesso segmento


−−→
orientato MN nei due sdr è la seguente

vMNa = Rab vMNb e vMNb = Rba vMNa con Rab = (Rba )T

Si ha pertanto la stessa trasformazione lineare vista in precedenza.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 26 / 59


Matrici di rotazione - Cosa rappresentano

Riassumiamo quanto detto sulle matrici di rotazione.


Valgono tutte e tre le interpretazioni seguenti:
R rappresenta la rotazione generica Rot(u, θ) di angolo θ intorno
all’asse individuato dal versore u; i valori di θ e u non traspaiono
immediatamente dalla matrice, ma si possono ricavare, come vedremo
meglio più avanti;
R fornisce la descrizione del sdr “mobile” nel sdr “fisso”;
R definisce l’operatore lineare che trasforma un vettore dal sdr
“mobile” al sdr “fisso”. L’operatore è lineare in quanto è
rappresentato da una matrice, che obbedisce alla seguente identità

R(λ1 xa + λ2 xb ) = λ1 Rxa + λ2 Rxb

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 27 / 59


Matrici di rotazione - Proprietà matematiche
Ricordiamo il teorema di Eulero (asse-angolo)

Matrice di rotazione Rot(u, θ)

Rot(u, θ) = R(u, θ) = Ru,θ =


 2 
u1 (1 − cθ ) + cθ u1 u2 (1 − cθ ) − u3 sθ u1 u3 (1 − cθ ) + u2 sθ
u1 u2 (1 − cθ ) + u3 sθ u22 (1 − cθ ) + cθ u2 u3 (1 − cθ ) − u1 sθ  (5)
u1 u3 (1 − cθ ) − u2 sθ u2 u3 (1 − cθ ) + u1 sθ u32 (1 − cθ ) + cθ

R(u, θ) = R(−u, −θ)


R(u, −θ) = R(u, 2π − θ) = R(−u, θ)
R(u, θ) = R(u, −θ)T (6)
R(−u, −θ) = R(−u, θ)T
R(u, θ1 )R(u, θ2 ) = R(u, (θ1 + θ2 ))

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 28 / 59


Matrici di rotazione - Proprietà matematiche

Le matrici di rotazione sono matrici ortonormali con determinante unitario


e positivo.
Una matrice si dice ortonormale quando possiede le seguenti proprietà

L’inversa coincide con la trasposta:

RRT = RT R = I (7)

ovvero
R−1 = RT (8)

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 29 / 59


Matrici di rotazione - Proprietà matematiche

Le colonne di R sono tra loro ortogonali e a norma unitaria. Lo stesso


vale per le righe. Se
     

R =  r1   r2   r3 

r1 × r2 = r3 r2 × r3 = r1 r3 × r1 = r2
Il determinante di R ha modulo unitario:

|det(R)| = 1 (9)

La rotazione rigida mantiene invariate le distanze tra ogni coppia di


punti e gli angoli tra i segmenti, ossia il prodotto scalare è invariante
alla rotazione:

(Rx) · (Ry) = (Rx)T (Ry) = xT RT Ry = xT Iy = xT y = x · y

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 30 / 59


Matrici di rotazione - Proprietà matematiche

Non tutte le matrici ortonormali sono di rotazione.


Infatti esistono due tipi di matrici ortonormali
quelle a determinante unitario positivo

det R = +1

che sono matrici di rotazione (dette anche di rotazione propria)


quelle a determinante unitario negativo

det R = −1

che sono matrici di riflessione o roto-riflessione

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 31 / 59


Matrici di rotazione - Proprietà matematiche

In uno spazio tridimensionale le rotazioni formano un gruppo non


commutativo rispetto al prodotto matriciale.
Questo gruppo è detto gruppo (speciale) di rotazione (ortonormale) e si
indica con
n o
SO(3) = R ∈ R3×3 | RT R = I, det R = +1

In inglese, si chiama Special Orthonormal group of dimension 3 .


Inoltre esiste un’importante differenza tra le rotazioni e le roto-riflessioni:
le prime formano un gruppo commutativo continuo; intuitivamente questo
equivale a dire che esiste una rotazione infinitesima. Le seconde invece
non formano un gruppo continuo; le riflessioni non possiedono la “qualità”
di poter essere rese infinitesime.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 32 / 59


Matrici di rotazione - Proprietà matematiche

Una matrice di rotazione propria R ammette la seguente decomposizione


canonica modale
 
1 0 0  H
R = MΛMH = u v v∗ 0 e jθ 0  u v v∗
 
(10)
0 0 e −jθ


dove j = −1 e MH è la matrice hermitiana (trasposta coniugata) di M,
che è la matrice modale, ossia la matrice degli autovettori.
Il primo autovettore u è il versore che individua l’asse di rotazione; gli altri
due versori v e v∗ definiscono il piano normale a u.
Su questo piano avviene la rotazione rappresentata dall’operatore
complesso di rotazione o fasore e jθ .

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 33 / 59


Matrici di rotazione - Proprietà matematiche

la matrice R soddisfa le seguenti relazioni:


sin θ 1 − cos θ 2
R(u, θ) = e S(u)θ = I + S(u) + S (u) (11)
kuk kuk2

sin θ 1 − cos θ 2
R(u, θ)T = e −S(u)θ = I − S(u) + S (u)
kuk kuk2
dove
   2 
0 −u3 u2 −u2 − u32 u1 u2 u1 u3
S(u) =  u3 0 −u1  S2 (u) =  u1 u2 −u12 − u32 u2 u3 
−u2 u1 0 u1 u3 u2 u3 −u12 − u22

La matrice S(u) è antisimmetrica.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 34 / 59


Matrici di rotazione - Proprietà matematiche

Ci chiediamo ora quanti siano i parametri indipendenti che caratterizzano


la rotazione.
L’asse di rotazione u è definito da due parametri: si tratta di una direzione
(con segno) nello spazio 3D, quindi un sottospazio di dimensione 1, ma
che richiede 2 parametri per rappresentarlo.
L’angolo di rotazione è definito da 1 parametro.
Quindi una matrice di rotazione è definita da 3 parametri, che sono
contenuti nei 9 elementi che la compongono.
Vedremo più avanti come si passa da R a (u, θ) e viceversa.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 35 / 59


Matrici di rotazione - Caratteristiche matematiche

Un’altra caratterizzazione di questi 3 parametri si ha quando ad essi si


associano 3 angoli intorno agli assi elementari di rotazione.
Angoli di rotazione
Ogni matrice R può essere associata a tre rotazioni elementari di angoli
distinti:
R = Rot(u1 , α1 )Rot(u2 , α2 )Rot(u3 , α3 )
dove u1 , u2 , u3 sono scelti tra i tre assi elementari u1 ∈ {i, j, k}.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 36 / 59


Angoli di rotazione

Se due rotazioni contigue sono relative allo stesso asse, si perde un grado
di libertà:
Rot(ui , α1 )Rot(ui , α2 ) = Rot(ui , (α1 + α2 ))

Occorre quindi escludere questi casi dalle possibili combinazioni di


rotazioni elementari.
Infatti, mentre
R = Rot(i, α1 )Rot(k, α2 )Rot(i, α3 )
è una scelta ammissibile, il prodotto

R = Rot(i, α1 )Rot(k, α2 )Rot(k, α3 )

non è una scelta ammissibile.


Le possibili combinazioni ammissibili formano i cosiddetti angoli di
Cardano.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 37 / 59


Angoli di Cardano intorno a tre assi distinti

Vengono riportate le 6 possibili matrici di rotazione, dette di Cardano,


ottenibili come prodotto di tre rotazioni elementari distinte intorno a 3 assi
distinti; con θ1 , θ2 e θ3 sono stati indicati i tre generici angoli di Cardano

R(i, θ1 )R(j, θ2 )R(k, θ3 ) angoli di Roll-Pitch-Yaw (versione alternativa)


R(i, θ1 )R(k, θ3 )R(j, θ2 )
R(j, θ2 )R(i, θ1 )R(k, θ3 )
R(j, θ2 )R(k, θ3 )R(i, θ1 )
R(k, θ3 )R(i, θ1 )R(j, θ2 )
R(k, θ3 )R(j, θ2 )R(i, θ1 ) angoli di Roll-Pitch-Yaw

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 38 / 59


Angoli di Cardano intorno a due assi distinti

Sono riportate le 6 possibili rotazioni ottenibili dal prodotto di due


rotazioni elementari; in questo caso gli angoli di Cardano sono stati
indicati con i simboli α, β e γ:

R(i, α)R(j, β)R(i, γ)


R(i, α)R(k, β)R(i, γ)
R(j, α)R(i, β)R(j, γ)
R(j, α)R(k, β)R(j, γ)
R(k, α)R(i, β)R(k, γ) angoli di Eulero
R(k, α)R(j, β)R(k, γ) angoli di Eulero (versione alternativa)

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 39 / 59


Angoli di Eulero

Tra gli angoli di Cardano, i più noti sono gli angoli di Eulero, che
descrivono una generica rotazione nello spazio utilizzando tre angoli, detti
appunto “di Eulero”, simbolicamente rappresentati da ϕ, θ, ψ, secondo la
parametrizzazione seguente:

Rφ,θ,ψ = R (φ, θ, ψ) = Rz,φ Rx,θ Rz,ψ = R(k, φ)R(i, θ)R(k, ψ)


 
cφ cψ − sφ cθ sψ −cφ sψ − sφ cθ cψ sφ sθ
= sφ cψ + cφ cθ sψ −sφ sψ + cφ cθ cψ −cφ sθ 
sθ sψ sθ c ψ cθ

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 40 / 59


Angoli di Eulero

Figura: Gli angoli di Eulero.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 41 / 59


Angoli di Eulero

Figura: Esempio di angoli di Eulero.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 42 / 59


Angoli di Eulero
Per ricavare gli angoli di Eulero da una matrice qualsiasi, purché
ortogonale e con determinante pari a +1, definita da:
 
r11 r12 r13
R = r21 r22 r23 
r31 r32 r33

dove i valori rij sono noti, occorre risolvere il seguente sistema di equazioni
nonlineari:
r11 = cφ cψ − sφ cθ sψ
r12 = −cφ sψ − sφ cθ cψ
r13 = sφ sθ
r21 = sφ cψ + cφ cθ sψ
r22 = −sφ sψ + cφ cθ cψ
r23 = −cφ sθ
r31 = sθ sψ
r32 = sθ cψ
r33 = cθ

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 43 / 59


Angoli di Eulero

La soluzione del sistema di equazioni si ottiene come segue:

φ = atan2 (r13 , −r23 ) ± 2kπ


ψ = atan2 (−cφ r12 − sφ r22 , cφ r11 + sφ r21 ) ± 2kπ
θ = atan2 (sφ r13 − cφ r23 , r33 ) ± 2kπ

avendo utilizzato la funzione trigonometrica inversa atan2(y , x)


y 
θ = atan2(y , x) = tan−1 =
x
0◦ ≤ θ ≤ 90◦ se x ≥ 0; y ≥ 0

90◦ ≤ θ ≤ 180◦ se x ≤ 0; y ≥ 0


= ◦ ◦ se x ≤ 0; y ≤ 0
 −180◦ ≤ θ ≤ −90


−90 ≤ θ ≤ 0 se x ≥ 0; y ≤ 0

che risulta più robusta dal punta di vista numerico.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 44 / 59


Angoli di RPY

Un’altra parametrizzazione molto comune è quella data dagli angoli di


Roll, Pitch, Yaw (RPY) (in italiano Rollio, Beccheggio, Imbardata) detti
anche angoli di Tait-Bryant, simbolicamente rappresentati da θx , θy , θz e
definiti implicitamente come segue

Rθx ,θy ,θz = R (θx , θy , θz ) = Rz,θz Ry ,θy Rx,θx = R(k, θz )R(j, θy )R(i, θx )
 
cθz cθy sθx sθy cθz − cθx sθz cθx sθy cθz + sθx sθz
 cθy sθz sθx sθy sθz + cθx cθz cθx sθy sθz − sθx cθz 
−sθy sθx cθy cθx cθy

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 45 / 59


Angoli di RPY

Figura: Angoli RPY.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 46 / 59


Angoli di RPY

Per ricavare gli angoli RPY si applicano ragionamenti analoghi a quelli


usati per la soluzione degli angoli di Eulero, ottenendo:

θx = atan2 (r32 , r33 ) ± 2kπ


θz = atan2 (−cθx r12 + sθx r13 , cθx r22 − sθx r23 ) ± 2kπ
θy = atan2 (−r31 , sθx r32 + cθx r33 ) ± 2kπ

Altre definizioni di angoli RPY sono possibili, e vengono qualche volta


usate; ad esempio, alcuni testi definiscono come angoli RPY quelli
associati alle tre rotazioni elementari che seguono

Rθz ,θy ,θx = R (θz , θy , θx ) = Rx,θx Ry ,θy Rz,θz = R(i, θx )R(j, θy )R(k, θz )
 
cθy cθz −cθy sθz s θy
 sθx sθy cθz + cθx sθz −sθx sθy sθz + cθx cθz −sθx cθy  (12)
−cθx sθy cθz + sθx sθz cθx sθy sθz + sθx cθz cθx cθy

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 47 / 59


Parametri di Eulero

Data la rotazione R (u, θ), di un angolo θ intorno al versore


 T
u = u1 u2 u3 , si definiscono i quattro parametri di Eulero vi (che
non vanno confusi con gli angoli di Eulero), nel modo seguente:

θ θ θ θ
v1 = u1 sin , v2 = u2 sin , v3 = u3 sin , v4 = cos
2 2 2 2
Solo tre di questi parametri sono tra loro indipendenti, in quanto sussiste il
vincolo v
u 4
uX
t vi2 = 1
i=1

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 48 / 59


Parametri di Eulero
Dati u e θ e quindi i parametri di Eulero vi , la rappresentazione della
matrice di rotazione R (u, θ) può essere ricavata come segue:
 2 
v1 − v22 − v32 + v42 2 (v1 v2 − v3 v4 ) 2 (v1 v3 + v2 v4 )
R (u, θ) =  2 (v1 v2 + v3 v4 ) −v12 + v22 − v32 + v42 2 (v2 v3 − v1 v4 ) 
2 (v1 v3 − v2 v4 ) 2 (v2 v3 + v1 v4 ) −v12 − v22 + v32 + v42

Viceversa, data R (u, θ) si ottengono i parametri di Eulero come segue:

1p
v4 = ± (1 + r11 + r22 + r33 )
2
1
v1 = (r32 − r23 )
4v4
1
v2 = (r13 − r31 )
4v4
1
v3 = (r21 − r12 )
4v4

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 49 / 59


Parametri di Eulero
L’ambiguità di segno presente in v4 si può eliminare assumendo il vincolo:
π θ π
− ≤ ≤ ,
2 2 2
ovvero −π ≤ θ ≤ π; in questo modo il parametro v4 può essere solo
positivo.
L’angolo di rotazione si ottiene dalla relazione cos θ = v42 − (v12 + v22 + v32 )
e il versore u come  
1 v1
u= v2 
sin(θ/2) v
3

I parametri di Eulero si possono calcolare in funzione degli angoli di Eulero


φ, θ, ψ come segue:
   
φ−ψ θ φ−ψ
v2 = cos 2 sin 2θ
 
v1 = sin 2 sin 2
   
v3 = sin φ+ψ θ φ+ψ θ
 
2 cos 2 v 4 = cos 2 cos 2

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 50 / 59


Parametri di Eulero

I parametri di Eulero sono una forma di parametrizzazione molto


conveniente: sono più compatti della matrice R e più efficaci dal punto di
vista numerico degli angoli di Eulero, in quanto ricavare R = R (v) non
richiede l’uso di formule trigonometriche.
Inoltre, date due rotazioni R (va ) e R (vb ), si possono direttamente
calcolare i parametri di Eulero del prodotto delle rotazioni
R (vc ) = R (va ) R (vb ) mediante il seguente prodotto matriciale:

va4 −va3 va2 va1


 
v va4 −va1 va2 
vc = F (va ) vb =  a3 v
−va2 va1 va4 va3  b
−va1 −va2 −va3 va4

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 51 / 59


Quaternioni

Per una descrizione dei quaternioni, delle loro proprietà e dell’uso che se
ne fa per rappresentare le rotazioni, si vedano le dispense ad essi dedicate.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 52 / 59


Parametri di Cayley-Klein
Un altro modo di rappresentare le rotazioni fu introdotto da Felix Klein
(1849-1925).
I parametri di Cayley-Klein (CK) sono elementi di matrici 2 × 2
 
α β
Q=
γ δ
dove α, β, γ, δ sono variabili complesse. La matrice Q deve essere unitaria,
per cui i parametri CK obbediscono alle seguenti condizioni:
α = δ∗
β = −γ ∗
e la matrice Q può venire scritta anche come
 
α β
Q=
−β ∗ α∗
con la ulteriore condizione di vincolo
det Q = αα∗ + ββ ∗ = 1
Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 53 / 59
Parametri di Cayley-Klein
Nella matrice Q sono presenti 3 parametri liberi che possono venire usati
per descrivere le rotazioni; dati i parametri CK, è possibile ricavare la
matrice di rotazione nel modo seguente:
 
1 2 2 2 2 j 2 2 2 2
 2 (α − β − γ + δ ) 2 (−α − β + γ + δ ) γδ − αβ 
 
R=j 2
 2 + γ 2 − δ2) 1 2 2 + γ 2 + δ2)

2 (α − β (α + β −j(αβ + γ + δ)
2 
βδ − αγ j(αγ + βδ) αδ + βγ

la matrice R pur contenendo parametri immaginari, risulta reale.


Dati gli angoli di Eulero φ, θ, ψ, i parametri CK si calcolano nel modo
seguente:

α = ej(φ+ψ) cos 2θ β = jej(φ−ψ) cos 2θ


 

γ = je−j(φ−ψ) cos 2θ δ = e−j(φ+ψ) cos 2θ


 

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 54 / 59


Parametri di Cayley-Klein

La relazione tra i parametri CK α, β, i parametri di Eulero v1 , v2 , v3 , v4 e


gli elementi di un quaternione h0 , h1 , h2 , h3 è la seguente:

α = h0 + jh3 = v4 + jv3
β = h2 + jh1 = v2 + jv1

La matrice Q si può anche esprimere come:

Q = h0 1 + j (h1 σ 1 + h2 σ 2 + h3 σ 3 )

dove 1 è la matrice identità 2 × 2 e le σ i sono le cosiddette matrici di spin


di Pauli (Pauli spin matrices)
     
0 1 0 −j 1 0
σ1 = σ2 = σ3 = .
1 0 j 0 0 −1

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 55 / 59


Vettori di rotazione – Vettori di Rodrigues

Un altro modo di rappresentare l’assetto di un corpo rigido consiste


nell’utilizzare tre soli parametri, senza ricadere nelle difficoltà associate, ad
esempio, all’uso degli angoli di Eulero o RPY.
Invece di usare la tecnica dei parametri di Eulero o dei quaternioni, che
richiede quattro parametri, anche se legati da un’equazione di vincolo sulla
norma, si usano i cosiddetti vettori di rotazione r, le cui componenti ri
descrivono l’asse di rotazione e la cui norma krk fornisce il valore
dell’angolo di rotazione o di una sua funzione trigonometrica. In generale il
vettore di rotazione r è definito nel modo seguente:

r = γ (θ) u

dove u è il versore a norma unitaria che individua l’asse di rotazione e


krk = γ (θ) è una funzione dispari.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 56 / 59


Vettori di rotazione – Vettori di Rodrigues

La funzione γ (θ) è scelta di solito tra le quattro seguenti alternative:


a) γ (θ) = θ
b) γ (θ) = sin θ
θ
c) γ (θ) = sin
2
θ
d) γ (θ) = tan
2
Si può notare che la scelta c) equivale alla definizione dei quaternioni,
essendo le tre componenti di r pari agli ultimi tre elementi di un
quaternione, ovvero ai primi tre parametri di Eulero.
In questo caso il vettore r si dice vettore (di rotazione) di Eulero, da non
confondersi con i parametri di Eulero o con gli angoli di Eulero.

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 57 / 59


Vettori di Rodrigues

La scelta d) porta ai cosiddetti vettori (di rotazione) di Rodrigues o di


Gibbs, anch’essi molto usati nel campo della cinematica teorica.
La relazione tra i vettori di Rodrigues r e i parametri di Eulero v è data
dalle seguenti espressioni:
v1 v2 v3
r1 = , r2 = , r2 =
v4 v4 v4
Va sottolineato che i vettori di Rodrigues non sono definiti per angoli
θ = (2k ± 1) π.
Dati due vettori di Rodrigues ra e rb , il loro “prodotto”, che indicheremo
con il simbolo , si calcola nel modo seguente:
ra + rb − rb × ra
ra rb =
1 − rT
a rb

Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 58 / 59


Vettori di Rodrigues
Per quanto riguarda l’equivalenza tra matrici di rotazione e vettori di
Rodrigues, si possono stabilire le seguenti relazioni:
Il prodotto di due rotazioni Ra Rb equivale al prodotto ra rb dei
corrispondenti vettori di Rodrigues;
Per calcolare R noto r, dopo aver posto v2 = r2 , v3 = r3 , v4 = 1, si usa la
relazione
 2 
r1 − r22 − r32 2 (r1 r2 − r3 ) 2 (r1 r3 + r2 )
R (u, θ) =  2 (r1 r2 + r3 ) −r12 + r22 − r32 2 (r2 r3 − r1 ) 
2 (r1 r3 − r2 ) 2 (r2 r3 + r1 ) −r12 − r22 + r32
e poi si dividono gli elementi cosı̀ trovati per 1 + r12 + r22 + r32 ;


Per calcolare r nota R si costruisce la matrice antisimmetrica S(r)


 
0 −r3 r2 R − RT
S(r) =  r3 0 −r1  =
−r2 r1 0 1 + tr (R)

da cui si possono poi ricavare immediatamente gli elementi ri .


Basilio Bona (DAUIN-Politecnico di Torino) Rotazioni 2008 59 / 59