Sei sulla pagina 1di 11

4 Cinematica diretta dei robot

In questa sezione verrà fornito un metodo costruttivo per caratterizzare la posizione del
punto terminale di un manipolatore (detto anche effettore) 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à. Dunque, per un manipolatore con N gradi di libertà ci sono
N coppie giunto-link con il link 0 (non considerato parte del robot) ancorato a una base
di appoggio dove di norma è stabilito un sistema di coordinate inerziale; all’ultimo link è
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 è
connesso al più a due altri link perché 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
L’asse di un giunto si definisce come l’asse di rotazione o di traslazione individuato dal
movimento del giunto. Questo asse avrà 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 è connesso, ripetiamo, al massimo ad altri due (cioè il link i − 1 e il link i + 1);
pertanto, sono stabiliti due assi del giunto per ambedue le estremità della connessione. Il
significato dei link, considerati in un’ottica cinematica, è che essi mantengono una config-
urazione fissa tra i loro giunti che può essere caratterizzata da due parametri a i e αi . Il
parametro ai rappresenta la distanza più breve misurata lungo la normale comune tra gli
assi dei giunti (cioè gli assi zi−1 e zi rispettivamente per i giunti i e i + 1), e αi è l’angolo
compreso tra gli assi dei giunti su un piano perpendicolare ad a i . Cosı̀ ai e αi possono essere
chiamati, rispettivamente, lunghezza e angolo di twist del link i. Essi sono associati alla
struttura del link.
Dato l’asse zi , la posizione relativa dei due link adiacenti i − 1 e i è data da d i , che è la
distanza misurata lungo l’asse del giunto fra la normale proveniente dall’asse del giunto i − 1
e la normale che va al giunto i + 1 (ovvero, il segmento ai ). L’angolo θi del giunto è l’angolo
formato dalle 2 normali, misurato su un piano ortogonale all’asse 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: 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 configurazione
cinematica di ciascun anello della catena articolata del braccio. Si enfatizza che questi
parametri possono essere considerati a coppie: (ai , αi ), che dipendono dalla struttura del
link, 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 quattro
parametri ai , αi , di e θi , si può 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à utile per il calcolo della cinematica diretta del robot,
ovvero della funzione che trasforma le coordinate del sistema di effettore (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 i−1 Ti ∈ R4×4 che rappresenta il
sistema di coordinate del link i rispetto al riferimento del link precedente i − 1. Pertanto,
attraverso trasformazioni sequenziali, l’estremità dell’effettore, espresso nell’ultimo sistema
di coordinate, può essere trasformata ed espressa nelle “coordinate di base” che costituiscono
il sistema di riferimento inerziale di questo sistema dinamico.
Come già accennato, il robot è 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). Per
ognuno di questi N sistemi di riferimento (dove N sono i gradi di libertà della catena cine-
matica), si danno di seguito delle regole di tracciamento in termini di: 1) posizione dell’asse
zi ; 2) posizione del centro oi ; 3) posizione dell’asse xi . La posizione dell’asse yi è infine
determinabile 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 ad


entrambi gli assi (che in effetti costituisce la loro distanza) e scegliere il centro o i
come l’intersezione del segmento ai con l’asse zi ;
• se gli assi zi−1 e zi sono paralleli, poiché ci sono infiniti segmenti ai di minima
distanza tra zi−1 e zi , scegliere il centro oi arbitrariamente (a volte è comodo
posizionarlo allineato con oi−1 );
• se gli assi zi−1 e zi sono secanti, scegliere il centro oi al punto di intersezione dei
due 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 perpendicolare
al 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 (ad
esempio, la punta di un trapano);

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

Si osservi che in un certo numero di situazioni, la procedura appena definita non dà
indicazioni precise sul posizionamento dei sistemi di riferimento. In particolare, ciò accade
nei seguenti casi:

• Per la terna 0, poiché solo l’asse z0 è fissato, si può scegliere liberamente sia o0 che x0 .

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

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

27
4.3 Trasformazione omogenea associata ad un link
Stabilito il sistema di coordinate di D-H per ogni link, si può 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 nell’Osservazione 3.1, sovrapponendo
il sistema di riferimento (0xyz)i al sistema di riferimento (0xyz)i−1 , bisogna effettuare le
seguenti 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 punto
di 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 posizione
originaria;
4. ruotare intorno all’asse xi di un angolo pari ad αi per portare l’asse zi 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 di ] e Tz,θi , rispettivamente. Le
ultime due trasformazioni, sono invece riferite al sistema di riferimento i e corrispondono
alla postmoltiplicazione per le matrici Ttr,[ai 0 0] e Tx,αi , rispettivamente. In sintesi, la trasfor-
mazione i−1 Ti 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,θi Ttr,[0 0 di ] Ttr,[ai 0 0] Tx,αi , e risulta essere:
i−1
Ti = Tz,θi Ttr,[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 matrice
i−1
Ti è calcolata esplicitamente.
Poiché la ((22) è di valore generale, essa può essere applicata iterativamente sostituendo
i dati della Tabella 1 per ottenere in maniera immediata la matrice 0 Te 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 i−1 Ti e si semplificano le moltiplicazioni
4. Si moltiplicano tutte le matrici ricavate al punto precedente per ricavare la matrice
finale:
0
p0 = Te pe
0 (23)
= T1 1 T2 · · · i−1
Ti · · · N −1
TN N Te pe .

28
Tale procedura presenta un solo punto che può risultare non di immediata facilità, costitu-
ito dalla estrapolazione dei parametri di D-H in base alla posizione delle terne di riferimento,
che è un’operazione prettamente di tipo geometrico. Si tenga peraltro presente che gli angoli
di giunto θi per i giunti rotazionali e gli offset di giunto di per i giunti prismatici, non sono
necessariamente coincidenti con gli angoli geometrici scelti per descrivere la configurazione
del robot. Dunque, riportare tali angoli nella tabella di D-H senza aver verificato questa
coincidenza, può portare ad errori nel calcolo della cinematica globale. Questo concetto è
facilmente verificabile riflettendo sul fatto che la definizione delle coordinate geometriche di
un robot è arbitraria, e che, necessariamente, scelte diverse degli angoli geometrici, devono
corrispondere a opportune differenze nella matrice di cinematica diretta per non modificare
il risultato finale (la geometria del robot è sempre la stessa).
Nell’osservazione seguente è indicato un possibile metodo pratico per la determinazione
dei parametri di D-H.

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

4.4 Spazio dei giunti e spazio operativo


Come si è visto nei paragrafi precedenti, l’equazione cinematica diretta di un manipolatore
consente di esprimere la posizione e l’orientamento della terna utensile di un robot rispetto
alla terna di base, in funzione delle variabili di giunto.
Nello specificare il compito da far eseguire all’organo terminale del manipolatore sorge la
necessità di assegnare posizione e orientamento della terna utensile, eventualmente in fun-
zione del tempo (traiettoria). Mentre per la posizione si può procedere in maniera semplice,
specificare l’orientamento mediante una matrice di rotazione risulta difficile in quanto bisogna
garantire che le nove componenti soddisfino, istante per istante, i vincoli di ortonormalità.
Il problema della descrizione dell’orientamento dell’organo 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 l’orientamento.
Si può pertanto individuare la posizione con un numero minimo di coordinate definito
dalla geometria della struttura e si può specificare l’orientamento 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). È in tal

29
modo possibile descrivere la postura del manipolatore mediante il vettore
 
p
x= ,
φ

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


Tale rappresentazione di posizione e orientamento consente la descrizione del compito
assegnato all’organo terminale in termini di un numero di parametri strutturalmente in-
dipendenti tra di loro. Lo spazio in cui è definito il vettore x è quello rispetto al quale viene
tipicamente specificata l’operazione richiesta al manipolatore; pertanto esso viene denom-
inato spazio operativo. Con spazio dei giunti (o spazio delle configurazioni), invece, ci si
riferisce allo spazio in cui è definito il vettore delle variabili di giunto:
 
q1
q =  ...  ,
 
qn

dove qi = θi per un giunto rotazionale e qi = di per un giunto prismatico. Tenendo conto


della dipendenza di posizione e orientamento dalle variabili di giunto, l’equazione cinematica
diretta può 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.
È 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ù generali, di uno spazio operativo esadimensionale, il calcolo delle tre componenti della
funzione φ(q) non è 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 definisce spazio di lavoro di un manipolatore la regione descritta dall’origine
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 è la regione che l’origine della terna utensile può descrivere
assumendo differenti orientamenti, mentre il primo è la regione che l’origine della terna uten-
sile può raggiungere con almeno un orientamento. Ovviamente lo spazio di lavoro destro è
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 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 è dato da:
q = [ θ1 θ2 d3 θ4 ], (25)
ed i parametri cinematici che caratterizzano il robot sono:
θ d l α
1 θ1 d1 `1 0
2 θ2 0 `2 +π
3 0 d3 0 0
4 θ4 0 0 0
Le matrici di trasformazione, tenendo conto della (22), sono date da:
 
cos θ4 − sin θ4 0 0
3
 sin θ4 cos θ4 0 0 
T4 =  0
, (26)
0 1 0 
0 0 0 1
 
1 0 0 0
2
 0 1 0 0 
T3 =  0 0 1 d3  ,
 (27)
0 0 0 1

31
 
cos θ2 sin θ2 0 `2 cos θ2
1
 sin θ2 − cos θ2 0 `2 sin θ2 
T2 = 
 0
, (28)
0 −1 0 
0 0 0 1
 
cos θ1 − sin θ1 0 `1 cos θ1
0
 sin θ1 cos θ1 0 `1 sin θ1 
T1 = 
 0
. (29)
0 1 d1 
0 0 0 1
La matrice di trasformazione mano-base, cioè la 0 T4 , è data da:
0 0
T4 = T 1T 2T 3T (30)
1 2 3 4 
C12−4 S12−4 0 `1 C1 + `2 C12
 S12−4 −C12−4 0 `1 S1 + `2 S12 
= 
 0
, (31)
0 −1 d 1 − d3 
0 0 0 1
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 la
funzione 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 è dunque data da:
x0 = `1 C1 + `2 C12 ,
y0 = `1 S1 + `2 S12 ,
z0 = 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 nell’Esempio 4.1, il posizionamento del centro dei sistemi di
riferimento 1, 2 e 3 rispettivamente sui giunti 2, 3 e 4 è 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 l’alto. Successivamente, si
verifichi (algebricamente o numericamente) che la matrice di cinematica diretta risultante è
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