robotic arm simulation

29
Università degli studi di Salerno Corso di Laurea Magistrale in Ingegneria Informatica Anno 2015/2016 Corso di Automazione e Robotica Presentazione progetto Robotica Gruppo: Di Gruttola Carmine – Esposito Emiddio

Upload: carmine-di-gruttola

Post on 15-Apr-2017

194 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: Robotic Arm Simulation

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

Page 2: Robotic Arm Simulation

Outline1. Analisi del manipolatore2. Cinematica diretta del manipolatore3. Cinematica differenziale, Inversione cinematica e pianificazione

della traiettoria4. Controllo centralizzato nello spazio giunti

Page 3: Robotic Arm Simulation

Strumenti utilizzati• Matlab versione r2015a per lo sviluppo delle procedure.• Ambiente di simulazione V-REP.

Page 4: Robotic Arm Simulation

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.

Page 5: Robotic Arm Simulation

Utilizzando le convenzioni di Denavit-Hartenberg, sono state individuate le terne solidali ai diversi giunti

Emiddio Esposito
Page 6: Robotic Arm Simulation

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

Page 7: Robotic Arm Simulation

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)

Page 8: Robotic Arm Simulation

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)

Page 9: Robotic Arm Simulation

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

Page 10: Robotic Arm Simulation

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)

Page 11: Robotic Arm Simulation

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 .

Page 12: Robotic Arm Simulation

Algoritmo CLIK del 2° ordine

Page 13: Robotic Arm Simulation

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

Page 14: Robotic Arm Simulation

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

Page 15: Robotic Arm Simulation

Traiettoria - 2

Vista laterale

Vista dall’alto

Page 16: Robotic Arm Simulation

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.

Page 17: Robotic Arm Simulation

Verifica - 1• Partendo dalla posizione di calibrazione l’errore è:

Page 18: Robotic Arm Simulation

Verifica - 2• Partendo dalla posizione l’errore è:

Page 19: Robotic Arm Simulation

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.

Page 20: Robotic Arm Simulation

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.

Page 21: Robotic Arm Simulation

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.

Page 22: Robotic Arm Simulation

Controllo PD + gravità - 2

Page 23: Robotic Arm Simulation

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.

Page 24: Robotic Arm Simulation

Controllo PD + gravità - Simulazioni

Page 25: Robotic Arm Simulation

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.

Page 26: Robotic Arm Simulation

Controllo a dinamica inversa - 2

Page 27: Robotic Arm Simulation

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.

Page 28: Robotic Arm Simulation

Controllo a dinamica inversa - 4

Page 29: Robotic Arm Simulation

Controllo a dinamica inversa - 5