Posizione e orientamento di un braccio robotico

Qualsiasi punto nello spazio P(x,y,z) posso indicarlo tramite le sue coordinate cartesiane rispetto a un sistema di riferimento RFA (xA, yA, zA)

Dove xA, yA, zA sono i versori del sistema di riferimento RFA.

$$ RF_A ( \vec{x}_A \ , \ \vec{y}_A \ , \ \vec{z}_A ) $$

Il punto nello spazio P(x,y,z) è raggiunto da un vettore VOP che congiunge l'origine O del sistema con il punto P.

la poszione del punto nello spazio secondo il sistema cartesiano

Posso rappresentare il punto P anche tramite le sue coordinate cilindriche o sferiche.

$$ P(r, θ,h) $$

Dove r è il raggio del cilindro, θ è l'angolo del raggio rispetto all'asse x, h è l'altezza.

le coordinate cilindriche

Per passare dalle coordinate cilindriche a quelle cartesiane basta ricordarsi che le componenti del vettore sono i coseni direttori

$$ x= r \cdot \cos θ $$

$$ y= r \cdot \sin θ $$

$$ z= h $$

Allo stesso modo posso ottenere le coordinate cilindriche a partire dalle coordinate cartesiane.

$$ r = \sqrt{x^2+y^2} $$

$$ θ = \arctan( \frac{y}{x} ) $$

$$ h = z $$

Nota. Il raggio r si misura usando il teorema di Pitagora poiché conosco la lunghezza dei cateti x e y. L'angolo θ è il rapporto y/x. $$ \frac{y}{x} = \frac{\sin θ}{ \cos θ} $$ Sapendo dalla trigonometria che il rapporto tra sin(θ)/cos(θ)=tan(θ) è uguale alla tangente. $$ \frac{y}{x} = \tan θ $$ Per trovare l'angolo θ applico la funzione inversa della tangente (l'arcotangente) a entrambi i membri dell'equazione. $$ \arctan \frac{y}{x} = \arctan( \tan θ) $$ $$ \arctan \frac{y}{x} = θ $$ Devo però ricordarmi che l'arcotangente funziona solo nell'intervallo (-π/2, π/2) ossia per 180°. Pertanto, per farla funzionare su 360° devo usare la formula θ=arctan(y/x) nell'intervallo (-π/2, π/2) e la formula θ=180°+arctan(y/x) nell'intervallo (π/2, 2/3π). In alternativa, posso usare la funzione atan2(y,x) che adegua automaticamente il calcolo e funziona su tutti i quadranti. Il che è decisamente più comodo. $$ θ = atan2(y,x)$$ Infine l'altezza h è banalmente coincidente con z. Quindi c'è poco da aggiungere. $$ h=z $$

Una volta decisa la posizione, devo inicare l'orientamento del braccio.

Per farlo utilizzo il punto P come l'origine O' di un secondo sistema di riferimento RFB

il sistema di riferimento B

Questo secondo sistema di riferimento RFB è caratterizzato da altri tre versori xB,yB,zB

$$ R_B = [ \vec{x}_B \ , \ \vec{y}_B \ , \ \vec{z}_B ] $$

Per indicare i tre versori con il sistema di riferimento A uso la notazione AXB, AyB, AzB

$$ ^AR_B = [ ^A\vec{x}_B \ , \ ^A\vec{y}_B \ , \ ^A\vec{z}_B ] $$

Scendendo più in dettaglio, i versori del sistema di riferimento RFB indicati rispetto al sistema di riferimento RFA sono i seguenti:

$$ ^A \vec{x_B} = \ ^Ax_B \cdot \vec{x} + \ ^A x_y \cdot \vec{y} + \ ^A x_z \cdot \vec{z} $$

$$ ^A \vec{y_B} = \ ^Ay_B \cdot \vec{x} \ + \ ^Ay_y \cdot \vec{y} + \ ^A y_z \cdot \vec{z} $$

$$ ^A \vec{z_B} = \ ^Az_B \cdot \vec{x} \ + \ ^Az_y \cdot \vec{y} \ + \ ^A z_z \cdot \vec{z} $$

    Un esempio pratico

    Il riferimento di partenza ha una base composta dai versori

    $$ x = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} $$

    $$ y = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} $$

    $$ z = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} $$

    Si tratta di una base canonica

    la base canonica

    Il primo braccio è un vettore che congiunge l'origine O(0;0;0) e il punto P(0;1;1).

    il punto P

    Il punto P è l'origine il secondo riferimento RFB che si presenta con un diverso orientamento rispetto al primo.

    L'asse z del sistema RFB è ruotato di 90° rispetto al primo.

    il sistema di riferimento RFB

    Il secondo braccio congiuge l'origine OB=P con il punto PB che si trova alle coordinate BPB(0;1;1) del sistema di riferimento RFB

    il punto nel riferimento B

    Nel sistema di riferimento RFA il punto BPB(0;1;1) si trova alle coordinate APB(-1;1;2).

    Per trovare le coordinate del punto PB nel riferimento RFA devo calcolare la matrice di trasformazione tra i due sistemi di riferimento.

    La matrice dei versori del riferimento A è composta dai suoi tre versori disposti in colonna

    $$ M_A = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    Per calcolare i versori del riferimento B usando le coordinate del riferimento A uso la matrice di rotazione con una rotazione di φ=90° sull'asse z ( Φ=0 e ψ=0 sugli altri assi ).

    $$ R = R_x(\psi) \cdot R_y(\theta) \cdot R_z(\phi) $$

    Dove

    $$ R_x = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos(\psi) & -\sin(\psi) \\ 0 & \sin(\psi) & \cos(\psi) \end{pmatrix} $$

    $$ R_y = \begin{pmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{pmatrix} $$

    $$ R_z = \begin{pmatrix} \cos(\phi) & -sin(\phi) & 0 \\ \sin(\phi) & \cos(\phi) & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    Quindi la matrice di rotazione è

    $$ R = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos(\psi) & -\sin(\psi) \\ 0 & \sin(\psi) & \cos(\psi) \end{pmatrix} \cdot \begin{pmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{pmatrix} \cdot \begin{pmatrix} \cos(\phi) & -sin(\phi) & 0 \\ \sin(\phi) & \cos(\phi) & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    Sapendo che φ=90° , Φ=0 e ψ=0

    $$ R = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos(0) & -\sin(0) \\ 0 & \sin(0) & \cos(0) \end{pmatrix} \cdot \begin{pmatrix} \cos(0) & 0 & \sin(0) \\ 0 & 1 & 0 \\ -\sin(0) & 0 & \cos(0) \end{pmatrix} \cdot \begin{pmatrix} \cos(90°) & -sin(90°) & 0 \\ \sin(90°) & \cos(90°) & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    $$ R = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    $$ R = \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    Le colonne della matrice R sono i versori del riferimento ARFB a cui devo aggiungere l'origine AOB

    $$ ^Ax_B = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} + ^AO_B $$

    $$ ^Ay_B = \begin{pmatrix} -1 \\ 0 \\ 0 \end{pmatrix} + ^AO_B $$

    $$ ^Az_B = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} + ^AO_B $$

    Nota. Quindi la matrice dei versori del riferimento B è $$ M_B = \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} $$

    Sapendo che le coordinate che l'origine AOB=P=(0;1;1).

    $$ ^Ax_B = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^Ay_B = \begin{pmatrix} -1 \\ 0 \\ 0 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^Az_B = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    Pertanto le coordinate dei versori del ARFB nel riferimento A sono le seguenti

    $$ ^Ax_B = \begin{pmatrix} 0 \\ 2 \\ 1 \end{pmatrix} $$

    $$ ^Ay_B = \begin{pmatrix} -1 \\ 1 \\ 1 \end{pmatrix}$$

    $$ ^Az_B = \begin{pmatrix} 0 \\ 1 \\ 2 \end{pmatrix} $$

    In questo modo ottengo le coordinate dei versori del riferimento B nel riferimento A.

    il riferimento B

    Le coordinate del punto BPB nel riferimento B sono

    $$ ^BP_B = \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    Traformo le coordinate del punto APB nel riferimento A tramite la matrice di trasformazione MA-1MB del cambio di base

    $$ ^AP_B = M_A^{-1} \cdot M_B \cdot \ ^BP_B + ^AO_B $$

    $$ ^AP_B = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}^{-1} \cdot \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^AP_B = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^AP_B = \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^AP_B = \begin{pmatrix} -1 \\ 0 \\ 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \\ 1 \end{pmatrix} $$

    $$ ^AP_B = \begin{pmatrix} -1 \\ 1 \\ 2 \end{pmatrix} $$

    Dal punto di vista grafico

    le coordinate del punto PB

    A sua volta il punto APB può essere l'origine di un terzo braccio.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base