Sei sulla pagina 1di 46

Controlli automatici

Elementi di robotica industriale

Prof. Paolo Rocco (paolo.rocco@polimi.it)


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
Unità di controllo
attuatori e sensori

COMAU SMART NH3 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: Teach pendant (o flex pendant):


MMI Interfaccia di programmazione
Elettronica di potenza Anche wireless
Pianificazione del moto
Controllo
Supervisione

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 KUKA KR 6


(disponibile in laboratorio!) (disponibile in laboratorio!)

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

Saldatura ad arco Carico – Scarico


Macchine

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
p x2 + py2 − a12 − a22
c2 =
2a1a2 ⇒ ϑ2 = Atan 2(s2 , c 2 )
s 2 = ± 1 − c 22
Cinematica differenziale
(a1 + a2c 2 )px + a2s2 py
p& = J (q )q& c1 =
p x2 + p y2
⇒ ϑ1 = Atan 2(s1, c1 )
− a s − a2s12 − a2s12 
(a1 + a2c 2 )py − a2s2 px
s1 =
J= 1 1  p x2 + p y2
 a1c1 + a2c12 a2c12 

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 d ∂L ∂L
− = ξi , i = 1,K, n
coordinata dt ∂q i ∂q i
&

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 Consideriamo un manipolatore planare a due bracci,
y0 m2, I2 caratterizzati da:
l2 masse: m1 e m2
ϑ2 lunghezze: a1 e a2
m1, I1
a1
distanze dei baricentri dagli assi dei giunti: l1 e l2
l1 momenti di inerzia baricentrali intorno a z0: I1 e I2
ϑ1
x0 B (q )

m1l12 + I1 + m2 a12 + m2 l 22 + 2m2a1l 2 c 2 + I 2 m2 l 22 + m2 a1l 2c 2 + I 2   ϑ


&& 
1
   +
 m2 l 22 + m2a1l 2c 2 + I 2 m2 l 22 + I 2  ϑ
&& 
  2 

− 2m2a1l 2s 2 ϑ& 2 − m2a1l 2 s2 ϑ& 2   ϑ& 1  (m1l1 + m2 a1 )gc1 + m2 gl 2c12   τ1 


   +  = 
 m2a1l 2 s2 ϑ& 1 0  ϑ& 2   m2 gl 2c12  τ 2 

C (q, q& ) 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 Newton-
Eulero

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
dp (s )
t=
p t ds
pi pf
n d 2 p (s ) ds 2
b n=
x 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 + (pf − pi )
s
pf − p i

dp
=
1
(p f − pi )
ds pf − p i

d 2p
2
=0
ds

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 B
concatenati per ottenere percorsi più
elaborati. A
C
Il punto intermedio tra due segmenti
consecutivi può essere considerato
over-fly
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

Controlli automatici – Elementi di robotica industriale − P. Rocco [36]


Pianificazione della traiettoria
Per la pianificazione della posizione, tenendo 0 t t
conto della parametrizzazione rispetto
all’ascissa curvilinea p = p(s), si può attribuire
la legge oraria alla variabile s(t). 0 s s
Per la determinazione di s(t) vale quanto detto px=px(s)
precedentemente circa la pianificazione della
traiettoria per variabili scalari (traiettorie
py=py(s)
polinomiali, armoniche, cicloidali, a profilo di pz=pz(s)
velocità trapezoidale, ecc.).
Si noti inoltre che:

dp & .
p& = s& = st |s| è quindi la norma della velocità
ds

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 1. Feeder
ENDIF 2. Robot
OPEN HAND 1 3. Discard Bin
-- drop part on table or in bin 4. Table
END pack
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:

xd qd τ
Generazione della Inversione
Controllo d'asse
traiettoria cinematica

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


N−1g(.) trasmissione, minore è la rilevanza
del termine di disturbo.
N−1C(.,.)N−1
J m = diag {J mi }
+
+ Dm = diag {Dmi }
N−1∆B(.)N−1
N = diag {ni }
+
d
.. .
τm − + − qm qm qm Br = N −1B N −1
(Jm+Br)−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 qmd1 τ1
R1
dinamica del robot è alla base del
controllo indipendente dei giunti, qm1
soluzione largamente adottata nei
controllori robotici industriali qmd2 τ2
Lo schema è articolato in n anelli di R2
controllo SISO, ignorando gli effetti di
qm2
accoppiamento dinamico indotti dalla
meccanica del robot, che vengono
qmdn τn
trattati come disturbi Rn
I singoli problemi di controllo sono
qmn
assimilabili a quelli del controllo di carico
servomeccanismi
Il metodo si affida pesantemente trasmissione
all’effetto disaccoppiante degli alti motore
rapporti di riduzione delle trasmissioni
adottate nella robotica

Controllo del moto e robotica industriale - Controllo decentralizzato - P. Rocco [42]


Compensazione a coppia precalcolata
In questo schema, il ..
qmd
controllore .
qmd AZIONE IN AVANTI
dd
decentralizzato in anello CENTRALIZZATA MANIPOLATORE

chiuso viene affiancato


da un controllore che d
qmd +
+ − qm
opera in anello aperto, CONTROLLORE + + SISTEMA LINEARE


DECENTRALIZZATO DISACCOPPIATO
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.

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

. KP e KD diagonali
q
qd + + − + τ
KP MANIPOLATORE
− + 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 .
− q
+ +v + τ
+ B(q) MANIPOLATORE
+ q
qd +
KP

.
η(q,q)

η(q, q& ) = C (q, q& )q& + g (q )

Controlli automatici – Elementi di robotica industriale − P. Rocco [45]


Controllo a dinamica inversa
..
qd
Le equazioni del sistema controllato sono:
.

B (q )q&& + η(q, q& ) = τ


qd +
KD .
− q

τ = B (q )v + η(q, q& )
+ +v + τ
+ B(q) MANIPOLATORE
+ q

v = q&&d + K D (q& d − q& ) + K P (q d − q )


qd +
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 v1 q1


1/s2
disaccoppiato costituito da doppi integratori, per i quali si può .
assegnare arbitrariamente la dinamica in anello chiuso. .
.
vn qn
1/s2

Controlli automatici – Elementi di robotica industriale − P. Rocco [46]

Potrebbero piacerti anche