Comments
Description
Transcript
Robotica Industriale
ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ROBOTICA Studio di macchine che possano sostituire l’uomo nell’esecuzione di un compito, sia in termini di attivit à fisica che decisionale Radici culturali ? ? ? ? mitologia automa robot (robota = lavoro esecutivo) letteratura fantascientifica Leggi fondamentali (Asimov) ? ? ? un robot non può far del male a un essere umano n é consentire, restando inoperoso, che un essere umano si trovi in pericolo un robot deve obbedire agli ordini impartiti da esseri umani, a meno che tali ordini non entrino in conflitto con la prima legge un robot deve proteggere la sua esistenza a meno che tale protezione non vada in conflitto con la prima o la seconda legge ROBOTICA INDUSTRIALE Robotica definita come scienza che studia la connessione intelligente tra percezione e azione ? ? ? sistema meccanico (locomozione + manipolazione) sistema sensoriale (sensori propriocettivi ed eterocettivi) sistema di governo Robotica avanzata ? ? ? ? Prof. Bruno SICILIANO spiccate caratteristiche di autonomia applicazioni in ambiente ostile (spaziale, sottomarino, nucleare, militare, ...) missioni di servizio (applicazioni domestiche, assistenza medica, assistenza ai disabili, agricoltura, ...). ancora in età infantile Robotica industriale ? ? progettazione, governo e applicazioni dei robot in ambito industriale tecnologia matura ROBOTICA INDUSTRIALE L’automazione è una tecnologia il cui obiettivo è quello di sostituire la macchina all’uomo in un processo di produzione, non solo per quanto riguarda l’esecuzione delle operazioni materiali, ma anche per ci ò che concerne l’elaborazione intelligente delle informazioni sullo stato del processo. ? ? ? Prof. Bruno SICILIANO automazione rigida (produzione in serie di grossi volumi di manufatti di caratteristiche costanti) automazione programmabile (produzione di piccoli e medi lotti di manufatti di caratteristiche variabili) automazione flessibile (produzione di lotti variabili di manufatti diversi) Robot industriale ? ? ? macchina con elevate caratteristiche di versatilit à e flessibilità un robot è una struttura meccanica multifunzionale e riprogrammabile progettato per spostare materiali, parti, utensili o dispositivi specializzati secondo movimenti variabili programmati per l’esecuzione di una variet à di compiti diversi (Robot Institute of America, 1980) componente tipico di sistemi di automazione programmabile ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ROBOT INDUSTRIALE Componenti: ? ? ? ? una struttura meccanica o manipolatore che consiste in un insieme di corpi rigidi (bracci) interconnessi tra di loro per mezzo di articolazioni (giunti); nel manipolatore si individuano una struttura portante, che ne assicura mobilit à, un polso, che conferisce destrezza, e un organo terminale che esegue il compito per cui il robot è utilizzato attuatori che imprimono il movimento al manipolatore attraverso l’azionamento dei giunti; si impiegano usualmente motori elettrici, idraulici e talvolta pneumatici sensori che misurano lo stato del manipolatore (sensori propriocettivi) ed eventualmente lo stato dell’ambiente (sensori eterocettivi) una unità di governo (calcolatore) con funzioni di controllo e supervisione dei movimenti del manipolatore ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CAPACITÀ DI IMPIEGO trasporto ? ? ? ? ? palettizzazione (disposizione di oggetti in maniera preordinata su un opportuno supporto raccoglitore) carico e scarico di magazzini carico e scarico di macchine operatrici e macchine utensili selezione e smistamento di parti confezionamento di merci manipolazione (lavorazione/assemblaggio) ? ? ? ? ? ? ? ? ? ? saldatura ad arco e a punti verniciatura a spruzzo fresatura e trapanatura incollaggio taglio laser e a getto d’acqua finitura assemblaggio di gruppi meccanici ed elettrici montaggio di schede elettroniche avvitatura cablaggio ROBOTICA INDUSTRIALE misura ? ? ? collaudo dimensionale rilevamento di profili individuazione di difetti di fabbricazione Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO STRUTTURA DEI MANIPOLATORI struttura meccanica a catena cinematica aperta o a catena cinematica chiusa gradi di mobilità (giunti prismatici o rotoidali) gradi di libertà (descrizione di un compito) spazio di lavoro (porzione dell’ambiente circostante a cui pu ò accedere l’organo terminale) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore cartesiano tre giunti prismatici ? ad ogni grado di mobilità corrisponde un grado di libert à ottime caratteristiche di rigidezza meccanica precisione di posizionamento del polso costante nello spazio di lavoro operazioni di trasporto e assemblaggio azionamenti elettrici (talvolta pneumatici) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore a portale manipolazione di oggetti di dimensione e peso rilevanti ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore cilindrico un giunto rotoidale e due prismatici ? ad ogni grado di mobilità corrisponde un grado di libert à (in coordinate cilindriche) buone caratteristiche di rigidezza meccanica la precisione di posizionamento del polso si riduce al crescere dello sbraccio orizzontale operazioni di trasporto di oggetti anche di peso rilevante azionamenti idraulici (o elettrici) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore sferico due giunti rotoidali e uno prismatico ? ad ogni grado di mobilità corrisponde un grado di libert à (in coordinate sferiche) discrete caratteristiche di rigidezza meccanica la precisione di posizionamento del polso si riduce al crescere dello sbraccio radiale operazioni di lavorazione azionamenti elettrici ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore SCARA due giunti rotoidali e uno prismatico elevata rigidezza a carichi verticali e cedevolezza a carichi orizzontali (Selective Compliance Assembly Robot Arm) la precisione di posizionamento del polso si riduce al crescere della distanza del polso stesso dall’asse del primo giunto manipolazione di piccoli oggetti azionamenti elettrici ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore antropomorfo tre giunti rotoidali ? spalla e gomito (che connette braccio e avambraccio) struttura più destra precisione di posizionamento variabile applicazioni molteplici azionamenti elettrici ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Polso sferico giunti rotoidali ? determinano l’orientamento dell’organo terminale caratteristiche di compattezza e destrezza disaccoppiamento tra posizione e orientamento Organo terminale specificato in relazione al compito che il robot deve eseguire ? ? pinza (trasporto) utensile o dispositivo specializzato (lavorazione e assemblaggio) ROBOTICA INDUSTRIALE Alcuni robot industriali Robot AdeptOne XL Robot Comau SMART S2 Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Robot ABB IRB 4400 Unità lineare Kuka KL 250 con robot KR 15/2 Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Robot Robotics Research K-1207i Robot Fanuc I-21i Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO MODELLISTICA E CONTROLLO DI MANIPOLATORI Modellistica ? ? ? struttura meccanica (cinematica + cinematica differenziale + statica + dinamica) attuatori sensori Controllo ? ? ? ? pianificazione del moto controllo nello spazio libero controllo nello spazio vincolato unità di governo ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Cinematica relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Cinematica differenziale relazioni tra velocità dei giunti e velocità (lineare e angolare) dell’organo terminale Statica relazioni tra forze e coppie applicate ai giunti e forze e momenti applicati all’organo terminale in situazioni di equilibrio Dinamica equazioni del moto del manipolatore in funzione delle forze e momenti agenti su di esso ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Pianificazione di traiettorie generazione delle leggi di moto per le variabili di interesse (giunti/organo terminale) Controllo del moto determinazione delle forze/coppie agli attuatori per garantire l’esecuzione delle traiettorie di riferimento Controllo dell’interazione gestione del contatto tra organo terminale e ambiente ROBOTICA INDUSTRIALE Attuatori e sensori attuazione del moto misura di variabili di interesse Unità di governo implementazione delle leggi di controllo interfaccia con operatore Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CINEMATICA relazioni tra posizioni dei giunti e posizione e orientamento dell’organo terminale Matrice di rotazione Rappresentazioni dell’orientamento Trasformazioni omogenee Cinematica diretta Spazio dei giunti e spazio operativo Calibrazione cinematica Problema cinematico inverso ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO POSIZIONE E ORIENTAMENTO DI UN CORPO RIGIDO Posizione 2 o0x 3 o0 = 4 o0y 5 o0z Orientamento x0 = x0xx + x0y y + x0z z y0 = yx0 x + yy0 y + yz0 z z0 = zx0 x + zy0 y + zz0 z ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO MATRICE DI ROTAZIONE 2 3 2 x0T x y0T x z0T x 3 R = 4 x0 y0 z0 5 = 4 x0T y y0T y z0T y 5 x0T z y0T z z0T z RT R = I RT = R; 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rotazioni elementari rotazione di intorno a z 2 cos ;sin Rz () = 4 sin cos 0 0 3 0 05 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO rotazione di intorno a y 2 cos 0 sin 3 Ry ( ) = 4 0 1 0 5 ;sin 0 cos rotazione di intorno a x 21 0 3 0 Rx( ) = 4 0 cos ;sin 5 0 sin cos ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rappresentazione di un vettore 2 px 3 p = 4 py 5 pz 2 p0x 3 p0 = 4 p0y 5 2 3 p = 4 x0 y0 z0 5 p0 = Rp0 p0 = R T p p0z ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio px = p0x cos ; p0y sin py = p0x sin + p0y cos pz = p0z ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rotazione di un vettore p = Rp0 pT p = p0T RT Rp0 Esempio px = p0x cos ; p0y sin py = p0x sin + p0y cos pz = p0z p = Rz ()p0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Matrice di rotazione ? ? ? fornisce l’orientamento di una terna di coordinate rispetto ad un’altra: i vettori colonna sono i coseni direttori degli assi della terna ruotata rispetto alla terna di partenza rappresenta una trasformazione di coordinate che mette in relazione le coordinate di uno stesso punto in due terne differenti (di origine comune) è l’operatore che consente di ruotare un vettore in una stessa terna di coordinate ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO COMPOSIZIONE DI MATRICI DI ROTAZIONE p =R p 1 1 2 p =R p p =R p 2 0 0 1 1 0 0 2 2 Rij = (Rji ); = (Rji )T 1 Rotazione in terna corrente R =R R 0 2 0 1 1 2 Rotazione in terna fissa R =R R 0 2 1 2 0 1 ROBOTICA INDUSTRIALE Esempio Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ANGOLI DI EULERO matrice di rotazione ? 9 parametri con 6 vincoli rappresentazione minima dell’orientamento ? 3 parametri indipendenti Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Angoli ZYZ R() = Rz (')Ry (#)Rz ( ) 2 c c c ; s s ;c c s ; s c c s 3 ' # ' ' # ' ' # = 4 s' c# c + c' s ;s' c# s + c' c s' s# 5 0 ;s# c 00 s# s c# ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Problema inverso ? Assegnata 2r R = 4r 11 21 r31 3 r r 5 r12 13 r22 23 r32 r33 i 3 angoli ZYZ sono (# 2 (0; )) ' = Atan2(r23; r13 ) q 2 2 + r23 ; r33 # = Atan2 r13 = Atan2(r32; ;r31 ) ovvero (# 2 (;; 0)) ' = Atan2(;r23; ;r13 ) q 2 2 # = Atan2 ; r13 + r23 ; r33 = Atan2(;r32; r31 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Angoli di RPY R() = Rz (')Ry (#)Rx( ) 2c c c s s ;s c c s c +s s 3 ' # ' # ' ' # ' = 4 s' c# s' s# s + c' c s' s# c ; c' s 5 ;s# c# s c# c ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Problema inverso ? Assegnata 2r R = 4r 11 21 r31 3 r r 5 r12 13 r22 23 r32 r33 i 3 angoli di RPY sono (# 2 (;=2; =2)) ' = Atan2(r21 ; r11 ) q 2 2 + r33 # = Atan2 ;r31 ; r32 = Atan2(r32 ; r33 ) ovvero (# 2 (=2; 3=2)) ' = Atan2(;r21; ;r11 ) q 2 2 # = Atan2 ;r31 ; ; r32 + r33 = Atan2(;r32; ;r33 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ASSE/ANGOLO R(#; r) = Rz ()Ry ( )Rz (#)Ry (; )Rz (;) sin = q ry rx2 + ry2 q sin = rx2 + ry2 cos = q rx rx2 + ry2 cos = rz ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 r (1 ; c ) + c r r (1 ; c ) ; r s # # x y # z # x 6 R(#; r) = 4 rxry (1 ; c# ) + rz s# ry (1 ; c#) + c# 2 2 rx rz (1 ; c# ) ; ry s# ry rz (1 ; c# ) + rx s# 3 rx rz (1 ; c# ) + ry s# ry rz (1 ; c# ) ; rx s# 5 rz2 (1 ; c# ) + c# R(#; r) = R(;#; ;r) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Problema inverso ? Assegnata 2r R = 4r 11 21 r31 3 r r 5 r12 13 r22 23 r32 r33 l’angolo e l’asse di rotazione sono (sin # 6= 0) r + r + r ; 1 # = cos ; 2 2r ;r 3 r = 1 4r ;r 5 1 11 32 22 23 31 2 sin # r13 21 ; r12 con rx2 + ry2 + rz2 = 1 33 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO QUATERNIONE UNITARIO rappresentazione a 4 parametri Q = f; g = cos #2 = sin #2 r 2 + 2x + 2y + 2z = 1 ? (#; r) e (;#; ;r) forniscono lo stesso quaternione 2 2( + ) ; 1 2(xy ; z ) 2(xz + y ) 3 x 6 R(; ) = 4 2(xy + z ) 2( + y ) ; 1 2(y z ; x ) 75 2 2 2 2(x z ; y ) 2 2(y z + x ) 2(2 + 2z ) ; 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Problema inverso ? Assegnata 2r R = 4r 11 21 r31 il quaternione è ( 3 r r 5 r12 13 r22 23 r32 r33 0) p = 12 r11 + r22 + r33 + 1 2 sgn (r32 ; r23)pr11 ; r22 ; r33 + 1 3 = 12 64 sgn (r13 ; r31)ppr22 ; r33 ; r11 + 1 75 sgn (r21 ; r12 ) r33 ; r11 ; r22 + 1 quaternione estratto da R ; = RT 1 Q;1 = f; ;g prodotto tra quaternioni Q1 Q2 = f1 2 ; T1 2 ; 1 2 + 2 1 + 1 2 g ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO TRASFORMAZIONI OMOGENEE Trasformazione di coordinate (traslazione + rotazione) p =o +R p 0 0 1 0 1 1 Trasformazione inversa p = ;R o + R p 1 1 0 0 1 1 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rappresentazione omogenea 2 3 p~ = 64 p 75 1 Matrice di trasformazione omogenea 2 A = 64 R 0 1 0 1 3 o 75 0 1 0T 1 Trasformazione di coordinate p~ = A p~ 0 0 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasformazione inversa p~ = A p~ = ;A ; p~ 1 ove 1 0 0 2 A = 64 R 1 0 1 0 1 0 1 0T 3 ;R o 75 1 0 1 A; 6= AT 1 Successione di trasformazioni p~ = A A : : : Ann; p~n 0 0 1 1 2 0 1 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CINEMATICA DIRETTA Manipolatore ? insieme di bracci connessi tramite giunti Catena cinematica (dalla base all’organo terminale) ? ? aperta (sequenza unica) chiusa (sequenza forma un anello) Grado di mobilità ? tipicamente associato a una articolazione = variabile di giunto ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Terna base e terna utensile Equazione cinematica diretta 2 3 b (q) sb (q) ab (q) pb (q) 7 n 6 b e e e 5 Te (q ) = 4 e 0 0 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore planare a due bracci 2 b sb n 6 b T e (q ) = 4 e e 0 0 20 s = 64 01 ;c0 12 12 0 0 3 abe pbe 75 0 1 c12 a1 c1 + a2 c12 3 s12 a1 s1 + a2 s12 75 0 0 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Catena aperta Tn (q) = A (q )A (q ) : : : Ann; (qn) 0 0 1 1 1 2 2 Teb (q) = T b Tn (q)Ten 0 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Convenzione di Denavit-Hartenberg si sceglie l’asse zi giacente lungo l’asse del giunto i + 1 si individua Oi all’intersezione dell’asse z i con la normale comune agli assi zi;1 e zi , e con Oi0 si indica l’intersezione della normale comune con z i;1 si assume l’asse xi diretto lungo la normale comune agli assi zi;1 e zi con verso positivo dal giunto i al giunto i + 1 si sceglie l’asse yi in modo da completare una terna levogira ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Definizione non univoca della terna: ? ? ? ? ? con riferimento alla terna 0, per la quale la sola direzione dell’asse z0 risulta specificata: si possono quindi scegliere arbitrariamente O0 ed x0 con riferimento alla terna n, per la quale il solo asse x n risulta soggetto a vincolo (deve essere normale all’asse z n;1): infatti non vi è giunto n + 1, per cui non è definito zn e lo si può scegliere arbitrariamente quando due assi consecutivi sono paralleli, in quanto la normale comune tra di essi non è univocamente definita quando due assi consecutivi si intersecano, in quanto il verso di xi è arbitrario quando il giunto i è prismatico, nel qual caso la sola direzione dell’asse zi;1 è determinata ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Parametri di Denavit-Hartenberg ai di i distanza di Oi da Oi0 ; #i angolo intorno all’asse z i;1 tra l’asse xi;1 e l’asse xi valutato positivo in senso antiorario. coordinata su zi;1 di Oi0 ; angolo intorno all’asse x i tra l’asse zi;1 e l’asse zi valutato positivo in senso antiorario; ai e i sono sempre costanti se il giunto è rotoidale la variabile è #i se il giunto è prismatico la variabile è di ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasformazione di coordinate 2 c# ;s# 0 0 3 Aii; = 64 s0# c0# 01 d0i 75 i 0 1 i i i 0 0 0 1 2 1 0 0 ai 3 Aii = 64 00 sc ;cs 00 75 0 i 0 0 i i 0 i 1 2 c# ;s# c s# s aic# 3 Aii; (qi) = Aii; Aii = 64 s0# c#sc ;cc# s aidsi# 75 i 1 0 1 0 i 0 i i i 0 i i i i i 0 i i i i 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Procedura operativa 1. Individuare e numerare consecutivamente gli assi dei giunti; assegnare, rispettivamente, le direzioni agli assi z 0 , : : : , zn;1 2. Fissare la terna base posizionandone l’origine sull’asse z 0 ; gli assi x0 e y0 sono scelti in maniera tale da ottenere una terna levogira Eseguire i passi da 3 a 5 per i = 1; : : : ; n ; 1: 3. Individuare l’origine O i all’intersezione di zi con la normale comune agli assi zi;1 e zi . Se gli assi zi;1 e zi sono paralleli e il giunto i è rotoidale, posizionare O i in modo da annullare d i ; se il giunto i è prismatico, scegliere O i in corrispondenza di una posizione di riferimento per la corsa del giunto (ad esempio un fine-corsa) 4. Fissare l’asse xi diretto lungo la normale comune agli assi z i;1 e zi con verso positivo dal giunto i al giunto i + 1 5. Fissare l’asse yi in modo da ottenere una terna levogira Per completare: 6. Fissare la terna n, allineando z n lungo la direzione di zn;1 se il giunto n è rotoidale, ovvero scegliendo z n in maniera arbitraria se il giunto n è prismatico; fissare l’asse x n in accordo al punto 4 7. Costruire per i = 1; : : : ; n la tabella dei parametri a i ; di ; i ; #i 8. Calcolare sulla base dei parametri di cui al punto 7 le matrici di trasformazione omogenea ii;1 (qi ) per i = 1; : : : ; n A 9. Calcolare Tn (q ) = A : : : Ann; 0 0 1 1 che fornisce posizione e orientamento della terna n rispetto alla terna 0 b e T n , calcolare la funzione cinematica diretta T e b b n Te (q) = T Tn Te che fornisce posizione e orientamento della 10. Assegnate 0 0 0 terna utensile rispetto alla terna base ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Catena chiusa Connessione di un singolo braccio con due bracci giunto virtuale di taglio Aij (q0) = Aii (qi ) : : : Ajj; (qj ) Aik (q00) = Aii (qi ) : : : Akk; (qk ) +10 +100 +10 +100 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Vincoli ? giunto j + 1 rotoidale ? giunto j + 1 prismatico ( Rij (q0) ;pij (q0) ; pik (q00) = [ 0 0 djk ]T zji (q0) = zki (q00) 0 8 xiT (q0) ; > j i (q0 ) ; pi (q00 ) = p > k iT 0 < yj (q ) j 0 i (q0 ) = z i (q00 ) z > j > : xiT (q0)xi (kq00) = cos #jk j k ? risolti in termini di q : : : Tn (q) = Ai Aij Ajn 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Procedura operativa 1. Selezionare un giunto non attuato della catena chiusa. Ipotizzare di aprire tale giunto in modo da ottenere una catena aperta con struttura ad albero 2. Calcolare le trasformazioni omogenee secondo la convenzione di Denavit-Hartenberg 3. Trovare i vincoli di uguaglianza per le due terne connesse dal giunto di taglio 4. Risolvere i vincoli in termini di un numero ridotto di variabili di giunto 5. Esprimere le trasformazioni omogenee in funzione di tali variabili di giunto e calcolare la funzione cinematica diretta per composizione della varie trasformazioni dalla terna base alla terna utensile ROBOTICA INDUSTRIALE Manipolatore planare a tre bracci Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Braccio 1 2 3 ai a1 a2 a3 Prof. Bruno SICILIANO i 0 0 0 di 0 0 0 #i #1 #2 #3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 ci ;si 0 aici 3 Aii; = 64 s0i c0i 01 ai0si 75 1 0 0 T =A A A 2 c ;s = 64 s 0 c 0 0 3 0 1 1 2 123 2 3 123 123 123 0 0 0 1 i = 1; 2; 3 0 a1 c1 + a2 c12 + a3 c123 3 0 a1 s1 + a2 s12 + a3 s123 75 1 0 0 1 ROBOTICA INDUSTRIALE Manipolatore a parallelogramma Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Braccio 10 20 30 100 4 Prof. Bruno SICILIANO ai a1 a2 a3 a1 a4 0 0 0 00 i 0 0 0 0 0 di 0 0 0 0 0 #i #1 #2 #3 #1 0 0 0 0 00 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO A (q0) = A A A 2c ;s c = 64 s 0 0 0 30 10 20 0 10 20 30 10 20 30 10 20 30 10 20 30 10 20 30 0 0 0 a1 c1 + a2 c1 2 + a3 c1 2 3 0 a1 s1 + a2 s1 2 + a3 s1 2 3 1 0 0 1 2 c ;s A (q00 ) = 64 s0 c0 0 0 21 0 0 A = 64 00 10 01 00 30 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a1 c1 0 a1 s1 1 1 1 0 0 1 a4 3 0 75 0 0 0 0 1 100 0 100 0 100 00 00 00 00 00 3 75 0 3 75 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Risoluzione vincoli ? ? orientamento (OK) posizione 203 R (q0) ;p (q0) ; p (q00) = 4 0 5 30 0 0 30 0 100 0 + a1 (c1 + c1 2 3 ) + a1 (c1 2 ; c1 ) = 0 a1 (s1 + s1 2 3 ) + a1 (s1 2 ; s1 ) = 0 #2 = #1 ; #1 #3 = ; #2 = ; #1 + #1 0 0 0 0 0 0 00 0 0 00 0 0 0 0 00 0 0 00 0 00 0 0 0 00 0 Cinematica diretta 2 ;c s 0 a c ; a c 3 T (q) = A (q)A = 64 ;0s ;0c 01 a s 0; a s 75 10 0 4 0 30 30 4 10 0 10 10 0 0 100 100 4 10 100 100 4 10 1 ROBOTICA INDUSTRIALE Manipolatore sferico Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Braccio 1 2 3 ai 0 0 0 Prof. Bruno SICILIANO i ;=2 =2 0 di 0 d2 d3 #i #1 #2 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 c 0 ;s 0 3 A = 64 s0 ;01 c0 00 75 1 0 1 1 0 2c 0 s 0 3 A = 64 s0 01 ;0c d0 75 1 2 1 0 0 2 1 2 1 2 2 0 0 0 21 0 0 0 3 A = 64 00 10 01 d0 75 2 3 3 0 0 0 1 T =A A A 2 c c ;s c s c s d ; s d 3 = 64 s;sc c0 scs s s dc d+ c d 75 0 3 0 1 1 2 2 3 1 2 1 2 0 2 1 1 0 1 2 1 2 3 1 2 1 2 1 2 3 1 2 2 0 2 3 1 2 1 ROBOTICA INDUSTRIALE Manipolatore antropomorfo Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Braccio 1 2 3 ai 0 a2 a3 Prof. Bruno SICILIANO i =2 0 0 di 0 0 0 #i #1 #2 #3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2c 0 s 03 A = 64 s0 01 ;0c 00 75 1 0 1 2 ci Aii; = 64 s0i 1 0 1 0 ;si ci 0 0 T =A A A 2 c c ;c s = 64 ssc ;sc s 0 3 0 1 1 2 2 3 1 23 1 23 1 23 1 23 23 0 1 23 0 1 0 0 0 1 0 0 1 ai ci 3 aisi 75 i = 2; 3 0 1 s1 c1 (a2 c2 + a3 c23 ) 3 ;c1 s1 (a2 c2 + a3 c23 ) 75 0 a2 s2 + a3 s23 0 1 ROBOTICA INDUSTRIALE Polso sferico Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Braccio 4 5 6 ai 0 0 0 Prof. Bruno SICILIANO i ;=2 =2 0 di 0 0 d6 #i #4 #5 #6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 c 0 ;s 0 3 A = 64 s0 ;01 c0 00 75 4 3 4 2c 0 s 03 A = 64 s0 01 ;0c 00 75 4 4 5 4 0 0 0 5 4 5 1 5 5 0 0 0 1 2 c ;s 0 0 3 A = 64 s0 c0 01 d0 75 6 6 5 6 0 6 6 6 0 0 1 T =A A A 2 c c c ; s s ;c c s ; s c c s c s d 3 = 64 s c ;c s +c c s ;s c ss s+ c c scs scsdd 75 3 6 3 4 4 5 5 6 4 5 6 4 6 4 5 6 4 6 4 5 4 5 6 4 5 6 4 6 4 5 6 4 6 4 5 4 5 6 5 5 6 5 6 0 5 6 0 0 1 ROBOTICA INDUSTRIALE Manipolatore di Stanford Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 3 T = T T = 64 n s a p 75 0 6 0 3 3 6 0 0 0 0 0 0 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2c s d ;s d p = 4s s d +c d 0 1 2 3 1 2 1 2 3 1 2 ; 3 + ;c (c c s + s c ) ; s s s d + s (c c s + s c ) + c s s d 5 1 2 4 5 2 5 1 4 5 6 1 2 4 5 2 5 1 4 5 6 c2 d3 + (;s2 c4 s5 + c2 c5 )d6 2 c ;c (c c c ; s s ) ; s s c ; s (s c c + c s ) 3 ; 4 n = s c (c c c ; s s ) ; s s c + c (s c c + c s ) 5 ;s (c c c ; s s ) ; c s c 2 c ;;c (c c s + s c ) + s s s ; s (;s c s + c c ) 3 s = 4 s ;;c (c c s + s c ) + s s s + c (;s c s + c c ) 5 s (c c s + s c ) + c s s 2 c (c c s + s c ) ; s s s 3 a = 4 s (c c s + s c ) + c s s 5 0 1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6 1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6 2 0 4 6 2 5 6 1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6 1 2 4 5 6 4 6 2 5 6 1 4 5 6 4 6 2 0 4 5 6 4 5 6 1 2 4 5 2 5 1 4 5 1 2 4 5 2 5 1 4 5 ;s2 c4 s5 + c2 c5 4 6 2 5 6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore antropomorfo con polso sferico ROBOTICA INDUSTRIALE Braccio 1 2 3 4 5 6 ai 0 a2 0 0 0 0 Prof. Bruno SICILIANO i =2 0 =2 ;=2 =2 0 di 0 0 0 d4 0 d6 #i #1 #2 #3 #4 #5 #6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2c 0 s 03 A = 64 s0 01 ;0c 00 75 3 2 3 2 c 0 ;s 0 3 A = 64 s0 ;01 c0 d0 75 3 3 4 3 0 0 0 4 3 4 1 4 0 4 0 4 0 1 2 a c c + d c s + d ;c (c c s + s c ) + s s s 3 ; 4 p = a s c + d s s + d s (c c s + s c ) ; c s s 5 0 2 1 2 4 1 23 6 1 23 4 5 23 5 1 4 5 2 1 2 4 1 23 6 1 23 4 5 23 5 1 4 5 a2 s2 ; d4 c23 + d6 (s23 c4 s5 ; c23 c5 ) 2 c ;c (c c c ; s s ) ; s s c + s (s c c + c s ) 3 n = 4 s ;c (c c c ; s s ) ; s s c ; c (s c c + c s ) 5 s (c c c ; s s ) + c s c 2 c ;;c (c c s + s c ) + s s s + s (;s c s + c c ) 3 s = 4 s ;;c (c c s + s c ) + s s s ; c (;s c s + c c ) 5 ;s (c c s + s c ) ; c s s 2 c (c c s + s c ) + s s s 3 a = 4 s (c c s + s c ) ; c s s 5 0 0 1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6 1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6 23 4 5 6 23 5 6 1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6 1 23 4 5 6 4 6 23 5 6 1 4 5 6 4 6 23 0 4 6 4 5 6 1 23 4 5 23 5 1 4 5 1 23 4 5 23 5 1 4 5 s23 c4 s5 ; c23 c5 4 6 23 5 6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SPAZIO DEI GIUNTI E SPAZIO OPERATIVO Spazio dei giunti 2q 3 q = 4 ... 5 1 qn ? qi = #i (giunto rotoidale) ? qi = di (giunto prismatico) Spazio operativo p x= ? p (posizione) ? (orientamento) Equazione cinematica diretta x = k(q) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio 2p 3 2a c +a c +a c 3 x x = 4 py 5 = k(q) = 4 a s + a s + a s 5 1 1 2 12 3 123 1 1 2 12 3 123 #1 + #2 + #3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Spazio di lavoro Spazio di lavoro raggiungibile p = p(q) ? qim qi qiM i = 1; : : : ; n elementi di superficie planare, sferica, toroidale e cilindrica Spazio di lavoro destro ? orientamenti diversi ROBOTICA INDUSTRIALE Esempio ? configurazioni ammissibili Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? spazio di lavoro Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Accuratezza ? ? scostamento tra posizione conseguita con la postura assegnata e posizione calcolata tramite la cinematica diretta valori tipici: (0:2; 1) mm Ripetibilità ? ? Prof. Bruno SICILIANO capacità del manipolatore di tornare in una posizione precedentemente raggiunta valori tipici: (0:02; 0:2) mm Ridondanza cinematica ? m < n (intrinseca) ? r < m = n (funzionale) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CALIBRAZIONE CINEMATICA Valori precisi dei parametri DH per migliorare l’accuratezza di un manipolatore Equazione cinematica diretta in funzione di tutti i parametri x = k(a; ; d; #) xm xn locazione misurata locazione nominale (parametri fissi + variabili giunto) x = @@ ak a + @@k + @@ kd d + @@#k # = (n ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ? l misure (lm 4n) 2 x1 3 2 1 3 x = 4 ... 5 = 4 ... 5 = xl l Soluzione = ( T );1 T x 0 = n + : : : finché converge ? ? stime più accurate dei parametri fissi correzioni alle misure dei trasduttori Inizializzazione postura di riferimento (home) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO PROBLEMA CINEMATICO INVERSO Cinematica diretta Cinematica inversa Complessità ? q =) T ? q =) x ? T =) q ? x =) q ? ? ? ? soluzione analitica (in forma chiusa) ? soluzioni multiple infinite soluzioni non esistono soluzioni ammissibili Intuizione ? ? algebrica geometrica Tecniche numeriche ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione del manipolatore planare a tre bracci Soluzione algebrica = #1 + #2 + #3 pWx = px ; a3 c = a1 c1 + a2 c12 pWy = py ; a3 s = a1 s1 + a2 s12 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO p2Wx + p2Wy ; a21 ; a22 c2 = 2a1 a2 q 2 s2 = 1 ; c2 #2 = Atan2(s2 ; c2 ) ; a2 s2 pWx s1 = (a1 + a2pc22 )pWy + p2 Wx Wy Wy Wy + a2 s2 pWy c1 = (a1 + a2pc22 )pWx + p2 #1 = Atan2(s1 ; c1 ) #3 = ; #1 ; #2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione geometrica p2Wx + p2Wy ; a21 ; a22 c2 = . 2a1 a2 #2 = cos ;1 (c2 ) = Atan2(pWy ; pWx ) q c p2Wx + p2Wy = a1 + a2 c2 0 1 pWx + pWy + a ; a A ; @ q = cos 1 2 2 2 1 2a1 p2Wx + p2Wy #1 = 2 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione di manipolatori con polso sferico pW = p ; d a 6 Soluzione disaccoppiata ? ? ? ? ? p calcolare la posizione del polso W (q1 ; q2 ; q3 ) risolvere la cinematica inversa per (q 1 ; q2 ; q3 ) R (q ; q ; q ) calcolare R (# ; # ; # ) = R T R calcolare 0 3 1 3 6 4 2 5 3 6 0 3 risolvere la cinematica inversa per l’orientamento (# 4; #5 ; #6 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione del manipolatore sferico (A01 );1T30 = A12 A23 2 p c +p s 3 2 d s 3 Wx Wy 5 = 4 ;d c 5 pW = 4 ;pWz 1 1 1 ;pWx s1 + pWy c1 3 2 3 2 d2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 1 ; t c1 = 1 + t2 s1 = 1 +2tt2 (d2 + pWy )t2 + 2pWx t + d2 ; pWy = 0 q #1 = 2Atan2 ;pWx pWx + pWy ; d ; d2 + pWy 2 2 2 2 pWx c1 + pWy s1 = d3 s2 ;pWz ;d3 c2 #2 = Atan2(pWx c1 + pWy s1 ; pWz ) q d3 = (pWx c1 + pWy s1 )2 + p2Wz ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione del manipolatore antropomorfo #1 = Atan2(pWy ; pWx ) #1 = + Atan2(pWy ; pWx ) p2Wx + p2Wy + p2Wz ; a22 ; a23 c3 = q 2 2a2a3 s3 = 1 ; c3 q (a2 + a3 c3 )pWz ; a3 s3 p2Wx + p2Wy s2 = p2Wx + p2Wy + p2Wz q2 (a2 + a3 c3 ) pWx + p2Wy + a3 s3 pWz c2 = p2Wx + p2Wy + p2Wz ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Quattro configurazioni ammissibili ? soluzione univoca solo se pWx 6= 0 pWy 6= 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Soluzione del polso sferico 2 nx sx ax 3 R = 4 ny sy ay 5 3 6 3 3 3 3 3 3 n3z s3z a3z #4 = Atan2(a3y ; a3x ) q 3 2 3 2 3 #5 = Atan2 (ax ) + (ay ) ; az #6 = Atan2(s3z ; ;n3z ) #4 = Atan2(;a3y ; ;a3x) q 3 2 3 2 3 #5 = Atan2 ; (ax ) + (ay ) ; az #6 = Atan2(;s3z ; n3z ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CINEMATICA DIFFERENZIALE relazioni tra velocità dei giunti e velocità dell’organo terminale Jacobiano geometrico Jacobiano analitico Singolarità cinematiche Analisi della ridondanza Inversione della cinematica differenziale Algoritmi per l’inversione cinematica STATICA relazioni tra forze all’organo terminale e coppie ai giunti ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO JACOBIANO GEOMETRICO 2 T (q) = 64 R(q) 0T 3 p(q) 75 1 Obiettivo p_ = JP (q)q_ ! = JO (q)q_ p_ v = ! = J (q)q_ ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Derivata di una matrice di rotazione R(t)RT (t) = I R_ (t)RT (t) + R(t)R_ T (t) = O Posto S (t) = R_ (t)RT (t) S (t) + S T (t) = O R_ (t) = S (!(t))R(t) 2 0 ;! ! 3 z y 4 S = !z 0 ;!x 5 ;!y !x 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio 2 cos ;sin Rz () = 4 sin cos 0 0 3 0 05 1 2 ;_ sin ;_ cos 0 3 2 cos sin 0 3 S (t) = 4 _ cos ;_ sin 0 5 4 ;sin cos 0 5 0 0 1 2 0 0;_ 0 3 0 0 = 4 _ 0 0 5 = S (!(t)) 0 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO p =o +R p 0 0 1 0 1 1 p_ = o_ + R p_ + R_ p = o_ + R p_ + S (! )R p = o_ + R p_ + ! r 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Velocità di un braccio Velocità lineare pi = pi; + Ri; rii;; ;i 1 1 1 1 p_ i = p_ i; + Ri; r_ ii;; ;i + !i; Ri; rii;; ;i = p_ i; + vi; ;i + !i; ri; ;i 1 1 1 1 1 1 1 1 1 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Velocità angolare Ri = Ri; Rii; 1 1 S (!i)Ri = S (!i; )Ri + Ri; S (!ii;; ;i)Rii; 1 1 1 1 = S (!i;1 )Ri + S (Ri;1!ii;;11;i )Ri !i = !i; + Ri; !ii;; ;i = !i; + !i; ;i 1 1 1 1 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO !i = !i; + !i; ;i p_ i = p_ i; + vi; ;i + !i; ri; ;i 1 1 1 1 1 1 Giunto prismatico !i; ;i = 0 vi; ;i = d_izi; 1 1 1 !i = !i; p_ i = p_ i; + d_izi; + !i ri; ;i 1 1 1 1 Giunto rotoidale !i; ;i = #_ izi; vi; ;i = !i; ;i ri; ;i 1 1 1 1 1 !i = !i; + #_ izi; p_ i = p_ i; + !i ri; ;i 1 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Calcolo dello Jacobiano 2| 3 | P Pn 4 5 J= ::: |O |On 1 1 Velocità angolare ? giunto i prismatico q_i |Oi = 0 ? =) |Oi = 0 giunto i rotoidale q_i |Oi = #_ i zi;1 =) |Oi = zi; 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Velocità lineare ? giunto i prismatico q_i |Pi = d_i zi;1 ? |Pi = zi; =) giunto i rotoidale q_i |Pi = !i;1;i ri;1;n = #_ i zi;1 (p ; pi;1 ) + |Pi = zi; (p ; pi; ) 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Colonna dello Jacobiano geometrico 8 zi; | > < Pi = 0 |Oi > : zi; z(p ; pi; ) i; 1 1 1 1 ? zi;1 = R10 (q1 ) : : : Rii;;12(qi;1)z0 ? p~ = A01 (q1 ) : : : Ann;1(qn )~p0 ? p~ i;1 = A01 (q1 ) : : : Aii;;21 (qi;1)~p0 per un giunto prismatico per un giunto rotoidale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rappresentazione in terna differente p_ t Rt !t = O t R = O Rt Jt = O Ot p_ R ! Ot J q_ R Ot J R ROBOTICA INDUSTRIALE Manipolatore planare a tre bracci Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO z (p ; p ) z (p ; p ) z (p ; p ) J (q) = z z z 0 0 1 1 0 2 2 1 2 203 2a c 3 2a c +a c 3 p = 405 p = 4a s 5 p = 4a s + a s 5 1 1 0 0 1 1 1 2 0 1 1 2 12 1 1 2 12 2a c +a c +a c 3 p = 4a s +a s +a s 5 0 203 z = z = z = 405 0 1 1 2 12 3 123 1 1 2 12 3 123 1 2 1 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 ;a s ; a s ; a s 66 a c + a c + a c 0 J = 666 0 4 0 1 1 1 1 2 12 2 12 3 123 3 123 1 ;a s ; a s ; a s JP = 1 1 2 12 3 123 a1 c1 + a2 c12 + a3 c123 ;a2 s12 ; a3 s123 ;a3 s123 3 a2 c12 + a3 c123 0 0 0 1 a3 c123 0 0 0 1 77 77 75 ;a2 s12 ; a3 s123 ;a3s123 a2 c12 + a3 c123 a3 c123 ROBOTICA INDUSTRIALE Manipolatore antropomorfo Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO z (p ; p ) z (p ; p ) z (p ; p ) J= z z z 0 0 1 1 0 2 1 2 203 2a c c 3 p = p = 405 p = 4a s c 5 0 as 2 c (a c + a c ) 3 p = 4 s (a c + a c ) 5 2 1 2 0 1 2 2 1 2 2 2 1 2 2 3 23 1 2 2 3 23 a2 s2 + a3 s23 203 2s 3 z = 4 0 5 z = z = 4 ;c 5 1 0 1 1 2 2 0 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 2 ;s (a c + a c ) ;c (a s + a s ) ;a c s 66 c (a c + a c ) ;s (a s + a s ) ;a s s 0 a c +a c ac J = 666 0 s s 4 0 ;c ;c 1 1 2 2 3 23 2 2 3 23 1 2 2 3 23 3 1 23 1 2 2 3 23 3 1 23 2 2 3 23 1 1 0 3 23 1 1 0 1 3 77 77 75 2 ;s (a c + a c ) ;c (a s + a s ) ;a c s 3 JP = 4 c (a c + a c ) ;s (a s + a s ) ;a s s 5 1 1 2 2 2 2 0 3 23 3 23 1 2 2 3 23 3 1 23 1 2 2 3 23 3 1 23 a2 c2 + a3 c23 a3 c23 ROBOTICA INDUSTRIALE Manipolatore di Stanford Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO z (p ; p ) z (p ; p ) z J= z z 0 z (p ; p ) z (p ; p ) z (p ; p ) z z z 0 0 1 1 0 3 2 1 3 4 4 3 5 5 4 5 203 2c s d ; s d 3 p = p = 405 p = p = p = 4s s d + c d 5 0 1 3 0 4 5 1 2 3 1 2 1 2 3 1 2 c2 d3 2 c s d ; s d + d (c c c s + c c s ; s s s ) 3 p = 4 s s d + c d + d (c s s + c c s s + c s s ) 5 1 2 3 1 2 6 1 2 4 5 1 2 3 1 2 6 1 4 5 1 5 2 1 4 5 2 4 1 5 5 1 2 c2 d3 + d6 (c2 c5 ; c4 s2 s5 ) 203 2 ;s 3 2c s 3 z = 405 z = 4 c 5 z = z = 4s s 5 1 0 1 1 1 0 1 2 2 3 1 2 c2 2 ;c c s ; s c 3 2c c c s ;s s s +c s c 3 z = 4 ;s c s + c c 5 z = 4 s c c s + c s s + s s c 5 4 1 2 4 1 4 1 2 4 1 4 s2 s4 5 1 2 4 5 1 4 5 1 2 5 1 2 4 5 1 4 5 1 2 5 ;s2 c4 s5 + c2 c5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO JACOBIANO ANALITICO p = p(q) = (q) p_ = @@pq q_ = JP (q)q_ _ = @@q q_ = J(q)q_ p_ JP (q) x_ = _ = J(q) q_ = JA (q)q_ JA(q) = @ k@(qq) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Velocità di rotazione in terna corrente di angoli di Eulero ZYZ ? per effetto di '_ : [ !x !y !z ]T = '_ [ 0 0 1 ]T ? per effetto di #_ : [ !x !y !z ]T = #_ [ ;s' c' 0 ]T ? per effetto di _ : [ !x !y !z ]T = _ [ c' s# s' s# c# ]T ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Composizione di velocità di rotazione elementari 2 0 ;s c s 3 ' ' # ! = 4 0 c' s' s# 5 _ = T ()_ 1 0 c# ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Significato fisico di ! ! = [ =2 0 0 ]T 0 t 1 ! = [ 0 =2 0 ]T 1 < t 2 Z 0 2 ! = [ 0 =2 0 ]T 0 t 1 ! = [ =2 0 0 ]T 1 < t 2 !dt = [ =2 =2 0 ]T ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Relazione tra Jacobiano analitico e Jacobiano geometrico I O v = O T () x_ = TA ()x_ J = TA ()JA Jacobiano geometrico ? grandezze di significato fisico Jacobiano analitico ? grandezze differenziali di variabili nello spazio operativo ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SINGOLARITÀ CINEMATICHE v = J (q)q_ se J diminuisce di rango =) singolarit à cinematiche (a) perdita di mobilità (b) infinite soluzioni al problema cinematico inverso (c) velocità elevate nello spazio dei giunti (nell’intorno di una singolarità) Classificazione ? ? Singolarità ai confini dello spazio di lavoro raggiungibile Singolarità all’interno dello spazio di lavoro raggiungibile ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore planare a due bracci ;a s ; a s J= 1 1 2 12 a1 c1 + a2 c12 ;a2s12 a2 c12 det(J ) = a1 a2 s2 + #2 = 0 #2 = ? [ ;(a1 + a2 )s1 (a1 + a2 )c1 ]T parallelo a [ ;a2s1 a2 c1 ]T (componenti di velocità dell’organo terminale non indipendenti) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Disaccoppiamento di singolarità calcolo delle singolarit à della struttura portante calcolo delle singolarit à del polso ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO J J= J 11 21 J J 12 22 J = z (p ; p ) z (p ; p ) z (p ; p ) J = z z z 12 3 3 22 4 4 3 4 5 5 p = pW =) pW ; pi paralleli a zi, i = 3; 4; 5 J = 0 12 0 0 det(J ) = det(J11 )det(J22 ) det(J11 ) = 0 det(J22 ) = 0 5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Singolarità di polso z3 parallelo a z5 #5 = 0 ? #5 = rotazioni uguali e opposte di # 4 e #6 non producono alcuna rotazione dell’organo terminale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Singolarità di struttura portante Manipolatore antropomorfo det(JP ) = ;a2 a3 s3 (a2 c2 + a3 c23 ) s3 = 0 ? a2 c2 + a3 c23 = 0 Singolarità di gomito #3 = 0 #3 = ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO Singolarità di spalla px = py = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ANALISI DELLA RIDONDANZA Cinematica differenziale v = J (q)q_ ? ? se %( J) = r ; dim R(J ) = r ; dim N (J ) = n ; r in generale ; ; dim R(J ) + dim N (J ) = n ROBOTICA INDUSTRIALE Se N ( J ) 6= ; ove ? Prof. Bruno SICILIANO q_ = q_ + P q_ a R(P ) N (J ) verifica: J q_ = J q_ + JP q_ a = J q_ = v q_ a genera moti interni della struttura ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO INVERSIONE DELLA CINEMATICA DIFFERENZIALE Equazione cinematica non lineare Equazione cinematica differenziale lineare nelle velocit à Data ? v(t) + condizioni iniziali =) (q(t); q_ (t)) se n = r q_ = J ; (q)v Zt q(t) = q_ (& )d& + q(0) 1 0 ? regola di integrazione numerica (Eulero) q(tk ) = q(tk ) + q_ (tk )t +1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatori ridondanti q Per una data configurazione , trovare le soluzioni disfino v = J q_ e che minimizzino g(q_ ) = 12 q_ T W q_ ? metodo dei moltiplicatori di Lagrange g(q_ ; ) = 21 q_ T W q_ + T (v ; J q_ ) @g T @ q_ = 0 ? @g T @ = 0 soluzione ottima q_ = W ; J T (JW ; J T ); v 1 ? se W =I 1 q_ = J yv J y = J T (JJ T ); è la pseudo-inversa destra di J ove 1 1 q_ che sod- ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Utilizzo della ridondanza g0 (q_ ) = 12 (q_ T ; q_ aT )(q_ ; q_ a ) ? come sopra : : : g0 (q_ ; ) = 21 (q_ T ; q_ aT )(q_ ; q_ a ) + T (v ; J q_ ) ? soluzione ottima q_ = J yv + (I ; J yJ )q_ a ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Caratterizzazione dei moti interni @w(q) T q_ a = ka @ q ? misura di manipolabilit à q ; w(q) = det J (q)J T (q) ? distanza dai fine-corsa dei giunti n X qi ; qi 1 w(q) = ; 2n i=1 qiM ; qim ? distanza da un ostacolo w(q) = min kp(q) ; ok p;o 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Singolarità cinematiche Le soluzioni precedenti valgono solo se Se J è di rango pieno J non è di rango pieno (singolarità) ? se v 2 R(J ) =) soluzione q_ estraendo tutte le equazioni linearmente indipendenti (traiettoria “fisicamente” eseguibile) ? v J se 2 = R( ) =) ria non eseguibile) il sistema non è risolvibile (traietto- Inversione nell’intorno di singolarit à ? det(J ) piccolo =) q_ elevate ? inversa a minimi quadrati smorzata J ? = J T (JJ T + k I ); 2 ove 1 q_ minimizza g00 (q_ ) = kv ; J q_ k2 + k2 kq_ k2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ALGORITMI PER L’INVERSIONE CINEMATICA Inversione cinematica q(tk ) = q(tk ) + J ; (q(tk ))v(tk )t 1 +1 ? fenomeni di deriva della soluzione Soluzione algoritmica ? errore nello spazio operativo e = xd ; x e_ = x_ d ; x_ = x_ d ; JA (q)q_ ? trovare q_ = q_ (e): e ! 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO (Pseudo-)inversa dello Jacobiano Linearizzazione della dinamica di errore q_ = JA; (q)(x_ d + Ke) 1 + e_ + Ke = 0 ? Per un manipolatore ridondante q_ = JAy (x_ d + Ke) + (I ; JAy JA)q_ a ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasposta dello Jacobiano q_ = q_ (e) senza linearizzare la dinamica di errore Metodo di Lyapunov V (e) = 12 eT Ke ove V (e) > 0 8e 6= 0 V (0) = 0 V_ (e) = eT K x_ d ; eT K x_ = eT K x_ d ; eT KJA (q)q_ ? la scelta q_ = JAT (q)Ke comporta che V_ (e) = eT K x_ d ; eT KJA (q)JAT (q)Ke ? ? x = 0 =) V_ < 0 con V > 0 (asintotica stabilità) T ) 6= ; =) V_ = 0 se Ke 2 N (J T ) se N (JA A q_ = 0 con e 6= 0 (stallo?) se _ d ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO x 6= 0 ? e(t) limitato (conviene aumentare la norma di K ) ? e(1) ! 0 Se _ d ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio 2 0 0 JPT = 4 ;c (a s + a s ) ;s (a s + a s ) 1 ? 2 2 3 23 ;a3 c1 s23 1 2 2 3 23 ;a3 s1 s23 J nullo di PT y = ; 1 x tan #1 z = 0 3 0 0 5 a3 c23 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Errore di orientamento Errore di posizione eP = pd ; p(q) e_ P = p_ d ; p_ Angoli di Eulero eO = d ; (q) e_ O = _ d ; _ p_ + K e q_ = JA; (q) _ dd + KPO ePO 1 ? ? d (t) richiede comunque il passaggio attraverso R = [ n s a ] agevole per assegnare l’andamento temporale Manipolatore con polso sferico ? ? q =) RW T Rd =) qO (angoli di Eulero ZYZ) calcolare RW calcolare P ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Asse/angolo ? R(#; r) = Rd RT errore di orientamento eO = r sin # = 12 (n nd + s sd + a ad ) e_ O = LT !d ; L! ove ; 1 L = ; 2 S (nd)S (n) + S (sd)S (s) + S (ad)S (a) e_ p_ ; J (q)q_ P e_ = e_ OP = LT !dd ; LJ O (q)q_ p_ I O = LT d! ; O L J q_ d _ p + K e q_ = J ; (q) L; ;LdT !d +P KPO eO 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Quaternione unitario Q = Qd Q;1 ? errore di orientamento eO = = (q)d ; d(q) ; S (d)(q) p_ + K e q_ = J ; (q) !dd + KPO ePO !d ; ! + KO eO = 0 1 ? propagazione del quaternione _ = ; 12 T ! _ = 12 (I ; S ()) ! ? studio della stabilità V = (d ; )2 + (d ; )T (d ; ) V_ = ;eTO KO eO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Confronto tra gli algoritmi per l’inversione cinematica Manipolatore planare a tre bracci x = k(q) 2p 3 2a c +a c +a c 3 x 4 py 5 = 4 a s + a s + a s 5 1 1 2 12 3 123 1 1 2 12 3 123 #1 + #2 + #3 ? a1 = a2 = a3 = 0:5 m 2 ;a s ; a s ; a s JA = 4 a c + a c + a c 1 1 1 1 2 12 2 12 1 3 123 3 123 ;a2 s12 ; a3 s123 a2 c12 + a3 c123 1 3 ;a s ac 5 3 123 3 123 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ? qi = [ ;=2 ;=2 ]T rad + ? pdi = [ 0 0:5 ]T m ? = 0 rad traiettoria desiderata 0:25(1 ; cos t) pd(t) = 0:25(2 + sin t) t d (t) = sin 24 0t4 0t4 Simulazione in MATLAB con integrazione numerica di Eulero q(tk ) = q(tk ) + q_ (tk )t +1 e t = 1 ms ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO q_ = JA;1 (q)x_ norma errore pos −3 2 x 10 0 −0.2 [rad] [m] 1.5 1 0.5 0 0 errore orien −5 x 10 −0.4 −0.6 −0.8 1 2 3 [s] 4 5 −1 0 1 2 3 [s] 4 5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO q_ = JA;1 (q)(x_ d + Ke) K = diagf500; 500; 100g pos giunti vel giunti 5 10 0 3 2 0 1 3 −5 2 −5 0 1 5 [rad/s] [rad] 1 2 3 4 5 −10 0 1 2 [s] norma errore pos −5 x 10 0.8 −1 0.6 −2 0.4 0.2 0 0 4 5 4 5 errore orien −8 0 [rad] [m] 1 3 [s] x 10 −3 −4 1 2 3 [s] 4 5 −5 0 1 2 3 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO libero (r = 2, n = 3) q_ = J y (p_ d + KP eP ) KP = diagf500; 500g P norma errore pos −6 5 x 10 orien 0.5 0 3 [rad] [m] 4 2 −0.5 1 0 0 1 2 3 4 −1 0 5 1 2 [s] 3 4 5 4 5 [s] q_ = JPT (q)KP eP KP = diagf500; 500g norma errore pos orien 0.01 0.5 0 0.006 [rad] [m] 0.008 0.004 −0.5 0.002 0 0 1 2 3 [s] 4 5 −1 0 1 2 3 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO q_ = JPy (p_ d + KP eP ) + (I ; JPy JP )q_ a KP = diagf500; 500g ? misura di manipolabilità w(#2 ; #3 ) = 12 (s22 + s23 ) @w(q) T ? q_ a = ka @ q ka = 50 pos giunti pos giunti 5 5 1 0 [rad/s] [rad] 1 3 0 2 2 −5 0 3 1 2 3 4 −5 0 5 1 2 [s] norma errore pos −6 5 x 10 3 4 5 3 4 5 [s] manip 1 0.95 3 [rad] [m] 4 2 0.9 1 0 0 1 2 3 [s] 4 5 0.85 0 1 2 [s] ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO distanza dai fine-corsa dei giunti 3 X 1 qi ; qi w (q ) = ; 6 i=1 qiM ; qim ;2 q1 2 ;=2 q2 =2 @w(q) T ? q_ a = ka @ q ka = 250 6 4 4 2 2 [rad] [rad] pos giunto 2 6 0 0 −2 −2 −4 −4 −6 −6 1 2 3 2 ;3=2 q3 ;=2 pos giunto 1 0 4 5 0 1 2 [s] 3 4 5 4 5 [s] pos giunto 3 norma errore pos −4 5 2 x 10 [m] [rad] 1.5 0 1 0.5 −5 0 1 2 3 [s] 4 5 0 0 1 2 3 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO STATICA Relazione tra forze e momenti (forze) all’organo terminale e forze e/o coppie (coppie) ai giunti con il manipolatore in configurazione di equilibrio ? lavoro elementare compiuto dalle coppie dW = T dq ? lavoro elementare compiuto dalle forze dW = f T dp + T !dt = f T JP (q)dq + T JO (q)dq = T J (q)dq ? spostamenti elementari spostamenti virtuali W = T q W = T J (q)q ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Principio dei lavori virtuali ? il manipolatore è in equilibrio statico se e solo se W = W + = J T (q) 8q ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Dualità cineto-statica N (J ) R?(J T ) forze R(J ) N ?(J T ) 2 N (J T ) interamente assorbite dalla struttura ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Interpretazione fisica dello schema con la trasposta dello Jacobiano ? ? = q_ forza elastica Ke che tira l’organo terminale verso la podinamica ideale stura desiderata nello spazio operativo ? ha effetto solo se Ke 2= N (J T ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasformazione di velocità e forze p_ I ;S (r ) p_ ! = O I ! 2 12 1 2 1 r =R r 1 1 12 12 p_ = R p_ ! =R ! 1 1 1 1 1 1 1 1 p_ = R p_ = R R p_ ! =R ! =R R ! 2 2 2 2 2 2 2 2 1 1 1 2 1 2 2 2 2 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO p_ R ;R S (r ) p_ ! = O R ! v =J v 2 2 2 2 2 1 1 12 2 1 2 2 ? 2 1 1 1 1 1 2 1 1 1 in virtù della dualità cineto-statica: = J T f f R O = S (r )R R 1 1 1 1 1 1 2 1 2 2 1 2 1 12 1 2 1 2 2 2 2 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Catena chiusa Struttura ad albero equivalente a catena aperta Risolvendo i vincoli: u q qo = qua q = qu(qa) q_ o = q_ a2 3 I = 4 @ qu 5 @ qa ? per la dualità cineto-statica a = T o Manipolatore a parallelogramma # qa = # # qu = # 21 03 = 64 ;01 11 75 10 100 1 ;1 ; + a = 11 + 22 ; 33 0 0 0 00 0 0 200 300 0 u = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ELLISSOIDI DI MANIPOLABILITÀ Ellissoide di manipolabilit à in velocità ? insieme delle velocità ai giunti a norma costante q_ T q_ = 1 ? manipolatore ridondante q_ = J y(q)v + ; T T v J (q)J (q) ;1v = 1 Assi ? ? u JJ T =) direzioni p valori singolari = (JJ T ) =) autovettori i di i i Volume ? proporzionale a q ; T w(q) = det J (q)J (q) dimensioni ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore planare a due bracci Misura di manipolabilità w = jdet(J )j = a1 a2 js2 j ? max per #2 = =2 ? max per a1 = a2 (a parità di estensione a1 + a2 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ellissi di manipolabilità in velocità 1 [m] 0.5 0 −0.5 −1 0 0.5 1 [m] 1.5 2 Valori singolari 2.5 max [m] 2 1.5 1 min 0.5 0 0 0.5 1 [m] 1.5 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ellissoide di manipolabilit à in forza ? insieme delle coppie ai giunti a norma costante T = 1 + ; T T J (q)J (q) = 1 Dualità cineto-statica ? una direzione lungo la quale si ha elevata manipolabilit à in velocità è una direzione lungo la quale si ha scarsa manipolabilità in forza, e viceversa ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore planare a due bracci Ellissi di manipolabilità in velocità 1 [m] 0.5 0 −0.5 −1 0 0.5 1 [m] 1.5 2 Ellissi di manipolabilità in forza 1 [m] 0.5 0 −0.5 −1 0 0.5 1 [m] 1.5 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore trasformatore meccanico di velocit à e forze dallo spazio dei giunti allo spazio operativo ? rapporto di trasformazione lungo una direzione per l’ellissoide in forza ; = (q) = uT J (q)J T (q)u 1 2 ? rapporto di trasformazione lungo una direzione per l’ellissoide in velocità ; ; = ; (q) = uT J (q)J T (q) u 1 ? utilizzazione di gradi di mobilità ridondanti 1 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Compatibilità della struttura ad eseguire un compito assegnato lungo una direzione ? compito di scrittura su superficie orizzontale vel piano di scrittura forza ? compito di lancio di un peso in direzione orizzontale forza vel direzione di lancio ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO DINAMICA equazioni del moto del manipolatore in funzione delle forze e momenti agenti su di esso Formulazione di Lagrange Proprietà notevoli del modello dinamico Identificazione dei parametri dinamici Formulazione di Newton-Eulero Dinamica diretta e dinamica inversa Modello dinamico nello spazio operativo Ellissoide di manipolabilità dinamica ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO FORMULAZIONE DI LAGRANGE Lagrangiana (energia cinetica) ; (energia potenziale) L=T ;U Equazioni di Lagrange d @L ; @L = dt @ _ i @i i ? i = 1; : : : ; n coordinate generalizzate 2 3 4 ... 5 = q 1 n ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio ? energia cinetica T = 12 I #_ 2 + 21 Im kr2#_ 2 ? ? energia potenziale U = mg`(1 ; cos #) lagrangiana L = 12 I #_ 2 + 12 Im kr2 #_ 2 ; mg`(1 ; cos #) ? equazione del moto (I + Im kr2)# + mg` sin # = = ; F #_ ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica Contributo bracci + attuatori T= n X i=1 (T`i + Tmi ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Braccio i Z 1 T`i = 2 p_ i T p_ i dV V`i Z 1 p`i = m` pi dV V`i i ? baricentro ? velocità lineare della particella elementare p_ i = p_ ` + !i ri = p_ ` + S (!i)ri i i ROBOTICA INDUSTRIALE Traslazionale Mutuo Prof. Bruno SICILIANO 1 Z p_ T p_ dV = 1 m p_ T p_ 2 V`i `i `i 2 `i `i `i 1Z ! p_ T`i S (!i)ridV = 2 2 V`i ! Z 2 12 p_ T`i S (!i ) (pi ; p`i )dV = 0 V`i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rotazionale 1Z 2 V`i riT S T (!i)S (!i)ridV = 12 !iT Z V`i ! S T (ri)S (ri)dV !i = 12 !iT I`i !i ? tensore di inerzia 2 R (r + r )dV ; R r r dV ; R r r dV 3 ix iy ix iz iy iz R R I` = 64 (rix + riz )dV R; riy riz dV 75 (rix + riy )dV 2 I ;I ;I 3 ` xx ` xy ` xz 6 =4 I` yy ;I` yz 75 2 2 2 i 2 2 i i i i i I`i zz 2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica del braccio i T` = 21 m` p_ T` p_ ` + 12 !iT Ri I`i RiT !i i i i i i = 12 m`i q_ T JP(`i )T JP(`i ) q_ + 12 q_ T JO(`i )T Ri I`ii RiT JO(`i ) q_ ? velocità lineare p_ ` = |P` q_ + : : : + |Pi` q_i = JP` q_ i ( i) 1 1 ( i) zj; |Pj` = zj; (p` ; pj; ) 1 ( i) 1 ? 1 i ( i) per un giunto prismatico per un giunto rotoidale velocità angolare !i = |O` q_ + : : : + |Oi` q_i = JO` q_ 0 un giunto prismatico |Oj` = zj; per per un giunto rotoidale ( i) 1 1 ( i) 1 ( i) ( i) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Motore i (elettrico rotante) ? trasmissione rigida !m = !i; + kriq_izm i 1 i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica del rotore i Tm = 12 mm p_ Tm p_ m + 12 !mT Im !m i i i i i i T J (mi ) q_ = 12 mmi q_ T JP(mi )T JP(mi ) q_ + 12 q_ T JO(mi )T Rmi Immii Rm i O ? velocità lineare JPm = |Pm : : : |P;im; ( i) ( 1 |Pjm ( i i) ( zj; = zj; (pm ; pj; ) 1 i i) 0 1 ::: 0 per un giunto prismatico per un giunto rotoidale 1 1 ? i) velocità angolare JOm = |Om : : : |O;im ; |Oim ( i) |Ojmi) = ( ( 1 i) ( |Oj` kri zm ( ( i) i i) 1 ( i) 0 j = 1; : : : ; i ; 1 j=i ::: 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica totale Matrice di inerzia n X n X 1 bij (q)q_i q_j = 12 q_ T B (q)q_ T =2 i=1 j =1 B(q) = n X i=1 m`i JP(`i )T JP(`i ) + JO(`i )T RiI`ii RiT JO(`i ) T J (mi ) +mmi JPmi )T JP(mi ) + JO(mi )T Rmi Immii Rm i O ( ? ? ? simmetrica definita positiva dipendente dalla configurazione (in generale) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia potenziale U= Braccio i U` = ; i Rotore i n X i=1 Z V`i gT pi dV = ;m` gT p` 0 i 0 i Um = ;mm g0T pm i (U`i + Umi ) i i Energia potenziale totale U =; n X i=1 (m`i g0T p`i + mmi g0T pmi ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Equazioni del moto L(q; q_ ) = T (q; q_ ) ; U (q) n ; n X n X X 1 T T =2 bij (q)q_iq_j + m`i g0 p`i (q)+ mmi g0 pmi (q) i=1 j =1 i=1 Equazioni di Lagrange n n db (q) X d @L = d @T = X ij q_ bij (q)qj + j dt @ q_i dt @ q_i j =1 j =1 dt n n X n @b (q) X X ij q_ q_ = bij (q)qj + k j @q k j =1 j =1 k=1 n X n @b (q) @T = 1 X jk q_ q_ @qi 2 j=1 k=1 @qi k j n @U = ; X T @ p`j + mm gT @ pmj m g ` j 0 j 0 @qi @q @qi i j =1 =; n X j =1 = gi (q) (`j ) (mj ) T T m`j g0 |Pi (q) + mmj g0 |Pi (q) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Equazioni del moto n X j =1 bij (q)qj + ove n X n X j =1 k=1 hijk (q)q_k q_j + gi (q) = i ij ; 1 @bjk hijk = @b @q 2 @q k ? i = 1; : : : ; n i termini in accelerazione: il coefficiente bii rappresenta il momento di inerzia visto all’asse del giunto i, nella configurazione corrente del manipolatore, quando gli altri giunti sono bloccati il coefficiente bij tiene conto dell’effetto dell’accelerazione del giunto j sul giunto i ? termini quadratici in velocit à: il termine hijj q_j2 rappresenta l’effetto centrifugo indotto al giunto i dalla velocità del giunto j ; si noti che h iii = 0, poiché @bii =@qi = 0 il termine hijk q_j q_k rappresenta l’effetto di Coriolis indotto al giunto i dalle velocità dei giunti j e k ? termini dipendenti solo dalla configurazione: il termine gi rappresenta la coppia generata all’asse del giunto i nella configurazione corrente del manipolatore per effetto della gravità ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Forze non conservative ? ? ? ? coppie di attuazione Fq coppie di attrito statico ;f s (q ; q_ ) Fs sgn (q_ ) coppie di bilanciamento di forze di contatto ;J T (q )h coppie di attrito viscoso ; v _ Modello dinamico nello spazio dei giunti B(q)q + C (q; q_ )q_ + Fv q_ + fs (q_ ) + g(q) = ; J T (q)h n X j =1 cij q_j = n X n X j =1 k=1 hijk q_k q_j ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO PROPRIETÀ NOTEVOLI DEL MODELLO DINAMICO Anti-simmetria della matrice B_ ; 2C n X j =1 cij q_j = n X n X Elementi di ? j =1 k=1 @qk 2 n X n @b X 1 ij q_ q_ + ik k j @qk 2 j=1 k=1 @qj j =1 k=1 n X n @b 1X =2 n X n @b X 1 @b ij jk hijk q_k q_j = ; q_k q_j j =1 k=1 C cij = n X k=1 @b ; @qjk q_k q_j i cijk q_k simboli di Christoffel del primo tipo ij + @bik ; @bjk cijk = 12 @b @qk @qj @qi @qi Proprietà notevole N (q; q_ ) = B_ (q) ; 2C (q; q_ ) = ;N T (q; q_ ) ROBOTICA INDUSTRIALE Elementi di Prof. Bruno SICILIANO C n X 1 @bik ; @bjk q_ q _ + k @qk 2k @qj @qi k n @b 1X @b ik jk n @b 1X ij cij = 2 k=1 = 21 b_ ij + 2 Elementi di =1 k=1 @qj ; @qi q_k N n @b X @b jk ; ik q_ = ;n nij = b_ ij ; 2cij = k ji @qi k=1 @qj + wT N (q; q_ )w = 0 ? se 8w w = q_ : q_ T N (q; q_ )q_ = 0 8C ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Principio di conservazione dell’energia (Hamilton) 1 d ;q_ T B (q)q_ = q_ T ; ; F q_ ; f (q_ ) ; g(q) ; J T (q)h v s 2 dt 1 d ;q_ T B (q)q_ = 1 q_ T B_ (q)q_ + q_ T B (q)q 2 dt 2 ; = 12 q_ T B_ (q) ; 2C (q; q_ ) q_ ; T T + q_ ; Fv q_ ; fs (q_ ) ; g(q) ; J (q)h ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Linearità nei parametri dinamici Insieme braccio i e rotore i + 1 Ti = T` + Tm +1 i i T` = 21 m`i p_ T` p_ ` + 12 !iT I` !i i i i i Tm +1 = 12 mm +1 p_ Tm +1 p_ m +1 + 21 !mT +1 Im +1 !m +1 i ? i i i i i con riferimento al baricentro rotore pC dell’insieme braccio– i p_ ` = p_ C + !i rC ;` p_ m +1 = p_ C + !i rC ;m +1 i i i i i i i rC ;` = p` ; pC rC ;m +1 = pm +1 ; pC i i i i i i i i i i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Braccio T` = 12 m`i p_ TC p_ C + p_ TC S (!i)m` rC ;` i i i i i i i + 12 m`i !iT S T (rCi ;`i )S (rCi ;`i )!i + 12 !iT I`i !i = 21 m`i p_ TCi p_ Ci + p_ TCi S (!i)m`i rCi ;`i + 12 !iT I`i !i ? per il teorema di Steiner I` = I` + m` S T (rC ;` )S (rC ;` ) i i i i i i i Rotore Tm +1 = 21 mm +1 p_ TC p_ C + p_ TC S (!i)mm +1 rC ;m +1 + 21 !iT Im +1 !i i i i i i i i i i 2 2 T + kr;i+1 q_i+1 zmT i+1 Imi+1 !i + 12 kr;i +1 q_i+1 zmi+1 Imi+1 zmi+1 ? per il teorema di Steiner Im +1 = Im +1 + mm +1 S T (rC ;m +1 )S (rC ;m +1 ) i i i i i i i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica Ti = 12 mi p_ TC p_ C + 12 !iT Ii !i + kr;i+1 q_i+1 zmT +1 Im +1 !i i i 2 2 T + 12 kr;i +1 q_i+1 zmi+1 Imi+1 zmi+1 ? i i rotore con distribuzione di massa simmetrica intorno al suo asse di rotazione 2I 0 m xx m Im = 4 0 Im xx 3 0 0 5 i i i i 0 0 Imi zz + Im +1 zm +1 = Rm +1 Imm +1+1 RmT +1 zm +1 = Im +1 zm +1 i i i i i i i i i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Quantità riferite alle terne solidali ai bracci Ti = 12 mip_ iTC p_ iC + 12 !iiT Iii !ii + kr;i+1 q_i+1 Im +1 zmiT +1 !ii i i i 2 2 + 21 kr;i +1 q_i+1 Imi+1 i + p_ iT S (!i )mi ri + 1 !iT I^ i !i _ p = 12 mip_ iT i i i i i;Ci 2 i i i 2 2 + kr;i+1 q_i+1 Imi+1 zmiTi+1 !ii + 12 kr;i +1 q_i+1 Imi+1 ? per il teorema di Steiner i )S (ri ) I^ii = Iii + miS T (ri;C i;C i i i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia cinetica lineare rispetto a: ? ? massa mi momento primo di inerzia 2m ` 3 i Cx i 4 miri;C = mi `C y 5 i i i ? mi`Ci z tensore di inerzia 2 I + m (` + ` ) ;I ; m ` ` ixx i Cy Cz ixy i Cx Cy I^ii = 64 Iiyy + mi(`C z + `C x ) 3 ;Iixz ; mi `C x `C z ;Iiyz ; mi `C y `C z 75 2 i 2 i i 2 2 I^ixx ;I^ixy ;I^ixz 3 = 64 I^iyy I^iyz 75 I^izz i 2 i i i i i 2 i i Iizz + mi (`2Ci x + `C y ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Energia potenziale Ui = ;mig0iT piC i ) = ;g0iT (mipii + mi ri;C i i lineare rispetto a: ? ? massa mi momento primo di inerzia 2m ` 3 i Cx i miri;C = 4 mi `C y 5 i i i mi`Ci z ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Lagrangiana L= ? n X i=1 (TT i ; UT i )i vettore (11 1) di parametri dinamici i = [ mi mi`C x mi`C y mi`C z i i i I^ixx I^ixy I^ixz I^iyy I^iyz I^izz Imi ]T Le operazioni richieste dalle equazioni di Lagrange non alterano la linearità i = n X j =1 yijT j ove T j + @ U j yij = dtd @@q_Ti j ; @@q @qi i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Proprietà notevole 3 2 yT yT : : : yTn 3 2 3 77 = 66 0T yT : : : yTn 77 66 77 5 64 ... ... . . . ... 75 64 ... 75 . T n n 0T 0T : : : ynn 2 66 4 .. 1 11 2 ? 12 1 1 22 2 2 in forma compatta: = Y (q; q_ ; q) ROBOTICA INDUSTRIALE Manipolatore cartesiano a due bracci Motori ? masse mmi ? momenti di inerzia Imi ? pmi = pi;1 zmi = zi;1 Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO Jacobiani JP`1 ( ) 20 = 40 20 JPm1 = 4 0 0 20 JOm1 = 4 0 ( ( ) ) kr1 3 0 05 1 0 3 0 05 0 3 0 05 0 ( JPm2 ( ) JOm2 ) ( 20 = 40 1 20 = 40 m +m + k I +m B = `1 m2 r m1 `2 2 1 3 0 05 0 3 kr2 0 5 0 0 0 m`2 + kr22 Im2 Forze gravitazionali g1 = (m`1 + mm2 + m`2 )g ) 3 1 05 1 0 Matrice di inerzia 0 JP`2 20 = 40 g2 = 0 Equazioni del moto (m`1 + mm2 + kr21 Im1 + m`2 )d1 + (m`1 + mm2 + m`2 )g = f1 (m`2 + kr22 Im2 )d2 = f2 ROBOTICA INDUSTRIALE Manipolatore planare a due bracci Motori ? masse mmi ? momenti di inerzia Imi ? pmi = pi;1 zmi = zi;1 Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? JP`1) ( Prof. Bruno SICILIANO Jacobiani 2 ;` s 0 3 = 4 ` c 05 JP`2) 1 1 1 1 0 JO`1 ( JPm1) ( ( 0 ) 2 ;a s ; ` s =4 a c +` c 1 1 1 1 20 03 = 40 05 20 = 40 JO`2 ( 1 0 3 0 05 0 0 2 0 03 JO(m1) = 4 0 0 5 kr1 0 JPm2) ( ) 2 12 0 2 12 20 03 = 40 05 1 1 2 ;a s 0 3 = 4 a c 05 1 1 1 1 0 0 20 0 3 JO(m2) = 4 0 0 5 1 kr2 3 `c 5 ;`2s12 2 12 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Matrice di inerzia b (# ) b (# ) B(q) = 11 2 b21 (#2 ) 12 b22 2 b11 = I`1 + m`1 `21 + kr21 Im1 + I`2 + m`2 (a21 + `22 + 2a1`2 c2 ) + Im2 + mm2 a21 b12 = b21 = I`2 + m`2 (`22 + a1 `2 c2 ) + kr2 Im2 b22 = I`2 + m`2 `22 + kr22 Im2 Forze centrifughe e di Coriolis 11 c111 = 21 @b @q1 = 0 11 c112 = c121 = 21 @b @q2 = ;m`2 a1 `2 s2 = h 1 @b22 = h 12 ; c122 = @b @q2 2 @q1 1 @b11 = ;h 21 c211 = @b ; @q1 2 @q2 22 c212 = c221 = 21 @b @q1 = 0 22 c222 = 12 @b @q2 = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO h#_ _ 1 + #_ 2 ) h ( # C (q; q_ ) = ;h#_ 1 0 ? 2 anti-simmetria N (q; q_ ) = B_ (q) ; 2C (q; q_ ) 2h#_ h#_ h#_ _ _ h ( # + # ) 2 2 1 2 = _2 ; 2 h#2 0 ;h#_ 1 0 0 ; 2h#_ 1 ; h#_ 2 = 2h#_ + h#_ 0 1 2 Forze gravitazionali g1 = (m`1 `1 + mm2 a1 + m`2 a1 )gc1 + m`2 `2 gc12 g2 = m`2 `2 gc12 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Equazioni del moto ;I + m ` + k I + I + m (a + ` + 2a ` c ) `1 `1 `2 r m1 `2 +Im2 + mm2 a # ; + I + m (` + a ` c ) + k I # 2 1 2 1 2 1 2 2 1 2 2 2 1 1 `2 `2 22 1 2 2 r2 m2 2 ; 2m`2 a1 `2 s2 #_ 1 #_ 2 ; m`2 a1 `2 s2 #_ 22 + (m`1 `1 + mm2 a1 + m`2 a1 )gc1 + m`2 `2 gc12 = 1 ;I + m ` + k I # + ;I + m (` + a ` c ) + k I # `2 `2 `2 `2 r m2 r m2 2 2 2 2 2 + m`2 a1 `2 s2 #_ 21 + m`2 `2 gc12 = 2 2 2 1 2 2 2 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Parametrizzazione del modello = [ ]T 1 2 3 4 5 6 7 8 1 = m1 = m`1 + mm2 2 = m1 `C1 = m`1 (`1 ; a1 ) 3 = I^1 = I`1 + m`1 (`1 ; a1 )2 + Im2 4 = Im1 5 = m2 = m`2 6 = m`2 `C2 = m`2 (`2 ; a2 ) 7 = I^2 = I`2 + m`2 (`2 ; a2 )2 8 = Im2 ROBOTICA INDUSTRIALE y Prof. Bruno SICILIANO Y = y1121 yy1222 yy1323 yy1424 yy1525 yy1626 yy1727 yy1828 y11 = a21 #1 + a1 gc1 y12 = 2a1 #1 + gc1 y13 = #1 y14 = kr21 #1 y15 = (a21 + 2a1 a2 c2 + a22 )#1 + (a1 a2 c2 + a22 )#2 ; 2a1 a2 s2 #_ 1 #_ 2 ; a1 a2 s2 #_ 22 + a1 gc1 + a2 gc12 y16 = (2a1 c2 + 2a2 )#1 + (a1 c2 + 2a2 )#2 ; 2a1 s2 #_ 1 #_ 2 ; a1 s2 #_ 22 + gc12 y17 = #1 + #2 y18 = #1 + kr2 #2 y21 = 0 y22 = 0 y23 = 0 y24 = 0 y25 = (a1 a2 c2 + a22 )#1 + a22 #2 + a1 a2 s2 #_ 21 + a2 gc12 y26 = (a1 c2 + 2a2 )#1 + 2a2 #2 + a1 s2 #_ 21 + gc12 y27 = #1 + #2 y28 = kr2 #1 + kr22 #2 . ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio Manipolatore planare a due bracci ? a1 = a2 = 1 m `1 = `2 = 0:5 m m`1 = m`2 = 50 kg I`1 = I`2 = 10 kg m2 ? kr1 = kr2 = 100 mm1 = mm2 = 5 kg Im1 = Im2 = 0:01 kg m2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 4 4 3 3 2 2 [rad] [rad] pos giunto 1 1 1 0 0 −1 −1 −2 0 0.1 0.2 0.3 [s] 0.4 −2 0 0.5 0.1 6 6 4 4 2 0 0 0.1 0.2 0.3 [s] 0.4 0.5 0 0.1 20 20 10 10 [rad/s^2] [rad/s^2] 0.2 0.3 [s] 0.4 0.5 acc giunto 2 30 0 −10 −20 0 −10 −20 0.1 0.2 0.3 [s] 0.4 −30 0 0.5 0.1 coppia giunto 1 6000 6000 4000 4000 2000 2000 0 −2000 −4000 −4000 0.2 0.3 [s] 0.4 0.3 [s] 0.4 0.5 0 −2000 0.1 0.2 coppia giunto 2 [Nm] [Nm] 0.5 0 acc giunto 1 −6000 0 0.4 2 30 −30 0 0.3 [s] vel giunto 2 [rad/s] [rad/s] vel giunto 1 0.2 0.5 −6000 0 0.1 0.2 0.3 [s] 0.4 0.5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO inerz_11 inerz_22 5000 [Nm] [Nm] 5000 0 −5000 0 0.1 0.2 0.3 [s] 0.4 0.5 0 −5000 0 0.1 0.2 100 0 0 −100 −100 −200 −300 −400 −400 0.1 0.2 0.3 [s] 0.5 0.4 0.5 0.4 0.5 0.4 0.5 −200 −300 −500 0 0.4 inerz_21 100 [Nm] [Nm] inerz_12 0.3 [s] 0.4 −500 0 0.5 0.1 0.2 centrif_2 + coriol_12 0.3 [s] centrif_1 1000 1000 500 [Nm] [Nm] 12 2 0 −500 0 500 0 0.1 0.2 0.3 [s] 0.4 −500 0 0.5 0.1 0.2 grav_2 800 800 600 600 400 400 [Nm] [Nm] grav_1 200 200 0 0 −200 −200 0 0.1 0.2 0.3 [s] 0.3 [s] 0.4 0.5 0 0.1 0.2 0.3 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 4 3 3 2 2 [rad] [rad] pos giunto 1 4 1 1 0 0 −1 −1 −2 0 0.2 0.4 −2 0 0.6 0.2 [s] 4 4 2 2 0 0 −2 −2 −4 −4 0.2 0.4 −6 0 0.6 0.2 [s] 20 20 0 −20 0 −20 0.2 0.4 −40 0 0.6 0.2 0.4 [s] [s] coppia giunto 1 coppia giunto 2 0.6 5000 [Nm] 5000 [Nm] 0.6 acc giunto 2 40 [rad/s^2] [rad/s^2] acc giunto 1 0 −5000 0 0.4 [s] 40 −40 0 0.6 vel giunto 2 6 [rad/s] [rad/s] vel giunto 1 6 −6 0 0.4 [s] 0 −5000 0.2 0.4 [s] 0.6 0 0.2 0.4 [s] 0.6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO inerz_22 6000 4000 4000 2000 2000 [Nm] [Nm] inerz_11 6000 0 0 −2000 −2000 −4000 −4000 −6000 −6000 0 0.2 0.4 0.6 0 0.2 [s] 1000 1000 500 500 0 0 −500 −500 0.2 0.4 0.6 0 0.2 0.4 [s] [s] centrif_2 + coriol_12 centrif_1 1000 0.6 1000 12 500 [Nm] 500 [Nm] 0.6 inerz_21 1500 [Nm] [Nm] inerz_12 1500 0 0.4 [s] 0 0 2 −500 0 −500 0.2 0.4 0.6 0 0.2 [s] 800 800 600 600 400 400 200 200 0 0 0.2 0.4 [s] 0.6 grav_2 1000 [Nm] [Nm] grav_1 1000 0 0.4 [s] 0.6 0 0.2 0.4 [s] 0.6 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos organo terminale 2 [m] 1.5 1 0.5 0 0 0.1 0.2 0.3 [s] 0.4 0.5 vel organo terminale 5 [m/s] 4 3 2 1 0 0 0.1 0.2 0.3 [s] 0.4 0.5 acc organo terminale 40 [m/s^2] 20 0 −20 −40 0 0.1 0.2 0.3 [s] 0.4 0.5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 4 3 3 2 2 [rad] [rad] pos giunto 1 4 1 1 0 0 −1 −1 −2 0 0.1 0.2 0.3 [s] 0.4 −2 0 0.5 0.1 4 4 2 2 0 0 −2 −4 −6 −6 0.1 0.2 0.3 [s] 0.4 −8 0 0.5 0.1 60 60 40 40 20 0 −40 −40 0.3 [s] 0.4 0.5 0 0.1 coppia giunto 1 0.5 0.2 0.3 [s] 0.4 0.5 5000 [Nm] [Nm] 0.4 coppia giunto 2 5000 0 −5000 0 0.3 [s] 0 −20 0.2 0.2 20 −20 0.1 0.5 acc giunto 2 80 [rad/s^2] [rad/s^2] acc giunto 1 80 0 0.4 −2 −4 −8 0 0.3 [s] vel giunto 2 [rad/s] [rad/s] vel giunto 1 0.2 0 −5000 0.1 0.2 0.3 [s] 0.4 0.5 0 0.1 0.2 0.3 [s] 0.4 0.5 ROBOTICA INDUSTRIALE inerz_11 4 1 Prof. Bruno SICILIANO x 10 1 0.5 [Nm] [Nm] 0.5 0 −0.5 −1 0 inerz_22 4 x 10 0 −0.5 0.1 0.2 0.3 [s] 0.4 −1 0 0.5 0.1 0.2 3000 2000 2000 1000 0 −1000 −1000 0.1 0.2 0.3 [s] 0.4 0.5 0 0.1 0.2 centrif_2 + coriol_12 12 [Nm] [Nm] 0.5 0.4 0.5 0.4 0.5 500 0 −500 0 −500 2 −1000 −1000 0.1 0.2 0.3 [s] 0.4 0.5 0 0.1 0.2 grav_1 1000 800 800 600 600 400 400 200 200 0 0 0.1 0.2 0.3 [s] 0.3 [s] grav_2 1000 [Nm] [Nm] 0.4 1000 500 0 0.3 [s] centrif_1 1000 0 0.5 1000 0 0 0.4 inerz_21 3000 [Nm] [Nm] inerz_12 0.3 [s] 0.4 0.5 0 0.1 0.2 0.3 [s] ROBOTICA INDUSTRIALE Manipolatore a parallelogramma Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO Jacobiani 2 ;` s 0 0 3 2 ;a s ; ` s ;` s JP`1 =4 ` c 0 0 5 JP`2 = 4 a c + ` c ` c ( 0) 10 10 10 10 0 ( 10 0) 10 10 10 0 0 0 2 10 2 0 20 10 20 2;a s ; a s ; ` s ;a s ; ` s JP`3 =4 a c + a c + ` c a c +` c 0 0 2 ;` s 3 JP`1 = 4 ` c 5 ( 0) 10 10 10 10 20 10 20 20 10 20 30 10 20 30 ( 30 10 20 30 20 10 20 20 10 20 20 10 20 2 10 20 30 10 20 30 30 10 20 30 0 3 0 05 0 ;`3 s1 2 3 0 0 0 `3 c1 2 3 0 0 0 0 0 0 3 5 100 100 00 ) 100 100 0 JO`1 ( 0) 20 0 03 20 0 03 20 0 03 = 4 0 0 0 5 JO`2 = 4 0 0 0 5 JO`3 = 4 0 0 0 5 ( 0) 1 0 0 ( 1 1 0 JO`1 ( 00 ) 203 = 405. 1 0) 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Matrici di inerzia per i manipolatori virtuali 2 b (# ; # ) b (# ; # ) b (# ; # ) 3 B0 (q0) = 4 b (# ; # ) b (# ) b (# ) 5 10 10 20 30 20 10 20 30 0 0 0 0 10 20 b3 1 (#2 ; #3 ) 20 30 20 20 30 0 0 0 10 30 20 30 20 30 b3 2 (#3 ) 30 b3 3 0 0 b1 1 = I`1 + m`1 `21 + I`2 + m`2 (a21 + `22 + 2a1 `2 c2 ) + I`3 + m`3 (a21 + a22 + `23 + 2a1 a2 c2 + 2a1 `3 c2 3 + 2a2 `3 c3 ) b1 2 = b2 1 = I`2 + m`2 (`22 + a1 `2 c2 ) + I`3 + m`3 (a22 + `23 + a1 a2 c2 + a1 `3 c2 3 + 2a2 `3 c3 ) b1 3 = b31 = I`3 + m`3 (`23 + a1 `3 c2 3 + a2 `3 c3 ) b2 2 = I`2 + m`2 `22 + I`3 + m`3 (a22 + `23 + 2a2 `3 c3 ) b2 3 = I`3 + m`3 (`23 + a2 `3 c3 ) b3 3 = I`3 + m`3 `23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 30 j =1 0 0 0 0 00 0 0 bi j #j 0 0 0 00 . 1 = b1 1 #1 00 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 b1 1 = I`1 + m`1 `21 i = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore a catena chiusa a = Ba qa b ba12 ba22 Ba = baa 11 21 ba11 = I`1 + m`1 `21 + m`2 a21 + I`3 + m`3 `23 + m`3 a21 ; 2a1 m`3 `3 ; ba12 = ba21 = a1 m`2 `2 + a1 m`3 (a1 ; `3 ) cos (#1 ; #1 ) ba22 = I`1 + m`1 `21 + I`2 + m`2 `22 + m`3 a21 . 0 0 0 0 0 0 0 ? 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 00 0 matrice costante e diagonale m`3 `3 = a1 m`2 `2 a1 0 0 0 0 0 00 ` ` ba11 = I`1 + m`1 `21 + m`2 a21 1 + a 2 a3 + I`3 1 1 a a ba22 = I`1 + m`1 `21 + I`2 + m`2 `22 1 + `1 `1 2 3 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Forze gravitazionali g1 = (m`1 `1 + m`2 a1 + m`3 a1 )gc1 + (m`2 `2 + m`3 a2 )gc1 2 + m`3 `3 gc1 2 3 g2 = (m`2 `2 + m`3 a2 )gc1 2 + m`3 `3 gc1 2 3 g3 = m`3 `3 gc1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g1 = m`1 `1 gc1 00 00 00 00 (m ` + m a ; m ` )gc ga = (m` `1 ` + m``2 ` + m``3 a )gc 1 2 3 0 00 10 0 10 0 30 100 0 20 0 100 10 100 0 0 0 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO IDENTIFICAZIONE DEI PARAMETRI DINAMICI Impiego del modello dinamico per simulazione e controllo Stime approssimate dei parametri dinamici ? ? semplificazioni di modellazione geometrica effetti dinamici complessi (attriti, etc.) Tecniche di identificazione ? proprietà di linearità = Y (q; q_ ; q) Misure ? q e q_ dirette (encoder e tachimetri) ? q indirette (filtro ricostruttore) ? dirette (sensore di coppia) o indirette (misure di forza o corrente) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO N insiemi di misure 2 (t ) 3 2 Y (t ) 3 = 64 ... 75 = 64 ... 75 = Y (tN ) Y (tN ) 1 1 Soluzione (a minimi quadrati) = (Y T Y ); Y T 1 ? Y triangolare =) procedimento iterativo ? se %(Y ) < p =) Y ? Parametri ? ? ? identificabili non identificabili identificabili in combinazione lineare Carico ? modifica parametri dell’ultimo braccio Traiettorie ? ? di tipo polinomiale (sufficientemente ricche) attenzione alle dinamiche non modellate ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO FORMULAZIONE DI NEWTON-EULERO ? bilancio di forze e momenti agenti sul generico braccio Equazione di Newton (moto traslazionale del baricentro) fi ; fi + mig = mipC +1 0 i Equazione di Eulero (moto rotazionale) i + fi ri; ;C ; i ; fi ri;C d (I ! + k q_ I z ) = dt i i r;i i m +1 m +1 1 i +1 +1 i +1 +1 i i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO d (I ! ) = R_ Ii RT ! + R Ii R_ T ! + R Ii RT !_ i i i i i i i i i i i i dt i i = S (!i)Ri Iii RiT !i + Ri Iii RiT S T (!i )!i + Ri Iii RiT !_ i = Ii !_ i + !i (Ii !i ) d (q_ I z ) = q I z + q_ I ! z i+1 mi+1 mi+1 i+1 mi+1 i mi+1 dt i+1 mi+1 mi+1 + Equazione di Eulero i + fi ri; ;C ; i ; fi ri;C = Ii!_ i + !i (Ii!i) + kr;i qi Im +1 zm +1 + kr;i q_i Im +1 !i zm +1 1 +1 +1 i +1 +1 i i +1 i +1 i Forza generalizzata al giunto ( T zi; + kri Imi !_ T zm f m i i = T i zi; + kriImi!_ mT zm 1 i i per un giunto prismatico 1 i i per un giunto rotoidale i ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Accelerazioni di un braccio !i; !i = !i; + #_ izi; prismatico rotoidale (_ p i; + d_i zi; + !i ri; ;i p_ i = p_ i; + !i ri; ;i 1 1 1 1 1 1 prismatico 1 rotoidale 1 !_ i; !_ i = !_ + # z + #_ ! z i; i i; i i; i; 8 > i; + dizi; + 2d_i!i zi; p > < +!_ i ri; ;i + !i (!i ri; ;i) pi = > > : p+i;!i + !(_!i irir;i;;i;i) 1 1 1 1 1 1 1 1 1 1 1 pC = pi + !_ i ri;C + !i (!i ri;C ) i i !_ m = !_ i; + kriqizmi + kriq_i!i; zmi i 1 prismatico 1 1 i prismatico rotoidale 1 rotoidale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Algoritmo ricorsivo Ricorsione in avanti di velocità e accelerazioni ? ? ! , p ; g , !_ i , p C , !_ m calcolo di !i , !_ i , p condizioni iniziali: 0 0 0 i i 0 Ricorsione all’indietro di forze e momenti ? ? h = [ fnT condizioni terminali: +1 Tn ]T +1 calcolo di fi = fi + mipC +1 i i = ;fi (ri; ;i + ri;C ) + i + fi ri;C + Ii !_ i + !i (Ii !i) + kr;i qi Im +1 zm +1 + kr;i q_i Im +1 !i zm +1 1 +1 ( +1 +1 i i +1 +1 i +1 i i T zi; + kri Imi !_ T zm + Fvi d_i + Fsi sgn (d_i ) f m i i = T i zi; + kriImi!_ mT zm + Fvi#_ i + Fsi sgn (#_ i) i 1 i i prismatico 1 i i rotoidale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Conviene riferire tutti i vettori alla terna corrente sul braccio i ? I r z i , i;1 sono costanti le quantità ii , i;C mi i ( Ri; T !i; 1 1 prismatico i i;1 i !i = i;1T i;1 _ (4.106) Ri (!i;1 + #iz0) rotoidale ( Ri;1T !_ i;1 prismatico i i;1 i !_ i = i;1T i;1 (4.107) i ; 1 _ Ri (!_ i;1 + #iz0 + #i!i;1 z0) rotoidale 8 Ri;1T (pi;1 + diz0) + 2d_i!i Ri;1T z0 > i i i;1 i > i ri i i i < _ prismatico + ! i i ; 1;i + !i (!i ri;1;i ) i pi = > i;1T i;1 i i (4.108) Ri pi;1 + !_ i ri;1;i > : +!i (!i ri ) rotoidale i i i;1;i i + !i (!i ri ) piCi = pii + !_ ii ri;C (4.109) i i i;Ci i !_ mi;i1 = !_ ii;;11 + kriqizmi;i1 + kriq_i!ii;;11 zmi;i1 (4.110) +1 fii = Rii+1fii+1 + mi p iCi (4.111) i ) + Ri i+1 ii =; fii (rii;1;i + ri;C (4.112) i+1 i+1 i +1 i + Ii !_ i + !i (I i !i ) + Rii+1 fii+1 ri;C i i i i i i + kr;i+1qi+1 Imi+1 zmi i+1 + kr;i+1q_i+1 Imi+1 !ii zmi i+1 8 f iT Ri;1T z + k I !_ i;1T zi;1 0 ri mi mi mi > i i > < +Fvid_i + Fsi sgn (d_i) prismatico (4.113) i = > iT i;1 T i ; 1 T i;1 kri Imi !_ mi zmi > : +i FRi#_ +zF0 +sgn (#_ i) rotoidale vi i si ROBOTICA INDUSTRIALE Struttura computazionale Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore planare a due bracci Condizioni iniziali 203 p ; g = 4 g 5 0 0 0 0 0 0 0 0 0 Condizioni terminali f =0 3 3 ! = !_ = 0 =0 3 3 Quantità riferite alla terna corrente 2` 3 2a 3 C1 4 r ;C1 = 0 5 r ; = 4 0 5 0 0 2` 3 2a 3 C2 r ;C2 = 4 0 5 r ; = 4 0 5 0 0 203 zm1 = z = zm2 = zm2 = z = 4 0 5 1 1 1 01 2 2 2 12 1 ? 1 0 1 2 1 2 2 1 1 matrici di rotazione 2 c ;s i i i ; Ri = 4 si ci 1 0 0 3 0 0 5 i = 1; 2 1 R =I 2 3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ricorsione in avanti: braccio 1 203 ! = 64 0 75 1 1 #_ 1 203 !_ 11 = 64 0 75 #1 2 ;a1#_ 2 + gs1 3 1 6 p11 = 4 a1#1 + gc1 75 2 ;(`C 0+ a1)#_ 2 + gs1 3 1 1 6 p1C1 = 4 (`C1 + a1)#1 + gc1 75 0 2 0 3 !_ m0 1 = 64 0 75 kr1 #1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ricorsione in avanti: braccio 2 2 0 3 ! = 64 0 75 2 2 #_ 1 + #_ 2 2 0 3 !_ 22 = 64 0 75 #1 + #2 2 a1s2 #1 ; a1 c2#_ 2 ; a2(#_ 1 + #_ 2)2 + gs12 3 1 6 p22 = 4 a1c2#1 + a2(#1 + #2) + a1s2 #_ 21 + gc12 75 0 2 a1s2 #1 ; a1 c2#_ 2 ; (`C + a2)(#_ 1 + #_ 2)2 + gs12 3 1 2 6 p2C2 = 4 a1c2#1 + (`C2 + a2 )(#1 + #2) + a1s2 #_ 21 + gc12 75 0 2 0 3 !_ m1 2 = 64 0 75 #1 + kr2 #2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ricorsione all’indietro: braccio 2 f = m pC2 2 66 = 666 I zz (# + # ) + m (`C2 + a ) (# + # ) 4 +m a (`C2 + a )c # 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 2 1 1 2 3 77 77 75 +m2 a1 (`C2 + a2 )s2 #_ + m2 (`C2 + a2 )gc12 ; ; 2 = I2zz + m2 (`C2 + a2 )2 + a1 (`C2 + a2 )c2 + kr2 Im2 #1 ; + I2zz + m2 (`C2 + a2 )2 + kr22 Im2 #2 + m2 a1 (`C2 + a2 )s2 #_ 21 + m2 (`C2 + a2 )gc12 2 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Ricorsione all’indietro: braccio 1 2 ;m (`C2 + a )s (# + # ) ; m (`C1 + a )#_ ; m a #_ 66 ;m (`C2 + a )c (#_ + #_ ) + (m + m )gs f = 666 m (`C1 + a )# + m a # + m (`C2 + a )c (# + # ) 4 ;m (`C2 + a )s (#_ + #_ ) + (m + m )gc 2 2 2 1 2 2 1 1 1 1 1 1 2 2 2 1 1 2 2 2 1 1 2 2 2 0 2 2 2 2 1 2 1 1 2 1 2 1 2 1 1 1 2 2 1 3 77 77 75 2 66 66 I # + m a # + m (` + a ) # + m a (` + a )c # zz C1 C2 6 6 =6 +I zz (# + # ) + m a (`C2 + a )c (# + # ) 66 + # ) + kr Im2 # + m ( ` + a ) ( # C 2 64 +m a (` + a )s #_ ; m a (` + a )s (#_ + #_ ) 1 1 1 1 2 2 1 2 1 1 1 2 2 2 1 2 1 2 1 2 2 2 1 2 1 2 2 2 2 2 1 2 1 2 2 2 C2 2 2 1 C2 2 2 1 2 +m1 (`C1 + a1 )gc1 + m2 a1 gc1 + m2 (`C2 + a2 )gc12 2 1 1 1 = I1zz + m1 (`C1 + a1 )2 + kr21 Im1 + I2zz ; 2 2 +m2 a1 + (`C2 + a2 ) + 2a1 (`C2 + a2 )c2 #1 ; 2 + I2zz + m2 (`C2 + a2 ) + a1 (`C2 + a2 )c2 + kr2 Im2 #2 ; 2;m2 a1 (`C2 + a2 )s2 #_ 1 #_2 ; m2 a1 (`C2 + a2 )s2 #_ 22 + m1 (`C1 + a1 ) + m2 a1 gc1 + m2 (`C2 + a2 )gc12 3 77 77 77 77 77 5 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Equivalenza col modello di Lagrange ? parametri di bracci e rotori m1 = m`1 + mm2 m1 `C1 = m`1 (`1 ; a1 ) I1zz + m1 `2C1 = I^1 = I`1 + m`1 (`1 ; a1 )2 + Im2 m2 = m`2 m2 `C2 = m`2 (`2 ; a2 ) I2zz + m2 `2C2 = I^2 = I`2 + m`2 (`2 ; a2 )2 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO DINAMICA DIRETTA E DINAMICA INVERSA Formulazione di Lagrange: ? ? ? è sistematica e di facile comprensione fornisce le equazioni del moto in una forma analitica compatta che evidenzia la matrice di inerzia, la matrice a fattore delle forze centrifughe e di Coriolis e il vettore delle forze gravitazionali (utile ai fini della sintesi del controllo) è efficace se si vogliono portare in conto effetti meccanici più complessi quali ad esempio le deformazioni elastiche dei bracci Formulazione di Newton-Eulero: ? è intrinsecamente un metodo ricorsivo che risulta efficiente da un punto di vista computazionale ROBOTICA INDUSTRIALE Dinamica diretta ? ? Prof. Bruno SICILIANO q note (t0 ), per t > t0 q_ (t ), (t) (e h(t)), determinare q(t), q_ (t), q(t) 0 utile in simulazione Dinamica inversa ? ? q q_ (t), q(t) (e h(t)), determinare (t) note (t), utile per la pianificazione e il controllo Per un manipolatore ad n giunti, il numero di operazioni per il calcolo della dinamica è: ? O(n2 ) per la dinamica diretta ? O(n) per la dinamica inversa ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Dinamica diretta con Lagrange q = B; (q)( ; 0 ) 1 0(q; q_ ) = C (q; q_ )q_ + Fv q_ + fs (q_ ) + g(q) + J T (q)h ? ? q(tk ), q_ (tk ), (tk ), si calcola q(tk ) si integra numericamente con passo t: q_ (tk ), q (tk ) note +1 Dinamica diretta con Newton-Eulero ? ? +1 qq 0 come per q = 0 colonna bi di B come per g = 0, q_ = 0, qi = 1 e qj = 0 note , _ , si calcola: per j 6= i nota , si calcola 0 q e si integra numericamente ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO MODELLO DINAMICO NELLO SPAZIO OPERATIVO Ridondanza ? coordinate generalizzate (moti interni?) Singolarità Modello nello spazio dei giunti q = ;B; (q)C (q; q_ )q_ ; B; (q)g(q)+ B; (q)J T (q)( ; h) 1 1 1 Cinematica differenziale del secondo ordine x = JA(q)q + J_ A(q; q_ )q_ = ;JA B ; C q_ ; JA B ; g + J_ A q_ + JA B ; JAT (A ; hA ) 1 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasformazioni BA = (JAB; JAT ); CA x_ = BAJAB; C q_ ; BA J_ Aq_ gA = BAJAB; g 1 1 1 1 ? manipolatore non ridondante BA = JA;T BJA; CA x_ = JA;T C q_ ; BA J_ Aq_ gA = JA;T g 1 Equazioni del moto BA (x)x + CA(x; x_ )x_ + gA(x) = A ; hA ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Dinamica diretta ? note (t) (e h(t)), determinare x (t), x_ (t), x(t) Soluzione ? ? dinamica diretta ai giunti cinematica diretta Dinamica inversa ? note x(t), x_ (t), x (t) (e h(t)), determinare (t) Soluzione (ridondanza a livello cinematico) ? ? cinematica inversa dinamica inversa ai giunti Soluzione (ridondanza a livello dinamico) ? ? modello dinamico nello spazio operativo coppie con gestione di moti interni ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Dinamica inversa A ; hA = BA(x)x + CA (x; x_ )x_ + gA (x) = BA (x ; J_ A q_ ) + BA JA B ; C q_ + BA JA B ; g = BA JA q + BA JA B ; C q_ + BA JA B ; g 1 1 ? J B JA(q) = B; (q)JAT (q)BA (q) pseudo-inversa destra di A pesata secondo 1 + A ; hA = JAT (Bq + C q_ + g) = JAT ( ; JAT hA ) ; T T T = JA (q)A + I ; JA (q)JA (q) a 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ELLISSOIDE DI MANIPOLABILITÀ DINAMICA Sfera nello spazio dei giunti T = 1 ? modello dinamico con q_ = 0, h = 0 B(q)q + g(q) = ? accelerazioni ai giunti (q_ = 0) v_ = J (q)q + = B(q)J y(q)v_ + g(q) Ellissoide nello spazio operativo ;B(q)J y(q)v_ + g(q)T ;B(q)J y(q)v_ + g(q) = 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO BJ yv_ + g = B(J yv_ + B; g) = B (J yv_ + B ; g + J yJB ; g ; J yJB ; g) ; = B J yv_ + J yJB ; g + (I ; J yJ )B ; g = BJ y(v_ + JB ; g) 1 1 1 1 1 1 1 + (v_ + JB ;1 g)T J yT B T BJ y(v_ + JB ;1 g) = 1 1 0.5 −1 [m] JB g 0 −0.5 −0.5 0 0.5 1 [m] ? manipolatore non ridondante (v_ + JB ;1 g)T J ;T B T BJ ;1 (v_ + JB ;1 g) = 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO PIANIFICAZIONE DI TRAIETTORIE generazione degli ingressi di riferimento per il sistema di controllo del moto Percorso e traiettoria Traiettorie nello spazio dei giunti Traiettorie nello spazio operativo Scalatura dinamica di traiettorie ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO PERCORSO E TRAIETTORIA ? generazione di traiettorie a curvatura regolare Percorso: luogo dei punti dello spazio dei giunti (spazio operativo) che il manipolatore deve descrivere nell’esecuzione del movimento assegnato (descrizione geometrica) Traiettoria: percorso su cui sia specificata la legge oraria di moto (ad es. velocità e/o accelerazioni) Algoritmo di pianificazione della traiettoria ? ingressi definizione del percorso vincoli al percorso vincoli dovuti alla dinamica del manipolatore ? uscita traiettorie dei giunti (o dell’organo terminale) espresse come sequenza temporale di valori assunti da posizione, velocit à e accelerazione ROBOTICA INDUSTRIALE Numero ristretto di parametri ? percorso punti estremi eventuali punti intermedi primitive geometriche ? legge di moto tempo complessivo velocità e/o accelerazione max velocità e/o accelerazione in punti assegnati Traiettorie nello spazio operativo ? ? ? ? descrizione naturale del compito vincoli sul percorso singolarità ridondanza Traiettorie nello spazio dei giunti ? ? inversione cinematica azione di controllo Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO TRAIETTORIE NELLO SPAZIO DEI GIUNTI q Generazione di una funzione (t) che interpola i valori assegnati per le variabili di giunto nel rispetto dei vincoli imposti. ? ? ? traiettorie generate poco onerose dal punto di vista computazionale posizioni e velocità (e accelerazioni) dei giunti funzioni continue del tempo effetti indesiderati minimizzati (ad es. traiettorie a curvatura non regolare) Moto punto–punto ? punti estremi e tempo di transizione Moto su percorso assegnato ? punti estremi, punti intermedi e tempi di transizione ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Moto punto–punto ? generazione di tempo tf q(t) che realizza il moto da q i a qf Polinomio cubico q(t) = a3 t3 + a2 t2 + a1 t + a0 q_(t) = 3a3 t2 + 2a2 t + a1 q(t) = 6a3 t + 2a2 ? calcolo dei coefficienti a0 = qi a1 = q_i a3 t3f + a2 t2f + a1 tf + a0 = qf 3a3 t2f + 2a2tf + a1 = q_f Polinomio quintico (accelerazioni iniziale e finale) q(t) = a5 t5 + a4 t4 + a3 t3 + a2 t2 + a1 t + a0 in un ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 3 2 1 0 0 0.2 0.4 0.6 [s] 0.8 1 0.8 1 0.8 1 vel 5 [rad/s] 4 3 2 1 0 0 0.2 0.4 0.6 [s] acc 20 [rad/s^2] 10 0 −10 −20 0 0.2 0.4 0.6 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Profilo di velocità trapezoidale qc qc tc = qtm ; ;t m c qc = qi + 21 qc t2c qc t2c ; qc tf tc + qf ; qi = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO qc assegnata (sgn qc = sgn (qf ; qi )) s t2f qc ; 4(qf ; qi ) t 1 f tc = 2 ; 2 qc jqc j 4jqft2; qij f ? traiettoria 8 q + q t > <i c q(t) = > qi + qc tc (t ; tc =2) : qf ; qc (tf ; t) 1 2 1 2 2 2 0 t tc tc < t tf ; tc tf ; tc < t tf ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 3 2 1 0 0 0.2 0.4 0.6 [s] 0.8 1 0.8 1 0.8 1 vel 5 [rad/s] 4 3 2 1 0 0 0.2 0.4 0.6 [s] acc 20 [rad/s^2] 10 0 −10 −20 0 0.2 0.4 0.6 [s] ROBOTICA INDUSTRIALE q_c assegnata Prof. Bruno SICILIANO jqf ; qi j < jq_ j 2jqf ; qi j tf c tf tc = qi ; qfq_ + q_c tf c 2 q _ c qc = q ; q + q_ t i f cf ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Moto su percorso assegnato ? opportunità di specificare punti intermedi (sequenza di punti) Assegnati N punti di percorso, trovare una funzione interpolante che passi per tali punti ? polinomio di grado N ;1 non è possibile assegnare velocità iniziale e finale al crescere del grado di un polinomio aumenta il suo carattere oscillatorio (traiettorie poco naturali) l’accuratezza numerica con cui pu ò essere calcolato un polinomio peggiora all’aumentare del suo grado una volta impostato il sistema di equazioni dei vincoli, risulta oneroso risolverlo i coefficienti del polinomio dipendono da tutti i punti assegnati =) se si vuole cambiare uno dei punti di percorso, si deve ricalcolare il tutto ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sequenze di polinomi interpolatori di grado pi ù basso (cubici) uniti tra di loro nei punti assegnati lungo il percorso ? i valori di q_(t) in corrispondenza dei punti di percorso sono imposti arbitrariamente ? i valori di q_(t) in corrispondenza dei punti di percorso sono assegnati in base ad un opportuno criterio ? l’accelerazione q(t) deve essere continua in corrispondenza dei punti di percorso Sequenze di polinomi di grado minore di tre (passaggio in prossimità dei punti di percorso imposti) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sequenza di polinomi con vincoli imposti sulle velocit à nei punti di percorso k (tk ) = qk k (tk+1 ) = qk+1 _ k (tk ) = q_k _ k (tk+1 ) = q_k+1 ? continuità delle velocità nei punti intermedi _ k (tk+1 ) = _ k+1 (tk+1 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 6 4 2 0 0 2 4 6 4 6 4 6 [s] vel [rad/s] 5 0 −5 0 2 [s] acc [rad/s^2] 20 0 −20 −40 0 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sequenza di polinomi con velocit à calcolate nei punti di percorso q_1 = 0 0 q_k = 1 (vk + vk+1 ) q_N = 0 2 sgn (vk ) 6= sgn (vk+1 ) sgn (vk ) = sgn (vk+1 ) vk = (qk ; qk;1 )=(tk ; tk;1 ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 6 4 2 0 0 2 4 6 4 6 4 6 [s] vel [rad/s] 5 0 −5 0 2 [s] acc 30 [rad/s^2] 20 10 0 −10 −20 −30 0 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sequenza di polinomi con accelerazione continua nei punti di percorso (spline) k;1 (tk ) = qk k;1 (tk ) = k (tk ) _ k;1 (tk ) = _ k (tk ) k;1 (tk ) = k (tk ) ? 4N ; 2 equazioni nei 4(N ; 1) coefficienti incogniti (polinomi di quarto grado per il primo e l’ultimo segmento?) ? 2 punti virtuali (continuità su posizione, velocità e accelerazione) =) N + 1 polinomi cubici ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ? 4(N ; 2) equazioni per gli N ; 2 punti di percorso interni: k;1 (tk ) = qk k;1 (tk ) = k (tk ) _ k;1 (tk ) = _ k (tk ) k;1 (tk ) = k (tk ) ? 6 equazioni per i punti iniziale e finale 1 (t1 ) = qi _ 1 (t1 ) = q_i 1 (t1 ) = qi N +1 (tN +2 ) = qf _ N +1 (tN +2 ) = q_f N +1 (tN +2 ) = qf ? 6 equazioni per i punti virtuali k;1 (tk ) = k (tk ) _ k;1 (tk ) = _ k (tk ) k;1 (tk ) = k (tk ) ? + Sistema di 4(N + 1) equazioni per la determinazione dei 4(N + 1) coefficienti degli N + 1 polinomi cubici ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO algoritmo efficiente dal punto di vista computazionale k (tk ) k (tk+1 ) k (t) = t (tk+1 ; t) + t (t ; tk ) k k k (tk ) k (tk+1 ) 3 k (t) = 6t (tk+1 ; t) + 6t (t ; tk )3 k k ! k (tk+1 ) t ( t k k k +1 ) (t ; tk ) + tk ; 6 ! k (tk ) ( t ) t k k k + t ; (tk+1 ; t) 6 k ? 4 incognite: k (tk ), k (tk+1 ), k (tk ) e k (tk+1 ) ROBOTICA INDUSTRIALE ? ? ? ? ? ? Prof. Bruno SICILIANO N variabili qk per k 6= 2; N + 1 assegnate vincoli di continuità su q2 e qN +1 vincoli di continuità su qk per k = 3; : : : ; N q_i e q_f assegnate vincoli di continuità su qk per k = 2; : : : ; N + 1 qi e qf assegnate + _ 1 (t2 ) = _ 2 (t2 ) .. . _ N (tN +1 ) = _ N +1 (tN +1 ) ? sistema di equazioni lineari A [ (t ) 2a a 66 a a A = 66 ... ... 40 0 2 2 11 12 21 22 0 : : : N +1 (tN +1 ) ]T = b ::: ::: .. . 0 0 .. . : : : aN ;1;N ;1 0 : : : aN;N ;1 3 77 .. 77 . aN ; ;N 5 0 0 1 aNN ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 6 4 2 0 0 1 2 3 4 5 3 4 5 3 4 5 [s] vel [rad/s] 5 0 −5 0 1 2 [s] acc 30 20 [rad/s^2] 10 0 −10 −20 −30 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sequenza di polinomi parabolico-lineari con passaggio in prossimità di punti di via ; qk;1 q_k;1;k = qkt k;1 ; q_k;1;k qk = q_k;k+1t 0 k ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio pos [rad] 6 4 2 0 0 1 2 3 4 5 3 4 5 3 4 5 [s] vel 4 [rad/s] 2 0 −2 −4 −6 0 1 2 [s] acc 40 [rad/s^2] 20 0 −20 −40 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Applicazione della legge trapezoidale al problema dell’interpolazione pos 5 [rad] 4 3 2 1 0 0 0.5 1 [s] 1.5 2 1.5 2 1.5 2 vel 4 [rad/s] 3 2 1 0 0 0.5 1 [s] acc [rad/s^2] 20 10 0 −10 −20 0 0.5 1 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO TRAIETTORIE NELLO SPAZIO OPERATIVO Sequenze di punti assegnati ? ? ? inversione cinematica traiettorie nello spazio dei giunti microinterpolazione x(tk ) Punti di percorso Primitive di percorso ? ? componenti xi (tk ) raccordate secondo sequenze di polinomi interpolatori espressione analitica del moto ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Primitive di percorso Rappresentazione parametrica di una curva nello spazio p = f (s) t = ddsp 2 d n = d2p dsp2 2 ds b=tn 1 ROBOTICA INDUSTRIALE Segmento nello spazio p(s) = pi + kpf ;s pik (pf ; pi) dp = 1 (p ; p ) ds kpf ; pi k f i d2 p = 0 ds2 Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Circonferenza nello spazio 2 cos (s=) 3 p0(s) = 4 sin (s=) 5 0 p(s) = c + Rp0(s) 2 ;sin (s=) 3 dp = R 4 cos (s=) 5 ds 0 2 ;cos (s=)= 3 d p = R 4 ;sin (s=)= 5 ds 2 2 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Traiettorie di posizione e di orientamento Posizione p = f (s) ? s(t) polinomio interpolatore p_ = s_ ddsp = s_t ? segmento p(s) = pi + kpf ;s pik (pf ; pi) p_ = kpf ;s_ pik (pf ; pi) = s_t p = kpf ;s pik (pf ; pi) = st ? circonferenza 2 cos (s=) 3 p(s) = c + R 4 sin (s=) 5 0 2 ;s_ sin (s=) 3 p_ = R 4 s_ cos (s=) 5 0 2 ;s_ cos (s=)= ; s sin (s=) 3 p = R 4 ;s_ sin (s=)= + s cos (s=) 5 2 2 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Orientamento ? ? n(t), s(t), a(t) ? interpolazione delle componenti di (t) (s) = i + kf ;s ik (f ; i) interpolazione di _ = kf ;s_ ik (f ; i) = kf ;s ik (f ; i) ? R = RiRfi ) 3 r r r r 5 asse equivalente di rotazione ( f 2r Rfi = RiT Rf = 4 r 11 12 13 21 22 23 r31 r32 r33 r + r + r ; 1 #f = cos ; 2 r ; r2 3 r = 2 sin1 #f 4 r ; r 5 1 11 22 33 32 23 13 31 r21 ; r12 Ri(t): Ri(0) = I Ri(tf ) = Rfi R(t) = RiRri (#(t)) #(0) = 0 #(tf ) = #f ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SCALATURA DINAMICA DI TRAIETTORIE ? vincoli dinamici (coppie troppo elevate) (t) = B(q(t))q(t) + C (q(t); q_ (t))q_ (t) + g(q(t)) = B (q(t))q(t) + ; (q(t))[q_ (t)q_ (t)] + g(q(t)) = s (t) + g(q(t)) C (q; q_ )q_ = ; (q)[q_ q_ ] [q_ q_ ] = [ q_12 q_1 q_2 : : : q_n;1 q_n q_n2 ]T ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO r(0) = 0 r(tf ) = tf q(t) = q(r(t)) q_ = r_q0(r) q = r_2q00 (r) + rq0(r) scalatura temporale r(t): + 00 0 0 = r_ B(q(r))q (r) + ; (q(r))[q (r)q (r)] + rB(q(r))q0(r) + g(q(r)) = s (t) + g(q(r)) 2 s(r) = B(q(r))q00(r) + ; (q(r))[q0(r)q0(r)] + s(t) = r_ s(r) + rB(q(r))q0(r) 2 ? scelta semplice r(t) = ct s(t) = c s(ct) 2 giunto qi in corrispondenza della violazione maggiore js j = c2 ji ; g(qi )j ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO DEL MOTO Controllo nello spazio dei giunti Controllo indipendente ai giunti Compensazione in avanti a coppia precalcolata Controllo centralizzato Controllo nello spazio operativo ROBOTICA INDUSTRIALE IL PROBLEMA DEL CONTROLLO Controllo nello spazio dei giunti Controllo nello spazio operativo Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO NELLO SPAZIO DEI GIUNTI Modello dinamico B(q)q + C (q; q_ )q_ + Fv q_ + g(q) = Controllo ? q(t) = qd(t) determinare : trasmissioni Kr q = qm ? m = Kr; 1 inerzie medie B(q) = B + B(q) r; qm + Fm q_ m + d m = Kr; BK 1 ? 1 attrito viscoso Fm = Kr; Fv Kr; 1 ? 1 disturbo d = Kr; B(q)Kr; qm + Kr; C (q; q_ )Kr; q_ m + Kr; g(q) 1 1 1 1 1 ROBOTICA INDUSTRIALE Manipolatore + attuatori ? controllo decentralizzato ? controllo centralizzato Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO INDIPENDENTE AI GIUNTI Manipolatore n sistemi indipendenti (azionamenti di giunto) ? ? controllo di ogni asse di giunto come un sistema ad un ingresso ed una uscita effetti di accoppiamento tra i vari giunti trattati come ingressi di disturbo Azionamento del giunto i Fm kRv kt a M (s) = s(1 +kmsT ) m km = k1 Tm = kRakI v v t ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo in retroazione Riduzione degli effetti di d su ? ? elevato valore del guadagno degli amplificatori a monte del punto di applicazione del disturbo presenza nel controllore di una azione integrale al fine di annullare a regime ( costante) l’effetto della componente gravitazionale sull’uscita + Controllore proporzionale-integrale (PI) C (s) = Kc 1 +ssTc Struttura generale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione CP (s) = KP 1 +ssTP CV (s) = 1 CA (s) = 1 kTV = kTA = 0 ? f.d.t. del ramo di azione diretta P (1 + sTP ) C (s)G(s) = kmsK 2 (1 + sT ) m ? f.d.t. del ramo in retroazione H (s) = kTP ROBOTICA INDUSTRIALE ? analisi con il l.d.r. Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO f.d.t. ingresso–uscita a ciclo chiuso 1 (s) = r (s ) 1 + kTP s2 (1 + sTm ) km KP kTP (1 + sTP ) 1 (1 + sT ) P k TP W (s) = 2s s2 1 + ! + !2 (1 + s ) n ? n f.d.t. disturbo–uscita sRa (s) = ; kt KP kTP (1 + sTP ) 2 D(s) s + sTm ) 1 + k K (1 m P kTP (1 + sTP ) XR = KP kTP TR = max TP ; !1 n ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione e di velocit à CP (s) = KP CV (s) = KV 1 +ssTV CA (s) = 1 kTA = 0 ? f.d.t. del ramo di azione diretta V) C (s)G(s) = kmKsP2 (1KV+(1sT+ sT ) m ? f.d.t. del ramo in retroazione k H (s) = kTP 1 + s K TV P kTP ROBOTICA INDUSTRIALE ? analisi con il l.d.r. ? scelta dello zero Prof. Bruno SICILIANO TV = Tm ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO f.d.t. ingresso–uscita a ciclo chiuso 1 (s) = kTP r (s) 1 + skTV + s2 KP kTP kmKP kTP KV 1 kTP W (s) = 2 s 2 s 1 + ! + !2 n n ? specifiche di progetto KV kTV = 2k!n m 2 ! n KP kTP KV = k m ? f.d.t. disturbo–uscita sRa (s) = ; kt KP kTP KV (1 + sTm ) 2 D(s) s sk TV 1+ K k + k K k K P TP XR = KP kTP KV m P TP V TR = max Tm ; !1 n ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione, di velocit à e di accelerazione CP (s) = KP G0 (s) = CV (s) = KV CA (s) = KA 1 +ssTA 1 0 km T A sT 1 + k K k m m A TA C B T m C B (1 + km KA kTA ) @1 + A (1 + km KA kTA ) ? f.d.t. del ramo di azione diretta C (s)G(s) = KP KV KAs2(1 + sTA ) G0 (s) ? f.d.t. del ramo in retroazione sk TV H (s) = kTP 1 + K k P TP ROBOTICA INDUSTRIALE ? analisi con il l.d.r. ? scelta dello zero Prof. Bruno SICILIANO TA = Tm km KA kTA TA Tm kmKA kTA 1 ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO f.d.t. ingresso–uscita a ciclo chiuso 1 (s) = kTP r (s) 1 + skTV + s2 (1 + km KA kTA ) KP kTP km KP kTP KV KA ? f.d.t. disturbo–uscita sRa (s) = ; kt KP kTP KV KA (1 + sTA ) 2 D (s ) s sk TA ) TV 1 + K k + k (1K+ kkmKKA kK P TP XR = KP kTP KV KA ? m P TP V A TR = max TA ; !1 n specifiche di progetto 2KP kTP = !n kTV km KA kTA = km!X2 R ; 1 KP kTP KV KA = XR n ROBOTICA INDUSTRIALE ? ricostruzione dell’accelerazione Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Compensazione in avanti decentralizzata Elevati valori di velocità e accelerazioni ? capacità di inseguimento degradate Impiego di una azione in avanti ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione 2 s (1 + sT ) m r0 (s) = kTP + k K (1 + sT d (s) m P P) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione e di velocit à 2 sk s r0 (s) = kTP + KTV + k K K d (s) P m P V ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Retroazione di posizione, di velocit à e di accelerazione 2 sk (1 + k K k ) s TV m A TA 0 r (s) = kTP + K + k K K K d (s) P m P V A ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO COMPENSAZIONE IN AVANTI A COPPIA PRECALCOLATA All’uscita del PIDD2 a2 e + a1 e_ + a0 e + a;1 Zt e(& )d& + Tkm d + k1 _d ; Rk a d m m t = Tkm + k1 _ m m + a02 e + a01 e_ + a00 e + a0;1 Zt e(& )d& = Rk a d t Ra s E (s ) = kt D(s) a02 s3 + a01 s2 + a00 s + a0;1 ? adozione di guadagni di anello troppo elevati ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Coppia precalcolata ? azione in avanti (inversione di modello) dd = Kr; B(qd)Kr; qmd+Kr; C (qd; q_ d)Kr; q_ md+Kr; g(qd) 1 ? ? ? 1 1 1 1 riduzione degli sforzi di reiezione del disturbo (guadagni contenuti) calcolo fuori linea/in linea compensazione parziale ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO CENTRALIZZATO Manipolatore Sistema multivariabile accoppiato e non lineare B(q)q + C (q; q_ )q_ + Fv q_ + g(q) = Trasmissioni Kr q = qm Sistemi di attuazione Kr; = Ktia va = Raia + Kv q_ m va = Gv vc 1 Manipolatore controllato in tensione B(q)q + C (q; q_ )q_ + F q_ + g(q) = u F = Fv + Kr Kt Ra; Kv Kr u = Kr Kt Ra; Gv vc 1 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Manipolatore controllato in coppia ? riduzione della sensibilità alle variazioni parametriche ? attuatori come generatori controllati di coppia (corrente) Kt , Kv , Ra ia = Givc + F = Fv u = Kr Kt Givc = ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo PD con compensazione di gravità q Regolazione ad una postura di equilibrio costante d Metodo diretto di Lyapunov ? ? qe q_ T ]T qe = qd ; q stato [ T funzione candidata di Lyapunov V (q_ ; qe) = 21 q_ T B (q)q_ + 12 qeT KP qe > 0 V_ = q_ T B (q)q + 12 q_ T B_ (q)q_ ; q_ T KP qe 8q_ ; qe 6= 0 ; ; = 12 q_ T B_ (q) ; 2C (q; q_ ) q_ ; q_ T F q_ + q_ T u ; g(q) ; KP qe ? scelta del controllo u = g(q) + KP qe ; KD q_ + V_ = ;q_ T (F + KD )q_ V_ = 0 q_ = 0; 8qe ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO dinamica del sistema controllato B(q)q + C (q; q_ )q_ + F q_ + g(q) = g(q) + KP qe ; KD q_ ? q q 0) all’equilibrio ( _ KP qe = 0 =) qe = qd ; q 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo a dinamica inversa Modello dinamico B(q)q + n(q; q_ ) = u n(q; q_ ) = C (q; q_ )q_ + F q_ + g(q) Retroazione non lineare dello stato (linearizzazione globale) ? struttura lineare in u ? %(B (q)) = n 8q u = B(q)y + n(q; q_ ) + q = y ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO y stabilizzante y = ;KP q ; KD q_ + r Scelta di un controllo r = qd + KD q_ d + KP qd + qe + KD qe_ + KP qe = 0 ? ? cancellazione perfetta vincoli sull’architettura hardware/software dell’unit à di governo ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo robusto Compensazione imperfetta u = Bb (q)y + nb (q; q_ ) ? incertezza Be = Bb ; B ne = nb ; n + b + nb Bq + n = By q = y + (B; Bb ; I )y + B; ne = y ; 1 1 = (I ; B; Bb )y ; B; ne 1 Scelta del controllo y = qd + KD (q_ d ; q_ ) + KP (qd ; q) + qe + KD qe_ + KP qe = 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO qe = qd ; y + ? equazione differenziale del primo ordine _ = H + D(qd ; y + ) Stima del campo di variabilità dell’incertezza sup kqdk < QM < 1 t0 kI ; B ;1 (q)Bb (q)k 1 kne k < 1 8qd 8q 8q; q_ ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Scelta del controllo y = qd + KD qe_ + KP qe + w + f + D( ; w) _ = H O I f = (H ; DK ) = ;K ;K H P D Metodo di Lyapunov V () = T Q > 0 8 6= 0 V_ = _ T Q + T Q_ fT Q + QH f) + 2T QD( ; w) = T (H = ;T P + 2T QD( ; w) = ;T P + 2zT ( ; w) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Legge di controllo w = kzk z >0 + zT ( ; w) = zT ; kzk zT z kzkkk ; kzk = kzk(kk ; ) Scelta di kk ? 8q; q_ ; qd stima dell’incertezza ; ; 1b kk kI ; B B k kqdk + kK k kk + kwk + kB ;1 k kne k QM + kK k kk + + BM 1 ;1 (QM + kK kkk + BM ) + V_ = ;T P + 2zT ; kzk z < 0 8 6= 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO sottospazio di scivolamento (attrattivo) Eliminazione delle componenti in alta frequenza 8 > < kzk z w=> : z zk per kz k < per k ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo adattativo Modello dinamico (lineare nei parametri) B(q)q + C (q; q_ )q_ + F q_ + g(q) = Y (q; q_ ; q) = u Controllo u = B(q)qr + C (q; q_ )q_ r + F q_ r + g(q) + KD q_ r = q_ d + qe qr = qd + qe_ = q_ r ; q_ = qe_ + qe + B(q)_ + C (q; q_ ) + F + KD = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Metodo di Lyapunov V (; qe) = 12 T B (q) + 21 qeT M qe > 0 8; eq 6= 0 V_ = T B (q)_ + 21 T B_ (q) + qeT M qe_ = ;T (F + KD ) + qeT M qe_ T = ;T F ; qe_ KD qe_ ; qeT KD qe ? V_ = 0 solo per qe = qe_ 0 =) [ qeT T ]T = 0 globalmente asintoticamente stabile ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo basato su stime dei parametri u = Bb (q)qr + Cb (q; q_ )q_ r + Fb q_ r + gb + KD = Y (q; q_ ; q_ r ; qr )b + KD + B(q)_ + C (q; q_ ) + F + KD = ;Be (q)qr ; Ce (q; q_ )q_ r ; Fe q_ r ; ge(q) = ;Y (q; q_ ; q_ r ; qr )e Modifica di V V (; qe; e ) = 12 T B (q)+qeT KD qe+ 21 e T K e > 0 V_ = ;T F ; qe_ T KD qe_ ; qeT KD qe ; T T _ + e K e ; Y (q; q_ ; q_ r ; qr ) 8; qe; e 6= ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Legge di adattamento b_ = K; Y T (q; q_ ; q_ r ; qr ) 1 + V_ = ;T F ; qe_ T KD qe_ ; qeT KD qe ? qe ! 0 ? Y (q; q_ ; q_ r ; qr )(b ; ) ! 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO NELLO SPAZIO OPERATIVO ? ? ? specifiche di moto relazioni cinematiche carico computazionale Schemi di principio Controllo con inversa dello Jacobiano Controllo con trasposta dello Jacobiano ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo PD con compensazione di gravità x Regolazione ad una posizione di equilibrio costante d Metodo di Lyapunov V (q_ ; xe ) = 12 q_ T B (q)q_ + 12 xe T KP xe > 0 8q_ ; xe 6= 0 V_ = q_ T B (q)q + 21 q_ T B_ (q)q_ + xe_ T KP xe = q_ T B (q)q + 12 q_ T B_ (q)q_ ; q_ T JAT (q)KP xe = ;q_ T F q_ + q_ T ? ;u ; g(q) ; J T (q)K xe P A scelta del controllo u = g(q) + JAT (q)KP xe ; JAT KD JA(q)q_ + V_ = ;q_ T F q_ ; q_ T JAT (q)KD JA (q)q_ V_ = 0 JAT (q)KP xe = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo a dinamica inversa Modello B(q)q + n(q; q_ ) = u Controllo linearizzante u = B(q)y + n(q; q_ ) + q = y ; ; _ _ e e _ _ = JA (q) xd + KD x + KP x ; JA (q; q)q 1 xe + KD xe_ + KP xe = 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONFRONTO TRA GLI SCHEMI DI CONTROLLO Manipolatore planare a due bracci ? a1 = a2 = 1 m `1 = `2 = 0:5 m m`1 = m`2 = 50 kg I`1 = I`2 = 10 kg m2 ? kr1 = kr2 = 100 mm1 = mm2 = 5 kg Im1 = Im2 = 0:01 kg m2 Fm1 = Fm2 = 0:01 N m s/rad Ra1 = Ra2 = 10 ohm kt1 = kt2 = 2 N m/A kv1 = kv2 = 2 V s/rad ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Schemi di controllo A. Indipendente ai giunti pos + vel KP = 5 KV = 10 kTP = kTV = 1 B. Indipendente ai giunti pos + vel + acc KP = 5 KV = 10 KA = 2 kTP = kTV = kTA = 1 C. Come A + compensazione in avanti decentralizzata D. Come B + compensazione in avanti decentralizzata E. Coppia precalcolata ai giunti (termini diag. inerzia + gravit à) + Indipendente ai giunti come A ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO F. PD + compensazione di gravità + KP = 3750I KD = 750I KD q_ d G. Dinamica inversa KP = 25I KD = 5I b = B , nb = Fv q_ + g) H. Robusto (B KP = 25I KD = 5I = 70 I. Come H = 0:004 = 0:01 J. Adattativo m2 = 10 kg m2 `C 2 = 11 kg m I^2 = 12:12 kg m2 = 5I KD = 750I K = 0:01I K. PD cartesiano + compensazione di gravit à + KP = 16250I KD = 3250I L. Dinamica inversa cartesiano KP = 25I KD = 5I KD x_ d ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 3 −0.5 2.5 −1 2 [rad] [rad] pos giunto 1 0 −1.5 1.5 −2 1 −2.5 0.5 −3 0 1 2 [s] 3 0 0 4 1 coppie giunti 2 [s] 3 4 3 4 errori pos 1500 0.2 [m] [Nm] 1000 500 0 −500 0 0.1 0 1 2 [s] 3 4 −0.1 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1500 1000 1000 [Nm] [Nm] coppie giunti 1500 500 0 −500 0 500 0 1 2 [s] 3 −500 0 4 1 norma err pos 2 [s] 3 4 3 4 norma err pos 0.01 0.01 [m] 0.015 [m] 0.015 0.005 0 0 0.005 1 2 [s] 3 4 0 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti norma err pos 1500 0.015 1000 [m] [Nm] 0.01 500 0.005 0 −500 0 1 2 [s] 3 4 0 0 1 2 [s] 3 4 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 3 −0.5 2.5 −1 2 [rad] [rad] pos giunto 1 0 −1.5 1.5 −2 1 −2.5 0.5 −3 0 1 2 [s] 3 0 0 4 1 coppie giunti 3 4 3 4 norma err pos 1500 0.1 0.08 [m] 1000 [Nm] 2 [s] 500 0.06 0.04 0 −500 0 0.02 1 2 [s] 3 4 0 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 1500 4 1000 3 500 0 −500 0 norma err pos −4 [m] [Nm] coppie giunti x 10 2 1 1 2 [s] 3 4 0 0 1 2 [s] 3 4 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1000 1000 [Nm] 1500 500 500 0 0 −500 0 1 4 2 [s] 3 4 −500 0 norma err pos −4 x 10 4 2 [s] 3 4 3 4 norma err pos x 10 [m] 3 2 1 0 0 1 −4 3 [m] [Nm] coppie giunti 1500 2 1 1 2 [s] 3 4 0 0 1 2 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO norma err parametri [m] norma err pos 0.01 17 0.008 16 15 0.006 14 0.004 13 0.002 0 0 12 1 2 [s] 3 4 11 0 1 2 [s] 3 4 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti norma err pos 1500 0.1 0.08 [m] [Nm] 1000 500 0.06 0.04 0 −500 0 0.02 1 2 [s] 3 4 0 0 1 2 [s] 3 4 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 1500 4 1000 3 500 0 −500 0 norma err pos −4 [m] [Nm] coppie giunti x 10 2 1 1 2 [s] 3 4 0 0 1 2 [s] 3 4 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 3 −0.5 2.5 −1 2 [rad] [rad] pos giunto 1 0 −1.5 1.5 −2 1 −2.5 0.5 −3 0 2 4 6 8 0 0 10 2 4 6 [s] [s] coppie giunti errori pos 8 10 8 10 1500 1000 [m] [Nm] 0.05 500 0 0 −500 0 2 4 6 [s] 8 10 −0.05 0 2 4 6 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1000 1000 [Nm] 1500 500 500 0 0 −500 0 2 4 6 8 10 −500 0 2 4 [s] x 10 8 10 8 10 norma err pos −3 4 x 10 3 [m] 3 2 1 0 0 6 [s] norma err pos −3 4 [m] [Nm] coppie giunti 1500 2 1 2 4 6 [s] 8 10 0 0 2 4 6 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO 1500 4 1000 3 500 0 −500 0 norma err pos −3 [m] [Nm] coppie giunti x 10 2 1 2 4 6 [s] 8 10 0 0 2 4 6 [s] 8 10 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos giunto 2 3 −0.5 2.5 −1 2 [rad] [rad] pos giunto 1 0 −1.5 1.5 −2 1 −2.5 0.5 −3 0 2 4 6 8 0 0 10 2 4 [s] 8 10 8 10 norma err pos 0.02 1000 0.015 [m] [Nm] coppie giunti 1500 500 0 −500 0 6 [s] 0.01 0.005 2 4 6 [s] 8 10 0 0 2 4 6 [s] ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1500 1 0.8 [m] 1000 [Nm] norma err pos −4 x 10 500 0.6 0.4 0 −500 0 0.2 2 4 6 [s] 8 10 0 0 2 4 6 [s] 8 10 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1500 1000 1000 [Nm] [Nm] coppie giunti 1500 500 500 0 0 −500 0 2 4 6 8 10 −500 0 2 4 [s] norma err pos −4 x 10 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 2 4 6 [s] 8 10 8 10 norma err pos −4 1 [m] [m] 1 6 [s] 8 10 x 10 0 0 2 4 6 [s] ROBOTICA INDUSTRIALE norma err pos −3 [m] 5 Prof. Bruno SICILIANO x 10 norma err parametri 17 4 16 3 15 2 14 1 13 0 0 2 4 6 [s] 8 10 12 0 2 4 6 [s] 8 10 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO norma err pos 0.02 1000 0.015 [m] [Nm] coppie giunti 1500 500 0 −500 0 0.01 0.005 2 4 6 [s] 8 10 0 0 2 4 6 [s] 8 10 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO coppie giunti 1500 1 0.8 [m] 1000 [Nm] norma err pos −4 x 10 500 0.6 0.4 0 −500 0 0.2 2 4 6 [s] 8 10 0 0 2 4 6 [s] 8 10 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO DELL’INTERAZIONE Interazione del manipolatore con l’ambiente Controllo di cedevolezza Controllo di impedenza Controllo di forza Vincoli naturali e vincoli artificiali Controllo ibrido forza/posizione ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO INTERAZIONE DEL MANIPOLATORE CON L’AMBIENTE Moto vincolato Controllo posizionale (?) ? ? errori di posizionamento incertezza sull’ambiente Contatto instabile Misura di forza Strategie di controllo ? ? indirette dirette ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO DI CEDEVOLEZZA Effetti della forza di contatto su schemi di controllo posizionale (nello spazio operativo) B(q)q + C (q; q_ )q_ + F q_ + g(q) = u ; J T (q)h ? all’equilibrio JAT (q)KP xe = J T (q)h + xe = KP; TAT (x)h = KP; hA 1 1 KP;1 cedevolezza del controllo ? ? Se lineare nei riguardi di f torsionale nei riguardi di h 2 N (J T ) =) xe = 0 h 6= 0 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Modello dell’ambiente ? elasticamente cedevole f K O dp h = = Of Km !dt dp = K !dt = KTA (x)dx + hA = TAT (x)KTA(x)dx = KA (x)(x ; xe ) KA;1 cedevolezza dell’ambiente ? solo per le direzioni di moto vincolato xe = KP; KA (x)(x ; xe) 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Cedevolezza attiva e cedevolezza passiva ? all’equilibrio x1 = ;I + KP; KA (x); (xd + KP; KA (x)xe) h = ;I + K (x)K ; ; K (x)(x ; x ) 1 1 A1 ? ? A P 1 1 1 A d manipolatore cedevole ambiente cedevole Dispositivi meccanici di cedevolezza passiva e ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio KA = Kf = diagfkx; 0g All’equilibrio p1 = ? " kPxxd + kxxe # kPx + kx yd se kPx =kx se kPx =kx 2 kPx kx 3 f1 = 4 kPx + kx (xd ; xe ) 5 0 1 x1 xd ? KP = diagfkPx; kPy g fx1 kx (xd ; xe ) 1 x1 xe fx1 kPx (xd ; xe ) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Cedevolezza attiva nello spazio dei giunti ? all’equilibrio KP qe = J T (q)h + qe = KP; J T (q)h 1 xe = JA(q)KP; JAT (q)hA 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO DI IMPEDENZA Controllo a dinamica inversa nello spazio operativo u = B(q)y + n(q; q_ ) + q = y ; B; (q)J T (q)h 1 ? scelta del nuovo ingresso di controllo y = JA; (q)Md; ;Mdx d + KD xe_ + KP xe ; MdJ_ A(q; q_ )q_ 1 1 Mdxe + KD xe_ + KP xe = MdBA; (q)hA 1 BA (q) = JA;T (q)B(q)JA; (q) 1 Impedenza meccanica ? ? ? massa Md smorzamento rigidezza KP KD ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Integrazione della misura della forza di contatto u = B(q)y + n(q; q_ ) + J T (q)h ; ; 1 ; 1 _ _ y = J (q)M Mdx d +KD xe +KP xe ;MdJA(q; q_ )q_ ;hA A d + Mdxe + KD xe_ + KP xe = hA ? impedenza lineare attiva Dispositivi meccanici di impedenza passiva ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio Controllo di impedenza con misura di forza Md = diagfmdx; mdy g KD = diagfkDx; kDy g KP = diagfkPx; kPy g ? dinamica del sistema manipolatore–ambiente lungo le due direzioni dello spazio operativo (x d costante) mdxx + kDx x_ + (kPx + kx )x = kx xe + kPx xd mdy y + kDy y_ + kPy y = kPy yd ROBOTICA INDUSTRIALE Ambiente (xe Controllo Manipolatore Prof. Bruno SICILIANO = 1) ? più cedevole kx = 103 N/m ? meno cedevole kx = 104 N/m ? ? ? mdx = mdy = 100 kDx = kDy = 500 kPx = kPy = 2500 ? p = [ 1 0 ]T ? pd = [ 1:1 0:1 ]T pos organo terminale y forza organo terminale x 300 250 200 [N] [m] 0.1 0.05 150 100 50 0 0 1 2 [s] 3 0 0 1 2 [s] 3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO DI FORZA Controllo di cedevolezza o impedenza retto di forza =) controllo indi- Controllo diretto ? ? azione di controllo PD sulla forza (misura corrotta da rumore) chiusura di un anello esterno di regolazione della forza =) ingresso di riferimento per uno schema di controllo posizionale a dinamica inversa ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo di forza con anello interno di posizione u = B(q)y + n(q; q_ ) + J T (q)h ; ; 1 ; 1 _ y = J (q)M ;KD x_ + KP (xF ; x) ; MdJA(q; q_ )q_ A d + Mdx + KD x_ + KP x = KP xF Scelta del controllo xF = CF (hAd ; hA) ? ambiente hA = KA (x)(x ; xe) + Mdx + KD x_ + KP (I + CF KA )x = KP CF (KA xe + hAd) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Azione PI Zt CF = KF + KI () d& 0 ? K K KF , KI =) scelta di D , P , + banda passante All’equilibrio (stabile) hA1 = hAd KA x1 = KAxe + hAd margini di stabilità ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo di forza con anello interno di velocità y = JA; (q)Md; ;;KD x_ + KP xF ; MdJ_ A(q; q_ )q_ 1 1 xF = KF (hAd ; hA) + Mdx + KD x_ + KP KF KA x = KP KF (KAxe + hAd) All’equilibrio (stabile) hA1 = hAd KA x1 = KAxe + hAd ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Controllo parallelo forza/posizione h 2= R(KA ) =) deriva di x se hAd 2 R(KA ) =) x (o x_ ) ! 0 Aggiunta di xd ? ? se Ad y = JA; (q)Md; ;;KD x_ + KP (xe + xF ) ; MdJ_ A(q; q_ )q_ 1 1 All’equilibrio x1 = xd + CF ;KA (xe ; x1) + hAd ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio Md, KD , KP ) come sopra Riferimenti hAd = [ 10 0 ]T pd = [ 1:015 0:1 ]T Impedenza ( Controllo di forza CF = diagfcFx; 0g 1. controllo con anello interno di posizione kFx = 0:00064 kIx = 0:0016 2. controllo con anello interno di velocit à kFx = 0:0024 3. controllo parallelo kFx = 0:00064 kIx = 0:0016 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO pos organo terminale x forza organo terminale x 1.02 50 40 [N] [m] 1.015 1.01 30 20 1.005 1 0 10 1 2 0 0 3 1 [s] pos organo terminale x 3 forza organo terminale x 1.02 50 40 [N] 1.015 [m] 2 [s] 1.01 30 20 1.005 1 0 10 1 2 0 0 3 1 [s] pos organo terminale x 3 forza organo terminale x 1.02 50 40 [N] 1.015 [m] 2 [s] 1.01 30 20 1.005 1 0 10 1 2 [s] 3 0 0 1 2 [s] 3 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO VINCOLI NATURALI E VINCOLI ARTIFICIALI Riferimenti di forza e posizione scelti in maniera congruente all’ambiente ? Analisi cineto-statica dell’interazione ? ? non è possibile imporre sia una forza che una posizione lungo la stessa direzione vincoli naturali imposti dall’ambiente lungo ciascun grado di libertà del compito (posizione o forza) vincoli artificiali soggetti al controllo lungo ciascun grado di libertà del compito (forza o posizione) Terna di vincolo Oc –xc yc zc ? descrizione semplificata del compito in termini di vincoli naturali e vincoli artificiali Analisi di casi ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Scivolamento su superficie piana Vincoli Naturali p_cz !xc !yc fxc fyc cz Vincoli Artificiali fzc cx cy p_cx p_cy !zc ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Inserimento in foro cilindrico Vincoli Naturali p_cx p_cy !xc !yc fzc cz Vincoli Artificiali fxc fyc cx cy p_cz !zc ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Rotazione di una manovella Vincoli Naturali p_cx p_cz !xc !yc fyc cz Vincoli Artificiali fxc fzc cx cy p_cy !zc ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO CONTROLLO IBRIDO FORZA/POSIZIONE Vincoli naturali vc = vnc (I ; )hc = hcn ? matrice di selezione Vincoli artificiali (I ; )vc = vac ? ? hc = hca perfetta pianificazione del compito in alternativa: controllo parallelo ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Esempio Matrice di selezione = diagf0; 1g Terna di vincolo 1=p2 1=p2 Rc = ;1=p2 1=p2 ROBOTICA INDUSTRIALE ATTUATORI E SENSORI Sistema di attuazione dei giunti Servomotori Sensori Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SISTEMA DI ATTUAZIONE DEI GIUNTI ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Organi di trasmissione Moto dei giunti ? ? ? denti a sezione larga e alberi tozzi (deformazioni limitate) convertono il moto di rotazione in moto di traslazione viti a ricircolazione di sfere precaricate (riduzione attriti, aumento rigidezza, riduzione gioco) Cinghie dentate ? ? variano l’asse di rotazione e/o traslano il punto di applicazione Coppie vite–madrevite ? ? elevate coppie Ruote dentate ? basse velocità consentono di allocare il motore lontano dall’asse del giunto attuato alte velocità e basse forze (deformabili) Catene ? ? consentono di allocare il motore lontano dall’asse del giunto attuato basse velocità (vibrazione) ROBOTICA INDUSTRIALE Accoppiamento diretto ? ? si eliminano elasticità e gioco algoritmi di controllo pi ù sofisticati Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotori Motori pneumatici ? energia pneumatica fornita da un compressore, trasformata in energia meccanica mediante pistoni o turbine ad aria Motori idraulici ? energia idraulica immagazzinata in un serbatoio di accumulazione mediante opportune pompe, trasformata in energia meccanica Motori elettrici ? energia elettrica della rete di distribuzione ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Motori per robot industriali ? ? ? ? ? ? bassa inerzia ed elevato valore del rapporto potenza/peso elevata possibilità di sovraccarico e sviluppo di coppie impulsive capacità di sviluppare elevate accelerazioni elevato campo di variazione di velocit à (da 1 a 1000) elevata precisione di posizionamento (almeno 1/1000 di giro) basso fattore di ondulazione della coppia in modo da garantire rotazioni continue anche a bassa velocit à + Servomotori ? ? inseguimento di traiettoria regolazione di posizione Servomotori elettrici ? ? ? servomotori in corrente continua a magneti permanenti servomotori a commutazione elettronica motori a passo (micromanipolatori) Servomotori idraulici ? ? coppia pistone–cilindro (moti di traslazione servomotori idraulici con pistoni assiali o radiali ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotori elettrici Pro: ? ? ? ? ? disponibilità diffusa di sorgente di alimentazione costo contenuto e vasta gamma di prodotti buon rendimento di conversione di potenza facile manutenzione assenza di inquinamento dell’ambiente di lavoro Contro: ? ? problemi di surriscaldamento in situazioni statiche a causa dell’effetto della gravità sul manipolatore (freni di stazionamento) necessità di particolari protezioni per impiego in ambienti infiammabili ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotori idraulici Pro: ? ? ? ? non presentano problemi di surriscaldamento in situazioni statiche sono autolubrificati e il fluido circolante facilita lo smaltimento del calore sono intrinsecamente sicuri in ambienti pericolosi hanno un ottimo rapporto potenza/peso Contro: ? ? ? ? ? necessità di una centrale idraulica di alimentazione costo elevato, ridotta gamma di prodotti, difficolt à di miniaturizzazione basso rendimento nella conversione di potenza necessità di manutenzione periodica inquinamento dell’ambiente di lavoro per perdite di olio ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotori elettrici ? ? ? buone caratteristiche dinamiche ottima flessibilità di controllo necessità di organi di trasmissione Servomotori idraulici ? ? caratteristiche dinamiche dipendenti dalla temperatura del fluido in pressione coppie elevate a basse velocità ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Amplificatori di potenza Funzione di modulazione del flusso di potenza dall’alimentazione verso l’attuatore (sotto l’azione del controllo) Servomotori elettrici ? amplificatori a transistori convertitori controllati c.c./c.c. (chopper) convertitori controllati c.c./c.a. (inverter) Servomotori idraulici ? servovalvole elettroidrauliche ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sorgenti di alimentazione Azionamenti elettrici ? trasformatore + ponte raddrizzatore (non controllato) Azionamenti idraulici ? pompa azionata da motore primo (asincrono trifase) a velocità costante + serbatoio di accumulazione + filtri + valvole ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SERVOMOTORI Servomotori elettrici Servomotore a corrente continua a magneti permanenti ? ? ? un circuito statorico che genera il flusso magnetico di eccitazione (induttore): questo generatore è sempre a magneti permanenti realizzati con materiali ceramici o con terre rare (campi elevati in spazi ridotti) un circuito di armatura (indotto) che reca un avvolgimento costituito dalle spire di un solenoide avvolto su materiale ferromagnetico che costituisce il rotore un collettore che consente di collegare, mediante delle spazzole, i circuiti rotorici ad un circuito esterno di alimentazione secondo una logica di commutazione attuata dal movimento del rotore Servomotore a commutazione elettronica ? ? ? un generatore di flusso magnetico di eccitazione (induttore) che funge da rotore; questo generatore è a magneti permanenti di materiale ceramico o a terre rare un circuito di armatura (indotto) costituito da un avvolgimento polifase che funge da statore un circuito di commutazione statico che, a partire dai segnali forniti da un sensore di posizione posto sull’albero motore, genera la sequenza di alimentazione delle fasi del circuito di armatura in dipendenza del moto di rotazione del rotore ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotore elettrico con amplificatore Equilibrio elettrico Va = (Ra + sLa )Ia + Vg Vg = kv Equilibrio meccanico Cm = (sIm + Fm ) + Cr Cm = kt Ia Amplificatore di potenza Va = Gv Vc 1 + sTv Retroazione di corrente ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Generatore controllato di velocit à ? ? ? ? ki = 0 Fm kv kt =Ra K = Ci (0)Gv Cr = 0 K Ra kv V 0 ; kv kt Cr = c R I a m 1+s k k 1 + s Rka Ikm v t ? v t a regime: ! kK vc0 v ROBOTICA INDUSTRIALE Protezione di corrente Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Generatore controllato di coppia ? Kki Ra ? kv =Kki 0 kt 1 = ki FmIm Vc0 ; FmIm Cr 1 + sF 1 + sF m ? a regime: k k cm kt vc0 ; Kv ! i m ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Servomotori idraulici Coppie pistone–cilindro ? ? servomotori lineari servomotori rotanti Motore idraulico con servovalvola e distributore ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO SENSORI Sensori propriocettivi ? ? ? posizioni dei giunti velocità dei giunti coppia ai giunti Sensori esterocettivi ? ? ? ? ? ? sensori di forza sensori tattili sensori di prossimità sensori di campo sistemi di visione sensori per applicazioni particolari (suono, umidit à, fumo, pressione, temperatura) fusione dei dati sensoriali (robot organo intelligente di connessione tra percezione e azione) ROBOTICA INDUSTRIALE Trasduttori di posizione Spostamenti lineari (robot di misura) ? ? ? potenziometri trasformatori differenziali (LVDT) inductosyn Spostamenti angolari ? ? ? ? potenziometri encoder (dischi codificatori) resolver synchro Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Encoder assoluto # Codice # Codice 0 1 2 3 4 5 6 7 0000 0001 0011 0010 0110 0111 0101 0100 8 9 10 11 12 13 14 15 1100 1101 1111 1110 1010 1011 1001 1000 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Encoder incrementali Ricostruzione della velocità (impulso in corrispondenza di ogni transizione) ? ? ? convertitore frequenza/tensione (uscita analogica) misura della frequenza (digitale) misura del periodo di campionamento (digitale) ROBOTICA INDUSTRIALE Resolver Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Trasduttori di velocità Dinamo tachimetrica ? ? ? ? generatore in c.c. magnete permanente (campo di eccitazione) tensione di uscita proporzionale alla velocit à angolare ondulazione residua Generatore tachimetrico in corrente alternata ? ? ? ? ? macchina elettrica rotore a coppa (basso momento di inerzia) due avvolgimenti statorici in quadratura tensione sinusoidale proporzionale alla velocit à angolare tensione residua a rotore fermo ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sensori di forza Estensimetro (strain gage) R Vo = R s R1 + R2 ; R3 + Rs Vi ? 2 impiego di una coppia di estensimetri (riduzione degli effetti di variazioni di temperatura) Sensore di coppia all’albero ? ? ? servomotore come generatore controllato di coppia misura di coppia con estensimetri montati su un organo deformabile (albero cavo) interposto tra motore e giunto (bassa rigidezza torsionale ed elevata rigidezza flessionale) coppia misurata senza effetti inerziali e di attrito del servomotore ROBOTICA INDUSTRIALE Sensore di forza al polso ? diametri 10 cm ? altezza 5 cm ? (50, 500) N (risoluzione 0.1%) ? (5, 70) Nm (risoluzione 0.05%) ? frequenza in uscita 1 kHz f c Rc s cc = s c Oc fss c c S (rcs)Rs Rs s Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE ? Prof. Bruno SICILIANO sensore di forza a croce di Malta 2 fxs 3 2 0 0 c 0 0 0 c 0 66 fyss 77 66 c 0 0 0 c 0 0 0 66 fzs 77 = 66 0 c 0 c 0 c 0 c 64 xs 75 64 0 0 0 c 0 0 0 c y 0 c 0 0 0 c 0 0 13 17 21 25 32 34 36 44 sz 52 38 48 56 c61 0 c63 0 c65 0 c67 0 2w 36w 77 666 w 77 66 w 75 66 w 64 w w 1 2 3 4 5 6 7 w8 3 77 77 77 77 75 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Sensori di visione Telecamera Elemento fotosensibile (pixel) ? ? struttura a matrice rettangolare CCD carica = integrale dell’illuminazione incidente ? CMOS carica = quantità di illuminazione incidente ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO p~c = Tbcp~ Trasformazione prospettica c fp X = f ; xpc z c fp Y = f ; ypc z ? ? aberrazioni distorsione geometrica ROBOTICA INDUSTRIALE ? ? Prof. Bruno SICILIANO campionamento temporale (otturatore) campionamento spaziale (pixel) c fp x XI = f ; pxc + X0 z y fpcy YI = f ; pc + Y0 z 2 x 3 2 pcx 3 4 yII 5 = 64 ppcyc 75 zI z 1 2 0 X 0321 0 0 03 x = 4 0 y Y 0 5 64 00 10 ;10=f 01 75 0 0 1 0 0 0 0 0 0 + Matrice di calibrazione = Tbc ? ? parametri intrinseci ( x ; y ; X0 ; Y0 ; f ) in T parametri estrinseci in cb 1 ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Standard video ? ? ? CCIR (Europa e Australia): 625 linee, 25 Hz RS170 (America e Giappone): 525 linee, 30 Hz segnale video = tensione 1 V picco–picco Immagine = scansione sequenziale ? ? linee pari (primo semiquadro) linee dispari (secondo semiquadro) Discretizzazione del segnale video ? frame grabber Visione a basso livello ? caratteristiche elementari (centroide, discontinuit à di intensità) Visione ad alto livello ? emulazione della conoscenza (riconoscimento di oggetti in base a modelli CAD) ROBOTICA INDUSTRIALE UNITÀ DI GOVERNO Architettura funzionale Ambiente di programmazione Architettura hardware Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO ARCHITETTURA FUNZIONALE Unità di governo ? ? ? ? abilità di muovere oggetti fisici nell’ambiente di lavoro, (capacità di manipolazione) abilità di ottenere informazioni sullo stato del sistema e su quello dell’ambiente di lavoro (capacit à sensoriali) abilità di utilizzare informazioni per modificare il comportamento del sistema in maniera preprogrammata (capacit à di comportamento intelligente) abilità di immagazzinare, elaborare e rendere disponibili dati relativi all’attività del sistema (capacità di processamento dati) ROBOTICA INDUSTRIALE Modello di riferimento Evoluzione verso livelli superiori ? ? compiti complessi missioni Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Livello del compito ? ? ? specifica del compito a un livello di astrazione elevato decomposizione in una serie di azioni (coordinamento spazio-temporale) scelta sulla base dei modelli della conoscenza e delle informazioni sulla scena Livello delle azioni ? ? Prof. Bruno SICILIANO comandi simbolici dal livello del compito tradotti in percorsi di moto (azioni elementari) scelta sulla base dei modelli del manipolatore e delle informazioni sull’ambiente Livello delle primitive ? ? ? ? sequenza di configurazioni dal livello delle azioni calcolo traiettorie di moto (riferimenti per i servo) definizione della strategia di controllo scelta sulla base del modello dinamico e delle informazioni dei sensori Livello dei servo ? ? ? ? direttive dal livello delle primitive calcolo algoritmi di controllo (segnali di attuazione) microinterpolazione aggiornamento sulla base delle misure dei sensori ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Architettura funzionale per robot industriali ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO AMBIENTE DI PROGRAMMAZIONE Caratteristiche (comuni con quelli dei calcolatori + ...) ? ? ? ? ? ? ? ? sistema operativo in tempo reale modellazione del mondo controllo del moto lettura dei dati sensoriali interattività con il sistema fisico capacità di rivelazione di errori capacità di ripristino di situazioni operative corrette struttura specifica dei linguaggi ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Requisiti imposti dall’articolazione in moduli Trattamento dei dati sensoriali ? ? ? ? servo (condizionamento segnali in tempo reale) primitive (dati sensoriali in terne di riferimento) azioni (elaborazione dati ad alto livello) compito (riconoscimento oggetti nella scena) Consultazione dei modelli di conoscenza ? ? ? ? servo (calcolo numerico dei modelli in tempi brevi) primitive (trasformazioni di coordinate) azioni (simulazione + rappresentazione CAD) compito (sistema esperto) Funzioni decisionali ? ? ? ? servo (calcolo in tempo reale) primitive (condizionamento logico) azioni (sincronizzazione + sistema di interruzioni) compito (gestione di processi concorrenti + debugger) ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Generazioni di ambienti di programmazione Programmazione a basso livello (Assembly, C) Programmazione per insegnamento Programmazione orientata al robot Programmazione orientata agli oggetti ? la generazione successiva incorpora le caratteristiche della generazione precedente ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Programmazione per insegnamento Guida dell’operatore lungo il percorso desiderato attraverso teach pendant Registrazione delle posizioni dei giunti Ripetizione del moto ? ? ? capacità di programmazione limitata (tecnico di officina) disponibilità del robot saldatura a punti, verniciatura, palettizzazione Adozione di linguaggi ? ? ? ? ? ? ? acquisizione di posture significative mediante apprendimento calcolo della locazione dell’organo terminale rispetto ad una terna di riferimento (cinematica diretta) assegnazione di primitive di moto con parametri di traiettoria calcolo dei riferimenti dei servo (cinematica inversa) condizionamento delle sequenze di apprendimento a semplici sensori (presenza oggetto nella pinza) correzione delle sequenze di moto a mezzo di semplici editori di testo semplici operazioni di collegamento tra sottoinsiemi di sequenze elementari ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Programmazione orientata al robot ? integrazione di numerose funzioni di linguaggi di programmazione ad alto livello (BASIC, PASCAL) con quelle specifiche richieste nelle applicazioni robotiche Alternative ? ? ? ? ? sviluppo di linguaggi ad hoc per applicazioni robotiche sviluppo di librerie di programmi per robotica di supporto a linguaggi standard di programmazione programmatore esperto programmazione fuori linea interazione con altre macchine ROBOTICA INDUSTRIALE Prof. Bruno SICILIANO Caratteristiche di linguaggio di programmazione strutturata ? ? ? ? ? ? ? ? ? ? editore di testo strutture complesse di rappresentazione dei dati uso estensivo di variabili di stato predefinite realizzazione di operazioni di algebra matriciale uso estensivo di rappresentazioni simboliche per le terne di coordinate possibilità di specificare il moto coordinato di pi ù terne relative ad oggetti connessi rigidamente per il tramite di una sola terna inclusione di sottoprogrammi con scambio di dati e parametri uso di funzioni di condizionamento logico e cicli di attesa mediante semafori capacità di parallelizzazione del calcolo funzioni di controllore logico programmabile (PLC) ROBOTICA INDUSTRIALE ARCHITETTURA HARDWARE Prof. Bruno SICILIANO ROBOTICA INDUSTRIALE Scheda sistema ? ? ? ? ? ? ? un microprocessore con coprocessore matematico una memoria EPROM di inizializzazione una memoria RAM locale una memoria RAM condivisa con le altre schede attraverso il bus un insieme di porte seriali e parallele di interfaccia con il bus e con il mondo esterno contatori, registri, temporizzatori gestore delle interruzioni Funzioni ? ? ? ? ? ? ? Prof. Bruno SICILIANO interfaccia con l’operatore attraverso teach pendant, tastiera, video, stampante interfaccia con una memoria esterna (disco rigido) usata per immagazzinare dati e programmi applicativi interfaccia con rete locale di connessione (ad esempio, Ethernet) con stazioni di lavoro e con altre unit à di governo interfaccia I/O con apparecchiature periferiche presenti nell’area di lavoro (alimentatori, nastri trasportatori, sensori ON/OFF) inizializzazione del sistema interprete del linguaggio di programmazione arbitro del bus Processori suppletivi o alternativi (DSP, Transputer) ROBOTICA INDUSTRIALE Funzioni della scheda cinematica ? ? ? ? Prof. Bruno SICILIANO calcolo delle primitive di moto calcolo della cinematica diretta, della cinematica inversa e dello Jacobiano verifica di congruenza della traiettoria gestione della ridondanza cinematica Funzioni della scheda dinamica ? calcolo della dinamica inversa Funzioni della scheda servo ? ? ? ? ? microinterpolazione dei riferimenti calcolo dell’algoritmo di controllo conversione D/A ed interfaccia con amplificatori di potenza trattamento dati dei trasduttori di posizione e di velocit à interruzione del moto in situazioni di malfunzionamento Funzioni della scheda forza ? ? condizionamento dei segnali forniti dal sensore di forza rappresentazione delle forze in terne di coordinate assegnate Funzioni della scheda visione ? ? ? elaborazione dei segnali forniti dalla telecamera estrazione di caratteristiche geometriche della scena localizzazione degli oggetti in terne di coordinate assegnate