Sei sulla pagina 1di 47

Scuola Politecnica e delle Scienze di Base

Corso di Laurea Magistrale in Ingegneria dell’Automazione e Robotica

Elaborato di Fondamenti di Robotica

Modellistica, pianificazione di una


traiettoria e controllo di un robot
SCARA
Anno Accademico 2020/21

Docente
Ch.mo Prof. Bruno Siciliano

Candidati
Mario Armano P38000009
Simone Contento P3800024
Indice

Introduzione ii

1 Modellistica 1
1.1 Modello Cinematico . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Cinematica Differenziale . . . . . . . . . . . . . . . . . . . . 3
1.3 Modello Dinamico . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Ellissoidi di Manipolabilità . . . . . . . . . . . . . . . . . . . 8

2 Pianificazione della Traiettoria 13


2.1 Inversione Cinematica . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 CLIK con Inversa dello Jacobiano . . . . . . . . . . . 16
2.1.2 CLIK con Trasposta dello Jacobiano . . . . . . . . . . 18
2.1.3 CLIK con Pseudo-Inversa dello Jacobiano . . . . . . . 21
2.1.4 CLIK del Secondo Ordine . . . . . . . . . . . . . . . . 25

3 Controllo 31
3.1 Controllo a Dinamica Inversa . . . . . . . . . . . . . . . . . . 31
3.2 Controllo Robusto . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Controllo Adattativo . . . . . . . . . . . . . . . . . . . . . . 40

i
Introduzione
Il manipolatore SCARA, acronimo di “Selective Compliance Assembly Ro-
bot Arm”, è molto diffuso in ambito industriale, ed adottato generalmente
per l’ultima fase del processo di assemblaggio (montaggio verticale).
Nel seguente elaborato saranno analizzate e verificate le sue caratteristi-
che, mettendo in pratica i principali argomenti teorici trattati nel corso di
Fondamenti di Robotica.
Nel primo capitolo è stata modellata la geometria del robot, partendo
dai dati forniti dalla traccia dell’elaborato. E’ stata ricavata la cinematica
diretta, dalla quale si evince la caratteristica dello SCARA di permettere il
movimento nello spazio X-Y-Z e la rotazione intorno al solo asse Z.
Tramite lo strumento algebrico degli ellissoidi di manipolabilità è stata inol-
tre analizzata la destrezza in corrispondenza di posizioni significative.
Il secondo capitolo è dedicato alla pianificazione di una traiettoria lungo
un percorso caratterizzato da almeno 10 punti all’interno dello spazio di la-
voro, scelti pensando di voler assegnare un task di scrittura al manipolatore.
La traiettoria ottenuta è stata successivamente riportata nello spazio dei
giunti tramite differenti versioni dell’algoritmo di inversione cinematica a
ciclo chiuso CLIK, confrontandone i risultati in termini di efficienza e com-
plessità computazionale.
Nell’ultimo capitolo sono stati utilizzati i riferimenti ottenuti dal capito-
lo precedente per implementare due algoritmi di controllo del manipolatore:
un algoritmo di controllo robusto, supponendo di non conoscere esattamen-
te il modello dinamico del manipolatore o di volerne utilizzare una versione
semplificata, ed un algoritmo di controllo adattativo supponendo possano es-

ii
Elaborato Fondamenti di Robotica

serci variazioni dei parametri dinamici, in particolare quelli relativi all’organo


terminale.
Per effettuare tale studio sul robot manipolatore SCARA sono stati utiliz-
zati i software Matlab e Simulink sfruttando il “Robotic toolbox for Matlab”
sviluppato da Peter Corke.

iii
Capitolo 1

Modellistica
1.1 Modello Cinematico
Il manipolatore SCARA è dotato di quattro gradi di libertà, forniti da tre
giunti rotoidali ed uno prismatico.
Questi sono stati modellati in Matlab attraverso l’utilizzo del “Robotic tool-
box” sviluppato da Peter Corke, specificando per ogni Link i rispettivi pa-
rametri di D-H.
L’origine della terna 0 è stata posta in quota per comodità e non coincide con
la terna di base. Di conseguenza si può definire la matrice di trasformazione
omogenea T0b costituita dalla semplice traslazione d0 = 1 lungo l’asse z0 . La
terna relativa all’end-effector è invece stata scelta coincidente con la terna 4.
Seguendo la procedura di Denavit-Hartemberg sono state disposte le
terne di riferimento solidali ai singoli link:

1
Elaborato Fondamenti di Robotica

Figura 1.1: Posizionamento Terne

Si riporta la conseguente tabella dei parametri di DH:

j θ d a α
1 q1 0 0.5 0
2 q2 0 0.5 π
3 0 q3 0 0
4 q4 0 0 0

Con i parametri in tabella si ricava un metodo sistematico per costruire


la matrice di trasformazione fra due terne successive.
Iterando questo passaggio tra tutte le terne, è possibile comporre la matrice
di trasformazione T40 dal primo all’ultimo giunto post-moltiplicando le ma-
trici nella forma omogenea ottenute in precedenza.
Ricordiamo che per ricavare la posa dell’end effector rispetto alla terna ba-
se, la matrice di trasformazione ottenuta va premoltiplicata per la matrice
costante T0b .
La matrice cosi ottenuta ci da la possibilità di ottenere la cinematica diretta.

2
Elaborato Fondamenti di Robotica

La matrice di trasformazione omogenea ottenuta è 4x4:


 
−s124 c124 0 a2 c12 + a1 c1
 
c 124 s 124 0 a s
2 12 + a s
1 1
Teb = 


 0
 0 −1 1 − d3


0 0 0 1

Si noti che, data la semplicità del manipolatore considerato, le relazioni


cinematiche dirette sono ottenibili in forma chiusa attraverso le seguenti
relazioni:
   
! px   a1 c1 + a2 c12 
pe py  a1 s1 + a2 s12 
x= = = 
Φ pz   1 − d3 
   
Φ θ1 + θ2 + θ4

1.2 Cinematica Differenziale


Avendo costruito la tabella di D-H è possibile ricavare semplicemente lo
Jacobiano geometrico attraverso i parametri noti in essa contenuti:
" #
z0 × pe z1 × pe − p1 z2 z3 × pe − p3
J=
z0 z1 0 z3
Ottenendo:

 
−sin(q1 + q2 )/2 − sin(q1 )/2 −sin(q1 + q2 )/2 0 0
 
 cos(q1 + q2 )/2 + cos(q1 )/2 cos(q 1 + q 2 )/2 0 0 
 
 0 0 −1 0 
J =
 


 0 0 0 0 


 0 0 0 0 
1 1 0 −1

3
Elaborato Fondamenti di Robotica

Si noti come la procedura sistematica ottenga uno Jacobiano 6x4, calco-


lando tutti i contributi.
Tuttavia è evidente che non è possibile usare i giunti per imprimere rotazio-
ni intorno all’asse x ed all’asse y (riga 4 e riga 5 nulle). È possibile quindi
considerare solo le righe 1,2,3,6, ottenendo lo Jacobiano 4x4.

 
−sin(q1 + q2 )/2 − sin(q1 )/2 −sin(q1 + q2 )/2 0 0
 
 cos(q1 + q2 )/2 + cos(q1 )/2 cos(q 1 + q 2 )/2 0 0 
J = 

 0 0 −1 0 

1 1 0 −1

Si noti infine che lo stesso Jacobiano ridotto è ottenibile per derivazione


delle relazioni in forma chiusa della cinematica diretta.
Essendo questo Jacobiano partizionato a blocchi, risulta semplice indi-
viduare le singolarità. E’ possibile notare che il primo blocco 2x2 è uguale
a quello del manipolatore planare a due bracci. Infatti lo SCARA fino al
secondo giunto presenta una struttura equivalente ad esso e ne eredita le
singolarità.
Il manipolatore si trova quindi in singolarità cinematica quando il secondo
angolo è pari a 0 o a π, ovvero quando primo e secondo link sono allineati.

1.3 Modello Dinamico


In questa prima fase di modellazione è utile ricavare anche il modello dina-
mico del manipolatore, che sarà fondamentale nell’ultimo capitolo dedicato
al controllo.
L’obiettivo della dinamica è quello di analizzare il moto di un corpo andando
a considerare le cause che l’hanno prodotto.
Vogliamo arrivare attraverso la formulazione di Lagrange all’equazione del
moto del manipolatore in funzione delle forze e momenti agenti su di esso.
La relazione espressa nelle variabili di giunto è la seguente:

4
Elaborato Fondamenti di Robotica

B(q)q̈ + C(q, q̇)q̇ + Fv q̇ + g(q) = τ

Dove B(q) è la matrice di inerzia, C rappresenta la matrice delle forze


centrifughe e di Coriolis calcolata con la fattorizzazione dei simboli di Chri-
stoffel del primo tipo.
Fv è la matrice diagonale dei coefficienti di attrito viscoso e g è il vettore
delle forze gravitazionali agenti sul manipolatore.
Come fatto per la cinematica, può essere utile notare che, fino al secondo
giunto, il robot SCARA risulta equivalente ad un manipolatore planare a
due bracci.
La potenza del metodo di Lagrange, basato sulla possibilità di aggregare con-
tributi energetici dei vari organi meccanici, permette quindi di semplificare i
calcoli, valutando l’energia totale aggiungendo il contributo dell’ultimo link
al modello dinamico del manipolatore planare.
Entrambi i contributi sono calcolabili facilmente attraverso la procedura si-
stematica, avendo posizionato fin dall’inizio opportunamente le terne.
Tutte le matrici necessarie sono state valutate tramite calcolo simbolico di
Matlab.
La matrice di inerzia è ottenuta tramite la formula:

n
(l )T (l ) (l )T (l )
X
B(q) = (mli JP i JP i + JO i Ri Ilii RiT JO i +
k=1
(mi)T (mi) (mi)T mi T (mi)
+ mmi JP JP + JO Rmi Imi Rmi JO ) (1.1)

Dalla quale si ottengono i contributi:

b11 = Il1 + Il2 + Il4 + Im1 + Im2 + Im3 + Im4 + ml1 /16+
+ 5ml2 /16 + ml4 /2 + ml2 cos(q2 )/4 + ml4 cos(q2 )/2 (1.2)

5
Elaborato Fondamenti di Robotica

b12 = Il2 +Il4 +Im2 +Im3 +Im4 +ml2 /16+ml4 /4+ml2 cos(q2 )/8+ml4 cos(q2 )/4

b13 = 50Im3

b14 = Il4 + 20Im4

b21 = Il2 +Il4 +Im2 +Im3 +Im4 +ml2 /16+ml4 /4+ml2 cos(q2 )/8+ml4 cos(q2 )/4

b21 = Il2 + Il4 + Im2 + Im3 + Im4 + ml2 /16 + ml4 /4

b23 = 50Im3

b24 = Il4 + 20Im4

b31 = 50Im3 = b32

b33 = 2500Im3 + ml4

b34 = 0

b41 = Il4 + 20Im4 = b42

b43 = 0

b44 = Il4 + 400Im4

Si può notare che nella matrice d’inerzia solo i termini b11 ,b12 ,b21 dipendo-
no dalla configurazione (dipendenza dalla variabile di giunto q2 ), ne consegue
che solo tre elementi della matrice C saranno diversi da 0:

c112 = −ml2 a1 l2 sin(q2 ) − ml3 a1 a2 sin(q2 ) = k

c122 = k

c211 = −k

ottenendo:  
k θ˙2 k(θ˙1 + θ˙2 ) 0 0
−k θ˙1
 
0 0 0
C(q, q̇) = 
 0

 0 0 0
0 0 0 0

6
Elaborato Fondamenti di Robotica

Per quanto concerne invece i termini gravitazionali, è di semplice intui-


zione che questi riguardano solamente il giunto 3, con l’espressione:

g3 = (ml3 + ml4 )g

Si ottengono dunque le componenti di attrito e di gravità come:


 
2
Fm1 kr1 0 0 0
2
 
 0 F m2 kr2 0 0 
Fv = 
 0 2

 0 Fm3 kr3 0  
2
0 0 0 Fm4 kr4
h iT
g = 0 0 g(ml3 + ml4 ) 0

Abbiamo ricavato tutti gli elementi del modello dinamico mediante la


formulazione di Lagrange, esso presenta due proprietà notevoli:
1) la matrice N = Ḃ − 2C è antisimmetrica, annulla quindi qualsiasi forma
quadratica se gli elementi di C sono stati scelti attraverso la fattorizzazione
di Christoffel.
2) il modello dinamico risulta essere lineare rispetto ad un set di parametri
dinamici. Ciò vuol dire che possiamo riscrivere il modello secondo la seguente
equazione:

τ = Y (q, q̇, q̈)π

Entrambe queste proprietà sono fondamentali per il controllo, in partico-


lar modo per quello di tipo adattativo, che si fonda sulla teoria della passività
e sfrutta fortemente la linearità.
Per utilizzare quest’ultima è necessario fare lo sforzo preliminare di ricavare
la matrice Y ed il vettore di parametri π che utilizzeremo nel seguito.
In pratica è stato riscritto il modello dinamico del manipolatore in funzio-
ne di un vettore al cui interno sono raggruppati i diversi parametri dinamici

7
Elaborato Fondamenti di Robotica

a disposizione:

π = (ml1 Il1 Im1 Fm1 ml2 Il2 Im2 Fm2 ml3 Il3 Im3 Fm3 ml4 Il4 Im4 Fm4 )T

Con matrice dei regressori Y che assume forma triangolare alta.


Non si è ritenuto necessario appesantire la trattazione con le lunghe formule
estese del modello dinamico e del regressore.
Si è invece preferito soffermarsi sui vantaggi di adottare la procedura siste-
matica, che fornisce gli strumenti per ricavare il modello, e sulla potenza dei
risultati notevoli ottenuti.

1.4 Ellissoidi di Manipolabilità


Attraverso gli ellissoidi di velocità e forza è possibile analizzare la propen-
sione del manipolatore SCARA a sviluppare rispettivamente velocità o forze
all’organo terminale in una determinata direzione.
Per usare questo strumento è necessario considerare il manipolatore frozen
in una specifica postura, per cui sono state scelte le seguenti configurazioni
significative:
q1 = [0, 90, 0.7, 0]

q2 = [0, 1, 0.7, 0]

q3 = [0, 179, 0.7, 0]

Corrispondenti alla situazione di braccio e avambraccio rispettivamente


perpendicolari, completamente stesi (θ2 quasi 0), e completamente raccolti
l’uno sull’altro (θ2 quasi π)
Le posture scelte permettono di ribadire che la manipolabilità, calcolabile
come: q
w = det(JJ T )

E caratterizzante l’area dell’ellissoide, dipende solo dal secondo giunto:


è massima quando questo vale π/2 (configurazione a massima destrezza), e

8
Elaborato Fondamenti di Robotica

tende velocemente a zero avvicinandosi alle configurazioni singolari (0 e π).


Per la rappresentazione degli ellissoidi è stata utilizzata l’apposita funzione
del robotic toolbox.
Nelle figure viene rappresentato in rosso l’ellissoide di forza mentre in blu
quello di velocità.

Figura 1.2: Ellissoidi della configurazione 1

Figura 1.3: Ellissoidi configurazione 2

9
Elaborato Fondamenti di Robotica

Figura 1.4: Ellissoidi configurazione 3

Più ci si avvicina alla configurazione di singolarità, più gli ellissoidi tendo-


no ad allungarsi, fino ad arrivare a degenerare in una retta, questo fa capire
che in singolarità il manipolatore perde la possibilità di muoversi lungo al-
cune direzioni.
Gli ellissoidi di manipolabilità forniscono inoltre un utile strumento per as-
segnare la postura più adatta per compiere un determinato task.
Volendo assegnare il compito di scrivere due lettere, al manipolatore sarà ri-
chiesto di avere un controllo fine sulla velocità lungo la direzione di scrittura
e sulla forza lungo l’asse verticale.
Non potendo variare l’ellissoide di forza lungo l’asse z, si può pensare co-
munque di progettare la geometria del percorso in modo tale da muoversi
principalmente nelle direzioni “corte” dell’ellissoide di velocità.
A questo scopo i segmenti che compongono la M sono stati leggermente in-
clinati, mentre si è cercato di muoversi in direzione radiale soprattutto in
corrispondenza dei punti di via, e nell’incontro tra le due circonferenze.
Sono quindi riportati gli ellissoidi relativi a tre ulteriori configurazioni signi-
ficative lungo il percorso, per evidenziarne la manipolabilità:

10
Elaborato Fondamenti di Robotica

Figura 1.5: Ellissoidi configurazione 4

Figura 1.6: Ellissoidi configurazione 5

11
Elaborato Fondamenti di Robotica

Figura 1.7: Ellissoidi configurazione 6

12
Capitolo 2

Pianificazione della
Traiettoria
La traiettoria è stata pianificata lungo un percorso composto da 10 punti, in
modo da controllare successivamente il robot manipolatore.
In primo luogo è stato assegnato il task, che consiste in un’operazione di
scrittura. In particolare si è disegnato il percorso geometrico che permette
di tracciare sul piano le lettere M e S, iniziali dei nomi Mario e Simone, all’in-
terno dello spazio di lavoro. Quest’ultimo è costituito dal cilindro di raggio
1 metro ma, volendo evitare le singolarità, si è racchiuso l’intero percorso
all’interno di un cilindro con raggio interno di 0, 1 ed esterno di 0, 8.
La traiettoria parte con il manipolatore in una configurazione di riposo
e con l’end effector sollevato rispetto al piano di scrittura.
Successivamente tramite un tratto lineare si porta l’organo terminale sul
piano di scrittura (z = 0, 5)per tracciare la M tramite 4 tratti lineari che
prevedono il passaggio per 3 punti di via.
Per scrivere la seconda lettera la traiettoria prevede di alzare l’organo termi-
nale dal piano e riportarlo su quest’ultimo attraversando un ulteriore punto
di via.
A questo punto l’end effector traccia la S percorrendo due tratti di circonfe-
renza. Infine si riporta il manipolatore nella configurazione di partenza con

13
Elaborato Fondamenti di Robotica

un ultimo tratto lineare.

Figura 2.1: Traiettoria nello spazio 3D

Figura 2.2: Traiettoria sul piano xy

Per la legge oraria è stata utilizzato un profilo di velocità trapezoidale


per ogni tratto, ottenuto andando ad assegnare il tempo finale di 1s e la

14
Elaborato Fondamenti di Robotica

velocità di crociera di q = 3(qf − qi )/2tf . Il passaggio per i punti di via è


stato ottenuto anticipando le rispettive traiettorie di un dt pari a 0.2s.
Il polinomio interpolatore cosi ottenuto è stato utilizzato per generare le
primitive di percorso per i tratti lineari e di circonferenza.
La traiettoria finale nello spazio operativo è riportata di seguito, in termini
di posizione, velocità e accelerazioni in funzione del tempo.

Figura 2.3: Grafici posizione,velocità e accelerazione

Nei grafici si possono notare i tipici andamenti di posizione, velocità ed


accelerazioni dovute ad interpolazione trapezoidale.
Grazie alla presenza dei punti di via, inoltre, la traiettoria termina in anticipo
rispetto a quanto avrebbe fatto passando per tutti i punti specificati.

2.1 Inversione Cinematica


La traiettoria è stata generata nello spazio operativo, è stato fatto quindi uso
di algoritmi per l’inversione cinematica così da riportare i riferimenti nello
spazio dei giunti in termini di posizioni, velocità e anche accelerazioni.
Tra gli algoritmi utilizzati ci sono: CLIK con inversa, con trasposta e con
pseudo-inversa ed infine anche il CLIK del secondo ordine.
Si fa uso di questi algoritmi perché integrando numericamente si genera un

15
Elaborato Fondamenti di Robotica

errore che va man mano ad accumularsi. Grazie all’uso degli algoritmi a


ciclo chiuso che tengono conto dell’errore è possibile risolvere il problema
precedente e riuscire ad ottenere un inseguimento di traiettoria migliore.
L’uscita del CLIK del secondo ordine, corrispondente alla traiettoria nello
spazio dei giunti, sarà successivamente presa come riferimento per il control-
lo.

2.1.1 CLIK con Inversa dello Jacobiano


Questo algoritmo fa utilizzo della matrice inversa dello Jacobiano analitico
per linearizzare la dinamica dell’errore. Come detto in precedenza, grazie
alla struttura del manipolatore SCARA, lo Jacobiano analitico risulta essere
uguale allo jacobiano geometrico. Ricordiamo che lo Jacobiano a cui faremo
riferimento è la matrice 4x4 che risulta essere quadrata e quindi invertibile
quando non è in condizione di singolarità.
Per la simulazione è stata usata la seguente matrice dei guadagni K:
 
50 0 0 0
 
0 50 0 0
K=
0

 0 50 0 
0 0 0 50

Figura 2.4: Errori px,py,pz e orientamento

16
Elaborato Fondamenti di Robotica

Figura 2.5: Norma dell’errore

Dai grafici relativi all’errore si evince che, nonostante i guadagni molto


bassi del controllore, l’errore si mantiene contenuto per tutta la durata della
traiettoria, con una norma dell’ordine di 10−5 .
Si noti che l’ orientamento mantiene un errore residuo, dovuto ad appros-
simazione numerica nel calcolo degli angoli di riferimento e che è possibile
ridurre aumentando i guadagni del controllore.
Tuttavia è stato preferito evidenziare come si ottengano ottimi risultati con
valori contenuti della matrice K. Va comunque rimarcata la complessità
computazionale dovuta all’inversione dello Jacobiano.
Di seguito sono invece riportati i valori ottenuti di posizione e velocità
nello spazio dei giunti:

17
Elaborato Fondamenti di Robotica

Figura 2.6: Posizione giunti

Figura 2.7: Velocità giunti

2.1.2 CLIK con Trasposta dello Jacobiano


Fare uso della trasposta dello Jacobiano, anziché l’inverso, ha il beneficio di
ridurre l’onere computazionale del calcolatore.
Ovviamente tutto questo ha un costo in termini dell’errore di posizione
sull’end-effector che risulta decisamente più accentuato rispetto ai risulta-

18
Elaborato Fondamenti di Robotica

ti ottenuti con il CLIK con Inversa dello Jacobiano.


Utilizzando la stessa matrice dei guadagni, infatti:
 
50 0 0 0
 
0 50 0 0
K=
0

 0 50 0 
0 0 0 50

Figura 2.8: Norma Errore

In una prima simulazione è stata utilizzata una matrice di guadagni pari


a quella utilizzata per l’algoritmo con l’inversa dello Jacobiano, per poter
fare un confronto. Se dal grafico precedente è evidente l’aumento dell’errore,
che sale addirittura di diversi ordini di grandezza, nel grafico seguente risulta
chiara l’inefficacia per quanto riguarda l’inseguimento della traiettoria.

19
Elaborato Fondamenti di Robotica

Figura 2.9: Traiettoria desiderata vs effettiva

Le prestazioni possono essere migliorate agendo sulla matrice dei guada-


gni, utilizzando valori almeno di un ordine di grandezza superiore:
 
800 0 0 0
 
 0 800 0 0 
K=
 0

 0 500 0 
0 0 0 500

Figura 2.10: Errori px,py,pz

20
Elaborato Fondamenti di Robotica

Figura 2.11: Norma Errore

Gli andamenti evidenziano come l’algoritmo con inversa sia in grado di


raggiungere precisioni maggiori, per quanto sia computazionalmente oneroso;
l’algoritmo con la trasposta invece si presta bene alla regolazione. Si nota
che per ottenere errori quasi comparabili, il guadagno settato nell’algoritmo
con la trasposta dello Jacobiano e di un ordine di grandezza maggiore.

2.1.3 CLIK con Pseudo-Inversa dello Jacobiano


Questo algoritmo fa uso della pseudo inversa dello jacobiano ciò vuol dire
che il manipolatore a cui si fa riferimento deve essere ridondante.
In realtà il manipolatore SCARA a cui noi stiamo facendo riferimento non
presenta gradi di libertà in eccesso.
Il modo per ottenere la ridondanza risulta essere quello di rilassare un vin-
colo su una variabile dello spazio operativo così da avere un grado di libertà
disponibile. Quest’ultimo è stato utilizzato per compiere il task secondario
di ottimizzazione dell’indice di manipolabilità lungo la traiettoria.
Avendo già analizzato che la destrezza del manipolatore dipende dalle sin-
golarità relative al posizionamento ed in particolare dalla configurazione del
solo secondo giunto, la componente scelta è quella relativa alla traiettoria

21
Elaborato Fondamenti di Robotica

lungo l’asse x.
Lo Jacobiano cui fare riferimento sarà quindi una matrice rettangolare bas-
sa (m = 3 righe e n = 4 colonne) ottenuto eliminando la prima riga dallo
Jacobiano precedente.

 
cos(q1 + q2 )/2 + cos(q1 )/2 cos(q1 + q2 )/2 0 0
J = 0 0 −1 0 
 

1 1 0 −1

Il manipolatore può sfruttare tale ridondanza per riconfigurarsi in una


posizione più destra ed allontanarsi da configurazioni singolari.

Figura 2.12: Indice manipolabilità pseudoinversa vs pseudoinversa senza


moto aggiuntivo

22
Elaborato Fondamenti di Robotica

Figura 2.13: Indice di manipolabilità CLIK con inversa di J

Nelle figure precedenti è stata tracciata la misura della manipolabilità in


funzione del tempo.
Il primo grafico si riferisce all’implementazione dell’algoritmo CLIK con pseu-
doinversa dello Jacobiano, e confronta il caso in cui sia sfruttata la ridon-
danza aggiungendo una velocità q˙0 che si mappa nel nullo dello Jacobiano,
rispetto al caso in cui non viene usata.
Si può notare come l’indice di manipolabilità assuma valori che si tengono
più lontani dallo zero, che costituisce il valore in singolarità.
È inoltre riportato l’indice di manipolabilità relativo al CLIK con inversa
dello Jacobiano.
Di seguito sono riportate le prestazioni dell’algoritmo con pseudoinversa dello
Jacobiano in termini dell’errore:

23
Elaborato Fondamenti di Robotica

Figura 2.14: Errore py,pz e orientamento

Figura 2.15: Norma dell’errore

L’errore relativo alle tre componenti dello spazio operativo risulta para-
gonabile a quello ottenuto con l’inversa dello Jacobiano, sintomo del fatto che
il moto aggiuntivo mappato nel nullo dello Jacobiano non influisce sul task
principale. La norma dell’errore, riportata nel secondo grafico, si mantiene
nell’ordine di 10−5 .

24
Elaborato Fondamenti di Robotica

Figura 2.16: Traiettoria nello spazio dei giunti

Figura 2.17: Velocità nello spazio dei giunti

2.1.4 CLIK del Secondo Ordine


Come ultimo caso si studia il CLIK del secondo ordine, che è di fondamentale
importanza per implementare le leggi di controllo nel capitolo successivo.
Esso fornisce infatti anche il riferimento di accelerazione nello spazio dei
giunti, oltre ai valori precedentemente ottenuti di posizione e velocità.

25
Elaborato Fondamenti di Robotica

L’algoritmo, basato sulla cinematica differenziale del secondo ordine, prevede


l’utilizzo di due matrici di guadagno per i controllori, che pesano rispettiva-
mente gli errori sulle posizioni e sulle velocità:
 
700 0 0 0
 
 0 700 0 0 
Kp = 
 0

 0 700 0 

0 0 0 700
 
500 0 0 0
 
 0 500 0 0 
Kd = 
 0

 0 500 0 

0 0 0 500
Di seguito sono riportati i risultati ottenuti per quanto concerne le pre-
stazioni in termini di errore ed i riferimenti ottenuti nello spazio dei giunti.

Figura 2.18: Errore di Posizione CLIK del 2 ordine

26
Elaborato Fondamenti di Robotica

Figura 2.19: Norma errore posizione CLIK 2 ordine

Figura 2.20: Errore velocità 2 ordine

27
Elaborato Fondamenti di Robotica

Figura 2.21: Norma errore velocità

Figura 2.22: Riferimenti ottenuti per le posizioni

28
Elaborato Fondamenti di Robotica

Figura 2.23: Riferimenti ottenuti per le velocità

Figura 2.24: Riferimenti ottenuti per le accelerazioni

Si evince come i risultati siano paragonabili a quelli ottenuti dagli al-


goritmi precedenti. Tuttavia i guadagni utilizzati sono elevati e il costo
computazionale è significativamente aumentato.
Se ne deduce che, nel caso in cui si voglia utilizzare algoritmi di controllo
che non fanno uso del riferimento di accelerazione, è sufficiente utilizzare
algoritmi CLIK del primo ordine.

29
Elaborato Fondamenti di Robotica

Questo non vale per il nostro caso, in cui è necessario il riferimento di


accelerazione per implementare il controllo.

30
Capitolo 3

Controllo
L’obiettivo del capitolo precedente era quello di riuscire ad ottenere i riferi-
menti da utilizzare nelle tecniche di controllo implementate sul modello del
robot SCARA. Nell’ipotesi di un carico concentrato in punta di massa pari
a 5 kg, bisogna progettare un controllo di tipo robusto e successivamente di
tipo adattativo.

3.1 Controllo a Dinamica Inversa


In prima istanza, si è voluto analizzare la risposta implementare un controllo
a dinamica inversa, conoscendo esattamente B ed n, i risultati ottenuti sono
ottimi con bassi valori di Kp = 10 e Kd = 20

31
Elaborato Fondamenti di Robotica

Figura 3.1: Norma errore di Posizione nello spazio dei giunti

Figura 3.2: Norma errore di Velocità nello spazio dei giunti

Andando a introdurre incertezza di modello, e quindi le stime B̂ =


diag(B), e n = 0: con valori di Kp = 1500 e Kd = 250 , si ottiene

32
Elaborato Fondamenti di Robotica

Figura 3.3: Errore nello spazio dei giunti

Si può provare allora ad introdurre un termine di robustezza.

3.2 Controllo Robusto


Il controllo robusto si basa sul controllo a dinamica inversa, e sfrutta quindi
la proprietà di invertibilità della matrice di inerzia B dovuta al fatto che essa
è simmetrica e definita positiva.
Questo tipo di controllo è utilizzato nel momento in cui si suppone di avere
incertezze sul modello dinamico e quindi si utilizza una sua stima per sinte-
tizzare il controllore.
L’azione di controllo è divisa in tre parti.
1)Un’azione linearizzante e disaccoppiante, ottenuta basandosi su approssi-
mazioni delle matrici del modello dinamico. In particolare andremo a consi-
derare appositamente la matrice d’inerzia B(q) costante e diagonale ed una
matrice n̂(q, q̇) inizialmente nulla.
2)L’azione di controllo lineare stabilizzante ottenuta con le matrici di gua-
dagno Kp eKd .
3)La componente di robustezza, proporzionale al guadagno , che costituisce il
termine di correzione per bilanciare l’approssimazione sul modello. L’azione

33
Elaborato Fondamenti di Robotica

di robustezza deve essere caratterizzata dall’eliminazione delle componenti


in alta frequenza tramite il parametro .
Quest’ultimo serve a creare una zona di tolleranza (boundary layer) allo
scopo di non sovraeccitare gli attuatori con le continue commutazioni per
mantenere la traiettoria nella regione di sliding.
Nei grafici a seguire vengono valutate le prestazioni ottenute con i se-
guenti valori:

Kp = diag([1500]), Kd = diag([250]), ρ = 24,  = 0.635

e con le seguenti approssimazioni sul modello:

B̂ = diag(B), n̂ = 0

Figura 3.4: Errore di posizione dei giunti

34
Elaborato Fondamenti di Robotica

Figura 3.5: Errore di velocità dei giunti

Figura 3.6: Norma di Errore di posizione nello spazio dei giunti

35
Elaborato Fondamenti di Robotica

Figura 3.7: Norma di errore di Velocità nello spazio dei giunti

Figura 3.8: Variabile di Controllo

L’eccessiva approssimazione adottata nell’utilizzare n̂ = 0 porta dei ri-


sultati non eccellenti, in particolare per quanto riguarda l’errore di posizio-
namento del giunto 3.
Esso infatti si assesta su un valore di regime diverso da zero. L’ingresso di
controllo presenta delle brusche oscillazioni, ma non ancora di entità rilevan-
te per i valori considerati.

36
Elaborato Fondamenti di Robotica

I miglioramenti che è possibile apportare al controllo sono limitati dall’errore


commesso sulla posizione del giunto 3.
Nella prossima simulazione si considererà di approssimare la n con i soli
effetti di gravità, per cercare di diminuire l’errore sul terzo giunto. Inol-
tre verranno aumentati i valori dei guadagni, in particolare quelli relativi
all’errore di velocità. Si proverà infine a ridurre il valore di epsilon.

Kp = diag([3500, 3500, 3500, 3500]), Kd = diag([400, 400, 400, 400]), ρ = 6,  = 0.2

e con le seguenti approssimazioni sul modello:

B̂ = diag(B), n̂ = g

Figura 3.9: Errore di posizione nello spazio dei giunti

37
Elaborato Fondamenti di Robotica

Figura 3.10: Errore di velocità nello spazio dei giunti

Figura 3.11: Norma Errore di Posizione nello spazio dei giunti

38
Elaborato Fondamenti di Robotica

Figura 3.12: Norma Errore di Velocità nello spazio dei giunti

Figura 3.13: Variabili di controllo

Si nota nell’andamento delle coppie fornite dagli attuatori l’insorgere


del fenomeno del chattering, causato dal fatto che gli attuatori, come già
detto, vengono sollecitati in maniera brusca per mantenere la traiettoria
nella regione di sliding.
Questo potrebbe causarne addirittura la rottura, le oscillazioni vanno quindi
limitate in frequenza aumentando il parametro .

39
Elaborato Fondamenti di Robotica

3.3 Controllo Adattativo


Il controllo adattativo pone le sue basi sulla teoria della passività e sfrutta
la proprietà di linearità del modello nei parametri dinamici, utilizza quindi
a pieno tutte le principali caratteristiche messe in evidenza nel modello di-
namico del manipolatore ottenuto tramite la formulazione di Lagrange.
In particolare lo schema di controllo è ricavato sfruttando la proprietà no-
tevole di linearità del modello dinamico rispetto ai parametri, utilizzando il
regressore Y (q, q̇, q̈) e la stima dei parametri π̂.
Il robot manipolatore ha il compito di eseguire la data traiettoria con una
massa di circa 5 kg concentrata in punta. Supponendo però di non conoscere
con precisione tale carico, bisogna progettare un controllo che si “adatti” al
carico variabile, il quale può essere identificato durante il ciclo di controllo
stesso.
Grazie a questa tecnica, viene stimato il carico in maniera automatica, otte-
nendo così un buon inseguimento della traiettoria.
Nella pratica durante la simulazione, la massa ml4 del robot SCARA è stata
posta uguale al valore effettivo del carico, in modo da simulare il vero com-
portamento del manipolatore con l’oggetto afferrato dall’organo terminale.
Invece l’algoritmo di controllo è stato implementato considerando tale massa
nulla per individuarla online.
Le matrici scelte per il controllo sono

Λ = diag(50, 50, 50, 50), KD = diag(75, 75, 75, 75)

Kπ = diag(800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 0.2, 800, 800, 800)

Nella matrice Kπ è stato pesato maggiormente, e quindi presenta un


coefficiente sensibilmente inferiore agli altri, il tredicesimo termine perché è
quello corrispondente al parametro con maggior incertezza ossia la massa del

40
Elaborato Fondamenti di Robotica

carico ml4.

Figura 3.14: Andamento online della stima parametrica

Figura 3.15: Norma errore sulle posizioni dei giunti

41
Elaborato Fondamenti di Robotica

Figura 3.16: Norma errore sulle velocità dei giunti

Figura 3.17: Norma Errore Spazio Operativo

L’algoritmo riesce ad ottenere buone prestazioni, con errori limitati nono-


stante all’inizio non si tenga conto della massa afferrata. L’andamento delle
norme degli errori di posizione e velocità dei giunti e la norma dell’errore
sulla posa dell’end effector sono riportate nelle ultime tre figure.
Si vuole infine far notare come, essendo il parametro da identificare uno
scalare, l’algoritmo a regime identifica esattamente il suo valore. Questo ri-

42
Elaborato Fondamenti di Robotica

sultato non è scontato nel caso in cui si abbia un vettore di parametri incerti
da identificare.

43

Potrebbero piacerti anche