UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II Facoltà di ingegneria Corso di Laurea in Ingegneria dell’Automazione Corso di Controllo dei Robot Analisi e controllo di un robot S.C.A.R.A Relatore: Candidato: Ch.mo Prof. Bruno Siciliano Michele Del Duca M58/18 ANNO ACCADEMICO 2012 / 2013 1 TABLE OF CONTENTS Table of Contents ......................................................................... 2 1. Analisi cinematica ................................................................... 5 Dati di progetto .......................................................................... 5 Spazio di lavoro ......................................................................... 6 Pianificazione della traiettoria .................................................... 7 2. Cinematica ........................................................................... 10 Matrice di Trasformazione Omogenea ..................................... 10 Jacobiano ................................................................................ 12 3. Inversione cinematica ........................................................... 15 CLIK I ordine: Inversa dello Jacobiano .................................... 15 CLIK I ordine: Trasposta dello Jacobiano ................................ 18 CLIK I ordine: Pseudo-Inversa dello Jacobiano ....................... 20 Misura di manipolabilità ........................................................ 22 Distanza dai fine-corsa dei giunti .......................................... 23 CLIK II ordine con inversa dello Jacobiano .............................. 24 4. Dinamica .............................................................................. 27 5. Controllo del moto ................................................................ 28 Controllo robusto ..................................................................... 28 Controllo adattativo.................................................................. 33 6. Controllo di forza .................................................................. 37 Controllo di impedenza ............................................................ 37 Controllo di forza ..................................................................... 41 Controllo di forza con anello interno di posizione .................. 42 Controllo di forza con anello interno di velocità ..................... 44 2 Controllo parallelo forza/posizione ....................................... 47 Bibliografia ................................................................................. 51 3 INTRODUZIONE Il robot SCARA, acronimo di Selective Compliance Assembly Robot Arm (robot di montaggio a cedevolezza selettiva), è un manipolatore di struttura semplice, particolarmente diffuso nelle operazioni di montaggio. Il robot è a cedevolezza selettiva perché la pinza, se forzata, può “cedere” leggermente al movimento nel piano orizzontale ma non in quello verticale. Questo fattore dipende dalle caratteristiche strutturali del robot e dall’elasticità torsionale degli alberi di trasmissione nonché dei riduttori di velocità. Un certo grado di cedevolezza è appositamente inserito nel robot per compensare automaticamente alcuni errori di posizionamento del robot stesso. Da un punto di vista costruttivo, il robot SCARA è realizzato disponendo due giunti rotoidali ed uno prismatico ad assi di moto parallelo ed un ulteriore giunto rotoidale disposto sull’ultimo link, anch’esso con asse del moto parallelo ai precedenti, per consentire una rotazione della pinza attorno al suo asse, che altrimenti durante il moto assumerebbe un orientamento dipendente dalla posizione dei primi due membri. Gli assi dei suoi giunti sono tutti verticali. Questa particolare configurazione minimizza gli effetti della forza di gravità sul robot, scaricandoli a terra e permettendo l'utilizzo di questa macchina in casi di forti pressioni verticali come nelle perforazioni. Questa configurazione conferisce al manipolatore caratteristiche di elevata rigidezza a carichi verticali e cedevolezza a carichi orizzontali, ben prestandosi quindi all’esecuzione di compiti di assemblaggio per inserimenti verticali. Il volume di lavoro del Robot SCARA può variare profondamente in base al range di movimento dei primi due assi. Figura 1.1: Scara Robot TH Series 4 1. ANALISI CINEMATICA DATI DI PROGETTO Lo SCARA è un manipolatore con quattro gradi di libertà (n=4), con tre giunti rotoidali ed uno prismatico. I dati di progetto sono i seguenti: Lunghezza link: d0 =1m, a1 =a2 =0.5m, l1 =l2 =0.25m; Masse link: ml1 =ml2 =25kg, ml3=10kg; Momenti di inerzia baricentrali lungo l’asse del moto del link: Il1=Il2 =5kg/m2, Il4=1kg/m2; Rapporti di trasmissione: kr1=kr2=1, kr3=50rad/m, kr4=50; Momenti di inerzia dei motori lungo i rispettivi assi: Im1=Im2=0.02kg/m2, Im3=0.005kg/m2, Im4=0.001kg/m2; Coefficienti di attrito viscoso: Fm1=Fm2=0.001N·m·s/rad, Fm3 =0.01N·m·s/rad, Fm4=0.005N·m·s/rad. Figura 2.1: Robot SCARA ottenuto con Robotics Toolbox 5 SPAZIO DI LAVORO Attraverso l’utilizzo del Robotics Toolbox fatto girare sotto Matlab/Simulink è stato possibile visualizzare graficamente la struttura del robot SCARA, con relativo spazio di lavoro. La particolare geometria del volume dello spazio raggiungibile dal manipolatore è dettato dai fine corsa meccanici, nonché dalla struttura stessa del robot. Figura 2.2: Spazio di lavoro dello SCARA Figura 2.3: Spazio di lavoro dello SCARA in pianta. 6 PIANIFICAZIONE DELLA TRAIETTORIA Sulla base delle specifiche di progetto assegnate, si impone al robot manipolatore l’esecuzione di una specifica traiettoria da eseguire in 20 secondi, attraverso un profilo di velocità trapezoidale, ampiamente usato nella pratica industriale data la sua semplicità implementativa. Il robot parte da una posizione non appartenente al piano di lavoro, definita da p1, per poi arrivare sul piano ad altezza zero, dove effettua un tratto circolare all’interno del quale segue una traiettoria composta da quattro tratti con due punti di via, componendo la lettera alfabetica M. p1 = [0.96; 0; 0.84]; p2 = [0.972; -0.048; 0]; Cerchio1: c = [1.02; 0; 0], ρ=0.048∙ 2 p3 = [0.972; -0.048; 0]; p4 = [0.972; 0.048; 0]; p5 = [0.978; 0.060; 0]; PUNTO DI VIA p6 = [0.984; 0.048; 0]; p7 = [1.02; 0; 0]; p8 = [1.056; 0.048; 0]; p9 = [1.062; 0.060; 0]; PUNTO DI VIA p10 = [1.068; 0.048; 0]; p11 = [1.068; -0.048; 0]. Di seguito è illustrata una rappresentazione tridimensionale della traiettoria desiderata: 1 Il tratto circolare è collocato sul piano x-y e caratterizzato dal centro c e raggio ρ. 7 con la seguente pianta: e relativo prospetto: 8 L’andamento nel tempo delle traiettorie di riferimento nello spazio operative, per ciascuno degli assi cartesiani è il seguente: mentre per l’orientamento si è scelto di dare un riferimento costante e nullo all’angolo Φ = ϑ1 + ϑ2 + ϑ4. 9 2. CINEMATICA Lo studio della cinematica si propone come obiettivo la caratterizzazione di un legame analitico tra la posizione, velocità e accelerazione dell’end effector e le posizioni, velocità e accelerazioni associate alle variabili di giunto. A tale scopo, sono calcolati la matrice di trasformazione omogenea e lo Jacobiano, rispettivamente per la cinematica diretta e la cinematica differenziale, da cui si otterrà l’inversione cinematica. MATRICE DI TRASFORMAZIONE OMOGENEA Il calcolo della cinematica diretta è stato fatto a partire dall’utilizzo della convenzione di Denavit-Hartenberg (DH), utile in quanto fornisce un metodo generale e sistematico per definire posizione e orientamento relativi di ciscuna coppia di bracci adiacenti. Figura 2.1: Terne secondo la convenzione DH Disponendo le terne come in Figura 2.1, si ottiene la seguente tabella: 10 Giunto ai αi θi di 1 a1 0 θ1 0 2 a2 0 θ2 0 3 0 0 0 d3 4 0 0 θ4 0 Figura 2.2: Tabella di D-H Calcolando le singole matrici di trasformazione omogenea tra ciascuna coppia di terne adiacenti, si ottiene: cos i sin i i 1 Ai (i ) 0 0 sin i cos i 0 0 0 ai cos i 0 ai sin i 1 0 0 1 1 0 2 A3 (d3 ) 0 0 i =1,2,4 0 0 0 1 d3 0 0 1 0 0 1 0 Il calcolo della funzione cinematica diretta è ricorsivo e viene ottenuto in maniera sistematica attraverso semplici prodotti delle matrici di trasformazione omogenea sopra descritte: 11 T40 (q) A10 (1 ) A21 (2 ) A32 (d 3 ) A43 (4 ) cos(1 2 4 ) sin(1 2 4 ) sin( ) cos( ) 1 2 4 1 2 4 0 0 0 0 0 a1 cos 1 a2 cos(1 2 ) 0 a1 sin 1 a2 sin(1 2 ) 1 d3 0 1 JACOBIANO Per poter esprimere il legame tra la velocità lineare e angolare dell’organo terminale e le velocità dei giunti, è necessario fare riferimento alla cinematica differenziale attraverso il calcolo dello Jacobiano geometrico, che nel caso dello SCARA coincide con lo Jacobiano analitico, essendo possibili solo rotazioni intorno all’asse z0. In particolare, i contributi delle velocità ai giunti alle velocità lineare e angolare dell’organo terminale sono rispettivamente espressi dalle seguenti relazioni: p e J P (q) q e J O (q) q In forma compatta: p ve e J (q) q e dove la matrice: 12 J Pn J P1 JP J (q) ... JO J J On O1 rappresenta lo Jacobiano geometrico di dimensione (6x4) (e, in tal caso, anche analitico). Nel dettaglio: zi 1 0 J Pi J z ( p p ) e i 1 Oi i 1 zi 1 giunto prismatico giunto rotoidale In definitiva, si ottiene per lo SCARA: z ( pe p0 ) z1 ( pe p1 ) z 2 z3 ( pe p3 ) J (q) 0 z z 0 z 0 1 3 a1 sin 1 a2 sin(1 2 ) a2 sin(1 2 ) 0 0 a cos a cos( ) a cos( ) 0 0 1 2 1 2 2 1 2 1 0 0 1 0 . 0 0 0 0 0 0 0 0 1 1 0 1 Poiché lungo le direzioni x e y non ci sono contributi alla velocità angolare dell’organo terminale da parte delle velocità dei giunti, è possibile scrivere la matrice jacobiana in forma ridotta: 13 a1 sin 1 a2 sin(1 2 ) a2 sin(1 2 ) a cos a cos( ) a cos( ) 1 2 1 2 2 1 2 J (q) 1 0 0 1 1 0 0 0 0 1 0 0 1 In analogia con un manipolatore planare a due bracci, anche per lo SCARA solo i primi due giunti determinano le coordinate x e y dell’organo terminale, visto che il terzo giunto, prismatico, determina la sola coordinata z e l’ultimo giunto l’orientamento: c’è disaccoppiamento cinematico. Questo significa che lo Jacobiano analitico (4x4) può essere ricavato considerando lo sole componenti posizionali nel piano della struttura (prime tre righe della quarta colonna della matrice T04) e definendo l’orientamento dell’organo terminale come Φ = ϑ1+ ϑ2+ ϑ3, così da calcolare l’ultima riga della matrice jacobiana in forma ridotta, sopra riportata. 14 3. INVERSIONE CINEMATICA L’inversione cinematica oggetto di studio in questo capitolo è fondamentale per poter ottenere le traiettorie nello spazio dei giunti corrispondenti alla traiettoria desiderata, percorsa dall’organo terminale, espressa nello spazio operativo. Queste traiettorie serviranno a definire, attraverso le diverse strategie di controllo del moto, i riferimenti per i giunti del manipolatore. Alla luce del legame lineare tra le velocità nello spazio dei giunti e nello spazio operativo evidenziato con la relazione dello Jacobiano, a partire da una traiettoria espressa con andamento trapezoidale in velocità, con condizioni iniziali su posizione e velocità, si analizzano i diversi algoritmi di integrazione numerica CLIK (Closed Loop Inverse Kinematic) in cui, attraverso la chiusura di un ciclo di retroazione, si effettua un controllo cinematico delle traiettorie ai giunti. In questo modo, si lega funzionalmente il calcolo delle traiettorie all’andamento dell’errore, così da evitare fenomeni di deriva, dovuti all’integrazione numerica, e rendere asintoticamente stabile il sistema di errore, facendo convergere il valore delle traiettorie ai giunti al valore esatto. CLIK I ORDINE: INVERSA DELLO JACOBIANO Il primo algoritmo per l’inversione che si analizza è realtivo all’inversa dello Jacobiano: Schema di base a blocchi 15 implementato in ambiente Simulink: I risultati delle simulazioni sono presentati di seguito, con andamento nel tempo dell’errore di posizione: e andamento nel tempo dell’errore di orientamento: 16 Si noti come l’errore di orientamento sia già prossimo all’errore di macchina. Inoltre, si riporta un ulteriore simulazione fatta aumentando i valori dei guadagni K: con relativo errore di orientamento praticamente nullo: 17 CLIK I ORDINE: TRASPOSTA DELLO JACOBIANO Il secondo algoritmo usato per l’inversione cinematica è quello relativo alla trasposta dello Jacobiano, quindi computazionalmente più vantaggioso del precedente in quanto all’interno dello schema di controllo compaiono soltanto funzioni cinematiche dirette, come si vede dalla seguente figura: Schema di base a blocchi con relativo schema di controllo implementato in Simulink: 18 I risultati ottenuti dalle simulazioni sono di seguito illustrati: 19 Con valori dei guadagni di due ordini di grandezza più elevati, compatibilmente con il limite che assicura convergenza del sistema, l’errore si riduce ulteriormente: CLIK I ORDINE: PSEUDO-INVERSA DELLO JACOBIANO Con questo algoritmo, si sfrutta la possibilità di conferire ridondanza al manipolatore, andando a rilassare un vincolo. In questo modo,lo Jacobiano “deranga” e non è più possibile 20 l’operazione di inversione. Si ricorre, quindi, alla pseudo-inversa dello Jacobiano con il seguente schema di controllo: Schema di base a blocchi e con il seguente schema a blocchi in ambiente Simulink: utilizzando il grado di libertà in eccesso per far eseguire al manipolatore moti interni che non alterano la posa dell’organo terminale, in quanto generati da una ottimizzazione, di un vincolo secondario w(q), proiettata nel nullo dello Jacobiano J: q J †ve ( I 4 J † J )q0 dove: q0 k0 w(q) q 21 con w(q) funzione obiettivo da ottimizzare e ( I 4 J † J ) proiettore nel nullo di J. Per mostrare la gestione della ridondanza da parte del manipolatore, si sono utilizzati due tipi di vincoli relativi a funzioni obiettivo da massimizzare. In entrambi i casi, si è scelto di rilassare l’orientamento Φ. MISURA DI MANIPOLABILITÀ La funzione obiettivo da massimizzare è: w(q) det( J (q) J T (q)) che descrive la distanza dalle singolarità della struttura portante, massimizzando la quale si utilizza la ridondanza per rimanere lontani dalle singolarità. In particolare: 0 w(q) a1a2 cos 2 0 q 0 con i seguenti risultati che mostrano il confronto tra le traiettorie nello spazio dei giunti con e senza ridondanza: 22 dove si evidenzia, come unica differenza, la triettoria costante della variabile del quarto giunto nel caso di ridondanza, non essendo più necessario il controllo dell’orientamento. Quindi, l’errore di inseguimento in posizione risulta invariato, in virtù del fatto che il termine aggiuntivo di velocità viene proiettato nel nullo dello Jacobiano, non alterando le prestazioni del compito posizionale dell’organo terminale. La misura di manipolabilità viene effettuata considerando semplicemente il sinϑ2, che descrive in maniera efficace una distanza dalle singolarità: DISTANZA DAI FINE-CORSA DEI GIUNTI La seconda funzione obiettivo considerata è la distanza dai finecorsa dei giunti, così definita: 1 n qi q i w(q) 8 i 1 qiM qim 2 dove qiM e qim rappresentano rispettivamente l’escursione massima e minima ammessa per l’i-esima variabile di giunto, con 23 q i il valor medio della corsa. Massimizzando tale indice si cerca di portare variabile di giunto i-esima verso il centro della corsa. Per le simulazioni, si è scelto di applicare questo vincolo alla variabile del quarto giunto, ϑ4(t). I risultati seguenti mostrano come la variabile ϑ4(t) vada a zero per allontanarsi dai fine-corsa posti a –π/2 e +π/2, con una velocità che dipende dal valore della costante k0. CLIK II ORDINE CON INVERSA DELLO JACOBIANO Un ultimo algoritmo di controllo esaminato è il CLIK del secondo ordine con inversa di J, con il quale è possibile invertire la traiettoria pianificata dallo spazio operativo a quello dei giunti in accelerazione, velocità e posizione, attraverso l’inversa dello Jacobiano. Per questo motivo, questo algoritmo sarà poi applicato per gli schemi di controllo del lavoro oggetto di questa tesina. 24 Schema di base a blocchi Di seguito, si riporta lo schema di controllo implementato in Simulink: Con un’opportuna2 taratura dei guadagni dei regolatori proporzionale e derivativo, si riportano i risultati delle simulazioni svolte per l’andamento nel tempo dell’errore di posizione ai giunti: L’ordine di grandezza dei guadagni per il CLIK del II ordine è di 1/Tc2, laddove per gli algoritmi del I ordine è pari a 1/Tc, con Tc il tempo di campionamento di 1ms. 2 25 e l’errore di orientamento, praticamente ridotto a errore di macchina: 26 4. DINAMICA Dopo aver analizzato il robot manipolatore a livello cinematico, in questo capitolo se ne analizza la dinamica, utile per simulare il comportamento del manipolatore. La dinamica di un robot tratta le formulazioni matematiche delle equazioni del moto del manipolatore. Tali equazioni sono utili per la simulazione il calcolatore del movimento del braccio e per formulare le equazioni per il controllo dello stesso. Il modello dinamico di un robot si ottiene da note leggi fisiche, principalmente attraverso due metodi: uno basato sulla formulazione di Lagrange e un altro sulla formulazione di NewtonEulero. In questo progetto si è utilizzata la formulazione di Lagrange, concettualmente semplice e sistematica, che conduce alla derivazione del modello in forma chiusa. L’equazione del moto risultante è: B(q)q C (q, q )q Fv q Fs sgn( q ) g (q) J T (q)he L’applicazione diretta di tale formulazione dinamica fornisce come risultato i valori nel tempo delle accelerazioni ai giunti, quando il manipolatore è sottoposto all’azione di coppie assegnate (e forze agenti all’organo terminale); le velocità e le posizioni qi(t) giunti possono essere ricavate integrando il sistema di equazioni differenziali non lineari. Una proprietà fondamentale del modello dinamico del manipolatore è quella relativa alla sua linearità rispetto a un insieme opportuno di parametri dinamici: Y (q, q, q) dove π=[π1 … πn]T è un vettore (px1), con p≤13n (13 è il numero complessivo massimo di parametri per ogni giunto) parametri costanti e Y(.) una matrice (nxp) usualmente chiamata regressore. Questa parametrizzazione del modello dinamico tornerà utile nel corso del controllo del moto (in particolare adattativo) che si procederà ad analizzare. 27 5. CONTROLLO DEL MOTO Il controllo del moto rappresenta il vero scopo di tutte le premesse analitiche riguardanti il manipolatore finora descritte. In particolare, relativamente alla traiettoria desiderata inizialmente descritta nello spazio operativo e quindi tradotta, attraverso uno degli algoritmi di inversione cinematica sopra presentati (qui, come detto, si utilizza il CLIK del II ordine), nello spazio dei giunti, con il controllo del moto si vuole che il robot percorrà tali traiettorie con il minimo errore possibile. A tal fine, si analizzano diversi schemi di controllo con relativi risultati di simulazione. CONTROLLO ROBUSTO La prima strategia di controllo analizzata è relativa al controllo robusto, che si basa sul concetto di dinamica inversa con l’aggiunta di un contributo che conferisce robustezza all’azione di controllo in quanto compensa l’incertezza dovuta a una limitata conoscenza del modello dinamico del manipolatore ( B(q) e n(q, q ) ) che, quindi, porterebbe alla non perfetta cancellazione dei contributi del modello, nonché le intenzionali semplificazioni apportate al modello dinamico per diminuire il carico computazionale del calcolatore numerico, che deve calcolare in linea l’azione di controllo, operando con un assegnato tempo di campionamento dell’ordine del millisecondo. 28 Tutte le simulazioni sono state fatte con la regola di integrazione numerica di Eulero con tempo di integrazione di 1 ms. Lo schema di controllo implementato in ambiente Simulink è riportato in basso: In particolare, nel computo della dinamica inversa (blocco di Compensazione N.L. e disaccoppiamento dello schema Simulink) è stata considerata nulla, perché in realtà ignota, la massa ml4 di 6 kg del carico concentrato in punta (invece inserito nel calcolo della Dinamica diretta) e si sono trascurati i contributi degli effetti centrifughi e di Coriolis indotti ai giunti ed espressi in C (q, q )q e di smorzamento Fq , considerando unicamente le coppie dovute ai termini inerziali e gravitazionali, in quanto dominanti rispetto ai termini dipendenti dalle velocità ai giunti: u B( q) y g questo per verificare la bontà della strategia di compensazione parziale generalmente applicata sui calcolatori numerici, per i motivi su citati, con: 0 0 g ml 3 g 0 e con: ~ ~ y qd K D q K P q w 29 dove w rappresenta il termine compensativo dell’incertezza di modello: z z w z per z per z con ε boundayer layer e ρ modulo del vettore lungo il quale convergono le dinamiche di errore del sistema. I risultati seguenti sono stati ottenuti con ρ=100, ε=1: Errore di posizione con ρ=100, ε=1 Errore di orientamento con ρ=100, ε=1 30 con un andamento nel tempo delle coppie congruo con il compito richiesto al manipolatore: Coppie con ρ=100, ε=1 C’è da notare che la coppia del giunto 3 ha un picco dovuto al carcio in punta non noto alla dinamica inversa, assestandosi poi a regime su un valore diverso da zero. Per precisione, per un confronto, si riporta anche un andamento dell’errore di posizione con ε=10: Errore di posizione con ρ=100, ε=10 31 dove è visibile una leggera differenza con i valori dell’errore di posizione nel caso precedente (dove ε è un ordine di grandezza più piccolo). Inoltre, si mostra gli effetti dovuti a componenti in alta frequenza (chattering) derivanti da un valore del boundary layer troppo piccolo per il sistema (ε=0.01): Errore di posizione con ρ=100, ε=0.01 Errore di orientamento con ρ=100, ε=0.01 e con il seguente andamento richiesto alle coppie ai giunti: 32 Coppie con ρ=100, ε=0.01 in cui, con uno zoom dell’andamento delle coppie nel tempo è chiaro come una ε ridotta costringa i servomotori ai giunti a generare coppie a frequenza elevatissima: Zoom delle coppie con ρ=100, ε=0.01 CONTROLLO ADATTATIVO Con il controllo adattativo trova applicazione la proprietà di linearità del modello dinamico rispetto ai parametri dinamici, al fine di definire una legge di controllo robusta a fronte di incertezze 33 sui parametri stessi, che adatti in linea il modello computazionale al modello dinamico del manipolatore. Lo schema generale di questo tipo di controllo è il seguente: e relativo schema Simulink utilizzato per le simulazioni: La legge di controllo è: u B(q)qr C (q, q )qr F qr g K D Y (q, q, qr , qr ) K D con: ~ ~ qr qd q , qr qd q , qr q . e con la seguente legge di adattamento dei parametri: 34 K1Y T (q, q, qr , qr ) Si ottiene, quindi, la convergenza a zero del sistema di errore e la limitatezza di : Y (q, q, qr , qr )( ) 0 Quindi, la legge adattativa aggiorna il vettore di stima dei parametri in modo da assicurare asintoticamente la compensazione dei termini del modello dinamico del manipolatore. Dall’ultima relazione si capisce come ciò non implichi necessariamente la convergenza dei parametri stimati al valore vero, perché ciò dipende dalla matrice regressiva Y(.) e quindi dalle leggi del moto desiderate ed eseguite. Di seguito, sono illustrati i risultati delle simulazioni fatte con Λ=diag([10 10 10 10]), KD=diag[1000 1000 1000 1000], Kπ=103·eye[14,14] e Kπ(14,14)=0.01: L’andamento nel tempo delle coppie ai giunti è regolare: 35 La stima del carico concentrato in punta di 6 kg è la seguente: dimostrazione di una buona conoscenza del modello computazionale. In definitiva, il controllo adattativo è migliore del controllo robusto in quanto la traiettoria di errore tende a zero senza che ci sia un controllo commutato a elevata frequenza che la mantenga in tale stato. Tuttavia, il controllo adattativo si basa sul modello computazionale e, pertanto, se non completamente noto a causa di dinamiche non modellate nonché di disturbi, ne modifica i parametri. 36 6. CONTROLLO DI FORZA Questo capitolo è dedicato al controllo dell’interazione tra il manipolatore e l’ambiente, come quando il robot entra in contatto con vincoli dell’ambiente (naturali o artificiali). Tale problema viene affrontato attraverso schemi di controllo nello spazio operativo, sia di tipo indiretto (controllo di impedenza) sia diretto (controllo di forza). Si consideri la presenza di un piano orizzontale, elasticamente cedevole, ad una quota pari a z=0.3m, che ostruisca il moto del manipolatore e che presenti una rigidezza K lungo la direzione verticale pari a 4·103 N/m. CONTROLLO DI IMPEDENZA Con questo algoritmo, viene controllata la forza di interazione del manipolatore con l’ambiente in modo indiretto, cioè si ottiene un controllo della forza attraverso un controllo del moto, senza la chiusura esplicita di un anello di retroazione della forza. Lo schema a blocchi Simulink utilizzato per le simulazioni è il seguente: 37 I risultati delle simulazioni illustrati di seguito sono esemplificativi di come il manipolatore possa dominare o meno l’ambiente a seconda che il rapporto tra il valore della rigidezza del manipolatore lungo la direzione vincolata z, KP(3,3), e della rigidezza dell’ambiente K sia rispettivamente maggiore o minore dell’unità, generando quindi un errore nello spazio dei giunti piccolo, nel primo caso, o grande, nel secondo caso (al limite prossimo alla distanza tra vincolo e posizione desiderata, quindi 0.3m). Si sono scelti i seguenti valori: KP=diag(102·[5 5 50 5]) nel primo caso (il manipolatore domina sull’ambiente) e KP=diag(102·[5 5 0.5 5]) nel secondo caso (l’ambiente domina sul manipolatore), con KD=diag(102·[1 1 10 1]), MD=diag([1 1 1 1]) in entrambi le prove: 38 con il seguente andamento delle traiettorie nello spazio operativo per entrambi i casi: 39 dove, in quest’ultimo grafico con ambiente meno cedevole, è visibile un andamento della variabile Xe3(t) meno smorzato rispetto al caso in cui domina il manipolatore (ambiente più cedevole). Le forze all’organo terminale corrispondenti, sono: in cui si nota come la forza al contatto maggiore è esercitata quando il manipolatore domina sull’ambiente, rimanendo elevata anche a regime, per poter continuare a limitare l’errore di posizione. I corrispondenti andamenti delle coppie ai giunti sono rappresentati in basso: 40 CONTROLLO DI FORZA Nelle simulazioni finora presentate, si è controllata la forza di contatto in maniera indiretta agendo sulla posizione desiderata dell’organo terminale assegnata al controllore. Se, però, si vuole controllare in modo accurato l’entità di tale forza generata, si deve ricorrere a schemi di controllo diretto di forza, come quelli presentati in questa sezione. Il modello elastico di interazione con l’ambiente esibisce la seguente espressione: fe K ( xe xr ) con xr posizione del vincolo piano (posto a 0.3m) e xe in t=0 pari a 0.8m. 41 Per le simulazioni che seguiranno, si utilizza un riferimento di forza desiderato pari a 40N. CONTROLLO DI FORZA CON ANELLO INTERNO DI POSIZIONE Come per il controllo del moto, anche per il controllo diretto di forza richiederebbe l’utilizzo di un controllore PD che agisca sull’errore di forza. Essendo, però, la misura di quest’ultima corrotta da rumore, non è possibile usare l’azione derivativa, quindi si ricorre a un’azione stabilizzatrice legata ai contributi di velocità ed di posizione. Dallo schema si intuisce che al controllore della forza deve essere affidata un’azione proporzionale-integrale (PI) per avere a regime fe=fd. Fino al contatto con il vincolo lungo z posto a quota 0.3m, il robot è controllato con l’algoritmo a dinamica inversa nello spazio operativo con guadagni KP=diag([300 300 300 300]),KD=diag([150 42 150 150 150]); mentre, a seguito del contatto con il vincolo, si passa al controllo di forza diretto con KP=diag([100 100 0.1 100]), KD=diag([100 100 100 100]). I risultati seguenti delle simulazioni fatte mostrano il comportamento del robot, sottoposto al riferimento di forza desiderata pari a 40N, con guadagni del controllore di forza pari a KF=2 per il proporzionale e KI=3 per l’integrale. L’inseguimento di forza è ottenuto con questo andamento: e con deriva a zero delle traiettorie nello spazio operativo, eccetto che per quella lungo la direzione vincolare: con evidente andamento dell’errore nello spazio dei giunti: 43 L’andamento delle coppie ai giunti è la seguente: I risultati proposti evidenziano che il riferimento di forza è seguito, mentre le posizioni lungo direzioni non appartenenti al R(K) vanno a zero per effetti di deriva (dovuti alle componenti di fd interpretate come riferimenti di velocità) e, ovviamente, la posizione lungo z rimane a quota 0.3m. CONTROLLO DI FORZA CON ANELLO INTERNO DI VELOCITÀ Se si apre l’anello di retroazione della posizione nello schema a blocchi del controllo di forza finora discusso, si ottiene: 44 nel quale si legge bene come tra xf e xe ci sia un legame di integrazione, quindi non è necessario un’azione di tipo integrale per la precisione a regime della forza, ma è sufficiente un’azione puramente proporzionale, KF. Comunque, l’assenza di un’azione integrale non garantisce la riduzione di effetti derivanti da dinamiche non modellate tra KP e xe . Le simulazioni sono state eseguite con valori dei guadagni identici al controllo con anello interno di posizione, con seguenti risultati: 45 dove il valore di picco della forza di impatto è legato al rapporto tra le rigidezze del manipolatore KP e dell’ambiente K3. Per quanto riguarda l’andamento delle traiettorie nello spazio operativo, in questo caso dopo il contatto permangono su un valore costante, in quanto le loro velocità, per gli stessi effetti di deriva visti nel controllo di forza con anello interno di posizione relativamente alle traiettorie, vanno a zero, come mostrano i seguenti andamenti: L’andamento delle coppie ai giunti è il seguente: 3 Questo aspetto verrà chiarito in seguito. 46 CONTROLLO PARALLELO FORZA/POSIZIONE Per ovviare ai problemi evidenziati nei grafici precedenti, dove fenomeni di deriva della posizione dell’organo terminale lungo le direzioni non vincolate tendono a portare a zero la posizione (anello interno di posizione) e la velocità (anello interno di velocità) dell’organo terminale, si ricorre ad uno schema di controllo modificato, in cui si aggiunge il riferimento xd, come mostrato: così da poter specificare un riferimento desiderato per l’organo terminale, proprio come fatto negli schemi di controllo posizionale. Lo schema a blocchi Simulink è identico al precedente; quello che cambia è la funzione contenuta nel blocco del Controllo di forza, che ora ha il contributo aggiuntivo di xd. I risultati sono illustrati di seguito sono stati ottenuti dapprima con valori dei guadagni identici a quelli usati nei casi precedenti, per poi variare gli stessi e trarne delle conclusioni: 47 Ora, si vuole mettere in evidenza come diminuendo il valore del guadagno proporzionale del terzo giunto KP(3,3) si ottenga un andamento meno smorzato delle traiettorie del robot nello spazio operativo (l’ambiente domina maggiormente): 48 e relativo andamento della forza all’organo terminale, in cui si evidenzia come la stessa si annulli per tutto il tempo in cui il contatto del manipolatore con il vincolo venga a mancare per effetto del sottosmorzamento dell’andamento della traiettoria4, dato dalla diminuizione della rigidezza KP del manipolatore lungo la direzione vincolare: in cui è visibile anche un valore di picco della forza di impatto inferiore rispetto ai casi precedenti con rapporto tra KP e K maggiore. Leggere oscillazioni dell’andamento della forza all’organo terminale si ravvisano anche nei grafici precedenti, pur con valori di KP più elevati, collegati ad una forza di impatto inferiore, quindi ad un contatto maggiore con il vincolo (nel tempo). 4 49 Questo, nello schema a blocchi, si è ottenuto con la presenza di un relè (in supporto a uno switch) che segnala il contatto con il piano vincolare e grazie al quale si è adottata la strategia di controllo a dinamica inversa nello spazio operativo quando il robot non è in contatto con il vincolo. Infine, aumentando di un ordine di grandezza tutti i valori dei guadagni proporzionali KP, aumenta il suo rapporto con la rigidezza dell’ambiente K e, quindi, diminuisce il valore dell’errore nello spazio operativo: poiché il manipolatore domina maggiormente essendo aumentata la sua rigidezza, come se il robot “vedesse” l’ambiente più cedevole (pur essendo rimasta invariata la rigidezza di quest’ultimo). 50 BIBLIOGRAFIA Siciliano B., Sciavicco L., Villani L., Oriolo G., Robotica Modellistica, pianificazione e controllo, Terza Edizione, 2008, McGraw-Hill. 51
© Copyright 2024 Paperzz