Os braços de robôs industriais tem 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 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 você pode obter após a calibração depende muito do modelo do robô e da configuração. Com o RoboDK, você 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 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 a Creaform Optical CMM).
Descompacte e copie a pasta apropriada:
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 Leica Trackers).
para a pasta: C:/RoboDK/api/
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.
1.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 "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: você pode mover aproximadamente qualquer frame de referência ou frame de ferramenta mantendo pressionada a tecla ALT e a tecla SHIFT+ALT, respectivamente. Como alternativa, você pode clicar duas vezes no frame 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.Adicione 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 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 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.
2.Add-in o módulo de calibração na estação:
a.Selecione o menu Utilitários ➔ Calibrar robô.
b.Selecionar poses (6 DOF).
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ô.
3.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.O frame de referência "Referência de medições" deve ser anexado diretamente ao frame de referência da base do robô.
Por enquanto, você pode usar uma estimativa desse frame de referência (valor aproximado).
2.A referência do tracker deve ser anexada diretamente à referência de medições. A referência do tracker deve ser uma posição estimada do dispositivo de medição do tracker em relação à referência de medições. A configuração básica encontrará a posição exata do tracker.
3.O projeto "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 tracker (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, 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 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 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 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 dos eixos: Os limites inferior e superior do 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 eixos. 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 eixos é 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ô. Você 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, 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.
Por fim, também é possível importar configurações que foram selecionadas manualmente, selecionando Importar dados (dentro do menu Medida). Você 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 tracker 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 pontos anexados à ferramenta e aos objetos do frame de referência. O tracker rastreia a posição desses pontos, fornecendo o frame de referência desses objetos como uma medida em relação ao tracker. O RoboDK considera cada medição como a posição da ferramenta em relação ao frame de referência de base, de modo que o tracker pode ser movido sem alterar as medições.
É necessário anexar um grupo de pontos à ferramenta e ao frame 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 você esteja pronto para começar a fazer medições. Por fim, será necessário conectar o tracker 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 frame de referência. Um modelo é um objeto definido como uma lista de pontos (coordenadas X,Y,Z) correspondentes aos pontos com relação à referência do modelo (ferramenta ou frame de referência de base).
Você deve seguir essas etapas duas vezes para definir a ferramenta e os modelos básicos:
1.Conecte-se ao VXElements selecionando Conectar ➔ Conectar Creaform's C-Track Optical CMM.
2.Selecione Conectar e aguarde até que a conexão esteja pronta.
Certifique-se de calibrar o tracker 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 Referência da Base no RoboDK. O VXelements será aberto e exibirá pontos de posicionamento visíveis. Você deve selecionar os pontos estáticos. Certifique-se de selecionar todos os pontos que representam a referência estática. Você 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 frame de referência do objeto, você 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 frames de referência com relação a esses recursos.
O IP do tracker é 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 tracker:
a.Selecione o menu "Conectar ➔ Conectar Estereocamera". Uma nova janela deverá se abrir.
b.Insira o "Modelo de base" e o "Modelo de ferramenta", como arquivos de texto (gerados na seção anterior). Essas são as posições dos pontos que definem a frame de referência e a frame da ferramenta, respectivamente.
c.Selecione o botão "Conectar”.
d.Quando a conexão for bem-sucedida, você deverá fornecer os modelos Base e Ferramenta como arquivos de texto (.txt).
Você verá que uma versão integrada do VXelements é iniciada e, após alguns segundos, deverá ver uma mensagem verde mostrando "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, você deve se certificar de que nenhum processo do VXelements esteja sendo executado em segundo plano 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 Conectar 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 Conectar ➔ Conectar ao 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 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 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 pendente de ensino 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 Medições será atualizado em 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).
Quando essa etapa for concluída, você poderá exibir com precisão o espaço de trabalho do tracker em relação ao robô no RoboDK em tempo real.
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á 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 você não tiver selecionado nenhum TCP, poderá adicionar um novo (selecione "Programa ➔ Adicionar Ferramenta vazia") e selecione "Recalcular".
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 de Robôs). 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.
Depois que o robô tiver sido calibrado, você tem duas opções para gerar programas usando a precisão absoluta do robô calibrado:
●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 Apenas Filtrar. 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 frame de ferramentas ou frame 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 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 "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(__Arquivo __))
# 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_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(Arquivo _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 ponto (ponto de pose ou angular), 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 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 eixo:
eixos= [0, 0, 90, 0, 90, 0]
# Calcular a posição nominal do robô para o ponto da eixo:
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_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, 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 deslocamentos dos eixos mais os frames de referência da base e da ferramenta (4 parâmetros de deslocamento dos 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 deslocamentos 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 Criar programa de masterização. Nessa janela, você pode selecionar os eixos que deseja considerar para criar a nova posição inicial
O botão Criar 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 para o 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 eixo para a 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 valores de 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 você 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 você 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 por plano".
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 dos eixos do robô no simulador. Se estiver obtendo os eixos de um robô real conectado ao robô, você deve primeiro selecionar "Obter eixos atuais" 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 dos eixos usados 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 ao frame 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 "Criar 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 frame 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 frame de base do sistema de medição é posicionada em relação à frame de 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 básicos" (veja a imagem a seguir). Essas são três medições que definirão a frame de referência desejada do robô (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 eixo 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.