Elementi di robotica industriale

Controlli automatici
Elementi di robotica industriale
Prof. Paolo Rocco ([email protected])
Politecnico di Milano
Dipartimento di Elettronica, Informazione e Bioingegneria
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 industriale − P. Rocco [2]
Un robot e la sua unità di controllo
Struttura meccanica con
attuatori e sensori
COMAU SMART NH3
Unità di controllo
COMAU C4G
Controlli automatici – Elementi di robotica industriale − P. Rocco [3]
Il sistema meccanico
Il 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 industriale − 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 industriale − P. Rocco [5]
Alcuni robot industriali
Taglia piccola (carico massimo inferiore a 6 Kg):
ABB IRB 140
COMAU SMART Six
(disponibile in laboratorio!)
(disponibile in laboratorio!)
KUKA KR 6
Controlli automatici – Elementi di robotica industriale − P. Rocco [6]
Alcuni robot industriali
Taglia media (carico massimo di circa 100 Kg):
ABB IRB 4400
COMAU SMART NJ 130
KUKA KR 140
Controlli automatici – Elementi di robotica industriale − P. Rocco [7]
Alcuni robot industriali
Taglia grande (carico massimo superiore a 100 Kg):
ABB IRB 7600
COMAU SMART NX2
KUKA KR 1000
(630 Kg max.)
(800 Kg max.)
(1000 Kg max.)
Controlli automatici – Elementi di robotica industriale − P. Rocco [8]
Applicazioni tipiche (COMAU SpA)
Assemblaggio
Saldatura a Punti
Carico – Scarico
Macchine
Saldatura ad arco
Automazione Linee
Interpresse
Movimentazione
Sigillatura - Siliconatura
Lavorazione
Controlli automatici – Elementi di robotica industriale − P. Rocco [9]
Vendite di robot industriali per anno
Controlli automatici – Elementi di robotica industriale − P. Rocco [10]
Vendite di robot ind. per applicazione
Controlli automatici – Elementi di robotica industriale − P. Rocco [11]
Vendite di robot industriali per area
Controlli automatici – Elementi di robotica industriale − P. Rocco [12]
Video: assemblaggio
FANUC Robotics
Controlli automatici – Elementi di robotica industriale − P. Rocco [13]
Video: carico, scarico, pallettizzazione
FANUC Robotics
Controlli automatici – Elementi di robotica industriale − P. Rocco [14]
Video: saldatura
FANUC Robotics
Controlli automatici – Elementi di robotica industriale − P. Rocco [15]
Video: lavorazioni
FANUC Robotics
Controlli automatici – Elementi di robotica industriale − P. Rocco [16]
Video: verniciatura, incollaggio
FANUC Robotics
Controlli automatici – Elementi di robotica industriale − P. Rocco [17]
Video: altri robot
ABB Flexpicker
ADEPT Quattro s650
Macchine a cinematica parallela: estremamente veloci
Controlli automatici – Elementi di robotica industriale − P. Rocco [18]
Nuovi robot: ridondanti
MOTOMAN SIA10D
KUKA LWR
I sette giunti migliorano la destrezza
Controlli automatici – Elementi di robotica industriale − P. Rocco [19]
Nuovi robot: a due bracci
Controlli automatici – Elementi di robotica industriale − P. Rocco [20]
Problemi legati al controllo del moto
Nella 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 industriale − P. Rocco [21]
Cinematica diretta
Il 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 industriale − P. Rocco [22]
Cinematica inversa
Il 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 industriale − P. Rocco [23]
Cinematica differenziale
Si 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 industriale − P. Rocco [24]
Cinematica: esempio
Manipolatore a due gradi di libertà
Cinematica diretta
p x = a1c1 + a2c12
py = a1s1 + a2s12
Cinematica inversa
c2 =
p x2 + py2 − a12 − a22
2a1a2
⇒
ϑ2 = Atan 2(s2 , c 2 )
s 2 = ± 1 − c 22
Cinematica differenziale
c1 =
p& = J (q )q&
− a s − a2s12
J= 1 1
 a1c1 + a2c12
− a2s12 

a2c12 
s1 =
(a1 + a2c 2 )px + a2s2 py
p x2 + p y2
(a1 + a2c 2 )py − a2s2 px
⇒
ϑ1 = Atan 2(s1, c1 )
p x2 + p y2
Controlli automatici – Elementi di robotica industriale − P. Rocco [25]
Dinamica
Il 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 industriale − P. Rocco [26]
Dinamica
Per 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
d ∂L
∂L
−
= ξi ,
&
dt ∂q i ∂q i
i = 1,K, n
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 industriale − P. Rocco [27]
Dinamica
Il 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:
B(q )q&& + C (q, q& )q& + g (q ) = τ
Coppie ai giunti
Termini gravitazionali
Termini centrifughi e di Coriolis
Termini inerziali: B(q) matrice di inerzia,
simmetrica e definita positiva ∀ q
Controlli automatici – Elementi di robotica industriale − P. Rocco [28]
Manipolatore planare a due bracci
a2
m2, I2
y0
l2
m1, I1
l1
ϑ2
a1
ϑ1
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
B (q )
x0
m1l12 + I1 + m2 a12 + m2 l 22 + 2m2a1l 2 c 2 + I 2


m2 l 22 + m2a1l 2c 2 + I 2

− 2m2a1l 2s 2 ϑ& 2

 m2a1l 2 s2 ϑ& 1
C (q, q& )
&& 
m2 l 22 + m2 a1l 2c 2 + I 2   ϑ
1
  +
&& 
 ϑ
m2 l 22 + I 2
 2 
− m2a1l 2 s2 ϑ& 2   ϑ& 1  (m1l1 + m2 a1 )gc1 + m2 gl 2c12   τ1 
  + 
= 
 ϑ& 2  
 τ 2 
m2 gl 2c12
0
g (q )
Controlli automatici – Elementi di robotica industriale − P. Rocco [29]
Dinamica diretta e inversa
B(q )q&& + C (q, q& )q& + g (q ) + Fv q& + fs (q,q& ) = τ
Dinamica diretta
..
Assegnate 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).
Problema la cui soluzione è utile per la simulazione numerica della dinamica
È risolubile sia con l’approccio di Lagrange sia con l’approccio di NewtonEulero
Dinamica inversa
..
.
Date 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 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 industriale − 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 industriale − P. Rocco [31]
Spazio dei giunti e spazio operativo
Traiettorie 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 industriale − P. Rocco [32]
Traiettorie nello spazio dei giunti
Quando 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:
B(q )q&& + C (q, q& )q& + g (q ) = τ
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
Controlli automatici – Elementi di robotica industriale − P. Rocco [33]
Percorso nello spazio operativo
La 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)
y
p
pi
b
t=
t
pf
n
x
n=
dp (s )
ds
d 2 p (s ) ds 2
d 2 p (s ) ds 2
b = t ×n
z
Controlli automatici – Elementi di robotica industriale − P. Rocco [34]
Percorso nello spazio operativo
Come esempio di parametrizzazione di un percorso possiamo considerare un
segmento nello spazio (percorso Cartesiano lineare):
p (s ) = pi +
s
pf − p i
dp
1
=
ds
pf − p i
d 2p
ds
2
(p f
(pf
− pi )
− pi )
=0
Il percorso è completamente caratterizzato dando due punti nello spazio
Cartesiano.
Controlli automatici – Elementi di robotica industriale − 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.
B
A
C
over-fly
Si realizza quindi un cosiddetto overfly (passaggio al volo)
È anche possibile specificare dei
percorsi costituiti da archi di
circonferenza
Controlli automatici – Elementi di robotica industriale − P. Rocco [36]
Pianificazione della traiettoria
Per 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).
0 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:
px=px(s)
py=py(s)
pz=pz(s)
dp &
p& = s&
= st
ds
0
t
s s
.
|s| è quindi la norma della velocità
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.
Controlli automatici – Elementi di robotica industriale − 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 testing
dei programmi (come RobotStudio di ABB).
In alternativa, l’operatore può muovere il robot con il teach
pendant 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 industriale − P. Rocco [38]
Esempio di programma
Il 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 pack
VAR
home, feeder, table, discard : POSITION
BEGIN CYCLE
MOVE TO home
OPEN HAND 1
WAIT FOR $DIN[1] = ON
-- signals feeder ready
MOVE TO feeder
CLOSE HAND 1
IF $DIN[2] = OFF THEN
-- determines if good part
MOVE TO table
ELSE
MOVE TO discard
ENDIF
OPEN HAND 1
-- drop part on table or in bin
END pack
1.
2.
3.
4.
Feeder
Robot
Discard Bin
Table
Controlli automatici – Elementi di robotica industriale − P. Rocco [39]
Controllo del moto
Si 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:
Generazione della
traiettoria
xd
Inversione
cinematica
τ
qd
Controllo d'asse
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 industriale − P. Rocco [40]
Modello decentralizzato
Includendo 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:
NON LINEARE
ACCOPPIATO
Più elevati sono i rapporti di
trasmissione, minore è la rilevanza
del termine di disturbo.
N−1g(.)
N−1C(.,.)N−1
+
d
τm −
+
+
+
J m = diag {J mi }
Dm = diag {Dmi }
N−1∆B(.)N−1
+
−
..
qm
−
(Jm+Br)−1
∫
.
qm
N = diag {ni }
∫
qm
Br = N −1B N −1
B(q ) = B + ∆B(q )
Dm
LINEARE
DISACCOPPIATO
Controlli automatici – Elementi di robotica industriale − P. Rocco [41]
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
qmd1
qm1
qmd2
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
τ2
R2
qm2
qmdn
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
τ1
R1
Rn
τn
qmn
carico
trasmissione
motore
Controllo del moto e robotica industriale - Controllo decentralizzato - P. Rocco [42]
Compensazione a coppia precalcolata
In 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.
..
qmd
.
qmd
AZIONE IN AVANTI
dd
CENTRALIZZATA
qmd +
−
CONTROLLORE
DECENTRALIZZATO
MANIPOLATORE
+
+
−
+
d
SISTEMA LINEARE
qm
DISACCOPPIATO
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.
Controllo del moto e robotica industriale - Controllo centralizzato - P. Rocco [43]
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.
KD
qd +
−
KP
+
−
+
+
τ
.
q
MANIPOLATORE
KP e KD diagonali
q
g(.)
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.
Controlli automatici – Elementi di robotica industriale − P. Rocco [44]
Controllo a dinamica inversa
Si 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:
..
qd
.
qd
+
−
KD
+ +v
+
qd +
−
B(q)
+
+
τ
.
q
MANIPOLATORE
q
KP
.
η(q,q)
η(q, q& ) = C (q, q& )q& + g (q )
Controlli automatici – Elementi di robotica industriale − P. Rocco [45]
Controllo a dinamica inversa
Le equazioni del sistema controllato sono:
B (q )q&& + η(q, q& ) = τ
τ = B (q )v + η(q, q& )
..
qd
.
qd
+
−
KD
+ +v
+
v = q&&d + K D (q& d − q& ) + K P (q d − q )
qd +
−
B(q)
+
+
.
q
τ
MANIPOLATORE
KP
.
η(q,q)
Se la conoscenza del modello matematico è
perfetta si ha:
q&& = v
e quindi, detto e = qd−q,
e&& + K D e& + K P e = 0
Il controllore PD “vede” un sistema completamente
disaccoppiato costituito da doppi integratori, per i quali si può
assegnare arbitrariamente la dinamica in anello chiuso.
v1
vn
1/s2
.
.
.
1/s2
q1
qn
Controlli automatici – Elementi di robotica industriale − P. Rocco [46]
q