Vai al contenuto

Robotica e automazione/Matrici di rotazione

Wikibooks, manuali e libri di testo liberi.
Indice del libro


Una rotazione antioraria di un vettore attraverso l'angolo θ, dove il vettore è inizialmente allineato con l'asse x.

Una matrice di rotazione è una matrice di trasformazione che esegue una rotazione nello spazio euclideo. Per esempio, utilizzando la seguente convenzione, la matrice

R(θ)=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]

ruota i punti nel piano xy in senso antiorario di un angolo θ rispetto all'origine di un sistema di coordinate cartesiane bidimensionale.

Per eseguire la rotazione su un punto del piano con coordinate standard 𝗏=[xy], è necessario moltiplicare la matrice R per il vettore stesso, ottenendo:

R𝐯=[cos⁡θ−sin⁡θsin⁡θcos⁡θ][xy]=[xcos⁡θ−ysin⁡θxsin⁡θ+ycos⁡θ].

Se x e y rappresentano le coordinate finali di un vettore, dove x è il coseno e y è il seno, le equazioni precedenti diventano l'identità trigonometrica. Infatti, una matrice di rotazione può essere letta come le formule trigonometriche della somma degli angoli in forma matriciale. Un modo per capirlo è supporre di avere un vettore con un angolo di 30° rispetto all'asse x e volerlo ruotare di altri 45°. È sufficiente calcolare le coordinate del punto finale del vettore a 75°.

Le matrici di rotazione sono matrici quadrate con elementi reali. Più specificatamente, possono essere caratterizzate come matrici ortogonali con determinante pari a 1; pertanto, una matrice quadrata R è una matrice di rotazione se e solo se R𝖳=R−1 e det⁡R=1. L'insieme di tutte le matrici ortogonali di dimensione n con determinante +1 è una rappresentazione di un gruppo noto come gruppo ortogonale speciale SO(n). Un esempio è il gruppo di rotazione in tre dimensioni SO(3).

Singola rotazione bidimensionale

[modifica | modifica sorgente]

Come premesso, nelle due dimensioni, la matrice di rotazione standard assume la seguente forma:

R(θ)=[cos⁡θ−sin⁡θsin⁡θcos⁡θ].

La rotazione dei vettori avviene mediante la seguente moltiplicazione di matrici,

[x′y′]=[cos⁡θ−sin⁡θsin⁡θcos⁡θ][xy].

Pertanto, le nuove coordinate (x′,y′) di un punto (x,y) dopo la rotazione sono:

x′=xcos⁡θ−ysin⁡θy′=xsin⁡θ+ycos⁡θ.

La direzione di rotazione del vettore è antioraria se θ è positivo (per esempio 90°), e oraria se θ è negativo (ad esempio −90°) per R(θ). Pertanto, la matrice di rotazione in senso orario si determina con

R(−θ)=[cos⁡θsin⁡θ−sin⁡θcos⁡θ].

Tipiche rotazioni bidimensionali

[modifica | modifica sorgente]

Particolarmente utili risultano essere le matrici

[0−110],[−100−1],[01−10]

equivalenti alle rotazioni in senso antiorario di 90°, 180° e 270°. Naturalmente, la rotazione di un angolo giro è data dalla matrice identità.

Singola rotazione tridimensionale

[modifica | modifica sorgente]

Per ottenere una rotazione tridimensionale di base (nota anche rotazione elementare) si procede con una rotazione attorno a uno degli assi di un sistema di coordinate. Pertanto, si hanno tre matrici di rotazione di base che ruotano i vettori di un angolo θ attorno agli assi x, y o

Rx(θ)=[1000cos⁡θ−sin⁡θ0sin⁡θcos⁡θ]Ry(θ)=[cos⁡θ0sin⁡θ010−sin⁡θ0cos⁡θ]Rz(θ)=[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]

Per i vettori, ciascuna di queste rotazioni di base appare in senso antiorario quando l'asse, attorno al quale si verificano, punta verso l'osservatore, il sistema di coordinate è destrorso e l'angolo θ è positivo. Rz, per esempio, ruoterebbe verso l'asse y un vettore allineato con l'asse x, come si può facilmente verificare operando con Rz sul vettore (1,0,0):

Rz(90∘)[100]=[cos⁡90∘−sin⁡90∘0sin⁡90∘cos⁡90∘0001][100]=[0−10100001][100]=[010]

Ciò è simile alla rotazione prodotta dalla matrice di rotazione bidimensionale menzionata precedentemente.

Rotazioni tridimensionali generalizzate

[modifica | modifica sorgente]

Combinando queste tre matrici si possono ottenere altre matrici di rotazione tridimensionali utilizzando il prodotto matriciale. Per esempio, il prodotto

R=Rz(α)Ry(β)Rx(γ)=[cos⁡α−sin⁡α0sin⁡αcos⁡α0001]imbardata[cos⁡β0sin⁡β010−sin⁡β0cos⁡β]beccheggio[1000cos⁡γ−sin⁡γ0sin⁡γcos⁡γ]rollio=[cos⁡αcos⁡βcos⁡αsin⁡βsin⁡γ−sin⁡αcos⁡γcos⁡αsin⁡βcos⁡γ+sin⁡αsin⁡γsin⁡αcos⁡βsin⁡αsin⁡βsin⁡γ+cos⁡αcos⁡γsin⁡αsin⁡βcos⁡γ−cos⁡αsin⁡γ−sin⁡βcos⁡βsin⁡γcos⁡βcos⁡γ]

rappresenta una rotazione i cui angoli di imbardata, beccheggio e rollio sono rispettivamente α, β e γ. Più formalmente, si tratta di una rotazione i cui angoli di Eulero sono α, β e γ, rispetto agli assi x, y e z.