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 é 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).
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/).
Este exemplo mostra como criar uma nova estação usando um robô UR e simular um movimento hexagonal com o robô.
1.Selecione File➔ Open
2.Abra o robô UR10
3.Selecione File➔ 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 selecione Run Python Script.
7.Clique com o botão direito do mouse no item 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).
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 programa 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ô.
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
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 programa Python
2.Selecione Executar no robô
O programa será executado no robô à medida que o programa Python for executado.
RDK = Robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
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).
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.
4.Selecione Copiar no caminho na barra de título do caminho.
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.
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.
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).
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.
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.
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.
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.
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ô.
RDK = Robolink();
RDK.setRunMode(RUNMODE_RUN_ROBOT);
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
Um projeto Simulink está disponível como exemplo. Na simulação, o robô é movido ao longo de um conjunto de coordenadas XYZ geradas arbitrariamente.
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.