Robotica e automazione/Matrici di rotazione

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Robotica e automazione

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𝖳=R1 e detR=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

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,

[xy]=[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

Particolarmente utili risultano essere le matrici

[0110],[1001],[0110]

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

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θ010sinθ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]=[cos90sin900sin90cos900001][100]=[010100001][100]=[010]

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

Rotazioni tridimensionali generalizzate

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β010sinβ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.


Template:Avanzamento