Dispense del corso di Robotica con Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/dispense.pdfdel...

40
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 Laboratoriocontrol.disp.uniroma2.it/zack/LabRob/dispense.pdfdel...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

4 Cinematica diretta dei robot

In questa sezione verra fornito un metodo costruttivo per caratterizzare la posizione delpunto terminale di un manipolatore (detto anche effettore) in base alla posizione relativa diogni segmento (o link) rispetto al precedente segmento, ovvero, in altri termini, in base allaposizione di ogni giunto.

4.1 Segmenti, giunti e loro parametri

Un manipolatore meccanico consiste in una sequenza di segmenti rigidi chiamati link, con-nessi da giunti prismatici o di rotazione (vedi esempio in Figura 13). Ogni coppia giunto-link,rappresenta un grado di liberta. Dunque, per un manipolatore con N gradi di liberta ci sonoN coppie giunto-link con il link 0 (non considerato parte del robot) ancorato a una basedi appoggio dove di norma e stabilito un sistema di coordinate inerziale; all’ultimo link ecollegato un utensile. I giunti e i link sono numerati in successione partendo dalla base; cosıil giunto 1 costituisce il punto di connessione fra il link 1 e la base di supporto. Ogni link econnesso al piu a due altri link perche non si formino catene chiuse.

Figure 13: Il robot PUMA.

In generale, due link sono collegati fra loro con un giunto di prima specie, e di questi, soloi giunti rotazionali e prismatici sono comuni nei manipolatori. I primi sono giunti associatiad uno spostamento angolare dei link adiacenti (ad esempio, il giunto 2 in Figura 13), mentrei secondi sono associati ad uno spostamento lineare dei link adiacenti.

24

L’asse di un giunto si definisce come l’asse di rotazione o di traslazione individuato dalmovimento del giunto. Questo asse avra due normali, una per ogni link. Si faccia riferimentoalla Figura 14.

Figure 14: Sistemi di coordinate dei link e loro parametri.

Un link i e connesso, ripetiamo, al massimo ad altri due (cioe il link i− 1 e il link i+ 1);pertanto, sono stabiliti due assi del giunto per ambedue le estremita della connessione. Ilsignificato dei link, considerati in un’ottica cinematica, e che essi mantengono una config-urazione fissa tra i loro giunti che puo essere caratterizzata da due parametri ai e αi. Ilparametro ai rappresenta la distanza piu breve misurata lungo la normale comune tra gliassi dei giunti (cioe gli assi zi−1 e zi rispettivamente per i giunti i e i + 1), e αi e l’angolocompreso tra gli assi dei giunti su un piano perpendicolare ad ai. Cosı ai e αi possono esserechiamati, rispettivamente, lunghezza e angolo di twist del link i. Essi sono associati allastruttura del link.

Dato l’asse zi, la posizione relativa dei due link adiacenti i− 1 e i e data da di, che e ladistanza misurata lungo l’asse del giunto fra la normale proveniente dall’asse del giunto i−1e la normale che va al giunto i+ 1 (ovvero, il segmento ai). L’angolo θi del giunto e l’angoloformato dalle 2 normali, misurato su un piano ortogonale all’asse del giunto. Dunque, di e θipossono essere chiamati rispettivamente distanza e angolo di giunto, fra due link adiacenti.Essi sono associati alla posizione relativa tra i due link.

Riassumendo, a ciascuna coppia giunto/link di un manipolatore sono associati quattroparametri: ai, αi, di e θi. Una volta stabilita una convenzione di segno per ognuno di essi,questi costituiscono un insieme sufficiente a determinare completamente la configurazionecinematica di ciascun anello della catena articolata del braccio. Si enfatizza che questiparametri possono essere considerati a coppie: (ai, αi), che dipendono dalla struttura dellink, e (di, θi), parametri dei giunti, che dipendono dalla posizione relativa dei link adiacenti.

25

Link/giunto a α d θ1 a1 α1 d1 θ1

2 a2 α2 d2 θ2

......

......

...

N aN αN dN θN

Table 1: Tabella dei parametri ai, αi, di e θi per un robot generico.

In base alla caratterizzazione precedente, dato un manipolatore, sulla base dei quattroparametri ai, αi, di e θi, si puo compilare una tabella strutturata come la Tabella 1, doveogni link (e giunto) corrisponde ad una riga su cui sono presenti i parametri caratteristici dellink e del giunto i. Questa tabella sara utile per il calcolo della cinematica diretta del robot,ovvero della funzione che trasforma le coordinate del sistema di effettore (o della mano) nelsistema di coordinate di base.

4.2 Rappresentazione di Denavit-Hartenberg

Per descrivere le relazioni di rotazione e traslazione tra link adiacenti, Denavit e Hartenberg[1955] hanno proposto un metodo matriciale per stabilire sistematicamente un sistema dicoordinate per ogni link di una catena articolata. La rappresentazione di Denavit-Hartenberg(D-H) consiste in una matrice di trasformazione omogenea i−1Ti ∈ R

4×4 che rappresenta ilsistema di coordinate del link i rispetto al riferimento del link precedente i − 1. Pertanto,attraverso trasformazioni sequenziali, l’estremita dell’effettore, espresso nell’ultimo sistemadi coordinate, puo essere trasformata ed espressa nelle “coordinate di base” che costituisconoil sistema di riferimento inerziale di questo sistema dinamico.

Come gia accennato, il robot e individuato da un sistema di riferimento inerziale (0xyz)o,detto di base, da un sistema di riferimento di effettore (0xyz)e (anche detto “della mano”)e dai sistemi di riferimento intermedi, ognuno associato ad un link (e ad un giunto). Perognuno di questi N sistemi di riferimento (dove N sono i gradi di liberta della catena cine-matica), si danno di seguito delle regole di tracciamento in termini di: 1) posizione dell’assezi; 2) posizione del centro oi; 3) posizione dell’asse xi. La posizione dell’asse yi e infinedeterminabile univocamente dalle informazioni precedenti.

Procedura per la scelta dei riferimenti

A. Sistema di riferimento di base, (0xyz)0:

1. scegliere l’asse z0 come l’asse del primo giunto;

2. scegliere il centro arbitrariamente (ad esempio, al livello del piano di appoggio);

3. scegliere l’asse x0 arbitrariamente.

26

B. Sistema di riferimento del link 1 ≤ i ≤ N , (0xyz)i:

1. Scegliere l’asse zi come l’asse del giunto i+ 1.

2. Scegliere il centro oi come segue:

• se gli assi zi−1 e zi sono sghembi, tracciare l’unico segmento ai perpendicolare adentrambi gli assi (che in effetti costituisce la loro distanza) e scegliere il centro oicome l’intersezione del segmento ai con l’asse zi;

• se gli assi zi−1 e zi sono paralleli, poiche ci sono infiniti segmenti ai di minimadistanza tra zi−1 e zi, scegliere il centro oi arbitrariamente (a volte e comodoposizionarlo allineato con oi−1);

• se gli assi zi−1 e zi sono secanti, scegliere il centro oi al punto di intersezione deidue assi.

3. Scegliere l’asse xi come segue:

• se gli assi zi−1 e zi sono sghembi o paralleli, scegliere l’asse xi come il prolunga-mento del segmento ai dopo il passaggio per il centro oi;

• se gli assi zi−1 e zi sono secanti, scegliere l’asse xi nella direzione perpendicolareal piano individuato da zi e zi−1, con verso arbitrario.

C. Sistema di riferimento d’effettore (della mano), (0xyz)e:

1. Scegliere l’asse ze nella direzione di avvicinamento;

2. Scegliere il centro oe al centro della pinza o sul punto terminale di un utensile (adesempio, la punta di un trapano);

3. Scegliere l’asse xe nella direzione di apertura della pinza (detta anche scorrimento, oalzo), o arbitrariamente nel caso di utensili piu sofisticati.

Si osservi che in un certo numero di situazioni, la procedura appena definita non daindicazioni precise sul posizionamento dei sistemi di riferimento. In particolare, cio accadenei seguenti casi:

• Per la terna 0, poiche solo l’asse z0 e fissato, si puo scegliere liberamente sia o0 che x0.

• Per la terna N , poiche non esiste il giunto N + 1, l’asse xN ha il solo vincolo di essereortogonale all’asse zN−1, e gli altri parametri sono liberi.

• Quando due assi consecutivi sono paralleli o secanti. Nel primo caso, la posizione delcentro oN e arbitraria lungo tali assi; nel secondo, il verso di xN e arbitrario.

27

4.3 Trasformazione omogenea associata ad un link

Stabilito il sistema di coordinate di D-H per ogni link, si puo sviluppare facilmente unamatrice di trasformazione omogenea che metta in relazione il sistema di coordinate i-esimocol sistema di il coordinate (i − 1)-esimo. In particolare, con riferimento alla Figura 14,si osservi che, in base alla regola mnemonica data nell’Osservazione 3.1, sovrapponendoil sistema di riferimento (0xyz)i al sistema di riferimento (0xyz)i−1, bisogna effettuare leseguenti trasformazioni elementari per riportare (0xyz)i nella sua posizione originaria:

1. traslare lungo l’asse zi−1 di una lunghezza pari a di per portare l’origine oi sul puntodi intersezione tra il segmento ai e l’asse zi−1;

2. ruotare intorno all’asse zi−1 di un angolo θi per allineare l’asse xi con il segmento ai;

3. traslare lungo l’asse xi di una lunghezza pari ad ai per portare oi nella posizioneoriginaria;

4. ruotare intorno all’asse xi di un angolo pari ad αi per portare l’asse zi nella posizioneoriginaria.

Le prime due trasformazioni sono riferite al sistema di riferimento i − 1 e corrispon-dono dunque alla premoltiplicazione per le matrici Ttr,[0 0 di] e Tz,θi

, rispettivamente. Leultime due trasformazioni, sono invece riferite al sistema di riferimento i e corrispondonoalla postmoltiplicazione per le matrici Ttr,[ai 0 0] e Tx,αi

, rispettivamente. In sintesi, la trasfor-mazione i−1Ti si costruisce secondo la seguente sequenza: I → Ttr,[0 0 di] → Tz,θi

Ttr,[0 0 di] →Tz,θi

Ttr,[0 0 di] Ttr,[ai 0 0] → Tz,θiTtr,[0 0 di] Ttr,[ai 0 0] Tx,αi

, e risulta essere:

i−1Ti = Tz,θiTtr,[0 0 di] Ttr,[ai 0 0] Tx,αi

. (22)

Si osservi l’analogia tra la trasformazione (22) e l’Esempio 3.1, dove peraltro, la matricei−1Ti e calcolata esplicitamente.

Poiche la ((22) e di valore generale, essa puo essere applicata iterativamente sostituendoi dati della Tabella 1 per ottenere in maniera immediata la matrice 0Te della cinematicadiretta. Il calcolo della cinematica diretta, si scompone in una procedura costituita daiseguenti passi:

1. Si analizza la struttura posizionando tutti i sistemi di riferimento secondo la proceduravista precedentemente;

2. In base alla posizione dei sistemi di riferimento, si ricavano i parametri di D-H, com-pilando la Tabella 1.

3. Si sostituiscono i valori della riga i-esima della tabella nella corrispettiva matrice ditrasformazione i−1Ti e si semplificano le moltiplicazioni

4. Si moltiplicano tutte le matrici ricavate al punto precedente per ricavare la matricefinale:

p0 = 0Te pe= 0T1

1T2 · · · i−1Ti · · · N−1TNNTe pe.

(23)

28

Tale procedura presenta un solo punto che puo risultare non di immediata facilita, costitu-ito dalla estrapolazione dei parametri di D-H in base alla posizione delle terne di riferimento,che e un’operazione prettamente di tipo geometrico. Si tenga peraltro presente che gli angolidi giunto θi per i giunti rotazionali e gli offset di giunto di per i giunti prismatici, non sononecessariamente coincidenti con gli angoli geometrici scelti per descrivere la configurazionedel robot. Dunque, riportare tali angoli nella tabella di D-H senza aver verificato questacoincidenza, puo portare ad errori nel calcolo della cinematica globale. Questo concetto efacilmente verificabile riflettendo sul fatto che la definizione delle coordinate geometriche diun robot e arbitraria, e che, necessariamente, scelte diverse degli angoli geometrici, devonocorrispondere a opportune differenze nella matrice di cinematica diretta per non modificareil risultato finale (la geometria del robot e sempre la stessa).

Nell’osservazione seguente e indicato un possibile metodo pratico per la determinazionedei parametri di D-H.

Osservazione 4.1 Date due terne (oxyz)i−1 e (oxyz)i, con riferimento alla Figura 14, unapossibile procedura per stimare i parametri D-H e di portare dapprima l’asse zi−1 sull’assezi per stimare ai e successivamente, ruotarlo intorno a xi per stimare αi. Per la stima didi e θi, conviene, in generale, fare l’operazione inversa, ovvero riportare l’asse zi verso ilsistema di riferimento (oxyz)i−1 ruotandolo di −αi e traslandolo di −ai. A questo punto,uno spostamento di −di e necessario per portare oi a coincidere con oi−1 e una rotazione di−θi e necessaria per portare xi a sovrapporsi con xi−1. La convenienza nel misurare di e θitornando sul sistema (oxyz)i−1 deriva dal fatto che questi parametri sono relativi al giuntoi di cui zi−1 e l’asse. ◦

4.4 Spazio dei giunti e spazio operativo

Come si e visto nei paragrafi precedenti, l’equazione cinematica diretta di un manipolatoreconsente di esprimere la posizione e l’orientamento della terna utensile di un robot rispettoalla terna di base, in funzione delle variabili di giunto.

Nello specificare il compito da far eseguire all’organo terminale del manipolatore sorge lanecessita di assegnare posizione e orientamento della terna utensile, eventualmente in fun-zione del tempo (traiettoria). Mentre per la posizione si puo procedere in maniera semplice,specificare l’orientamento mediante una matrice di rotazione risulta difficile in quanto bisognagarantire che le nove componenti soddisfino, istante per istante, i vincoli di ortonormalita.

Il problema della descrizione dell’orientamento dell’organo terminale si presta ad unasoluzione naturale se invece si fa ricorso ad una delle rappresentazioni minime introdottenella Sezione 3.1 in quanto, in tal caso, risulta agevole assegnare una legge di moto allaterna di angoli scelta per rappresentare l’orientamento.

Si puo pertanto individuare la posizione con un numero minimo di coordinate definitodalla geometria della struttura e si puo specificare l’orientamento ricorrendo a una rapp-resentazione minima in termini delle variabili che caratterizzano la rotazione della ternautensile rispetto alla terna base (ad esempio, angoli di Eulero o angoli di RPY). E in tal

29

modo possibile descrivere la postura del manipolatore mediante il vettore

x =

[

]

,

dove p ∈ R3 caratterizza la posizione dell’organo terminale e φ il suo orientamento.

Tale rappresentazione di posizione e orientamento consente la descrizione del compitoassegnato all’organo terminale in termini di un numero di parametri strutturalmente in-dipendenti tra di loro. Lo spazio in cui e definito il vettore x e quello rispetto al quale vienetipicamente specificata l’operazione richiesta al manipolatore; pertanto esso viene denom-inato spazio operativo. Con spazio dei giunti (o spazio delle configurazioni), invece, ci siriferisce allo spazio in cui e definito il vettore delle variabili di giunto:

q =

q1...qn

,

dove qi = θi per un giunto rotazionale e qi = di per un giunto prismatico. Tenendo contodella dipendenza di posizione e orientamento dalle variabili di giunto, l’equazione cinematicadiretta puo scriversi in una forma alternativa rispetto alla (23), come

x = k(q), (24)

dove la funzione vettoriale k(·), non lineare in generale, permette il calcolo delle variabilinello spazio operativo a partire dalla conoscenza delle variabili nello spazio dei giunti.

E opportuno precisare che la dipendenza delle variabili di orientamento dalle variabilidi giunto nella (24), non risulta agevole tranne che in casi semplici. Infatti, nelle ipotesipiu generali, di uno spazio operativo esadimensionale, il calcolo delle tre componenti dellafunzione φ(q) non e attuabile in forma diretta ma passa comunque attraverso il calcolo diuna matrice di rotazione.

Con riferimento allo spazio operativo, come elemento di valutazione delle prestazioni diun robot, si definisce spazio di lavoro di un manipolatore la regione descritta dall’originedella terna utensile quando ai giunti del manipolatore si fanno eseguire tutti i moti possi-bili. Sovente si usa distinguere tra spazio di lavoro raggiungibile e spazio di lavoro destro(spazio di destrezza). Il secondo e la regione che l’origine della terna utensile puo descrivereassumendo differenti orientamenti, mentre il primo e la regione che l’origine della terna uten-sile puo raggiungere con almeno un orientamento. Ovviamente lo spazio di lavoro destro eun sottoinsieme dello spazio di lavoro raggiungibile.

4.5 Esempi e esercizi

In questa sezione vengono forniti alcuni esempi ed esercizi per il calcolo della cinematicadiretta di un robot.

Esempio 4.1 (Manipolatore SCARA) In questo esempio si procedera a calcolare la trasfor-mazione cinematica diretta per un robot di tipo SCARA. La struttura del robot ed i sistemi

30

Figure 15: Il manipolatore SCARA con i sistemi di riferimento.

di riferimento, assegnati seguendo la procedura di Denavit-Hartenberg, sono riportati nellaFigura 15.

Il vettore delle variabili di giunto e dato da:

q = [ θ1 θ2 d3 θ4 ], (25)

ed i parametri cinematici che caratterizzano il robot sono:

θ d l α1 θ1 d1 `1 02 θ2 0 `2 +π3 0 d3 0 04 θ4 0 0 0

Le matrici di trasformazione, tenendo conto della (22), sono date da:

3T4 =

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

0 0 1 00 0 0 1

, (26)

2T3 =

1 0 0 00 1 0 00 0 1 d3

0 0 0 1

, (27)

31

1T2 =

cos θ2 sin θ2 0 `2 cos θ2

sin θ2 − cos θ2 0 `2 sin θ2

0 0 −1 00 0 0 1

, (28)

0T1 =

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

sin θ1 cos θ1 0 `1 sin θ1

0 0 1 d1

0 0 0 1

. (29)

La matrice di trasformazione mano-base, cioe la 0T4, e data da:

0T4 = 0T11T2

2T33T4 (30)

=

C12−4 S12−4 0 `1C1 + `2C12

S12−4 −C12−4 0 `1S1 + `2S12

0 0 −1 d1 − d3

0 0 0 1

, (31)

in cui C12−4 indica la funzione cos(θ1 + θ2 − θ4), S12−4 indica la funzione sin(θ1 + θ2 − θ4),C1 indica la funzione cos(θ1), S1 indica la funzione sin(θ1), ed analogamente C12 indica lafunzione cos(θ1 + θ2), e S12 indica la funzione sin(θ1 + θ2).

La posizione della mano (ovvero, la posizione dell’origine della terna associata alla mano)espressa nelle coordinate di base e dunque data da:

x0 = `1C1 + `2C12,

y0 = `1S1 + `2S12,

z0 = d1 − d3.

?

Esercizio 4.1 Calcolare la matrice di cinematica diretta dello Stanford Robot Arm, e per ilrobot PUMA, utilizzando i sistemi di riferimento rappresentati in Figura 16 e in Figura 17,rispettivamente. Si scriva dapprima la tabella dei parametri cinematici, calcolando le matriciassociate ad ogni link e poi si moltiplichino le matrici per ottenere la trasformazione globale.

?

Esercizio 4.2 Si osservi che nell’Esempio 4.1, il posizionamento del centro dei sistemi diriferimento 1, 2 e 3 rispettivamente sui giunti 2, 3 e 4 e arbitrario. Si ricalcoli la cinematicadiretta del robot posizionando i centri dei 3 sistemi di riferimento in corrispondenza del pianodi appoggio e orientando gli assi z di tutti e tre i sistemi verso l’alto. Successivamente, siverifichi (algebricamente o numericamente) che la matrice di cinematica diretta risultante ela stessa. ?

Esercizio 4.3 Collocare i sistemi di riferimento e calcolare la cinematica diretta per i robotrappresentati in Figura 18: il manipolatore sferico e il manipolatore antropomorfo. ?

32

Figure 16: Lo Stanford robot arm con i sistemi di riferimento.

Figure 17: Un robot PUMA con i sistemi di riferimento.

33

Figure 18: Manipolatore sferico e manipolatore antropomorfo.

5 Cinematica inversa dei robot

Ancora da scrivere

34

6 Cenni sulla dinamica dei motori in corrente continua

L’insieme di equazioni riportato di seguito, costituisce un modello matematico per ilmotore in corrente continua (CC) che puo essere rappresentato come un sistema dinamiconon lineare. Le principali restrizioni di cui bisogna tenere conto per lo sviluppo di questomodello rispetto ad un motore reale sono

1. l’assunzione che il circuito magnetico sia lineare (questa e un’approssimazione poichele parti di metallo, non perfettamente omogenee, causano dispersione all’interno delmotore; inoltre, a causa della saturazione magnetica, la linearita delle proprieta mag-netiche si perde per alti valori di corrente i);

2. l’assunzione che l’attrito meccanico sia funzione lineare della velocita del motore; siassume quindi che nel motore sia presente solamente l’attrito viscoso (e tuttavia notoche nei motori sia generalmente presente anche l’attrito statico).

6.1 Le equazioni elettriche

In un motore CC, il flusso magnetico Φ e generato da avvolgimenti collocati sullo statore.Si assumera che lo statore abbia una sola terminazione polare, caratterizzata da una indut-tanza Le associata al relativo avvolgimento e da una resistenza Re associata alle dispersioninel conduttore (vedi Figura 19). L’equazione che descrive questo circuito elettrico e data da

ve(t) = Led iedt

+Re ie. (32)

Poiche la relazione (32) e lineare, trasformando le variabili nel dominio di Laplace, siottiene

ie(s)

ve(s)=

Ke

1 + τe s, (33)

dove Ke :=1

Re

e il guadagno di statore e τe :=LeRe

e la costante di tempo di statore.

Analogamente, si assume che il rotore abbia una sola terminazione polare caratterizzatada un’induttanza La e da una resistenza Ra (si veda Figura 19). Inoltre, va consideratonel modello elettrico del rotore l’effetto della forza controelettromotrice e, che corrispondead una differenza di tensione indotta, proporzionale alla velocita di rotazione. L’equazioneassociata al relativo circuito elettrico e

va(t) = Lad iadt

+Ra ia + e. (34)

Nuovamente, poiche la relazione (34) e lineare, trasformando nel dominio di Laplace siottiene:

ia(s)

va(s) − e(s)=

Ka

1 + τa s, (35)

35

Figure 19: Schema elettrico equivalente di un motore CC.

dove Ka :=1

Ra

e il guadagno di rotore e τa :=LaRa

e la costante di tempo di rotore.

Sulla base delle proprieta fisiche del motore e delle relazioni che caratterizzano l’interazionetra le quantita meccaniche e le quantita elettriche del motore, si puo dimostrare che le dueseguenti relazioni sussistono. Queste relazioni forniscono un’espressione esplicita della forzacontroelettromotrice e e della coppia meccanica TM erogata dal motore:

TM = K ie ia, (36)

e = K ie ω, (37)

dove KΦ e una costante che dipende dalla geometria del motore.

6.2 Le equazioni meccaniche

Un motore CC alimentato con tensioni di statore e di rotore esercita una coppia sull’alberodel motore. Questa coppia agisce sulla struttura meccanica, caratterizzata dall’inerzia dirotore J e dal coefficiente di attrito viscoso F . Inoltre, per considerare un ambito operativogenerico, e opportuno tener conto di una coppia di carico esercitata sull’albero del motore.Se TL denota tale coppia di carico, allora si ha la seguente equazione del moto:

TM − TL = Jdω

dt+ F ω. (38)

Analogamente al caso elettrico, anche per le equazioni meccaniche si puo associare unafunzione di trasferimento lineare alla relazione (38):

ω(s)

TM(s) − TL(s)=

Km

1 + τm s, (39)

dove Km :=1

Fe il guadagno meccanico e τm :=

J

Fe la costante di tempo meccanica.

6.3 Motoriduttori e motori a presa diretta

Spesso (ad esempio in applicazioni di robotica), la velocita richiesta dalla particolareapplicazione e troppo bassa se confrontata con la velocita nominale di un motore. 11 In

11La velocita nominale di un motore corrisponde al picco di massima efficienza del motore stesso.

36

questo caso, vengono tipicamente inseriti degli ingranaggi, detti riduttori, tra il motore e ilcarico con lo scopo di ridurre la velocita angolare di un fattore n tra l’albero del motore el’asse del carico. L’insieme di motore + riduttore viene cosı denominato motoriduttore.

Oltre all’incremento di attrito viscoso ed inerzia associati alla presenza delle ruote den-tate rotanti interne al riduttore, l’accoppiamento meccanico tra il carico e il motore e sen-sibilmente alterato dalla presenza del riduttore. Per descrivere correttamente gli effetti delriduttore, il primo aspetto da chiarire e legato al fatto che l’attrito e l’inerzia non sono glistessi se vengono misurati all’ingresso o all’uscita del riduttore (cioe sull’albero del motoreo sull’asse del carico, rispettivamente). Poiche siamo interessati ad una caratterizzazione“esterna” dell’intero blocco motoriduttore, si fara riferimento alle quantita in uscita dalriduttore (ovvero, quelle riferite all’asse del carico).

Sia dunque FG il coefficiente di attrito viscoso e JG l’inerzia interni al riduttore. Allora,poiche la potenza erogata dal motore e la stessa sia all’ingresso che all’uscita del riduttore,denominando T ′

M e ω′ la coppia e la velocita all’uscita del riduttore, rispettivamente, si ha

TM ω = T ′

M ω′,

e poiche ω′ = ω/n, allora T ′

M = nTM . In sintesi, mentre la velocita in uscita del motoridut-tore e n volte minore della velocita dell’albero del motore, la coppia in uscita e invece n voltesuperiore a quella erogata dal solo blocco motore.

Sostituendo le precedenti espressioni nell’equazione (38) e considerando gli incrementi diattrito ed inerzia dovuti alle ruote interne al riduttore, si ottiene 12

T ′

M − TL = (JG + n2 J)dω′

dt+ (FG + n2 F )ω′. (40)

Confrontando le equazioni (38) e (40) si osserva che la presenza del riduttore aumentasignificativamente l’inerzia e l’attrito del motore dal punto di vista del carico.

Un effetto importante qui non modellato ma spesso associato alle applicazioni con mo-toriduttori e il gioco meccanico, causato dagli accoppiamenti tra gli ingranaggi interni delriduttore. Il gioco meccanico impone sul motoriduttore una nonlinearita indesiderata chepuo a volte portare a fenomeni di instabilita. Per questa ragione, specialmente in sistemidi alta precisione, i motori a presa diretta sono preferibili. Questi motori sono costruiti inmaniera da essere in grado di esercitare coppie sufficientemente alte a bassi regimi di ve-locita, cosı da non richiedere riduttore per poter agire sul carico. Tuttavia i motori CC apresa diretta sono comunque associati a coppie limitate e non possono essere adoperati perapplicazioni di alta potenza, in cui le coppie neccessarie sarebbero troppo alte.

6.4 Diagramma a blocchi del motore CC

Inserendo le equazioni (32), (34), (36), (37) e (38) in un diagramma a blocchi nonlineare,si ottiene lo schema rappresentato in Figura 20. Nel diagramma, la variabile θ rappresentala posizione angolare del rotore (cosicche ω = θ).

Il modello nonlineare corrisponde ad un sistema con due ingressi ed una uscita, aventeun ingresso di disturbo corrispondente alla coppia di carico TL e quattro variabili di statocorrispondenti a

12Si osservi che TL e esercitata dal carico, dunque non deve essere riscalata.

37

ve = Lediedt

+Reie

K

Kva = Ladiadt

+Raiaω

TL

+

TM

+-

va

ieve

ia θ∫

T = Jdω

dt+ Fω

-

Figure 20: Diagramma a blocchi nonlineare di un motore CC.

• l’energia immagazzinata nell’induttanza Le;

• l’energia immagazzinata nell’induttanza La;

• l’energia cinetica del rotore (associata a J);

• la posizione θ del rotore.

Osservazione 6.1 Si osservi che il modello nonlineare del motore e effettivamente costitu-ito da tre relazioni lineari tra grandezze fisiche. Tali relazioni corrispondono alle funzionidi trasferimento (33), (35) e (39) e sono interconnesse a mezzo di due moltiplicatori, cherappresentano le nonlinearita del sistema. Numerose tecniche di controllo adottabili sul mo-tore sono progettate con lo scopo di linearizzare il diagramma a blocchi, attraverso scelteopportune dei due ingressi va e ve. ◦

Osservazione 6.2 Se lo schema in Figura 20 viene usato per rappresentare un motoridut-tore, e necessario inserire un guadagno costante pari ad 1/n prima dell’integratore di ω (cos-icche l’integrale sia effettuato su ω′), ed inserire un blocco pari a 1/n in cascata all’ingressodi disturbo TL. Si osservi che il ramo di retroazione e riferito alla velocita ω dell’albero delmotore e non alla velocita ω′ del carico perche il riduttore non cambia le proprieta elettrichedel motore. ◦

A titolo di esempio, in Figura 21 e riportato il disegno di un semplice motore a magnetipermanenti. Nei motori a magneti permanenti, un magnete va a sostituire gli avvolgimentistatorici, cosı che un flusso magnetico costante sia automaticamente generato all’interno delmotore in una soluzione economica. L’energia necessaria per la generazione della coppiaviene dunque fornita al motore attraverso gli avvolgimenti rotorici.

38

Figure 21: Struttura di un motore a magneti permanenti.

7 Funzionamento degli encoder incrementali

Gli encoder incrementali si basano su un principio di funzionamento geometrico. All’alberodel motore, solidale con il rotore, viene collegato un disco opaco con dei fori disposti inposizione radiale, tanto piu numerosi quanto maggiore e la risoluzione dell’encoder.

Figure 22: Struttura di un encoder incrementale.

Da un lato e dall’altro del disco sono inoltre disposte due coppie di sensori, ognuna costi-tuita da un trasmittente e un ricevente, che sono in grado di individuare il passaggio dei foriapplicati sul disco. In generale, il trasmittente e costituito da un LED (Light Emitting Diode)e il ricevente e un fototransistore, entrambi operanti nella banda ottica. Il funzionamento eindicato in Figura 22.

Generalmente la geometria del disco e del tipo riportato in Figura 22, in modo che lezone opache e le zone trasparenti abbiano la stessa larghezza. Questo accorgimento fa siche, posizionando le due coppie di sensori opportunamente, le forme d’onda in uscita daisensori siano del tipo indicato in Figura 23. Nella parte destra della Figura 22 e indicata unposizionamento dei due sensori che restituisce in uscita le forme d’onda di Figura 23.

Si puo osservare dalla Figura 23 che a seconda del verso di rotazione del motore, lo statologico dei due segnali provenienti dai sensori e diverso: in corrispondenza del fronte di salitadel segnale A infatti, in un caso il segnale B e alto, nell’altro caso e basso. Questa proprietapermette di decodificare con successo non solo la rotazione ma anche il verso di rotazione,in base alle letture fatte dal sensore. Tale decodifica e in generale effettuata tramite un

39

Figure 23: Segnali dell’encoder incrementale corrispondenti a rotazioni orarie e anti-orarie.

semplice contatore UP/DOWN che misura gli spostamenti incrementali del motore (da cuiil nome “incrementale” dato a questo tipo di encoders).

A causa dell’arbitrarieta della posizione iniziale dell’encoder e dello stato iniziale delcontatore di decodifica, tutti i dispositivi dotati di encoder incrementali prevedono la gener-azione di un segnale, detto di “home” (ovvero, “casa”) che notifica che il dispositivo su cuie montato l’encoder si trova in una posizione di riferimento nota e univoca. In presenza delsegnale di home, il contatore di decodifica puo essere inizializzato a zero per trasformare ilsensore incrementale in un sensore assoluto.

La risoluzione di un encoder corrisponde al numero di zone opache presenti nel disco,il che corrisponde da un punto di vista elettrico al numero di impulsi generati in uscita daogni canale per angolo giro. Tuttavia, nel caso (molto frequente, peraltro) in cui l’encoder emontato sull’albero posteriore di un motore con riduttore, la risoluzione viene moltiplicataper il fattore di riduzione N , consentendo di avere misure ad alta precisione con dispositividi costo relativamente basso.

In numerose applicazioni, la lettura incrementale del movimento dell’encoder viene fattatramite un circuito logico piu complesso di un semplice contatore, che e in grado di rilevaretutti i fronti (sia di salita che di discesa) delle forme d’onda in Figura 23. Conseguente-mente, la risoluzione dell’encoder viene quadruplicata, con evidenti vantaggi commerciali eimplementativi.

40