Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato:...

32
Definizione e Definizione e implementazione di un implementazione di un interprete multilinguaggio interprete multilinguaggio per robot antropomorfi per robot antropomorfi Candidato: Candidato: Gabriele Pira Gabriele Pira Relatori: Relatori: Prof. Lorenzo Pollini Prof. Lorenzo Pollini Prof. Mario Innocenti Prof. Mario Innocenti Ing. Giuseppe D’Urzo Ing. Giuseppe D’Urzo

Transcript of Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato:...

Page 1: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

Definizione e Definizione e implementazione di un implementazione di un

interprete multilinguaggio interprete multilinguaggio per robot antropomorfiper robot antropomorfi

Candidato: Candidato: Gabriele PiraGabriele Pira

Relatori:Relatori: Prof. Lorenzo PolliniProf. Lorenzo Pollini

Prof. Mario InnocentiProf. Mario Innocenti

Ing. Giuseppe D’UrzoIng. Giuseppe D’Urzo

Page 2: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

2

Robot antropomorfi?Robot antropomorfi? Un braccio robotico antropomorfo, o Un braccio robotico antropomorfo, o

più semplicemente robot antropomorfo, più semplicemente robot antropomorfo, è un braccio meccanico a sei gradi di è un braccio meccanico a sei gradi di libertà. Il nome antropomorfo si libertà. Il nome antropomorfo si riferisce alla struttura che riprende riferisce alla struttura che riprende quella di un braccio umano.quella di un braccio umano.

La loro flessibilità permette di La loro flessibilità permette di utilizzarli per i compiti più disparati. utilizzarli per i compiti più disparati. Dalla manipolazione di oggetti, al Dalla manipolazione di oggetti, al supporto per attrezzature, alle supporto per attrezzature, alle lavorazioni tipiche delle macchine lavorazioni tipiche delle macchine utensili come fresatura e taglio.utensili come fresatura e taglio.

Page 3: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

3

Robot antropomorfiRobot antropomorfi

Page 4: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

4

ApplicazioniApplicazioni

Taglio di vetroresina

Operazione di fresatura

Page 5: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

5

ProgrammazioneProgrammazione

Al pari delle macchine utensili, i Al pari delle macchine utensili, i robot antropomorfi devono essere robot antropomorfi devono essere programmati. Ovvero deve essere programmati. Ovvero deve essere creato un programma che contiene creato un programma che contiene tutti i comandi che il robot dovrà tutti i comandi che il robot dovrà eseguire.eseguire.

Esistono due modalità di Esistono due modalità di programmazione per robot programmazione per robot antropomorfi:antropomorfi: Autoapprendimento o teaching;Autoapprendimento o teaching; Fuorilinea o off-lineFuorilinea o off-line

Page 6: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

6

Programmazione in Programmazione in AutoapprendimentoAutoapprendimento

L’operatore muove il robot su di L’operatore muove il robot su di un percorso che viene un percorso che viene memorizzato. Al termine il robot è memorizzato. Al termine il robot è in grado di eseguire il percorso in grado di eseguire il percorso acquisito.acquisito.

Vantaggi:Vantaggi: Semplicità;Semplicità; Controllo immediato delle traiettorie Controllo immediato delle traiettorie

per evitare collisioni e singolarità;per evitare collisioni e singolarità; Svantaggi:Svantaggi:

Scarsa precisione;Scarsa precisione; Numero di posizioni limitato;Numero di posizioni limitato;

Page 7: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

7

Programmazione in Programmazione in AutoapprendimentoAutoapprendimento

Page 8: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

8

Programmazione Programmazione fuorilineafuorilinea

Il programma viene creato lontano Il programma viene creato lontano dal robot con l’ausilio di programmi dal robot con l’ausilio di programmi CAD-CAM, simulatori e CAD-CAM, simulatori e postProcessor.postProcessor.

Vantaggi:Vantaggi: Precisione e numero di posizioni Precisione e numero di posizioni

elevato;elevato; Svantaggi:Svantaggi:

È necessaria una verifica delle È necessaria una verifica delle traiettorie a posteriori. O direttamente traiettorie a posteriori. O direttamente con il robot o con strumenti di con il robot o con strumenti di simulazione.simulazione.

Page 9: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

9

Simulatori e Simulatori e PostProcessorPostProcessor In commercio esistono software In commercio esistono software

per la simulazione di programmi per la simulazione di programmi robot preesistenti e software per robot preesistenti e software per la creazione di programmi robot la creazione di programmi robot a partire da percorsi CAM:a partire da percorsi CAM: I primi sono Simulatori per robot I primi sono Simulatori per robot

antropomorfi;antropomorfi; I secondi sono postProcessor per I secondi sono postProcessor per

robot antropomorfi;robot antropomorfi;

Page 10: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

10

Scopo del lavoro di tesiScopo del lavoro di tesi

Realizzazione di un interprete per Realizzazione di un interprete per linguaggi robot integrato in un linguaggi robot integrato in un postProcessor. Il postProcessor in postProcessor. Il postProcessor in questione è “ROBOmove” questione è “ROBOmove” sviluppato da “Qdesign S.R.L.”.sviluppato da “Qdesign S.R.L.”.

Definizione di un nuovo Definizione di un nuovo linguaggio robot: l’APT-esteso linguaggio robot: l’APT-esteso derivato dal linguaggio per derivato dal linguaggio per macchine a controllo numerico macchine a controllo numerico APT.APT.

Page 11: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

11

Studio preliminareStudio preliminare

La realizzazione dell’interprete è La realizzazione dell’interprete è stata preceduta da uno studio stata preceduta da uno studio preliminare sui linguaggi robot preliminare sui linguaggi robot KUKA, MOTOMAN e ABB. KUKA, MOTOMAN e ABB.

Lo studio di questi linguaggi si è Lo studio di questi linguaggi si è concentrato su:concentrato su: Comandi di movimentazione lineare;Comandi di movimentazione lineare; Comandi di movimentazione nei Comandi di movimentazione nei

giunti;giunti; Costrutti per il controllo del flusso;Costrutti per il controllo del flusso; Espressioni matematiche e variabili;Espressioni matematiche e variabili;

Page 12: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

12

Comando di Comando di movimentazione linearemovimentazione lineare

È il comando più diffuso in un È il comando più diffuso in un programma robot. I parametri di programma robot. I parametri di questo comando sono la questo comando sono la destinazione del movimento destinazione del movimento compresa l’orientazione del TCP ed compresa l’orientazione del TCP ed il valore di eventuali assi esterni. Il il valore di eventuali assi esterni. Il TCP si muove linearmente dalla TCP si muove linearmente dalla posizione attuale alla destinazione. posizione attuale alla destinazione. Si incorre nel rischio di Si incorre nel rischio di attraversare una singolarità ma la attraversare una singolarità ma la traiettoria è prevedibile.traiettoria è prevedibile.

Page 13: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

13

Comando di Comando di movimentazione nei giuntimovimentazione nei giunti

Il robot si muove dalla Il robot si muove dalla configurazione attuale, alla configurazione attuale, alla configurazione dei giunti della configurazione dei giunti della destinazione. La destinazione può destinazione. La destinazione può essere espressa sia nello spazio dei essere espressa sia nello spazio dei giunti che in coordinate cartesiane. giunti che in coordinate cartesiane. Questo tipo di movimento non è Questo tipo di movimento non è affetto dal rischio di singolarità ma affetto dal rischio di singolarità ma la traiettoria del TCP non è la traiettoria del TCP non è prevedibile con il conseguente prevedibile con il conseguente rischio di collisioni con parti della rischio di collisioni con parti della cella.cella.

Page 14: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

14

Comando di Comando di movimentazione lineare e movimentazione lineare e

nei giuntinei giunti

Page 15: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

15

Costrutti per il controllo Costrutti per il controllo del flussodel flusso

Come in ogni linguaggio, anche Come in ogni linguaggio, anche per i linguaggi robot sono presenti per i linguaggi robot sono presenti costrutti per il controllo del flusso costrutti per il controllo del flusso di esecuzione. Lo studio si è di esecuzione. Lo studio si è concentrato su:concentrato su: IF THEN ELSEIF THEN ELSE Ciclo FOR e ciclo WHILECiclo FOR e ciclo WHILE Chiamata a sottoprogrammaChiamata a sottoprogramma

Non tutti i linguaggi analizzati Non tutti i linguaggi analizzati possiedono i costrutti elencati e possiedono i costrutti elencati e non tutti con le stesse modalità.non tutti con le stesse modalità.

Page 16: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

16

VariabiliVariabili Le variabili in un linguaggio robot Le variabili in un linguaggio robot

vengono utilizzate sia per vengono utilizzate sia per l’elaborazione dei dati, sia per l’elaborazione dei dati, sia per contenere la destinazione dei contenere la destinazione dei comandi di movimento.comandi di movimento.

Esempio in linguaggio APT-estesoEsempio in linguaggio APT-esteso VAR ROBOPOS dest =X, Y, Z, rpy Roll, VAR ROBOPOS dest =X, Y, Z, rpy Roll,

Pitch, YawPitch, Yaw GOTO / destGOTO / dest

In questo esempio viene creata una In questo esempio viene creata una variabile che contiene le coordinate variabile che contiene le coordinate di un comando di movimentazione.di un comando di movimentazione.

Page 17: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

17

Interprete Interprete multilinguaggiomultilinguaggio

Per implementare l’interprete Per implementare l’interprete multilinguaggio, è stato multilinguaggio, è stato realizzato un unico interprete in realizzato un unico interprete in grado di elaborare un solo grado di elaborare un solo linguaggio, l’APT-esteso che linguaggio, l’APT-esteso che funge da buffer. Con dei funge da buffer. Con dei software di traduzione i vari software di traduzione i vari linguaggi robot vengono tradotti linguaggi robot vengono tradotti in APT-esteso.in APT-esteso.

Page 18: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

18

ABB

MOTOMAN

KUKA

APT-esteso

Dallo studio delle parti comuni a questi linguaggi, è stato definito il linguaggio APT-esteso.

Interprete Interprete multilinguaggiomultilinguaggio

Page 19: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

19

Linguaggio per macchine a Linguaggio per macchine a controllo numerico APTcontrollo numerico APT

Il linguaggio APT standard è un Il linguaggio APT standard è un formato CAM e come tale risulta formato CAM e come tale risulta incompleto per essere utilizzato come incompleto per essere utilizzato come linguaggio robot. L’APT può gestire linguaggio robot. L’APT può gestire fino a cinque gradi di libertà (CAM e fino a cinque gradi di libertà (CAM e macchine a cinque assi) che sono macchine a cinque assi) che sono insufficienti per programmare un insufficienti per programmare un robot che possiede almeno sei gradi robot che possiede almeno sei gradi di libertà più gli eventuali assi di libertà più gli eventuali assi esterni.esterni. GOTO / X, Y, Z, Zx, Zy, ZzGOTO / X, Y, Z, Zx, Zy, Zz Coordinate XYZ più coseni direttori Coordinate XYZ più coseni direttori

dell’utensile o ZTooldell’utensile o ZTool

Page 20: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

20

Linguaggio APT-estesoLinguaggio APT-esteso Per ovviare alle carenze dell’APT Per ovviare alle carenze dell’APT

standard, è stato stato necessario standard, è stato stato necessario definire un nuovo linguaggio che definire un nuovo linguaggio che possedesse le caratteristiche basilari possedesse le caratteristiche basilari dei linguaggi robot analizzati: l’APT-dei linguaggi robot analizzati: l’APT-esteso.esteso.

Le caratteristiche introdotte nell’APT-Le caratteristiche introdotte nell’APT-esteso sono:esteso sono: Estensione della sintassi del comando di Estensione della sintassi del comando di

movimentazione lineare GOTOmovimentazione lineare GOTO Comandi per la movimentazione nei giuntiComandi per la movimentazione nei giunti Costrutti per il controllo del flussoCostrutti per il controllo del flusso Implementazione delle variabiliImplementazione delle variabili

Page 21: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

21

APT-esteso:APT-esteso:Comando di movimento Comando di movimento

linearelineare Il comando è “GOTO” come nel caso Il comando è “GOTO” come nel caso

di APT-standard, ma i parametri di APT-standard, ma i parametri permettono di specificare permettono di specificare completamente l’orientazione del completamente l’orientazione del TCP e il valore di eventuali assi TCP e il valore di eventuali assi esterni. Inoltre è possibile utilizzare esterni. Inoltre è possibile utilizzare variabili come parametri.variabili come parametri. GOTO / 0.0, 0.0, 0.0, rpy 0.0, 0.0, 0.0, GOTO / 0.0, 0.0, 0.0, rpy 0.0, 0.0, 0.0,

ext 0.0ext 0.0 GOTO /varX, 0.0, 0.0, rpy 0.0, 0.0, 0.0, GOTO /varX, 0.0, 0.0, rpy 0.0, 0.0, 0.0,

ext 0.0ext 0.0

con “varX” variabile numerica.con “varX” variabile numerica.

Page 22: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

22

APT-esteso: APT-esteso: Comando di movimento nei Comando di movimento nei

giuntigiunti Esistono due comandi di Esistono due comandi di

movimento nei giunti:movimento nei giunti: GOTOJ: movimento nei giunti con GOTOJ: movimento nei giunti con

coordinate della destinazione coordinate della destinazione espresse nello spazio dei giunti.espresse nello spazio dei giunti.

GOTOJ / A1, A2, A3, A4, A5, A6, E1…E6GOTOJ / A1, A2, A3, A4, A5, A6, E1…E6 GOTOJC: movimento nei giunti con GOTOJC: movimento nei giunti con

coordinate espresse in cartesiano.coordinate espresse in cartesiano. GOTOJC / X, Y, Z, rpy Roll, Pitch, YawGOTOJC / X, Y, Z, rpy Roll, Pitch, Yaw

Page 23: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

23

APT-esteso: APT-esteso: Comandi per controllo del Comandi per controllo del

flussoflusso Nel linguaggio APT-esteso sono Nel linguaggio APT-esteso sono

stati implementati anche i più stati implementati anche i più diffusi costrutti per il controllo diffusi costrutti per il controllo del flusso di esecuzione:del flusso di esecuzione: Costrutto IF THEN ELSECostrutto IF THEN ELSE Ciclo FORCiclo FOR Ciclo WHILECiclo WHILE Chiamata a subroutineChiamata a subroutine Definizione di una subroutineDefinizione di una subroutine

Page 24: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

24

APT-esteso: APT-esteso: VariabiliVariabili

I tipi di variabili implementati in I tipi di variabili implementati in APT-esteso sono:APT-esteso sono: REAL: variabile realeREAL: variabile reale INT: variabile interaINT: variabile intera ROBOPOS: struttura che contiene le ROBOPOS: struttura che contiene le

coordinate cartesiane di un punto più coordinate cartesiane di un punto più il valore degli eventuali assi esterniil valore degli eventuali assi esterni

ROBOAXIS: struttura che contiene le ROBOAXIS: struttura che contiene le coordinate nello spazio dei giunti di un coordinate nello spazio dei giunti di un punto.punto.

Le variabili possono essere Le variabili possono essere utilizzate come parametri dei utilizzate come parametri dei comandi di movimento.comandi di movimento.

Page 25: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

25

Interprete APT-esteso:Interprete APT-esteso:Allocazione delle variabiliAllocazione delle variabili

Creazione delle variabili in fase Creazione delle variabili in fase di parsing del codice.di parsing del codice.

Allocazione in stack lineari locali Allocazione in stack lineari locali al sottoprogramma corrente.al sottoprogramma corrente.

Inizializzazione delle variabili Inizializzazione delle variabili solo in fase di esecuzione del solo in fase di esecuzione del codice.codice. VAR REAL v1=10.0VAR REAL v1=10.0

VAR REAL v2=v1*2VAR REAL v2=v1*2

GOTO / v1, v2, 0.0GOTO / v1, v2, 0.0

Page 26: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

26

Interprete APT-esteso:Interprete APT-esteso:Gestione dell’Instruction Gestione dell’Instruction

PointerPointer In seguito alla fase di parsing è In seguito alla fase di parsing è

stata creata una lista di comandi stata creata una lista di comandi da eseguire.da eseguire.

L’IP viene incrementato dopo L’IP viene incrementato dopo l’esecuzione di ogni comando.l’esecuzione di ogni comando.

I comandi di controllo del flusso di I comandi di controllo del flusso di esecuzione modificano il valore esecuzione modificano il valore dell’IP con un valore noto al dell’IP con un valore noto al comando stesso.comando stesso.

Il nuovo valore può:Il nuovo valore può: Appartenere alla routine correnteAppartenere alla routine corrente Appartenere ad un’altra routineAppartenere ad un’altra routine

Page 27: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

27

Interprete APT-esteso:Interprete APT-esteso:Gestione dell’Instruction Gestione dell’Instruction

PointerPointer Se il nuovo valore dell’IP appartiene Se il nuovo valore dell’IP appartiene

alla routine corrente, l’esecuzione si alla routine corrente, l’esecuzione si sposta e riprende da questo valore. sposta e riprende da questo valore. Non vengono eseguite operazioni Non vengono eseguite operazioni aggiuntive.aggiuntive.

Se il nuovo valore dell’IP non Se il nuovo valore dell’IP non appartiene alla routine corrente, il appartiene alla routine corrente, il vecchio valore dell’IP e lo stack di vecchio valore dell’IP e lo stack di variabili locali viene salvato e viene variabili locali viene salvato e viene caricato lo stack delle variabili locali caricato lo stack delle variabili locali alla routine chiamata. Al termine di alla routine chiamata. Al termine di questa viene ripristinato il vecchio questa viene ripristinato il vecchio valore dell’IP e lo stack di variabili valore dell’IP e lo stack di variabili del chiamante.del chiamante.

Page 28: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

28

Risolutore matematicoRisolutore matematico

L’interprete APT-esteso è in grado di L’interprete APT-esteso è in grado di elaborare le più comuni espressioni elaborare le più comuni espressioni matematiche. Il risolutore si basa matematiche. Il risolutore si basa sulla “Reverse Polish Notation” sulla “Reverse Polish Notation” ovvero sulla riscrittura delle ovvero sulla riscrittura delle espressioni matematiche in una espressioni matematiche in una forma diversa dalla forma algebrica forma diversa dalla forma algebrica classica. In questa nuova forma la classica. In questa nuova forma la risoluzione di un’espressione risoluzione di un’espressione richiede meno accessi in memoria richiede meno accessi in memoria rispetto alla forma algebrica.rispetto alla forma algebrica.

Page 29: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

29

Reverse Polish NotationReverse Polish Notation Il nome deriva dalla “Polish Il nome deriva dalla “Polish

Notation” inventata dal matematico Notation” inventata dal matematico polacco Jan Łukasiewicz e si basa polacco Jan Łukasiewicz e si basa sull’utilizzo di uno stack per sull’utilizzo di uno stack per contenere i risultati parziali contenere i risultati parziali dell’espressione.dell’espressione.

L’algoritmo utilizzato per convertire L’algoritmo utilizzato per convertire un’espressione dalla notazione un’espressione dalla notazione algebrica alla RPN è l’algoritmo algebrica alla RPN è l’algoritmo “Shunting Yard” inventato da “Shunting Yard” inventato da Dijkstra.Dijkstra. EsempioEsempio

4+5*2 4 5 2 * +4+5*2 4 5 2 * +

Page 30: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

30

Traduttori per i Traduttori per i linguaggi robotlinguaggi robot I traduttori convertono il codice I traduttori convertono il codice

macchina in APT-esteso macchina in APT-esteso permettendo all’interprete di permettendo all’interprete di elaborare più linguaggi.elaborare più linguaggi.

In questo modo per elaborare un In questo modo per elaborare un nuovo linguaggio robot è sufficiente nuovo linguaggio robot è sufficiente implementare il relativo traduttore.implementare il relativo traduttore.

Il limite di questo metodo è che le Il limite di questo metodo è che le diversità tra i linguaggi robot diversità tra i linguaggi robot possono rendere difficile o possono rendere difficile o impossibile la traduzione completa impossibile la traduzione completa degli stessi.degli stessi.

Page 31: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

31

ConclusioniConclusioni

Gli obiettivi raggiunti con questo Gli obiettivi raggiunti con questo lavoro di tesi sono:lavoro di tesi sono: Implementazione di un interprete multi-Implementazione di un interprete multi-

robot in grado di elaborare i più comuni robot in grado di elaborare i più comuni comandi dei linguaggi KUKA, comandi dei linguaggi KUKA, MOTOMAN e ABB.MOTOMAN e ABB.

Definizione di un nuovo linguaggio Definizione di un nuovo linguaggio robot, l’APT-esteso, che possiede le robot, l’APT-esteso, che possiede le caratteristiche di base dei linguaggi caratteristiche di base dei linguaggi citati.citati.

Integrazione dell’interprete all’interno Integrazione dell’interprete all’interno del postProcessor “ROBOmove” del postProcessor “ROBOmove” sviluppato da “Qdesign S.R.L.”.sviluppato da “Qdesign S.R.L.”.

Page 32: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario.

-Titolo-Introduzione-Programmazione-Scopo del lavoro di tesi-Studio preliminare-Interprete multi-linguaggio-Linguaggio APT-Linguaggio APT-esteso-Interprete APT-esteso-Conclusioni

32

Conclusioni: sviluppi futuri Conclusioni: sviluppi futuri e limitie limiti

Possibili sviluppi futuri di questo lavoro Possibili sviluppi futuri di questo lavoro sono:sono: Ampliamento del numero di linguaggi Ampliamento del numero di linguaggi

interpretabili. Attualmente è in fase di studio il interpretabili. Attualmente è in fase di studio il linguaggio FANUC.linguaggio FANUC.

Ampliamento del numero di comandi Ampliamento del numero di comandi interpretabili come la gestione della postura del interpretabili come la gestione della postura del robot, del sistema di riferimento corrente e robot, del sistema di riferimento corrente e l’introduzione di variabili di sistema.l’introduzione di variabili di sistema.

Il limite maggiore di questo lavoro è la Il limite maggiore di questo lavoro è la diversità tra i vari linguaggi che può diversità tra i vari linguaggi che può rendere molto complesso o addirittura rendere molto complesso o addirittura impossibile la completa traduzione di questi impossibile la completa traduzione di questi e quindi l’aggiunta di nuovi linguaggi e e quindi l’aggiunta di nuovi linguaggi e comandi interpretabili.comandi interpretabili.