Upload
carmine-di-gruttola
View
175
Download
6
Embed Size (px)
Citation preview
Università degli studi di SalernoCorso di Laurea Magistrale in Ingegneria InformaticaAnno 2015/2016
Corso di Automazione e RoboticaPresentazione progetto Robotica
Gruppo: Di Gruttola Carmine – Esposito Emiddio
Outline1. Analisi del manipolatore2. Cinematica diretta del manipolatore3. Cinematica differenziale, Inversione cinematica e pianificazione
della traiettoria4. Controllo centralizzato nello spazio giunti
Strumenti utilizzati• Matlab versione r2015a per lo sviluppo delle procedure.• Ambiente di simulazione V-REP.
Analisi• Il manipolatore analizzato è lo SmartSix della Comau poggiato su una
base mobile e con un polso sferico all’estremità.• Il sistema risulta quindi composto da 6 giunti rotoidali disposti su
diversi assi.• La base mobile è stata modellata aggiungendo due giunti prismatici,
idealmente posti nello stesso punto del primo giunto rotoidale.
Utilizzando le convenzioni di Denavit-Hartenberg, sono state individuate le terne solidali ai diversi giunti
Dalle terne individuate e dal datasheet sono stati estratti i parametri DH che permettono in maniera agevole di ricavare le matrici di rotazione
Transizione a d0
0
0.15 0.45
0.59 0 0
0.13 0
0 0.64707
0 0
0 0 0.095
Cinematica Diretta• Il primo passo è stato lo sviluppo di una procedura per il calcolo della
cinematica diretta.
• La procedura prende in ingresso la configurazione dei giunti del manipolatore, una stringa per la tipologia degli angoli di Eulero e le matrici e di relazione con la terna mondo e quella end effector• In uscita restuisce la posizione dell’end effector, l’orientamento secondo
gli angoli scelti, la matrice di rotazione e un cell array con tutte le matrici intermedie calcolate.
function [p, phi, R, A] = cindir(q, str, Ab0, Ane)
Procedura DHMatrix• Per aiuto nello sviluppo, è stava sviluppata una procedura che dati i
parametri DH calcola la matrice di rototraslazione corrispondente.
• La stessa poi è stata utilizzata più volte per calcolare , da cui sono stati ricavate tutte le altre informazioni ritornate da cindir.
function [A] = DHMatrix(a, alpha, d, theta)
Verifica• Confronto dei risultati in uscita dalla procedura realizzata con quelli
simulati dall’ambiente V-REP.• In primo luogo sono stati verificati i risultati in posizione di
calibrazione, ovvero [0,0,0,,0,0,0,0]T e i valori sono congruenti.• Un’ulteriore prova è stata fatta in una posizione casuale
[5,5,0,0,,0,0,0]T e si è notata una discrepanza di 0.06 mm nella coordinata z della posizione causata dai limiti fisici dei giunti, nel caso particolare dal giunto 5.• Questo problema è stato risolto utilizzando il file
LimitiManipolatore.m
Inversione Cinematica• Secondo passo è stato il calcolo della cinematica differenziale ai fini
dell’inversione cinematica, implementata attraverso un algoritmo CLIK del secondo ordine
• La funzione prende in ingresso una configurazione iniziale, una traiettoria in posizione, velocità e accelerazione, oltre che informazioni su eventuali ostacoli.
function [q, dq, ddq, e] = InversioneCinematica(q0, xd, dxd, ddxd, str, Ab0, Ane, obs)
Jacobiano Geometrico e Analitico• Per l’inversione il primo passo è il calcolo dello Jacobiano Geometrico
e dello Jacobiano Analitico • Il primo è stato calcolato a partire dalle formule presenti sul testo e
dalle informazioni ricavate da cindir• Il secondo è stato calcolato partendo dal primo e utilizzando la
matrice di trasformazione , per ricavare partendo da .
Algoritmo CLIK del 2° ordine
Algoritmo CLIK del 2° ordine• Utilizzato per compensare l’errore di integrazione in Eulero in avanti.• Due costanti di retroazione, e scelte uguali per dare un tempo di
assestamento di 50 ms senza oscillazioni, ovvero = 100 e = 1• Proiezione nel nullo per allontanarsi da ostacoli (supposti fermi e
cilindrici) e dai limiti di giunti
• e sono stati fissati a 100 e 10 dopo prove sperimentali
Traiettoria - 1• Traiettoria per operazione di pick and place• Divisa in due sottotraiettorie:• Dalla posizione di calibrazione alla posizione di pick• Dalla posizione di pick alla posizione di place
• Percorso calcolato con ascissa curvilinea con archi di circonferenza
• Punto di via calcolato per passare lontano dagli ostacoli
Traiettoria - 2
Vista laterale
Vista dall’alto
Traiettoria - 3• Per l’ascissa curvilinea è stata scelto un profilo trapezoidale con due secondi in aggiunta, per simulare le operazioni di pick e place• e sono stati calcolati in funzione di L, lunghezza della curva.
Verifica - 1• Partendo dalla posizione di calibrazione l’errore è:
Verifica - 2• Partendo dalla posizione l’errore è:
Controllo giunti• L’obiettivo, data una traiettoria nello spazio giunti, è quello di far inseguire la traiettoria ai giunti.• Si usa il modello dinamico del manipolatore:
• Sono stati ignorati contributi di attrito statico e forze esterne agenti sul sistema.
Simulazioni• Ai fini del test, sono state utilizzate due traiettorie.• Traiettoria costante: si tenta di imporre, per 5 s ad un passo di
campionamento T=0.001 s, partendo dalla configurazione di calibrazione • Traiettoria generata nel secondo homework.
Controllo PD + gravità -1 • La strategia di controllo PD + gravità prevede di generare le coppie ai
giunti come composizione di tre contributi:• Contributo proporzionale alla differenza tra posizione dei giunti desiderata e
posizione reale.• Contributo proporzionale alla differenza tra velocità dei giunti desiderata e
velocità reale• Contributo pari al contributo gravitazionale del modello dinamico.
• La strategia converge senza errori per traiettorie costanti.
Controllo PD + gravità - 2
Controllo PD + gravità - 3• La simulazione è stata effettuata variando i parametri e , impostando
entrambe le matrici come matrici diagonali con un valore fisso sulla diagonale principale e variando questo valore tra 10, 100 e 200, scelti in maniera euristica.
Controllo PD + gravità - Simulazioni
Controllo a dinamica inversa - 1• La strategia a Dinamica Inversa prevede di compensare la dinamica
del manipolatore in toto.
• Questo permette di ottenere l’equazione dell’errore avendo posto .• Questo porta ad un errore che converge a zero, considerando che le
matrici delle costanti di retroazione sono definite positive.
Controllo a dinamica inversa - 2
Controllo a dinamica inversa - 3• Costanti di retroazione e come matrici diagonali basate su i due
parametri che caratterizzano gli autovalori del sistema, e
• è posto pari a 10 e prima pari a 1, per eliminare le oscillazioni, e poi pari a 0.3, tenendo quindi in conto le oscillazioni nell’errore, per la traiettoria costante.• Per la traiettoria non costante si è posto pari a 1.
Controllo a dinamica inversa - 4
Controllo a dinamica inversa - 5