Construa um robô de coleta e colocação que sabe quando falhou
Um braço que pega peças de uma bandeja e as classifica em duas caixas, detecta uma preensão vazia, tenta novamente e registra quantos ciclos concluiu corretamente.
O que você está construindo
Um braço que esvazia uma bandeja. As peças vão para uma de duas caixas conforme algum atributo que você consegue perceber nelas — tamanho, cor ou o suporte de origem — e a máquina funciona sem supervisão até a bandeja esvaziar ou algo dar errado; nesse momento, ela para e informa em qual estado parou.
O robô não é a parte interessante. Kits de braço robótico de 4 DOF custam £40, e a cinemática é uma página de trigonometria. A parte interessante é que uma máquina de coleta e colocação é julgada por uma porcentagem, e passar de “funcionou no vídeo” para “fez cinquenta seguidos” é um problema de engenharia diferente de fazê-la se mover.
Duas coisas levam você até lá, e ambas estão na garra.
As duas decisões que importam
1. O dedo não pode ser rígido
Esta é a que surpreende as pessoas, então vale deixar claro antes de imprimir qualquer coisa.
O controle da sua garra é uma posição — um ângulo de servo. Os limites do objeto são forças: um piso abaixo do qual a peça cai e um teto acima do qual ela é destruída. A relação de troca entre eles é a rigidez em série k de tudo que fica entre a haste do servo e o objeto, então a janela que você realmente precisa mirar é
window (mm) = ( min(F_crush, F_servo) − F_slip ) / k
Um dedo impresso rígido tem cerca de 25 N/mm. Um servo simples em um braço de alavanca de 30 mm resolve cerca de 0,524 mm de curso da mandíbula. Faça as contas para um morango e a janela será 0,108 mm — cinco vezes mais fina que um passo, o que significa que nenhum comando funciona e nenhum ajuste encontra um.
| Dedo | k | Janela | Posições de servo que funcionam |
|---|---|---|---|
| Impresso rígido | 25 N/mm | 0,108 mm | 0 |
| Almofada de espuma | 4 N/mm | 0,677 mm | 1 |
| Mola em série | 0,8 N/mm | 3,386 mm | 7 |
| Elemento flexível impresso | 0,35 N/mm | 7,739 mm | 15 |
Coloque uma mola de 40 pence entre a haste do servo e o dedo, e o problema desaparece. Dimensione a sua no laboratório com seu próprio objeto e seu próprio braço de alavanca antes de gastar filamento e leia força, travamento e flexibilidade da garra com servo para o argumento completo.
2. Tem que existir uma etapa de verificação
O ciclo é aproximar, descer, preender, verificar, levantar, transferir e colocar. Sem o estado de verificação, toda falha é silenciosa: a garra fecha no vazio, o braço carrega ar sobre a mesa e abre sobre a caixa, e o contador diz que funcionou.
Um microswitch de alavanca na parte interna de um dedo custa cinquenta pence e um pino de entrada, e é a peça de maior valor desta construção. Leia-o após uma espera de 300–400 ms — um dedo flexível entra em ressonância depois de fechar, e amostrar durante essa ressonância é uma moeda ao ar — aplique debounce em três leituras consecutivas e dê à máquina de estados um estado RECOVER com nova tentativa limitada. O tutorial da máquina de estados mostra tudo.
A construção, em ordem
- Escolha o efetuador final. Se as peças forem planas e alcançáveis por cima, avalie primeiro uma ventosa e uma pequena bomba — isso vence qualquer coisa que você imprimir. Caso contrário, use dois dedos. Tipos de garra e força de preensão.
- Meça seu objeto. Massa em uma balança de cozinha, força de esmagamento na mesma balança com algumas peças descartáveis e μ com uma balança de bagagem puxada sobre o material da almofada. Esses três números decidem o projeto, e os números encontrados na internet estão errados para a sua peça.
- Verifique o fechamento por força. Se as faces onde as almofadas encostam tiverem uma conicidade maior que
atan(μ), nada que você fizer com força vai segurar a peça, e você precisará de uma ranhura em V ou de outro ponto de preensão. Atrito e fechamento por força. - Dimensione a garra no laboratório. Braço de alavanca a partir do objeto mais largo e depois verifique a janela contra o passo do servo. O simulador de garras.
- Imprima a garra com um mecanismo flexível ou uma mola em série, almofadas de TPU, um batente rígido e um microswitch. Garra com servo.
- Conecte corretamente cinco servos. PCA9685 por I²C, trilho separado para os servos e desacoplamento. Faça isso antes de escrever o software ou você perderá um dia depurando reinícios que são um problema de alimentação.
- Escreva a máquina de estados, não bloqueante, com
VERIFYeRECOVER. Máquina de estados para coleta e colocação. - Limite a aceleração com um perfil de movimento, para que a preensão que você dimensionou sobreviva à transferência.
- Execute cinquenta e conte.
A medição
Cinquenta ciclos consecutivos, sem supervisão, com um contador e um registro de falhas que anota em qual estado cada falha aconteceu. Esta é a entrega, e ela exige muito mais do que um vídeo.
| Resultado | O que significa |
|---|---|
| Acima de 95% | Você tem uma máquina. Passe a detectar a pose em vez de fixá-la no código |
| 80–95% | Geralmente a pose de aproximação, ou pouco tempo de estabilização antes da verificação |
| Abaixo de 80% | Geralmente a alimentação, ou uma garra dimensionada sem o termo de aceleração |
| Falha somente no final da execução | Aquecimento do servo ou almofadas sujas. Ambos são reais e ambos parecem fantasmas |
A tabela de falhas em o tutorial da máquina de estados mapeia a maioria dos sintomas às causas.
O que este projeto não é
Ele não faz visão e não planeja contornar obstáculos. A bandeja está em um lugar conhecido, as caixas estão em lugares conhecidos e o braço vai para onde é mandado. Isso é deliberado — o objetivo desta construção é deixar claro que a preensão é um problema separado e mais difícil do que parece quando comparada ao posicionamento, e confundi-los é o motivo pelo qual as primeiras construções de coleta e colocação travam.
Quando você quiser que o encontre a peça em vez de ser avisado de onde ela está, isso é calibração de câmera e pose de marcador, e fica sobre um ciclo de coleta funcionando, em vez de substituí-lo.
Roteiro do projeto
O caminho de construção
Siga a árvore tecnológica das peças até um robô funcionando. Cada nó é desbloqueado quando seus pré-requisitos são concluídos, e seu progresso fica salvo neste dispositivo.
0 / 21 concluídos
Componentes
- ChassiKit de braço robótico de 4 DOFEstrutura para um manipulador de mesa com quatro servomotores, base, ombro, cotovelo e garra.
- AtuadorGarra de servomotorUm servomotor, dois dedos e o número que nenhuma listagem informa.
- AtuadorServomotor SG90O servomotor de nove gramas presente na maioria dos braços, garras e direções de robôs.
- DriverDriver de servomotores PCA9685Acione 16 servomotores por dois pinos I²C—a placa por trás da maioria dos braços robóticos e hexápodes.
- ControladorArduino UnoA placa de 8 bits que tolera erros de ligação, pela qual a maioria das pessoas começa na robótica.
- SensorMicrochave de alavancaA única informação de detecção que diz ao robô que ele já colidiu com alguma coisa.
- AlimentaçãoBateria e fonte de alimentação do robôA diferença entre um robô que funciona e outro que fica reiniciando.
Tutoriais deste caminho
- Iniciante · 30 minTipos de garras robóticas e como dimensionar a força de preensãoEscolha o tipo de garra e dimensione a força considerando o termo que todos esquecem: a aceleração.
- Intermediário · 25 minAtrito, fechamento por força e a aposta de dois contatosPor que o objeto escapa por mais que você aperte e o que o cone de atrito realmente diz.
- Intermediário · 30 minForça de preensão com servo: torque de travamento e complacênciaO controle é uma posição, os limites são forças e a rigidez determina a relação entre elas.
- Intermediário · 35 minMáquina de estados de coleta e colocação resistente a falhasAproximar, executar a preensão, verificar, levantar e colocar — e o que fazer quando a verificação falha.
- Avançado · 22 min de leituraCinemática inversa de um braço robótico de dois elosPor que um braço de dois elos tem duas soluções, onde pode e não pode alcançar e o que uma singularidade realmente é.
- Intermediário · 18 min de leituraAcione servos com o PCA9685 (driver PWM I²C)Defina a frequência, converta ângulos em larguras de pulso e mova dezesseis servos por dois pinos I²C com segurança.
- Intermediário · 40 minPerfis de movimento: aceleração trapezoidal e curva em SUse uma rampa em vez de comandar o movimento — perfis trapezoidais, limites do salto de aceleração e o custo de uma curva em S.
- Iniciante · 17 min de leituraMáquinas de estados finitas para o comportamento de robôsSubstitua condicionais entrelaçadas de robôs por estados, eventos, transições, tempos limite e recuperação explícitos.
- Iniciante · 30 minPor que seu robô reinicia quando os motores entram em operaçãoCalcule o orçamento de corrente de um robô, considere a resistência interna da bateria e meça a queda de tensão sob carga.
- Iniciante · 30 minPor que delay() quebra robôs: temporização com millis()Um robô parado em delay() fica cego. Substitua-o por millis() e acerte a comparação no transbordamento.
Pratique antes de fazer a fiação
Ajuste no simulador ao vivo
O caminho de construção passa por um laboratório no navegador. Acerte o comportamento aqui e depois transfira suas configurações para o robô real.
Perguntas frequentes
Qual é a parte mais difícil de construir um robô de coleta e colocação?
Não são o braço nem a cinemática — é que a garra comanda uma posição, enquanto o objeto se importa com uma força. Com dedos impressos rígidos, a janela utilizável entre soltar uma peça e esmagá-la fica em torno de um décimo de milímetro, enquanto um passo de um servo simples move as mandíbulas cerca de meio milímetro. Nenhum comando cai na janela. A solução é uma mola ou um elemento flexível em série, que abre a janela na proporção de 1/k, e essa é a decisão que faz o projeto inteiro funcionar ou falhar. Dimensione-a no simulador de garras antes de imprimir qualquer coisa.
Por que meu braço robô solta a peça quando se move?
Porque você dimensionou a preensão para o peso, e o movimento exige mais. A força de preensão necessária é m(g + a)·SF/(μ·n), e em um braço rápido o termo de aceleração é maior que a gravidade. Uma preensão que segura um objeto de 58 g sem movimento, a 1,63 N, precisa de 1,93 N durante um levantamento de 250 mm em 0,9 s, e de 2,59 N se você fizer em 0,35 s — e a preensão cede cerca de 40 ms depois de o movimento começar, antes de o braço ter se deslocado visivelmente, e é por isso que parece uma falha da garra e não um erro de cálculo. Limite a aceleração com um perfil de movimento ou preenda com mais força; normalmente o perfil é a solução mais barata.
Como sei se a garra realmente pegou alguma coisa?
Um microswitch de alavanca na face interna de um dedo, ligado a um pino de entrada com um resistor de pull-up. Cerca de cinquenta pence, um fio e uma resposta digital direta. Coloque-o na parte flexível do dedo para que acione em uma força repetível, aplique antirrebote no software (três leituras consecutivas, não uma) e leia após uma espera de 300–400 ms para não amostrar a ressonância do dedo. A medição de corrente também funciona e ainda detecta esmagamento, mas exige um limiar calibrado e deriva conforme a bateria cai.
Preciso de cinemática inversa para isso?
Não estritamente — você pode ensinar poses à mão e guardar os ângulos das juntas, e para uma bandeja e duas caixas fixas isso é realmente suficiente. Você precisa de IK no momento em que quiser aproximação e recuo em linha reta, porque esses são movimentos cartesianos e ângulos de juntas ensinados à mão não produzem uma linha reta. Como se aproximar de uma peça de um ângulo a derruba e levantá-la ao longo de uma curva a arrasta, a maioria das construções acaba querendo os segmentos retos, e isso significa IK.
Quantos servos e qual potência?
Cinco: base, ombro, cotovelo, pulso e garra. Isso é mais canais do que um Uno deveria controlar por temporização sozinho, então use um PCA9685 por I²C. A alimentação é a parte que as pessoas subestimam — cinco servos simples se movendo juntos exigem vários ampères de corrente de pico, e o regulador de 5 V da placa vai sofrer queda de tensão e reiniciar o controlador no meio de uma coleta. Dê aos servos uma fonte própria com terra comum e algumas centenas de microfarads perto da placa.
O que conta como concluído?
Cinquenta ciclos consecutivos, sem supervisão, com contador e registro de falhas. Esse é um alvo muito melhor do que um vídeo de uma coleta bem-sucedida, porque força você a construir a etapa de verificação, a nova tentativa limitada e a fonte de alimentação que não sofre queda de tensão — exatamente as três coisas que separam uma demonstração de uma máquina. Abaixo de 95% há sempre uma causa específica, e o registro diz em qual estado a falha ocorreu.