Otimizando Requisitos de Espaço para Robôs de Seis Eixos de Micro-Automação
Quanto espaço você precisa para um Robô de Seis Eixos de Micro-Automação?
Se pretende usar braço de robô de seis eixos de micro-automação, como Meca500 da Mecademic usado neste tutorial como exemplo, provavelmente está interessado em posicionar e orientar a ferramenta do robô (end-effector) em
diversas localizações. Portanto, certamente quererá conhecer o conjunto de localizações alcançáveis com end-effector específico montado em braço específico de seis eixos. Provavelmente pedirá diagrama mostrando "área de trabalho", "volume de trabalho", "envelope de trabalho" ou "alcance de trabalho". E, infelizmente, frequentemente será apresentado diagrama simplista como o mostrado, ou pior, com o chamado alcance do robô.
Em robótica, termo adequado para o que procura é espaço de trabalho (workspace). O alcance nada mais é que distância máxima entre centro do pulso do robô (ponto de interseção dos eixos das três últimas juntas) e eixo da junta 1. Área cinza na figura é área atingível pelo centro do pulso, para dada rotação da junta 1. Essa área, ou volume varrido rotacionando essa área sobre eixo da junta 1, não é o espaço de trabalho do robô. Não há garantia que se pode atingir posição nesse volume com ponta da ferramenta de end-effector particular, muito menos atingir com qualquer orientação. De fato, se montar end-effector relativamente longo, não conseguirá atingir nenhuma posição desse volume com ponta da ferramenta.
O espaço de trabalho de robô de seis eixos de micro-automação é o conjunto de todas as poses (posições e orientações) atingíveis por end-effector particular montado naquele robô. Assim, (1) ninguém pode dizer qual é o espaço de trabalho de braço específico de seis eixos, a menos que especifique qual end-effector pretende usar, e (2) esse espaço é entidade seis-dimensional geralmente impossível de representar graficamente.
Claro, há poucas exceções em robótica para representação gráfica. Espaço de trabalho de robô cartesiano de seis eixos como mostrado abaixo é trivial de descrever mas apenas para uma escolha específica de ponta de ferramenta (tooltip). De fato, se tooltip do end-effector do robô coincide com ponto de interseção dos eixos das três juntas revolutas, então este robô de micro-automação de seis eixos pode posicionar seu tooltip em qualquer lugar dentro do paralelepípedo amarelo, com absolutamente qualquer orientação de ferramenta.
Infelizmente, vasta maioria de robôs industriais de seis eixos não são cartesianos, por razões práticas. Por exemplo, robô cartesiano acima tem espaço de trabalho muito pequeno em termos de posicionamento. Braço de robô típico de seis eixos, frequentemente bizarramente chamado de robô articulado vertical, consiste de sete elos (corpos), conectados em série através de seis juntas revolutas atuadas. Primeiro corpo é base do robô, último é flange do robô (também chamado interface mecânica). Eixo da primeira junta é vertical, eixos das juntas 2 e 3 horizontais, eixo da junta 4 normal ao eixo da junta 3, eixos das três últimas juntas tipicamente intersectam em um ponto.
Embora braços industriais sejam geralmente vendidos sem ferramentas, end-effector (garra ou sonda tátil) é eventualmente anexado à flange. Usuário deve associar referencial de ferramenta, fixo a este end-effector. Este referencial é definido em relação ao referencial da flange. Origem do referencial de ferramenta é chamada TCP (tool center point). Em última análise, você deve interessar-se no conjunto de poses em relação ao referencial de base do robô, onde robô pode trazer referencial de ferramenta específico. Assim, espaço de trabalho de robô é conjunto de poses atingíveis pelo referencial de ferramenta do robô.
Em braço típico de micro-automação de seis eixos, como nosso Meca500, qualquer que seja end-effector, para cada posição viável do TCP, faixa de orientações de ferramenta atingíveis é completamente diferente, devido a interferências mecânicas, limites de juntas e limitações de comprimento de elos. Além desse alto acoplamento entre capacidades de posicionamento e orientação de braços típicos de seis eixos, esses robôs têm chamadas singularidades. Em singularidade, robô não pode mover em certas direções. É bloqueio físico, não problema matemático, e absolutamente todos braços de micro-automação de seis eixos (incluindo cartesiano mostrado) têm singularidades. Por exemplo, quando todas juntas do Meca500 estão a zero graus, como na figura esquerda, end-effector não pode mover ao longo de linha paralela ao eixo y da base (verde). Para mover ao longo desta linha, juntas 4 e 6 teriam que rotacionar ±90° primeiro (direções opostas).
Singularidades são fenômeno muito importante (ou incômodo) em robótica e serão tratadas em tutorial separado. Aqui, basta dizer que mesmo se caminho está dentro do espaço de trabalho, referencial de ferramenta pode não segui-lo continuamente (sem pausas no movimento do TCP), por causa de singularidades.
Assim, singularidades limitam ainda mais partes utilizáveis do espaço de trabalho. Na verdade, espaço de trabalho de braço típico de micro-automação de seis eixos é combinação de vários subconjuntos de espaço de trabalho livres de singularidades, separados por singularidades. Robô pode mover-se em qualquer lugar dentro do espaço total, em modo joint, mas apenas em um subconjunto livre de singularidades quando em modo cartesiano (TCP segue caminho específico continuamente).
Cada subconjunto livre de singularidades corresponde a configuração específica do robô. Tópico tratado em tutorial futuro sobre singularidades. Por ora, note que se pose parecer inacessível com configuração atual, pode ser acessível com outra. Por exemplo, pose do referencial de ferramenta na figura abaixo só atingível em uma das oito configurações. Erro comum é considerar apenas um subconjunto livre de singularidades em vez do espaço total (trabalhar em apenas um dos oito modos). Note que se especificar pose usando coordenadas x, y, z e ângulos de Euler e usar comando MovePose, robô automaticamente encontrará melhor configuração. Infelizmente, usuários tipicamente ensinam posições por jogging, não especificando pose.
Frequentemente, usuário já tem conjunto de poses de end-effector a atingir para aplicação. Exemplo: peça deve ser pega de esteira, apresentada frente a câmera em várias orientações, depositada em outra esteira. Encontrar posicionamento ótimo para câmera, instalação ótima da garra e design ótimo para dedos, está longe de trivial. Infelizmente, não há procedimento automático comercial para encontrar design ótimo de célula – único método é tentativa e erro.
Felizmente, não precisa configuração real; pode usar software de simulação como RoboDK. Dito isso, ainda precisa habilidades de robótica, ou gastará muito esforço em tentativa e erro. Assim, daremos dez diretrizes para melhor uso do espaço de trabalho do seu robô. Embora usemos Meca500 como exemplo, diretrizes aplicam-se a qualquer braço típico de micro-automação de seis eixos.
Diretriz 1: Coloque seu TCP o mais próximo possível da flange do robô
Em inspeção, comum ter que apresentar peça frente a câmera com grande faixa de orientações. Primeira regra: colocar referencial de ferramenta o mais próximo possível do referencial da flange. Ou seja, projetar sistema de garra que permita segurar peça a ser inspecionada o mais próximo possível da flange.
Note que fornecemos nossa garra elétrica opcional com placa adaptadora que permite anexar garra como mostrado. Porém, para algumas aplicações pode ser melhor projetar sua própria placa adaptadora para anexar garra de forma que dedos e eixo da junta 6 fiquem em um plano, ou anexar garra ao longo do eixo da junta 6 (como neste vídeo). Outra alternativa: dedos em L.
Diretriz 2: Não mova em modo cartesiano a menos que seguindo caminho
Em inspeção, frequentemente precisa rotacionar peça em diferentes orientações. Claro, nesses casos, é mais fácil usar comando MoveLinRelTRF ou jogar robô em modo cartesiano. Porém, ambas falham se singularidade presente na rotação, como no exemplo ilustrado. Nesse exemplo, não pode rotacionar end-effector sobre seu eixo y (verde) a 90°, por causa de singularidade (eixos das juntas 4 e 6 alinham).
Assim, deve aprender usar ângulos de Euler e usar comando MovePose. Alternativamente, use RoboDK. Como simulador, permite passar por singularidades em modo cartesiano. Independentemente de singularidades, sempre use comandos MovePose ou MoveJoints a menos que queira TCP seguir caminho específico. Uso desses comandos geralmente leva a tempos de ciclo mais rápidos.
Diretriz 3: Se cabeamento restringe junta 6 demais, alinhe eixos das juntas 1, 4 e 6
Embora junta 6 seja mecanicamente ilimitada, se usar end-effector com cabeamento, como nossa garra, faixa da junta 6 limitada a ~±180° ou menos. Se precisa mais faixa, pode alinhar eixos das juntas 4 e 6, ou até 1, 4 e 6. Claro, tal configuração será singular, então precisará usar comando MoveJoints para rotacionar sobre eixos coincidentes.
Diretriz 4: Se usa end-effector com cabeamento, mantenha junta 6 o mais próximo possível de zero graus
Sempre que possível, em pose desejada, tente manter junta 6 próximo a zero. Se, por exemplo, pega peça em posição onde junta 6 está a 170°, e executa MovePose, junta 6 provavelmente rotacionará muito. Se na nova pose junta 6 poderia estar a 190°, robô rotacionará última junta 340° negativo (em vez de 20° positivo).
Diretriz 5: Se precisa orientar muito, posicione TCP no eixo da junta 1
Se precisa cobrir ampla faixa de orientações, deve posicionar TCP no eixo da junta 1. Tal configuração permite rotacionar ±175° sobre eixo da junta 1 e ±180° sobre eixo da junta 6. Quanto mais longe centro do pulso da junta 1, menores capacidades orientacionais.
Diretriz 6: Teste todas as configurações do robô
Às vezes, robô estará muito próximo de singularidade em uma ou mais poses de end-effector a atingir. Em inspeção, pode não ser problema, mas se precisa pegar ou colocar objeto, provavelmente precisa chegar e partir da pose final em modo linear. Nesse caso, teste todas configurações possíveis e escolha a mais distante de singularidades. Exemplo: na figura, configuração esquerda muito próxima de singularidade (eixos 4 e 6 quase alinhados), mas direita suficientemente distante.
Diretriz 7: Considere mais que apenas atingibilidade
Como mencionado, espaço de trabalho é combinação de subconjuntos separados por singularidades. Além disso, nem todas poses atingíveis são igualmente "boas". Espaço de trabalho é altamente heterogêneo em critérios de desempenho como velocidade e precisão. Já mencionamos necessidade de estar longe de singularidades em modo cartesiano. Além disso, quanto mais esticado braço, menor precisão (mais flexível) e mais tempo para suprimir vibrações na ponta.
Diretriz 8: Aproveite redundância do robô se não precisa seis graus de liberdade
Em muitos casos, só precisa cinco graus. Exemplo: se end-effector é dispensador de cola ou fuso, provavelmente não liga para orientá-lo sobre eixo da agulha ou fuso. Se inspeciona peça com sensor axisimétrico como câmera, em muitos casos pode apresentar peça em qualquer rotação sobre eixo do sensor. Nesses casos, não alinhe eixo da junta 6 com eixo de simetria da ferramenta/sensor e escolha melhor das infinitas posições para cada pose. Melhor = longe de singularidades, mas também mais próxima das poses precedente e sucessiva.
Diretriz 9: Fixe robô em posição vertical, a menos que absolutamente necessário
Como a maioria dos robôs industriais, Meca500 pode ser fixado em qualquer orientação (ex.: de cabeça para baixo, na parede). Único problema com fixação não vertical é que precisa fixação muito sólida, o que pode tornar célula mais complicada e cara. Opte por fixações não verticais só após tentar fixar verticalmente.
Diretriz 10: Meça sete vezes, corte uma
Ditado inglês "Meça duas vezes, corte uma", mas para design de célula robótica, opte pela versão russa "Meça sete vezes, corte uma". Se célula relativamente complexa, ou espaço de trabalho parece restrito, deve usar pacote de simulação e passar por muitas iterações de design até encontrar solução satisfatória. Porém, não confie inteiramente em simulação. Pacote genérico como RoboDK não simula comportamento exato de robô. Movimento linear específico pode ser possível no RoboDK, mas impossível em robô real, por singularidades. Portanto, deve também testar programa no robô real.
Conclusão: a menos que aplicação envolva apenas poucos movimentos repetitivos, deve entender completamente espaço de trabalho do robô e gastar tempo considerável projetando célula. Design de célula não é só sobre realizar movimentos, é também sobre otimizar tempo de ciclo e outros critérios (precisão, consumo de energia).
Sistema de controle de automação
- Robôs Industriais: Design, Fabricação e Tendências Futuras
- Robô DIY Inspirado no Wall‑E com Caixa de CD e Raspberry Pi
- Robô Alarme Rolante: Sistema Móvel Inteligente de Despertar com Raspberry Pi e Google Calendar
- Construa Robô de Visão Computacional Controlado por Fala no Windows 10 IoT Core
- Robô ROS: Navegação Controlada por Terminal no Raspberry Pi
- Robô Empunhando Pincel da Star Automation Brilha na NPE2018
- Schunk Expande Montagem de Garras Robóticas nos EUA em Morrisville, NC, Impulsionando Produção Local e Personalização
- Wittmann Battenfeld Lança Linha de Robôs WX153 para Automação de Injeção de Alta Força
- Escolhendo o Roteador CNC Certo: Máquinas 3-Eixos vs 4-Eixos
- Entendendo Robôs de Bebidas: Tecnologia, Automação e Papel na Indústria de Bebidas