API do RoboDK

A API (Interface de Programa de Aplicativo) do RoboDK é um conjunto de rotinas e comandos que o RoboDK expõe por meio de uma linguagem de programação. A API do RoboDK permite que o senhor programe qualquer robô usando uma das linguagens de programação suportadas, como C#, Python ou C++. O senhor também pode automatizar tarefas repetitivas usando a API do RoboDK.

Em comparação com a programação de robôs de fornecedores específicos, com a API do RoboDK é possível simular e programar qualquer robô usando uma linguagem de programação única/universal, como o Python. A página a seguir apresenta uma visão geral e um vídeo que mostra a programação off-line com a API.

A API do RoboDK está disponível para Python, C#, C, C++, Visual Basic (.NET) e MATLAB. Qualquer uma dessas linguagens de programação pode ser usada para simular e programar qualquer braço de robô.

A API do RoboDK pode ser usada para as seguintes tarefas:

1.Automatizar a simulação: Crie macros para automatizar tarefas específicas no simulador RoboDK, como mover objetos, quadros de referência ou robôs.

2.Programação off-line: Programação de robôs off-line a partir de uma linguagem de programação universal. O RoboDK gerará programas específicos para um controlador de robô específico quando a API for usada (como um programa em Python ou C#). O programa do robô é gerado de acordo com o pós-processador selecionado para um robô específico. A seção Programação off-line com Python deste documento fornece mais informações e exemplos.

3.Programação on-line: Programação de robôs on-line usando uma linguagem de programação universal: É possível mover os robôs e recuperar sua posição atual a partir da API do RoboDK. O RoboDK acionará os robôs usando drivers de robô. A seção Programação on-line com Python neste documento fornece mais informações e exemplos.

Em outras palavras, o mesmo programa usado para simulação (1) pode ser usado para gerar programas de robôs (2, Programação off-line) e para mover o robô em tempo real (3, Programação on-line).

Este documento aborda os seguintes tópicos:

    A API Python com exemplos de simulação, programação off-line e programação on-line

    A API do C# com exemplos de simulação, programação off-line e programação on-line

    A API do MATLAB com um exemplo do Simulink para simulação

    As opções da linha de comando para iniciar o RoboDK

Python API

Python é uma linguagem de programação de alto nível amplamente usada para programação de uso geral. Python é uma linguagem de programação que permite que o senhor trabalhe mais rápido e integre seus sistemas com mais eficiência. A sintaxe do Python permite que os programadores expressem conceitos em menos linhas de código em comparação com outras linguagens, o que a torna amigável e fácil de aprender.

A seção anterior explica as vantagens de usar a API do RoboDK com uma linguagem de programação amplamente usada para a programação de robôs, como o Python.

O Python é instalado automaticamente e integrado ao RoboDK por padrão. Selecione Tools Options Other para alterar as configurações padrão (localização do Python e Python Editor).

RoboDK API - Imagem 1

A API do RoboDK para Python está dividida nos seguintes módulos:

    O pacote robodk é o ponto de entrada distribuído da API do Python. Ele é o pai comum de todos os subpacotes e módulos.

    O submódulo robolink (robolink.py) é a interface entre o RoboDK e o Python. Qualquer objeto na árvore de estações do RoboDK pode ser recuperado usando um objeto Robolink e é representado pelo objeto Item. É possível realizar diferentes operações nesse item de acordo com a classe Robolink.Item.

    O submódulo robomath (robomath.py) é uma caixa de ferramentas de robótica para Python que permite operar com transformações de pose e obter ângulos de Euler para diferentes fornecedores de robôs. Todos os pós-processadores dependem desse módulo.

    O submódulo robodialogs (robodialogs.py) é uma caixa de ferramentas de diálogos. Por exemplo, diálogos para abrir e salvar arquivos, avisos de mensagens etc.

    O submódulo robofileio (robofileio.py) é uma caixa de ferramentas de operação de arquivos. Propriedades do arquivo, CSV, FTP, etc.

    O submódulo roboapps (roboapps.py) é uma caixa de ferramentas do RoboDK Apps. Mais informações sobre o Apps estão disponíveis aqui: AppLoader.

O senhor pode encontrar os módulos Python na pasta C:/RoboDK/Python/. Essa pasta é automaticamente incluída por padrão (usada como PYTHONPATH) quando o senhor executa programas Python e pós-processadores no RoboDK.

As seções a seguir mostram como criar um programa simples para simulação, programação off-line e programação on-line, respectivamente. Mais exemplos estão disponíveis na página Python API for RoboDK. Além disso, a biblioteca do RoboDK vem com exemplos de scripts Python na pasta Scripts and Macros, disponível na biblioteca padrão (C:/RoboDK/Library/).

Simulação Python

Este exemplo mostra como criar uma nova estação usando um robô UR e simular um movimento hexagonal com o robô.

1.Selecione FileRoboDK API - Imagem 2 Open

2.Abra o robô UR10

3.Selecione FileRoboDK API - Imagem 3 Open

4.Abra o arquivo Paint_gun.tool

5.Abra o programa Python de amostra SampleOfflineProgramming.py em C:/RoboDK/Library/Macros/

6.Clique duas vezes no item SampleOfflineProgramming para executar a simulação. O robô deve desenhar um hexágono em torno da localização atual do robô e o rastro do TCP será exibido em amarelo.           
Como alternativa, clique com o botão direito do mouse no programa e selecioneRoboDK API - Imagem 5 Run Python Script.

7.Clique com o botão direito do mouse no itemRoboDK API - Imagem 6 SampleOfflineProgramming e selecione Edit Python Script. O programa deverá ser exibido conforme mostrado na imagem a seguir.

A macro SampleOfflineProgramming desenhará um polígono de lado n_sides e raio R no local atual do robô, com relação ao quadro de referência do robô. Se desejar, mova o robô para um local diferente, alterando as dimensões do polígono e execute o programa novamente.

Esse exemplo é semelhante ao programa exibido na seção de programação off-line do site (vídeo incluído).

RoboDK API - Imagem 7

Python OLP

Os programas Python podem ser gerados off-line usando o mesmo código Python usado para simular o robô (conforme mostrado na seção anterior Simulação Python). A programação off-line permite gerar programas de robô que podem ser executados em um controlador de robô específico:

1.Clique com o botão direito do mouse em um programaRoboDK API - Imagem 8 Python

2.Selecione Gerar programa do robô (F6)

Nesse caso, o programa não é simulado, mas executado rapidamente para obter o resultado: um programa de robô específico para um controlador de robô.

RoboDK API - Imagem 9

RDK = Robolink()

RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)

Programação on-line em Python

Os programas Python podem ser executados diretamente no robô usando o mesmo código Python usado para simular o robô (conforme mostrado na seção Simulação Python). A programação on-line permite executar um programa genérico em um controlador de robô específico usando os Robot Drivers:

1.Clique com o botão direito do mouse em um programaRoboDK API - Imagem 10 Python

2.Selecione Executar no robô

O programa será executado no robô à medida que o programa Python for executado.

RoboDK API - Imagem 11

RDK = Robolink()

RDK.setRunMode(RUNMODE_RUN_ROBOT)

Solução de problemas de configuração do Python no RoboDK

Se o senhor instalou o RoboDK depois de instalar o Python, o RoboDK pode não conseguir executar corretamente os scripts Python ou gerar programas. Esta seção mostra as etapas que o senhor deve seguir para configurar corretamente o interpretador Python no RoboDK e executar scripts Python sem problemas.

O senhor deve seguir estas etapas se vir uma mensagem de erro como: "Defina o caminho para o interpretador Python em Tools-Options-Python" ou "Falha ao executar o script Python. Defina o caminho para o interpretador Python em: Guia Tools-Options-Python".

Siga estas etapas para configurar corretamente o caminho do interpretador Python se o senhor já tiver o Python instalado:

1.Selecione o menu Iniciar no Windows e digite python.

2.Clique com o botão direito do mouse na versão do Python que o senhor gostaria de usar com o RoboDK e selecione Open file location (Abrir local do arquivo).

RoboDK API - Imagem 12

Repita esse procedimento na pasta que for aberta:

3.Clique com o botão direito do mouse em Python 3.7 e selecione Abrir local do arquivo.

RoboDK API - Imagem 13

4.Selecione Copiar no caminho na barra de título do caminho.

RoboDK API - Imagem 14

Forneça o caminho do Python nas configurações do RoboDK:

5.Abra o RoboDK.

6.Selecione Tools-Options.

7.Selecione a guia Python.

8.Cole o caminho na caixa do interpretador Python adicionando /python.exe, conforme mostrado na próxima imagem. O uso de barras ou barras invertidas deve funcionar.

RoboDK API - Imagem 15

API do C# API

A API do RoboDK para C# é um arquivo de código-fonte RoboDK.cs que contém a classe RoboDK (semelhante à classe Robolink do Python), a classe RoboDK.Item (semelhante à API da classe Robolink.Item do Python) e outras ferramentas para robótica, como uma classe Matrix (RoboDK.Mat) para operações de matriz para operar com transformações de pose.

C# (pronuncia-se "C sharp") é uma linguagem de programação desenvolvida pela Microsoft e projetada para a criação de uma variedade de aplicativos executados no .NET Framework. O C# é simples, poderoso, seguro quanto ao tipo e orientado a objetos. A seção principal deste documento explica as vantagens de usar a API do RoboDK com uma linguagem de programação amplamente utilizada, como o C#, para a programação de robôs.

A API do RoboDK para C# é fornecida com um projeto de amostra, conforme mostrado na imagem a seguir (o código-fonte completo está incluído). Também é possível usá-la como um pacote NuGet para integrá-la em qualquer projeto .Net.

RoboDK API - Imagem 16

Selecione Load File para abrir uma estação do RoboDK ou qualquer outro arquivo suportado pelo RoboDK. Se um robô for carregado, a variável ROBOT será atualizada de acordo (da mesma forma que o Select Robot).

Simulação em C# Simulation

Os programas C# são simulados por padrão quando os comandos do robô são usados (como MoveJ, MoveL ou setDO). Quando o projeto C# de amostra é iniciado, o modo de simulação também é selecionado por padrão.

RoboDK API - Imagem 17

Isso significa que os movimentos do robô serão simulados no RoboDK. Por exemplo, podemos mover o robô em passos de 10 mm selecionando os botões à direita (+Tx, -Tx, ...), ou podemos selecionar Run Test Program para executar um movimento hexagonal em torno da localização atual do robô.

Defina quaisquer pontos de interrupção para depurar seu aplicativo e inspecionar os alvos do robô. Os alvos do robô podem ser definidos como coordenadas de articulação ou variáveis Mat (Matrizes de pose 4x4) e podem ser inspecionados no formato XYZWPR para solucionar problemas do programa. Para obter mais informações sobre quadros de referência, consulte a seção Quadros de referência.

RoboDK API - Imagem 18

Também é possível alterar o Modo de Execução para Programação Offline ou Programação Online (Run on Robot), conforme mostrado nas seções a seguir.


C# OLP

Os programas C# podem ser gerados off-line usando o mesmo código C# usado para simular o robô (Programação off-line). Siga estas etapas para testar esse recurso:

1.Selecione Offline Programming (Programação off-line) na seção Run Mode (Modo de execução)

2.Selecione Run Test Program (Executar programa de teste) ou qualquer outra combinação de movimentos

3.Selecione Generate Prog para obter o programa do robô específico do fornecedor

Nesse caso, o programa não é simulado, mas executado rapidamente para obter o resultado: um programa de robô específico para um controlador de robô. O modo de execução será alterado de volta para Simulação assim que o programa for gerado.

RoboDK API - Imagem 19


Programação on-line em C# Online Programming

Os programas C# podem ser executados diretamente no robô usando o mesmo código C# usado para a simulação. A programação on-line permite a execução de um programa genérico em um controlador de robô específico usando os Robot Drivers. Siga estas etapas para testar esse recurso usando o projeto de amostra C#:

1.Selecione Run on Robot (Executar no robô) na seção Run Mode (Modo de execução)

2.Selecione quaisquer outros comandos que farão o robô se mover

Os movimentos serão executados no robô real e o simulador sincronizará os movimentos com o robô.

RoboDK API - Imagem 20

RDK = Robolink();

RDK.setRunMode(RUNMODE_RUN_ROBOT);

API do MATLAB

O MATLAB é uma linguagem de programação proprietária desenvolvida pela MathWorks. Entre outras coisas, o MATLAB permite manipulações de matrizes, plotagem de funções e dados e implementação de algoritmos. A RoboDK é um parceiro do Programa de Conexões da MathWorksoficial .

A API do RoboDK para MATLAB é fornecida como um grupo de arquivos de script (m-files), disponíveis aqui:

    Na pasta de instalação do RoboDK, normalmente C:/RoboDK/Matlab/.

    Na MathWorks MATLAB Central.

    No GitHub da API do RoboDK.

A seção principal deste documento explica as vantagens de usar a API do RoboDK com uma linguagem de programação amplamente utilizada, como o MATLAB, para a programação de robôs.

A API do RoboDK para MATLAB inclui:

    Robolink.m é uma classe que faz interface com o RoboDK. Qualquer objeto na árvore de estações do RoboDK pode ser recuperado usando o objeto Robolink e é representado pelo objeto RobolinkItem (o mesmo que a classe Robolink do Python).

    RobolinkItem.m é uma classe que representa um item do RoboDK na árvore de estações. É possível realizar diferentes operações nesse item (o mesmo que a classe Robolink.Item do Python).

    transl.m, rotx.m, roty.m e rotz.m são funções que criam matrizes de pose com um vetor de translação XYZ ou rotações ao longo de um eixo específico.

    Pose_2_XYZRPW.m e XYZRPW_2_Pose.m permitem a conversão de poses em posição XYZ e ângulos Euler RPW e vice-versa. Mais informações na seção Quadros de referência.

A página a seguir apresenta vários exemplos da API MATLAB do RoboDK, como a manipulação de itens, a geração de programas de robô e o controle do robô:       
https://robodk.com/Matlab-API

Exemplo do Simulink

Um projeto Simulink está disponível como exemplo. Na simulação, o robô é movido ao longo de um conjunto de coordenadas XYZ geradas arbitrariamente.

RoboDK API - Imagem 21

Opções da linha de comando

Esta seção descreve as opções de linha de comando disponíveis quando o RoboDK é iniciado. As opções de linha de comando também podem ser passadas usando a função Command da API

Esta seção mostra alguns comandos relevantes que podem ajudá-lo a personalizar a forma como o RoboDK é iniciado. Selecione Tools-Run Script-ShowCommands para exibir comandos adicionais que o senhor pode usar ao iniciar o RoboDK.

A chamada a seguir representa uma chamada genérica para o RoboDK com alguns argumentos:

RoboDK.exe -[option1] -[option2] open_fileA -[option3] open_fileB ...

Todos os formatos de arquivo suportados pelo RoboDK podem ser fornecidos como argumentos. Incluindo os seguintes formatos:

    RDK    Arquivo de estação do RoboDK: Esse arquivo contém um projeto inteiro em um único arquivo, incluindo quaisquer dependências (robôs, ferramentas, arquivos NC, ...).

    robô     Arquivo do robô: O carregamento de um arquivo de robô também criará um quadro de referência para esse robô.

    ferramenta       Arquivo de ferramenta: Automaticamente anexado ao último robô adicionado.

    stl/wrl/step/stp/iges/igs/sld Objeto (geometria 3D): Os objetos podem ser facilmente convertidos em ferramentas.

    apt/gcode/cnc Arquivo de programa NC: O RoboDK prepara automaticamente um projeto de fresagem (Utilities Milling Project).

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

A lista a seguir mostra algumas das opções de linha de comando disponíveis:

-NOSPLASH

Remove a imagem inicial do RoboDK ao iniciar.

-HIDDEN

Inicia o RoboDK oculto. O senhor precisará usar a API para mostrar o RoboDK.

-NEWINSTANCE

Força o início de uma nova instância do RoboDK.

-PORT=20501

Força a comunicação da API por meio da porta fornecida (protocolo TCP/IP). A porta padrão é 20500.

-EXIT_LAST_COM

Feche o RoboDK quando não houver mais instâncias se comunicando com a API do RoboDK.

-DEBUG

Cria um arquivo RoboDK.debug.txt na pasta bin que permite a depuração do aplicativo.

-SKIPINI

Ignorar configurações personalizadas do usuário.

-SKIPMAINT

Ignorar os popups de renovação da manutenção. Um mês antes de a manutenção expirar, o RoboDK pode mostrar um popup de bloqueio na inicialização para renovar a licença. Esse parâmetro permite que o senhor silencie esse aviso.

-SETTINGS=caminho do arquivo

Carrega os argumentos de um arquivo de texto. Cada linha desse arquivo de texto é considerada como um único argumento.

-NOSHOW

Oculta todas as janelas enquanto o RoboDK está carregando arquivos e atualizando programas.

-NO_WINDOWS

Oculta todas as janelas que normalmente são mostradas automaticamente ao carregar um arquivo NC.

-NOUI

Start RoboDK without the User Interface (Window and 3D view) (Iniciar o RoboDK sem a interface do usuário (janela e visualização 3D)). Use essa opção para executar o RoboDK em segundo plano usando a API. Se o senhor mostrar o RoboDK, não será possível ver a visualização 3D.

-TREE_STATE= -1

Não mostre a árvore da estação.

-TREE_STATE 6=

Mostrar a árvore da estação encaixada no lado esquerdo da janela e opaca.

-ADDFRAME

Add-in um novo quadro de referência. Todos os novos objetos carregados serão colocados nesse quadro de referência.

-RESET

Força que, se um novo objeto for carregado, ele será colocado no quadro de referência da estação (não no último quadro adicionado).

-RENAME=Nome

Altera o nome do último quadro de referência ou objeto que foi adicionado.

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

Move o último quadro de referência que foi adicionado (em mm e graus).

-UPDATE_APT=YES

Substituirá qualquer projeto de usinagem de robô que tenha o mesmo arquivo APT

-UPDATE_APT=NO

Não substitui nenhum projeto de usinagem do robô (criará projetos duplicados se houver uma correspondência de nome).

-UPDATE=file.apt

Carrega ou atualiza o arquivo APT e gera o programa do robô se não houver problemas.

-REPLACE_ITEMS=YES

Atualiza as ferramentas e os objetos existentes quando novos arquivos são carregados e há uma correspondência de nome.

-REPLACE_ITEMS=NO

Nunca substitui ferramentas e objetos quando novos arquivos são carregados.

-SETCOLOR=azul

Define a cor do último objeto carregado (objeto, ferramenta, robô ou mecanismo). A cor pode ser uma cor nomeada ou uma cor hexadecimal (como #RRGGBBAA, exemplo: #88112288).

-AUTOGEN_MAINPROG=Prog

Gera um programa principal que chama sequencialmente os programas vinculados aos arquivos APT carregados.

-SELECTTOOL=#1

Defina a primeira ferramenta do robô (ou o número correspondente) disponível como a ferramenta ativa (a ferramenta usada quando um novo programa é carregado).

-SELECTTOOL= "nome da ferramenta"

Selecione a ferramenta ativa usando uma correspondência de nome.

-ADDCUTTER=length|path/cutter name.stl

O Addcutter permite adicionar a geometria de um cortador em relação a um suporte de ferramenta. Um cortador é tratado como uma ferramenta no RoboDK, mantendo a geometria do cortador. A geometria do cortador deve ser um arquivo STL (ASCII ou binário) com a origem na ponta da ferramenta. O comprimento deve ser dado em mm com relação ao suporte da ferramenta (o eixo Z positivo do suporte da ferramenta deve apontar para fora).

-SELECTCUTTER= "nome do cortador"

Selectcutter tem o mesmo efeito que SELECTTOOL, os cortadores são tratados como ferramentas.

-SHOW

Mostra a janela do RoboDK. Isso é feito automaticamente quando todos os arquivos são carregados e os projetos de usinagem são atualizados.

O uso de uma das opções a seguir alterará a visibilidade provocada pelo comando -SHOW.

-QUIT

Sai do programa se não houver mensagens de erro.

-END

Sai do programa mesmo que haja mensagens de erro.