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?
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


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.
2
Robot antropomorfi
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni
3
Applicazioni
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni
Taglio di vetroresina
Operazione di fresatura
4
Programmazione
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


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:


Autoapprendimento o teaching;
Fuorilinea o off-line
5
Programmazione in
Autoapprendimento
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


L’operatore muove il robot su di un
percorso che viene memorizzato. Al
termine il robot è in grado di eseguire il
percorso acquisito.
Vantaggi:



Semplicità;
Controllo immediato delle traiettorie per
evitare collisioni e singolarità;
Svantaggi:


Scarsa precisione;
Numero di posizioni limitato;
6
Programmazione in
Autoapprendimento
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni
7
Programmazione fuorilinea
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


Il programma viene creato lontano dal
robot con l’ausilio di programmi CADCAM, simulatori e postProcessor.
Vantaggi:


Precisione e numero di posizioni elevato;
Svantaggi:

È necessaria una verifica delle traiettorie a
posteriori. O direttamente con il robot o con
strumenti di simulazione.
8
Simulatori e PostProcessor
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

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 secondi sono postProcessor per robot
antropomorfi;
9
Scopo del lavoro di tesi
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


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:
l’APT-esteso derivato dal linguaggio per
macchine a controllo numerico APT.
10
Studio preliminare
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


La realizzazione dell’interprete è stata
preceduta da uno studio preliminare sui
linguaggi robot KUKA, MOTOMAN e
ABB.
Lo studio di questi linguaggi si è
concentrato su:




Comandi di movimentazione lineare;
Comandi di movimentazione nei giunti;
Costrutti per il controllo del flusso;
Espressioni matematiche e variabili;
11
Comando di movimentazione lineare
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

È il comando più diffuso in un programma
robot. I parametri di questo comando sono
la destinazione del movimento compresa
l’orientazione 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.
12
Comando di movimentazione nei
giunti
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

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.
13
Comando di movimentazione lineare
e nei giunti
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni
14
Costrutti per il controllo del flusso
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

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
Ciclo FOR e ciclo WHILE
Chiamata a sottoprogramma
Non tutti i linguaggi analizzati possiedono
i costrutti elencati e non tutti con le stesse
modalità.
15
Variabili
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


Le variabili in un linguaggio robot
vengono utilizzate sia per l’elaborazione
dei dati, sia per contenere la destinazione
dei comandi di movimento.
Esempio in linguaggio APT-esteso



VAR ROBOPOS dest =X, Y, Z, rpy Roll,
Pitch, Yaw
GOTO / dest
In questo esempio viene creata una
variabile che contiene le coordinate di un
comando di movimentazione.
16
Interprete multilinguaggio
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

Per implementare l’interprete
multilinguaggio, è stato realizzato un unico
interprete in grado di elaborare un solo
linguaggio, l’APT-esteso che funge da
buffer. Con dei software di traduzione i
vari linguaggi robot vengono tradotti in
APT-esteso.
17
Interprete multilinguaggio
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni
MOTOMAN
ABB
APTesteso
KUKA
Dallo studio delle parti comuni a questi
linguaggi, è stato definito il linguaggio APTesteso.
18
Linguaggio per macchine a controllo
numerico APT
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

Il linguaggio APT standard è un formato
CAM e come tale risulta incompleto per
essere utilizzato come linguaggio robot.
L’APT 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
Coordinate XYZ più coseni direttori
dell’utensile o ZTool
19
Linguaggio APT-esteso
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


Per ovviare alle carenze dell’APT standard, è stato
stato necessario definire un nuovo linguaggio che
possedesse le caratteristiche basilari dei linguaggi
robot analizzati: l’APT-esteso.
Le caratteristiche introdotte nell’APT-esteso sono:




Estensione della sintassi del comando di
movimentazione lineare GOTO
Comandi per la movimentazione nei giunti
Costrutti per il controllo del flusso
Implementazione delle variabili
20
APT-esteso:
Comando di movimento lineare
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

Il comando è “GOTO” come nel caso di
APT-standard, ma i parametri permettono
di specificare completamente l’orientazione
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 /varX, 0.0, 0.0, rpy 0.0, 0.0, 0.0, ext
0.0
con “varX” variabile numerica.
21
APT-esteso:
Comando di movimento nei giunti
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

Esistono due comandi di movimento nei
giunti:

GOTOJ: movimento nei giunti con coordinate
della destinazione espresse nello spazio dei
giunti.


GOTOJ / A1, A2, A3, A4, A5, A6, E1…E6
GOTOJC: movimento nei giunti con
coordinate espresse in cartesiano.

GOTOJC / X, Y, Z, rpy Roll, Pitch, Yaw
22
APT-esteso:
Comandi per controllo del flusso
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

Nel linguaggio APT-esteso sono stati
implementati anche i più diffusi costrutti
per il controllo del flusso di esecuzione:





Costrutto IF THEN ELSE
Ciclo FOR
Ciclo WHILE
Chiamata a subroutine
Definizione di una subroutine
23
APT-esteso:
Variabili
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

I tipi di variabili implementati in APTesteso sono:





REAL: variabile reale
INT: variabile intera
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.
Le variabili possono essere utilizzate come
parametri dei comandi di movimento.
24
Interprete APT-esteso:
Allocazione delle variabili
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni



Creazione delle variabili in fase di parsing
del codice.
Allocazione in stack lineari locali al
sottoprogramma corrente.
Inizializzazione delle variabili solo in fase
di esecuzione del codice.

VAR REAL v1=10.0
VAR REAL v2=v1*2
GOTO / v1, v2, 0.0
25
Interprete APT-esteso:
Gestione dell’Instruction Pointer
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni




In seguito alla fase di parsing è stata creata
una lista di comandi da eseguire.
L’IP viene incrementato dopo l’esecuzione
di ogni comando.
I comandi di controllo del flusso di
esecuzione modificano il valore dell’IP con
un valore noto al comando stesso.
Il nuovo valore può:


Appartenere alla routine corrente
Appartenere ad un’altra routine
26
Interprete APT-esteso:
Gestione dell’Instruction Pointer
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


Se il nuovo valore dell’IP appartiene alla
routine corrente, l’esecuzione si sposta e
riprende da questo valore. Non vengono
eseguite operazioni aggiuntive.
Se il nuovo valore dell’IP non appartiene
alla routine corrente, il vecchio valore
dell’IP 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 dell’IP e lo stack di variabili
del chiamante.
27
Risolutore matematico
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

L’interprete 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 un’espressione richiede
meno accessi in memoria rispetto alla
forma algebrica.
28
Reverse Polish Notation
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni


Il nome deriva dalla “Polish Notation”
inventata dal matematico polacco Jan
Łukasiewicz e si basa sull’utilizzo di uno
stack per contenere i risultati parziali
dell’espressione.
L’algoritmo utilizzato per convertire
un’espressione dalla notazione algebrica
alla RPN è l’algoritmo “Shunting Yard”
inventato da Dijkstra.

Esempio
4+5*2
452*+
29
Traduttori per i linguaggi robot
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni



I traduttori convertono il codice macchina
in APT-esteso permettendo all’interprete
di elaborare più linguaggi.
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.
30
Conclusioni
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

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.
Definizione di un nuovo linguaggio robot,
l’APT-esteso, che possiede le caratteristiche di
base dei linguaggi citati.
Integrazione dell’interprete all’interno del
postProcessor “ROBOmove” sviluppato da
“Qdesign S.R.L.”.
31
Conclusioni: sviluppi futuri e limiti
-Titolo
-Introduzione
-Programmazione
-Scopo del lavoro
di tesi
-Studio
preliminare
-Interprete multilinguaggio
-Linguaggio APT
-Linguaggio APTesteso
-Interprete APTesteso
-Conclusioni

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 comandi interpretabili
come la gestione della postura del robot, del sistema di
riferimento corrente e l’introduzione 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 l’aggiunta di nuovi
linguaggi e comandi interpretabili.
32
Scarica

Linguaggio APT