Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

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

description

Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi. Candidato: Gabriele Pira Relatori:Prof. Lorenzo Pollini Prof. Mario Innocenti Ing. Giuseppe D’Urzo. Robot antropomorfi?. - PowerPoint PPT Presentation

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

Page 1: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

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 PolliniProf. Mario InnocentiProf. Mario InnocentiIng. Giuseppe D’UrzoIng. Giuseppe D’Urzo

Page 2: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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 utilizzarli La loro flessibilità permette di utilizzarli per i compiti più disparati. Dalla per i compiti più disparati. Dalla manipolazione di oggetti, al supporto manipolazione di oggetti, al supporto per attrezzature, alle lavorazioni tipiche per attrezzature, alle lavorazioni tipiche delle macchine utensili come fresatura delle macchine utensili come fresatura e taglio.e taglio.

Page 3: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

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

4

ApplicazioniApplicazioniTaglio di vetroresina

Operazione di fresatura

Page 5: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

-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 un L’operatore muove il robot su di un percorso che viene memorizzato. Al percorso che viene memorizzato. Al termine il robot è in grado di termine il robot è in grado di eseguire il percorso acquisito.eseguire il percorso 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

-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

-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 elevato;Precisione e numero di posizioni elevato;

Svantaggi:Svantaggi: È necessaria una verifica delle traiettorie È necessaria una verifica delle traiettorie

a posteriori. O direttamente con il robot a posteriori. O direttamente con il robot o con strumenti di simulazione.o con strumenti di simulazione.

Page 9: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

-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

-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 giunti;Comandi di movimentazione nei 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

-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

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

Page 14: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

-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 per Come in ogni linguaggio, anche per i linguaggi robot sono presenti 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 non possiedono i costrutti elencati e non tutti con le stesse modalità.tutti con le stesse modalità.

Page 16: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

-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

-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

KUKAAPT-

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

-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 di robot che possiede almeno sei gradi di libertà più gli eventuali assi esterni.libertà più gli eventuali assi 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

-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

-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, ext GOTO / 0.0, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext

0.00.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.0con “varX” variabile numerica.con “varX” variabile numerica.

Page 22: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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

-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

-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ù il coordinate cartesiane di un punto più il valore degli eventuali assi esternivalore 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 utilizzate Le variabili possono essere utilizzate come parametri dei comandi di come parametri dei comandi di movimento.movimento.

Page 25: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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*2GOTO / v1, v2, 0.0GOTO / v1, v2, 0.0

Page 26: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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 da stata creata una lista di comandi da eseguire.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

-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

-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

-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 Notation” Il nome deriva dalla “Polish Notation”

inventata dal matematico polacco Jan inventata dal matematico polacco Jan Łukasiewicz e si basa sull’utilizzo di Łukasiewicz e si basa sull’utilizzo di uno stack per contenere i risultati uno stack per contenere i risultati parziali dell’espressione.parziali 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

-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 permettendo macchina in APT-esteso permettendo all’interprete di elaborare più all’interprete di elaborare più linguaggi.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 possono diversità tra i linguaggi robot possono rendere difficile o impossibile la rendere difficile o impossibile la traduzione completa degli stessi.traduzione completa degli stessi.

Page 31: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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, MOTOMAN comandi dei linguaggi KUKA, MOTOMAN e ABB.e ABB.

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

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

Page 32: Definizione e implementazione di un interprete multilinguaggio per robot antropomorfi

-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 sono:Possibili sviluppi futuri di questo lavoro 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 interpretabili Ampliamento del numero di comandi interpretabili come la gestione della postura del robot, del come la gestione della postura del robot, del sistema di riferimento corrente e l’introduzione di sistema di riferimento corrente e l’introduzione di variabili di sistema.variabili di sistema.

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