Controlli automatici
Elementi di robotica industriale
Prof. Paolo Rocco ([email protected])Politecnico di MilanoDipartimento di Elettronica, Informazione e Bioinge gneria
Che cos’è un robot?Il robot è un manipolatore multifunzionale riprogrammabile, progettato per muovere materiali, parti, attrezzi o dispositivi specialistici attraverso vari movimenti programmati, per l’esecuzione di diversi compiti.
(Robot Institute of America, 1980)
Il robot non è solo un dispositivo meccanico…
COMAU SMART NH3
Controlli automatici – Elementi di robotica industri ale − P. Rocco [2]
Un robot e la sua unità di controlloStruttura meccanica con attuatori e sensori
COMAU SMART NH3
Unità di controllo
COMAU C4G
Controlli automatici – Elementi di robotica industri ale − P. Rocco [3]
Il sistema meccanicoIl manipolatore è costituito da una serie di corpi rigidi (link) connessi da giunti
Un’estremità della catena è costituita dalla BASE, di norma fissata terra.
All’altra estremità è presente l’END EFFECTOR(pinza, strumento di lavoro).
Di norma I manipolatori hanno sei link:� I primi tre realizzano il posizionamento� gli ultimi tre (POLSO) danno l’orientamento
Controlli automatici – Elementi di robotica industri ale − P. Rocco [4]
Unità di controllo
Unità di controllo:� MMI� Elettronica di potenza� Pianificazione del moto� Controllo� Supervisione
Teach pendant (o flex pendant):� Interfaccia di programmazione� Anche wireless
Controlli automatici – Elementi di robotica industri ale − P. Rocco [5]
Alcuni robot industrialiTaglia piccola (carico massimo inferiore a 6 Kg):
COMAU SMART Six
(disponibile in laboratorio!)
ABB IRB 140
(disponibile in laboratorio!)
KUKA KR 6
Controlli automatici – Elementi di robotica industri ale − P. Rocco [6]
Alcuni robot industrialiTaglia media (carico massimo di circa 100 Kg):
COMAU SMART NJ 130ABB IRB 4400 KUKA KR 140
Controlli automatici – Elementi di robotica industri ale − P. Rocco [7]
Alcuni robot industriali
COMAU SMART NX2
(800 Kg max.)
ABB IRB 7600
(630 Kg max.)
KUKA KR 1000
(1000 Kg max.)
Taglia grande (carico massimo superiore a 100 Kg):
Controlli automatici – Elementi di robotica industri ale − P. Rocco [8]
Applicazioni tipiche (COMAU SpA)
Saldatura a Punti
Saldatura ad arco
Assemblaggio
Movimentazione
Carico – Scarico Macchine
Sigillatura - Siliconatura
Automazione Linee Interpresse
Lavorazione
Controlli automatici – Elementi di robotica industri ale − P. Rocco [9]
Vendite di robot industriali per anno
Controlli automatici – Elementi di robotica industri ale − P. Rocco [10]
Vendite di robot ind . per applicazione
Controlli automatici – Elementi di robotica industri ale − P. Rocco [11]
Vendite di robot industriali per area
Controlli automatici – Elementi di robotica industri ale − P. Rocco [12]
Video: assemblaggio
FANUC Robotics
Controlli automatici – Elementi di robotica industri ale − P. Rocco [13]
Video: carico, scarico, pallettizzazione
FANUC Robotics
Controlli automatici – Elementi di robotica industri ale − P. Rocco [14]
Video: saldatura
FANUC Robotics
Controlli automatici – Elementi di robotica industri ale − P. Rocco [15]
Video: lavorazioni
FANUC Robotics
Controlli automatici – Elementi di robotica industri ale − P. Rocco [16]
Video: verniciatura, incollaggio
FANUC Robotics
Controlli automatici – Elementi di robotica industri ale − P. Rocco [17]
Video: altri robot
ABB Flexpicker ADEPT Quattro s650
Macchine a cinematica parallela: estremamente veloci
Controlli automatici – Elementi di robotica industri ale − P. Rocco [18]
Nuovi robot: ridondanti
KUKA LWR
MOTOMAN SIA10D
I sette giunti migliorano la destrezza
Controlli automatici – Elementi di robotica industri ale − P. Rocco [19]
Nuovi robot: a due bracci
Controlli automatici – Elementi di robotica industri ale − P. Rocco [20]
Problemi legati al controllo del motoNella robotica industriale si affrontano vari problemi connessi ad argomenti studiati in questo corso.
� Modellistica matematica� cinematica� dinamica
� Pianificazione del moto� nello spazio dei giunti� nello spazio Cartesiano
� Controllo in anello chiuso� decentralizzato� centralizzato
Nel seguito vedremo alcuni cenni su ciascuno di questi argomenti.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [21]
Cinematica direttaIl problema cinematico diretto consiste nel determinare la posizione e l’orientamento dell’end effector del manipolatore, a partire dalle coordinate di giunto:
?�
��
Si utilizzano appositi formalismi (matrici di trasformazione omogenea) per descrivere in modo sistematico la cinematica del manipolatore.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [22]
Cinematica inversaIl problema cinematico inverso consiste nel determinare le coordinate di giunto corrispondenti ad una data posizione e ad un dato orientamento dell’end effector del manipolatore:
?
�
?
?
Il problema, più complesso di quello della cinematica diretta, viene risolto con algoritmi ad-hoc o con metodi approssimati.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [23]
Cinematica differenzialeSi mettono in relazione le velocità dei giunti con le velocità Cartesiane dell’end-effector:
Per una data configurazione del robot, il legame tra velocità di giunto e velocità dell’end-effector è lineare, espresso da una matrice (Jacobiano).
Controlli automatici – Elementi di robotica industri ale − P. Rocco [24]
Cinematica: esempio
Cinematica diretta
12211
12211
sasap
cacap
y
x
+=
+=
Cinematica inversa
( )222222
21
22
21
22
2 ,2Atan
1
2 cs
cs
aa
aappc yx
=ϑ⇒
−±=
−−+=
Manipolatore a due gradi di libertà
( )
( ) ( )111
2222221
1
2222221
1
,2Atan cs
pp
psapcaas
pp
psapcaac
yx
xy
yx
yx
=ϑ⇒
+
−+=
+
++=
Cinematica differenziale
+−−−
=12212211
12212211
cacaca
sasasaJ
( )qqJp && =
Controlli automatici – Elementi di robotica industri ale − P. Rocco [25]
DinamicaIl modello dinamico del manipolatore mette in relazione le coppie applicate ai giunti ed il moto (posizioni e velocità) delle coordinate di giunto.
u(t)
q(t)
Controlli automatici – Elementi di robotica industri ale − P. Rocco [26]
DinamicaPer ottenere il modello dinamico del manipolatore si possono seguire due strade.
Formulazione di Eulero-Lagrange
� Si descrive il manipolatore come un insieme di corpi rigidi soggetti a vincoli olonomi nel movimento
� Si individua un insieme di coordinate generalizzate (coordinate di giunto)
� Si scrivono le equazioni di Lagrange per ciascuna coordinata
niqL
qL
dtd
iii
,,1, K
&
=ξ=∂∂−
∂∂
Formulazione di Newton-Eulero
� Si scrivono i bilanci di forze e momenti sul singolo link, dovute alle interazioni con i link adiacenti
� Si ottiene un sistema di equazioni che può essere impostato in modo ricorsivo, efficiente computazionalmente
Controlli automatici – Elementi di robotica industri ale − P. Rocco [27]
DinamicaIl modello dinamico è descritto da n (quanti sono i giunti) equazioni differenziali del secondo ordine.In forma compatta vettoriale, detto q il vettore delle variabili di giunto:
( ) ( ) ( ) τ=++ qgqqqCqqB &&&& ,
Termini gravitazionali
Termini centrifughi e di Coriolis
Termini inerziali: B(q) matrice di inerzia, simmetrica e definita positiva ∀ q
Coppie ai giunti
Controlli automatici – Elementi di robotica industri ale − P. Rocco [28]
Manipolatore planare a due bracci
m1, I1
m2, I2
a1
a2
ϑ1
ϑ2
l1
l2
x0
y0
( )
τ
τ=
+++
ϑ
ϑ
ϑ
ϑ−ϑ−
+
ϑ
ϑ
+++
+++++++
2
1
1222
122211211
2
1
12212
2221222212
2
1
222222212
222
2221222222212
222
2121
211
0
2
2
cglm
cglmgcamlm
slam
slamslam
IlmIclamlm
IclamlmIclamlmamIlm
&
&
&
&&
&&
&&
( )qB
( )qqC &, ( )qg
Consideriamo un manipolatore planare a due bracci, caratterizzati da:� masse: m1 e m2� lunghezze: a1 e a2� distanze dei baricentri dagli assi dei giunti: l1 e l2� momenti di inerzia baricentrali intorno a z0: I1 e I2
Controlli automatici – Elementi di robotica industri ale − P. Rocco [29]
Dinamica diretta e inversa
Dinamica direttaAssegnate le coppie ai giunti τ(t), determinare le accelerazioni ai giunti q(t) e, se sono date posizioni iniziali q(t0) e velocità iniziali q(t0), le posizioni q(t) e le velocità q(t).
( ) ( ) ( ) ( ) τ=++++ qqfqFqgqqqCqqB &&&&&& ,, sv
Dinamica inversaDate le accelerazioni q(t), le velocità q(t) e le posizioni q(t) determinare le coppie ai giunti τ(t) necessarie per la generazione del moto.
...
.
...
� Problema la cui soluzione è utile per la simulazione numerica della dinamica� È risolubile sia con l’approccio di Lagrange sia con l’approccio di Newton-
Eulero
� Problema la cui soluzione è utile per la pianificazione della traiettoria e per il controllo basato sul modello.
� Si può risolvere efficientemente con l’approccio di Newton-Eulero
Controlli automatici – Elementi di robotica industri ale − P. Rocco [30]
Pianificazione del moto
Nella robotica (e in generale nei sistemi articolati) occorre fare attenzione alla terminologia che si adotta con riferimento alla pianificazione del moto:
� Percorso (path): è un concetto geometrico e si riferisce a una linea in un certo spazio (lo spazio delle posizioni Cartesiane, lo spazio degli orientamenti, lo spazio delle coordinate di giunto, …) che deve essere seguito da un oggetto di cui si sta pianificando il moto
� Legge oraria: è la dipendenza temporale con cui vogliamo che evolva il moto del robot lungo il percorso assegnato
� Traiettoria: è un percorso sul quale sia stata assegnata una legge oraria
Il risultato finale della pianificazione del moto è quindi una traiettoria che servirà come ingresso ai controllori di posizione/velocità in tempo reale.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [31]
Spazio dei giunti e spazio operativoTraiettorie nello spazio operativo: si definisce il percorso (posizione e orientamento) dell’organo terminale del manipolatore nel comune spazio cartesiano.
� la descrizione del compito è naturale� sono facilmente descrivibili i vincoli sul percorso� punti di singolarità o gradi di mobilità ridondanti generano problemi� occorre calcolare online l’inversione cinematica
Traiettorie nello spazio dei giunti: si specificano direttamente le coordinate di giunto
� consente di risolvere direttamente problemi relativi a singolarità cinematiche� è una modalità di interesse quando i giunti non danno luogo ad un moto
coordinato oppure quando interessa solo che gli assi si portino da una posizione iniziale ad una finale (e non ha interesse il movimento risultante nello spazio operativo)
� non occorre calcolare online l’inversione cinematica
Controlli automatici – Elementi di robotica industri ale − P. Rocco [32]
Traiettorie nello spazio dei giuntiQuando pianifichiamo il moto nello spazio dei giunti intendiamo generare una funzione q(t) che interpola I valori assegnati per le variabili di giunto nei punti iniziale e finale.
È sufficiente operare componente per componente (cioè considerando di volta in volta una singola variabile qi(t)): tutto quanto abbiamo visto per la pianificazione di una singola coordinata è quindi utilizzabile (moto punto a punto, moto su percorso assegnato, scalature …).
In particolare assume rilievo il problema della scalatura dinamica della traiettoria, per cui, dato il modello dinamico del manipolatore:
Controlli automatici – Elementi di robotica industri ale − P. Rocco [33]
occorre fare in modo che la traiettoria pianificata non richieda coppie ai giunti superiori a dei limiti assegnati.Come per la scalatura cinematica, si procede mediante parametrizzazione della traiettoria e normalizzazione della scala dei tempi, ma il problema è più complesso perché coinvolge l’intero modello dinamico del manipolatore
( ) ( ) ( ) τ=++ qgqqqCqqB &&&& ,
Percorso nello spazio operativoLa pianificazione delle traiettorie nello spazio operativo prevede la specificazione preliminare del percorso geometrico che l’end effector dovrà seguire nello spazio Cartesiano.Per la posizione si fa riferimento a una rappresentazione parametrica della curva che costituisce il percorso, in termini dell’ascissa curvilinea s: p = p(s)
x
y
z
t
nb
ppi pf
( )
( )( )
ntb
p
pn
pt
×=
=
=
22
22
dssd
dssd
dssd
Controlli automatici – Elementi di robotica industri ale − P. Rocco [34]
Percorso nello spazio operativoCome esempio di parametrizzazione di un percorso possiamo considerare un segmento nello spazio (percorso Cartesiano lineare):
( ) ( )
( )
0=
−−
=
−−
+=
2
2
1
ds
d
dsd
ss
ifif
ifif
i
p
pppp
p
pppp
pp
Il percorso è completamente caratterizzato dando due punti nello spazio Cartesiano.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [35]
Concatenazione di percorsi lineari� I percorsi lineari possono essere
concatenati per ottenere percorsi più elaborati.
� Il punto intermedio tra due segmenti consecutivi può essere considerato un punto di via, per cui non è necessario passare dal punto e fermarsi.
� Si realizza quindi un cosiddetto over-fly (passaggio al volo)
� È anche possibile specificare dei percorsi costituiti da archi di circonferenza
A
B
C
over-fly
Controlli automatici – Elementi di robotica industri ale − P. Rocco [36]
Pianificazione della traiettoriaPer la pianificazione della posizione, tenendo conto della parametrizzazione rispetto all’ascissa curvilinea p = p(s), si può attribuire la legge oraria alla variabile s(t).
Per la determinazione di s(t) vale quanto detto precedentemente circa la pianificazione della traiettoria per variabili scalari (traiettorie polinomiali, armoniche, cicloidali, a profilo di velocità trapezoidale, ecc.).Si noti inoltre che:
tt0
ss0
px=px(s)py=py(s)pz=pz(s)
In modo concettualmente analogo si procede anche per la pianificazione dell’orientamento, anche se la specificazione della traiettoria in termini di orientamento dell’end effector è complessa.
tp
p sdsd
s &&& == |s| è quindi la norma della velocità.
Controlli automatici – Elementi di robotica industri ale − P. Rocco [37]
Programmazione
I robot vengono di norma programmati mediante i linguaggi di programmazione propri dei costruttori di robot (PDL2 per COMAU, RAPID per ABB ecc.).Spesso sono anche disponibili ambienti software evoluti per la definizione e il testingdei programmi (come RobotStudio di ABB).
In alternativa, l’operatore può muovere il robot con il teachpendant lungo un percorso desiderato. I trasduttori di posizione memorizzano le posizioni che il robot deve raggiungere, che saranno poi raccordate da un software di generazione della traiettoria.Il robot sarà quindi in grado di ripetere autonomamente il movimento insegnato con apprendimento sul campo (modalità teaching-by-showing). COMAU SpA
Controlli automatici – Elementi di robotica industri ale − P. Rocco [38]
Esempio di programmaIl seguente programma sposta dei pezzi da un nastro trasportatore a un tavolo o a un contenitore di scarto, in dipendenza da segnali digitali in ingresso:
PROGRAM packVAR
home, feeder, table, discard : POSITIONBEGIN CYCLE
MOVE TO homeOPEN HAND 1WAIT FOR $DIN[1] = ON
-- signals feeder readyMOVE TO feederCLOSE HAND 1IF $DIN[2] = OFF THEN
-- determines if good partMOVE TO table
ELSEMOVE TO discard
ENDIFOPEN HAND 1
-- drop part on table or in binEND pack
1. Feeder2. Robot3. Discard Bin4. Table
Controlli automatici – Elementi di robotica industri ale − P. Rocco [39]
Controllo del motoSi adottano leggi di controllo in anello chiuso per controllare il movimento del manipolatore.Il controllo viene di norma eseguito nello spazio dei giunti (le variabili controllate sono le coordinate di giunto), anche se esistono studi sul controllo eseguito direttamente nello spazio Cartesiano (spazio operativo).
Si adotta un’architettura costituita da tre moduli:
Inversione cinematica
Controllo d'asseGenerazione della
traiettoria
xd qd
q
τ
Generazione della traiettoria e inversione cinematica possono essere eseguite fuori linea, o in linea con frequenza di campionamento ridotta (100 Hz). Il controllo d’asse va eseguito in linea (in tempo reale) con frequenze elevate (≥1 KHz).
Controlli automatici – Elementi di robotica industri ale − P. Rocco [40]
Modello decentralizzatoIncludendo nel modello dinamico del robot gli effetti dinamici dei motori, è possibile riformulare le equazioni del sistemi complessivo mettendo in evidenza un sottosistema nominale lineare e disaccoppiato, soggetto a un disturbo esercitato da una parte non lineare accoppiante:
Controlli automatici – Elementi di robotica industri ale − P. Rocco [41]
+(Jm+Br)−1 qm
−−
N−1∆B(.)N−1
N−1C(.,.)N−1
N−1g(.)
∫ ∫
Dm
τm qm qm
...
d
++
+
+−
NON LINEARE
ACCOPPIATO
LINEARE
DISACCOPPIATO
Più elevati sono i rapporti di trasmissione, minore è la rilevanza del termine di disturbo.
{ }{ }
{ }
( ) ( )qBBqB
NBNB
N
D
J
∆+=
=
===
−− 11r
i
mim
mim
ndiag
Ddiag
Jdiag
Controllo del moto e robotica industriale - Controllo decentralizzato - P. Rocco [42]
Controllo indipendente dei giunti� Il modello decentralizzato della
dinamica del robot è alla base del controllo indipendente dei giunti, soluzione largamente adottata nei controllori robotici industriali
� Lo schema è articolato in n anelli di controllo SISO, ignorando gli effetti di accoppiamento dinamico indotti dalla meccanica del robot, che vengono trattati come disturbi
� I singoli problemi di controllo sono assimilabili a quelli del controllo di servomeccanismi
� Il metodo si affida pesantemente all’effetto disaccoppiante degli alti rapporti di riduzione delle trasmissioni adottate nella robotica
τ2
τn
R1
τ1qmd1
R2
Rn
qmd2
qmdn
qm1
qm2
qmn
motore
trasmissione
carico
Controllo del moto e robotica industriale - Controllo centralizzato - P. Rocco [43]
Compensazione a coppia precalcolataIn questo schema, il controllore decentralizzato in anello chiuso viene affiancato da un controllore che opera in anello aperto, calcolando le coppie di disturbo sulla base del riferimento di posizione, velocità ed accelerazione.
� La compensazione delle non linearità può essere solo parziale (per esempio solo i termini gravitazionali ed i termini diagonali della matrice di inerzia)
� I termini di compensazione possono essere calcolati anche fuori linea, nel caso di traiettorie ripetute più volte.
+
MANIPOLATORE
CONTROLLORE
DECENTRALIZZATO
+ +
−qmd
−
AZIONE IN AVANTI
CENTRALIZZATA
SISTEMA LINEARE
DISACCOPPIATO
qmd
qmd.
..
qm
d
dd
+
PD + compensazione di gravitàL’azione integrale del regolatore PID può dare problemi di stabilità in anello chiuso. Un’alternativa al controllo di tipo PID consiste nell’utilizzare un controllo PD decentralizzato corredato da un termine che compensa gli effetti gravitazionali.
g(.)
τ+MANIPOLATORE
KD
KP q
q.
+ +
− +
qd −
Si può dimostrare che con questo schema di controllo applicato ad un manipolatore rigido, se la stima del termine gravitazionale è perfetta, si ottiene un sistema in anello chiuso il cui punto di equilibrio (caratterizzato da errore nullo) è globalmente asintoticamente stabile.
KP e KD diagonali
Controlli automatici – Elementi di robotica industri ale − P. Rocco [44]
Controllo a dinamica inversaSi può utilizzare il modello dinamico del manipolatore in uno schema di controllo centralizzato che idealmente compensa tutti gli effetti non lineari di accoppiamento meccanico tra i giunti:
η(q,q)
τ
+
MANIPOLATORE
KP
q
q.
−qd
.
KD
B(q)
qd
qd
.
..
+
++ + +
+
−v
( ) ( ) ( )qgqqqCqq += &&& ,,η
Controlli automatici – Elementi di robotica industri ale − P. Rocco [45]
Controllo a dinamica inversaLe equazioni del sistema controllato sono:
Il controllore PD “vede” un sistema completamente disaccoppiato costituito da doppi integratori, per i quali si può assegnare arbitrariamente la dinamica in anello chiuso.
( ) ( )( ) ( )
( ) ( )qqKqqKqv
qqvqB
qqqqB
−+−+=+=
=+
dPdDd&&&&
&
&&&
,
,
ηττη
Se la conoscenza del modello matematico è perfetta si ha:
vq =&&
e quindi, detto e = qd−q,
0=++ eKeKe PD&&&
η(q,q)
τ
+
MANIPOLATORE
KP
q
q.
−qd
.
KD
B(q)
qd
qd
.
..
+
++ + +
+
−v
Controlli automatici – Elementi di robotica industri ale − P. Rocco [46]
q1v11/s2
1/s2vn qn
.
.
.