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