robotic arm simulation
TRANSCRIPT
![Page 1: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/1.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/2.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/3.jpg)
Strumenti utilizzati• Matlab versione r2015a per lo sviluppo delle procedure.• Ambiente di simulazione V-REP.
![Page 4: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/4.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/5.jpg)
Utilizzando le convenzioni di Denavit-Hartenberg, sono state individuate le terne solidali ai diversi giunti
![Page 6: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/6.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/7.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/8.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/9.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/10.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/11.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/12.jpg)
Algoritmo CLIK del 2° ordine
![Page 13: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/13.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/14.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/15.jpg)
Traiettoria - 2
Vista laterale
Vista dall’alto
![Page 16: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/16.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/17.jpg)
Verifica - 1• Partendo dalla posizione di calibrazione l’errore è:
![Page 18: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/18.jpg)
Verifica - 2• Partendo dalla posizione l’errore è:
![Page 19: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/19.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/20.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/21.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/22.jpg)
Controllo PD + gravità - 2
![Page 23: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/23.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/24.jpg)
Controllo PD + gravità - Simulazioni
![Page 25: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/25.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/26.jpg)
Controllo a dinamica inversa - 2
![Page 27: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/27.jpg)
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](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/28.jpg)
Controllo a dinamica inversa - 4
![Page 29: Robotic Arm Simulation](https://reader036.vdocumenti.com/reader036/viewer/2022081421/587a6f641a28ab8a2a8b76db/html5/thumbnails/29.jpg)
Controllo a dinamica inversa - 5