Universit` a degli Studi di Napoli Federico II ` DI INGEGNERIA FACOLTA Corso di Laurea in Ingegneria dell’Automazione Elaborato Tecnico, Controllo dei Robot Analisi e Controllo di un manipolatore S.C.A.R.A. Candidati Relatore Angelo Salvati Ch.mo Prof. Bruno Siciliano Matricola M58/01 Angelo Tufano Matricola M58/23 Anno Accademico 2011-2012 Indice 1 Analisi Cinematica 3 2 Pianificazione della Traiettoria 7 2.1 2.2 Algoritmi di Inversione Cinematica . . . . . . . . . . . 12 2.1.1 CLIK del I ordine con inversa dello Jacobiano . 13 2.1.2 CLIK del I ordine con trasposta dello Jacobiano 16 2.1.3 CLIK del II ordine con inversa dello Jacobiano . 18 Ridondanza . . . . . . . . . . . . . . . . . . . . . . . . 22 3 Dinamica 3.1 27 Parametrizzazione del modello . . . . . . . . . . . . . . 4 Controllo del Moto 29 35 4.1 Controllo a Dinamica Inversa . . . . . . . . . . . . . . 35 4.2 Controllo Robusto . . . . . . . . . . . . . . . . . . . . 36 4.3 Controllo Adattativo . . . . . . . . . . . . . . . . . . . 46 5 Controllo di Forza 51 5.1 Controllo di Impedenza . . . . . . . . . . . . . . . . . . 52 5.2 Controllo di Forza . . . . . . . . . . . . . . . . . . . . . 57 II INDICE 5.2.1 5.2.2 5.2.3 Anello interno di posizione . . . . . . . . . . . . Anello interno di velocitá . . . . . . . . . . . . . Controllo Parallelo Forza/Posizione . . . . . . . Bibliografia 57 62 66 71 © 2013 by A.Salvati, A.Tufano Introduzione Il robot SCARA é un manipolatore di semplice struttura, molto diffuso nelle operazioni di montaggio. I suoi assi dei giunti sono verticali. La sigla SCARA deriva dalle parole inglesi Selective Compliance Assembly Robot Arm (robot di montaggio a cedevolezza selettiva). Il robot é a cedevolezza selettiva perché la pinza, se forzata, si puó muovere leggermente 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. Il robot SCARA da un punto di vista costruttivo é formato da due membri rigidi (detti link ) collegati tra di loro da accoppiamenti rotoidali per effettuare i movimenti nel piano x-y e da un terzo elemento collegato mediante accoppiamento prismatico per effettuare i movimenti verticali. Un ulteriore accoppiamento rotoidale é talvolta presente 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. 2 INDICE © 2013 by A.Salvati, A.Tufano CAPITOLO 1 Analisi Cinematica Lo SCARA é un manipolatore a 4 gradi di libertá, con tre giunti rotoidali ed uno prismatico (n = 4). Per la determinazione della cinematica diretta sono state posizionate le terne solidali ai bracci secondo la convenzione di Denavit-Hartenberg come in Figura1.1: Figura 1.1: Terne secondo D-H 4 1. Analisi Cinematica Specifichiamo i parametri di D-H in tabella: Braccio ai αi di θi 1 0.5 0 1 θ1 2 0.5 0 0 θ2 3 0 0 d3 0 4 0 0 0 θ4 Le matrici di trasformazione omogenea relative ad ogni braccio sono: c −s1 1 s1 c1 A01 (q1 ) = 0 0 0 0 0 0.5c1 0 0.5s1 1 1 0 1 c −s2 2 s2 c2 A12 (q2 ) = 0 0 0 0 0 0.5c2 0 0.5s2 1 0 0 1 1 0 A23 (q3 ) = 0 0 0 1 0 0 0 0 0 0 1 d3 0 1 c −s4 4 s4 c4 A34 (q4 ) = 0 0 0 0 0 0 1 0 0 0 0 1 con q=[q1 q2 q3 q4 ]T = [θ1 θ2 d3 θ4 ]T vettore delle variabili di giunto. La matrice di trasformazione da braccio 4 a terna utensile é data da: 0 1 A4e = 0 0 1 0 0 0 0 0 0 −1 0 0 0 1 © 2013 by A.Salvati, A.Tufano 5 1. Analisi Cinematica La trasformazione di coordinate complessiva che esprime posizione ed orientamento della terna utensile rispetto alla terna 0 é data dalla matrice: −s c 0 a c + a c 124 124 2 12 1 1 c124 s124 0 a2 s12 + a1 s1 0 Te (q) = 0 0 −1 d 0 + d3 0 0 0 1 Le variabili di spazio operativo sono quattro (m = 4), tre di posizione e una di orientamento (intorno a z): Lo Jacobiano geometrico é: pe x= φ z0 × (pe − p0 ) z1 × (pe − p1 ) z2 z3 × (pe − p3 ) J(q) = z0 z1 0 z3 −a2 s12 − a1 s1 −a2 s12 a2 c12 + a1 c1 a2 c12 0 0 = 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 Eliminando le righe nulle corrispondenti a rotazioni intorno agli assi x0 e y0 , che risultano impossibili per uno SCARA, si ottiene lo Jacobiano in forma ridotta: −a2 s12 − a1 s1 −a2 s12 a2 c12 + a1 c1 a2 c12 J(q) = 0 0 1 1 0 0 1 0 © 2013 by A.Salvati, A.Tufano 0 0 0 1 6 1. Analisi Cinematica L’orientamento dell’organo terminale dipende solo dai giunti rotoidali, il giunto prismatico non apporta alcun contributo. Poiché in questo caso i gradi di libertá possono imporre rotazioni all’organo terminale solo intorno ad un asse fisso nello spazio (z0 ), allora lo Jacobiano analitico é equivalente allo Jacobiano geometrico (J = JA ). Si noti che solo i primi due giunti determinano le coordinate x e y (come un manipolatore planare a due bracci), il terzo giunto prismatico la sola coordinata z e l’ultimo giunto l’orientamento (considerando θ4 = φ − θ1 − θ2 ). Quindi c’é un quasi totale disaccoppiamento cinematico. © 2013 by A.Salvati, A.Tufano CAPITOLO 2 Pianificazione della Traiettoria Al nostro manipolatore abbiamo voluto far eseguire una traiettoria che ci restituisse il logo della casa automobilistica tedesca Mercedes. 8 2. Pianificazione della Traiettoria Scelti i seguenti punti: p1 = [−0.2; 0.6; 0.6] p2 = [−0.5; 0.4; 0.2] p3 = [−0.56; 0.1; 0.2] p4 = [−0.57; 0.04; 0.2] p5 = [−0.62; 0; 0.2] p6 = [−0.845; −0.2; 0.2] p7 = [−0.56; −0.1; 0.2] p8 = [−0.5; −0.09; 0.2] p9 = [−0.44; −0.1; 0.2] p10 = [−0.15; −0.2; 0.2] p11 = [−0.38; 0; 0.2] p12 = [−0.43; 0.04; 0.2] p13 = [−0.44; 0.1; 0.2] p14 = [−0.5; 0.4; 0.2] p15 = [−0.2; 0.6; 0.6] ove si é supposto che il manipolatore partisse da una configurazione home definita da p1 e vi ritornasse (p15 ) una volta ultimata la traiettoria desiderata. Inoltre, per migliorare l’esecuzione, i punti p4 , p8 , p12 sono stati scelti come punti di via e realizzati sovrapponendo le traiettorie corrispondenti per un ∆t = 1/3 del tempo di percorrenza del primo segmento. Tramite apposite funzioni Matlab, costruite per mezzo di interpolazioni successive avendo impostato la velocitá di crociera1 come |q −q | q˙c = 34 f T i , abbiamo unito i punti nello spazio operativo con tratti rettilinei o circolari laddove necessario. 1 T é il tempo di percorrenza di ogni singolo tratto © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 9 Il risultato é il seguente: Figura 2.1: Percorso nello spazio X-Y Figura 2.2: Percorso nello spazio operativo É possibile osservare lo spazio di lavoro del manipolatore tramite le circonferenze di colore verde. © 2013 by A.Salvati, A.Tufano © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 10 Figura 2.3: Tutte le traiettorie sono state generate assegnando una velocitá media di percorrenza di 0.16m/s con un tempo di sosta di 0.2s alla fine di ogni tratto. Le traiettorie desiderate all’organo terminale risultano a tipico profilo trapezoidale di velocitá, e di conseguenza si ottengono brusche variazioni di accelerazione con tipico profilo rettangolare. 2. Pianificazione della Traiettoria 11 Per quanto concerne l’orientamento del manipolatore, é stata considerata una sua variazione di π durante l’esecuzione della movimentazione: Figura 2.4: Traiettoria Orientamento Φ © 2013 by A.Salvati, A.Tufano 12 2.1 2. Pianificazione della Traiettoria Algoritmi di Inversione Cinematica Prima di invertire l’intera traiettoria é necessario ricavare i valori iniziali per gli algoritmi di inversione cosí da garantire errore di inseguimento nullo. Riportando i risultati solamente per il CLIK del primo ordine con inversa dello Jacobiano, abbiamo: q0 = 1 π 4 π 2 ; qp0 −0.1 π 12 0 = 0 ; 0 0 500 0 0 0 0 500 0 0 KI = 0 0 500 0 0 0 0 200 Otteniamo, tramite il CLICK di Figura(2.7) il seguente risultato: Figura 2.5: Condizioni iniziali © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 2.1.1 13 CLIK del I ordine con inversa dello Jacobiano Per risolvere il problema cinematico diretto si é implementato il seguente schema in MATLAB: Figura 2.6: Schema a blocchi di base Dove k(·) indica la funzione cinematica diretta, K é una matrice definita positiva, diagonale scelta in modo da rendere asintoticamente stabile il sistema che rappresenta la dinamica dell’errore nello spazio operativo. Il tutto é stato implementato in ambiente simulink: Figura 2.7: Schema Simulink per CLICK del I ordine con inversa dello Jacobiano ove si é scelta 700 0 0 0 0 700 0 0 KI = 0 0 700 0 0 0 0 400 © 2013 by A.Salvati, A.Tufano 14 2. Pianificazione della Traiettoria Ottenendo: Figura 2.8: Traiettorie CLIK del I ordine con inversa dello Jacobiano Figura 2.9: Errore di Posizione CLIK del I ordine con inversa dello Jacobiano © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 15 A differenza di ció che si sarebbe ottenuto con uno schema di controllo in anello aperto dove l’errore si sarebbe assestato ad un valore costante in conseguenza al fenomeno di deriva della soluzione, qui invece la norma dell’errore in posizione risulta essere molto ridotta e converge a zero a regime, grazie alla caratteristica in anello chiuso dello schema. © 2013 by A.Salvati, A.Tufano 16 2.1.2 2. Pianificazione della Traiettoria CLIK del I ordine con trasposta dello Jacobiano Allo stesso modo, abbiamo: Figura 2.10: Schema a blocchi di base ove si utilizza la trasposta dello jacobiano; in simulink: Figura 2.11: Schema Simulink per CLICK del I ordine con trasposta dello Jacobiano ove si é scelta 500 0 0 0 0 500 0 0 KT = 0 0 500 0 0 0 0 250 © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 17 Ottenendo: Figura 2.12: Jacobiano Traiettorie CLIK del I ordine con trasposta dello Figura 2.13: Errore di Posizione CLIK del I ordine con trasposta dello Jacobiano © 2013 by A.Salvati, A.Tufano 18 2. Pianificazione della Traiettoria Il vantaggio di tale algoritmo risiede nella sua semplicitá computazionale poiché evita il calcolo oneroso dell’inversa dello Jacobiano; lo svantaggio di questo algoritmo peró risiede in un aumento dell’errore , il quale resta comunque ridotto ed accettabile. Essendo xd variabile nel tempo non é possibile ottenere l’asintotica stabilitá del sistema errore, il quale per’øsará limitato superiormente in norma e sará tanto piú contenuto quanto piú elevata é la matrice dei guadagni K. Il limite superiore alla norma di K é imposto dal periodo di campionamento utilizzato. 2.1.3 CLIK del II ordine con inversa dello Jacobiano Ai fini del controllo, puó essere insufficiente conoscere la velocitá e la posizione dei giunti istante per istante. Figura 2.14: Schema a blocchi di base Implementando tale schema é possibile ottenere l’inversione cinematica della traiettoria di moto specificata in termini di posizione, velocitá e accelerazione. KP e KD sono due matrici definite positive (solitamente diagonali) che consentono di rendere il sistema lineare di errore equivalente asintoticamente stabile e di specificarne la velocitá di convergenza © 2013 by A.Salvati, A.Tufano 19 2. Pianificazione della Traiettoria a zero. Scelti i seguenti guadagni: 400 0 0 0 100 0 0 0 0 0 400 0 0 100 0 0 KP = ; KD = 0 0 0 400 0 0 100 0 0 0 0 100 0 0 0 20 tramite lo schema simulink Figura 2.15: Schema Simulink per CLICK del II ordine con inversa dello Jacobiano © 2013 by A.Salvati, A.Tufano 20 2. Pianificazione della Traiettoria abbiamo ottenuto i seguenti risultati: Figura 2.16: Traiettorie CLIK del II ordine con inversa dello Jacobiano © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 21 (a) Errore di Posizione di Velocitá © 2013(b)byErrore A.Salvati, A.Tufano Figura 2.17: Errori con CLIK del II ordine con inversa dello Jacobiano 22 2.2 2. Pianificazione della Traiettoria Ridondanza Si analizza, adesso, il caso in cui una delle variabili di spazio operativo viene rilassata in maniera tale da conferire al manipolatore ridondanza funzionale. Tale ridondanza viene risolta in fase di inversione cinematica con l’utilizzo di un algoritmo del primo ordine con pseudo-inversa dello Jacobiano. Figura 2.18: Schema a blocchi con pseudoinversa q˙ = J† ve + (I4 − J† J)( ∂w(q) T ) ∂q Dove il proiettore nel nullo (I4 − J† J) consente di generare moti interni alla struttura lasciando inalterata la posa dell’end-effector mentre la funzione w(q) ci consente di massimizzare un vincolo secondario. Nel nostro caso abbiamo scelto la seguente funzione obiettivo: w(q) = � det(J(q)JT (q)) che si annulla in corrispondenza di una configurazione singolare, per cui massimizzando tale indice si utilizza la ridondanza per allontanarsi © 2013 by A.Salvati, A.Tufano 23 2. Pianificazione della Traiettoria dalle singolaritá. Per completezza riportiamo: 0 0 (I4 − J† J) = 0 0 0 0 0 0 0 0 0 0 0 0 a1 a2 cos ϑ2 0 ∂w(q) ; = ∂q 0 0 1 0 I casi analizzati riguardano il rilassamento, rispettivamente, della variabile di orientamento Φ e della variabile di posizione x. Nel caso in cui si trascura l’orientamento lo Jacobiano risulta essere: J(O) −a2 s12 − a1 s1 −a2 s12 0 0 = a2 c12 + a1 c1 a2 c12 0 0 0 0 1 0 Viceversa se é la coordinata x ad essere trascurata lo Jacobiano diventa: J(x) a c + a1 c1 a2 c12 0 0 2 12 = 0 0 1 0 1 1 0 1 Di seguito riportiamo i risultati ottenuti. © 2013 by A.Salvati, A.Tufano 24 2. Pianificazione della Traiettoria Figura 2.19: Traiettorie Figura 2.20: Confronto Angolo t2 © 2013 by A.Salvati, A.Tufano 2. Pianificazione della Traiettoria 25 Figura 2.21: Misura di manipolabilitá Come ci si aspettava, essendo il compito di posizionamento disaccoppiato da quello di orientamento, non si ottiene alcun miglioramento della destrezza del manipolatore nel caso in cui si rilassi il vincolo di orientamento. Viceversa nel secondo caso si ottiene un sostanziale miglioramento della manipolabilitá, sebbene il compito fittizio considerato sia di scarso interesse pratico. L’errore di inseguimento non é riportato in quanto risulta praticamente invariato rispetto all’andamento della soluzione non vincolata, proprio perché il termine aggiuntivo di velocitá viene proiettato nel nullo dello Jacobiano, cosí da non alterare le prestazioni del compito posizionale specificato all’organo terminale. © 2013 by A.Salvati, A.Tufano 26 2. Pianificazione della Traiettoria © 2013 by A.Salvati, A.Tufano CAPITOLO 3 Dinamica La deduzione del modello dinamico di un manipolatore gioca un ruolo di estrema importanza in relazione a problemi di simulazione del moto, di analisi di strutture di manipolazione e di determinazione di algoritmi di controllo. La simulazione del moto di un manipolatore consente di provare strategie di controllo e tecniche di pianificazione di traiettoria senza la necessitá di riferirsi a una struttura di manipolazione fisicamente disponibile. La conoscenza di forze e coppie richieste per l’esecuzione di movimenti tipici fornisce informazioni utili al progetto di giunti e trasmissioni e alla scelta degli attuatori. L’obiettivo della dinamica é pertanto la derivazione delle equazioni del moto di un manipolatore nello spazio dei giunti. Abbiamo calcolato il modello dinamico nello spazio dei giunti tramite la formulazione di Lagrange: essendo semplice e sistematica, consente di giungere al modello dinamico in forma chiusa ed é basata sul calcolo dell’energia. Il modello dinamico nello spazio dei giunti risulta essere il seguente: B(q)¨ q + C(q, q) ˙ q˙ + Fv q˙ + g(q) = τ − JT (q)he 28 3. Dinamica Ove B(q) é la matrice di inerzia: b (q ) b12 (q2 ) b22 B(q) = b32 b41 b42 11 2 b21 (q2 ) b31 con: b13 b23 b33 b43 b14 b24 b34 b44 b11 = Il1 + Il2 + Il3 + Il4 + Im1 kr21 + Im2 + Im3 + Im4 + a21 ml1 + (a21 + a22 )(ml2 + ml3 + ml4 ) + (l1 − 2a1 )ml1 l1 + (l2 − 2a2 )ml2 l2 + 2a1 c2 [a2 (ml2 + ml3 + ml4 ) − ml2 l2 ] b22 = Il2 + Il3 + Il4 + Im2 kr22 + Im3 + Im4 + a22 (ml2 + ml3 + ml4 ) + (l2 − 2a2 )ml2 l2 b33 = Im3 kr23 + ml3 + ml4 b44 = Il4 + Im4 kr24 b12 = b21 = Il2 + Il3 + Il4 + Im2 kr2 + Im3 + Im4 + a22 (ml2 + ml3 + ml4 ) + (l2 − 2a2 )ml2 l2 + a1 c2 [a2 (ml2 + ml3 + ml4 ) − ml2 l2 ] b13 = b23 = b31 = b32 = Im3 kr3 b14 = b24 = b41 = b42 = Il4 + Im4 kr4 b34 = b43 = 0 La matrice C(q, q) ˙ contiene i contributi delle forze centrifughe e delle forze di Coriolis, con la seguente struttura: c (q , q˙ ) c12 (q2 , q˙1 , q˙2 ) 11 2 2 c21 (q2 , q˙1 ) 0 C(q, q) ˙ = 0 0 0 0 © 2013 by A.Salvati, A.Tufano 0 0 0 0 0 0 0 0 29 3. Dinamica gli elementi di tale matrice, ricavati utilizzando i simboli di Christoffel, risultano avere le seguenti espressioni: c11 = [−a1 a2 (ml2 + ml3 + ml4 ) + a1 (ml2 l2 )]s2 q˙2 c12 = [−a1 a2 (ml2 + ml3 + ml4 ) + a1 (ml2 l2 )]s2 (q˙1 + q˙2 ) c21 = [a1 a2 (ml2 + ml3 + ml4 ) − a1 (ml2 l2 )]s2 q˙1 Fv é la matrice diagonale dei coefficienti di attrito viscoso: F k2 0 0 0 m1 r1 0 Fm2 kr22 0 0 Fv = 2 0 0 F k 0 m3 r3 0 0 0 Fm4 kr24 Infine, il termine gravitazionale é: g = [0 0 g(ml3 + ml4 ) 0]T 3.1 Parametrizzazione del modello Dovendo realizzare un controllo adattativo, risulta utile considerare il moto libero ponendo he = 0; il modello dinamico diventa: B(q)¨ q + C(q, q) ˙ q˙ + Fv q˙ + g(q) = τ che corrisponde al seguente set di equazioni: b11 q¨r1 + b12 q¨r2 + b13 q¨r3 + b14 q¨r4 + c11 q˙r1 + c12 q˙r1 + Fm1 kr21 q˙r1 = τ1 b21 q¨r1 + b22 q¨r2 + b23 q¨r3 + b24 q¨r4 + c21 q˙r1 + Fm2 kr22 q˙r2 = τ2 b31 q¨r1 + b32 q¨r2 + b33 q¨r3 + Fm3 kr23 q˙r3 + g(ml3 + ml4 ) = τ3 b41 q¨r1 + b42 q¨r2 + b44 q¨r4 + Fm4 kr24 q˙r4 = τ4 A questo punto possiamo individuare il vettore π composto da 14 parametri (o 13, se vogliamo isolare ml4 relativo al carico in punta al © 2013 by A.Salvati, A.Tufano 30 3. Dinamica manipolatore), i cui elementi sono: π1 = Il1 + Im1 kr21 + a21 ml1 + (l1 − 2a1 )ml1 l1 π2 = Fm1 π3 = Il2 + Il3 π4 = Im2 π 5 = m l 2 + m l 3 + m l4 π6 = ml2 l2 π7 = Fm2 π8 = Im3 π9 = Fm3 π10 = Il4 π11 = Im4 π12 = Fm4 π13 = ml3 π14 = ml4 Come ben noto dalla teoria, possiamo riscrivere le equazioni in forma compatta tramite la matrice dei regressori Y le cui dimensioni sono (4 × 14): Y(q, q, ˙ q˙ r , q ¨r )π = τ © 2013 by A.Salvati, A.Tufano 3. Dinamica 31 gli elementi di Y sono riportati di seguito: y1,1 = q¨r1 y1,2 = kr22 q˙r1 y1,3 = q¨r1 + q¨r2 y1,4 = q¨r1 + kr22 q˙r2 y1,5 = (a21 + a22 + 2a1 a2 c2 )¨ qr1 + (a22 + 2a1 a2 c2 )¨ qr2 − a1 a2 s2 [q˙2 q˙r1 + (q˙1 + q˙2 )q˙r2 ] y1,6 = [(l2 − 2a2 − 2a1 c2 )¨ qr1 + (l2 − 2a2 − a1 c2 )¨ qr2 + a1 s2 [q˙2 q˙r1 + (q˙1 + q˙2 )q˙r2 ]] y1,7 = 0 y1,8 = q¨r1 + q¨r2 + kr3 q¨r3 y1,9 = 0 y1,10 = q¨r1 + q¨r2 + q¨r4 y1,11 = q¨r1 + q¨r2 + kr4 q¨r4 y1,12 = y1,13 = y1,14 = 0 y2,1 = y2,2 = 0 y2,3 = y1,3 y2,4 = kr2 y1,4 y2,5 = (a22 + 2a1 a2 c2 )¨ qr1 + a22 q¨r2 + (a1 a2 s2 q˙1 )q˙r1 y2,6 = (l2 − 2a2 − a1 c2 )¨ qr1 + (l2 − 2a2 )¨ qr2 − (a1 s2 q˙1 )q˙r1 y2,7 = kr22 q˙r2 y2,8 = y1,8 y2,9 = 0 y2,10 = y1,10 y2,11 = y1,11 y2,12 = y2,13 = y2,14 = 0 © 2013 by A.Salvati, A.Tufano 32 3. Dinamica y3,1 = y3,2 = y3,3 = y3,4 = y3,5 = y3,6 = y3,7 = 0 y3,8 = kr3 y1,8 y3,9 = kr23 q˙r3 y3,10 = y3,11 = y3,12 = 0 y3,13 = y3,14 = q¨r3 + g y4,1 = y4,2 = y4,3 = y4,4 = y4,5 = y4,6 = y4,7 = y4,8 = y4,9 = 0 y4,10 = y1,10 y4,11 = kr4 y1,11 y4,12 = kr24 q˙r4 y4,13 = y4,14 = 0 Come detto precedentemente, la ml4 rappresenta la massa del carico in punta, quindi in sede di controllo é da considerarsi nulla in quanto ignota e il suo vero valore verrá utilizzato solo nella dinamica diretta per la simulazione. La ml3 é invece la somma delle masse dei bracci 3 e 4 (il polso). Inoltre il momento di inerzia del braccio 3 lungo z, Il3 , é trascurabile rispetto a quello del polso ed é quindi stato considerato nullo. Tramite il seguente modello Simulink Figura 3.1: Schema Simulink dinamica inversa é possibile risolvere il problema dinamico inverso che consiste nel calco© 2013 by A.Salvati, A.Tufano 3. Dinamica 33 lo delle coppie ai giunti τ (t) necessarie alla generazione del movimento specificato assegnando le accelerazioni q¨(t), le velocitá q(t) ˙ e le posizioni q(t) dei giunti note le eventuali forze all’organo terminale he (t). Figura 3.2: Coppie e Forze ai giunti Il manipolatore Scara analizzato in questo elaborato é azionato da motori rotanti, calettati direttamente sui giunti 1 e 2 senza organi di riduzione , mentre vengono utilizzati riduttori per i giunti 3 e 4. Di conseguenza i problemi di attrito, elasticitá e giochi sono eliminati per i primi due giunti, diventando peró significativi i pesi delle non linearitá e dell’accoppiamento tra i giunti; d’altro canto invece la presenza di riduttori per gli ultimi due giunti tenderá a linearizzare la dinamica del sistema e a disaccoppiare i giunti per via della riduzione degli effetti della non linearitá e dell’accoppiamento sugli attuatori stessi. © 2013 by A.Salvati, A.Tufano 34 3. Dinamica © 2013 by A.Salvati, A.Tufano CAPITOLO 4 Controllo del Moto 4.1 Controllo a Dinamica Inversa Tale strategia di controllo si basa sulla proprietá del modello dinamico di avere una struttura lineare nel controllo u e di avere una matrice B(q) invertibile per qualsiasi configurazione del robot; ció rende possibile una linearizzazione globale del sistema tramite una retroazione non lineare dello stato. Figura 4.1: Schema di principio 36 4. Controllo del Moto É possibile individuare due anelli di controllo indipendenti nello schema: l’anello interno rende disponibile un legame ingesso-uscita lineare e disaccoppiato mentre l’anello esterno si occupa di stabilizzare il sistema lineare e stazionario complessivo rendendo molto semplice il progetto del controllore. Questa tecnica di controllo basandosi su cancellazione di contributi presenta problemi di sensibilitá e scarsa robustezza poiché le compensazioni non si riescono a effettuare perfettamente a causa del modello dinamico del manipolatore, che é sempre noto con un certo grado d’indeterminazione, e numerosi altri fattori d’incertezza; inoltre impone vincoli sull’architettura hardware/software dell’unitá di governo. Per ovviare a tali problematiche si modifica lo schema di Figura4.1 inserendo un’azione che conferisce robustezza al controllo (Figura4.2). 4.2 Controllo Robusto Figura 4.2: Schema di principio Implementato in ambiente simulink1 come in Figura4.3. 1 Tutti gli schemi di controllo sono stati realizzati con un periodo di campionamento di 1ms mediante l’interposizione di elementi a ritenuta di ordine zero (ZOH) nelle linee di misura e di attuazione © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto © 2013 by A.Salvati, A.Tufano Figura 4.3: Controllo Robusto in Simulink 37 38 4. Controllo del Moto Il blocco Compensazione non lineare e Disaccoppiamento realizza la compensazione ed il disaccoppiamento tipici di un controllo a dinamica inversa, sulla base del modello dinamico fornito, che puó risultare piú o meno approssimato. Si é scelto il modello dinamico approssimato: u = By + g con B matrice costante e diagonale relativa alle inerzie medie agli assi di ogni giunto con elementi b11 = Il1 + Il2 + Il4 + Im1 kr21 + Im2 + Im3 + Im4 + a21 ml1 + (a21 + a22 )(ml2 + ml3 ) + (l1 − 2a1 )ml1 l1 + (l2 − 2a2 )ml2 l2 b22 = Il2 + Il4 + Im2 kr22 + Im3 + Im4 + a22 (ml2 + ml3 ) + (l2 − 2a2 )ml2 l2 b33 = Im3 kr23 + ml3 b44 = Il4 + Im4 kr24 0 0 g= gml3 0 In particolare la massa di carico in punta al manipolatore ml4 é stata posta uguale a 0 in quanto sconosciuta. Il blocco Controllo Robusto realizza la legge di controllo lineare stabilizzante e quella a cui é demandata la robustezza del controllo y=q ¨d + KD q ˜˙ + KP q ˜+w con dove ρ z se �z� ≥ ε w = �z� ρ z se �z� < ε ε © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 39 • z = DT Qξ con ξ = [˜ qT q ˜˙ T ]T ; • w rappresenta il contributo di robustezza che contrasta l’errore di modellazione con cui sono calcolati gli elementi non lineari; • ρ é uno scalare positivo tanto maggiore quanto piú é grande l’incertezza; • ε rappresenta l’ampiezza della fascia all’interno della quale pendola l’errore. Scegliendo i seguenti parametri: KD = diag([10 10 5 10]) KP = diag([100 100 50 100]) D = [zeros(4; 4); eye(4; 4)] Q = [diag([10 10 10 10]) diag([10 10 10 10]); 10KP KD ] ρ = 10 ε=1 si nota nelle fig.4.4,4.5,4.6, che gli errori sono abbastanza contenuti e la variabile di controllo non presenta oscillazioni di rilievo in virtú della scelta piuttosto ampia del boundary layer ε. Come ci si poteva aspettare l’errore sulle velocitá é meno contenuto, avendo pesato maggiormente l’errore in posizione. © 2013 by A.Salvati, A.Tufano 40 4. Controllo del Moto Figura 4.4: Errore di posizione (ρ = 10, ε = 1) Figura 4.5: Errore di velocitá (ρ = 10, ε = 1) © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 41 Figura 4.6: Coppie (ρ = 10, ε = 1) Scegliendo ε = 0.1 e lasciando inalterato ρ = 10, si nota un leggero miglioramento degli errori di posizione e velocitá: Figura 4.7: Errore di posizione (ρ = 10, ε = 0.1) © 2013 by A.Salvati, A.Tufano 42 4. Controllo del Moto ((a)) , ((b)) Figura 4.8: Errore di velocitá e coppie (ρ = 10, ε = 0.1) © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 43 Se a questo punto pensiamo di porre ρ = 10 e ε = 0.01, si puó notare nelle fig.4.9,4.10, che diminuendo il boundary layer si desta il fenomeno del chattering. Le componenti in alta frequenza dell’azione di controllo causerebbero delle sollecitazioni dannose per il manipolatore. Figura 4.9: Errore di posizione (ρ = 10, ε = 0.01) © 2013 by A.Salvati, A.Tufano 44 4. Controllo del Moto ((a)) , ((b)) Figura 4.10: Errore di velocitá e coppie (ρ = 10, ε = 0.01) © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 45 Per ottenere l’andamento desiderato basta fare una media delle traiettorie affette dal fenomeno di chattering. Si é appena visto quindi che la scelta di un valore di soglia piccolo per ε comporta delle componenti in alta frequenza nelle coppie dei giunti, a vantaggio di un errore di inseguimento molto ridotto; d’altro canto, aumentando il valore della soglia ε, la coppia assume un andamento piú regolare a discapito di un aumento dell’errore di inseguimento. © 2013 by A.Salvati, A.Tufano 46 4.3 4. Controllo del Moto Controllo Adattativo Il controllo adattativo sfrutta la proprietá di linearitá nei parametri del modello dinamico per definire una legge di controllo robusta a fronte di incertezze sui parametri stessi. Figura 4.11: Schema di principio La legge di controllo u é scelta pari a: ˆ qr + C(q, ˆ ˆ V q˙ r + g u = B(q)¨ q) ˙ q˙ r + F ˆ(q) + KD σ = Y(q, q, ˙ q˙ r , q ¨r )ˆ π + KD σ con q˙ r = q˙d + Λ˜ q σ = q˙r − q˙ = q˜˙ + Λ˜ q Abbiamo quindi impostato la seguente legge dinamica di adattamento dei parametri: T π ˆ˙ = K−1 ˙ q˙ r , q ¨r )σ π Y (q, q, si ottiene la convergenza a zero del sistema di errore equivalente e la limitatezza di π ˆ asintoticamente se risulta: Y(q, q, ˙ q˙ r , q ¨r )(ˆ π − π) = 0 ció non vuol dire che π ˆ tenda a π; la convergenza dei parametri al valore vero dipende dalla struttura di Y e quindi dalle leggi del moto da cui dipende. Questo tipo di controllo non serve a determinare il vettore © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 47 esatto dei parametri ma a trovare una legge di controllo efficiente. Lo schema Simulink che realizza la legge di controllo generale é in Figura4.12. I sottosistemi Y e Y � sigma calcolano, rispettivamente, il regressore ed il blocco YT (q, q, ˙ q˙ r , q ¨r )σ. L’integratore discreto é stato utilizzato per ricavare i parametri correnti dalla legge di aggiornamento. Si é supposto di conoscere tutti i parametri con certezza, eccetto la massa del carico in punta, la quale oscilla intorno al suo valore effettivo. Le matrici caratteristiche del controllo in tal caso sono state scelte come: Λ = diag[5 5 5 5] KD = diag[200 200 500 200] ∗ 10 Kπ = eye(14, 14) Kπ (14, 14) = 0.01 Di seguito si riportano lo schema in ambiente Simulink e i risultati ottenuti. © 2013 by A.Salvati, A.Tufano © 2013 by A.Salvati, A.Tufano 4. Controllo del Moto 48 Figura 4.12: Schema Simulink per il Controllo Adattativo 4. Controllo del Moto Figura 4.13: Controllo Adattativo: Errore di posizione Figura 4.14: Controllo Adattativo: Coppie © 2013 by A.Salvati, A.Tufano 49 50 4. Controllo del Moto Figura 4.15: Controllo Adattativo: Stima del Carico © 2013 by A.Salvati, A.Tufano CAPITOLO 5 Controllo di Forza Il piú delle volte il manipolatore non é libero di muoversi liberamente nello spazio ma deve tenere conto di alcuni vincoli naturali, imposti dalla geometria del compito, e vincoli artificiali, imposti dal controllista. Questo tipo di problematiche di controllo vengono affrontate con schemi di controllo nello spazio operativo e comporta un carico computazionale piú gravoso per l’unitá di governo; la grandezza fondamentale da controllare é la forza d’interazione tra l’organo terminale e l’ambiente. Oltre al modello cinematico e dinamico del manipolatore é necessario avere informazioni dettagliate anche sull’ambiente, non sempre possibile. Per la nostra analisi si suppone che il manipolatore entri in contatto con un piano orizzontale elasticamente cedevole posto ad una quota z = 0.6m e caratterizzato da una rigidezza pari a 5 · 103 N/m. 52 5.1 5. Controllo di Forza Controllo di Impedenza Lo schema di principio Figura 5.1: Schema di principio é stato implementato in Simulink come in Figura5.2. Lo schema presenta i blocchi relativi alla dinamica del manipolatore ed alla parte di compensazione non lineare e disaccoppiamento che presentano in ingresso anche l’informazione relativa alla forza applicata all’organo terminale, necessaria sia come informazione nel modello sia per utilizzare la seguente compensazione u = B(q)y + n(q, q) ˙ + JT (q)he © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza © 2013 by A.Salvati, A.Tufano 53 Figura 5.2: Schema Simulink Controllo di Impedenza 54 5. Controllo di Forza La forza dell’organo terminale é generata nel sottosistema forza ambiente-manipolatore sulla base della posizione dell’end effector. Il controllo di impedenza é realizzato nel blocco Controllo di Impedenza grazie a una Matlab function che realizza la seguente legge di controllo ˙ y = J−1 (q)M−1 ¨d + KD x ˜˙ + KP x ˜ − Md J(q, q) ˙ q˙ − he ) d (Md x da cui si ottiene Md x ¨d + KD x ˜˙ + KP x ˜ = he Le variabili desiderate sono ovviamente quelle nello spazio operativo e l’errore é ricavato sottraendo a queste le variabili effettive nello spazio operativo ricavate dalla cinematica diretta. É interessante notare che: • tale strategia di controllo realizza un controllo indiretto in forza, cioé la forza viene modulata tramite un controllo di moto; • l’ambiente é stato modellato con una legge di tipo elastica del tipo fe = K(xe − xr ). Le matrici caratteristiche del controllo, che definiscono l’impedenza attiva conferita al manipolatore, sono state scelte come segue Md = diag[1 1 1 1] KD = diag[70 70 70 70] KP = diag[40 40 40 40] e abbiamo ottenuto i risultati di fig.5.3,5.4,5.5,5.6: l’errore di posizione risulta limitato finché il manipolatore non impatta sul piano orizzontale, a questo punto affonda leggermente nel piano sviluppando una forza massima di circa 16N , per poi continuare a seguire la traiettoria nelle altre direzioni. Si é quindi conferito al manipolatore un comportamento cedevole nei confronti dell’ambiente. © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza Figura 5.3: Controllo di Impedenza : Errore di posizione Figura 5.4: Controllo di Impedenza : Forza all’organo terminale © 2013 by A.Salvati, A.Tufano 55 56 5. Controllo di Forza Figura 5.5: Controllo di Impedenza : Coppie Figura 5.6: Controllo di Impedenza :Traiettorie © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza 5.2 57 Controllo di Forza I controlli di forza presentati di seguito hanno un riferimento che, insieme al relativo controllo di forza, viene attivato solo al primo contatto con il piano cedevole. Prima di tale contatto la traiettoria viene seguita con un modello a dinamica inversa nello spazio operativo. 5.2.1 Anello interno di posizione Figura 5.7: Schema di principio implementato in Simulink come in Figura5.8. L’azione di controllo assume la seguente forma ˙ y = J−1 (q)M−1 ˙ e + KP (xF − xe ) − Md J(q, q) ˙ q) ˙ d (−KD x Il riferimento di posizione xF é calcolato a partire dall’errore di forza mediante un controllore PI, soltanto al primo contatto del manipolatore con il piano cedevole; la sequenza di blocchi, nella quale compare anche un relé, realizzano proprio un rilevatore del primo fronte di salita della forza misurata. Dal momento del contatto fino alla fine della traiettoria si passa dal controllo a dinamica inversa ad un controllo di forza con anello interno di posizione. © 2013 by A.Salvati, A.Tufano © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza 58 Figura 5.8: Schema Simulink anello interno di posizione 5. Controllo di Forza 59 Le matrici caratteristiche del controllo a dinamica inversa sono: KD = diag[150 150 150 150] KP = diag[400 400 400 400] Quando poi il manipolatore entra in contatto con il piano le matrici sono modificate: KD = diag[100 100 100 100] KP = diag[200 200 0.1 200] I guadagni del PI sono stati fissati pari a 2 per il proporzionale e 4 per l’azione integrale. Dai risultati delle simulazioni,é possibile notare che il manipolatore una volta entrato in contatto col piano realizza la forza d’interazione desiderata di 50N , mentre lungo le direzioni non interessate al contatto é nulla. © 2013 by A.Salvati, A.Tufano 60 5. Controllo di Forza Figura 5.9: Controllo Forza (a.i.p.): Errore di posizione Figura 5.10: Controllo Forza (a.i.p.): Forza all’organo terminale © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza Figura 5.11: Controllo Forza (a.i.p.): Coppie Figura 5.12: Controllo Forza (a.i.p.): Traiettorie © 2013 by A.Salvati, A.Tufano 61 62 5. Controllo di Forza 5.2.2 Anello interno di velocitá Figura 5.13: Schema di principio implementato in Simulink come in Figura5.14. L’azione di controllo diventa ˙ y = J−1 (q)M−1 ˙ e + KP xF − Md J(q, q) ˙ q) ˙ d (−KD x Anche in questo caso un rilevatore di fronte di salita switcha tra controllo a dinamica inversa e controllo di forza non appena l’end-effector entra in contatto col piano elasticamente cedevole. Da notare che: • in questo caso viene eliminata l’azione integrale sull’errore di forza; • Le matrici sono le stesse del caso precedente. Di seguito i risultati delle simulazioni. © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza © 2013 by A.Salvati, A.Tufano Figura 5.14: Schema Simulink anello interno di velocitá 63 64 5. Controllo di Forza Figura 5.15: Controllo Forza (a.i.v.): Errore di Posizione Figura 5.16: Controllo Forza (a.i.v.): Forza all’organo terminale © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza Figura 5.17: Controllo Forza (a.i.v.): Coppie Figura 5.18: Controllo Forza (a.i.v.): Traiettorie © 2013 by A.Salvati, A.Tufano 65 66 5. Controllo di Forza 5.2.3 Controllo Parallelo Forza/Posizione Figura 5.19: Schema di principio implementato in Simulink come in Figura5.20. La legge di controllo implementata é ˙ y = J−1 (q)M−1 ˙ e + KP (˜ x + xF ) − Md J(q, q) ˙ q) ˙ d (−KD x con x ˜ = xd − xe . Ancora una volta il controllo interviene appena l’end-effector entra in contatto col piano cedevole; per realizzare l’inseguimento di traiettoria nelle direzioni in cui il moto é libero viene aggiunto un termine di feedforward sulla velocitá desiderata. I guadagni sono impostati come nei casi precedenti. © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza © 2013 by A.Salvati, A.Tufano Figura 5.20: Schema Simulink controllo parallelo 67 68 5. Controllo di Forza Figura 5.21: Controllo Forza Parallelo: Errore di Posizione Figura 5.22: Controllo Forza Parallelo: Forza all’organo terminale © 2013 by A.Salvati, A.Tufano 5. Controllo di Forza Figura 5.23: Controllo Forza Parallelo: Coppie Figura 5.24: Controllo Forza Parallelo: Traiettorie © 2013 by A.Salvati, A.Tufano 69 70 5. Controllo di Forza Dalle simulazioni si puó vedere che il manipolatore una volta entrato in contatto col piano segue la traiettoria desiderata nelle direzioni libere (Figura5.21), mentre la forza all’organo terminale subisce delle oscillazioni nell’intorno del valore desiderato ad ogni impatto (Figura5.22). © 2013 by A.Salvati, A.Tufano Bibliografia [1] Siciliano B., Sciavicco L., Villani L., Oriolo G., Robotica Modellistica, Pianificazione e Controllo, Terza Edizione, 2008, McGraw-Hill.
© Copyright 2024 Paperzz