Os robôs industriais têm alta repetibilidade, mas não sã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ô, você pode aumentar a precisão do robô em um fator de 2 a 10.
Com o RoboDK, você pode calibrar 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 você pode obter após a calibração depende muito do modelo do robô e da sua configuração. Com o RoboDK, você não pode calibrar 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 maior precisão de posicionamento absoluto e relativo 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 robô industrial (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 trackeres 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 os trackers Leica mais recentes)
Descompacte e copie a subpasta em:
C:/RoboDK/api/
API Laser Tracker: https://robodk.com/downloads/private/API.zip (trackeres OTII e Radian).
Faro Laser Tracker: https://robodk.com/downloads/private/Faro.zip (todos os trackeres Faro).
Leica Laser Tracker: https://robodk.com/downloads/private/Leica.zip (todos os trackeres Leica) .
4.Ao usar um laser tracker, um ou mais pontos devem ser anexados à ferramenta do robô. Certifique-se de evitar colocar o ponto próximo ao eixo 6 durante a configuração da ferramenta. Caso contrário, não será possível identificar corretamente o local do flange do robô.
Recomenda-se que você 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 tracker, 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 exemplo.
Pule esta seção se você já tiver uma célula off-line. Os frames de referência e os frames de ferramentas podem ser estimados aproximadamente. Uma estação de exemplo é 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 Arquivo ➔ Abrir Biblioteca de Robôs. A biblioteca on-line será aberta em seu navegador.
b.Use os filtros para encontrar seu robô por nome, marca, carga útil, ...
c.Selecione Abrir e o robô deverá aparecer automaticamente em seu projeto RoboDK aberto.
d.Como alternativa, você pode fazer o download dos arquivos do robô (arquivo .robot) em http://robodk.com/library e abri-los com o RoboDK.
2.Prepare seu projeto para a calibração do robô:
a.Adicione frames de referência selecionando Programa ➔ Adicionar Frame de Referência.
i.Um frame de "Referência de medições" deve ser adicionado com relação ao frame de base do robô.
ii.Uma "Referência do tracker" deve ser adicionada em relação à "Referência de medições" que você acabou de adicionar.
iii.Opcionalmente, é possível adicionar mais uma "Referência da ferramenta" com relação ao frame "Referência de medições" para visualizar a posição da ferramenta vista pelo tracker.
Dica 1: Arraste e solte itens na árvore para reconstruir a dependência que existe no mundo real. Por exemplo, a referência do tracker deve ser colocada em relação à "Referência de medições".
Dica 2: Mova aproximadamente qualquer frame de referência ou frame de ferramenta mantendo pressionada a tecla ALT e a tecla SHIFT+ALT, respectivamente. Como alternativa, clique duas vezes no frame de referência e insira 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 automaticamente o objeto em uma ferramenta. Mais informações estão disponíveis aqui.
Opcional: Selecione Programa ➔ Adicionar Ferramenta (TCP) para adicionar qualquer TCP que você 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. Você pode copiar/colar os 6 valores de uma só 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 ponto de calibração.
c.Add-in outros arquivos CAD 3D (STL, IGES, STEP, SLD, ...) para modelar a estação virtual usando o menu Arquivo➔ Abrir... 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 tracker. Como alternativa, defina o espaço de trabalho como invisível se você não quiser restringir as medições dentro do espaço de trabalho do tracker. 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.
3.Adicione o módulo de calibração na estação:
a.Selecione o menu Utilitários ➔ Calibrar Robô.
b.Selecione Pontos (3 DOF)
Opcionalmente, você pode selecionar Poses (6 DOF) se tiver um laser tracker que possa fazer medições de pose e seja compatível com o RoboDK (como o laser tracker Leica T-Mac).
Em seguida, a seguinte janela será exibida.
Essa janela pode ser fechada por enquanto. Você pode abri-la a qualquer momento clicando duas vezes no item da estação de calibração do robô.
4.Salve a estação.
a.Selecione Arquivo ➔ Salvar Estação.
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).
Você 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.A ferramenta de calibração (ponto SMR) deve ser chamada de "CalibTool 1". É altamente recomendável iniciar a calibração com apenas uma ferramenta/ponto. Se você tiver mais pontos de calibração, deverá aumentar o índice de acordo. Por exemplo, se você tiver 3 ferramentas de calibração/SMRs, deve nomeá-las "CalibTool 1", "CalibTool 2" e "CalibTool 3".
2.O frame de referência de medições depende diretamente da base do robô.
Por enquanto, você pode usar uma estimativa desse frame de referência.
3.A referência do tracker deve ser anexada diretamente à referência de medições. A referência do tracker deve ser uma posição aproximada do laser tracker em relação à referência de medições. A configuração da base ajustará corretamente a localização do tracker.
4.O projeto de calibração do robô está presente na estação e todas as medições que você planeja fazer estão livres de colisão e visíveis pelo laser tracker (selecione mostrar para cada grupo de medições).
5.Se quiser verificar automaticamente se há colisões, você 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 verificação de colisões para evitar colisões com segurança.
Há quatro conjuntos de medições necessárias 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 Exibir 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 pontos da ferramenta (eixo móvel 5 e 6). Selecione Exibir 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 você 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 Exibir e o robô seguirá a sequência (como mostrado nas imagens a seguir). Se a sequência precisar ser alterada, selecione 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 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 tracker com pontos visíveis.
●Limites das eixos: Os limites inferior e superior da eixo devem ser fornecidos.
●Limites cartesianos: Você pode fornecer limites cartesianos (valores X, Y, Z) em relação ao frame de referência do robô.
O script gera automaticamente medições em que a ferramenta está voltada para o tracker, 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 tracker na posição de referência. Além disso, a sequência de movimentos das articulações está livre de colisões e 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.
Se desejar, você pode modificar o script clicando com o botão direito do mouse em Create Measurements script e selecionando Editar 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. Você pode visualizar, editar ou excluir essas configurações clicando com o botão direito do mouse na estação e selecionando Parâmetros da estação, conforme mostrado na próxima imagem.
Uma nova mensagem aparecerá quando o algoritmo for concluído. Você pode selecionar "Calibração" para usar as 60 medições para a calibração do robô. Você pode executar novamente o mesmo script para gerar outro conjunto de medições para validação. Essa etapa é opcional, mas recomenda-se 80 medições para fins de validação.
Por fim, também é possível importar configurações que foram selecionadas manualmente, selecionando Importar dados (dentro do menu Medição). Você pode importar um arquivo CSV ou TXT como uma matriz Nx6 de valores, em que N é o número de configurações.
É necessário conectar o laser tracker e o robô ao computador para automatizar o procedimento de tomada de medidas. Também é recomendável medir um frame de referência por meio de três pontos, caso você mova o laser tracker (essa etapa é obrigatória se você quiser recuperar a posição inicial do eixo 1; consulte o Anexo II para obter mais informações).
É necessário anexar pelo menos um ponto SMR (recomenda-se três ou mais), conforme mostrado nas imagens a seguir.
As subseções a seguir devem ser realizadas sequencialmente para que você esteja pronto para começar a fazer medições.
O IP do laser tracker é necessário para configurar corretamente a comunicação com o RoboDK. Siga estas etapas para verificar a comunicação com o laser tracker:
a.Selecione o menu " Conectar ➔ Conectar laser tracker ". Uma nova janela deverá se abrir.
b.Defina o IP do laser tracker.
c.Clique no botão "Conectar".
Se a conexão for bem-sucedida, você verá uma mensagem verde mostrando "Pronto". A janela pode ser fechada e a conexão permanecerá ativa.
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 Conectar ➔ Conectar robô. 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 Conectar.
4.Consulte o apêndice se surgir algum problema.
Se a conexão for bem-sucedida, você verá uma mensagem verde exibindo Pronto. A posição do robô virtual deve corresponder exatamente à posição do robô real se você selecionar Obter posição. Como alternativa, selecione Mover eixos para mover o robô para a posição atual no simulador. Você pode fechar essa janela lateral por enquanto e a conexão permanecerá ativa.
Recomenda-se medir um frame de referência de calibração se você estiver planejando mover o laser tracker durante a calibração. A referência de calibração deve ser anexada à base do robô, o que será útil se você quiser mover o tracker durante a calibração ou comparar duas calibrações do robô. A estrutura de referência de calibração deve ser definida por 3 pontos/ninhos tangíveis.
Você pode pular esta etapa se não for mover o tracker em relação ao robô ou se não precisar recuperar a posição inicial do eixo 1. Nesse caso, será usada a referência do laser tracker.
Você deve seguir essas etapas sempre que o laser tracker for movido:
1.Selecione Conectar➔ Conectar Laser Tracker Faro. Ou o tracker correspondente que você possui.
2.Defina o IP do laser tracker e selecione conectar (se o laser tracker não estiver conectado).
3.Defina a referência de calibração e a referência do tracker conforme mostrado na imagem. A referência de calibração também é conhecida como "Referência de medições".
4.Selecione Definir pontos de Base.
O RoboDK guiará o usuário com os menus mostrados na próxima imagem. A posição do laser tracker será atualizada automaticamente em relação à referência de calibração quando o procedimento for concluído.
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://www.robodk.com/robot-calibration#tab-lt. 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 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, você ainda poderá realizar a calibração do robô gerando um programa de robô que solicitará ao usuário no terminal de programação a sincronização manual.
1.Desmarque a opção Sincronização automática.
2.Clique no botão 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 você medir o mesmo ponto 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 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 frame de referência de medições será atualizado com relação ao frame de base do robô. Se você não tiver selecionado nenhum frame de referência, poderá adicionar uma referência (selecione Programa ➔ Adicionar Frame de Referência) 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 frame de referência do robô em relação ao frame de referência da calibração ([x,y,z,w,p,r] formato em mm e radianos)
As medições de 1 a 6 podem ser realizadas em qualquer lugar do flange da ferramenta, desde que você meça o mesmo ponto para as 6 medições. Depois disso, cada TCP que você quiser medir adicionará uma medição para o mesmo TCP; nesse caso, você tem 3 TCPs, portanto, 6+3=9 medições no total. Você pode clicar duas vezes em uma medição para continuar a medir a partir dessa posição.
Como na seção anterior: selecione Medição na seção Configuração da ferramenta. A janela a seguir será aberta. Selecione 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á os TCPs calibrados quando o procedimento for concluído. A definição do TCP (na imagem a seguir, "CalibTool 1") será atualizada automaticamente. Se você não tiver selecionado nenhum TCP, poderá adicionar um novo (selecione "Programa ➔ Adicionar Ferramenta vazia") e selecione "Recalcular". Será exibida uma nova janela e você deverá selecionar o "id" da ferramenta, dependendo da ordem em que as medições foram feitas. Você pode repetir o mesmo procedimento para atualizar quantos TCPs forem necessários (neste caso, 3 TCPs). O ID da ferramenta será detectado automaticamente se o nome da ferramenta terminar com um número.
Selecione Medição na seção Calibração para abrir a janela de medições de calibração do robô. Em seguida, selecione 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.
Você 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, você 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 Calibração do robô). 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 frame 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 você 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 você levar em conta que os erros seguem uma distribuição normal).
Selecione 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, você pode selecionar Gerar relatório e será gerado um relatório em PDF com as informações apresentadas nesta seção.
Uma vez que o robô tenha sido calibrado, você tem diferentes maneiras de usar a calibração do robô:
●Filtrar programas existentes: todos os pontos 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 Arquivo➔ Abrir) e selecione Filtrar apenas. O programa será filtrado e salvo na mesma pasta. O resumo do filtro mencionará se houve algum problema ao usar o algoritmo de filtragem. Você 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, você pode gerá-lo novamente com ou sem precisão absoluta. Nas configurações principais de precisão do RoboDK (Ferramentas ➔ Opções ➔ Precisão), você pode decidir se deseja sempre gerar os programas usando a cinemática precisa, se deseja que o RoboDK pergunte 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 "Usar cinemática precisa". Se ela estiver ativa, você 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(Arquivo_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 /NOEXIBIR /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_Arquivo= CWD+ '/KUKA-KR6.rdk'
# Obter o arquivo do programa:
Arquivo_program= CWD+ '/Prog1.src'
# Carregue o arquivo RDK ou o arquivo do robô:
calib_item= RDK.AddArquivo(calibration_Arquivo)
se não for calib_item.Valid():
raise Exception("Something went wrong loading "+ calibration_Arquivo)
# 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.ExibirRoboDK()
O código a seguir é um exemplo de script Python que usa a API do RoboDK para filtrar um ponto (ponto de pose ou ponto joint), usando o comando FilterTarObter:
pose_filt, joints = robot.FilterTarObter(nominal_pose, estimated_joints)
Esse exemplo é útil se um aplicativo de terceiros (que não seja o RoboDK) gerar o programa do robô usando pontos 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 frame de referência
# Atualizar o TCP do robô e o frame 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 ponto nominal no espaço da articulação:
articulações= [0, 0, 90, 0, 90, 0]
# Calcular a posição nominal do robô para o ponto da articulação:
pose_rob= robot.SolveFK(joints) # flange do robô em relação à base do robô
# Calcular pose_ponto: o TCP em relação ao frame de referência
pose_tarObter= invH(pose_ref)*pose_rob*pose_tcp
print('TarObter not filtered:')
print(Pose_2_XYZWPR(pose_tarObter))
joints_approx= joints # joints_approx deve estar dentro de 20 graus
pose_tarObter_filt, real_joints= robot.FilterTarObter(pose_tarObter, joints)
print('TarObter filtered:')
print(real_joints.tolist())
print(Pose_2_XYZWPR(pose_tarObter_filt))
Depois que o robô é calibrado, você 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 pontos 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, você pode calibrar apenas os offsets de eixos mais os frames de referência da base e da ferramenta (4 parâmetros de offsets de eixos mais 6 parâmetros para o frame da base mais 6 parâmetros para o frame da ferramenta). A calibração não será tão precisa quanto se você 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 offsets dos eixos, você deve selecionar o botão Calib. Param. e, em seguida, o botão Masterização (dentro do menu de calibração do robô).
Uma nova janela aparecerá depois que você selecionar Gerar programa de Masterização. Nessa janela, você pode selecionar os eixos que deseja considerar para criar a nova posição inicial
O botão Gerar programa de Masterização 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, você pode clicar com o botão direito do mouse no programa e selecionar Enviar programa ao robôpara enviar automaticamente o programa para o robô. Caso contrário, você pode selecionar Gerar programa do robô para ver os novos valores de articulação para a posição inicial.
Por exemplo, você deve seguir as próximas etapas para atualizar a posição inicial dos robôs Motoman.
Você deve primeiro executar o programa "MASTERING" para levar o robô à nova posição inicial.
Quando o programa estiver no controlador, você deve fazer login como "Management mode" (modo de gerenciamento) (a senha para os robôs Motoman geralmente é 99999999) e precisa estar no modo Teach. As imagens a seguir mostram as etapas que devem ser seguidas.
Certifique-se de atualizar a posição inicial de todas as articulações do robô.
Depois que a posição inicial for definida, você deve excluir o programa do robô que levou o robô à nova posição inicial.
O RoboDK fornece alguns utilitários para calibrar frames de referência e frames de ferramentas. Essas ferramentas podem ser acessadas em Utilitários ➔ Calibrar Frame de referência e Utilitários ➔ Calibrar Frame de ferramenta, respectivamente.
Para calibrar um frame de referência ou um frame de ferramenta (também conhecido como frame do usuário e TCP, respectivamente), você precisa de algumas configurações do robô que toquem 3 ou mais pontos; essas configurações do robô podem ser valores de eixos ou coordenadas cartesianas (com dados de orientação em alguns casos). Recomenda-se usar os valores dos eixos em vez das coordenadas cartesianas, pois é mais fácil verificar a configuração real do robô no RoboDK (copiando e colando os eixos do robô na tela principal do RoboDK).
Selecione Utilitários➔ Calibrar ferramenta para calibrar o TCP usando o RoboDK. Você pode usar quantos pontos desejar, usando diferentes orientações. É melhor usar mais pontos e mudanças de orientação maiores, pois obteremos 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 tivermos 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 por plano XYZ ".
3.Selecione calibrar usando "eixos".
4.Selecione o robô que está sendo usado.
5.Selecione o número de configurações que você 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ô), você 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.Você pode começar a preencher a tabela de valores de eixo. Você pode preenchê-la manualmente ou copiando/colando com os botões (como mostrado na imagem). Você também pode usar o botão "Obter 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ô, você deve primeiro selecionar "Obter pos. atual dos eixos" 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 você 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, você verá os novos valores de TCP (X,Y,Z) como " TCP calibrado ", no final da janela. Você pode selecionar "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.Você pode selecionar "Exibir erros" e verá o erro de cada configuração em relação ao TCP calculado (que é a média de todas as configurações). Você pode excluir uma configuração se ela tiver um erro maior do que as outras.
10.Você 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 Utilitários➔ Calibrar Referência para calibrar um frame de referência. É possível definir um frame de referência usando diferentes métodos. No exemplo da figura, um frame 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.
Você 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 você seleciona "Gerar programa de Masterização" 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.
Você deve usar um ponto 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, você 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.
Você deve medir corretamente três pontos 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 pontos de base devem ser escolhidos de modo que o frame de referência possa ser encontrado em relação ao robô.
A posição "inicial" do eixo 1 depende diretamente dos três pontos 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 da base do sistema de medição é posicionada em relação à estrutura da base do robô, movendo e medindo os eixos 1 e 2.
Os pontos básicos do sistema de medição podem ser definidos pressionando "Definir pontos de Base" (veja a imagem a seguir). Essas são três medições que definirão a estrutura de referência do robô desejada (as duas primeiras medições definem o eixo X e o terceiro ponto o eixo Y positivo). Você 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.
A calibração do robô requer a realização de medições do robô com um sistema de medição. Para fazer essas medições, é necessário um Laser tracker Faro que se comunica com um computador. A comunicação é feita por meio de um arquivo exe de driver que pode ser executado no modo console.
Por exemplo, a Faro fornece um aplicativo gratuito chamado "Tracker Utilities". Esse aplicativo pode inicializar o laser tracker e realizar algumas verificações de integridade, entre outras coisas.
Para inicializar o tracker, você deve iniciar o aplicativo "Tracker Utilities", conectar-se usando o IP do tracker e, em seguida, selecionar "Startup Checks" (Verificações de inicialização). Quando o tracker for inicializado, você deve colocar um ponto SMR de 1,5'' na posição "home" antes da inicialização. Caso contrário, a luz verde piscará após a inicialização e as medições não serão válidas.
Quando a inicialização for concluída, você deverá ler a mensagem "Startup complete" (Inicialização concluída), conforme mostrado na imagem a seguir.
Se tiver problemas com o tracker, você pode executar algumas verificações de integridade pressionando "Health Checks...". As duas imagens a seguir mostram uma verificação bem-sucedida e uma verificação com falha, respectivamente. Às vezes, os problemas são resolvidos depois de reconectar os cabos e reiniciar o laser tracker.
Por fim, você pode usar o "Measurepad" para fazer algumas medições. O laser tracker pode seguir um ponto e medir a posição XYZ a uma taxa de 1000 Hz. Se você definir 1 exemplo por ponto e disparo contínuo, o tracker registrará 1.000 medições por segundo em um arquivo CSV.
Você pode usar esse recurso para medir o caminho de um robô e usar a verificação de precisão do caminho do RoboDK para verificar a precisão, a velocidade e a aceleração ao longo do caminho.