# Robotica e automazione/Matrici di rotazione

Robotica e automazione

## Introduzione

* PrerequisitiRobotica e automazione/Prerequisiti
* Robotica e automazioneRobotica e automazione/Robotica e automazione
* CobotRobotica e automazione/Cobot

## Meccanica dei robot

* Gradi di libertàRobotica e automazione/Gradi di libertà
* Robot cartesianiRobotica e automazione/Robot cartesiani
* Robot antropomorfiRobotica e automazione/Robot antropomorfi
* Matrici di rotazioneRobotica e automazione/Matrici di rotazione

## Il Dobot Magician

* Dobot Studio
* Movimentazione braccio
* Gli end-effector

## Esercitazioni

Modifica il sommario
Una matrice di rotazione è una matrice di trasformazione che esegue una rotazione nello spazio euclideo. Per esempio, utilizzando la seguente convenzione, la matrice
    $R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}$
ruota i punti nel piano $xy$ in senso antiorario di un angolo $\theta$ rispetto all'origine di un sistema di coordinate cartesiane bidimensionale.
Per eseguire la rotazione su un punto del piano con coordinate standard ${\mathsf {v}}={\begin{bmatrix}x\\y\end{bmatrix}}$, è necessario moltiplicare la matrice $R$ per il vettore stesso, ottenendo:
    $R\mathbf {v} ={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}={\begin{bmatrix}x\cos \theta -y\sin \theta \\x\sin \theta +y\cos \theta \end{bmatrix}}.$
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^{\mathsf {T}}=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 ${\text{SO}}(n)$. Un esempio è il gruppo di rotazione in tre dimensioni ${\text{SO}}(3)$.

## Singola rotazione bidimensionale

Come premesso, nelle due dimensioni, la matrice di rotazione standard assume la seguente forma:
    $R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}.$
La rotazione dei vettori avviene mediante la seguente moltiplicazione di matrici,
    ${\begin{bmatrix}x'\\y'\\\end{bmatrix}}={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}{\begin{bmatrix}x\\y\\\end{bmatrix}}.$
Pertanto, le nuove coordinate $(x',y')$ di un punto $(x,y)$ dopo la rotazione sono:
    ${\begin{aligned}x'&=x\cos \theta -y\sin \theta \,\\y'&=x\sin \theta +y\cos \theta \,\end{aligned}}.$
La direzione di rotazione del vettore è antioraria se $\theta$ è positivo (per esempio 90°), e oraria se $\theta$ è negativo (ad esempio −90°) per $R(\theta )$. Pertanto, la matrice di rotazione in senso orario si determina con
    $R(-\theta )={\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \\\end{bmatrix}}.$

### Tipiche rotazioni bidimensionali

Particolarmente utili risultano essere le matrici
    ${\begin{bmatrix}0&-1\\[3pt]1&0\\\end{bmatrix}},\quad {\begin{bmatrix}-1&0\\[3pt]0&-1\\\end{bmatrix}},\quad {\begin{bmatrix}0&1\\[3pt]-1&0\\\end{bmatrix}}$
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 $\theta$ attorno agli assi $x$, $y$ o
    ${\begin{alignedat}{1}R_{x}(\theta )&={\begin{bmatrix}1&0&0\\0&\cos \theta &-\sin \theta \\[3pt]0&\sin \theta &\cos \theta \\[3pt]\end{bmatrix}}\\[6pt]R_{y}(\theta )&={\begin{bmatrix}\cos \theta &0&\sin \theta \\[3pt]0&1&0\\[3pt]-\sin \theta &0&\cos \theta \\\end{bmatrix}}\\[6pt]R_{z}(\theta )&={\begin{bmatrix}\cos \theta &-\sin \theta &0\\[3pt]\sin \theta &\cos \theta &0\\[3pt]0&0&1\\\end{bmatrix}}\end{alignedat}}$
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 $\theta$ è positivo. $R_{z}$, per esempio, ruoterebbe verso l'asse $y$ un vettore allineato con l'asse $x$, come si può facilmente verificare operando con $R_{z}$ sul vettore $(1,0,0)$:
    $R_{z}(90^{\circ }){\begin{bmatrix}1\\0\\0\\\end{bmatrix}}={\begin{bmatrix}\cos 90^{\circ }&-\sin 90^{\circ }&0\\\sin 90^{\circ }&\quad \cos 90^{\circ }&0\\0&0&1\\\end{bmatrix}}{\begin{bmatrix}1\\0\\0\\\end{bmatrix}}={\begin{bmatrix}0&-1&0\\1&0&0\\0&0&1\\\end{bmatrix}}{\begin{bmatrix}1\\0\\0\\\end{bmatrix}}={\begin{bmatrix}0\\1\\0\\\end{bmatrix}}$
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
    ${\begin{aligned}R=R_{z}(\alpha )\,R_{y}(\beta )\,R_{x}(\gamma )&={\overset {\text{imbardata}}{\begin{bmatrix}\cos \alpha &-\sin \alpha &0\\\sin \alpha &\cos \alpha &0\\0&0&1\\\end{bmatrix}}}{\overset {\text{beccheggio}}{\begin{bmatrix}\cos \beta &0&\sin \beta \\0&1&0\\-\sin \beta &0&\cos \beta \\\end{bmatrix}}}{\overset {\text{rollio}}{\begin{bmatrix}1&0&0\\0&\cos \gamma &-\sin \gamma \\0&\sin \gamma &\cos \gamma \\\end{bmatrix}}}\\&={\begin{bmatrix}\cos \alpha \cos \beta &\cos \alpha \sin \beta \sin \gamma -\sin \alpha \cos \gamma &\cos \alpha \sin \beta \cos \gamma +\sin \alpha \sin \gamma \\\sin \alpha \cos \beta &\sin \alpha \sin \beta \sin \gamma +\cos \alpha \cos \gamma &\sin \alpha \sin \beta \cos \gamma -\cos \alpha \sin \gamma \\-\sin \beta &\cos \beta \sin \gamma &\cos \beta \cos \gamma \\\end{bmatrix}}\end{aligned}}$
rappresenta una rotazione i cui angoli di imbardata, beccheggio e rollio sono rispettivamente $\alpha$, $\beta$ e $\gamma$. Più formalmente, si tratta di una rotazione i cui angoli di Eulero sono $\alpha$, $\beta$ e $\gamma$, rispetto agli assi $x$, $y$ e $z$.