Estratto del documento

3) ASSE E ANGOLO DI ROTAZIONE

Rotazione espressa attraverso un angolo e un vettore che appartengono allo stesso sistema.

TEOREMA DI ROTAZIONE DI EULERO: qualsiasi spostamento di un corpo rigido tale per cui un punto

sul corpo rigido rimane fisso, è equivalente a una singola rotazione su qualche asse che attraversa il

punto fisso.

Data una matrice di rotazione R, è possibile trovare l’angolo di rotazione e il vettore V attorno al

quale avviene la rotazione.

Dalla definizione di autovalori e autovettori: =

(costante), di rotazione, v= autovettore

=autovalore =matrice

Tutte le matrici ortonormali hanno almeno un autovalore mentre gli altri autovalori sono un

= 1,

numero complesso ( angolo di rotazione).

= ±

L’autovettore corrispondente all’autovalore è proprio quel vettore attorno al quale avviene la

= 1

rotazione: = → = 1 =

Gli autovalori portano al loro interno le informazioni relative all’angolo di rotazione.

= ±

FORMULA DI ROTAZIONE DI RODRIGUE: qualunque matrice di rotazione può essere espressa

attraverso la somma di 3 matrici: una matrice identià e due matrici antisimmetriche.

MATRICE SKEW (ANTISIMMETRICA): costituita da

valori sopra la diagonale principale opposti da quelli

che si trovano sotto la diagonale.

MATLAB

• tr2angvec: otteniamo a partire dalla matrice di rotazione un vettore e l’angolo di rotazione.

[theta, v] = tr2angvec(R);

• eig: permette di ricavare gli autovalori e gli auto vettori della matrice di rotazione

[e, v] = eig(R);

• angle: ci calcola il valore della fase di un angolo prendendo in ingresso un numero complesso (a + ib)

[theta] = angle(a + ib)

• angvec2r: ci fornisce la matrice di rotazione R dando in ingresso l’asse e l’angolo di rotazione

R = angvec2r(theta, [v]);

• plot3: esegue un plot di una linea sulle tre dimensioni, è un modo visivo per far vedere l’asse attorno cui

avviene la rotazione.

Gli SO e SE sono insiemi di matrici che hanno delle particolarità.

SO sono l’insieme delle matrici ortonormali e sono tutte le matrici 2x2 nel caso

SO(2) e matrici 3x3 nel caso SO(3). SO(2) in matlab è anche una classe, una sorta di funzione o insieme di

funzioni che ci consentono di fare delle osservazioni.

La funzione SO2 permette di creare un oggetto relativo alla matrice ortonormale che gli forniamo in ingresso

P = SO2(); %è l’elemento identità, una rotazione nulla

P = SO2(theta); %è un oggetto SO2 che rappresenta la rotazione di theta in radianti

P = SO2(theta, ‘deg’);

P = SO2(R); %è un oggetto formato dalla matrice di rotazione R 2x2

P = SO2(T); %è un oggetto formato dalla parte rotazionale della matrice di trasformazione omogenea T 3x3

P = SO2(Q); %è un oggetto che è la copia dell’oggetto Q

SO2 non è altro che una collezione di funzioni tali per cui quando abbiamo un certo x nell’operatore SO2 queste

funzioni vengono richiamate; quindi, c’è di mezzo la definizione di classe.

SO3→permette di creare un oggetto a partire dalla matrice di rotazione ortonormale di dimensioni 3x3.

In questo caso T è la parte rotazionale della matrice di trasformazione omogenea di dimensioni 4x4

4) QUATERNIONI Il quaternione è un numero costituito da una parte reale (s)

e 3 parti immaginarie (vettori).

Quindi questo numero è costituito da una parte scalare e

una parte vettoriale.

sono in forma Skew

→entrambe

Q1= matrice del quaternione 3x3; sulla diagonale si ha la parte reale, mentre

→matrici

Q2= matrice trasmutata del quaternione fuori dalla diagonale vi sono i valori delle parti vettoriali

messi in forma skew

Per descrivere la ROTAZIONE possiamo utilizzare un quaternione di MODULO UNITARIO:

Questo quaternione può essere scritto con una forma del tipo: = cos ( ) < ( ) >

2 2

Definiamo un quaternione in cui la parte vettoriale è il vettore attorno al quale avviene la rotazione,

mentre la parte scalare è legata all’angolo di rotazione che viene identificato dalla matrice di

rotazione.

Data una matrice di rotazione R, si può trovare l’angolo di rotazione e il vettore attorno al quale

avviene la rotazione: ~(, )

Quaternione: (, ) = = + + +

1 2 3

Condizione per rappresentare la rotazione tramite il quaternione: 12 22 32

2

|||| = + + + = 1

Considerando: : il suo modulo rimane comunque =1.

= cos ( ) < ( ) > →

2 2

Per rappresentare la rotazione, utilizziamo il quaternione unitario, una rotazione di un angolo

attorno al vettore unitario V nello spazio:

I tre quaternioni che rappresentano le 3 rotazioni di attorno ai rispettivi assi x,y e z:

, , Ψ

Quando moltiplichiamo i quaternioni stiamo sommando o componendo delle rotazioni; quindi se

vogliamo ruotare un vettore di un certo angolo basta moltiplicare tale vettore per il quaternione

relativo.

Il quaternione per la sequenza di rotazione Euleriana yaw-pitch-roll:

Quando dobbiamo fare una conversione da un sistema di riferimento all’altro possiamo utilizzare

l’algebra dei quaternioni:

dato un vettore in , calcolare lo stesso vettore in ∗

: = ∙ ∙

Anche w può essere scritto come un quaternione: = 0 + + +

1 2 3

MATLAB

• UnitQuaternion→ è un oggetto, rappresenta un metodo compatto per rappresentare una rotazione 3D

che presenta vantaggi computazionali, tra cui velocità e robustezza numerica.

q = UnitQuaternion(R); % con questa funzione otteniamo il quaternione

q.R %dato il quaternione ci stampa la matrice ortonormale

q.plot() % dato un quaternione lo possiamo plottare per vedere l’orientamento

• Inv → l’inverso di un quaternione corrisponde ad una rotazione inversa

S = inv(R);

ESPONENZIALE DI MATRICE

È possibile specificare una rotazione in termini di un angolo e un asse di rotazione:

[̂]

=

unitario parallelo all’asse di rotazione

̂ =vettore

di rotazione

=angolo che genera una matrice Skew

[

̂] =operatore

CONCLUSIONI:

- Come rappresentare punti e POSE in dimensioni 2D e 3D

- I punti sono rappresentati da vettori di coordinate rispetto a un sistema di riferimento

- Un insieme di punti che appartengono a un oggetto rigido può essere descritto da un sistema

di riferimento e i suoi punti costituenti sono descritti da spostamenti dal sistema di riferimento

dell’oggetto

- La posizione e l’orientamento di qualsiasi sistema di riferimento possono essere descritte

rispetto ad un altro sistema di riferimento mediante la loro pose relativa

- Le pose relative possono essere applicate in sequenza (composte o scomposte) e le pose

relative possono essere manipolate algebricamente

- Una regola algebrica importante è che la composizione non è commutativa→ l’ordine in cui le

pose sono applicate è importante MATLAB

• logm→data una matrice R calcola il logaritmo della matrice principale S.

Quando R è una matrice di rotazione relativa al singolo asse, la matrice S contiene informazioni

sull’angolo di rotazione.

S = logm(R);

• vex→fornisce in uscita il vettore corrispondente ad una matrice skewnes

V = vex(S);

• skew→crea una skew matrix a partire da un vettore V

S = skew(V);

• trlog→calcola il logaritmo di una matrice 3x3 di R(3x3) che è una matrice skew corrispondente al vettore

theta*w dove theta è l’angolo di rotazione e w(3x1) è un vettore unitario che indica l’asse di rotazione

S = trlog(R);

[theta, w] = trlog(R);

• expm→ data una matrice S, calcola l’esponenziale della matrice principale R

R = expm(S);

2° PARTE: TEMPO E MOVIMENTO

Nella parte precedente abbiamo parlato della pose nello spazio 2D e 3D; adesso l’argomento

principale è la pose come funzione che varia nel tempo.

Cerchiamo di creare una pose tempo-variante che il robot può seguire.

POSE TEMPO- VARIANTE

In un’interpretazione robotica, dove è previsto il movimento del robot, avremo traslazioni e rotazioni

che varieranno nel tempo, ovvero la pose varierà nel tempo.

Immaginiamo di avere una serie di rototraslazioni che si susseguono nel tempo, quindi le matrici sono

funzioni del tempo che rappresentano l’evolversi di una rotazione e di una traslazione del robot per

una specifica applicazione.

Per studiare come varia nel tempo possiamo partire dalla rappresentazione esponenziale (comoda

per alcune operazioni). rispetto al sistema di riferimento A:

̂() =rotazione

versore attorno al quale avviene la rotazione

→ di rotazione

→() =angolo

di matrice skew

→[

̂() =operatore

]

Quando abbiamo una rappresentazione sulla posizione per passare dalla posizione alla velocità e

all’accelerazione basta utilizzare l’operatore della derivata.

OSS: dobbiamo stare attenti alla rotazione→ in funzione del tempo perché l’asse di rotazione varia;

()è

ma se lo pensiamo localmente quando avviene la rotazione il versore rimane fermo altrimenti se cambiasse vi

sarebbe un’altra rotazione. Per calcolare la variazione di questo oggetto nel

tempo utilizziamo la derivata→ otteniamo la

matrice skew del vettore velocità angolare.

La velocità angolare nel sistema di riferimento A

identifica l’asse istantaneo di rotazione e la velocità

di rotazione. La direzione è // all’asse di rotazione e

il modulo è la velocità di rotazione:

Questo tipo di rappresentazione permette di passare da un

sistema di riferimento B ad un sistema di riferimento A,

attraverso la matrice di rotazione .

La derivata della rotazione può essere espressa in 2 modi:

1) rispetto alla matrice skew del vettore velocità angolare

nel sistema di riferimento A

2) rispetto alla matrice skew del vettore w in B

Come abbiamo visto precedentemente, la matrice di rototraslazione è costituita dalla matrice di rotazione, da

un vettore traslazione e da 0 e 1 che rappresentano la forma omogenea:

--Facendo la derivata---->

velocità di traslazione, velocità angolare

̇ =

Anteprima
Vedrai una selezione di 16 pagine su 74
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 1 Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 2
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 6
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 11
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 16
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 21
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 26
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 31
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 36
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 41
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 46
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 51
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 56
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 61
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 66
Anteprima di 16 pagg. su 74.
Scarica il documento per vederlo tutto.
Appunti di Robotica biomedica della prima parte del corso (1° parziale) Pag. 71
1 su 74
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Giuliab17 di informazioni apprese con la frequenza delle lezioni di Robotica biomedica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Cavallo Filippo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community