Corso di Percezione Robotica (PRo) A.A. 99/00 B. Modulo di Robotica Fondamenti di meccanica e controllo dei robot Sommario della lezione Introduzione alla meccanica dei robot cinematica di un braccio robotico problemi di cinematica diretta e inversa definizione di spazio dei giunti e spazio cartesiano matrici di trasformazione principi fondamentali del calcolo delle traiettorie e del controllo dei robot un esempio: il linguaggio VAL II di programmazione del robot PUMA 562 Riferimenti bibliografici: Fu, Gonzalez, Lee, “Robotica”, McGraw-Hill Definizione di robot Dal Webster: “Dispositivo automatico che esegue funzioni normalmente svolte dagli esseri umani” Dal Robot Institute of America: “Manipolatore multifunzionale riprogrammabile progettato per spostare materiali, parti, utensili o altri dispositivi, per mezzo di movimenti variabili programmati per l’esecuzione di un dato numero di compiti” Definizione di sistema meccatronico Sistema riprogrammabile dotato di: . attuatori, capaci di produrre modificazioni dell’ambiente di lavoro, con relativa circuiteria elettronica di potenza sensori, capaci di percepire caratteristiche significative dell’ambiente di lavoro, con relativa circuiteria elettronica di pilotaggio ed acquisizione una unità di controllo, spesso integrata (embedded) con il sistema stesso Manipolatore industriale “Sequenza di segmenti rigidi, o link, connessi da giunti prismatici o di rotazione (catena cinematica).” Giunto = insieme di due superfici che slittano l’una sull’altra rimanendo a contatto Coppia giunto-link = grado di libertà del robot Link 0 = base di appoggio del robot e origine del sistema di coordinate di riferimento per il moto. All’ultimo link è collegato di norma un utensile, detto anche end-effector (effettore finale) Manipolatore industriale Spazio di lavoro del robot = insieme dei punti raggiungibili dall’utensile del robot Sottogruppi principali = braccio + polso Tipicamente: il braccio (tre gradi di libertà) viene utilizzato per il posizionamento del polso al livello del pezzo da lavorare, il polso (tre gradi rotazionali) viene utilizzato per consentire la presa del pezzo variando l’orientamento dell’utensile Manipolatore industriale Categorie fondamentali: Cartesiano (tre assi lineari) Cilindrico (due assi lineari e uno rotazionale) Sferico (un asse lineare e due rotazionali) Rotazionale (tre o più assi rotazionali) Numero di gradi di libertà (N) > 6 = robot ridondanti Figg. 2.9 & 1.2 Cinematica del braccio dei robot Studio analitico della geometria del moto del braccio rispetto ad un sistema di riferimento cartesiano fisso senza considerare le forze e i momenti che ne provocano il moto. Descrizione analitica dello spostamento del robot nello spazio in funzione del tempo. Descrizione analitica delle relazioni tra le posizioni dei giunti e la posizione e l’orientamento dell’effettore del braccio del robot. Dinamica del braccio dei robot Formulazione matematica delle equazioni di moto del braccio, basata sulle leggi fisiche note, quali le leggi della meccanica di Newton e di Lagrange Utile per: • simulazione del braccio • progetto delle equazioni e degli algoritmi di controllo utilizzabili • valutazione della progettazione e della struttura cinematica del braccio. Cinematica diretta e inversa Problema della cinematica diretta Per un determinato manipolatore, dato il vettore degli angoli dei giunti q(t) e i parametri geometrici dei link, determinare la posizione e l’orientamento dell’effettore rispetto ad un sistema di coordinate di riferimento fissato. Problema della cinematica inversa Dati la posizione e l’orientamento desiderati dell’estremità dell’effettore ed i parametri geometrici dei link rispetto a un sistema di coordinate di riferimento, il manipolatore può raggiungere la posizione e l’orientamento richiesti? Se sì, in quante e quali differenti configurazioni? Problema della cinematica diretta Definizione di un sistema di riferimento solidale ad ogni link del manipolatore. Ricerca delle matrici di trasformazione che mettano in relazione i diversi sistemi di riferimento. Utilizzo di coordinate e matrici di trasformazione omogenee/ Notazione di Denavit-Hartenberg. Equazione cinematica del braccio. Matrici di rotazione Matrice di trasformazione operante su un vettore posizione in uno spazio tridimensionale euclideo. Matrici fondamentali di rotazione Matrice di rotazione intorno ad un asse arbitrario Coordinate omogenee e matrici di trasformazione Rappresentazione di un vettore posizione di N componenti con un vettore di (N+1) componenti P = (px, py, pz)T P^ = (wpx, wpy, wpz, w)T w = fattore di scala In robotica w = 1. Rappresentazione unica delle componenti di traslazione, rotazione, prospettiche e di scala. Sistemi di coordinate dei link e loro parametri L’asse di rotazione del giunto è definito alla connessione dei due link che esso unisce. Per ogni asse sono definite due rette normali, una per ogni link. A ciascun link di un manipolatore sono associati quattro parametri: due determinano la posizione relativa dei link adiacenti e due la struttura del link. Sistemi di coordinate dei link e loro parametri La posizione relativa del link i-esimo rispetto al link (i-1)-esimo può essere definita misurando la distanza e l’angolo tra i due link adiacenti di = distanza fra le rette normali misurata lungo l’asse del giunto i-esimo i = angolo compreso tra le due normali misurato in un piano normale all’asse stesso. Sistemi di coordinate dei link e loro parametri Dal punto di vista cinematico, un link mantiene una configurazione fissa tra due giunti (struttura del link). La struttura del link i può essere caratterizzata mediante la lunghezza e l’angolo di rotazione del link i. ai = distanza minima misurata lungo la normale comune tra gli assi dei giunti i = angolo compreso tra gli assi dei giunti su un piano normale ad ai Figg. 2.9 & 2.10 + fig. link Rappresentazione di Denavit-Hartenberg Matrice di trasformazione omogenea 4X4 che rappresenta ogni sistema di coordinate dei link rispetto ai giunti con riferimento al link precedente. Per un braccio a 6 gradi di libertà = 7 sistemi di coordinate asse z = asse di movimento del giunto asse x = normale all’asse z e all’asse z del riferimento precedente asse y = completa la regola della mano destra Attraverso trasformazioni sequenziali l’estremità dell’effettore espressa nelle coordinate del sistema solidale alla mano può essere trasformata ed espressa nel sistema delle coordinate di base (sistema inerziale di riferimento). Rappresentazione di Denavit-Hartenberg La rappresentazione D-H dipende dai quattro parametri geometrici associati a ogni link, che descrivono completamente tutti i giunti rotazionali o prismatici. Variabili di giunto: se varia solo di = giunto prismatico se varia solo i = giunto rotazionale Rappresentazione di Denavit-Hartenberg Algoritmo di rappresentazione dei sistemi di coordinate ortonormali coerenti per un robot, che facilita lo sviluppo del procedimento logico per la soluzione dei giunti (matrice del braccio). Dato un robot ad N gradi di libertà si assegna un sistema di coordinate ortonormali a ogni link. L’assegnamento inizia dalla base del supporto e procede fino all’effettore. Le relazioni tra link adiacenti sono espresse mediante matrici di trasformazione omogenee 4x4. Rappresentazione di Denavit-Hartenberg Passi fondamentali dell’algoritmo. 1. Determinare il sistema di coordinate fondamentale 2. Per ogni giunto da 1 a 5, stabilire l’asse del giunto, l’origine del sistema di coordinate, l’asse x e l’asse y. 3. Stabilire il sistema di coordinate della mano, uscente dal robot. 4. Per ogni giunto e per ogni link, determinare quindi i parametri dei giunti e dei link. A questo punto è possibile definire la matrice di trasformazione omogenea che mette in relazione i sistemi di coordinate adiacenti. Equazioni cinematiche per i manipolatori Matrice di trasformazione omogenea del sistema di coordinate relativo al giunto i-esimo rispetto al sistema di coordinate di base prodotto a catena delle successive matrici di trasformazione omogenee relative ai link adiacenti. Spazio dei giunti e spazio operativo Spazio dei giunti (o spazio delle configurazioni) = spazio in cui è definito il vettore q delle variabili di giunto. La posizione, p, e l’orientamento, , dell’organo di presa possono essere determinate con il numero minimo di variabili strutturalmente indipendenti tra loro. Lo spazio in cui è definito il vettore x = (p, )T si definisce spazio operativo. x = k (q), k funzione vettoriale non lineare Spazio dei giunti e spazio operativo Spazio di lavoro del robot = regione descritta dall’origine della terna utensile quando ai giunti del manipolatore si fanno eseguire tutti i moti possibili. Spazio di lavoro destro (o spazio di destrezza) = regione dello spazio che l’origine della terna utensile può raggiungere con più di un orientamento. Spazio di lavoro raggiungibile = regione dello spazio che l’origine della terna utensile può raggiungere con almeno un orientamento. Un manipolatore con N < 6 non può realizzare posizioni e orientamenti arbitrariamente assegnati nello spazio. Es. + fig.2.4 Manipolatore reale Accuratezza (< 1 mm) = scostamento tra posizione calcolata sulla base dei parametri di targa con la cinematica diretta e la posizione reale (funzione dalla posizione dell’utensile nello spazio di lavoro). Ripetibilità (< 0.2 mm) = misura della capacità del manipolatore di tornare in una posizione precedentemente assunta (funzione del sistema e degli algoritmi di controllo, oltre che dalle caratteristiche meccaniche del robot). Ridondanza del braccio Numero dei gradi di libertà maggiore del numero di variabili necessarie alla caratterizzazione di un determinato compito = la dimensione dello spazio operativo è minore della dimensione dello spazio dei giunti (ridondanza intrinseca). La ridondanza è un concetto relativo al tipo di compito da svolgere (ridondanza funzionale). Un manipolatore non intrinsecamente ridondante può essere funzionalmente ridondante. Vantaggi: soluzioni multiple ottimizzabili Svantaggi: complessità di calcolo e di controllo Il problema cinematico inverso • Le equazioni da risolvere sono in generale non lineari • Non è sempre possibile trovare una soluzione analitica (forma chiusa) • Si possono avere soluzioni multiple. • Si possono avere infinite soluzioni (singolarità). • In funzione della struttura cinematica del braccio, possono non esistere soluzioni ammissibili. L’esistenza di una soluzione è sempre garantita se la posizione e l’orientamento desiderati appartengono allo spazio destro del manipolatore. Spesso si ricorre a tecniche iterative di tipo numerico. Il problema cinematico inverso Nel caso di manipolatore a sei gradi di libertà l’esistenza di una soluzione analitica è sempre garantita se ricorre almeno una delle seguenti condizioni: A) tre assi di giunti rotoidali adiacenti si intersecano (polso sferico); B) tre assi di giunti rotoidali adiacenti sono paralleli Nel caso A, si può scindere il problema in due sottoproblemi disaccoppiando la soluzione per la posizione da quella per l’orientamento. Il problema cinematico inverso Dati noti = posizione p ed orientamento R della pinza Passi della soluzione: 1) Individuare un punto sulla struttura la cui posizione sia esprimibile in funzione di un insieme ridotto di variabili di giunto e dei dati noti = centro del polso 2) Calcolare la posizione del polso in funzione delle prime tre variabili di giunto q1, q2, q3 3) Risolvere la cinematica inversa per le prime tre variabili di giunto q1, q2, q3 4) Calcolare R03 in funzione delle prime tre variabili di giunto 5) Calcolare R63 (4, 5, 6) 6) Risolvere la cinematica inversa per l’orientamento (4, 5, 6) Cinematica differenziale Individuazione della relazione tra le velocità dei giunti e le corrispondenti velocità angolari e lineari dell’organo terminale = calcolo del Jacobiano del manipolatore. Jacobiano geometrico = matrice di trasformazione dipendente dalla configurazione corrente del braccio Jacobiano analitico = matrice delle derivate parziali della funzione di cinematica diretta rispetto alle variabili di giunto Cinematica differenziale e statica Importanza del calcolo del Jacobiano del braccio: • individuazione delle singolarità • analisi della ridondanza • algoritmi per l’inversione cinematica • individuazione del legame tra forze applicate all’organo terminale e coppie sviluppate ai giunti (statica) • derivazione equazioni di moto e sintesi degli schemi di controllo nello spazio operativo Cinematica differenziale e statica Singolarità di un manipolatore = configurazioni in cui il Jacobiano diminuisce di rango • configurazioni in cui si ha una perdita di mobilità della struttura • quando il robot è in una configurazione singolare possono esistere infinite soluzioni al problema cinematico inverso • nell’intorno di una singolarità, velocità ridotte nello spazio operativo possono indurre velocità molto elevate nello spazio dei giunti Cinematica differenziale e statica Per manipolatori a polso sferico, il problema dell’individuazione delle singolarità può essere disaccoppiato: • singolarità di polso, caratterizzate nello spazio dei giunti e difficilmente gestibili • singolarità di struttura portante, caratterizzate nello spazio operativo (cartesiano) e facilmente evitabili. Inversione nella cinematica differenziale Si ottiene per integrazione nel tempo della relazione inversa tra le velocità di giunto e le velocità dell’organo terminale. L’inversione cinematica così ottenuta prescinde dalla risolvibilità della struttura cinematica. Il Jacobiano deve essere una matrice quadrata e di rango pieno. Particolare attenzione deve essere posta nel trattare i casi di presenza di singolarità o di manipolatori ridondanti. Esempi di sfruttamento della ridondanza massimizzare la misura di manipolabilità, una funzione che si annulla in corrispondenza di una singolarità; minimizzare la distanza dai fine corsa di uno o più giunti; massimizzare la distanza da un ostacolo; Calcolo delle traiettorie dei manipolatori Modalità: VINCOLO DEL PERCORSO VINCOLO DELL’OSTACOLO Sì No Sì Pianificazione fuori linea del percorso esente da collisioni e inseguimento in linea del percorso No Controllo della posizione e ricerca e aggiornamento in linea degli ostacoli Pianificazione fuori linea del percorso e inseguimento in linea del percorso Controllo della posizione Due sottoproblemi: pianificazione della traiettoria e controllo del movimento Pianificazione di traiettorie OBIETTIVO: generare gli ingressi di riferimento per il sistema di controllo del moto: xstart --> xgoal PERCORSO: luogo dei punti dello spazio dei giunti o dello spazio operativo che il manipolatore deve descrivere per l’esecuzione del movimento assegnato TRAIETTORIA: percorso su cui è specificata la legge oraria di moto (velocità ed accelerazione in ogni punto) Pianificazione di traiettorie DATI IN INPUT: vincoli del percorso vincoli degli ostacoli vincoli del manipolatore DATI IN OUTPUT: nello spazio dei giunti: traiettorie dei vari giunti nello spazio operativo: traiettoria dell’organo terminale Controllo del moto OBIETTIVO: ottenere dal robot la risposta desiderata nello spazio dei giunti nello spazio cartesiano