Os braços de robôs industriais são altamente repetíveis, mas não precisos, portanto, a precisão de um robô industrial pode ser aprimorada por meio da calibração do robô. A precisão nominal de um robô depende da marca e do modelo do robô. Com a calibração do robô, o senhor pode aumentar a precisão do robô em um fator de 2 a 10.
Com o RoboDK, o senhor pode calibrar braços de robôs de 6 eixos e obter precisão de até 0,050 mm para robôs pequenos e 0,150 mm para robôs de tamanho médio. A precisão que o senhor pode obter após a calibração depende muito do modelo do robô e da configuração. Com o RoboDK, o senhor não pode calibrar braços de robôs de 5 ou 7 eixos.
É necessário um sistema de medição para calibrar um robô. O RoboDK pode ser usado para calibrar os robôs, bem como para gerar programas de robôs precisos (isso inclui filtrar os programas e usar o mecanismo de programação off-line do RoboDK). O RoboDK também pode ser usado para testar a precisão do robô antes e depois da calibração por meio do teste de ballbar ou da fresagem do robô.
A calibração do robô pode melhorar consideravelmente a precisão dos robôs programados off-line, também conhecida como OLP (Off-Line Programming, programação fora da linha). Um robô calibrado tem uma precisão de posicionamento absoluta e relativa maior do que um robô não calibrado.
Os seguintes componentes de hardware e software são necessários para realizar corretamente a calibração do robô com o RoboDK.
1.Um ou mais braços de robô industrial (braço de robô de 6 eixos).
2.Um sistema de medição: qualquer laser tracker, como Leica, API ou Faro, ou CMM óptico, como a estereocâmera C-Track da Creaform, deve funcionar
O software correspondente para comunicação com o sistema de medição também deve ser instalado. Por exemplo, os rastreadores Leica não precisam de software adicional para serem instalados; por outro lado, o sistema C-Track requer o VxElements com as opções VxTrack e VxModel instaladas.
3.O software RoboDK deve ser instalado e é necessária uma licença apropriada para o teste de calibração do robô. Para licenças de rede, é necessária uma conexão com a Internet para verificar a licença. Para instalar ou atualizar o RoboDK para calibração do robô:
a.Faça o download do RoboDK na seção de downloads: https://robodk.com/download.
b.Configure o driver para o sistema de medição (não é necessário para a Creaform Optical CMM).
Descompacte e copie a pasta apropriada:
API Laser tracker: https://robodk.com/downloads/private/API.zip (rastreadores OTII e Radian) .
Faro Laser Tracker: https://robodk.com/downloads/private/Faro.zip (todos os rastreadores Faro).
Leica Laser Tracker: https://robodk.com/downloads/private/Leica.zip (todos os Leica Trackers).
para a pasta: C:/RoboDK/api/
Recomenda-se que o senhor crie um ambiente virtual da configuração do robô no RoboDK (configuração off-line) antes de começar a fazer medições. Esta seção explica como preparar a estação do RoboDK off-line. Isso pode ser feito antes de ter o robô e o rastreador, usando apenas um computador com o RoboDK instalado.
Os exemplos de projetos de calibração do RoboDK podem ser baixados da biblioteca de estações de amostra.
Pule esta seção se o senhor já tiver uma célula off-line. Os quadros de referência e os quadros de ferramentas podem ser estimados aproximadamente. Uma estação de amostra é mostrada na figura a seguir.
Uma estação do RoboDK é onde a estação do ambiente virtual e as informações de calibração são armazenadas. A estação é salva como um arquivo RDK. Siga as próximas etapas para criar uma estação de robô para a calibração do robô a partir do zero (visualização do vídeo: https://youtu.be/Nkb9uDamFb4):
1.Selecione o robô:
a.Selecione File➔ Open Robot library. A biblioteca on-line será aberta em seu navegador.
b.Use os filtros para encontrar seu robô por nome, marca, carga útil, ...
c.Selecione Open e o robô deverá aparecer automaticamente em seu projeto RoboDK aberto.
d.Como alternativa, o senhor pode fazer o download dos arquivos do robô (arquivo .robot) em http://robodk.com/library e abri-los com o RoboDK.
1.Prepare seu projeto para a calibração do robô:
a.Adicione quadros de referência selecionando Program➔ Add Reference Frame.
i.Um quadro de "Referência de medições" deve ser adicionado com relação ao quadro de base do robô.
ii.Uma "Referência do rastreador" deve ser adicionada em relação à "Referência de medições" que o senhor acabou de adicionar.
iii.Opcionalmente, é possível adicionar mais uma "Referência da ferramenta" com relação ao quadro "Referência de medições" para visualizar a posição da ferramenta vista pelo rastreador.
Dica 1: Arraste e solte itens na árvore para reconstruir a dependência que existe no mundo real. Por exemplo, a referência do rastreador deve ser colocada em relação à "Referência de medições".
Dica 2: o senhor pode mover aproximadamente qualquer quadro de referência ou quadro de ferramenta mantendo pressionada a tecla ALT e a tecla SHIFT+ALT, respectivamente. Como alternativa, o senhor pode clicar duas vezes no quadro de referência e inserir as coordenadas corretas.
Dica 3: Renomeie qualquer objeto pressionando a tecla F2 quando o item estiver selecionado na árvore.
b.Add-in o objeto de ferramenta (arquivos STL, IGES e STEP são formatos suportados) e arraste e solte-o no robô (dentro da árvore de itens), o que converterá automaticamente o objeto em uma ferramenta. Mais informações estão disponíveis aqui.
Opcional: Selecione Program➔ Add Tool (TCP) para adicionar qualquer TCP que o senhor queira visualizar na estação (para verificar se há colisões ou outros). Para definir um valor aproximado do TCP:
i.Clique duas vezes na nova ferramenta.
ii.Defina um valor aproximado de TCP. O senhor pode copiar/colar os 6 valores de uma vez usando os dois botões à direita.
iii.Recomenda-se renomear os TCPs usados para calibração com o nome "CalibTool id", em que id é o número do alvo de calibração.
c.Add-in outros arquivos CAD 3D (STL, IGES, STEP, SLD, ...) para modelar a estação virtual usando o menu File➔ Open... Alternativamente, arraste e solte os arquivos na janela principal do RoboDK.
Dica 1: Importe os arquivos 3D do espaço de trabalho de medição e nomeie-o como Workspace para que as medições do robô sejam geradas dentro do espaço de trabalho do rastreador. Como alternativa, defina o espaço de trabalho como invisível se o senhor não quiser restringir as medições dentro do espaço de trabalho do rastreador. Mais informações estão disponíveis na próxima seção.
Dica 2: É possível selecionar CTRL+ALT+Shift+P para bloquear a exportação de arquivos 3D confidenciais que foram importados no RoboDK.
2.Add-in o módulo de calibração na estação:
a.Selecione o menu Utilities (Utilitários)➔ Calibrate Robot (Calibrar robô).
b.Selecionar poses (6 DOF).
Em seguida, a seguinte janela será exibida.
Essa janela pode ser fechada por enquanto. O senhor pode abri-la a qualquer momento clicando duas vezes no item da estação de calibração do robô.
3.Salve a estação.
a.Selecione File➔ Save Station.
b.Selecione uma pasta e escolha um nome de arquivo.
c.Selecione salvar. Um novo arquivo RDK será gerado (arquivo de estação do RoboDK).
O senhor pode recuperar as modificações da estação a qualquer momento abrindo o arquivo RDK (clique duas vezes no arquivo).
Em resumo, é importante verificar novamente os seguintes pontos:
1.O quadro de referência "Referência de medições" deve ser anexado diretamente ao quadro de referência da base do robô.
Por enquanto, o senhor pode usar uma estimativa desse quadro de referência (valor aproximado).
2.A referência do rastreador deve ser anexada diretamente à referência de medições. A referência do rastreador deve ser uma posição estimada do dispositivo de medição do rastreador em relação à referência de medições. A configuração básica encontrará a posição exata do rastreador.
3.O projeto "Calibração do robô" está presente na estação e todas as medições que o senhor planeja fazer estão livres de colisão e visíveis pelo rastreador (clique duas vezes nas configurações de calibração e selecione mostrar para cada grupo dos quatro grupos de medições).
4.Se quiser verificar automaticamente se há colisões, o senhor deve usar a tag de nome "collision" em todos os objetos que quiser usar para verificar colisões. Recomenda-se usar uma ferramenta cerca de 25% maior do que a ferramenta calibrada para evitar colisões com segurança.
Há quatro conjuntos de medições que são necessários para realizar a calibração do robô com sucesso:
1.Configuração básica: são necessárias seis medições (ou mais) movendo os eixos 1 e 2 para posicionar a referência de calibração em relação ao robô. Selecione Show (Mostrar) na janela de configurações de calibração e o robô se moverá ao longo da sequência.
2.Configuração da ferramenta: são necessárias sete ou mais medições para calibrar o flange da ferramenta e os alvos da ferramenta (eixo móvel 5 e 6). Selecione Show e o robô se moverá ao longo da sequência.
3.Medições de calibração: São necessárias 60 medições ou mais para calibrar o robô. Essas medições podem ser colocadas aleatoriamente no espaço de trabalho do robô e não podem colidir com os objetos ao redor.
4.Medições de validação (opcional): podem ser usadas quantas medições o senhor desejar para validar a precisão do robô. Essas medições são usadas somente para validar a precisão do robô e não para calibrar o robô.
Os dois primeiros conjuntos de medições são gerados automaticamente pelo RoboDK. Selecione Show e o robô seguirá a sequência (como mostrado nas imagens a seguir). Se a sequência precisar ser alterada, selecione Measure (Medir) e exporte as medições de calibração como um arquivo CSV, selecionando Export data (Exportar dados). Esse arquivo pode ser editado usando uma planilha do Excel e reimportado clicando em Import data (Importar dados).
Os dois últimos conjuntos de medições (calibração e validação) podem ser gerados usando o script de macro chamado "
●Número de medições: O número de medições a serem geradas. Por padrão, são usadas 80 medições porque é necessário um mínimo de 60 medições para a calibração do robô.
●Posição de referência: A posição de referência deve ser uma posição do robô em que a ferramenta esteja voltada para o rastreador com alvos visíveis.
●Limites das juntas: Os limites inferior e superior da junta devem ser fornecidos.
●Limites cartesianos: O senhor pode fornecer limites cartesianos (valores X, Y, Z) em relação ao quadro de referência do robô.
O script gera automaticamente medições em que a ferramenta está voltada para o rastreador, além de respeitar as restrições cartesianas e de articulação. Uma rotação de +/-180 graus em torno da ferramenta é permitida em torno da direção que está voltada para o rastreador na posição de referência. Além disso, a sequência de movimentos das articulações é livre de colisões e está dentro do espaço de trabalho de medição (se o espaço de trabalho estiver definido como visível). A imagem a seguir mostra o resumo que é apresentado ao usuário antes do início da sequência automática. A sequência pode levar até 5 minutos para ser concluída.
Uma nova mensagem aparecerá quando o algoritmo for concluído. Selecione Calibração para usar as 60 medições para calibração do robô. O senhor pode executar novamente o mesmo script para gerar outro conjunto de medições para validação. Essa etapa é opcional, mas recomenda-se 60 medições ou mais para fins de validação.
Se desejar, o senhor pode modificar o script clicando com o botão direito do mouse em Create measurements script e selecionando Edit script e, em seguida, modificando parâmetros adicionais do algoritmo. O script salva automaticamente a entrada do usuário como parâmetros da estação. O senhor pode visualizar, editar ou excluir essas configurações clicando com o botão direito do mouse na estação e selecionando Station parameters (Parâmetros da estação), conforme mostrado na próxima imagem.
Por fim, também é possível importar configurações que foram selecionadas manualmente, selecionando Importar dados (dentro do menu Medida). O senhor pode importar um arquivo CSV ou TXT como uma matriz Nx6, em que N é o número de configurações.
São necessários dois objetos: um objeto ferramenta (segurado pelo robô) e um objeto de referência de base (estático na célula). O rastreador deve ser capaz de ver o objeto ferramenta e o objeto de referência de base para cada medição. Esses objetos também são conhecidos como "modelos" (em VXelements) e são definidos por um conjunto de alvos anexados à ferramenta e aos objetos do quadro de referência. O rastreador rastreia a posição desses alvos, fornecendo o quadro de referência desses objetos como uma medida em relação ao rastreador. O RoboDK considera cada medição como a posição da ferramenta em relação ao quadro de referência de base, de modo que o rastreador pode ser movido sem alterar as medições.
É necessário anexar um grupo de alvos à ferramenta e ao quadro de referência, respectivamente, para permitir o rastreamento adequado desses objetos. As imagens a seguir mostram alguns exemplos de configurações apropriadas:
As subseções a seguir devem ser realizadas sequencialmente para que o senhor esteja pronto para começar a fazer medições. Por fim, será necessário conectar o rastreador e o robô ao computador para automatizar o procedimento de medição.
Primeiro, são necessários dois modelos: um modelo da ferramenta e um modelo que represente a estrutura de referência. Um modelo é um objeto definido como uma lista de pontos (coordenadas X,Y,Z) correspondentes aos alvos com relação à referência do modelo (ferramenta ou estrutura de referência de base).
O senhor deve seguir essas etapas duas vezes para definir a ferramenta e os modelos básicos:
1.Conecte-se ao VXElements selecionando Connect➔ Connect Creaform's C-Track Optical CMM.
2.Selecione Connect (Conectar) e aguarde até que a conexão esteja pronta.
Certifique-se de calibrar o rastreador e a HandyProbe, se isso for exigido pelo VXElements. Certifique-se também de ter as opções de software VXTrack e VXModel fornecidas pela Creaform.
3.Selecione Base reference no RoboDK. O VXelements será aberto e exibirá alvos de posicionamento visíveis. O senhor deve selecionar os pontos estáticos. Certifique-se de selecionar todos os pontos que representam a referência estática. O senhor não deve incluir pontos que possam se mover.
4.Selecione Referência da ferramenta no RoboDK e repita essa operação selecionando os pontos que representam o modelo da ferramenta.
Para mover adequadamente o quadro de referência do objeto, o senhor deve usar o HandyProbe e trazer esses recursos para a sessão virtual do VXelements. O modelo que está sendo usado deve ser definido como o modelo de posicionamento para que os recursos sejam sondados em relação a esse modelo. É possível sondar pontos, linhas, planos, cilindros, cones e definir quadros de referência com relação a esses recursos.
O IP do rastreador é necessário para configurar corretamente a comunicação no RoboDK. Certifique-se de que o VXelements não esteja em execução e siga estas etapas para verificar a comunicação com o rastreador:
a.Selecione o menu "Connect➔ Connect Stereocamera". Uma nova janela deverá se abrir.
b.Insira o "Base model" (Modelo de base) e o "Tool model" (Modelo de ferramenta), como arquivos de texto (gerados na seção anterior). Essas são as posições dos alvos que definem a estrutura de referência e a estrutura da ferramenta, respectivamente.
c.Selecione o botão "Connect" (Conectar).
d.Quando a conexão for bem-sucedida, o senhor deverá fornecer os modelos Base e Tool como arquivos de texto (.txt).
O senhor verá que uma versão integrada do VXelements é iniciada e, após alguns segundos, deverá ver uma mensagem verde mostrando "Ready" (Pronto) se a conexão for bem-sucedida. As janelas do VXelements podem ser fechadas e a conexão permanecerá ativa. Se a conexão não for bem-sucedida, o senhor deve se certificar de que nenhum processo do VXelements esteja sendo executado nos bastidores na barra de tarefas do Windows ou no gerenciador de tarefas (selecione CTRL+ALT+DEL para forçar a parada do processo "VXelementsApiImplementation") e, em seguida, selecione Connect no RoboDK para tentar novamente.
O IP do robô (ou o número da porta COM para conexões RS232) é necessário para configurar corretamente a comunicação com o RoboDK. Siga estas etapas para verificar a comunicação com o robô:
1.Selecione Connect➔ Connect robot. Uma nova janela será exibida.
2.Defina o IP e a porta do robô (ou a porta COM se a conexão for via RS232).
3.Clique no botão Connect (Conectar).
4.Consulte o apêndice se surgir algum problema.
Se a conexão for bem-sucedida, o senhor verá uma mensagem verde exibindo Ready (Pronto). A posição do robô virtual deve corresponder exatamente à posição do robô real se o senhor selecionar Get Position. Como alternativa, selecione Move Joints (Mover juntas) para mover o robô para a posição atual definida no simulador. A janela pode ser fechada e a conexão permanecerá ativa.
A calibração do robô é dividida em 4 etapas. Cada etapa requer a realização de um conjunto de medições. Essas quatro etapas devem ser seguidas em ordem:
1.Medições de referência de base (3 minutos).
2.Medições de referência da ferramenta (3 minutos).
3.Medições de calibração (7 minutos, 60 medições).
4.Medições de validação (7 minutos, 60 medições).
O vídeo a seguir mostra como realizar essa calibração em 20 minutos: https://youtu.be/Htpx-p7tmYs. As medições de validação (etapa 4) não são obrigatórias para calibrar o robô, mas fornecem um ponto de vista objetivo dos resultados de precisão. Também é possível ver o impacto de calibrar o robô em uma área e validá-lo em uma área diferente.
Selecione o botão Measure (Medir) para cada um dos quatro conjuntos de medições. Isso abrirá uma nova janela que permite fazer novas medições, bem como importar e exportar medições existentes em um arquivo de texto (formato csv ou txt).
Por padrão, o robô e o sistema de medição são sincronizados automaticamente por meio do robô conectado. Se um driver de robô não estiver disponível, o senhor ainda poderá realizar a calibração do robô gerando um programa de robô que solicitará ao usuário no pendente de ensino a sincronização manual.
1.Desmarque a opção Auto synchronize (Sincronização automática).
2.Clique no botão Make robot program (Criar programa do robô).
3.Use o pós-processador adequado para gerar o programa do robô.
Essas medições podem ser realizadas em qualquer lugar do flange da ferramenta se o senhor medir o mesmo alvo em todas as 6 medições. Para iniciar as medições, selecione Medir na seção Configuração da base. A janela a seguir será aberta. Em seguida, selecione Start Measure (Iniciar medição) e o robô se moverá sequencialmente pelas medições programadas.
Feche a janela quando as medições estiverem concluídas e o quadro de referência Measurements (Medições) será atualizado em relação ao quadro de base do robô. Se o senhor não tiver selecionado nenhum quadro de referência, poderá adicionar uma referência (selecione Program➔ Add Reference Frame) e colocá-la sob a referência da base do robô (Arraste e solte na árvore de itens).
O resumo mostrará a posição e a orientação do quadro de referência do robô em relação ao quadro de referência da calibração ([x,y,z,w,p,r] formato, em mm e radianos).
Quando essa etapa for concluída, o senhor poderá exibir com precisão o espaço de trabalho do rastreador em relação ao robô no RoboDK em tempo real.
Como na seção anterior: selecione Measure (Medida) na seção Tool setup (Configuração da ferramenta). A janela a seguir será aberta. Selecione Start Measure (Iniciar medição) e o robô se moverá sequencialmente pelas medições planejadas. Clique duas vezes em uma medição para continuar a medição a partir daquela posição.
O resumo mostrará o TCP calibrado (posição e orientação) quando o procedimento for concluído. A definição do TCP (na imagem a seguir, "Spindle") será atualizada automaticamente. Se o senhor não tiver selecionado nenhum TCP, poderá adicionar um novo (selecione "Program➔ Add empty Tool") e selecione "Recalculate".
Selecione Measure (Medição) na seção Calibration (Calibração) para abrir a janela de medições de calibração do robô. Em seguida, selecione Start Measure (Iniciar medição) e o robô se moverá sequencialmente pelas medições planejadas. Clique duas vezes em uma medição para continuar medindo a partir daquela posição.
Feche a janela quando as medições forem concluídas. O robô será calibrado automaticamente e exibirá a seguinte mensagem se não houver problemas.
Por fim, a tela verde exibirá algumas estatísticas sobre as medições de calibração e o quanto a precisão foi melhorada para essas medições.
O senhor não deve validar a precisão do robô usando as mesmas medições que usou para calibrar o robô; portanto, recomenda-se fazer medições adicionais para validar a precisão (tendo um ponto de vista mais objetivo dos resultados da precisão).
O mesmo procedimento de calibração deve ser seguido para fazer as medições de validação. O resumo exibirá as estatísticas de validação. Consulte a seção de resultados a seguir para obter mais informações.
Após a conclusão da calibração, o senhor pode analisar a melhoria da precisão lendo as estatísticas fornecidas pelo RoboDK. Para exibir essas estatísticas, abra a janela de calibração do robô (clique duas vezes no ícone Robot Calibration). A janela de resumo na seção de validação exibirá os erros antes da calibração (cinemática nominal) e após a calibração (cinemática calibrada). São fornecidas duas tabelas: uma mostra as estatísticas referentes aos erros de posição e a outra mostra os erros de distância:
●Erros de posição: O erro de posição é a precisão que o robô pode atingir em um ponto com relação a um quadro de referência.
●Erros de distância: O erro de distância é obtido pela medição do erro de distância de pares de pontos. A distância entre dois pontos vista pelo robô (obtida usando a cinemática calibrada) é comparada com a distância vista pelo sistema de medição (medida fisicamente). Todas as combinações são levadas em conta. Se o senhor fez 315 medições, terá 315x315/2= 49455 valores de erro de distância.
As estatísticas fornecidas são o erro médio, o desvio padrão (std) e o erro máximo. Também é fornecida a média mais três vezes o desvio padrão, que corresponde ao erro esperado para 99,98% de todas as medições (se o senhor levar em conta que os erros seguem uma distribuição normal).
Selecione Show stats (Mostrar estatísticas) e dois histogramas mostrarão a distribuição dos erros antes e depois da calibração, um histograma para a precisão da posição e o outro para a precisão da distância. As imagens a seguir correspondem às 315 medições de validação usadas neste exemplo.
Por fim, o senhor pode selecionar "Make report" e será gerado um relatório em PDF com as informações apresentadas nesta seção.
Depois que o robô tiver sido calibrado, o senhor tem duas opções para gerar programas usando a precisão absoluta do robô calibrado:
●Filtrar programas existentes: todos os alvos do robô dentro de um programa são modificados para melhorar a precisão do robô. Isso pode ser feito manualmente ou usando a API.
●Use o RoboDK para programação off-line para gerar programas precisos (os programas gerados já estão filtrados, incluindo os programas gerados usando a API).
Para filtrar um programa existente manualmente: arraste e solte o arquivo do programa do robô na tela principal do RoboDK (ou selecione File➔ Open) e selecione Filter only. O programa será filtrado e salvo na mesma pasta. O resumo do filtro mencionará se houve algum problema ao usar o algoritmo de filtragem. O senhor também tem a opção de importar um programa se quiser simulá-lo dentro do RoboDK. Se o programa tiver alguma dependência (definições de estrutura de ferramentas ou estrutura de base, subprogramas, ...), elas deverão estar localizadas no mesmo diretório em que o primeiro programa for importado.
Depois de importar o programa para o RoboDK, o senhor pode gerá-lo novamente com ou sem precisão absoluta. Nas configurações principais de precisão do RoboDK (Tools➔ Options➔ Accuracy), o senhor pode decidir se deseja sempre gerar os programas usando a cinemática precisa, se deseja perguntar todas as vezes ou se deseja usar a cinemática atual do robô. A cinemática atual do robô pode ser alterada clicando com o botão direito do mouse no robô e ativando/desativando a tag "Use accurate kinematics" (Usar cinemática precisa). Se ela estiver ativa, o senhor verá um ponto verde; se não estiver ativa, verá um ponto vermelho.
É possível filtrar um programa completo usando o RoboDK com um robô calibrado e o programa do robô usando a chamada FilterProgram:
robot.FilterProgram(file_program)
Um exemplo de macro chamado FilterProgram está disponível na seção Macros da biblioteca. O código a seguir é um exemplo de script Python que usa a API do RoboDK para filtrar um programa.
from robolink import * # API para se comunicar com o RoboDK
from robodk import * # operações básicas de matriz
import os # Operações de caminho
# Obter o diretório de trabalho atual
CWD= os.path.dirname(os.path.realpath(__file__))
# Inicie o RoboDK se ele não estiver em execução e vincule-o à API
RDK = Robolink()
# Opcional: forneça os seguintes argumentos para execução nos bastidores
#RDK= Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')
# Obtenha a estação calibrada (arquivo .rdk) ou o arquivo do robô (.robot):
# Dica: após a calibração, clique com o botão direito do mouse em um robô e selecione "Save as .robot" (Salvar como .robô)
calibration_file= CWD+ '/KUKA-KR6.rdk'
# Obter o arquivo do programa:
file_program= CWD+ '/Prog1.src'
# Carregue o arquivo RDK ou o arquivo do robô:
calib_item= RDK.AddFile(calibration_file)
se não for calib_item.Valid():
raise Exception("Something went wrong loading "+ calibration_file)
# Recupere o robô (não haverá pop-up se houver apenas um robô):
robot= RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)
se não for robot.Valid():
raise Exception("Robot not selected or not available")
# Ativar a precisão
robot.setAccuracyActive(1)
# Filtrar programa: isso salvará automaticamente uma cópia do programa
# com um arquivo renomeado, dependendo da marca do robô
status, summary= robot.FilterProgram(file_program)
se o status== 0:
print("Program filtering succeeded")
print(summary)
calib_item.Delete()
RDK.CloseRoboDK()
E mais:
print("A filtragem do programa falhou! Código de erro: %i" % status)
print(summary)
RDK.ShowRoboDK()
O código a seguir é um exemplo de script Python que usa a API do RoboDK para filtrar um alvo (alvo de pose ou alvo de articulação), usando o comando FilterTarget:
pose_filt, joints = robot.FilterTarget(nominal_pose, estimated_joints)
Esse exemplo é útil se um aplicativo de terceiros (que não seja o RoboDK) gerar o programa do robô usando alvos de pose.
from robolink import * # API para se comunicar com o RoboDK
from robodk import * # operações básicas de matriz
def XYZWPR_2_Pose(xyzwpr):
return KUKA_2_Pose(xyzwpr) # Converta X,Y,Z,A,B,C em uma pose
def Pose_2_XYZWPR(pose):
return Pose_2_KUKA(pose) # Converta uma pose em X,Y,Z,A,B,C
# Inicie a API do RoboDK e recupere o robô:
RDK= Robolink()
robô= RDK.Item('', ITEM_TYPE_ROBOT)
se não for robot.Valid():
raise Exception("Robot not available")
pose_tcp= XYZWPR_2_Pose([0, 0, 200, 0, 0, 0, 0]) # Define o TCP
pose_ref= XYZWPR_2_Pose([400, 0, 0, 0, 0, 0, 0]) # Define o quadro de referência
# Atualizar o TCP do robô e o quadro de referência
robot.setTool(pose_tcp)
robot.setFrame(pose_ref)
# Muito importante para SolveFK e SolveIK (cinemática direta/inversa)
robot.setAccuracyActive(False) # A precisão pode ser ativada ou desativada
# Definir um alvo nominal no espaço da articulação:
articulações= [0, 0, 90, 0, 90, 0]
# Calcular a posição nominal do robô para o alvo da articulação:
pose_rob= robot.SolveFK(joints) # flange do robô em relação à base do robô
# Calcular pose_alvo: o TCP em relação ao quadro de referência
pose_target= invH(pose_ref)*pose_rob*pose_tcp
print('Target not filtered:')
print(Pose_2_XYZWPR(pose_target))
joints_approx= joints # joints_approx deve estar dentro de 20 graus
pose_target_filt, real_joints= robot.FilterTarget(pose_target, joints)
print('Target filtered:')
print(real_joints.tolist())
print(Pose_2_XYZWPR(pose_target_filt))
Depois que o robô é calibrado, o senhor geralmente precisa do RoboDK para filtrar os programas, portanto, é necessária uma licença do RoboDK (uma licença OLP básica é suficiente para gerar programas de robôs precisos depois que o robô é calibrado). Filtrar um programa significa que os alvos em um programa são alterados/otimizados para melhorar a precisão do robô, levando em conta todos os parâmetros de calibração (cerca de 30 parâmetros).
Como alternativa, o senhor pode calibrar apenas os deslocamentos das juntas mais os quadros de referência da base e da ferramenta (4 parâmetros de deslocamento das juntas mais 6 parâmetros para o quadro da base mais 6 parâmetros para o quadro da ferramenta). A calibração não será tão precisa quanto se o senhor usasse a calibração completa padrão, mas pode permitir a inserção de determinados parâmetros no controlador do robô e não depender do RoboDK para gerar programas de robô.
Para obter a calibração somente para os deslocamentos das juntas, o senhor deve selecionar o botão Calib. Param. e, em seguida, o botão Mastering (dentro do menu de calibração do robô).
Uma nova janela aparecerá depois que o senhor selecionar Make mastering program. Nessa janela, o senhor pode selecionar os eixos que deseja considerar para criar a nova posição inicial
O botão Make mastering program aparecerá na janela de calibração do robô. Selecione esse botão para gerar um programa que levará o robô à nova posição inicial. Transfira-o para o robô e execute-o. Em seguida, a nova posição inicial deve ser registrada.
Se o robô e o PC estiverem conectados, o senhor pode clicar com o botão direito do mouse no programa e selecionar Send Program to Robot para enviar automaticamente o programa para o robô. Caso contrário, o senhor pode selecionar Generate robot program (Gerar programa do robô) para ver os novos valores de articulação para a posição inicial.
O RoboDK fornece alguns utilitários para calibrar quadros de referência e quadros de ferramentas. Essas ferramentas podem ser acessadas em Utilities➔ Calibrate Reference frame e Utilities➔ Calibrate Tool frame, respectivamente.
Para calibrar um quadro de referência ou um quadro de ferramenta (também conhecido como quadro do usuário e TCP, respectivamente), o senhor precisa de algumas configurações do robô que toquem 3 ou mais pontos; essas configurações do robô podem ser valores de juntas ou coordenadas cartesianas (com dados de orientação em alguns casos). Recomenda-se usar os valores das juntas em vez das coordenadas cartesianas, pois é mais fácil verificar a configuração real do robô no RoboDK (copiando e colando as juntas do robô na tela principal do RoboDK).
Selecione Utilities➔ Calibrate tool para calibrar o TCP usando o RoboDK. O senhor pode usar quantos pontos desejar, usando diferentes orientações. É melhor usar mais pontos e mudanças de orientação maiores, pois o senhor obterá uma estimativa melhor do TCP, bem como uma boa estimativa do erro do TCP.
As duas opções a seguir estão disponíveis para calibrar um TCP:
●Ao tocar em um ponto estacionário com o TCP com diferentes orientações.
●Ao tocar em um plano com o TCP (como um apalpador).
Recomenda-se calibrar tocando em uma referência plana se o senhor tiver que calibrar um apalpador ou um fuso. Esse método é mais estável contra erros do usuário.
Se o TCP for esférico, o centro da esfera será calculado como o novo TCP (não é necessário fornecer o diâmetro da esfera).
As etapas a seguir devem ser seguidas para calibrar o TCP com um plano (como visto na figura):
1.Selecione a ferramenta que precisa ser calibrada.
2.Selecione o método de calibração➔ "Calib XYZ by plane".
3.Selecione calibrar usando "joints" (juntas).
4.Selecione o robô que está sendo usado.
5.Selecione o número de configurações que o senhor usará para a calibração do TCP (recomenda-se usar 8 configurações ou mais).
6.Selecione uma estimativa do plano de referência. Se o plano de referência não for paralelo ao plano XY do robô (da referência do robô), o senhor deve adicionar uma estimativa desse plano de referência dentro de± 20 graus. A posição desse plano não é importante, apenas a orientação.
7.O senhor pode começar a preencher a tabela de valores de junta. O senhor pode preenchê-la manualmente ou copiando/colando com os botões (como mostrado na imagem). O senhor também pode usar o botão "Get Jx" para obter os valores atuais das articulações do robô no simulador. Se estiver obtendo as articulações de um robô real conectado ao robô, o senhor deve primeiro selecionar "Get current joints" no menu de conexão do robô (consulte a imagem anexa ou o apêndice para obter mais informações sobre como conectar um robô ao RoboDK). É altamente recomendável que o senhor mantenha uma cópia separada das articulações usadas para calibração (como um arquivo de texto, por exemplo).
8.Quando a tabela estiver preenchida, o senhor verá os novos valores de TCP (X,Y,Z) como "Calibrated TCP" (TCP calibrado), no final da janela. O senhor pode selecionar "Update" (Atualizar) e o novo TCP será atualizado na estação RoboDK. A orientação da sonda não pode ser encontrada usando esse método.
9.O senhor pode selecionar "Show errors" e verá o erro de cada configuração em relação ao TCP calculado (que é a média de todas as configurações). O senhor pode excluir uma configuração se ela tiver um erro maior do que as outras.
10.O senhor deve atualizar manualmente os valores no controlador do robô real (somente X,Y,Z). Se esse TCP for usado em um programa gerado pelo RoboDK, não será necessário atualizar os valores no controlador do robô.
Selecione Utilities➔ Calibrate reference para calibrar um quadro de referência. É possível definir um quadro de referência usando diferentes métodos. No exemplo da figura, um quadro de referência é definido por três pontos: os pontos 1 e 2 definem a direção do eixo X e o ponto 3 define o eixo Y positivo.
O senhor deve prestar atenção especial se quiser recuperar os valores de masterização/home para os eixos 1 e 6. Esses valores estão diretamente relacionados à estrutura de base do robô para o eixo 1 e a uma referência TCP para o eixo 6. Portanto, devem ser feitas medições externas para definir corretamente esses valores. Essa janela aparece depois que o senhor seleciona "Make mastering program" no menu de calibração.
Os próximos dois procedimentos devem ser seguidos para definir corretamente os parâmetros de masterização para esses dois eixos.
O senhor deve usar um alvo de referência para definir corretamente a posição "inicial" do eixo 6. O desvio de ângulo será a rotação em torno do eixo Z do flange da ferramenta necessária para melhor ajustar o TCP medido (X,Y,Z) com a referência TCP conhecida. O TCP medido (veja a imagem a seguir) é um dos TCPs que foram medidos na etapa dois do procedimento de calibração. O TCP de referência é uma referência conhecida que corresponde a um dos TCP da ferramenta de calibração que está sendo usada.
Idealmente, o TCP de referência deve ser medido pela CMM em relação ao flange da ferramenta (uma réplica do flange da ferramenta do robô seria melhor). Como alternativa, o senhor pode usar um novo robô para medir (etapa dois do procedimento de calibração) o TCP pela primeira vez e usar um TCP medido como referência. É importante usar um pino de cavilha e/ou a referência apropriada do flange da ferramenta para garantir que o efetor final seja sempre colocado na mesma posição.
O senhor deve medir corretamente três alvos de base antes de iniciar a calibração do robô se quiser alinhar o eixo 1 com a estrutura de base real do robô. Esses alvos de base devem ser escolhidos de modo que o quadro de referência possa ser encontrado em relação ao robô.
A posição "inicial" do eixo 1 depende diretamente dos três alvos da base, bem como da configuração da base do robô. A configuração da base do robô é a primeira etapa de calibração, na qual a estrutura de base do sistema de medição é posicionada em relação à estrutura de base do robô, movendo e medindo os eixos 1 e 2.
Os alvos básicos do sistema de medição podem ser definidos pressionando "Set base targets" (definir alvos básicos) (veja a imagem a seguir). Essas são três medições que definirão a estrutura de referência desejada do robô (as duas primeiras medições definem o eixo X e o terceiro ponto o eixo Y positivo). O senhor deve usar pontos de referência apropriados relacionados à base do robô para que esse procedimento possa ser repetido.
O ângulo de correção para a articulação 1 será o ângulo entre o eixo X da referência de base medido por meio de 3 pontos e a referência de base medida pelo movimento dos eixos 1 e 2 do robô. Obviamente, ambos os vetores são previamente projetados para o plano XY da referência de base obtida ao tocar os pontos da árvore.