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

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

ECTS: la conversione dei voti Maria Sticchi Damiani Parte IV Conservatorio di Musica “N. Paganini” Genova, 2 maggio
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Definizione e tipi di implementazione
Linguaggi di programmazione
Generazione di Codice Intermedio
Algoritmi e Programmazione
Massa Laura Mela Enrica
Chiamate a Procedure. Per lesecuzione di una procedura, un programma deve eseguire i seguenti sei passi: mettere i parametri in un posto dove la procedura.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Cammini minimi con sorgente singola
GESTIONE DELLA PRODUZIONE
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Semantiche dei linguaggi di programmazione
Il controllo numerico.
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Funzioni.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
File.
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Gestione delle subroutine
Criticità sui dati (esempio da fare on line)
Struttura dei sistemi operativi (panoramica)
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Unità Didattica 2 I Linguaggi di Programmazione
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Strutture di controllo in C -- Flow Chart --
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Dichiarazioni e tipi predefiniti nel linguaggio C
I File.
Le funzioni.
Espressioni condizionali
Analisi di Immagini e Dati Biologici
Robot RRR con polso sferico
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
CODIFICA Da flow-chart a C++.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Macchine astratte, linguaggi, interpretazione, compilazione
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Unità Didattica 3 Linguaggio C
14 marzo 2002 Avvisi:.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
Linguaggi e modelli computazionali LS Manni Tiziano
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
lun mar mer gio ven SAB DOM FEBBRAIO.
Lezione 7: Esempi di analisi dei sistemi non lineari
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Allievi Elettrici - AA Le funzioni ricorsive in C
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
© Piero Demichelis Tipi strutturati I tipi considerati finora hanno la caratteristica comune di non essere strutturati: ogni elemento è una singola entità.
Concetti Fondamentali sulla Programmazione
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Transcript della presentazione:

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

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 2 Robot antropomorfi? Un braccio robotico antropomorfo, o più semplicemente robot antropomorfo, è un braccio meccanico a sei gradi di libertà. Il nome antropomorfo si riferisce alla struttura che riprende quella di un braccio umano. Un braccio robotico antropomorfo, o più semplicemente robot antropomorfo, è un braccio meccanico a sei gradi di libertà. Il nome antropomorfo si riferisce alla struttura che riprende quella di un braccio umano. La loro flessibilità permette di utilizzarli per i compiti più disparati. Dalla manipolazione di oggetti, al supporto per attrezzature, alle lavorazioni tipiche delle macchine utensili come fresatura e taglio. La loro flessibilità permette di utilizzarli per i compiti più disparati. Dalla manipolazione di oggetti, al supporto per attrezzature, alle lavorazioni tipiche delle macchine utensili come fresatura e taglio.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 3 Robot antropomorfi

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 4 Applicazioni Taglio di vetroresina Operazione di fresatura

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 5 Programmazione Al pari delle macchine utensili, i robot antropomorfi devono essere programmati. Ovvero deve essere creato un programma che contiene tutti i comandi che il robot dovrà eseguire. Al pari delle macchine utensili, i robot antropomorfi devono essere programmati. Ovvero deve essere creato un programma che contiene tutti i comandi che il robot dovrà eseguire. Esistono due modalità di programmazione per robot antropomorfi: Esistono due modalità di programmazione per robot antropomorfi: Autoapprendimento o teaching; Autoapprendimento o teaching; Fuorilinea o off-line Fuorilinea o off-line

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 6 Programmazione in Autoapprendimento Loperatore muove il robot su di un percorso che viene memorizzato. Al termine il robot è in grado di eseguire il percorso acquisito. Loperatore muove il robot su di un percorso che viene memorizzato. Al termine il robot è in grado di eseguire il percorso acquisito. Vantaggi: Vantaggi: Semplicità; Semplicità; Controllo immediato delle traiettorie per evitare collisioni e singolarità; Controllo immediato delle traiettorie per evitare collisioni e singolarità; Svantaggi: Svantaggi: Scarsa precisione; Scarsa precisione; Numero di posizioni limitato; Numero di posizioni limitato;

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 7 Programmazione in Autoapprendimento

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 8 Programmazione fuorilinea Il programma viene creato lontano dal robot con lausilio di programmi CAD- CAM, simulatori e postProcessor. Il programma viene creato lontano dal robot con lausilio di programmi CAD- CAM, simulatori e postProcessor. Vantaggi: Vantaggi: Precisione e numero di posizioni elevato; Precisione e numero di posizioni elevato; Svantaggi: Svantaggi: È necessaria una verifica delle traiettorie a posteriori. O direttamente con il robot o con strumenti di simulazione. È necessaria una verifica delle traiettorie a posteriori. O direttamente con il robot o con strumenti di simulazione.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 9 Simulatori e PostProcessor In commercio esistono software per la simulazione di programmi robot preesistenti e software per la creazione di programmi robot a partire da percorsi CAM: In commercio esistono software per la simulazione di programmi robot preesistenti e software per la creazione di programmi robot a partire da percorsi CAM: I primi sono Simulatori per robot antropomorfi; I primi sono Simulatori per robot antropomorfi; I secondi sono postProcessor per robot antropomorfi; I secondi sono postProcessor per robot antropomorfi;

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 10 Scopo del lavoro di tesi Realizzazione di un interprete per linguaggi robot integrato in un postProcessor. Il postProcessor in questione è ROBOmove sviluppato da Qdesign S.R.L.. Realizzazione di un interprete per linguaggi robot integrato in un postProcessor. Il postProcessor in questione è ROBOmove sviluppato da Qdesign S.R.L.. Definizione di un nuovo linguaggio robot: lAPT-esteso derivato dal linguaggio per macchine a controllo numerico APT. Definizione di un nuovo linguaggio robot: lAPT-esteso derivato dal linguaggio per macchine a controllo numerico APT.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 11 Studio preliminare La realizzazione dellinterprete è stata preceduta da uno studio preliminare sui linguaggi robot KUKA, MOTOMAN e ABB. La realizzazione dellinterprete è stata preceduta da uno studio preliminare sui linguaggi robot KUKA, MOTOMAN e ABB. Lo studio di questi linguaggi si è concentrato su: Lo studio di questi linguaggi si è 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;

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 12 Comando di movimentazione lineare È il comando più diffuso in un programma robot. I parametri di questo comando sono la destinazione del movimento compresa lorientazione del TCP ed il valore di eventuali assi esterni. Il TCP si muove linearmente dalla posizione attuale alla destinazione. Si incorre nel rischio di attraversare una singolarità ma la traiettoria è prevedibile. È il comando più diffuso in un programma robot. I parametri di questo comando sono la destinazione del movimento compresa lorientazione del TCP ed il valore di eventuali assi esterni. Il TCP si muove linearmente dalla posizione attuale alla destinazione. Si incorre nel rischio di attraversare una singolarità ma la traiettoria è prevedibile.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 13 Comando di movimentazione nei giunti Il robot si muove dalla configurazione attuale, alla configurazione dei giunti della destinazione. La destinazione può essere espressa sia nello spazio dei giunti che in coordinate cartesiane. Questo tipo di movimento non è affetto dal rischio di singolarità ma la traiettoria del TCP non è prevedibile con il conseguente rischio di collisioni con parti della cella. Il robot si muove dalla configurazione attuale, alla configurazione dei giunti della destinazione. La destinazione può essere espressa sia nello spazio dei giunti che in coordinate cartesiane. Questo tipo di movimento non è affetto dal rischio di singolarità ma la traiettoria del TCP non è prevedibile con il conseguente rischio di collisioni con parti della cella.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 14 Comando di movimentazione lineare e nei giunti

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 15 Costrutti per il controllo del flusso Come in ogni linguaggio, anche per i linguaggi robot sono presenti costrutti per il controllo del flusso di esecuzione. Lo studio si è concentrato su: Come in ogni linguaggio, anche per i linguaggi robot sono presenti costrutti per il controllo del flusso di esecuzione. Lo studio si è concentrato su: IF THEN ELSE IF THEN ELSE Ciclo FOR e ciclo WHILE Ciclo FOR e ciclo WHILE Chiamata a sottoprogramma Chiamata a sottoprogramma Non tutti i linguaggi analizzati possiedono i costrutti elencati e non tutti con le stesse modalità. Non tutti i linguaggi analizzati possiedono i costrutti elencati e non tutti con le stesse modalità.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 16 Variabili Le variabili in un linguaggio robot vengono utilizzate sia per lelaborazione dei dati, sia per contenere la destinazione dei comandi di movimento. Le variabili in un linguaggio robot vengono utilizzate sia per lelaborazione dei dati, sia per contenere la destinazione dei comandi di movimento. Esempio in linguaggio APT-esteso Esempio in linguaggio APT-esteso VAR ROBOPOS dest =X, Y, Z, rpy Roll, Pitch, Yaw VAR ROBOPOS dest =X, Y, Z, rpy Roll, Pitch, Yaw GOTO / dest GOTO / dest In questo esempio viene creata una variabile che contiene le coordinate di un comando di movimentazione. In questo esempio viene creata una variabile che contiene le coordinate di un comando di movimentazione.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 17 Interprete multilinguaggio Per implementare linterprete multilinguaggio, è stato realizzato un unico interprete in grado di elaborare un solo linguaggio, lAPT-esteso che funge da buffer. Con dei software di traduzione i vari linguaggi robot vengono tradotti in APT-esteso. Per implementare linterprete multilinguaggio, è stato realizzato un unico interprete in grado di elaborare un solo linguaggio, lAPT-esteso che funge da buffer. Con dei software di traduzione i vari linguaggi robot vengono tradotti in APT-esteso.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 18 ABB MOTOMAN KUKA APT- esteso Dallo studio delle parti comuni a questi linguaggi, è stato definito il linguaggio APT- esteso. Interprete multilinguaggio

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 19 Linguaggio per macchine a controllo numerico APT Il linguaggio APT standard è un formato CAM e come tale risulta incompleto per essere utilizzato come linguaggio robot. LAPT può gestire fino a cinque gradi di libertà (CAM e macchine a cinque assi) che sono insufficienti per programmare un robot che possiede almeno sei gradi di libertà più gli eventuali assi esterni. Il linguaggio APT standard è un formato CAM e come tale risulta incompleto per essere utilizzato come linguaggio robot. LAPT può gestire fino a cinque gradi di libertà (CAM e macchine a cinque assi) che sono insufficienti per programmare un robot che possiede almeno sei gradi di libertà più gli eventuali assi esterni. GOTO / X, Y, Z, Zx, Zy, Zz GOTO / X, Y, Z, Zx, Zy, Zz Coordinate XYZ più coseni direttori dellutensile o ZTool Coordinate XYZ più coseni direttori dellutensile o ZTool

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 20 Linguaggio APT-esteso Per ovviare alle carenze dellAPT standard, è stato stato necessario definire un nuovo linguaggio che possedesse le caratteristiche basilari dei linguaggi robot analizzati: lAPT-esteso. Per ovviare alle carenze dellAPT standard, è stato stato necessario definire un nuovo linguaggio che possedesse le caratteristiche basilari dei linguaggi robot analizzati: lAPT-esteso. Le caratteristiche introdotte nellAPT-esteso sono: Le caratteristiche introdotte nellAPT-esteso sono: Estensione della sintassi del comando di movimentazione lineare GOTO Estensione della sintassi del comando di movimentazione lineare GOTO Comandi per la movimentazione nei giunti Comandi per la movimentazione nei giunti Costrutti per il controllo del flusso Costrutti per il controllo del flusso Implementazione delle variabili Implementazione delle variabili

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 21 APT-esteso: Comando di movimento lineare Il comando è GOTO come nel caso di APT-standard, ma i parametri permettono di specificare completamente lorientazione del TCP e il valore di eventuali assi esterni. Inoltre è possibile utilizzare variabili come parametri. Il comando è GOTO come nel caso di APT-standard, ma i parametri permettono di specificare completamente lorientazione del TCP e il valore di eventuali assi esterni. Inoltre è possibile utilizzare variabili come parametri. GOTO / 0.0, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext 0.0 GOTO / 0.0, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext 0.0 GOTO /varX, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext 0.0 GOTO /varX, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext 0.0 con varX variabile numerica.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 22 APT-esteso: Comando di movimento nei giunti Esistono due comandi di movimento nei giunti: Esistono due comandi di movimento nei giunti: GOTOJ: movimento nei giunti con coordinate della destinazione espresse nello spazio dei giunti. GOTOJ: movimento nei giunti con coordinate della destinazione espresse nello spazio dei giunti. GOTOJ / A1, A2, A3, A4, A5, A6, E1…E6 GOTOJ / A1, A2, A3, A4, A5, A6, E1…E6 GOTOJC: movimento nei giunti con coordinate espresse in cartesiano. GOTOJC: movimento nei giunti con coordinate espresse in cartesiano. GOTOJC / X, Y, Z, rpy Roll, Pitch, Yaw GOTOJC / X, Y, Z, rpy Roll, Pitch, Yaw

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 23 APT-esteso: Comandi per controllo del flusso Nel linguaggio APT-esteso sono stati implementati anche i più diffusi costrutti per il controllo del flusso di esecuzione: Nel linguaggio APT-esteso sono stati implementati anche i più diffusi costrutti per il controllo del flusso di esecuzione: Costrutto IF THEN ELSE Costrutto IF THEN ELSE Ciclo FOR Ciclo FOR Ciclo WHILE Ciclo WHILE Chiamata a subroutine Chiamata a subroutine Definizione di una subroutine Definizione di una subroutine

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 24 APT-esteso: Variabili I tipi di variabili implementati in APT- esteso sono: I tipi di variabili implementati in APT- esteso sono: REAL: variabile reale REAL: variabile reale INT: variabile intera INT: variabile intera ROBOPOS: struttura che contiene le coordinate cartesiane di un punto più il valore degli eventuali assi esterni ROBOPOS: struttura che contiene le coordinate cartesiane di un punto più il valore degli eventuali assi esterni ROBOAXIS: struttura che contiene le coordinate nello spazio dei giunti di un punto. ROBOAXIS: struttura che contiene le coordinate nello spazio dei giunti di un punto. Le variabili possono essere utilizzate come parametri dei comandi di movimento. Le variabili possono essere utilizzate come parametri dei comandi di movimento.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 25 Interprete APT-esteso: Allocazione delle variabili Creazione delle variabili in fase di parsing del codice. Creazione delle variabili in fase di parsing del codice. Allocazione in stack lineari locali al sottoprogramma corrente. Allocazione in stack lineari locali al sottoprogramma corrente. Inizializzazione delle variabili solo in fase di esecuzione del codice. Inizializzazione delle variabili solo in fase di esecuzione del codice. VAR REAL v1=10.0 VAR REAL v1=10.0 VAR REAL v2=v1*2 GOTO / v1, v2, 0.0

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 26 Interprete APT-esteso: Gestione dellInstruction Pointer In seguito alla fase di parsing è stata creata una lista di comandi da eseguire. In seguito alla fase di parsing è stata creata una lista di comandi da eseguire. LIP viene incrementato dopo lesecuzione di ogni comando. LIP viene incrementato dopo lesecuzione di ogni comando. I comandi di controllo del flusso di esecuzione modificano il valore dellIP con un valore noto al comando stesso. I comandi di controllo del flusso di esecuzione modificano il valore dellIP con un valore noto al comando stesso. Il nuovo valore può: Il nuovo valore può: Appartenere alla routine corrente Appartenere alla routine corrente Appartenere ad unaltra routine Appartenere ad unaltra routine

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 27 Interprete APT-esteso: Gestione dellInstruction Pointer Se il nuovo valore dellIP appartiene alla routine corrente, lesecuzione si sposta e riprende da questo valore. Non vengono eseguite operazioni aggiuntive. Se il nuovo valore dellIP appartiene alla routine corrente, lesecuzione si sposta e riprende da questo valore. Non vengono eseguite operazioni aggiuntive. Se il nuovo valore dellIP non appartiene alla routine corrente, il vecchio valore dellIP e lo stack di variabili locali viene salvato e viene caricato lo stack delle variabili locali alla routine chiamata. Al termine di questa viene ripristinato il vecchio valore dellIP e lo stack di variabili del chiamante. Se il nuovo valore dellIP non appartiene alla routine corrente, il vecchio valore dellIP e lo stack di variabili locali viene salvato e viene caricato lo stack delle variabili locali alla routine chiamata. Al termine di questa viene ripristinato il vecchio valore dellIP e lo stack di variabili del chiamante.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 28 Risolutore matematico Linterprete APT-esteso è in grado di elaborare le più comuni espressioni matematiche. Il risolutore si basa sulla Reverse Polish Notation ovvero sulla riscrittura delle espressioni matematiche in una forma diversa dalla forma algebrica classica. In questa nuova forma la risoluzione di unespressione richiede meno accessi in memoria rispetto alla forma algebrica. Linterprete APT-esteso è in grado di elaborare le più comuni espressioni matematiche. Il risolutore si basa sulla Reverse Polish Notation ovvero sulla riscrittura delle espressioni matematiche in una forma diversa dalla forma algebrica classica. In questa nuova forma la risoluzione di unespressione richiede meno accessi in memoria rispetto alla forma algebrica.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 29 Reverse Polish Notation Il nome deriva dalla Polish Notation inventata dal matematico polacco Jan Łukasiewicz e si basa sullutilizzo di uno stack per contenere i risultati parziali dellespressione. Il nome deriva dalla Polish Notation inventata dal matematico polacco Jan Łukasiewicz e si basa sullutilizzo di uno stack per contenere i risultati parziali dellespressione. Lalgoritmo utilizzato per convertire unespressione dalla notazione algebrica alla RPN è lalgoritmo Shunting Yard inventato da Dijkstra. Lalgoritmo utilizzato per convertire unespressione dalla notazione algebrica alla RPN è lalgoritmo Shunting Yard inventato da Dijkstra. Esempio Esempio 4+5* * +

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 30 Traduttori per i linguaggi robot I traduttori convertono il codice macchina in APT-esteso permettendo allinterprete di elaborare più linguaggi. I traduttori convertono il codice macchina in APT-esteso permettendo allinterprete di elaborare più linguaggi. In questo modo per elaborare un nuovo linguaggio robot è sufficiente implementare il relativo traduttore. In questo modo per elaborare un nuovo linguaggio robot è sufficiente implementare il relativo traduttore. Il limite di questo metodo è che le diversità tra i linguaggi robot possono rendere difficile o impossibile la traduzione completa degli stessi. Il limite di questo metodo è che le diversità tra i linguaggi robot possono rendere difficile o impossibile la traduzione completa degli stessi.

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 31 Conclusioni Gli obiettivi raggiunti con questo lavoro di tesi sono: Gli obiettivi raggiunti con questo lavoro di tesi sono: Implementazione di un interprete multi-robot in grado di elaborare i più comuni comandi dei linguaggi KUKA, MOTOMAN e ABB. Implementazione di un interprete multi-robot in grado di elaborare i più comuni comandi dei linguaggi KUKA, MOTOMAN e ABB. Definizione di un nuovo linguaggio robot, lAPT-esteso, che possiede le caratteristiche di base dei linguaggi citati. Definizione di un nuovo linguaggio robot, lAPT-esteso, che possiede le caratteristiche di base dei linguaggi citati. Integrazione dellinterprete allinterno del postProcessor ROBOmove sviluppato da Qdesign S.R.L.. Integrazione dellinterprete allinterno del postProcessor ROBOmove sviluppato da Qdesign S.R.L..

-TitoloTitolo -IntroduzioneIntroduzione -ProgrammazioneProgrammazione -Scopo del lavoro di tesiScopo del lavoro di tesi -Studio preliminareStudio preliminare -Interprete multi- linguaggioInterprete multi- linguaggio -Linguaggio APTLinguaggio APT -Linguaggio APT- estesoLinguaggio APT- esteso -Interprete APT- estesoInterprete APT- esteso -ConclusioniConclusioni 32 Conclusioni: sviluppi futuri e limiti Possibili sviluppi futuri di questo lavoro sono: Possibili sviluppi futuri di questo lavoro sono: Ampliamento del numero di linguaggi interpretabili. Attualmente è in fase di studio il linguaggio FANUC. Ampliamento del numero di linguaggi interpretabili. Attualmente è in fase di studio il linguaggio FANUC. Ampliamento del numero di comandi interpretabili come la gestione della postura del robot, del sistema di riferimento corrente e lintroduzione di variabili di sistema. Ampliamento del numero di comandi interpretabili come la gestione della postura del robot, del sistema di riferimento corrente e lintroduzione di variabili di sistema. Il limite maggiore di questo lavoro è la diversità tra i vari linguaggi che può rendere molto complesso o addirittura impossibile la completa traduzione di questi e quindi laggiunta di nuovi linguaggi e comandi interpretabili. Il limite maggiore di questo lavoro è la diversità tra i vari linguaggi che può rendere molto complesso o addirittura impossibile la completa traduzione di questi e quindi laggiunta di nuovi linguaggi e comandi interpretabili.