SlideShare ist ein Scribd-Unternehmen logo
1 von 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
Outline
1. Analisi del manipolatore
2. Cinematica diretta del manipolatore
3. Cinematica differenziale, Inversione cinematica e pianificazione
della traiettoria
4. 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 𝜶 d 𝜽
𝑇𝑒𝑟𝑛𝑎 0 → 𝑇𝑒𝑟𝑛𝑎 1 0
𝜋
2
𝑞1
𝜋
2
𝑇𝑒𝑟𝑛𝑎 1 → 𝑇𝑒𝑟𝑛𝑎 2 0
𝜋
2
𝑞2
𝜋
2
𝑇𝑒𝑟𝑛𝑎 2 → 𝑇𝑒𝑟𝑛𝑎 3 0.15 −
𝜋
2
0.45 𝑞3
𝑇𝑒𝑟𝑛𝑎 3 → 𝑇𝑒𝑟𝑛𝑎 4 0.59 0 0 𝑞4
𝑇𝑒𝑟𝑛𝑎 4 → 𝑇𝑒𝑟𝑛𝑎 5 0.13 −
𝜋
2
0 𝑞5
𝑇𝑒𝑟𝑛𝑎 5 → 𝑇𝑒𝑟𝑛𝑎 6 0
𝜋
2
0.64707 𝑞6
𝑇𝑒𝑟𝑛𝑎 6 → 𝑇𝑒𝑟𝑛𝑎 7 0 −
𝜋
2
0 𝑞7
𝑇𝑒𝑟𝑛𝑎 7 → 𝑇𝑒𝑟𝑛𝑎 8 0 0 0.095 𝑞8
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 𝐴0
𝑏
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,−
𝜋
2
,0,0,0,0]T e i valori sono congruenti.
• Un’ulteriore prova è stata fatta in una posizione casuale
[5,5,0,0,−
𝜋
2
,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 ω = T Φ Φ, 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
𝑞0 = 𝑞0 − 𝑞
𝑞0𝑖 = −𝑘1
𝑞 𝑖−𝑞 𝑚
𝑞 𝑖𝑀− 𝑞 𝑖𝑚
𝑞0𝑖 = 2𝑘2 𝑞𝑖 − 𝑜𝑖
• 𝑘1 e 𝑘2 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
𝛾𝑝 = 𝑐 + 𝑅 ∗
𝑟 ∗ cos(
𝑠
𝑟
)
𝑟 ∗ sin(
𝑠
𝑟
)
0
𝛾𝑓 = 𝑓0 + 𝑠 ∗
𝑓 𝑓−𝑓0
𝐿
• 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
• 𝑠(𝑡) =
𝑎 𝑚𝑎𝑥 ∗
𝑡2
2
𝑐𝑜𝑛 𝑡 < 𝑡 𝑐
𝑣 𝑚𝑎𝑥 ∗ 𝑡 −
𝑣 𝑚𝑎𝑥
2
2∗𝑎 𝑚𝑎𝑥
𝑐𝑜𝑛 𝑡 𝑐 < 𝑡 < 𝑡𝑓 − 𝑡 𝑐
−𝑎 𝑚𝑎𝑥 ∗
𝑡−𝑡 𝑓
2
2
+ 𝑣 𝑚𝑎𝑥 ∗ 𝑡𝑓 −
𝑣 𝑚𝑎𝑥
2
𝑎 𝑚𝑎𝑥
𝑐𝑜𝑛 𝑡𝑓 − 𝑡 𝑐 < 𝑡 < 𝑡𝑓
𝑣 𝑚𝑎𝑥 𝑡𝑓 −
𝑣 𝑚𝑎𝑥
2
𝑎 𝑚𝑎𝑥
, 𝑡𝑓 < 𝑡 < 𝑡𝑓 + 2
• 𝑡𝑓 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 𝑞1 = [0.5; 0.5; 0; −
𝑝𝑖
2
; 0 ; 0.1; 1.2; 0.9]
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, 𝑞 =
0.5 0.5 0 −
𝜋
2
0 0.1 1.2 0.9
𝑇
partendo dalla
configurazione di calibrazione 𝑞0 = 0 0 0 −
𝜋
2
0 0 0 0
𝑇
• 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.
• 𝐾𝑝 = 𝐾 𝑑 =
𝜆 0
0 𝜆
⋯
0 0
0 0
⋮ ⋱ ⋮
0 0
0 0
⋯
𝜆 0
0 𝜆
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 𝑒 + 𝐾 𝑑 𝑒 + 𝐾𝑝 𝑒 =
0 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 𝜔 𝑛.
• 𝐾 𝑝 =
𝜔 𝑛
2
0
0 𝜔 𝑛
2 ⋯
0 0
0 0
⋮ ⋱ ⋮
0 0
0 0
⋯
𝜔 𝑛
2
0
0 𝜔 𝑛
2
𝐾 𝑑 =
2𝜁𝜔 𝑛 0
0 2𝜁𝜔 𝑛
⋯
0 0
0 0
⋮ ⋱ ⋮
0 0
0 0
⋯
2𝜁𝜔 𝑛 0
0 2𝜁𝜔 𝑛
• 𝜔 𝑛 è 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

Weitere ähnliche Inhalte

Andere mochten auch

Optimization of the welding parameters in resistance spot welding
Optimization of the welding parameters in resistance spot weldingOptimization of the welding parameters in resistance spot welding
Optimization of the welding parameters in resistance spot welding
IAEME Publication
 
Spot welding guidelines
Spot welding guidelinesSpot welding guidelines
Spot welding guidelines
Caín Castillo
 
Optimization of resistance spot welding parameters for welding of stainless ...
 Optimization of resistance spot welding parameters for welding of stainless ... Optimization of resistance spot welding parameters for welding of stainless ...
Optimization of resistance spot welding parameters for welding of stainless ...
Alexander Decker
 
Manipulator kinematics
Manipulator kinematicsManipulator kinematics
Manipulator kinematics
Sudhir Reddy
 
ROBOTIC WELDING Presentation to show2
ROBOTIC WELDING Presentation to show2ROBOTIC WELDING Presentation to show2
ROBOTIC WELDING Presentation to show2
Prateek Sood
 
Robotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse KinematicsRobotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse Kinematics
Damian T. Gordon
 
Fundamental of robotic manipulator
Fundamental of robotic manipulatorFundamental of robotic manipulator
Fundamental of robotic manipulator
snkalepvpit
 

Andere mochten auch (19)

Optimization of the welding parameters in resistance spot welding
Optimization of the welding parameters in resistance spot weldingOptimization of the welding parameters in resistance spot welding
Optimization of the welding parameters in resistance spot welding
 
Spot welding guidelines
Spot welding guidelinesSpot welding guidelines
Spot welding guidelines
 
Advanced Modeling & Simulation Techniques for Multibody Robotic Systems
Advanced Modeling & Simulation Techniques for Multibody Robotic SystemsAdvanced Modeling & Simulation Techniques for Multibody Robotic Systems
Advanced Modeling & Simulation Techniques for Multibody Robotic Systems
 
Optimization of resistance spot welding parameters for welding of stainless ...
 Optimization of resistance spot welding parameters for welding of stainless ... Optimization of resistance spot welding parameters for welding of stainless ...
Optimization of resistance spot welding parameters for welding of stainless ...
 
Manipulator kinematics
Manipulator kinematicsManipulator kinematics
Manipulator kinematics
 
Training and Simulation in a More Autonomous and Robotic Future
Training and Simulation in a More Autonomous and Robotic FutureTraining and Simulation in a More Autonomous and Robotic Future
Training and Simulation in a More Autonomous and Robotic Future
 
Spot welding
Spot weldingSpot welding
Spot welding
 
Seminar on welding
Seminar on weldingSeminar on welding
Seminar on welding
 
TALAT Lecture 4500: Resistance Welding
TALAT Lecture 4500: Resistance WeldingTALAT Lecture 4500: Resistance Welding
TALAT Lecture 4500: Resistance Welding
 
ROBOTIC WELDING Presentation to show2
ROBOTIC WELDING Presentation to show2ROBOTIC WELDING Presentation to show2
ROBOTIC WELDING Presentation to show2
 
Welding fixtures
Welding fixturesWelding fixtures
Welding fixtures
 
Robotic welding
Robotic weldingRobotic welding
Robotic welding
 
Jigs & Fixtures
Jigs & FixturesJigs & Fixtures
Jigs & Fixtures
 
Welding Robots
Welding RobotsWelding Robots
Welding Robots
 
Presentation on Automation in Welding
Presentation on Automation in WeldingPresentation on Automation in Welding
Presentation on Automation in Welding
 
Robotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse KinematicsRobotics: Forward and Inverse Kinematics
Robotics: Forward and Inverse Kinematics
 
Lecture 01: Introduction
Lecture 01: IntroductionLecture 01: Introduction
Lecture 01: Introduction
 
Fundamental of robotic manipulator
Fundamental of robotic manipulatorFundamental of robotic manipulator
Fundamental of robotic manipulator
 
DC vs AC spot welding - A comparison
DC vs AC spot welding - A comparisonDC vs AC spot welding - A comparison
DC vs AC spot welding - A comparison
 

Ähnlich wie Robotic Arm Simulation

Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
Massimiliano Leone
 
Relazione Azionamenti elettrici
Relazione Azionamenti elettriciRelazione Azionamenti elettrici
Relazione Azionamenti elettrici
Stefano Manca
 
Nonlin tutto 2009
Nonlin tutto 2009Nonlin tutto 2009
Nonlin tutto 2009
marbonf
 
Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016
Michele Scipioni
 
Introduzione alla configurazione del software di bordo di un multicottero (1)
Introduzione alla configurazione del software di bordo di un multicottero  (1)Introduzione alla configurazione del software di bordo di un multicottero  (1)
Introduzione alla configurazione del software di bordo di un multicottero (1)
Roberto Navoni
 

Ähnlich wie Robotic Arm Simulation (20)

Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
 
Support Vector Machines: concetti ed esempi
Support Vector Machines: concetti ed esempiSupport Vector Machines: concetti ed esempi
Support Vector Machines: concetti ed esempi
 
Sviluppo di strategie di gestione ottimale di reti complesse di distribuzione...
Sviluppo di strategie di gestione ottimale di reti complesse di distribuzione...Sviluppo di strategie di gestione ottimale di reti complesse di distribuzione...
Sviluppo di strategie di gestione ottimale di reti complesse di distribuzione...
 
Pres talia tesi_pdf
Pres talia tesi_pdfPres talia tesi_pdf
Pres talia tesi_pdf
 
Automation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risoltiAutomation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risolti
 
Relazione Azionamenti elettrici
Relazione Azionamenti elettriciRelazione Azionamenti elettrici
Relazione Azionamenti elettrici
 
Invarianza di un politopo
Invarianza di un politopoInvarianza di un politopo
Invarianza di un politopo
 
Strutture Cicliche in C++
Strutture Cicliche in C++Strutture Cicliche in C++
Strutture Cicliche in C++
 
EFFICITY - Sviluppo di strategie di gestione ottimale di reti complesse di di...
EFFICITY - Sviluppo di strategie di gestione ottimale di reti complesse di di...EFFICITY - Sviluppo di strategie di gestione ottimale di reti complesse di di...
EFFICITY - Sviluppo di strategie di gestione ottimale di reti complesse di di...
 
Discussione finale v3
Discussione finale v3Discussione finale v3
Discussione finale v3
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Simulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABSimulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLAB
 
Nonlin tutto 2009
Nonlin tutto 2009Nonlin tutto 2009
Nonlin tutto 2009
 
Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016
 
Metodi di ricostruzione delle immagini in medicina nucleare
Metodi di ricostruzione delle immagini in medicina nucleare Metodi di ricostruzione delle immagini in medicina nucleare
Metodi di ricostruzione delle immagini in medicina nucleare
 
Lez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambienteLez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambiente
 
RILEVAMENTO DELLA POSIZIONE E MANTENIMENTO DELL’EQUILIBRIO DI UNA PALLINA ATT...
RILEVAMENTO DELLA POSIZIONE E MANTENIMENTO DELL’EQUILIBRIO DI UNA PALLINA ATT...RILEVAMENTO DELLA POSIZIONE E MANTENIMENTO DELL’EQUILIBRIO DI UNA PALLINA ATT...
RILEVAMENTO DELLA POSIZIONE E MANTENIMENTO DELL’EQUILIBRIO DI UNA PALLINA ATT...
 
Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)Yielding Robot and Rigid Environment - Contact Force Control (IT)
Yielding Robot and Rigid Environment - Contact Force Control (IT)
 
Introduzione alla configurazione del software di bordo di un multicottero (1)
Introduzione alla configurazione del software di bordo di un multicottero  (1)Introduzione alla configurazione del software di bordo di un multicottero  (1)
Introduzione alla configurazione del software di bordo di un multicottero (1)
 
Introduzione alle Self Driving Car
Introduzione alle Self Driving CarIntroduzione alle Self Driving Car
Introduzione alle Self Driving Car
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO Antonio
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptx
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA Roberto
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptx
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
 
GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI Alessandro
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
 
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
 

Robotic Arm Simulation

  • 1. 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
  • 2. Outline 1. Analisi del manipolatore 2. Cinematica diretta del manipolatore 3. Cinematica differenziale, Inversione cinematica e pianificazione della traiettoria 4. Controllo centralizzato nello spazio giunti
  • 3. Strumenti utilizzati • Matlab versione r2015a per lo sviluppo delle procedure. • Ambiente di simulazione V-REP.
  • 4. 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.
  • 5. Utilizzando le convenzioni di Denavit-Hartenberg, sono state individuate le terne solidali ai diversi giunti
  • 6. 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 𝜶 d 𝜽 𝑇𝑒𝑟𝑛𝑎 0 → 𝑇𝑒𝑟𝑛𝑎 1 0 𝜋 2 𝑞1 𝜋 2 𝑇𝑒𝑟𝑛𝑎 1 → 𝑇𝑒𝑟𝑛𝑎 2 0 𝜋 2 𝑞2 𝜋 2 𝑇𝑒𝑟𝑛𝑎 2 → 𝑇𝑒𝑟𝑛𝑎 3 0.15 − 𝜋 2 0.45 𝑞3 𝑇𝑒𝑟𝑛𝑎 3 → 𝑇𝑒𝑟𝑛𝑎 4 0.59 0 0 𝑞4 𝑇𝑒𝑟𝑛𝑎 4 → 𝑇𝑒𝑟𝑛𝑎 5 0.13 − 𝜋 2 0 𝑞5 𝑇𝑒𝑟𝑛𝑎 5 → 𝑇𝑒𝑟𝑛𝑎 6 0 𝜋 2 0.64707 𝑞6 𝑇𝑒𝑟𝑛𝑎 6 → 𝑇𝑒𝑟𝑛𝑎 7 0 − 𝜋 2 0 𝑞7 𝑇𝑒𝑟𝑛𝑎 7 → 𝑇𝑒𝑟𝑛𝑎 8 0 0 0.095 𝑞8
  • 7. 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 𝐴0 𝑏 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)
  • 8. 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)
  • 9. 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,− 𝜋 2 ,0,0,0,0]T e i valori sono congruenti. • Un’ulteriore prova è stata fatta in una posizione casuale [5,5,0,0,− 𝜋 2 ,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
  • 10. 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)
  • 11. 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 ω = T Φ Φ, per ricavare Φ partendo da ω.
  • 12. Algoritmo CLIK del 2° ordine
  • 13. 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 𝑞0 = 𝑞0 − 𝑞 𝑞0𝑖 = −𝑘1 𝑞 𝑖−𝑞 𝑚 𝑞 𝑖𝑀− 𝑞 𝑖𝑚 𝑞0𝑖 = 2𝑘2 𝑞𝑖 − 𝑜𝑖 • 𝑘1 e 𝑘2 sono stati fissati a 100 e 10 dopo prove sperimentali
  • 14. 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 𝛾𝑝 = 𝑐 + 𝑅 ∗ 𝑟 ∗ cos( 𝑠 𝑟 ) 𝑟 ∗ sin( 𝑠 𝑟 ) 0 𝛾𝑓 = 𝑓0 + 𝑠 ∗ 𝑓 𝑓−𝑓0 𝐿 • Punto di via calcolato per passare lontano dagli ostacoli
  • 15. Traiettoria - 2 Vista laterale Vista dall’alto
  • 16. Traiettoria - 3 • Per l’ascissa curvilinea è stata scelto un profilo trapezoidale con due secondi in aggiunta, per simulare le operazioni di pick e place • 𝑠(𝑡) = 𝑎 𝑚𝑎𝑥 ∗ 𝑡2 2 𝑐𝑜𝑛 𝑡 < 𝑡 𝑐 𝑣 𝑚𝑎𝑥 ∗ 𝑡 − 𝑣 𝑚𝑎𝑥 2 2∗𝑎 𝑚𝑎𝑥 𝑐𝑜𝑛 𝑡 𝑐 < 𝑡 < 𝑡𝑓 − 𝑡 𝑐 −𝑎 𝑚𝑎𝑥 ∗ 𝑡−𝑡 𝑓 2 2 + 𝑣 𝑚𝑎𝑥 ∗ 𝑡𝑓 − 𝑣 𝑚𝑎𝑥 2 𝑎 𝑚𝑎𝑥 𝑐𝑜𝑛 𝑡𝑓 − 𝑡 𝑐 < 𝑡 < 𝑡𝑓 𝑣 𝑚𝑎𝑥 𝑡𝑓 − 𝑣 𝑚𝑎𝑥 2 𝑎 𝑚𝑎𝑥 , 𝑡𝑓 < 𝑡 < 𝑡𝑓 + 2 • 𝑡𝑓 e 𝑣 𝑚𝑎𝑥 sono stati calcolati in funzione di L, lunghezza della curva.
  • 17. Verifica - 1 • Partendo dalla posizione di calibrazione l’errore è:
  • 18. Verifica - 2 • Partendo dalla posizione 𝑞1 = [0.5; 0.5; 0; − 𝑝𝑖 2 ; 0 ; 0.1; 1.2; 0.9] l’errore è:
  • 19. 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.
  • 20. 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, 𝑞 = 0.5 0.5 0 − 𝜋 2 0 0.1 1.2 0.9 𝑇 partendo dalla configurazione di calibrazione 𝑞0 = 0 0 0 − 𝜋 2 0 0 0 0 𝑇 • Traiettoria generata nel secondo homework.
  • 21. 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.
  • 22. Controllo PD + gravità - 2
  • 23. 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. • 𝐾𝑝 = 𝐾 𝑑 = 𝜆 0 0 𝜆 ⋯ 0 0 0 0 ⋮ ⋱ ⋮ 0 0 0 0 ⋯ 𝜆 0 0 𝜆
  • 24. Controllo PD + gravità - Simulazioni
  • 25. 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 𝑒 + 𝐾 𝑑 𝑒 + 𝐾𝑝 𝑒 = 0 avendo posto 𝑒 = 𝑞 𝑑 − 𝑞. • Questo porta ad un errore che converge a zero, considerando che le matrici delle costanti di retroazione sono definite positive.
  • 26. Controllo a dinamica inversa - 2
  • 27. Controllo a dinamica inversa - 3 • Costanti di retroazione 𝐾 𝑝 e 𝐾 𝑑 come matrici diagonali basate su i due parametri che caratterizzano gli autovalori del sistema, 𝜁 e 𝜔 𝑛. • 𝐾 𝑝 = 𝜔 𝑛 2 0 0 𝜔 𝑛 2 ⋯ 0 0 0 0 ⋮ ⋱ ⋮ 0 0 0 0 ⋯ 𝜔 𝑛 2 0 0 𝜔 𝑛 2 𝐾 𝑑 = 2𝜁𝜔 𝑛 0 0 2𝜁𝜔 𝑛 ⋯ 0 0 0 0 ⋮ ⋱ ⋮ 0 0 0 0 ⋯ 2𝜁𝜔 𝑛 0 0 2𝜁𝜔 𝑛 • 𝜔 𝑛 è 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.
  • 28. Controllo a dinamica inversa - 4
  • 29. Controllo a dinamica inversa - 5

Hinweis der Redaktion

  1. 0.05 s è di un ordine di grandezza almeno maggiore del tempo di campionamento e permette di azzerare l’errore senza rischiare di sconfinare nell’instabilità.
  2. All’inizio partiamo in una posizione errata e comunque l’errore poi tende a zero.
  3. Con i valori 10, 100 e 200 sono state fatte delle prove per osservare di quanto l’errore diminuisce.
  4. 10
  5. Wn pari a 10 permette di avere un tempo di assestamento pari a 0.5 secondi perché sono stati tenuti in considerazione dei limiti fisici.
  6. Zita 1
  7. Traiettoria Ci sono i punti angolosi per la traiettoria e ci danno le variazioni. Gli inviluppi diminuiscono.