RoboDK API

L'API di RoboDK (Application Program Interface) è un insieme di routines e comandi che RoboDK espone tramite un linguaggio di programmazione che permette di programmare qualunque robot utilizzando un unico linguaggio di programmazione.

Comparato ai linguaggi di programmazione specifici dei robot, con l'API di RoboDK è possibile simulare e programmare qualunque robot con un linguaggio di programmazione universale come Python. La pagina principale fornisce una panoramica e un video che mostra la programmazione offline con l'API.

L'API di RoboDK è disponibile per Python, C# e Matlab. Qualunque di questi linguaggi di programmazione può essere utilizzato per simulare e programmare ogni robot.

L'API di RoboDK può essere utilizzata per le seguenti operazioni:

1.Automatizzare la simulazione: Creare macro per automatizzare compiti specifici all'interno del simulatore RoboDK, ad esempio muovere oggetti, piani di riferimento o robot.

2.Programmazione Offline: Programmare robot offline tramite un linguaggio di programmazione universale. RoboDK genererà programmi specifici per uno specifico controller robot quando l'API viene utilizzata (ad esempio programmare in Python o C#). Il Programma robot è generato seguendo il post processore selezionato per uno specifico robot. La sezione Programmazione Offline con Python di questo documento fornisce più informazioni ed esempi.

3.Programmazione Online: Programmare robot online utilizzando un linguaggio di programmazione universale: È possibile muovere robot ed ottenere la loro posizione dall'API di RoboDK. RoboDK piloterà i robot utilizzando i driver robot. La sezione Programmazione Online di PythonPythonAPIOLP di questo documento fornisce più informazioni ed esempi.

In altre parole, lo stesso programma che è utilizzato per simulazione può anche essere utilizzato per generare programmi robot e muovere robot in tempo reale.

Questo documento copre i seguenti argomenti:

L'API Python con esempi su Simulazione, Programmazione Offline, e Programmazione Online

L'API C# con esempi per Simulazione, Programmazione Offline, e Programmazione Online

L'API Matlab con un esempio Simulink per simulazione

L'opzione Command line per avviare RoboDK


Python API

Python è un linguaggio di programmazione di alto livello. Python è un linguaggio di programmazione che permette di lavorare velocemente ed integrare il tuo sistema in maniera efficente. La sintassi di Python permette ai programmatori di esprimere concetti in poche linee comparato agli altri linguaggi, renderndolo facile da imparare.

La sezione precedente spiega i vantaggi di utilizzare l'API di RoboDK con un linguaggio di programmazione vastamente utilizzato come Python.

Python è automaticamente installato ed integrato in RoboDK di default. Selezionare StrumentiOpzioniAltro per modificare le impostazioni di default (percorso Python e editor Python)

RoboDK API - Figura 1

L'API RoboDK è divisa in due moduli:

Il modulo robolink (robolink.py): Il modulo robolink è l'interfaccia tra RoboDK e Python. Ogni oggetto nella stazione RoboDK può essere ottenuto utilizzando un oggetto Robolink ed è rappresentato da un oggetto Item. È possibile compiere operazioni differenti su quell'oggetto secondo la classe Robolink.Item

Il modulo robodk (robodk.py): Il modulo robodk è un set di strumenti per robot per Python che permettono operazioni di trasformazione pose e ottenere angoli di Eulero da diversi produttori robot. Tutti i post processori dipendono da questo modulo robodk

I moduli Python sono localizzati nella cartella C:/RoboDK/Python/ e sono copiati nella cartella Python in automatico quando RoboDK è installato o quando Impostazioni Python di default è selezionata (immagine precedente)

La sottosezione successiva mostra come creare un semplice programma per simulazione, programmazione offline ed online. Altri esempi sono disponibili nella pagine Python API per RoboDK. Inoltre, la libreria RoboDK è provvista di alcune macro di esempio nella cartella C:/RoboDK/Library/Macros/

Simulazione Python

Segui questi passaggi per impostare un progetto esempio utilizzando un robot UR e simulare il movimento con il robot.

1.Seleziona FileRoboDK API - Figura 2 Apri

2.Apri il robot UR10

3.Seleziona FileRoboDK API - Figura 3 Apri

4.Apri il file Paint_gun.tool

5.Apri il programma di esempio SampleOfflineProgramming.py da C:/RoboDK/Library/Macros/

6.Fare doppio click su SampleOfflineProgramming per iniziare la simulazione. Il robot dovrebbe disegnare un esagono attorno alla posizione corrente del robot e una traccia del TCP sarà visualizzata in giallo.        
In alternativa, clicca con il tasto destro sul programma e selezione
RoboDK API - Figura 5Inizia Python Script

7.Clicca con il tasto destro su RoboDK API - Figura 6SampleOfflineProgramming e seleziona Modifica Script Python. Dovremmo vedere il programma come mostrato nella seguente immagine.

La macro SampleOfflineProgramming disegnerà un poligono con n_sides lati e raggio R alla posizione corrente del robot, con rispetto del piano di riferimento del robot. Se si desidera muovere il robot in una posizione diversa, modificare le dimensioni del poligono e far ripartire il programma.

Questo esempio è simile al programma visualizzato nella sezione Programmazione Offline del sito (con video)

RoboDK API - Figura 7


Python OLP

Programmi Python possono essere generati offline utilizzando lo stesso codice Python utilizzato per simulare il robot (come mostrato nella sezione precedente Simulazione Python). La programmazione Offline permette di generare programmi robot che possono essere eseguiti su uno specifico controller robot:

1.Clicca con il tasto destro su un RoboDK API - Figura 8 programma Python

2.Selezione Genera programma robot (F6)

In questo caso il programma non è simulato ma eseguito velocemente per ottenere il risultato: un programma robot specifico per il controllore robot.

RoboDK API - Figura 9

RDK = Robolink()

RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)


Programmazione Python Online

Programmi Python possono essere eseguiti direttamente sul robot utilizzando lo stesso codice Python utilizzato per simulare il robot (come mostrato nella sezione Simulazione Python). La Programmazione Online permette di avviare un generico programma sullo specifico controllore robot utilizzando i Driver Robot:

1.Tasto destro su RoboDK API - Figura 10 programma Python

2.Selezione Avvia su robot

Il programma verrà avviato sul robot assieme all'esecuzione del programma Python.

RoboDK API - Figura 11

RDK = Robolink()

RDK.setRunMode(RUNMODE_RUN_ROBOT)


C# API

C# (pronunciato "C sharp") è un linguaggio di programmazione sviluppato da Microsoft e progettato per creare una varietà di applicazioni basate su .NET Framework. C# è semplice, potente e object-oriented.

La sezione principale di questo documento spiega i vantaggi di utilizzare l'API di RoboDK con un linguaggio di programmazione come C#.

L'API di RoboDK per C# è un source file RoboDK.cs che contiene la classe RoboDK (simile alla classe Python Robolink), la classe RoboDK.Item (simile alla classe Python Robolink.Item) e altri strumenti per la robotica come la classe Matrici (RoboDK.Mat) per operazioni con matrici per operare sulla trasformazione di pose.

L'API di RoboDK per C# è fornita con un progetto semplice come mostrato nella seguente immagine (il codice sorgente completo è anch'esso incluso)

RoboDK API - Figura 12

Seleziona Carica File per aprire la stazione RoboDK o qualunque altro file supportato da RoboDK. Se un robot è caricato, la variabile ROBOT sarà aggiornata.

Il seguente video mostra una panoramica del progetto C# utilizzando l'API RoboDK:

https://www.youtube.com/watch?v=1hRRYr9bEsY


Simulazione C#

Programmi in C# sono simulati di default quando comandi robot sono utilizzati (come MoveJ, MoveL o setDO).

Quando il programma C# è iniziato, la modalità simulazione è selezionata di default.

RoboDK API - Figura 13

Ciò significa che i movimenti robot saranno simulati in RoboDK. Per esempio, possiamo muovere il robot con passi di 10 mm selezionanto di pulsanti sulla destra (+Tx, -Tx, ...) oppure possiamo selezionare Avvia Programma Test per avviare un movimento esagonale attorno alla posizione corrente del robot.

Impostare i breakpoints per fare il debug dell'applicazione e ispezionare i bersagli robot. Bersagli robot possono essere definiti come coordinate giunti o variabili Mat (pose 4x4) e possono essere ispezionati in formato XYZWPR per risolvere problemi. Più informazioni riguardo piani di riferimento nella sezione Piani di Riferimento.

RoboDK API - Figura 14

È anche possibile modificare Run Mode in Programmazione Offline o Programmazione Online come mostrato nelle prossime sezioni

C# OLP

Programmi C# possono essere generati offline utilizzando lo stesso codice C# utilizzato per simulare il robot (programmazione offline) Segui questi passaggi per testare questa funzionalità:

1.Seleziona Offline Programming nella sezione Run Mode

2.Seleziona Run Test Program o qualunque altra combinazione di moviementi

3.Seleziona Generate Prog per ottenere un programma specifico per robot

In questo caso il programma non viene simulato ma eseguito velocemente per ottenere il risultato: un programma robot specifico per controllore robot. Il Run Mode cambierà di nuovo in Simulazione una volta che il programma è generato.

RoboDK API - Figura 15

C# Programmazione Online

Programmi C# possono essere eseguiti direttamente sul robot utilizzando lo stesso codice della simulazione. Programmi online permettono di eseguire un programma generico su uno specifico controller robot utilizzando i Driver Robot. Segui questi passi per testare questa funzionalità utilizzando un programma esempio C#:

1.Seleziona Run on Robot nella sezione Run Mode

2.Seleziona qualunque altro comando che farà muovere il robot

I movimenti saranno eseguiti sul robot reale e il simulatore sincronizzerà i movimenti con il robot.

RoboDK API - Figura 16

RDK = Robolink();

RDK.setRunMode(RUNMODE_RUN_ROBOT);


Matlab API

Matlab è un linguaggio di programmazione proprietario sviluppato da MathWorks. Tra le altre cose, MATLAB permette la manipolazione di matrici, stampare funzioni e dati ed implementare algoritmi.

La sezione principale di questo documento spiega i vantaggi di utilizzare l'API di RoboDK con il linguaggio di programmazione Matlab per la programmazione di robot.

L'API di RoboDK per Matlab è disponibile dopo che RoboDK è installato in C:/RoboDK/Matlab/. L'API è fornita come un set di files m, inclusi:

Robolink.m è una classe che si interfaccia con RoboDK. Ogni oggetto nella stazione RoboDK può essere ottenuto utilizzando l'oggetto Robolink ed è rappresentato da un oggetto RobolinkItem (come la classe Python Robolink)

RobolinkItem.m è una classe che rappresenta un oggetto RoboDK nella stazione. È possibile eseguire differenti operazioni su quell'oggetto (come la classe Python

transl.m, rotx.m, roty.m and rotz.m sono funzioni che creano matrici di pose date una traslazione XYZ in vettori e rotazione attorno ad un asse specifico.

Pose_2_XYZRPW.m e XYZRPW_2_Pose.m permettono di convertire pose in posizioni XYZ e angoli di Eulero RPW e viceversa. Più informazioni nella sezione Piani di Riferimento

Esempi sono disponibili nella seguente pagina:

https://robodk.com/Matlab-API

Esempio Simulink

Un progetto Simulink è disponibile come un esempio. Nella simulazione, il robot è mosso attorno ad un insieme di coordinate XYZ generate arbitrariamente.

Il seguente video mostra il risultato della simulazione:

https://www.youtube.com/watch?v=7DDBMwa0-Oc

RoboDK API - Figura 17

Opzione Command Line

Questa sezione descrive l'opzione command line disponibile quando si avvia RoboDK.

La seguente chiamata è una chiamata generica con alcuni argomenti:

Robodk.exe /[option1] /[option2] open_fileA /[option3] open_fileB ...

Tutti i formati supportati da RoboDK posson esser forniti come argomenti. Inclusi i seguenti formati:

RDK    File stazione RoboDK: Questo file contiene tutto il progetto in un file, incluse tutte le dipendenze (robot, tools, file NC,...).

robot    File Robot: Caricare un file robot creerà anche un piano di riferimento per quel robot.

tool      File Tool: Collegato automaticamente all'ultimo robot aggiunto.

stl/wrl/step/stp/iges/igs/sld Oggetti (geometrie 3D): Oggetti possono essere convertiti in tool.

apt/gcode/cnc File programma NC: RoboDK prepara automaticamente un progetto fresatura.

RDK = Robolink(args='/ADDFRAME "/RENAME=Main Ref " load_object.stl')

Opzioni dalla linea di comando disponibili:

/NOSPLASH

Rimuove l'immagine splash all'avvio di RoboDK

/DEBUG

Crea un file RoboDK.debug.txt nella cartella bin che permette il debug dell'applicazione

/SETTINGS=filepath

Carica gli argomenti da un file testo. Ogni linea del file di testo è considerata un argomento singolo.

/NOSHOW

Nasconde tutte le finestre quando RoboDK sta caricando i file e aggiornando i programmi.

/NO_WINDOWS

Nasconde tutte le finestra che solitamente vengono visualizzate quando si carica un file NC

/PORT=20501

Forza la comunicazione API dalla porta data (protocollo TCP/IP). Porta di default è la 20500.

/ADDFRAME

Aggiunge un nuovo piano di riferimento. Ogni nuovo oggetto caricato sarà posizionato su questo piano di riferimento.

/RESET

Forza il fatto che se un nuovo oggetto viene caricato sarà posizionato sul piano di riferimento della stazione (e non l'ultimo)

/RENAME=Name

Modifica il nome dell'ultimo piano di riferimento o oggetto che è stato aggiunto.

/MOVE=x;y;z;rx;ry;rz

Muove l'ultimo piano di riferimento aggiunto (in mm e gradi)

/UPDATE_APT=YES

Sovrascriverà tutti i progetti di fresatura che hanno lo stesso file APT

/UPDATE_APT=NO

Non sovrascrive i progetti fresatura (crea duplicati se il nome combacia)

/UPDATE=file.apt

Carica o aggiorna il file APT e genera il programma robot se non ci son errori

/REPLACE_ITEMS=YES

Aggiorna i tool esistenti e gli oggetti quando un nuovo file è caricato e c'è una corrispondenza nel nome.

/REPLACE_ITEMS=NO

Non sovrascrivere main tool e oggetti quando un nuovo file è caricato.

/SETCOLOR=steelblue

Imposta il colore dell'ultimo oggetto caricato (oggetto, tool, robot o meccanismo). Il colore può essere un nome o un esadecimale.

/AUTOGEN_MAINPROG=Prog

Genera un programma main che chiama i programmi collegati al file APT caricato in sequenza.

/SELECTTOOL=#1

Imposta il primo tool robot disponibile come tool attivo (tool utilizzato quando viene caricato un programma)

/SELECTTOOL=tool name

Seleziona un tool attivo utilizzando un nome che corrisponde

/ADDCUTTER=length|path/cutter name.stl

Addcutter permette di aggiungere la geometria di un cutter con rispetto di un tool holder. Un cutter è trattato come un tool in RoboDK, che tiene la geometria del cutter. La geometria del cutter deve essere un file STL (ASCII o binario) con l'origine sulla punta del tool. La lunghezza deve essere data in mm con rispetto del tool (asse Z positivo del tool deve puntare verso fuori).

/SELECTCUTTER=cutter name

Selctcutter ha lo stesso effetto di SELECTTOOL, cutters sono trattati come tools.

/SHOW

Mostra la finestra RoboDK. Ciò è fatto in automatico quando tutti i file sono caricati e i progetti fresatura sono aggiornati.

Utilizzare una delle seguenti opzioni altererà la visibilità provocata dal comando /SHOW

/HIDDEN

Evita la visualizzazione automatica una volta che RoboDK ha terminato il caricamento. L'unica possibilità di mostrare la finestra è utilizzando l'API

/QUIT

Esce dal programma se non ci sono messaggi di errore

/END

Esce dal programma anche se ci sono messaggi di errore