Esempio di formattazione della tesi di laurea

UNIVERSITÀ DEGLI STUDI DI NAPOLI
FEDERICO II
Facoltà di ingegneria
Corso di Laurea in Ingegneria dell’Automazione
Corso di Controllo dei Robot
Analisi e controllo di un robot
S.C.A.R.A
Relatore:
Candidato:
Ch.mo Prof. Bruno Siciliano
Michele Del Duca
M58/18
ANNO ACCADEMICO 2012 / 2013
1
TABLE OF CONTENTS
Table of Contents ......................................................................... 2
1. Analisi cinematica ................................................................... 5
Dati di progetto .......................................................................... 5
Spazio di lavoro ......................................................................... 6
Pianificazione della traiettoria .................................................... 7
2. Cinematica ........................................................................... 10
Matrice di Trasformazione Omogenea ..................................... 10
Jacobiano ................................................................................ 12
3. Inversione cinematica ........................................................... 15
CLIK I ordine: Inversa dello Jacobiano .................................... 15
CLIK I ordine: Trasposta dello Jacobiano ................................ 18
CLIK I ordine: Pseudo-Inversa dello Jacobiano ....................... 20
Misura di manipolabilità ........................................................ 22
Distanza dai fine-corsa dei giunti .......................................... 23
CLIK II ordine con inversa dello Jacobiano .............................. 24
4. Dinamica .............................................................................. 27
5. Controllo del moto ................................................................ 28
Controllo robusto ..................................................................... 28
Controllo adattativo.................................................................. 33
6. Controllo di forza .................................................................. 37
Controllo di impedenza ............................................................ 37
Controllo di forza ..................................................................... 41
Controllo di forza con anello interno di posizione .................. 42
Controllo di forza con anello interno di velocità ..................... 44
2
Controllo parallelo forza/posizione ....................................... 47
Bibliografia ................................................................................. 51
3
INTRODUZIONE
Il robot SCARA, acronimo di Selective Compliance Assembly
Robot Arm (robot di montaggio a cedevolezza selettiva), è un
manipolatore di struttura semplice, particolarmente diffuso nelle
operazioni di montaggio. Il robot è a cedevolezza selettiva perché
la pinza, se forzata, può “cedere” leggermente al movimento nel
piano orizzontale ma non in quello verticale. Questo fattore
dipende dalle caratteristiche strutturali del robot e dall’elasticità
torsionale degli alberi di trasmissione nonché dei riduttori di
velocità. Un certo grado di cedevolezza è appositamente inserito
nel robot per compensare automaticamente alcuni errori di
posizionamento del robot stesso. Da un punto di vista costruttivo,
il robot SCARA è realizzato disponendo due giunti rotoidali ed uno
prismatico ad assi di moto parallelo ed un ulteriore giunto
rotoidale disposto sull’ultimo link, anch’esso con asse del moto
parallelo ai precedenti, per consentire una rotazione della pinza
attorno al suo asse, che altrimenti durante il moto assumerebbe
un orientamento dipendente dalla posizione dei primi due membri.
Gli assi dei suoi giunti sono tutti verticali. Questa particolare
configurazione minimizza gli effetti della forza di gravità sul robot,
scaricandoli a terra e permettendo l'utilizzo di questa macchina in
casi di forti pressioni verticali come nelle perforazioni. Questa
configurazione conferisce al manipolatore caratteristiche di
elevata rigidezza a carichi verticali e cedevolezza a carichi
orizzontali, ben prestandosi quindi all’esecuzione di compiti di
assemblaggio per inserimenti verticali. Il volume di lavoro del
Robot SCARA può variare profondamente in base al range di
movimento dei primi due assi.
Figura 1.1: Scara Robot TH Series
4
1. ANALISI CINEMATICA
DATI DI PROGETTO
Lo SCARA è un manipolatore con quattro gradi di libertà (n=4),
con tre giunti rotoidali ed uno prismatico. I dati di progetto sono i
seguenti:
 Lunghezza link:
d0 =1m, a1 =a2 =0.5m, l1 =l2 =0.25m;
 Masse link:
ml1 =ml2 =25kg, ml3=10kg;
 Momenti di inerzia baricentrali lungo l’asse del moto del link:
Il1=Il2 =5kg/m2, Il4=1kg/m2;
 Rapporti di trasmissione:
kr1=kr2=1, kr3=50rad/m, kr4=50;
 Momenti di inerzia dei motori lungo i rispettivi assi:
Im1=Im2=0.02kg/m2, Im3=0.005kg/m2, Im4=0.001kg/m2;
 Coefficienti di attrito viscoso:
Fm1=Fm2=0.001N·m·s/rad, Fm3 =0.01N·m·s/rad,
Fm4=0.005N·m·s/rad.
Figura 2.1: Robot SCARA ottenuto con Robotics Toolbox
5
SPAZIO DI LAVORO
Attraverso l’utilizzo del Robotics Toolbox fatto girare sotto
Matlab/Simulink è stato possibile visualizzare graficamente la
struttura del robot SCARA, con relativo spazio di lavoro. La
particolare geometria del volume dello spazio raggiungibile dal
manipolatore è dettato dai fine corsa meccanici, nonché dalla
struttura stessa del robot.
Figura 2.2: Spazio di lavoro dello SCARA
Figura 2.3: Spazio di lavoro dello SCARA in pianta.
6
PIANIFICAZIONE DELLA TRAIETTORIA
Sulla base delle specifiche di progetto assegnate, si impone al
robot manipolatore l’esecuzione di una specifica traiettoria da
eseguire in 20 secondi, attraverso un profilo di velocità
trapezoidale, ampiamente usato nella pratica industriale data la
sua semplicità implementativa.
Il robot parte da una posizione non appartenente al piano di
lavoro, definita da p1, per poi arrivare sul piano ad altezza zero,
dove effettua un tratto circolare all’interno del quale segue una
traiettoria composta da quattro tratti con due punti di via,
componendo la lettera alfabetica M.
p1 = [0.96; 0; 0.84];
p2 = [0.972; -0.048; 0];
Cerchio1: c = [1.02; 0; 0],
ρ=0.048∙ 2
p3 = [0.972; -0.048; 0];
p4 = [0.972; 0.048; 0];
p5 = [0.978; 0.060; 0];
PUNTO DI VIA
p6 = [0.984; 0.048; 0];
p7 = [1.02; 0; 0];
p8 = [1.056; 0.048; 0];
p9 = [1.062; 0.060; 0];
PUNTO DI VIA
p10 = [1.068; 0.048; 0];
p11 = [1.068; -0.048; 0].
Di seguito è illustrata una rappresentazione tridimensionale della
traiettoria desiderata:
1
Il tratto circolare è collocato sul piano x-y e caratterizzato dal centro c e raggio ρ.
7
con la seguente pianta:
e relativo prospetto:
8
L’andamento nel tempo delle traiettorie di riferimento nello spazio
operative, per ciascuno degli assi cartesiani è il seguente:
mentre per l’orientamento si è scelto di dare un riferimento
costante e nullo all’angolo Φ = ϑ1 + ϑ2 + ϑ4.
9
2. CINEMATICA
Lo studio della cinematica si propone come obiettivo la
caratterizzazione di un legame analitico tra la posizione, velocità e
accelerazione dell’end effector e le posizioni, velocità e
accelerazioni associate alle variabili di giunto. A tale scopo, sono
calcolati la matrice di trasformazione omogenea e lo Jacobiano,
rispettivamente per la cinematica diretta e la cinematica
differenziale, da cui si otterrà l’inversione cinematica.
MATRICE DI TRASFORMAZIONE OMOGENEA
Il calcolo della cinematica diretta è stato fatto a partire dall’utilizzo
della convenzione di Denavit-Hartenberg (DH), utile in quanto
fornisce un metodo generale e sistematico per definire posizione
e orientamento relativi di ciscuna coppia di bracci adiacenti.
Figura 2.1: Terne secondo la convenzione DH
Disponendo le terne come in Figura 2.1, si ottiene la seguente
tabella:
10
Giunto
ai
αi
θi
di
1
a1
0
θ1
0
2
a2
0
θ2
0
3
0
0
0
d3
4
0
0
θ4
0
Figura 2.2: Tabella di D-H
Calcolando le singole matrici di trasformazione omogenea tra
ciascuna coppia di terne adiacenti, si ottiene:
cos i
 sin 
i
i 1
Ai (i )  
 0

 0
 sin i
cos i
0
0
0 ai  cos i 
0 ai  sin i 

1
0

0
1

1
0
2
A3 (d3 )  
0

0
i =1,2,4
0
0 
0 1 d3 

0 0 1
0 0
1 0
Il calcolo della funzione cinematica diretta è ricorsivo e viene
ottenuto in maniera sistematica attraverso semplici prodotti delle
matrici di trasformazione omogenea sopra descritte:
11
T40 (q)  A10 (1 )  A21 (2 )  A32 (d 3 )  A43 (4 ) 
cos(1  2  4 )  sin(1  2  4 )
 sin(     ) cos(     )
1
2
4
1
2
4


0
0

0
0

0 a1  cos 1  a2  cos(1  2 )
0 a1  sin 1  a2  sin(1  2 ) 

1
d3

0
1

JACOBIANO
Per poter esprimere il legame tra la velocità lineare e angolare
dell’organo terminale e le velocità dei giunti, è necessario fare
riferimento alla cinematica differenziale attraverso il calcolo dello
Jacobiano geometrico, che nel caso dello SCARA coincide con lo
Jacobiano analitico, essendo possibili solo rotazioni intorno
all’asse z0.
In particolare, i contributi delle velocità ai giunti alle velocità
lineare e angolare dell’organo terminale sono rispettivamente
espressi dalle seguenti relazioni:
p e  J P (q)  q
e  J O (q)  q
In forma compatta:
 p 
ve   e   J (q)  q
e 
dove la matrice:
12
J Pn 
 J P1
JP  

J (q)     
...

JO  J
J On 
 O1
rappresenta lo Jacobiano geometrico di dimensione (6x4) (e, in tal
caso, anche analitico).
Nel dettaglio:

 zi 1 

 0 
 J Pi  
 
 J    z  ( p  p )
e
i 1
 Oi   i 1


zi 1

giunto prismatico
giunto rotoidale
In definitiva, si ottiene per lo SCARA:
 z  ( pe  p0 ) z1  ( pe  p1 ) z 2 z3  ( pe  p3 )
J (q)   0

z
z
0
z
0
1
3


 a1  sin 1  a2  sin(1  2 )  a2  sin(1  2 ) 0 0
 a  cos   a  cos(   ) a  cos(   ) 0 0
1
2
1
2
2
1
2
 1


0
0
1 0 .


0
0
0 0


0
0
0 0


1
1
0 1

Poiché lungo le direzioni x e y non ci sono contributi alla velocità
angolare dell’organo terminale da parte delle velocità dei giunti, è
possibile scrivere la matrice jacobiana in forma ridotta:
13
 a1  sin 1  a2  sin(1  2 )  a2  sin(1  2 )
 a  cos   a  cos(   ) a  cos(   )
1
2
1
2
2
1
2
J (q)   1

0
0

1
1

0 0
0 0
1 0

0 1
In analogia con un manipolatore planare a due bracci, anche per
lo SCARA solo i primi due giunti determinano le coordinate x e y
dell’organo terminale, visto che il terzo giunto, prismatico,
determina la sola coordinata z e l’ultimo giunto l’orientamento: c’è
disaccoppiamento cinematico. Questo significa che lo Jacobiano
analitico (4x4) può essere ricavato
considerando lo sole
componenti posizionali nel piano della struttura (prime tre righe
della quarta colonna della matrice T04) e definendo l’orientamento
dell’organo terminale come Φ = ϑ1+ ϑ2+ ϑ3, così da calcolare
l’ultima riga della matrice jacobiana in forma ridotta, sopra
riportata.
14
3. INVERSIONE CINEMATICA
L’inversione cinematica oggetto di studio in questo capitolo è
fondamentale per poter ottenere le traiettorie nello spazio dei
giunti corrispondenti alla traiettoria desiderata, percorsa
dall’organo terminale, espressa nello spazio operativo. Queste
traiettorie serviranno a definire, attraverso le diverse strategie di
controllo del moto, i riferimenti per i giunti del manipolatore.
Alla luce del legame lineare tra le velocità nello spazio dei giunti e
nello spazio operativo evidenziato con la relazione dello
Jacobiano, a partire da una traiettoria espressa con andamento
trapezoidale in velocità, con condizioni iniziali su posizione e
velocità, si analizzano i diversi algoritmi di integrazione numerica
CLIK (Closed Loop Inverse Kinematic) in cui, attraverso la
chiusura di un ciclo di retroazione, si effettua un controllo
cinematico delle traiettorie ai giunti. In questo modo, si lega
funzionalmente il calcolo delle traiettorie all’andamento dell’errore,
così da evitare fenomeni di deriva, dovuti all’integrazione
numerica, e rendere asintoticamente stabile il sistema di errore,
facendo convergere il valore delle traiettorie ai giunti al valore
esatto.
CLIK I ORDINE: INVERSA DELLO JACOBIANO
Il primo algoritmo per l’inversione che si analizza è realtivo
all’inversa dello Jacobiano:
Schema di base a blocchi
15
implementato in ambiente Simulink:
I risultati delle simulazioni sono presentati di seguito, con
andamento nel tempo dell’errore di posizione:
e andamento nel tempo dell’errore di orientamento:
16
Si noti come l’errore di orientamento sia già prossimo all’errore di
macchina.
Inoltre, si riporta un ulteriore simulazione fatta aumentando i valori
dei guadagni K:
con relativo errore di orientamento praticamente nullo:
17
CLIK I ORDINE: TRASPOSTA DELLO JACOBIANO
Il secondo algoritmo usato per l’inversione cinematica è quello
relativo
alla
trasposta
dello
Jacobiano,
quindi
computazionalmente più vantaggioso del precedente in quanto
all’interno dello schema di controllo compaiono soltanto funzioni
cinematiche dirette, come si vede dalla seguente figura:
Schema di base a blocchi
con relativo schema di controllo implementato in Simulink:
18
I risultati ottenuti dalle simulazioni sono di seguito illustrati:
19
Con valori dei guadagni di due ordini di grandezza più elevati,
compatibilmente con il limite che assicura convergenza del
sistema, l’errore si riduce ulteriormente:
CLIK I ORDINE: PSEUDO-INVERSA DELLO JACOBIANO
Con questo algoritmo, si sfrutta la possibilità di conferire
ridondanza al manipolatore, andando a rilassare un vincolo. In
questo modo,lo Jacobiano “deranga” e non è più possibile
20
l’operazione di inversione. Si ricorre, quindi, alla pseudo-inversa
dello Jacobiano con il seguente schema di controllo:
Schema di base a blocchi
e con il seguente schema a blocchi in ambiente Simulink:
utilizzando il grado di libertà in eccesso per far eseguire al
manipolatore moti interni che non alterano la posa dell’organo
terminale, in quanto generati da una ottimizzazione, di un vincolo
secondario w(q), proiettata nel nullo dello Jacobiano J:
q  J †ve  ( I 4  J † J )q0
dove:
q0  k0
w(q)
q
21
con w(q) funzione obiettivo da ottimizzare e ( I 4  J † J ) proiettore
nel nullo di J.
Per mostrare la gestione della ridondanza da parte del
manipolatore, si sono utilizzati due tipi di vincoli relativi a funzioni
obiettivo da massimizzare.
In entrambi i casi, si è scelto di rilassare l’orientamento Φ.
MISURA DI MANIPOLABILITÀ
La funzione obiettivo da massimizzare è:
w(q)  det( J (q) J T (q))
che descrive la distanza dalle singolarità della struttura portante,
massimizzando la quale si utilizza la ridondanza per rimanere
lontani dalle singolarità.
In particolare:
0




w(q) a1a2 cos 2 



0
q


0


con i seguenti risultati che mostrano il confronto tra le traiettorie
nello spazio dei giunti con e senza ridondanza:
22
dove si evidenzia, come unica differenza, la triettoria costante
della variabile del quarto giunto nel caso di ridondanza, non
essendo più necessario il controllo dell’orientamento. Quindi,
l’errore di inseguimento in posizione risulta invariato, in virtù del
fatto che il termine aggiuntivo di velocità viene proiettato nel nullo
dello Jacobiano, non alterando le prestazioni del compito
posizionale dell’organo terminale.
La misura di manipolabilità viene effettuata considerando
semplicemente il sinϑ2, che descrive in maniera efficace una
distanza dalle singolarità:
DISTANZA DAI FINE-CORSA DEI GIUNTI
La seconda funzione obiettivo considerata è la distanza dai finecorsa dei giunti, così definita:
1 n  qi  q i 

w(q)    
8 i 1  qiM  qim 
2
dove qiM e qim rappresentano rispettivamente l’escursione
massima e minima ammessa per l’i-esima variabile di giunto, con
23
q i il valor medio della corsa. Massimizzando tale indice si cerca di
portare variabile di giunto i-esima verso il centro della corsa.
Per le simulazioni, si è scelto di applicare questo vincolo alla
variabile del quarto giunto, ϑ4(t).
I risultati seguenti mostrano come la variabile ϑ4(t) vada a zero
per allontanarsi dai fine-corsa posti a –π/2 e +π/2, con una
velocità che dipende dal valore della costante k0.
CLIK II ORDINE CON INVERSA DELLO JACOBIANO
Un ultimo algoritmo di controllo esaminato è il CLIK del secondo
ordine con inversa di J, con il quale è possibile invertire la
traiettoria pianificata dallo spazio operativo a quello dei giunti in
accelerazione, velocità e posizione, attraverso l’inversa dello
Jacobiano. Per questo motivo, questo algoritmo sarà poi applicato
per gli schemi di controllo del lavoro oggetto di questa tesina.
24
Schema di base a blocchi
Di seguito, si riporta lo schema di controllo implementato in
Simulink:
Con un’opportuna2 taratura dei guadagni dei regolatori
proporzionale e derivativo, si riportano i risultati delle simulazioni
svolte per l’andamento nel tempo dell’errore di posizione ai giunti:
L’ordine di grandezza dei guadagni per il CLIK del II ordine è di 1/Tc2, laddove per gli algoritmi
del I ordine è pari a 1/Tc, con Tc il tempo di campionamento di 1ms.
2
25
e l’errore di orientamento, praticamente ridotto a errore di
macchina:
26
4. DINAMICA
Dopo aver analizzato il robot manipolatore a livello cinematico, in
questo capitolo se ne analizza la dinamica, utile per simulare il
comportamento del manipolatore. La dinamica di un robot tratta le
formulazioni matematiche delle equazioni del moto del
manipolatore. Tali equazioni sono utili per la simulazione il
calcolatore del movimento del braccio e per formulare le
equazioni per il controllo dello stesso.
Il modello dinamico di un robot si ottiene da note leggi fisiche,
principalmente attraverso due metodi: uno basato sulla
formulazione di Lagrange e un altro sulla formulazione di NewtonEulero. In questo progetto si è utilizzata la formulazione di
Lagrange, concettualmente semplice e sistematica, che conduce
alla derivazione del modello in forma chiusa. L’equazione del
moto risultante è:
B(q)q  C (q, q )q  Fv q  Fs sgn( q )  g (q)    J T (q)he
L’applicazione diretta di tale formulazione dinamica fornisce come
risultato i valori nel tempo delle accelerazioni ai giunti, quando il
manipolatore è sottoposto all’azione di coppie assegnate (e forze
agenti all’organo terminale); le velocità e le posizioni qi(t) giunti
possono essere ricavate integrando il sistema di equazioni
differenziali non lineari.
Una proprietà fondamentale del modello dinamico del
manipolatore è quella relativa alla sua linearità rispetto a un
insieme opportuno di parametri dinamici:
  Y (q, q, q)
dove π=[π1 … πn]T è un vettore (px1), con p≤13n (13 è il numero
complessivo massimo di parametri per ogni giunto) parametri
costanti e Y(.) una matrice (nxp) usualmente chiamata regressore.
Questa parametrizzazione del modello dinamico tornerà utile nel
corso del controllo del moto (in particolare adattativo) che si
procederà ad analizzare.
27
5. CONTROLLO DEL MOTO
Il controllo del moto rappresenta il vero scopo di tutte le premesse
analitiche riguardanti il manipolatore finora descritte.
In particolare, relativamente alla traiettoria desiderata inizialmente
descritta nello spazio operativo e quindi tradotta, attraverso uno
degli algoritmi di inversione cinematica sopra presentati (qui,
come detto, si utilizza il CLIK del II ordine), nello spazio dei giunti,
con il controllo del moto si vuole che il robot percorrà tali traiettorie
con il minimo errore possibile. A tal fine, si analizzano diversi
schemi di controllo con relativi risultati di simulazione.
CONTROLLO ROBUSTO
La prima strategia di controllo analizzata è relativa al controllo
robusto, che si basa sul concetto di dinamica inversa con
l’aggiunta di un contributo che conferisce robustezza all’azione di
controllo in quanto compensa l’incertezza dovuta a una limitata


conoscenza del modello dinamico del manipolatore ( B(q) e n(q, q ) )
che, quindi, porterebbe alla non perfetta cancellazione dei
contributi del modello, nonché le intenzionali semplificazioni
apportate al modello dinamico per diminuire il carico
computazionale del calcolatore numerico, che deve calcolare in
linea l’azione di controllo, operando con un assegnato tempo di
campionamento dell’ordine del millisecondo.
28
Tutte le simulazioni sono state fatte con la regola di integrazione
numerica di Eulero con tempo di integrazione di 1 ms.
Lo schema di controllo implementato in ambiente Simulink è
riportato in basso:
In particolare, nel computo della dinamica inversa (blocco di
Compensazione N.L. e disaccoppiamento dello schema Simulink)
è stata considerata nulla, perché in realtà ignota, la massa ml4 di 6
kg del carico concentrato in punta (invece inserito nel calcolo della
Dinamica diretta) e si sono trascurati i contributi degli effetti
centrifughi e di Coriolis indotti ai giunti ed espressi in C (q, q )q e di
smorzamento Fq , considerando unicamente le coppie dovute ai
termini inerziali e gravitazionali, in quanto dominanti rispetto ai
termini dipendenti dalle velocità ai giunti:

u  B( q) y  g
questo per verificare la bontà della strategia di compensazione
parziale generalmente applicata sui calcolatori numerici, per i
motivi su citati, con:
 0 
 0 

g
ml 3  g 


 0 
e con:
~
~
y  qd  K D q K P q w
29
dove w rappresenta il termine compensativo dell’incertezza di
modello:

 z z
w
z
 
per z  
per z  
con ε boundayer layer e ρ modulo del vettore lungo il quale
convergono le dinamiche di errore del sistema.
I risultati seguenti sono stati ottenuti con ρ=100, ε=1:
Errore di posizione con ρ=100, ε=1
Errore di orientamento con ρ=100, ε=1
30
con un andamento nel tempo delle coppie congruo con il compito
richiesto al manipolatore:
Coppie con ρ=100, ε=1
C’è da notare che la coppia del giunto 3 ha un picco dovuto al
carcio in punta non noto alla dinamica inversa, assestandosi poi a
regime su un valore diverso da zero.
Per precisione, per un confronto, si riporta anche un andamento
dell’errore di posizione con ε=10:
Errore di posizione con ρ=100, ε=10
31
dove è visibile una leggera differenza con i valori dell’errore di
posizione nel caso precedente (dove ε è un ordine di grandezza più
piccolo).
Inoltre, si mostra gli effetti dovuti a componenti in alta frequenza
(chattering) derivanti da un valore del boundary layer troppo
piccolo per il sistema (ε=0.01):
Errore di posizione con ρ=100, ε=0.01
Errore di orientamento con ρ=100, ε=0.01
e con il seguente andamento richiesto alle coppie ai giunti:
32
Coppie con ρ=100, ε=0.01
in cui, con uno zoom dell’andamento delle coppie nel tempo è
chiaro come una ε ridotta costringa i servomotori ai giunti a
generare coppie a frequenza elevatissima:
Zoom delle coppie con ρ=100, ε=0.01
CONTROLLO ADATTATIVO
Con il controllo adattativo trova applicazione la proprietà di
linearità del modello dinamico rispetto ai parametri dinamici, al
fine di definire una legge di controllo robusta a fronte di incertezze
33
sui parametri stessi, che adatti in linea il modello computazionale
al modello dinamico del manipolatore. Lo schema generale di
questo tipo di controllo è il seguente:
e relativo schema Simulink utilizzato per le simulazioni:
La legge di controllo è:





u  B(q)qr  C (q, q )qr  F qr  g  K D  Y (q, q, qr , qr )   K D
con:
~
~
qr  qd   q , qr  qd   q ,   qr  q .
e con la seguente legge di adattamento dei parametri:
34

  K1Y T (q, q, qr , qr )
Si ottiene, quindi, la convergenza a zero del sistema di errore e la

limitatezza di  :

Y (q, q, qr , qr )(   )  0
Quindi, la legge adattativa aggiorna il vettore di stima dei
parametri in modo da assicurare asintoticamente la
compensazione dei termini del modello dinamico del
manipolatore.
Dall’ultima relazione si capisce come ciò non implichi
necessariamente la convergenza dei parametri stimati al valore
vero, perché ciò dipende dalla matrice regressiva Y(.) e quindi
dalle leggi del moto desiderate ed eseguite.
Di seguito, sono illustrati i risultati delle simulazioni fatte con
Λ=diag([10 10 10 10]), KD=diag[1000 1000 1000 1000],
Kπ=103·eye[14,14] e Kπ(14,14)=0.01:
L’andamento nel tempo delle coppie ai giunti è regolare:
35
La stima del carico concentrato in punta di 6 kg è la seguente:
dimostrazione di una buona conoscenza del modello
computazionale.
In definitiva, il controllo adattativo è migliore del controllo robusto
in quanto la traiettoria di errore tende a zero senza che ci sia un
controllo commutato a elevata frequenza che la mantenga in tale
stato. Tuttavia, il controllo adattativo si basa sul modello
computazionale e, pertanto, se non completamente noto a causa
di dinamiche non modellate nonché di disturbi, ne modifica i
parametri.
36
6. CONTROLLO DI FORZA
Questo capitolo è dedicato al controllo dell’interazione tra il
manipolatore e l’ambiente, come quando il robot entra in contatto
con vincoli dell’ambiente (naturali o artificiali). Tale problema
viene affrontato attraverso schemi di controllo nello spazio
operativo, sia di tipo indiretto (controllo di impedenza) sia diretto
(controllo di forza).
Si consideri la presenza di un piano orizzontale, elasticamente
cedevole, ad una quota pari a z=0.3m, che ostruisca il moto del
manipolatore e che presenti una rigidezza K lungo la direzione
verticale pari a 4·103 N/m.
CONTROLLO DI IMPEDENZA
Con questo algoritmo, viene controllata la forza di interazione del
manipolatore con l’ambiente in modo indiretto, cioè si ottiene un
controllo della forza attraverso un controllo del moto, senza la
chiusura esplicita di un anello di retroazione della forza.
Lo schema a blocchi Simulink utilizzato per le simulazioni è il
seguente:
37
I risultati delle simulazioni illustrati di seguito sono esemplificativi
di come il manipolatore possa dominare o meno l’ambiente a
seconda che il rapporto tra il valore della rigidezza del
manipolatore lungo la direzione vincolata z, KP(3,3), e della
rigidezza dell’ambiente K sia rispettivamente maggiore o minore
dell’unità, generando quindi un errore nello spazio dei giunti
piccolo, nel primo caso, o grande, nel secondo caso (al limite
prossimo alla distanza tra vincolo e posizione desiderata, quindi
0.3m). Si sono scelti i seguenti valori: KP=diag(102·[5 5 50 5]) nel
primo caso (il manipolatore domina sull’ambiente) e
KP=diag(102·[5 5 0.5 5]) nel secondo caso (l’ambiente domina sul
manipolatore), con KD=diag(102·[1 1 10 1]), MD=diag([1 1 1 1]) in
entrambi le prove:
38
con il seguente andamento delle traiettorie nello spazio operativo
per entrambi i casi:
39
dove, in quest’ultimo grafico con ambiente meno cedevole, è
visibile un andamento della variabile Xe3(t) meno smorzato
rispetto al caso in cui domina il manipolatore (ambiente più
cedevole).
Le forze all’organo terminale corrispondenti, sono:
in cui si nota come la forza al contatto maggiore è esercitata
quando il manipolatore domina sull’ambiente, rimanendo elevata
anche a regime, per poter continuare a limitare l’errore di
posizione.
I corrispondenti andamenti delle coppie ai giunti sono
rappresentati in basso:
40
CONTROLLO DI FORZA
Nelle simulazioni finora presentate, si è controllata la forza di
contatto in maniera indiretta agendo sulla posizione desiderata
dell’organo terminale assegnata al controllore. Se, però, si vuole
controllare in modo accurato l’entità di tale forza generata, si deve
ricorrere a schemi di controllo diretto di forza, come quelli
presentati in questa sezione.
Il modello elastico di interazione con l’ambiente esibisce la
seguente espressione:
fe  K ( xe  xr )
con xr posizione del vincolo piano (posto a 0.3m) e xe in t=0 pari a
0.8m.
41
Per le simulazioni che seguiranno, si utilizza un riferimento di
forza desiderato pari a 40N.
CONTROLLO DI FORZA CON ANELLO INTERNO DI
POSIZIONE
Come per il controllo del moto, anche per il controllo diretto di
forza richiederebbe l’utilizzo di un controllore PD che agisca
sull’errore di forza. Essendo, però, la misura di quest’ultima
corrotta da rumore, non è possibile usare l’azione derivativa,
quindi si ricorre a un’azione stabilizzatrice legata ai contributi di
velocità ed di posizione.
Dallo schema si intuisce che al controllore della forza deve essere
affidata un’azione proporzionale-integrale (PI) per avere a regime
fe=fd. Fino al contatto con il vincolo lungo z posto a quota 0.3m, il
robot è controllato con l’algoritmo a dinamica inversa nello spazio
operativo con guadagni KP=diag([300 300 300 300]),KD=diag([150
42
150 150 150]); mentre, a seguito del contatto con il vincolo, si
passa al controllo di forza diretto con KP=diag([100 100 0.1 100]),
KD=diag([100 100 100 100]).
I risultati seguenti delle simulazioni fatte mostrano il
comportamento del robot, sottoposto al riferimento di forza
desiderata pari a 40N, con guadagni del controllore di forza pari a
KF=2 per il proporzionale e KI=3 per l’integrale.
L’inseguimento di forza è ottenuto con questo andamento:
e con deriva a zero delle traiettorie nello spazio operativo, eccetto
che per quella lungo la direzione vincolare:
con evidente andamento dell’errore nello spazio dei giunti:
43
L’andamento delle coppie ai giunti è la seguente:
I risultati proposti evidenziano che il riferimento di forza è seguito,
mentre le posizioni lungo direzioni non appartenenti al R(K) vanno
a zero per effetti di deriva (dovuti alle componenti di fd interpretate
come riferimenti di velocità) e, ovviamente, la posizione lungo z
rimane a quota 0.3m.
CONTROLLO DI FORZA CON ANELLO INTERNO DI VELOCITÀ
Se si apre l’anello di retroazione della posizione nello schema a
blocchi del controllo di forza finora discusso, si ottiene:
44
nel quale si legge bene come tra xf e xe ci sia un legame di
integrazione, quindi non è necessario un’azione di tipo integrale
per la precisione a regime della forza, ma è sufficiente un’azione
puramente proporzionale, KF. Comunque, l’assenza di un’azione
integrale non garantisce la riduzione di effetti derivanti da
dinamiche non modellate tra KP e xe .
Le simulazioni sono state eseguite con valori dei guadagni identici
al controllo con anello interno di posizione, con seguenti risultati:
45
dove il valore di picco della forza di impatto è legato al rapporto
tra le rigidezze del manipolatore KP e dell’ambiente K3.
Per quanto riguarda l’andamento delle traiettorie nello spazio
operativo, in questo caso dopo il contatto permangono su un
valore costante, in quanto le loro velocità, per gli stessi effetti di
deriva visti nel controllo di forza con anello interno di posizione
relativamente alle traiettorie, vanno a zero, come mostrano i
seguenti andamenti:
L’andamento delle coppie ai giunti è il seguente:
3
Questo aspetto verrà chiarito in seguito.
46
CONTROLLO PARALLELO FORZA/POSIZIONE
Per ovviare ai problemi evidenziati nei grafici precedenti, dove
fenomeni di deriva della posizione dell’organo terminale lungo le
direzioni non vincolate tendono a portare a zero la posizione
(anello interno di posizione) e la velocità (anello interno di
velocità) dell’organo terminale, si ricorre ad uno schema di
controllo modificato, in cui si aggiunge il riferimento xd, come
mostrato:
così da poter specificare un riferimento desiderato per l’organo
terminale, proprio come fatto negli schemi di controllo posizionale.
Lo schema a blocchi Simulink è identico al precedente; quello che
cambia è la funzione contenuta nel blocco del Controllo di forza,
che ora ha il contributo aggiuntivo di xd.
I risultati sono illustrati di seguito sono stati ottenuti dapprima con
valori dei guadagni identici a quelli usati nei casi precedenti, per
poi variare gli stessi e trarne delle conclusioni:
47
Ora, si vuole mettere in evidenza come diminuendo il valore del
guadagno proporzionale del terzo giunto KP(3,3) si ottenga un
andamento meno smorzato delle traiettorie del robot nello spazio
operativo (l’ambiente domina maggiormente):
48
e relativo andamento della forza all’organo terminale, in cui si
evidenzia come la stessa si annulli per tutto il tempo in cui il
contatto del manipolatore con il vincolo venga a mancare per
effetto del sottosmorzamento dell’andamento della traiettoria4,
dato dalla diminuizione della rigidezza KP del manipolatore lungo
la direzione vincolare:
in cui è visibile anche un valore di picco della forza di impatto
inferiore rispetto ai casi precedenti con rapporto tra KP e K
maggiore.
Leggere oscillazioni dell’andamento della forza all’organo terminale si ravvisano anche nei
grafici precedenti, pur con valori di KP più elevati, collegati ad una forza di impatto inferiore,
quindi ad un contatto maggiore con il vincolo (nel tempo).
4
49
Questo, nello schema a blocchi, si è ottenuto con la presenza di
un relè (in supporto a uno switch) che segnala il contatto con il
piano vincolare e grazie al quale si è adottata la strategia di
controllo a dinamica inversa nello spazio operativo quando il robot
non è in contatto con il vincolo.
Infine, aumentando di un ordine di grandezza tutti i valori dei
guadagni proporzionali KP, aumenta il suo rapporto con la
rigidezza dell’ambiente K e, quindi, diminuisce il valore dell’errore
nello spazio operativo:
poiché il manipolatore domina maggiormente essendo aumentata
la sua rigidezza, come se il robot “vedesse” l’ambiente più
cedevole (pur essendo rimasta invariata la rigidezza di
quest’ultimo).
50
BIBLIOGRAFIA
Siciliano B., Sciavicco L., Villani L., Oriolo G., Robotica Modellistica, pianificazione e controllo, Terza Edizione, 2008,
McGraw-Hill.
51