You are on page 1of 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
1 Nozioni preliminari
1.1 Operazioni sui vettori
Dato linsieme di tutti i vettori nello spazio tridimensionale R
3
(questo insieme `e in eetti uno
spazio vettoriale), ogni vettore appartenente a tale insieme (o spazio) u R
3
`e caratterizzato
da tre numeri u
1
, u
2
e u
3
, denominati componenti del vettore, e si indica con u = (u
1
, u
2
, u
3
).
Nello spazio vettoriale R
3
, sono denite le seguenti operazioni:
1. Prodotto con i reali: R R
3
R
3
, denito come:
au = a (u
1
, u
2
, u
3
)
:= (a u
1
, a u
2
, a u
3
), a R, u R
3
.
2. Prodotto scalare: R
3
R
3
R, denito come:
<u, v > = <(u
1
, u
2
, u
3
), (v
1
, v
2
, v
3
)>
:= u
1
v
1
+ u
2
v
2
+ u
3
v
3
, u, v R
3
.
3. Norma: R
3
R, denita come:
|u| = |(u
1
, u
2
, u
3
)|
:=
_
<u, u>
=
_
u
2
1
+ u
2
2
+ u
2
3
, u R
3
.
4. Somma: R
3
R
3
R
3
, denita come:
u +u = (u
1
, u
2
, u
3
) + (v
1
, v
2
, v
3
)
:= (u
1
+ v
1
, u
2
+ v
2
, u
3
+ v
3
), u, v R
3
.
5. Prodotto vettoriale: R
3
R
3
R
3
, denito come:
u v = (u
1
, u
2
, u
3
) (v
1
, v
2
, v
3
)
:= (u
2
v
3
u
3
v
2
, u
3
v
1
u
1
v
3
, u
1
v
2
u
2
v
1
), u, v R
3
.
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 vettore
risultante ha norma (o lunghezza) scalata di un fattore pari ad a (questo `e vericabile
con una semplice sostituzione).
2. Si considerino due vettori u e v e un piano su cui giacciono entrambi. Sia langolo
descritto sul piano da uno dei due vettori per arrivare a sovrapporsi allaltro. 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-
priet` a deriva direttamente dal teorema di Pitagora).
4. La somma di due vettori corrisponde al vettore risultatnte dallapplicazione del primo
vettore 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 v
`e perpendicolare al piano
1
con verso assegnato secondo la regola della mano destra (si
veda Figura 3). Sia langolo descritto sul piano da uno dei due vettori per arrivare a
sovrapporsi allaltro, allora la norma di u v `e pari a
|u v| = |u||v|| sin |. (2)
Si osservi che lequazione (1) implica che, dati due vettori non nulli u e v, il loro prodotto
scalare
`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, lequazione (2) implica che, dati due vettori non nulli u e v, il modulo del
loro 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 R
3
possano
essere utilizzati per la descrizione della congurazione spaziale di oggetti tridimensionali.
A tale scopo si fa riferimento al concetto di punto P come elemento caratterizzante una
specica posizione nello spazio. A titolo di esempio, in Figura 2 sono rappresentati alcuni
corpi ed alcuni punti materiali P
1
, P
2
.
Lindividuazione dei punti nello spazio `e evidentemente subordinata alla specicazione
del punto di vista dellosservatore, ovvero alla denizione di un sistema di riferimento che
pu` o essere formalizzata come segue (un esempio `e riportato in Figura 2):
1
Se u e v sono paralleli, allora u v `e il vettore nullo.
3
Figure 2: Corpi nello spazio tridimensionale, punti e terna di riferimento.
Denizione 1.1 Una base ortonormale (o, e
x
, e
y
, e
z
) `e un sistema (o una terna) di rifer-
imento ortonormale in R
3
costituito da tre vettori e
x
, e
y
, e
z
, detti versori, applicati ad un
punto o, lorigine, mutuamente ortogonali, cio`e tali che
<e
x
, e
y
>= 0, <e
x
, e
z
>= 0, <e
y
, e
z
>= 0,
e di lunghezza unitaria, cio`e:
|e
x
| = 1, |e
y
| = 1, |e
z
| = 1.
Un sistema di riferimento ortonormale si dice destrorso se e
x
e
y
= e
z
. In queste
dispense, a meno che non sia specicato 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 e
x
, e
y
ed e
z
, rispettivamente, con
il pollice, lindice e il medio, lorientamento della terna destrorsa coincide con quello della
mano destra posizionata come in Figura 3.
Dato un punto P ed il centro o di una base (o, e
x
, e
y
, e
z
), il vettore u :=

oP, che individua
il punto P in funzione di tale base, `e esprimibile in modo univoco come combinazione lineare
dei versori vece
x
, e
y
ed e
z
della base, come segue:
u = <u, e
x
> e
x
+ <u, e
y
> e
y
+ <u, e
z
> e
z
,
= xe
x
+ ye
y
+ ze
z
,
(3)
ed `e quindi individuato da tre numeri reali (x, y, z) := (< u, e
x
>, < u, e
y
>, < u, e
z
>
) 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 componenti
q := [xy z]
T
di

oP rispetto alla base ortonormale (o, e
x
, e
y
, e
z
) che chiameremo coordinate
del punto P. I gradi di libert`a di un punto P, corrispondenti al numero di coordinate
indipendenti che ne individuano la congurazione, `e dunque pari a 3. Dati due sistemi di
riferimento (o
1
, e
x1
, e
y1
, e
z1
) e (o
2
, e
x2
, e
y2
, e
z2
), le coordinate di un punto P nei due riferimenti
verranno indicate da q
1
= [x
1
y
1
z
1
]
T
e q
2
= [x
2
y
2
z
2
]
T
, rispettivamente.
2 Traslazioni e rotazioni
Denizione 2.1 Un corpo rigido `e un insieme di punti P
k
nello spazio tridimensionale
vincolati dalle relazioni
|P
i
(t) P
j
(t)| = r
ij
= cost, i, j, (4)
che impongono che la distanza tra due punti qualsiasi appartenenti al corpo sia costante nel
tempo.
La congurazione di un corpo rigido nello spazio tridimensionale `e univocamente deter-
minata dalla posizione di almeno tre punti non allineati.
2
Considerando i vincoli di rigidit` a,
dei nove parametri che caratterizzano la posizione dei tre punti, solo sei sono indipendenti tra
di loro: linvarianza della mutua distanza (corrispondente allequazione (4)) impone infatti
tre condizioni scalari che devono essere soddisfatte dai nove parametri. Si dice quindi che un
corpo rigido libero di assumere qualsiasi congurazione nello spazio tridimensionale possiede
sei gradi di libert` a. Pi` u convenientemente, la congurazione di un corpo rigido `e individuata
dalla posizione e dallorientamento di una terna di riferimento solidale con il corpo rispetto
ad una terna di riferimento ssa. Si vedr` a pi` u avanti come possono essere rappresentati la
posizione e lorientamento di una terna di riferimento mobile rispetto ad una ssa.
2
Si dimostra facilmente che specicando la posizione di pi` u di 3 punti (non allineati), i vincoli (4) impon-
gono delle relazioni di congruenza che riducono comunque i gradi di libert`a 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 corpo
rigido. 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 la
posizione di tuttii punti appartenenti ad una retta, chiamata asse di rotazione.
2.1 Traslazione
Si considerino dapprima due sistemi di riferimento (o
1
, e
x1
, e
y1
, e
z1
) e (o
2
, e
x2
, e
y2
, e
z2
) tali
che i vettori (e
x1
, e
y1
, e
z1
) siano rispettivamente paralleli a (e
x2
, e
y2
, e
z2
) ed il punto o
2
abbia
coordinate d = [d
x
d
y
d
z
]
T
nel primo sistema di riferimento (vedi Figura 4). Un generico
punto P ha coordinate q
1
= [x
1
y
1
z
1
]
T
e q
2
= [x
2
y
2
z
2
]
T
nei due sistemi di riferimento. Tra
le due rappresentazioni sussiste la relazione
x
1
= x
2
+ d
x
y
1
= y
2
+ d
y
z
1
= z
2
+ d
z
(5)
esprimibile in forma vettoriale come:

o
1
P =

o
2
P +

d.
Figure 4: Due sistemi di riferimento traslati luno rispetto allaltro.
2.2 Rotazione
Consideriamo ora due sistemi di riferimento (o
1
, e
x1
, e
y1
, e
z1
) e (o
2
, e
x2
, e
y2
, e
z2
) aventi le orig-
ini coincidenti, come in Figura 5. Si vuole determinare la relazione tra le coordinate di un
generico punto P nei due riferimenti, cio`e la relazione tra q
1
= [x
1
y
1
z
1
]
T
e q
2
= [x
2
y
2
z
2
]
T
,
rispettivamente. In base allequazione (3), nel riferimento (o
1
, e
x1
, e
y1
, e
z1
), i vettori e
x2
, e
y2
6
ed e
z2
sono espressi dalle relazioni
_
_
_
e
x2
= <e
x2
, e
x1
> e
x1
+ <e
x2
, e
y1
> e
y1
+ <e
x2
, e
z1
> e
z1
e
y2
= <e
y2
, e
x1
> e
x1
+ <e
y2
, e
y1
> e
y1
+ <e
y2
, e
z1
> e
z1
e
z2
= <e
z2
, e
x1
> e
x1
+ <e
z2
, e
y1
> e
y1
+ <e
z2
, e
z1
> e
z1
.
Figure 5: Due sistemi di riferimento ruotati luno rispetto allaltro.
Sostituendo tali espressioni nel vettore

o
2
P espresso rispetto al sistema di coordinate
(o
2
, e
x2
, e
y2
, e
z2
):

o
2
P = x
2
e
x2
+ y
2
e
y2
+ z
2
e
z2
si ottiene il vettore

o
1
P espresso nel sistema di coordinate (o
1
, e
x1
, e
y1
, e
z1
):

o
1
P = x
1
e
x1
+ y
1
e
y1
+ z
1
e
z1
dove, raccogliendo i fattori che moltiplicano e
x1
, e
y1
e e
z1
, si possono esprimere le coordinate
(x
1
, y
1
, z
1
) in funzione delle coordinate (x
2
, y
2
, z
2
) come segue:
q
1
=
_
_
x
1
y
1
z
1
_
_
=
_
_
<e
x2
, e
x1
> <e
y2
, e
x1
> <e
z2
, e
x1
>
<e
x2
, e
y1
> <e
y2
, e
y1
> <e
z2
, e
y1
>
<e
x2
, e
z1
> <e
y2
, e
z1
> <e
z2
, e
z1
>
_
_
_
_
x
2
y
2
z
2
_
_
=: B q
2
.
(6)
In modo del tutto analogo, si ricava
q
2
=
_
_
x
2
y
2
z
2
_
_
=
_
_
<e
x1
, e
x2
> <e
y1
, e
x2
> <e
z1
, e
x2
>
<e
x1
, e
y2
> <e
y1
, e
y2
> <e
z1
, e
y2
>
<e
x1
, e
z2
> <e
y1
, e
z2
> <e
z1
, e
z2
>
_
_
_
_
x
1
y
1
z
1
_
_
=: Aq
1
.
(7)
Le matrici A e B sono dette matrici di rotazione. Le matrici di rotazione godono di
propriet` a particolari, come evidenziato di seguito.
7
Denizione 2.2 Una matrice quadrata Q con elementi reali, si dice ortogonale se Q
T
Q = I,
ovvero, se Q `e invertibile e Q
1
= Q
T
.
Teorema 2.1 Le matrici di rotazione sono ortogonali.
Dimostrazione. Si considerino le equazioni (6), (7). Poiche il prodotto scalare `e commuta-
tivo, cio`e, dati due vettori u e v, <u, v >=<v, u>, ne segue che B = A
T
e B
T
= A. Daltra
parte, poiche q

= ABq

, necessariamente, AB = I, cio`e A = B
1
, e quindi B
T
= B
1
. La
matrice B `e dunque ortogonale. Data la generalit` a della trasformazione (6), (7), il teorema
`e dimostrato.
2.2.1 Matrici di rotazione fondamentali
Si consideri il caso in cui due sistemi di riferimento (o
1
, e
x1
, e
y1
, e
z1
) e (o
2
, e
x2
, e
y2
, e
z2
) hanno
le origini e i versori e
z1
ed e
z2
coincidenti. Si supponga inoltre che il versore e
x1
debba
compiere una rotazione antioraria di un angolo per sovrapporsi al versore e
x2
. In questo
caso, rappresentato in Figura 6.a, la matrice di rotazione R
z,
tale che,
q
1
= R
z,
q
2
, (8)
detta matrice di rotazione fondamentale intorno allasse z,
3
si pu` o calcolare esplicitamente
in base allequazione (7) come
R
z,
:=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
. (9a)
Osservazione 2.1 Se lorientamento degli angoli di rotazione viene sempre tracciato in
senso antiorario, allora una utile regola mnemonica per la scrittura corretta della relazione
tra sistemi di riferimento ruotati luno rispetto allaltro `e la seguente. Se le coordinate che
si trovano a sinistra del segno di uguaglianza sono quelle rispetto al sistema di riferimento
da cui langolo di rotazione parte (cio`e, dal lato opposto della freccia), allora la matrice di
rotazione da scrivere `e quella fondamentale. In caso contrario, la matrice di rotazione da
scrivere `e quella fondamentale trasposta (il motivo di questo, che sar` a pi` u chiaro di seguito,
`e legato al Teorema 2.1). Ad esempio, nellequazione (8), poiche q
1
`e a sinistra delluguale, e
in Figura 6.a langolo parte da un asse del primo riferimento, allora la matrice di rotazione
scritta nella (8) `e quella fondamentale. Nel caso opposto, si sarebbe scritta la trasposta; in
altre parole, vale la relazione q
2
= R
T
z,
q
1
.
3
In altre parole, R
x,
`e la matrice che trasforma le coordinate rispetto al riferimento (o
2
, e
x2
, e
y2
, e
z2
) in
coordinate rispetto al secondo riferimento (o
1
, e
x1
, e
y1
, e
z1
).
8
Figure 6: Le tre rotazioni fondamentali.
Analogamente, la matrice di rotazione fondamentale intorno allasse x, corrispondente
al caso rappresentato in Figura 6.b, `e data dalla relazione
R
x,
:=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
, (9b)
e la matrice di rotazione fondamentale intorno allasse y, corrispondente al caso rappresen-
tato in Figura 6.c, `e data dalla relazione
R
y,
:=
_
_
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 allasse 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 nuove
matrici di rotazione che consentano la rappresentazione di relazioni pi` u complesse tra sis-
temi di coordinate con le origini coincidenti. In particolare, si considerino tre sistemi
4
di
4
Per semplicit`a di notazione, da questo punto in poi, il sistema di riferimento (o
i
, e
xi
, e
yi
, e
zi
) verr`a
spesso denotato con (oxyz)
i
. Inoltre, lasse passante per e
xi
verr`a spesso denotato come asse x
i
, o, se questo
non genera confusione, pi` u semplicemente, asse x. Analogamente sar`a fatto per gli assi y
i
e z
i
.
9
riferimento (oxyz)
0
, (oxyz)
1
e (oxyz)
2
con le origini coincidenti, e le matrici di rotazione
0
R
1
e
1
R
2
tali che
q
0
=
0
R
1
q
1
, q
1
=
1
R
2
q
2
.
`
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
0
R
2
denita come segue:
q
0
=
0
R
1
q
1
,
=
0
R
1
1
R
2
q
2
=:
0
R
2
q
2
.
In particolare, se un sistema di coordinate (oxyz)
2
`e ottenuto da una rotazione del sistema
di coordinate (oxyz)
0
intorno allasse x di un angolo seguita da una rotazione intorno
allasse y di un angolo in base alle equazioni relative alle rotazioni fondamentali e alla
regola mnemonica descritta nellOsservazione 2.1, le coordinate q
0
e q
2
, sono in relazione
secondo la seguente matrice di rotazione:
q
0
=
0
R
2
q
2
= R
x,
R
y,
q
2
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
q
2
=
_
_
cos 0 sin
sin sin cos cos sin
sin cos sin cos cos
_
_
q
2
.
(10)
Si noti peraltro che, in base al Teorema 2.1, la trasformazione inversa da q
0
a q
2
`e
data dalla matrice
0
R
2
:=
2
R
T
0
. Questa propriet` a tuttavia non `e da confondere con la
commutativit` a di due matrici di rotazione, che non sussiste, ad eccezione del caso banale in
cui le due rotazioni avvengono intorno allo stesso asse. Per mostrare che
Le rotazioni non godono della propriet`a di commutativit`a,
5
si consideri la rotazione commutata rispetto a quella dellequazione (10), cio`e la rotazione di
un angolo intorno allasse y seguita da una rotazione di un angolo intorno allasse x. La
matrice relativa `e data da
R := R
y,
R
x,
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
_
_
1 0 0
0 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 nellequazione (10).
5
Ovvero, rotazioni eettuate secondo un ordine diverso non sono associate allo stesso risultato nale.
10
Osservazione 2.2 Si osservi che mentre come gi` a visto, una rotazione R
2
eettuata in
seguito ad una rotazione R
1
provoca una rotazione globale pari alla postmoltiplicazione di
R
2
per R
1
:
R
TOT
:= R
1
R
2
,
se una rotazione R
0
viene eettuata prima di una rotazione R
1
, la rotazione complessiva `e
data dalla premoltiplicazione di R
0
per R
1
:
R
TOT
:= R
0
R
1
.

2.2.3 Rotazione intorno ad un asse qualsiasi


Sulla base di quanto detto nel precedente paragrafo, sembra naturale sostenere che qualsiasi
rotazione di un corpo rigido sia esprimibile tramite una matrice di rotazione. Per dimostrare
questa propriet` a, in questa sezione si descriver` a una tecnica costruttiva per caratterizzare la
rotazione 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), lasse di rotazione abbia coordinate (r
x
, r
y
, r
z
), con (r
2
x
+ r
2
y
+ r
2
z
)
1
2
= 1. In altre
parole, si supponga che il vettore r mostrato in Figura 7 sia di fatto un versore. In questo
caso, la rotazione di un angolo intorno allasse individuato da r pu` o essere descritta dalla
composizione di rotazioni elementari come segue:
11
1. rotazione di un angolo intorno allasse z per portare lasse r sul piano verticale
individuato dagli assi gli assi x e z;
2. rotazione di un angolo intorno allasse y per sovrapporre lasse r allasse z;
3. rotazione di un angolo intorno allasse z r;
4. rotazione di un angolo intorno allasse y;
5. rotazione di un angolo intorno allasse z.
Si noti che le ultime due rotazioni vengono eseguite per riportare lasse r nella posizione
originaria. In particolare, poiche la rotazione da rappresentare avviene intorno allasse r,
tutti i punti dello spazio su questo asse non devono subire nessuno spostamento.
La procedura sopra elencata pu` o essere descritta in termini di matrici di rotazione fon-
damentali tramite la formula seguente (si noti che, in relazione allOsservazione 2.2, tutte
le rotazioni sopraelencate sono riferite alla terna ssa dunque corrispondono a matrici di
rotazione che vengono via via premoltiplicate):
R
r,
= R
z,
R
y,
R
z,
R
y,
R
z,
, (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 norma
unitaria, le seguenti relazioni derivano da semplici argomentazioni geometriche:
r
x
=
_
r
2
x
+ r
2
y
cos r
y
=
_
r
2
x
+ r
2
y
sin
_
r
2
x
+ r
2
y
= sin r
z
= cos .
(12)
Dalle relazioni 12, si ricava sostituendo seni e coseni di e in (11) e moltiplicando:
6
R
r,
=
_
_
r
2
x
(1 C

) + C

r
x
r
y
(1 C

) r
z
S

r
x
r
z
(1 C

) + r
y
S

r
x
r
y
(1 C

) + r
z
S

r
2
y
(1 C

) + C

r
y
r
z
(1 C

) r
x
S

r
x
r
z
(1 C

) r
y
S

r
y
r
z
(1 C

) + r
x
S

r
2
z
(1 C

) + C

_
_
, (13)
che rappresenta la rotazione di un angolo della terna originaria (0xyz) intorno allasse
arbitrario r. In particolare, si denoti con (0xyz)
1
, la terna (0xyz) in seguito alla rotazione,
allora vale
q = R
r,
q
1
.
Osservazione 2.3 Si osservi che lequazione (12) pu` o anche essere ricavata a partire dalla
matrice centrale R
z,
. In particolare, assumendo in prima istanza che r z, la rotazione
si esprime come R
z,
. Successivamente, le rotazioni necessarie per riportare lasse r nella
posizione corretta corrispondono a due matrici R
z,
R
y,
che premoltiplicano la matrice di
rotazione. Inne, poiche di fatto lassunzione r z non `e vera in generale, le rotazioni
da eettuare per portare r a coincidere con z corrispondono a due matrici R
y,
R
z,
che
postmoltiplicano la matrice di rotazione, dando cos
`
i luogo alla (12).
6
Nella (13), la notazione C

sta per cos e la notazione S

sta per sin .


12
Esercizio 2.2 Si verichi che anche per la matrice (13), come per tutte le matrici di ro-
tazione, vale la relazione R
T
r,
R
r,
= I, dimostrata nel Teorema 2.1.
Esercizio 2.3 Utilizzando la formula (11), si scrivano le tre matrici relative alle rotazioni
di un sistema di riferimento di 60 gradi intorno ai seguenti assi, rispettivamente:
1. lasse x;
2. lasse y;
3. la bisettrice del primo quadrante.

13
3 Coordinate e trasformazioni omogenee
3.1 Rototraslazioni e rappresentazioni minime
Come gi` a anticipato nel paragrafo 1.2, il numero di gradi di libert` a di un corpo rigido nello
spazio `e pari a sei. Questa propriet` a verr` a reinterpretata in questo paragrafo, alla luce della
descrizione delle rotazioni e delle traslazioni data nei paragra precedenti.
Si consideri un sistema di riferimento sso (ovvero, con posizione ed orientamento costanti
nel tempo) e un sistema di riferimento solidale con il corpo rigido e con il centro localizzato su
un punto di interesse del corpo rigido (quale, il punto terminale, una cuspide, etc.). Si osservi
che, in base allequazione (5) e allequazione (7), qualsiasi rototraslazione del corpo rigido
nello spazio pu` o essere descritta dalla relazione seguente (corrispondente ad una rotazione
seguita da una traslazione):
q
0
= Rq + d, (14)
dove il vettore d R
3
rappresenta la posizione del centro del sistema di riferimento solidale
con il corpo, mentre la matrice R ne rappresenta lorientamento, entrambi valutati rispetto
al sistema di riferimento sso.
Il fatto che lequazione (14) sia in grado di rappresentare qualsiasi posizione del corpo
rigido nello spazio `e stabilito nei seguenti teoremi.
Teorema 3.1 (Teorema di Eulero) Un generico spostamento rigido che lascia invariato un
punto sso c (spostamento sferico) `e uno spostamento rotatorio con asse di rotazione passante
per c.
Teorema 3.2 (Teorema di Chasles) Un generico spostamento rigido pu`o essere decomposto
in una rotazione attorno ad un asse sso ed in una traslazione lungo lo stesso asse.
In base al teorema di Chasles, per qualsiasi spostamento rigido, esiste un sistema di
coordinate tale che lo spostamento `e caratterizzato da una lunghezza ed un angolo ed `e
esprimibile in tale sistema di coordinate tramite la forma canonica di Chasles:
q
0
=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
q +
_
_
0
0

_
_
.
Nonostante lequazione (14) possa rappresentare qualsiasi rototraslazione, essa non ne
costituisce una rappresentazione minima. In particolare, mentre il vettore d rappresenta
univocamente la posizione del centro del sistema di riferimento solidale con il corpo rigido,
la matrice R ne rappresenta lorientamento con un certo grado di ridondanza. Infatti, dei
nove parametri che caratterizzano la matrice R, sei sono vincolati dalla relazione RR
T
= I,
dimostrata nel Teorema 2.1, che corrisponde a 6 relazioni scalari (tre corrispondenti agli
elementi sulla diagonale dellidentit` a e tre corrispondenti agli elementi fuori dalla diagonale).
Allo scopo di ottenere una rappresentazione minima dellorientamento, `e necessario sta-
bilire una relazione biunivoca tra i nove coecienti della matrice R e tre parametri indipen-
denti, generalmente costituiti da tre angoli, opportunamente selezionati in una variet` a di
scelte, tutte equivalenti. Di seguito descriveremo due possibili scelte di rappresentazioni
minime dellorientamento.
14
3.1.1 Angoli di Eulero
La strategia pi` u diretta per la selezione dei parametri minimi descriventi lorientamento
consiste nel caratterizzare la matrice di rotazione in base alla composizione di tre rotazioni
successive intorno a tre assi coordinati. I tre angoli associati alle rotazioni vengono denom-
inati angoli di Eulero. Larbitrariet` a degli angoli di Eulero consiste nel fatto che ciascuna
delle tre rotazioni pu` o essere eettuata intorno a un qualsiasi asse coordinato. Tuttavia,
condizione necessaria (e suciente) perche i tre angoli derivanti da questa caratterizzazione
siano indipendenti `e che ogni coppia di rotazioni successive avvenga intorno ad assi coordinati
diversi. 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 Eulero
viene denominata terna XYZ, o terna YXY, e via di seguito. Si ribadisce che una terna
del tipo XXY non costituirebbe una rappresentazione minima dellorientamento perche le
prime due rotazioni (entrambe intorno allasse coordinato x) non sono indipendenti.
Nel seguito si fa riferimento alla convenzione associata agli angoli ZYZ caratterizzati
dalle seguenti operazioni:
1. Rotazione di un angolo intorno allasse z;
2. Rotazione di un angolo intorno allasse y (corrente);
3. Rotazione di un angolo intorno allasse z (corrente);
Per convenzione, tali rotazioni vengono via via riferite agli assi trasformati secondo
lultima rotazione eettuata. In base a quanto illustrato nellOsservazione 2.2, esse cor-
rispondono dunque a matrici di rotazione che vanno via via a postmoltiplicare le rotazioni
precedenti. Considerando dapprima il problema della determinazione della matrice di ro-
tazione R
ZY Z
(, , ) a partire dai valori dei tre angoli ZYZ , e , si pu` o scrivere la
seguente relazione:
R
ZY Z
(, , ) = R
z,
R
y,
R
z,
=
_
_
C

_
_
.
(15)
Data una terna , , di angoli ZYZ, lequazione (15) permette di ricavare la matrice di
trasformazione corrispondente. Il procedimento inverso (ovvero il calcolo degli angoli , ,
corrispondenti ad un determinato orientamento, in base allespressione della relativa matrice
di rotazione R) `e anche di interesse, ma corrisponde ad un problema algebrico pi` u articolato.
Per la soluzione di questultimo problema `e utile introdurre la funzione (x, y) atan2(x, y)
che associa ad ogni coppia di ingressi x, y un angolo tale che sin() =
x

x
2
+y
2
e cos() =
y

x
2
+y
2
. Questa funzione viene anche denominata arcotangente a 4 quadranti in quanto,
al contrario della classica funzione arcotangente atan(), non `e soggetta allindeterminazione
tra il primo e il terzo (similarmente, il secondo e il quarto) quadrante. Inoltre, i punti di
singolarit` a in /2+k caratterizzanti la funzione classica atan() non sono presenti in questo
caso, grazie al fatto che atan2(, ) `e funzione di due argomenti. Le peculiarit` a essenziali della
funzione (x, y) 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 pu` o ora procedere alla determinazione della trasfor-
mazione inversa della (15). In particolare, supponiamo che sia nota la matrice R = {r
ij
}
relativa ad un determinato orientamento e che si voglia determinare la terna di angoli (o,
pi` u correttamente, una
8
terna di angoli) , e tali che R = R
ZY Z
(, , ). Per procedere
alla determinazione di , e si considerano dapprima tutte le relazioni di uguaglianza
corrispondenti a R = R
ZY Z
(, , ):
_
_
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
_
_
=
_
_
C

_
_
e successivamente, sfruttando le uguaglianze membro a membro, si procede alla determi-
nazione dei vari angoli facendo uso della funzione atan2() sopra denita. Una possibile
strategia `e la seguente (anche se non `e lunica):
= atan2(
_
r
2
31
+ r
2
32
, r
33
).
Se S

= 0, allora
9
= atan2(r
32
, r
31
).
= atan2(r
23
, r
13
),
Se S

= 0, allora le rotazioni e avvengono intorno allo stesso asse (eventualmente


con verso opposto), quindi si pu` o scegliere arbitrariamente = 0 cosicche sin() = 0
e cos() = 1, per poi determinare
= 0 (per denizione).
= atan2(r
21
, r
11
).
3.1.2 Angoli di RPY
Una convenzione per la rappresentazione minima dellorientamento particolarmente adottata
in 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 facendo
riferimento allassetto di un aereoplano sul quale sia stato ssato un sistema di riferimento
il cui asse z `e disposto lungo la carlinga, il cui asse y `e disposto nella direzione dellapertura
alare e il cui asse x `e disposto di conseguenza (vedi Figura 8).
7
Si noti che se la funzione atan2(, ) `e usata in modo appropriato, i suoi argomenti non sono mai entrambi
nulli, 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 utilizzo
della funzione.
8
`
E immediato constatare che questa terna di angoli `e, in generale, non unica, perche ad esempio,
R
ZY Z
(, 0, ) = R
ZY Z
( +, 0, ) per qualsiasi valore dellangolo .
9
Si osservi che per denizione, sin =

r
2
31
+r
2
32
> 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 deniti eseguendo tre rotazioni successive, tutte intorno agli assi del sistema di
riferimento originale, secondo la sequenza:
1. Rotazione di un angolo intorno allasse x;
2. Rotazione di un angolo intorno allasse y (originale);
3. Rotazione di un angolo intorno allasse z (originale).
In base a quanto illustrato nellOsservazione 2.2, le tre rotazioni sopra elencate corrispon-
dono a matrici di rotazione che vanno via via a premoltiplicare le rotazioni precedenti, infatti
eseguendo le rotazioni successive rispetto al sistema di riferimento originale, leetto `e quello
che si otterrebbe se la rotazione in oggetto fosse anteposta a quelle gi` a eettuate (questa pro-
priet` a sar` a pi` u chiara in seguito nellEsempio 3.2 e nellOsservazione 3.1). Premoltiplicando,
dunque, le matrici di rotazione relative alle trasformazioni sopra elencate, si pu` o procedere
alla determinazione della matrice di rotazione R
RPY
(, , ) analoga a quella riportata in
equazione (15) per il caso degli angoli ZYZ:
R
RPY
(, , ) = R
z,
R
y,
R
x,
=
_
_
C

+ S

_
_
.
(17)
Si osservi che gli angoli di RPY corrispondono ad una delle 27 possibili scelte per gli
angoli di Eulero indicate nel paragrafo precedente. In particolare, essi corrispondono agli
angoli di Eulero ZYX.
La determinazione della trasformazione inversa alla (17) pu` o essere eseguita in maniera
parallela a quanto fatto nel paragrafo precedente per il caso degli angoli ZYZ ed `e oggetto
del seguemte esercizio.
17
Esercizio 3.1 Data una matrice di rotazione generica R = {r
ij
}, determinare una terna di
angoli di RPY , e tali che R = R
RPY
(, , ).
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 o
1
rispetto al sistema di riferimento (0xyz)
0
sono
rappresentate dal vettore d, e se q
0
e q
1
denotano le coordinate del punto P nei due sistemi
di riferimento, allora la seguente relazione pu` o essere vericata con semplici considerazioni
geometriche di composizione di vettori:
q
0
=
0
R
1
q
1
+ d, (18)
dove
0
R
1
`e la matrice di rotazione del sistema di riferimento (0xyz)
1
rispetto al sistema di
riferimento (0xyz)
0
. Si noti che lequazione (18) coincide con lequazione (14). Tuttavia,
sulla base del Teorema di Eulero 3.1, sappiamo ora che qualunque spostamento rigido pu` o
essere caratterizzato dalla (18).
Figure 9: Rappresentazione di un punto in diversi sistemi di coordinate.
Per rappresentare in maniera pi` u compatta il generico spostamento rigido (18), invece
delle coordinate Cartesiane [x y z]
T
si utilizzano le coordinate omogenee: [wx wy wz w]
T
,
costituite non pi` u da tre ma da quattro componenti, di cui la quarta costituisce il fattore di
scala per cui le componenti x, y e z sono moltiplicate e pu` o essere utilizzata per risalire alle
coordinate Cartesiane. Sulla base delle coordinate omogenee si deniscono le trasformazioni
omogenee, rappresentate da matrici appartenenti allo spazio R
44
che consentono la rappre-
sentazione compatta non solo di rotazioni (come avveniva per le matrici nello spazio R
33
)
ma anche di traslazioni. La forma pi` u generale per una trasformazione omogenea `e data
dalla seguente formula:
_

_
w
1
q
1
w
1
_

_
=
_

_
R d
f s
_

_
_

_
w
0
q
0
w
0
_

_
, (19)
18
dove R R
33
`e la matrice di rotazione, d R
3
`e il vettore di posizione, f R
13
`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, quindi
le coordinate omogenee associate ad un punto di coordinate Cartesiane [x y z]
T
saranno
sempre denite come [x y z 1]
T
(il fattore di scala e il vettore di trasformazione prospettica
sono usati, ad esempio, in applicazioni di computer graca).
Sulla base della struttura delle trasformazioni omogenee descritta dallequazione (19),
si possono scrivere le seguenti matrici di rotazioni omogenee fondamentali (corrispondenti
rispettivamente alle equazioni (9)):
T
z,
:=
_

_
cos sin 0 0
sin cos 0 0
0 0 1 0
0 0 0 1
_

_
(20a)
T
x,
:=
_

_
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
_

_
(20b)
T
y,
:=
_

_
cos 0 sin 0
0 1 0 0
sin 0 cos 0
0 0 0 1
_

_
, (20c)
e la matrice di traslazione omogenea fondamentale
T
tr,d
:=
_

_
1 0 0 d
x
0 1 0 d
y
0 0 1 d
z
0 0 0 1
_

_
, (20d)
dove d = [d
x
d
y
d
z
]
T
costituisce un generico spostamento traslatorio.
Il vantaggio delle coordinate e trasformazioni omogenee sta nel fatto che lequazione (18),
caratterizzante un generico spostamento rigido, pu` o essere descritta in forma matriciale come
segue, tramite la trasformazione omogenea
0
T
1
:
p
0
=
_
q
0
1
_
=
0
T
1
p
1
=
_
0
R
1
d
[0 0 0] 1
_ _
q
1
1
_
,
=
_
0
R
1
q
1
+ d
1
_
e, analogamente a quanto accadeva per le rotazioni (descritte da matrici in R
33
), gli sposta-
menti rigidi si possono comporre, consentendo la rappresentazione compatta di catene di sis-
temi di riferimento in relazione luno con laltro. In particolare, se p
0
=
0
T
1
p
1
e p
1
=
1
T
2
p
2
,
19
Figure 10: Composizione di spostamenti rigidi per determinare la trasformazione di coordi-
nate complessiva.
allora si pu` o sostituire e ottenere
p
0
=
0
T
1
p
1
,
=
0
T
1
1
T
2
p
2
=:
0
T
2
p
2
.
Quindi, con riferimento alla Figura 10, la matrice
0
T
4
`e data dal seguente prodotto delle
trasformazioni da ogni sistema di riferimento al successivo:
0
T
4
=
0
T
1
1
T
2
2
T
3
3
T
4
.
Esercizio 3.2 Si dimostri tramite luso delle trasformazioni omogenee che una rotazione
lungo un asse ed una traslazione nella direzione dello stesso asse sono trasformazioni che
commutano.
Esempio 3.1 Trovare una matrice di trasformazione omogenea che rappresenti una traslazione
di lunghezza d lungo lasse z seguita da una rotazione di un angolo intorno a z, seguita da
una rotazione di un angolo intorno allasse x, e inne, da una traslazione di lunghezza a
lungo x.
Soluzione. La soluzione `e data dalla composizione delle quattro matrici di trasformazione
fondamentali, secondo la regola mnemonica data in Osservazione 2.2:
T = T
tr,[0 0 d]
T T
z,
T
x,
T
tr,[a 0 0]
T
=
_

_
cos sin 0 0
sin cos 0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 0
0 1 0 0
0 0 1 d
0 0 0 1
_

_
20
_

_
1 0 0 a
0 1 0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
_

_
=
_

_
cos cos sin sin sin a cos
sin cos cos sin cos a sin
0 sin cos d
0 0 0 1
_

Esercizio 3.3 Si dimostri che le trasformazioni omogenee non godono della propriet` a di
ortogonalit` a come le rotazioni. Inoltre, si verichi che, data la trasformazione omogenea,
0
T
1
=
_
0
R
1
d
[0 0 0] 1
_
,
la trasformazione inversa
10
corrisponde a:
1
T
0
=
_
0
R
T
1

0
R
T
1
d
[0 0 0] 1
_
.

Se da un lato la composizione di pi` u trasformazioni omogenee risulta come una banale


operazione algebrica, non `e altrettanto banale la costruzione della matrice di trasformazione
relativa a due basi orientate e centrate in modi diversi. Sulla base del seguente esempio,
si pu` o estrapolare una regola mnemonica per la costruzione della matrice di trasformazione
corretta.
Esempio 3.2 In questo esempio, le coordinate omogenee saranno utilizzate per rappre-
sentare la posizione e lorientamento del punto termale di un robot planare in base al sistema
di 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 a
1
e a
2
e che gli angoli dei due giunti,
deniti come in gura, siano rispettivamente
1
e
2
. Si possono allora denire tre sistemi
di riferimento: il sistema sso (0xyz)
0
, solidale con la base; il sistema (0xyz)
1
, solidale con
il giunto nale del primo link e il sistema (0xyz)
2
, collocato sul punto terminale del robot
(eettore). A partire da questi tre sistemi di riferimento, per calcolare la trasformazione
di coordinate omogenea
0
T
2
dal sistema di riferimento di base (0xyz)
0
a quello di eettore
(0xyz)
2
, si possono calcolare le trasformazioni
0
T
1
e
1
T
2
e comporle tramite la semplice
moltiplicazione delle matrici. Per quanto riguarda il calcolo delle due trasformazioni parziali,
10
In base al fatto che tutte le matrici di trasformazione omogenee sono non singolari, si pu`o dimostrare
che 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 di
trasformazione saranno identiche ma con variabili aventi indici diversi.
`
E dunque suciente
la determinazione di
0
T
1
per arrivare alla trasformazione complessiva.
Determinazione di
0
T
1
. I sistemi di riferimento (0xyz)
0
e (0xyz)
1
dieriscono per una
traslazione di a
1
lungo x
1
e per una rotazione di
1
intorno allasse z
0
(o, analogamente,
intorno allasse z
1
). Si osservi tuttavia, che la matrice relativa alla traslazione va postmolti-
plicata alla rotazione per avere la trasformazione corretta, infatti lorigine del sistema (0xyz)
1
ha coordinate q
0
= [a
1
cos
1
a
1
sin
1
0]
T
, vettore che eettivamente coincide con il termine
d della trasformazione complessiva ottenuta postmoltiplicando la matrice di traslazione a
quella di rotazione. In particolare, si ottiene:
0
T
1
:= T
z
1
T
tr,[a
1
0 0]
T
=
_

_
cos
1
sin
1
0 0
sin
1
cos
1
0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 a
1
0 1 0 0
0 0 1 0
0 0 0 1
_

_
=
_

_
cos
1
sin
1
0 a
1
cos
1
sin
1
cos
1
0 a
1
sin
1
0 0 1 0
0 0 0 1
_

_
(21)
Sulla base dellequazione (21), si pu` o ricavare la matrice di trasformazione globale che
risulta essere:
0
T
2
:=
0
T
1
1
T
2
= T
z
1
T
tr,[a
1
0 0]
T T
z
2
T
tr,[a
2
0 0]
T
=
_

_
cos
1
sin
1
0 a
1
cos
1
sin
1
cos
1
0 a
1
sin
1
0 0 1 0
0 0 0 1
_

_
_

_
cos
2
sin
2
0 a
2
cos
2
sin
2
cos
2
0 a
2
sin
2
0 0 1 0
0 0 0 1
_

_
=
_

_
cos(
1
+
2
) sin(
1
+
2
) 0 a
2
cos(
1
+
2
) + a
1
cos
1
sin(
1
+
2
) cos(
1
+
2
) 0 a
2
sin(
1
+
2
) + a
1
sin
1
0 0 1 0
0 0 0 1
_

_
,
22
dove lultima relazione `e stata ottenuta usando le ben note formule di Prostaferesi per le
funzioni trigonometriche di somme e dierenze di angoli.
Osservazione 3.1 In base allesperienza fatta tramite lEsempio 3.2, si pu` o dare la seguente
regola mnemonica. Per esprimere le coordinate rispetto ad una base (0xyz)
0
in funzione di
una seconda base (0xyz)
1
in posizione arbitraria rispetto alla precedente, bisogna scomporre
il movimento dalla base (0xyz)
0
alla (0xyz)
1
in rotazioni o traslazioni elementari e poi
eseguire la seguente procedura:
1. Sovrapporre (0xyz)
1
a (0xyz)
0
e inizializzare T = I (i due sistemi di riferimento sono
coincidenti).
2. Esprimere ordinatamente le rotazioni e traslazioni necessarie per portare (0xyz)
1
nella
posizione 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 elementare
corrispondente 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 elementare
corrispondente al movimento.

Figure 12: Sistema considerato nellEsercizio 3.4.


Esercizio 3.4 Sulla base dellEsempio 3.2, e della regola mnemonica data nellOsservazione 3.1,
calcolare la matrice di trasformazione tra i sistemi di riferimento di base ed eettore, cor-
rispondente al braccio meccanico rappresentato in Figura 12.
23
4 Cinematica diretta dei robot
In questa sezione verr` a fornito un metodo costruttivo per caratterizzare la posizione del
punto terminale di un manipolatore (detto anche eettore) in base alla posizione relativa di
ogni segmento (o link) rispetto al precedente segmento, ovvero, in altri termini, in base alla
posizione 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 libert` a. Dunque, per un manipolatore con N gradi di libert` a ci sono
N coppie giunto-link con il link 0 (non considerato parte del robot) ancorato a una base
di appoggio dove di norma `e stabilito un sistema di coordinate inerziale; allultimo link `e
collegato 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 `e
connesso al pi` u 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, solo
i giunti rotazionali e prismatici sono comuni nei manipolatori. I primi sono giunti associati
ad uno spostamento angolare dei link adiacenti (ad esempio, il giunto 2 in Figura 13), mentre
i secondi sono associati ad uno spostamento lineare dei link adiacenti.
24
Lasse di un giunto si denisce come lasse di rotazione o di traslazione individuato dal
movimento del giunto. Questo asse avr` a due normali, una per ogni link. Si faccia riferimento
alla Figura 14.
Figure 14: Sistemi di coordinate dei link e loro parametri.
Un link i `e connesso, ripetiamo, al massimo ad altri due (cio`e il link i 1 e il link i +1);
pertanto, sono stabiliti due assi del giunto per ambedue le estremit` a della connessione. Il
signicato dei link, considerati in unottica cinematica, `e che essi mantengono una cong-
urazione ssa tra i loro giunti che pu` o essere caratterizzata da due parametri a
i
e
i
. Il
parametro a
i
rappresenta la distanza pi` u breve misurata lungo la normale comune tra gli
assi dei giunti (cio`e gli assi z
i1
e z
i
rispettivamente per i giunti i e i + 1), e
i
`e langolo
compreso tra gli assi dei giunti su un piano perpendicolare ad a
i
. Cos` a
i
e
i
possono essere
chiamati, rispettivamente, lunghezza e angolo di twist del link i. Essi sono associati alla
struttura del link.
Dato lasse z
i
, la posizione relativa dei due link adiacenti i 1 e i `e data da d
i
, che `e la
distanza misurata lungo lasse del giunto fra la normale proveniente dallasse del giunto i 1
e la normale che va al giunto i +1 (ovvero, il segmento a
i
). Langolo
i
del giunto `e langolo
formato dalle 2 normali, misurato su un piano ortogonale allasse del giunto. Dunque, d
i
e
i
possono 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 quattro
parametri: a
i
,
i
, d
i
e
i
. Una volta stabilita una convenzione di segno per ognuno di essi,
questi costituiscono un insieme suciente a determinare completamente la congurazione
cinematica di ciascun anello della catena articolata del braccio. Si enfatizza che questi
parametri possono essere considerati a coppie: (a
i
,
i
), che dipendono dalla struttura del
link, e (d
i
,
i
), parametri dei giunti, che dipendono dalla posizione relativa dei link adiacenti.
25
Link/giunto a d
1 a
1

1
d
1

1
2 a
2

2
d
2

2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
N a
N

N
d
N

N
Table 1: Tabella dei parametri a
i
,
i
, d
i
e
i
per un robot generico.
In base alla caratterizzazione precedente, dato un manipolatore, sulla base dei quattro
parametri a
i
,
i
, d
i
e
i
, si pu` o compilare una tabella strutturata come la Tabella 1, dove
ogni link (e giunto) corrisponde ad una riga su cui sono presenti i parametri caratteristici del
link e del giunto i. Questa tabella sar` a utile per il calcolo della cinematica diretta del robot,
ovvero della funzione che trasforma le coordinate del sistema di eettore (o della mano) nel
sistema 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 di
coordinate per ogni link di una catena articolata. La rappresentazione di Denavit-Hartenberg
(D-H) consiste in una matrice di trasformazione omogenea
i1
T
i
R
44
che rappresenta il
sistema di coordinate del link i rispetto al riferimento del link precedente i 1. Pertanto,
attraverso trasformazioni sequenziali, lestremit` a delleettore, espresso nellultimo sistema
di coordinate, pu` o essere trasformata ed espressa nelle coordinate di base che costituiscono
il sistema di riferimento inerziale di questo sistema dinamico.
Come gi` a accennato, il robot `e individuato da un sistema di riferimento inerziale (0xyz)
o
,
detto di base, da un sistema di riferimento di eettore (0xyz)
e
(anche detto della mano)
e dai sistemi di riferimento intermedi, ognuno associato ad un link (e ad un giunto). Per
ognuno di questi N sistemi di riferimento (dove N sono i gradi di libert` a della catena cine-
matica), si danno di seguito delle regole di tracciamento in termini di: 1) posizione dellasse
z
i
; 2) posizione del centro o
i
; 3) posizione dellasse x
i
. La posizione dellasse y
i
`e inne
determinabile univocamente dalle informazioni precedenti.
Procedura per la scelta dei riferimenti
A. Sistema di riferimento di base, (0xyz)
0
:
1. scegliere lasse z
0
come lasse del primo giunto;
2. scegliere il centro arbitrariamente (ad esempio, al livello del piano di appoggio);
3. scegliere lasse x
0
arbitrariamente.
26
B. Sistema di riferimento del link 1 i N, (0xyz)
i
:
1. Scegliere lasse z
i
come lasse del giunto i + 1.
2. Scegliere il centro o
i
come segue:
se gli assi z
i1
e z
i
sono sghembi, tracciare lunico segmento a
i
perpendicolare ad
entrambi gli assi (che in eetti costituisce la loro distanza) e scegliere il centro o
i
come lintersezione del segmento a
i
con lasse z
i
;
se gli assi z
i1
e z
i
sono paralleli, poiche ci sono inniti segmenti a
i
di minima
distanza tra z
i1
e z
i
, scegliere il centro o
i
arbitrariamente (a volte `e comodo
posizionarlo allineato con o
i1
);
se gli assi z
i1
e z
i
sono secanti, scegliere il centro o
i
al punto di intersezione dei
due assi.
3. Scegliere lasse x
i
come segue:
se gli assi z
i1
e z
i
sono sghembi o paralleli, scegliere lasse x
i
come il prolunga-
mento del segmento a
i
dopo il passaggio per il centro o
i
;
se gli assi z
i1
e z
i
sono secanti, scegliere lasse x
i
nella direzione perpendicolare
al piano individuato da z
i
e z
i1
, con verso arbitrario.
C. Sistema di riferimento deettore (della mano), (0xyz)
e
:
1. Scegliere lasse z
e
nella direzione di avvicinamento;
2. Scegliere il centro o
e
al centro della pinza o sul punto terminale di un utensile (ad
esempio, la punta di un trapano);
3. Scegliere lasse x
e
nella direzione di apertura della pinza (detta anche scorrimento, o
alzo), o arbitrariamente nel caso di utensili pi` u sosticati.
Si osservi che in un certo numero di situazioni, la procedura appena denita non d` a
indicazioni precise sul posizionamento dei sistemi di riferimento. In particolare, ci` o accade
nei seguenti casi:
Per la terna 0, poiche solo lasse z
0
`e ssato, si pu` o scegliere liberamente sia o
0
che x
0
.
Per la terna N, poiche non esiste il giunto N +1, lasse x
N
ha il solo vincolo di essere
ortogonale allasse z
N1
, e gli altri parametri sono liberi.
Quando due assi consecutivi sono paralleli o secanti. Nel primo caso, la posizione del
centro o
N
`e arbitraria lungo tali assi; nel secondo, il verso di x
N
`e arbitrario.
27
4.3 Trasformazione omogenea associata ad un link
Stabilito il sistema di coordinate di D-H per ogni link, si pu` o sviluppare facilmente una
matrice di trasformazione omogenea che metta in relazione il sistema di coordinate i-esimo
col sistema di il coordinate (i 1)-esimo. In particolare, con riferimento alla Figura 14,
si osservi che, in base alla regola mnemonica data nellOsservazione 3.1, sovrapponendo
il sistema di riferimento (0xyz)
i
al sistema di riferimento (0xyz)
i1
, bisogna eettuare le
seguenti trasformazioni elementari per riportare (0xyz)
i
nella sua posizione originaria:
1. traslare lungo lasse z
i1
di una lunghezza pari a d
i
per portare lorigine o
i
sul punto
di intersezione tra il segmento a
i
e lasse z
i1
;
2. ruotare intorno allasse z
i1
di un angolo
i
per allineare lasse x
i
con il segmento a
i
;
3. traslare lungo lasse x
i
di una lunghezza pari ad a
i
per portare o
i
nella posizione
originaria;
4. ruotare intorno allasse x
i
di un angolo pari ad
i
per portare lasse z
i
nella posizione
originaria.
Le prime due trasformazioni sono riferite al sistema di riferimento i 1 e corrispon-
dono dunque alla premoltiplicazione per le matrici T
tr,[0 0 d
i
]
e T
z,
i
, rispettivamente. Le
ultime due trasformazioni, sono invece riferite al sistema di riferimento i e corrispondono
alla postmoltiplicazione per le matrici T
tr,[a
i
0 0]
e T
x,
i
, rispettivamente. In sintesi, la trasfor-
mazione
i1
T
i
si costruisce secondo la seguente sequenza: I T
tr,[0 0 d
i
]
T
z,
i
T
tr,[0 0 d
i
]

T
z,
i
T
tr,[0 0 d
i
]
T
tr,[a
i
0 0]
T
z,
i
T
tr,[0 0 d
i
]
T
tr,[a
i
0 0]
T
x,
i
, e risulta essere:
i1
T
i
= T
z,
i
T
tr,[0 0 d
i
]
T
tr,[a
i
0 0]
T
x,
i
. (22)
Si osservi lanalogia tra la trasformazione (22) e lEsempio 3.1, dove peraltro, la matrice
i1
T
i
`e calcolata esplicitamente.
Poiche la ((22) `e di valore generale, essa pu` o essere applicata iterativamente sostituendo
i dati della Tabella 1 per ottenere in maniera immediata la matrice
0
T
e
della cinematica
diretta. Il calcolo della cinematica diretta, si scompone in una procedura costituita dai
seguenti passi:
1. Si analizza la struttura posizionando tutti i sistemi di riferimento secondo la procedura
vista 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 di
trasformazione
i1
T
i
e si semplicano le moltiplicazioni
4. Si moltiplicano tutte le matrici ricavate al punto precedente per ricavare la matrice
nale:
p
0
=
0
T
e
p
e
=
0
T
1
1
T
2

i1
T
i

N1
T
N
N
T
e
p
e
.
(23)
28
Tale procedura presenta un solo punto che pu` o risultare non di immediata facilit` a, costitu-
ito dalla estrapolazione dei parametri di D-H in base alla posizione delle terne di riferimento,
che `e unoperazione prettamente di tipo geometrico. Si tenga peraltro presente che gli angoli
di giunto
i
per i giunti rotazionali e gli oset di giunto d
i
per i giunti prismatici, non sono
necessariamente coincidenti con gli angoli geometrici scelti per descrivere la congurazione
del robot. Dunque, riportare tali angoli nella tabella di D-H senza aver vericato questa
coincidenza, pu` o portare ad errori nel calcolo della cinematica globale. Questo concetto `e
facilmente vericabile riettendo sul fatto che la denizione delle coordinate geometriche di
un robot `e arbitraria, e che, necessariamente, scelte diverse degli angoli geometrici, devono
corrispondere a opportune dierenze nella matrice di cinematica diretta per non modicare
il risultato nale (la geometria del robot `e sempre la stessa).
Nellosservazione seguente `e indicato un possibile metodo pratico per la determinazione
dei parametri di D-H.
Osservazione 4.1 Date due terne (oxyz)
i1
e (oxyz)
i
, con riferimento alla Figura 14, una
possibile procedura per stimare i parametri D-H `e di portare dapprima lasse z
i1
sullasse
z
i
per stimare a
i
e successivamente, ruotarlo intorno a x
i
per stimare
i
. Per la stima di
d
i
e
i
, conviene, in generale, fare loperazione inversa, ovvero riportare lasse z
i
verso il
sistema di riferimento (oxyz)
i1
ruotandolo di
i
e traslandolo di a
i
. A questo punto,
uno spostamento di d
i
`e necessario per portare o
i
a coincidere con o
i1
e una rotazione di

i
`e necessaria per portare x
i
a sovrapporsi con x
i1
. La convenienza nel misurare d
i
e
i
tornando sul sistema (oxyz)
i1
deriva dal fatto che questi parametri sono relativi al giunto
i di cui z
i1
`e lasse.
4.4 Spazio dei giunti e spazio operativo
Come si `e visto nei paragra precedenti, lequazione cinematica diretta di un manipolatore
consente di esprimere la posizione e lorientamento della terna utensile di un robot rispetto
alla terna di base, in funzione delle variabili di giunto.
Nello specicare il compito da far eseguire allorgano terminale del manipolatore sorge la
necessit` a di assegnare posizione e orientamento della terna utensile, eventualmente in fun-
zione del tempo (traiettoria). Mentre per la posizione si pu` o procedere in maniera semplice,
specicare lorientamento mediante una matrice di rotazione risulta dicile in quanto bisogna
garantire che le nove componenti soddisno, istante per istante, i vincoli di ortonormalit` a.
Il problema della descrizione dellorientamento dellorgano terminale si presta ad una
soluzione naturale se invece si fa ricorso ad una delle rappresentazioni minime introdotte
nella Sezione 3.1 in quanto, in tal caso, risulta agevole assegnare una legge di moto alla
terna di angoli scelta per rappresentare lorientamento.
Si pu` o pertanto individuare la posizione con un numero minimo di coordinate denito
dalla geometria della struttura e si pu` o specicare lorientamento ricorrendo a una rapp-
resentazione minima in termini delle variabili che caratterizzano la rotazione della terna
utensile 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 =
_
p

_
,
dove p R
3
caratterizza la posizione dellorgano terminale e il suo orientamento.
Tale rappresentazione di posizione e orientamento consente la descrizione del compito
assegnato allorgano terminale in termini di un numero di parametri strutturalmente in-
dipendenti tra di loro. Lo spazio in cui `e denito il vettore x `e quello rispetto al quale viene
tipicamente specicata loperazione richiesta al manipolatore; pertanto esso viene denom-
inato spazio operativo. Con spazio dei giunti (o spazio delle congurazioni), invece, ci si
riferisce allo spazio in cui `e denito il vettore delle variabili di giunto:
q =
_

_
q
1
.
.
.
q
n
_

_
,
dove q
i
=
i
per un giunto rotazionale e q
i
= d
i
per un giunto prismatico. Tenendo conto
della dipendenza di posizione e orientamento dalle variabili di giunto, lequazione cinematica
diretta pu` o 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 variabili
nello spazio operativo a partire dalla conoscenza delle variabili nello spazio dei giunti.
`
E opportuno precisare che la dipendenza delle variabili di orientamento dalle variabili
di giunto nella (24), non risulta agevole tranne che in casi semplici. Infatti, nelle ipotesi
pi` u generali, di uno spazio operativo esadimensionale, il calcolo delle tre componenti della
funzione (q) non `e attuabile in forma diretta ma passa comunque attraverso il calcolo di
una matrice di rotazione.
Con riferimento allo spazio operativo, come elemento di valutazione delle prestazioni di
un robot, si denisce spazio di lavoro di un manipolatore la regione descritta dallorigine
della 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 lorigine della terna utensile pu` o descrivere
assumendo dierenti orientamenti, mentre il primo `e la regione che lorigine della terna uten-
sile pu` o raggiungere con almeno un orientamento. Ovviamente lo spazio di lavoro destro `e
un sottoinsieme dello spazio di lavoro raggiungibile.
4.5 Esempi e esercizi
In questa sezione vengono forniti alcuni esempi ed esercizi per il calcolo della cinematica
diretta di un robot.
Esempio 4.1 (Manipolatore SCARA) In questo esempio si proceder` a 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 nella
Figura 15.
Il vettore delle variabili di giunto `e dato da:
q = [
1

2
d
3

4
], (25)
ed i parametri cinematici che caratterizzano il robot sono:
d l
1
1
d
1

1
0
2
2
0
2
+
3 0 d
3
0 0
4
4
0 0 0
Le matrici di trasformazione, tenendo conto della (22), sono date da:
3
T
4
=
_
_
_
_
cos
4
sin
4
0 0
sin
4
cos
4
0 0
0 0 1 0
0 0 0 1
_
_
_
_
, (26)
2
T
3
=
_
_
_
_
1 0 0 0
0 1 0 0
0 0 1 d
3
0 0 0 1
_
_
_
_
, (27)
31
1
T
2
=
_
_
_
_
cos
2
sin
2
0
2
cos
2
sin
2
cos
2
0
2
sin
2
0 0 1 0
0 0 0 1
_
_
_
_
, (28)
0
T
1
=
_
_
_
_
cos
1
sin
1
0
1
cos
1
sin
1
cos
1
0
1
sin
1
0 0 1 d
1
0 0 0 1
_
_
_
_
. (29)
La matrice di trasformazione mano-base, cio`e la
0
T
4
, `e data da:
0
T
4
=
0
T
1
1
T
2
2
T
3
3
T
4
(30)
=
_
_
_
_
C
124
S
124
0
1
C
1
+
2
C
12
S
124
C
124
0
1
S
1
+
2
S
12
0 0 1 d
1
d
3
0 0 0 1
_
_
_
_
, (31)
in cui C
124
indica la funzione cos(
1
+
2

4
), S
124
indica la funzione sin(
1
+
2

4
),
C
1
indica la funzione cos(
1
), S
1
indica la funzione sin(
1
), ed analogamente C
12
indica la
funzione cos(
1
+
2
), e S
12
indica la funzione sin(
1
+
2
).
La posizione della mano (ovvero, la posizione dellorigine della terna associata alla mano)
espressa nelle coordinate di base `e dunque data da:
x
0
=
1
C
1
+
2
C
12
,
y
0
=
1
S
1
+
2
S
12
,
z
0
= d
1
d
3
.

Esercizio 4.1 Calcolare la matrice di cinematica diretta dello Stanford Robot Arm, e per il
robot 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 matrici
associate ad ogni link e poi si moltiplichino le matrici per ottenere la trasformazione globale.

Esercizio 4.2 Si osservi che nellEsempio 4.1, il posizionamento del centro dei sistemi di
riferimento 1, 2 e 3 rispettivamente sui giunti 2, 3 e 4 `e arbitrario. Si ricalcoli la cinematica
diretta del robot posizionando i centri dei 3 sistemi di riferimento in corrispondenza del piano
di appoggio e orientando gli assi z di tutti e tre i sistemi verso lalto. Successivamente, si
verichi (algebricamente o numericamente) che la matrice di cinematica diretta risultante `e
la stessa.
Esercizio 4.3 Collocare i sistemi di riferimento e calcolare la cinematica diretta per i robot
rappresentati 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
Linsieme di equazioni riportato di seguito, costituisce un modello matematico per il
motore in corrente continua (CC) che pu` o essere rappresentato come un sistema dinamico
non lineare. Le principali restrizioni di cui bisogna tenere conto per lo sviluppo di questo
modello rispetto ad un motore reale sono
1. lassunzione che il circuito magnetico sia lineare (questa `e unapprossimazione poiche
le parti di metallo, non perfettamente omogenee, causano dispersione allinterno del
motore; inoltre, a causa della saturazione magnetica, la linearit` a delle propriet` a mag-
netiche si perde per alti valori di corrente i);
2. lassunzione che lattrito meccanico sia funzione lineare della velocit` a del motore; si
assume quindi che nel motore sia presente solamente lattrito viscoso (`e tuttavia noto
che nei motori sia generalmente presente anche lattrito statico).
6.1 Le equazioni elettriche
In un motore CC, il usso magnetico `e generato da avvolgimenti collocati sullo statore.
Si assumer` a che lo statore abbia una sola terminazione polare, caratterizzata da una indut-
tanza L
e
associata al relativo avvolgimento e da una resistenza R
e
associata alle dispersioni
nel conduttore (vedi Figura 19). Lequazione che descrive questo circuito elettrico `e data da
v
e
(t) = L
e
d i
e
dt
+ R
e
i
e
. (32)
Poiche la relazione (32) `e lineare, trasformando le variabili nel dominio di Laplace, si
ottiene
i
e
(s)
v
e
(s)
=
K
e
1 +
e
s
, (33)
dove K
e
:=
1
R
e
`e il guadagno di statore e
e
:=
L
e
R
e
`e la costante di tempo di statore.
Analogamente, si assume che il rotore abbia una sola terminazione polare caratterizzata
da uninduttanza L
a
e da una resistenza R
a
(si veda Figura 19). Inoltre, va considerato
nel modello elettrico del rotore leetto della forza controelettromotrice e, che corrisponde
ad una dierenza di tensione indotta, proporzionale alla velocit` a di rotazione. Lequazione
associata al relativo circuito elettrico `e
v
a
(t) = L
a
d i
a
dt
+ R
a
i
a
+ e. (34)
Nuovamente, poiche la relazione (34) `e lineare, trasformando nel dominio di Laplace si
ottiene:
i
a
(s)
v
a
(s) e(s)
=
K
a
1 +
a
s
, (35)
35
Figure 19: Schema elettrico equivalente di un motore CC.
dove K
a
:=
1
R
a
`e il guadagno di rotore e
a
:=
L
a
R
a
`e la costante di tempo di rotore.
Sulla base delle propriet` a siche del motore e delle relazioni che caratterizzano linterazione
tra le quantit` a meccaniche e le quantit` a elettriche del motore, si pu` o dimostrare che le due
seguenti relazioni sussistono. Queste relazioni forniscono unespressione esplicita della forza
controelettromotrice e e della coppia meccanica T
M
erogata dal motore:
T
M
= K i
e
i
a
, (36)
e = K i
e
, (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 sullalbero
del motore. Questa coppia agisce sulla struttura meccanica, caratterizzata dallinerzia di
rotore J e dal coeciente di attrito viscoso F. Inoltre, per considerare un ambito operativo
generico, `e opportuno tener conto di una coppia di carico esercitata sullalbero del motore.
Se T
L
denota tale coppia di carico, allora si ha la seguente equazione del moto:
T
M
T
L
= J
d
dt
+ F . (38)
Analogamente al caso elettrico, anche per le equazioni meccaniche si pu` o associare una
funzione di trasferimento lineare alla relazione (38):
(s)
T
M
(s) T
L
(s)
=
K
m
1 +
m
s
, (39)
dove K
m
:=
1
F
`e il guadagno meccanico e
m
:=
J
F
`e la costante di tempo meccanica.
6.3 Motoriduttori e motori a presa diretta
Spesso (ad esempio in applicazioni di robotica), la velocit` a richiesta dalla particolare
applicazione `e troppo bassa se confrontata con la velocit` a nominale di un motore.
11
In
11
La velocit`a nominale di un motore corrisponde al picco di massima ecienza del motore stesso.
36
questo caso, vengono tipicamente inseriti degli ingranaggi, detti riduttori, tra il motore e il
carico con lo scopo di ridurre la velocit` a angolare di un fattore n tra lalbero del motore e
lasse del carico. Linsieme di motore + riduttore viene cos` denominato motoriduttore.
Oltre allincremento di attrito viscoso ed inerzia associati alla presenza delle ruote den-
tate rotanti interne al riduttore, laccoppiamento meccanico tra il carico e il motore `e sen-
sibilmente alterato dalla presenza del riduttore. Per descrivere correttamente gli eetti del
riduttore, il primo aspetto da chiarire `e legato al fatto che lattrito e linerzia non sono gli
stessi se vengono misurati allingresso o alluscita del riduttore (cio`e sullalbero del motore
o sullasse del carico, rispettivamente). Poiche siamo interessati ad una caratterizzazione
esterna dellintero blocco motoriduttore, si far` a riferimento alle quantit` a in uscita dal
riduttore (ovvero, quelle riferite allasse del carico).
Sia dunque F
G
il coeciente di attrito viscoso e J
G
linerzia interni al riduttore. Allora,
poiche la potenza erogata dal motore `e la stessa sia allingresso che alluscita del riduttore,
denominando T

M
e

la coppia e la velocit` a alluscita del riduttore, rispettivamente, si ha


T
M
= T

,
e poiche

= /n, allora T

M
= nT
M
. In sintesi, mentre la velocit` a in uscita del motoridut-
tore `e n volte minore della velocit` a dellalbero del motore, la coppia in uscita `e invece n volte
superiore a quella erogata dal solo blocco motore.
Sostituendo le precedenti espressioni nellequazione (38) e considerando gli incrementi di
attrito ed inerzia dovuti alle ruote interne al riduttore, si ottiene
12
T

M
T
L
= (J
G
+ n
2
J)
d

dt
+ (F
G
+ n
2
F)

. (40)
Confrontando le equazioni (38) e (40) si osserva che la presenza del riduttore aumenta
signicativamente linerzia e lattrito del motore dal punto di vista del carico.
Un eetto importante qui non modellato ma spesso associato alle applicazioni con mo-
toriduttori `e il gioco meccanico, causato dagli accoppiamenti tra gli ingranaggi interni del
riduttore. Il gioco meccanico impone sul motoriduttore una nonlinearit` a indesiderata che
pu` o a volte portare a fenomeni di instabilit` a. Per questa ragione, specialmente in sistemi
di alta precisione, i motori a presa diretta sono preferibili. Questi motori sono costruiti in
maniera da essere in grado di esercitare coppie sucientemente alte a bassi regimi di ve-
locit` a, cos` da non richiedere riduttore per poter agire sul carico. Tuttavia i motori CC a
presa diretta sono comunque associati a coppie limitate e non possono essere adoperati per
applicazioni 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 rappresenta
la posizione angolare del rotore (cosicche =

).
Il modello nonlineare corrisponde ad un sistema con due ingressi ed una uscita, avente
un ingresso di disturbo corrispondente alla coppia di carico T
L
e quattro variabili di stato
corrispondenti a
12
Si osservi che T
L
`e esercitata dal carico, dunque non deve essere riscalata.
37
v
e
= L
e
di
e
dt
+ R
e
i
e
K
K v
a
= L
a
di
a
dt
+ R
a
i
a

T
L
+
T
M
+
-
v
a
i
e
v
e
i
a
_
T = J
d
dt
+ F
-
Figure 20: Diagramma a blocchi nonlineare di un motore CC.
lenergia immagazzinata nellinduttanza L
e
;
lenergia immagazzinata nellinduttanza L
a
;
lenergia cinetica del rotore (associata a J);
la posizione del rotore.
Osservazione 6.1 Si osservi che il modello nonlineare del motore `e eettivamente costitu-
ito da tre relazioni lineari tra grandezze siche. Tali relazioni corrispondono alle funzioni
di trasferimento (33), (35) e (39) e sono interconnesse a mezzo di due moltiplicatori, che
rappresentano le nonlinearit` a del sistema. Numerose tecniche di controllo adottabili sul mo-
tore sono progettate con lo scopo di linearizzare il diagramma a blocchi, attraverso scelte
opportune dei due ingressi v
a
e v
e
.
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 dellintegratore di (cos-
icche lintegrale sia eettuato su

), ed inserire un blocco pari a 1/n in cascata allingresso


di disturbo T
L
. Si osservi che il ramo di retroazione `e riferito alla velocit` a dellalbero del
motore e non alla velocit` a

del carico perche il riduttore non cambia le propriet` a elettriche


del motore.
A titolo di esempio, in Figura 21 `e riportato il disegno di un semplice motore a magneti
permanenti. Nei motori a magneti permanenti, un magnete va a sostituire gli avvolgimenti
statorici, cos` che un usso magnetico costante sia automaticamente generato allinterno del
motore in una soluzione economica. Lenergia necessaria per la generazione della coppia
viene 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. Allalbero
del motore, solidale con il rotore, viene collegato un disco opaco con dei fori disposti in
posizione radiale, tanto pi` u numerosi quanto maggiore `e la risoluzione dellencoder.
Figure 22: Struttura di un encoder incrementale.
Da un lato e dallaltro 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 fori
applicati 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 `e
indicato in Figura 22.
Generalmente la geometria del disco `e del tipo riportato in Figura 22, in modo che le
zone opache e le zone trasparenti abbiano la stessa larghezza. Questo accorgimento fa s
`
i
che, posizionando le due coppie di sensori opportunamente, le forme donda in uscita dai
sensori siano del tipo indicato in Figura 23. Nella parte destra della Figura 22 `e indicata un
posizionamento dei due sensori che restituisce in uscita le forme donda di Figura 23.
Si pu` o osservare dalla Figura 23 che a seconda del verso di rotazione del motore, lo stato
logico dei due segnali provenienti dai sensori `e diverso: in corrispondenza del fronte di salita
del segnale A infatti, in un caso il segnale B `e alto, nellaltro caso `e basso. Questa propriet` a
permette di decodicare con successo non solo la rotazione ma anche il verso di rotazione,
in base alle letture fatte dal sensore. Tale decodica `e in generale eettuata tramite un
39
Figure 23: Segnali dellencoder incrementale corrispondenti a rotazioni orarie e anti-orarie.
semplice contatore UP/DOWN che misura gli spostamenti incrementali del motore (da cui
il nome incrementale dato a questo tipo di encoders).
A causa dellarbitrariet` a della posizione iniziale dellencoder e dello stato iniziale del
contatore di decodica, tutti i dispositivi dotati di encoder incrementali prevedono la gener-
azione di un segnale, detto di home (ovvero, casa) che notica che il dispositivo su cui
`e montato lencoder si trova in una posizione di riferimento nota e univoca. In presenza del
segnale di home, il contatore di decodica pu` o essere inizializzato a zero per trasformare il
sensore 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 da
ogni canale per angolo giro. Tuttavia, nel caso (molto frequente, peraltro) in cui lencoder `e
montato sullalbero posteriore di un motore con riduttore, la risoluzione viene moltiplicata
per il fattore di riduzione N, consentendo di avere misure ad alta precisione con dispositivi
di costo relativamente basso.
In numerose applicazioni, la lettura incrementale del movimento dellencoder viene fatta
tramite un circuito logico pi` u complesso di un semplice contatore, che `e in grado di rilevare
tutti i fronti (sia di salita che di discesa) delle forme donda in Figura 23. Conseguente-
mente, la risoluzione dellencoder viene quadruplicata, con evidenti vantaggi commerciali e
implementativi.
40