Dispense del corso di Robotica con...

23
Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December 17, 2002 Contents 1 Nozioni preliminari 2 1.1 Operazioni sui vettori ............................... 2 1.2 Basi e coordinate ................................. 3 2 Traslazioni e rotazioni 5 2.1 Traslazione .................................... 6 2.2 Rotazione ..................................... 6 2.2.1 Matrici di rotazione fondamentali .................... 8 2.2.2 Composizione di matrici di rotazione .................. 9 2.2.3 Rotazione intorno ad un asse qualsiasi ................. 11 3 Coordinate e trasformazioni omogenee 14 3.1 Rototraslazioni e rappresentazioni minime ................... 14 3.1.1 Angoli di Eulero ............................. 15 3.1.2 Angoli di RPY .............................. 16 3.2 Coordinate omogenee ............................... 18 4 Cinematica diretta dei robot 24 4.1 Segmenti, giunti e loro parametri ........................ 24 4.2 Rappresentazione di Denavit-Hartenberg .................... 26 4.3 Trasformazione omogenea associata ad un link ................. 28 4.4 Spazio dei giunti e spazio operativo ....................... 29 4.5 Esempi e esercizi ................................. 30 5 Cinematica inversa dei robot 34 6 Cenni sulla dinamica dei motori in corrente continua 35 6.1 Le equazioni elettriche .............................. 35 6.2 Le equazioni meccaniche ............................. 36 6.3 Motoriduttori e motori a presa diretta ..................... 36 6.4 Diagramma a blocchi del motore CC ...................... 37 7 Funzionamento degli encoder incrementali 39 1

Transcript of Dispense del corso di Robotica con...

Page 1: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Dispense del corso di Robotica con Laboratorio

Docente: Luca Zaccarian

December 17, 2002

Contents

1 Nozioni preliminari 2

1.1 Operazioni sui vettori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Basi e coordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Traslazioni e rotazioni 5

2.1 Traslazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Rotazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Matrici di rotazione fondamentali . . . . . . . . . . . . . . . . . . . . 82.2.2 Composizione di matrici di rotazione . . . . . . . . . . . . . . . . . . 92.2.3 Rotazione intorno ad un asse qualsiasi . . . . . . . . . . . . . . . . . 11

3 Coordinate e trasformazioni omogenee 14

3.1 Rototraslazioni e rappresentazioni minime . . . . . . . . . . . . . . . . . . . 143.1.1 Angoli di Eulero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.2 Angoli di RPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 Coordinate omogenee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Cinematica diretta dei robot 24

4.1 Segmenti, giunti e loro parametri . . . . . . . . . . . . . . . . . . . . . . . . 244.2 Rappresentazione di Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . 264.3 Trasformazione omogenea associata ad un link . . . . . . . . . . . . . . . . . 284.4 Spazio dei giunti e spazio operativo . . . . . . . . . . . . . . . . . . . . . . . 294.5 Esempi e esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Cinematica inversa dei robot 34

6 Cenni sulla dinamica dei motori in corrente continua 35

6.1 Le equazioni elettriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2 Le equazioni meccaniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.3 Motoriduttori e motori a presa diretta . . . . . . . . . . . . . . . . . . . . . 366.4 Diagramma a blocchi del motore CC . . . . . . . . . . . . . . . . . . . . . . 37

7 Funzionamento degli encoder incrementali 39

1

Page 2: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

1 Nozioni preliminari

1.1 Operazioni sui vettori

Dato l’insieme di tutti i vettori nello spazio tridimensionale R3 (questo insieme e in effetti unospazio vettoriale), ogni vettore appartenente a tale insieme (o spazio) ~u ∈ R3 e caratterizzatoda tre numeri u1, u2 e u3, denominati componenti del vettore, e si indica con ~u = (u1, u2, u3).

Nello spazio vettoriale R3, sono definite le seguenti operazioni:

1. Prodotto con i reali: R ×R3 → R3, definito come:

a ~u = a (u1, u2, u3)

:= (a u1, a u2, a u3), ∀a ∈ R,∀~u ∈ R3.

2. Prodotto scalare: R3 ×R3 → R, definito come:

<~u, ~v> = <(u1, u2, u3), (v1, v2, v3)>

:= u1 v1 + u2 v2 + u3 v3, ∀~u,~v ∈ R3.

3. Norma: R3 → R, definita come:

|~u| = |(u1, u2, u3)|:=

<~u, ~u>

=√

u21 + u2

2 + u23, ∀~u ∈ R3.

4. Somma: R3 ×R3 → R3, definita come:

~u+ ~u = (u1, u2, u3) + (v1, v2, v3)

:= (u1 + v1, u2 + v2, u3 + v3), ∀~u,~v ∈ R3.

5. Prodotto vettoriale: R3 ×R3 → R3, definito come:

~u× ~v = (u1, u2, u3) × (v1, v2, v3)

:= (u2 v3 − u3 v2, u3 v1 − u1 v3, u1 v2 − u2 v1), ∀~u,~v ∈ R3.

Geometricamente, le cinque operazioni sopra elencate si possono interpretare come segue(si osservi anche la rappresentazione in Figura 1):

1. Il prodotto con i reali corrisponde alla espansione (o contrazione, se |a| < 1) del vettore,senza cambiarne la direzione (eventualmente cambiandone il verso, se a < 0). Il vettorerisultante ha norma (o lunghezza) scalata di un fattore pari ad a (questo e verificabilecon una semplice sostituzione).

2. Si considerino due vettori ~u e ~v e un piano su cui giacciono entrambi. Sia θ l’angolodescritto sul piano da uno dei due vettori per arrivare a sovrapporsi all’altro. Allora,sussiste la relazione:

<~u, ~v>= |~u||~v| cos θ. (1)

2

Page 3: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 1: Moltiplicazione per uno scalare, somma e prodotto vettoriale.

3. La norma corrisponde alla lunghezza geometrica del vettore nello spazio (questa pro-prieta deriva direttamente dal teorema di Pitagora).

4. La somma di due vettori corrisponde al vettore risultatnte dall’applicazione del primovettore sul punto terminale del secondo (e viceversa).

5. Si considerino due vettori ~u e ~v e un piano su cui giacciono entrambi. Il vettore ~u× ~ve perpendicolare al piano 1 con verso assegnato secondo la regola della mano destra (siveda Figura 3). Sia θ l’angolo descritto sul piano da uno dei due vettori per arrivare asovrapporsi all’altro, allora la norma di ~u× ~v e pari a

|~u× ~v| = |~u||~v|| sin θ|. (2)

Si osservi che l’equazione (1) implica che, dati due vettori non nulli ~u e ~v, il loro prodottoscalare

• e pari a |~u||~v| se e solo se i vettori sono paralleli

• e pari a 0 se e solo se i vettori sono perpendicolari.

Analogamente, l’equazione (2) implica che, dati due vettori non nulli ~u e ~v, il modulo delloro prodotto vettoriale

• e pari a |~u||~v| se e solo se i vettori sono perpendicolari

• e pari a 0 se e solo se i vettori sono paralleli.

1.2 Basi e coordinate

In questo paragrafo si intende chiarire come i vettori appartenenti allo spazio R3 possanoessere utilizzati per la descrizione della configurazione spaziale di oggetti tridimensionali.A tale scopo si fa riferimento al concetto di punto P come elemento caratterizzante unaspecifica posizione nello spazio. A titolo di esempio, in Figura 2 sono rappresentati alcunicorpi ed alcuni punti materiali P1, P2.

L’individuazione dei punti nello spazio e evidentemente subordinata alla specificazionedel punto di vista dell’osservatore, ovvero alla definizione di un sistema di riferimento chepuo essere formalizzata come segue (un esempio e riportato in Figura 2):

1Se ~u e ~v sono paralleli, allora ~u× ~v e il vettore nullo.

3

Page 4: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 2: Corpi nello spazio tridimensionale, punti e terna di riferimento.

Definizione 1.1 Una base ortonormale (o,~ex, ~ey, ~ez) e un sistema (o una terna) di rifer-imento ortonormale in R

3 costituito da tre vettori ~ex, ~ey, ~ez, detti versori, applicati ad unpunto o, l’origine, mutuamente ortogonali, cioe tali che

<~ex, ~ey>= 0, <~ex, ~ez>= 0, <~ey, ~ez>= 0,

e di lunghezza unitaria, cioe:

|~ex| = 1, |~ey| = 1, |~ez| = 1.

Un sistema di riferimento ortonormale si dice destrorso se ~ex × ~ey = ~ez. In questedispense, a meno che non sia specificato diversamente, tutti i sistemi di riferimento si in-tenderanno implicitamente destrorsi.

Osservazione 1.1 Per i sistemi di riferimento destrorsi, vale la regola mnemonica cosiddetta“della mano destra,” secondo cui, allineando le direzioni di ~ex, ~ey ed ~ez, rispettivamente, conil pollice, l’indice e il medio, l’orientamento della terna destrorsa coincide con quello dellamano destra posizionata come in Figura 3. ◦

Dato un punto P ed il centro o di una base (o,~ex, ~ey, ~ez), il vettore ~u := ~oP , che individuail punto P in funzione di tale base, e esprimibile in modo univoco come combinazione linearedei versori vecex, ~ey ed ~ez della base, come segue:

~u = <~u, ~ex> ~ex+ <~u, ~ey> ~ey+ <~u, ~ez> ~ez,= x~ex + y~ey + z~ez,

(3)

ed e quindi individuato da tre numeri reali (x, y, z) := (< ~u, ~ex >,< ~u, ~ey >,< ~u, ~ez >) che costituiscono le sue componenti rispetto alla base scelta. Qualsiasi punto P nello

4

Page 5: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 3: La “regola della mano destra” per sistemi di riferimento destrorsi.

spazio tridimensionale e rappresentato dal vettore ~oP ed individuato dalle componentiq := [x y z]T di ~oP rispetto alla base ortonormale (o,~ex, ~ey, ~ez) che chiameremo coordinatedel punto P . I gradi di liberta di un punto P , corrispondenti al numero di coordinateindipendenti che ne individuano la configurazione, e dunque pari a 3. Dati due sistemi diriferimento (o1, ~ex1, ~ey1, ~ez1) e (o2, ~ex2, ~ey2, ~ez2), le coordinate di un punto P nei due riferimentiverranno indicate da q1 = [x1 y1 z1]

T e q2 = [x2 y2 z2]T , rispettivamente.

2 Traslazioni e rotazioni

Definizione 2.1 Un corpo rigido e un insieme di punti Pk nello spazio tridimensionalevincolati dalle relazioni

|Pi(t) − Pj(t)| = rij = cost, ∀i, j, (4)

che impongono che la distanza tra due punti qualsiasi appartenenti al corpo sia costante neltempo.

La configurazione di un corpo rigido nello spazio tridimensionale e univocamente deter-minata dalla posizione di almeno tre punti non allineati. 2 Considerando i vincoli di rigidita,dei nove parametri che caratterizzano la posizione dei tre punti, solo sei sono indipendenti tradi loro: l’invarianza della mutua distanza (corrispondente all’equazione (4)) impone infattitre condizioni scalari che devono essere soddisfatte dai nove parametri. Si dice quindi che uncorpo rigido libero di assumere qualsiasi configurazione nello spazio tridimensionale possiedesei gradi di liberta. Piu convenientemente, la configurazione di un corpo rigido e individuatadalla posizione e dall’orientamento di una terna di riferimento solidale con il corpo rispettoad una terna di riferimento fissa. Si vedra piu avanti come possono essere rappresentati laposizione e l’orientamento di una terna di riferimento mobile rispetto ad una fissa.

2Si dimostra facilmente che specificando la posizione di piu di 3 punti (non allineati), i vincoli (4) impon-gono delle relazioni di congruenza che riducono comunque i gradi di liberta a 9.

5

Page 6: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Uno spostamento rigido (ovvero, di un corpo rigido) su dice traslatorio, o traslazione,se lascia invariati gli orientamenti degli assi della terna di riferimento solidale con il corporigido. Uno spostamento rigido si dice sferico se lascia invariata la posizione di un punto,chiamato centro. Uno spostamento rigido si dice rotatorio, o rotazione, se lascia invariata laposizione di tuttii punti appartenenti ad una retta, chiamata asse di rotazione.

2.1 Traslazione

Si considerino dapprima due sistemi di riferimento (o1, ~ex1, ~ey1, ~ez1) e (o2, ~ex2, ~ey2, ~ez2) taliche i vettori (~ex1, ~ey1, ~ez1) siano rispettivamente paralleli a (~ex2, ~ey2, ~ez2) ed il punto o2 abbiacoordinate d = [dx dy dz]

T nel primo sistema di riferimento (vedi Figura 4). Un genericopunto P ha coordinate q1 = [x1 y1 z1]

T e q2 = [x2 y2 z2]T nei due sistemi di riferimento. Tra

le due rappresentazioni sussiste la relazione

x1 = x2 + dxy1 = y2 + dyz1 = z2 + dz

(5)

esprimibile in forma vettoriale come:

~o1P = ~o2P + ~d.

Figure 4: Due sistemi di riferimento traslati l’uno rispetto all’altro.

2.2 Rotazione

Consideriamo ora due sistemi di riferimento (o1, ~ex1, ~ey1, ~ez1) e (o2, ~ex2, ~ey2, ~ez2) aventi le orig-ini coincidenti, come in Figura 5. Si vuole determinare la relazione tra le coordinate di ungenerico punto P nei due riferimenti, cioe la relazione tra q1 = [x1 y1 z1]

T e q2 = [x2 y2 z2]T ,

rispettivamente. In base all’equazione (3), nel riferimento (o1, ~ex1, ~ey1, ~ez1), i vettori ~ex2, ~ey2

6

Page 7: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

ed ~ez2 sono espressi dalle relazioni

~ex2 = <~ex2, ~ex1> ~ex1+ <~ex2, ~ey1> ~ey1+ <~ex2, ~ez1> ~ez1~ey2 = <~ey2, ~ex1> ~ex1+ <~ey2, ~ey1> ~ey1+ <~ey2, ~ez1> ~ez1~ez2 = <~ez2, ~ex1> ~ex1+ <~ez2, ~ey1> ~ey1+ <~ez2, ~ez1> ~ez1 .

Figure 5: Due sistemi di riferimento ruotati l’uno rispetto all’altro.

Sostituendo tali espressioni nel vettore ~o2P espresso rispetto al sistema di coordinate(o2, ~ex2, ~ey2, ~ez2):

~o2P = x2 ~ex2 + y2 ~ey2 + z2 ~ez2

si ottiene il vettore ~o1P espresso nel sistema di coordinate (o1, ~ex1, ~ey1, ~ez1):

~o1P = x1 ~ex1 + y1 ~ey1 + z1 ~ez1

dove, raccogliendo i fattori che moltiplicano ~ex1, ~ey1 e ~ez1, si possono esprimere le coordinate(x1, y1, z1) in funzione delle coordinate (x2, y2, z2) come segue:

q1 =

x1

y1

z1

=

<~ex2, ~ex1> <~ey2, ~ex1> <~ez2, ~ex1><~ex2, ~ey1> <~ey2, ~ey1> <~ez2, ~ey1><~ex2, ~ez1> <~ey2, ~ez1> <~ez2, ~ez1>

x2

y2

z2

=: B q2 .

(6)

In modo del tutto analogo, si ricava

q2 =

x2

y2

z2

=

<~ex1, ~ex2> <~ey1, ~ex2> <~ez1, ~ex2><~ex1, ~ey2> <~ey1, ~ey2> <~ez1, ~ey2><~ex1, ~ez2> <~ey1, ~ez2> <~ez1, ~ez2>

x1

y1

z1

=: Aq1 .

(7)

Le matrici A e B sono dette matrici di rotazione. Le matrici di rotazione godono diproprieta particolari, come evidenziato di seguito.

7

Page 8: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Definizione 2.2 Una matrice quadrata Q con elementi reali, si dice ortogonale se QT Q = I,ovvero, se Q e invertibile e Q−1 = QT .

Teorema 2.1 Le matrici di rotazione sono ortogonali.

Dimostrazione. Si considerino le equazioni (6), (7). Poiche il prodotto scalare e commuta-tivo, cioe, dati due vettori ~u e ~v, <~u, ~v>=<~v, ~u>, ne segue che B = AT e BT = A. D’altraparte, poiche q′ = ABq′, necessariamente, AB = I, cioe A = B−1, e quindi BT = B−1. Lamatrice B e dunque ortogonale. Data la generalita della trasformazione (6), (7), il teoremae dimostrato. •

2.2.1 Matrici di rotazione fondamentali

Si consideri il caso in cui due sistemi di riferimento (o1, ~ex1, ~ey1, ~ez1) e (o2, ~ex2, ~ey2, ~ez2) hannole origini e i versori ~ez1 ed ~ez2 coincidenti. Si supponga inoltre che il versore ~ex1 debbacompiere una rotazione antioraria di un angolo θ per sovrapporsi al versore ~ex2. In questocaso, rappresentato in Figura 6.a, la matrice di rotazione Rz,θ tale che,

q1 = Rz,θ q2, (8)

detta matrice di rotazione fondamentale intorno all’asse z, 3 si puo calcolare esplicitamentein base all’equazione (7) come

Rz,θ :=

cos θ − sin θ 0sin θ cos θ 0

0 0 1

. (9a)

Osservazione 2.1 Se l’orientamento degli angoli di rotazione viene sempre tracciato insenso antiorario, allora una utile regola mnemonica per la scrittura corretta della relazionetra sistemi di riferimento ruotati l’uno rispetto all’altro e la seguente. Se le coordinate chesi trovano a sinistra del segno di uguaglianza sono quelle rispetto al sistema di riferimentoda cui l’angolo di rotazione parte (cioe, dal lato opposto della freccia), allora la matrice dirotazione da scrivere e quella fondamentale. In caso contrario, la matrice di rotazione dascrivere e quella fondamentale trasposta (il motivo di questo, che sara piu chiaro di seguito,e legato al Teorema 2.1). Ad esempio, nell’equazione (8), poiche q1 e a sinistra dell’uguale, ein Figura 6.a l’angolo parte da un asse del primo riferimento, allora la matrice di rotazionescritta nella (8) e quella fondamentale. Nel caso opposto, si sarebbe scritta la trasposta; inaltre parole, vale la relazione q2 = RT

z,θ q1. ◦

3In altre parole, Rx,θ e la matrice che trasforma le coordinate rispetto al riferimento (o2, ~ex2, ~ey2, ~ez2) incoordinate rispetto al secondo riferimento (o1, ~ex1, ~ey1, ~ez1).

8

Page 9: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 6: Le tre rotazioni fondamentali.

Analogamente, la matrice di rotazione fondamentale intorno all’asse x, corrispondenteal caso rappresentato in Figura 6.b, e data dalla relazione

Rx,θ :=

1 0 00 cos θ − sin θ0 sin θ cos θ

, (9b)

e la matrice di rotazione fondamentale intorno all’asse y, corrispondente al caso rappresen-tato in Figura 6.c, e data dalla relazione

Ry,θ :=

cos θ 0 sin θ0 1 0

− sin θ 0 cos θ

. (9c)

Esercizio 2.1 Si calcolino le coordinate dei punti

q′1 = [4 3 2]T , q′′1 = [6 2 4]T ,

in un sistema di riferimento ruotato di 60 gradi intorno all’asse z rispetto al precedente.R.

q′2 = [4.6 − 1.96 2]T , q′′2 = [4.73 − 4.2 4]T ,

?

2.2.2 Composizione di matrici di rotazione

Le matrici di rotazione fondamentali possono essere composte tra loro per costruire nuovematrici di rotazione che consentano la rappresentazione di relazioni piu complesse tra sis-temi di coordinate con le origini coincidenti. In particolare, si considerino tre sistemi 4 di

4Per semplicita di notazione, da questo punto in poi, il sistema di riferimento (oi, exi, eyi, ezi) verraspesso denotato con (oxyz)i. Inoltre, l’asse passante per exi verra spesso denotato come asse xi, o, se questonon genera confusione, piu semplicemente, asse x. Analogamente sara fatto per gli assi yi e zi.

9

Page 10: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

riferimento (oxyz)0, (oxyz)1 e (oxyz)2 con le origini coincidenti, e le matrici di rotazione 0R1

e 1R2 tali cheq0 = 0R1 q1, q1 = 1R2 q2.

E evidente che la relazione tra il sistema di riferimento (oxyz)0 e il sistema di riferimento(oxyz)2 e rappresentata dalla matrice di rotazione 0R2 definita come segue:

q0 = 0R1 q1,

= 0R11R2 q2

=: 0R2 q2.

In particolare, se un sistema di coordinate (oxyz)2 e ottenuto da una rotazione del sistemadi coordinate (oxyz)0 intorno all’asse x di un angolo θ seguita da una rotazione intornoall’asse y di un angolo φ in base alle equazioni relative alle rotazioni fondamentali e allaregola mnemonica descritta nell’Osservazione 2.1, le coordinate q0 e q2, sono in relazionesecondo la seguente matrice di rotazione:

q0 = 0R2 q2= Rx,θ Ry,φ q2

=

1 0 00 cos θ − sin θ0 sin θ cos θ

cosφ 0 sinφ0 1 0

− sinφ 0 cosφ

q2

=

cosφ 0 sinφsinφ sin θ cos θ − cosφ sin θ

− sinφ cos θ sin θ cosφ cos θ

q2.

(10)

Si noti peraltro che, in base al Teorema 2.1, la trasformazione inversa da q0 a q2 edata dalla matrice 0R2 := 2RT

0 . Questa proprieta tuttavia non e da confondere con lacommutativita di due matrici di rotazione, che non sussiste, ad eccezione del caso banale incui le due rotazioni avvengono intorno allo stesso asse. Per mostrare che

Le rotazioni non godono della proprieta di commutativita, 5

si consideri la rotazione commutata rispetto a quella dell’equazione (10), cioe la rotazione diun angolo φ intorno all’asse y seguita da una rotazione di un angolo θ intorno all’asse x. Lamatrice relativa e data da

R := Ry,φRx,θ

=

cosφ 0 sinφ0 1 0

− sinφ 0 cosφ

1 0 00 cos θ − sin θ0 sin θ cos θ

=

cosφ sinφ sin θ sinφ cos θ0 cos θ − sin θ

− sinφ cosφ sin θ cosφ cos θ

,

che, evidentemente e molto diversa dalla matrice nell’equazione (10).5Ovvero, rotazioni effettuate secondo un ordine diverso non sono associate allo stesso risultato finale.

10

Page 11: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Osservazione 2.2 Si osservi che mentre come gia visto, una rotazione R2 effettuata inseguito ad una rotazione R1 provoca una rotazione globale pari alla postmoltiplicazione diR2 per R1:

RTOT := R1R2,

se una rotazione R0 viene effettuata prima di una rotazione R1, la rotazione complessiva edata dalla premoltiplicazione di R0 per R1:

RTOT := R0R1.

2.2.3 Rotazione intorno ad un asse qualsiasi

Sulla base di quanto detto nel precedente paragrafo, sembra naturale sostenere che qualsiasirotazione di un corpo rigido sia esprimibile tramite una matrice di rotazione. Per dimostrarequesta proprieta, in questa sezione si descrivera una tecnica costruttiva per caratterizzare larotazione di una terna di riferimento intorno ad una asse di rotazione arbitrario.

Figure 7: Rotazione intorno ad un asse arbitrario.

Con riferimento alla Figura 7, si consideri il caso in cui rispetto alla terna di riferimento(0xyz), l’asse di rotazione abbia coordinate (rx, ry, rz), con (r2

x + r2y + r2

z)1

2 = 1. In altreparole, si supponga che il vettore ~r mostrato in Figura 7 sia di fatto un versore. In questocaso, la rotazione di un angolo θ intorno all’asse individuato da ~r puo essere descritta dallacomposizione di rotazioni elementari come segue:

11

Page 12: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

1. rotazione di un angolo −α intorno all’asse z per portare l’asse r sul piano verticaleindividuato dagli assi gli assi x e z;

2. rotazione di un angolo −β intorno all’asse y per sovrapporre l’asse r all’asse z;

3. rotazione di un angolo θ intorno all’asse z ≡ r;

4. rotazione di un angolo β intorno all’asse y;

5. rotazione di un angolo α intorno all’asse z.

Si noti che le ultime due rotazioni vengono eseguite per riportare l’asse r nella posizioneoriginaria. In particolare, poiche la rotazione da rappresentare avviene intorno all’asse r,tutti i punti dello spazio su questo asse non devono subire nessuno spostamento.

La procedura sopra elencata puo essere descritta in termini di matrici di rotazione fon-damentali tramite la formula seguente (si noti che, in relazione all’Osservazione 2.2, tuttele rotazioni sopraelencate sono riferite alla terna fissa dunque corrispondono a matrici dirotazione che vengono via via premoltiplicate):

Rr,θ = Rz,αRy,β Rz,θ Ry,−β Rz,−α, (11)

nella quale e utile eliminare la dipendenza da α e β, esprimendola in funzione delle com-ponenti di ~r rispetto al sistema di riferimento (0xyz). In particolare, poiche ~r ha normaunitaria, le seguenti relazioni derivano da semplici argomentazioni geometriche:

rx =√

r2x + r2

y cosα ry =√

r2x + r2

y sinα√

r2x + r2

y = sin β rz = cos β.(12)

Dalle relazioni 12, si ricava sostituendo seni e coseni di α e β in (11) e moltiplicando: 6

Rr,θ =

r2x(1 − Cθ) + Cθ rxry(1 − Cθ) − rzSθ rxrz(1 − Cθ) + rySθ

rxry(1 − Cθ) + rzSθ r2y(1 − Cθ) + Cθ ryrz(1 − Cθ) − rxSθ

rxrz(1 − Cθ) − rySθ ryrz(1 − Cθ) + rxSθ r2z(1 − Cθ) + Cθ

, (13)

che rappresenta la rotazione di un angolo θ della terna originaria (0xyz) intorno all’assearbitrario r. In particolare, si denoti con (0xyz)1, la terna (0xyz) in seguito alla rotazione,allora vale

q = Rr,θ q1 .

Osservazione 2.3 Si osservi che l’equazione (12) puo anche essere ricavata a partire dallamatrice centrale Rz,θ. In particolare, assumendo in prima istanza che r ≡ z, la rotazionesi esprime come Rz,θ. Successivamente, le rotazioni necessarie per riportare l’asse r nellaposizione corretta corrispondono a due matrici Rz,αRy,β che premoltiplicano la matrice dirotazione. Infine, poiche di fatto l’assunzione r ≡ z non e vera in generale, le rotazionida effettuare per portare r a coincidere con z corrispondono a due matrici Ry,−β Rz,−α chepostmoltiplicano la matrice di rotazione, dando cosi luogo alla (12). ◦

6Nella (13), la notazione Cθ sta per cos θ e la notazione Sθ sta per sin θ.

12

Page 13: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Esercizio 2.2 Si verifichi che anche per la matrice (13), come per tutte le matrici di ro-tazione, vale la relazione RT

r,θ Rr,θ = I, dimostrata nel Teorema 2.1. ?

Esercizio 2.3 Utilizzando la formula (11), si scrivano le tre matrici relative alle rotazionidi un sistema di riferimento di 60 gradi intorno ai seguenti assi, rispettivamente:

1. l’asse x;

2. l’asse y;

3. la bisettrice del primo quadrante.

?

13

Page 14: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

3 Coordinate e trasformazioni omogenee

3.1 Rototraslazioni e rappresentazioni minime

Come gia anticipato nel paragrafo 1.2, il numero di gradi di liberta di un corpo rigido nellospazio e pari a sei. Questa proprieta verra reinterpretata in questo paragrafo, alla luce delladescrizione delle rotazioni e delle traslazioni data nei paragrafi precedenti.

Si consideri un sistema di riferimento fisso (ovvero, con posizione ed orientamento costantinel tempo) e un sistema di riferimento solidale con il corpo rigido e con il centro localizzato suun punto di interesse del corpo rigido (quale, il punto terminale, una cuspide, etc.). Si osserviche, in base all’equazione (5) e all’equazione (7), qualsiasi rototraslazione del corpo rigidonello spazio puo essere descritta dalla relazione seguente (corrispondente ad una rotazioneseguita da una traslazione):

q0 = Rq + d, (14)

dove il vettore d ∈ R3 rappresenta la posizione del centro del sistema di riferimento solidale

con il corpo, mentre la matrice R ne rappresenta l’orientamento, entrambi valutati rispettoal sistema di riferimento fisso.

Il fatto che l’equazione (14) sia in grado di rappresentare qualsiasi posizione del corporigido nello spazio e stabilito nei seguenti teoremi.

Teorema 3.1 (Teorema di Eulero) Un generico spostamento rigido che lascia invariato unpunto fisso c (spostamento sferico) e uno spostamento rotatorio con asse di rotazione passanteper c.

Teorema 3.2 (Teorema di Chasles) Un generico spostamento rigido puo essere decompostoin una rotazione attorno ad un asse fisso ed in una traslazione lungo lo stesso asse.

In base al teorema di Chasles, per qualsiasi spostamento rigido, esiste un sistema dicoordinate tale che lo spostamento e caratterizzato da una lunghezza ` ed un angolo θ ed eesprimibile in tale sistema di coordinate tramite la forma canonica di Chasles:

q0 =

cos θ − sin θ 0sin θ cos θ 0

0 0 1

q +

00`

.

Nonostante l’equazione (14) possa rappresentare qualsiasi rototraslazione, essa non necostituisce una rappresentazione minima. In particolare, mentre il vettore d rappresentaunivocamente la posizione del centro del sistema di riferimento solidale con il corpo rigido,la matrice R ne rappresenta l’orientamento con un certo grado di ridondanza. Infatti, deinove parametri che caratterizzano la matrice R, sei sono vincolati dalla relazione RRT = I,dimostrata nel Teorema 2.1, che corrisponde a 6 relazioni scalari (tre corrispondenti aglielementi sulla diagonale dell’identita e tre corrispondenti agli elementi fuori dalla diagonale).

Allo scopo di ottenere una rappresentazione minima dell’orientamento, e necessario sta-bilire una relazione biunivoca tra i nove coefficienti della matrice R e tre parametri indipen-denti, generalmente costituiti da tre angoli, opportunamente selezionati in una varieta discelte, tutte equivalenti. Di seguito descriveremo due possibili scelte di rappresentazioniminime dell’orientamento.

14

Page 15: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

3.1.1 Angoli di Eulero

La strategia piu diretta per la selezione dei parametri minimi descriventi l’orientamentoconsiste nel caratterizzare la matrice di rotazione in base alla composizione di tre rotazionisuccessive intorno a tre assi coordinati. I tre angoli associati alle rotazioni vengono denom-inati angoli di Eulero. L’arbitrarieta degli angoli di Eulero consiste nel fatto che ciascunadelle tre rotazioni puo essere effettuata intorno a un qualsiasi asse coordinato. Tuttavia,condizione necessaria (e sufficiente) perche i tre angoli derivanti da questa caratterizzazionesiano indipendenti e che ogni coppia di rotazioni successive avvenga intorno ad assi coordinatidiversi. Vi sono dunque 27 possibili combinazioni di rotazioni, corrispondenti a rotazioni suc-cessive intorno ad assi coordinati diversi. Per ogni combinazione, la relativa terna di Euleroviene denominata “terna XYZ”, o “terna YXY”, e via di seguito. Si ribadisce che una ternadel tipo “XXY” non costituirebbe una rappresentazione minima dell’orientamento perche leprime due rotazioni (entrambe intorno all’asse coordinato x) non sono indipendenti.

Nel seguito si fa riferimento alla convenzione associata agli angoli ZYZ caratterizzatidalle seguenti operazioni:

1. Rotazione di un angolo ϕ intorno all’asse z;

2. Rotazione di un angolo ϑ intorno all’asse y (corrente);

3. Rotazione di un angolo ψ intorno all’asse z (corrente);

Per convenzione, tali rotazioni vengono via via riferite agli assi trasformati secondol’ultima rotazione effettuata. In base a quanto illustrato nell’Osservazione 2.2, esse cor-rispondono dunque a matrici di rotazione che vanno via via a postmoltiplicare le rotazioniprecedenti. Considerando dapprima il problema della determinazione della matrice di ro-tazione RZY Z(ϕ, ϑ, ψ) a partire dai valori dei tre angoli ZYZ ϕ, ϑ e ψ, si puo scrivere laseguente relazione:

RZY Z(ϕ, ϑ, ψ) = Rz,ϕRy,ϑRz,ψ

=

CϕCϑCψ − SϕSψ −CϕCϑSψ − SϕCψ CϕSϑSϕCϑCψ − CϕSψ −SϕCϑSψ − CϕCψ SϕSϑ

−SϑCψ SϑSψ Cθ

.(15)

Data una terna ϕ, ϑ, ψ di angoli ZYZ, l’equazione (15) permette di ricavare la matrice ditrasformazione corrispondente. Il procedimento inverso (ovvero il calcolo degli angoli ϕ, ϑ, ψcorrispondenti ad un determinato orientamento, in base all’espressione della relativa matricedi rotazione R) e anche di interesse, ma corrisponde ad un problema algebrico piu articolato.Per la soluzione di quest’ultimo problema e utile introdurre la funzione (x, y) 7→ atan2(x, y)che associa ad ogni coppia di ingressi x, y un angolo α tale che sin(α) = x√

x2+y2e cos(α) =

y√x2+y2

. Questa funzione viene anche denominata “arcotangente a 4 quadranti” in quanto,

al contrario della classica funzione arcotangente atan(·), non e soggetta all’indeterminazionetra il primo e il terzo (similarmente, il secondo e il quarto) quadrante. Inoltre, i punti disingolarita in π/2+kπ caratterizzanti la funzione classica atan(·) non sono presenti in questocaso, grazie al fatto che atan2(·, ·) e funzione di due argomenti. Le peculiarita essenziali dellafunzione (x, y) 7→ atan2(x, y) sono le seguenti:

15

Page 16: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

• per qualsiasi costante a > 0 e qualsiasi angolo α ∈ [0, 2π),

atan2(a sin(α), a cos(α)) = α, (16)

• la funzione e indeterminata 7 in (0, 0).

Sulla base della funzione atan2(·, ·) si puo ora procedere alla determinazione della trasfor-mazione inversa della (15). In particolare, supponiamo che sia nota la matrice R = {rij}relativa ad un determinato orientamento e che si voglia determinare la terna di angoli (o,piu correttamente, una 8 terna di angoli) ϕ, ϑ e ψ tali che R = RZY Z(ϕ, ϑ, ψ). Per procederealla determinazione di ϕ, ϑ e ψ si considerano dapprima tutte le relazioni di uguaglianzacorrispondenti a R = RZY Z(ϕ, ϑ, ψ):

r11 r12 r13

r21 r22 r23

r31 r32 r33

=

CϕCϑCψ − SϕSψ −CϕCϑSψ − SϕCψ CϕSϑSϕCϑCψ − CϕSψ −SϕCϑSψ − CϕCψ SϕSϑ

−SϑCψ SϑSψ Cϑ

e successivamente, sfruttando le uguaglianze membro a membro, si procede alla determi-nazione dei vari angoli facendo uso della funzione atan2(·) sopra definita. Una possibilestrategia e la seguente (anche se non e l’unica):

• ϑ = atan2(√

r231 + r2

32, r33).

• Se Sϑ 6= 0, allora 9

– ψ = atan2(r32,−r31).

– ϕ = atan2(r23, r13),

• Se Sϑ = 0, allora le rotazioni ϕ e ψ avvengono intorno allo stesso asse (eventualmentecon verso opposto), quindi si puo scegliere arbitrariamente ψ = 0 cosicche sin(ψ) = 0e cos(ψ) = 1, per poi determinare

– ψ = 0 (per definizione).

– ϕ = atan2(r21, r11).

3.1.2 Angoli di RPY

Una convenzione per la rappresentazione minima dell’orientamento particolarmente adottatain campo aeronautico e la convenzione RPY, dove R sta per rollio (roll), P sta per beccheggio(pitch) e Y sta per imbardata (yaw). Questa convenzione e bene interpretabile facendoriferimento all’assetto di un aereoplano sul quale sia stato fissato un sistema di riferimentoil cui asse z e disposto lungo la carlinga, il cui asse y e disposto nella direzione dell’aperturaalare e il cui asse x e disposto di conseguenza (vedi Figura 8).

7Si noti che se la funzione atan2(·, ·) e usata in modo appropriato, i suoi argomenti non sono mai entrambinulli, in quanto essi devono corrispondere al seno e al coseno di un angolo (eventualmente non normalizzati).La circostanza in cui entrambi i suoi argomenti sono nulli corrisponde generalmente ad un errore di utilizzodella funzione.

8E immediato constatare che questa terna di angoli e, in generale, non unica, perche ad esempio,RZY Z(ϕ, 0, ψ) = RZY Z(ϕ+ α, 0, ψ − α) per qualsiasi valore dell’angolo α.

9Si osservi che per definizione, sinϑ =√

r231

+ r232> 0, per cui dalla (16), con a = sinϑ > 0, le espressioni

proposte per ψ e per ϕ sono corrette.

16

Page 17: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 8: Gli angoli di RPY.

Secondo la convenzione RPY, gli angoli di rollio ϕ, di beccheggio ϑ e di imbardata ψvengono definiti eseguendo tre rotazioni successive, tutte intorno agli assi del sistema diriferimento originale, secondo la sequenza:

1. Rotazione di un angolo ψ intorno all’asse x;

2. Rotazione di un angolo ϑ intorno all’asse y (originale);

3. Rotazione di un angolo ϕ intorno all’asse z (originale).

In base a quanto illustrato nell’Osservazione 2.2, le tre rotazioni sopra elencate corrispon-dono a matrici di rotazione che vanno via via a premoltiplicare le rotazioni precedenti, infattieseguendo le rotazioni successive rispetto al sistema di riferimento originale, l’effetto e quelloche si otterrebbe se la rotazione in oggetto fosse anteposta a quelle gia effettuate (questa pro-prieta sara piu chiara in seguito nell’Esempio 3.2 e nell’Osservazione 3.1). Premoltiplicando,dunque, le matrici di rotazione relative alle trasformazioni sopra elencate, si puo procederealla determinazione della matrice di rotazione RRPY (ϕ, ϑ, ψ) analoga a quella riportata inequazione (15) per il caso degli angoli ZYZ:

RRPY (ϕ, ϑ, ψ) = Rz,ϕRy,ϑRx,ψ

=

CϕCϑ CϕSϑSψ − SϕCψ CϕCϑCψ + SϕSψSϕCϑ SϕSϑSψ − CϕCψ SϕSϑCψ − CϕSψ−Sϑ CϑSψ CϑCψ

.(17)

Si osservi che gli angoli di RPY corrispondono ad una delle 27 possibili scelte per gliangoli di Eulero indicate nel paragrafo precedente. In particolare, essi corrispondono agliangoli di Eulero ZYX.

La determinazione della trasformazione inversa alla (17) puo essere eseguita in manieraparallela a quanto fatto nel paragrafo precedente per il caso degli angoli ZYZ ed e oggettodel seguemte esercizio.

17

Page 18: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Esercizio 3.1 Data una matrice di rotazione generica R = {rij}, determinare una terna diangoli di RPY ϕ, ϑ e ψ tali che R = RRPY (ϕ, ϑ, ψ). ?

3.2 Coordinate omogenee

Con riferimento alla Figura 9, dato un punto P nello spazio e dati due sistemi di riferimento(0xyz)0 e (0xyz)1, se le coordinate del punto o1 rispetto al sistema di riferimento (0xyz)0 sonorappresentate dal vettore d, e se q0 e q1 denotano le coordinate del punto P nei due sistemidi riferimento, allora la seguente relazione puo essere verificata con semplici considerazionigeometriche di composizione di vettori:

q0 = 0R1 q1 + d, (18)

dove 0R1 e la matrice di rotazione del sistema di riferimento (0xyz)1 rispetto al sistema diriferimento (0xyz)0. Si noti che l’equazione (18) coincide con l’equazione (14). Tuttavia,sulla base del Teorema di Eulero 3.1, sappiamo ora che qualunque spostamento rigido puoessere caratterizzato dalla (18).

Figure 9: Rappresentazione di un punto in diversi sistemi di coordinate.

Per rappresentare in maniera piu compatta il generico spostamento rigido (18), invecedelle coordinate Cartesiane [x y z]T si utilizzano le coordinate omogenee: [wx wy wz w]T ,costituite non piu da tre ma da quattro componenti, di cui la quarta costituisce il fattore discala per cui le componenti x, y e z sono moltiplicate e puo essere utilizzata per risalire allecoordinate Cartesiane. Sulla base delle coordinate omogenee si definiscono le trasformazioniomogenee, rappresentate da matrici appartenenti allo spazio R

4×4 che consentono la rappre-sentazione compatta non solo di rotazioni (come avveniva per le matrici nello spazio R

3×3)ma anche di traslazioni. La forma piu generale per una trasformazione omogenea e datadalla seguente formula:

w1q1

w1

=

R d

f s

w0q0

w0

, (19)

18

Page 19: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

dove R ∈ R3×3 e la matrice di rotazione, d ∈ R

3 e il vettore di posizione, f ∈ R1×3 e il vettore

di trasformazione prospettica e s ∈ R e il fattore di scala. Nelle applicazioni robotiche (e,nel nostro caso, da questo punto in poi), si considera sempre f = [0 0 0] e s = 1, quindile coordinate omogenee associate ad un punto di coordinate Cartesiane [x y z]T sarannosempre definite come [x y z 1]T (il fattore di scala e il vettore di trasformazione prospetticasono usati, ad esempio, in applicazioni di computer grafica).

Sulla base della struttura delle trasformazioni omogenee descritta dall’equazione (19),si possono scrivere le seguenti matrici di rotazioni omogenee fondamentali (corrispondentirispettivamente alle equazioni (9)):

Tz,θ :=

cos θ − sin θ 0 0sin θ cos θ 0 0

0 0 1 00 0 0 1

(20a)

Tx,θ :=

1 0 0 00 cos θ − sin θ 00 sin θ cos θ 00 0 0 1

(20b)

Ty,θ :=

cos θ 0 sin θ 00 1 0 0

− sin θ 0 cos θ 00 0 0 1

, (20c)

e la matrice di traslazione omogenea fondamentale

Ttr,d :=

1 0 0 dx0 1 0 dy0 0 1 dz0 0 0 1

, (20d)

dove d = [dx dy dz]T costituisce un generico spostamento traslatorio.

Il vantaggio delle coordinate e trasformazioni omogenee sta nel fatto che l’equazione (18),caratterizzante un generico spostamento rigido, puo essere descritta in forma matriciale comesegue, tramite la trasformazione omogenea 0T1:

p0 =

[

q01

]

= 0T1 p1

=

[

0R1 d[0 0 0] 1

] [

q11

]

,

=

[

0R1 q1 + d1

]

e, analogamente a quanto accadeva per le rotazioni (descritte da matrici in R3×3), gli sposta-

menti rigidi si possono comporre, consentendo la rappresentazione compatta di catene di sis-temi di riferimento in relazione l’uno con l’altro. In particolare, se p0 = 0T1p1 e p1 = 1T2p2,

19

Page 20: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 10: Composizione di spostamenti rigidi per determinare la trasformazione di coordi-nate complessiva.

allora si puo sostituire e ottenere

p0 = 0T1 p1,

= 0T11T2 p2

=: 0T2 p2.

Quindi, con riferimento alla Figura 10, la matrice 0T4 e data dal seguente prodotto delletrasformazioni da ogni sistema di riferimento al successivo:

0T4 = 0T11T2

2T33T4.

Esercizio 3.2 Si dimostri tramite l’uso delle trasformazioni omogenee che una rotazionelungo un asse ed una traslazione nella direzione dello stesso asse sono trasformazioni checommutano. ?

Esempio 3.1 Trovare una matrice di trasformazione omogenea che rappresenti una traslazionedi lunghezza d lungo l’asse z seguita da una rotazione di un angolo θ intorno a z, seguita dauna rotazione di un angolo α intorno all’asse x, e infine, da una traslazione di lunghezza alungo x.Soluzione. La soluzione e data dalla composizione delle quattro matrici di trasformazionefondamentali, secondo la regola mnemonica data in Osservazione 2.2:

T = Ttr,[0 0 d]T Tz,θ Tx,α Ttr,[a 0 0]T

=

cos θ − sin θ 0 0sin θ cos θ 0 0

0 0 1 00 0 0 1

1 0 0 00 1 0 00 0 1 d0 0 0 1

20

Page 21: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

1 0 0 a0 1 0 00 0 1 00 0 0 1

1 0 0 00 cosα − sinα 00 sinα cosα 00 0 0 1

=

cos θ − cosα sin θ sinα sin θ a cos θsin θ cosα cos θ − sinα cos θ a sin θ

0 sinα cosα d0 0 0 1

?

Esercizio 3.3 Si dimostri che le trasformazioni omogenee non godono della proprieta diortogonalita come le rotazioni. Inoltre, si verifichi che, data la trasformazione omogenea,

0T1 =

[

0R1 d[0 0 0] 1

]

,

la trasformazione inversa 10 corrisponde a:

1T0 =

[

0RT1 −0RT

1 d[0 0 0] 1

]

.

?

Se da un lato la composizione di piu trasformazioni omogenee risulta come una banaleoperazione algebrica, non e altrettanto banale la costruzione della matrice di trasformazionerelativa a due basi orientate e centrate in modi diversi. Sulla base del seguente esempio,si puo estrapolare una regola mnemonica per la costruzione della matrice di trasformazionecorretta.

Esempio 3.2 In questo esempio, le coordinate omogenee saranno utilizzate per rappre-sentare la posizione e l’orientamento del punto termale di un robot planare in base al sistemadi coordinate solidale con la base del robot.

Con riferimento alla Figura 11, si assuma che i due bracci (spesso indicati come “link”o “segmenti”) del robot siano lunghi rispettivamente a1 e a2 e che gli angoli dei due giunti,definiti come in figura, siano rispettivamente θ1 e θ2. Si possono allora definire tre sistemidi riferimento: il sistema fisso (0xyz)0, solidale con la base; il sistema (0xyz)1, solidale conil giunto finale del primo link e il sistema (0xyz)2, collocato sul punto terminale del robot(effettore). A partire da questi tre sistemi di riferimento, per calcolare la trasformazionedi coordinate omogenea 0T2 dal sistema di riferimento di base (0xyz)0 a quello di effettore(0xyz)2, si possono calcolare le trasformazioni 0T1 e 1T2 e comporle tramite la semplicemoltiplicazione delle matrici. Per quanto riguarda il calcolo delle due trasformazioni parziali,

10In base al fatto che tutte le matrici di trasformazione omogenee sono non singolari, si puo dimostrareche tale trasformazione e unica.

21

Page 22: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

Figure 11: Un robot planare a due link con i sistemi di riferimento.

si osservi che in base alla scelta degli angoli e in base alla struttura del robot, le due matrici ditrasformazione saranno identiche ma con variabili aventi indici diversi. E dunque sufficientela determinazione di 0T1 per arrivare alla trasformazione complessiva.

Determinazione di 0T1. I sistemi di riferimento (0xyz)0 e (0xyz)1 differiscono per unatraslazione di a1 lungo x1 e per una rotazione di θ1 intorno all’asse z0 (o, analogamente,intorno all’asse z1). Si osservi tuttavia, che la matrice relativa alla traslazione va postmolti-plicata alla rotazione per avere la trasformazione corretta, infatti l’origine del sistema (0xyz)1

ha coordinate q0 = [a1 cos θ1 a1 sin θ1 0]T , vettore che effettivamente coincide con il termined della trasformazione complessiva ottenuta postmoltiplicando la matrice di traslazione aquella di rotazione. In particolare, si ottiene:

0T1 := Tz θ1 Ttr,[a1 0 0]T

=

cos θ1 − sin θ1 0 0sin θ1 cos θ1 0 0

0 0 1 00 0 0 1

1 0 0 a1

0 1 0 00 0 1 00 0 0 1

=

cos θ1 − sin θ1 0 a1 cos θ1

sin θ1 cos θ1 0 a1 sin θ1

0 0 1 00 0 0 1

(21)

Sulla base dell’equazione (21), si puo ricavare la matrice di trasformazione globale cherisulta essere:

0T2 := 0T11T2

= Tz θ1 Ttr,[a1 0 0]T Tz θ2 Ttr,[a2 0 0]T

=

cos θ1 − sin θ1 0 a1 cos θ1

sin θ1 cos θ1 0 a1 sin θ1

0 0 1 00 0 0 1

cos θ2 − sin θ2 0 a2 cos θ2

sin θ2 cos θ2 0 a2 sin θ2

0 0 1 00 0 0 1

=

cos(θ1 + θ2) − sin(θ1 + θ2) 0 a2 cos(θ1 + θ2) + a1 cos θ1

sin(θ1 + θ2) cos(θ1 + θ2) 0 a2 sin(θ1 + θ2) + a1 sin θ1

0 0 1 00 0 0 1

,

22

Page 23: Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/preliminari.pdf · Dispense del corso di Robotica con Laboratorio Docente: Luca Zaccarian December

dove l’ultima relazione e stata ottenuta usando le ben note formule di Prostaferesi per lefunzioni trigonometriche di somme e differenze di angoli. ?

Osservazione 3.1 In base all’esperienza fatta tramite l’Esempio 3.2, si puo dare la seguenteregola mnemonica. Per esprimere le coordinate rispetto ad una base (0xyz)0 in funzione diuna seconda base (0xyz)1 in posizione arbitraria rispetto alla precedente, bisogna scomporreil movimento dalla base (0xyz)0 alla (0xyz)1 in rotazioni o traslazioni elementari e poieseguire la seguente procedura:

1. Sovrapporre (0xyz)1 a (0xyz)0 e inizializzare T = I (i due sistemi di riferimento sonocoincidenti).

2. Esprimere ordinatamente le rotazioni e traslazioni necessarie per portare (0xyz)1 nellaposizione originaria aggiornando T ad ogni movimento elementare come segue:

• se (0xyz)1 ruota (trasla) intorno ad (lungo) un asse fondamentale di (0xyz)1,allora si postmoltiplica T per la matrice di trasformazione omogenea elementarecorrispondente al movimento;

• se (0xyz)1 ruota (trasla) intorno ad (lungo) un asse fondamentale di (0xyz)0,allora si premoltiplica T per la matrice di trasformazione omogenea elementarecorrispondente al movimento.

Figure 12: Sistema considerato nell’Esercizio 3.4.

Esercizio 3.4 Sulla base dell’Esempio 3.2, e della regola mnemonica data nell’Osservazione 3.1,calcolare la matrice di trasformazione tra i sistemi di riferimento di base ed effettore, cor-rispondente al braccio meccanico rappresentato in Figura 12. ?

23