2 pontos por GN⁺ 2024-04-03 | 1 comentários | Compartilhar no WhatsApp
  • O repositório Low-Cost Robot Arm fornece arquivos para montar e controlar um braço robótico por cerca de $250 e, ao adicionar um braço leader, é possível operar o braço follower em uma configuração total de cerca de $430
  • O braço follower usa servos Dynamixel XL430 e XL330 em conjunto; o XL430 é usado nas duas primeiras articulações, e o XL330, por ser leve com 18g, é usado para manter o braço leve e rápido
  • O adaptador U2D2 da Dynamixel é caro e tem alta latência, então esta montagem usa a placa Waveshare Serial Bus Servo Driver Board, mais barata e controlável com o Dynamixel SDK
  • A montagem exige impressão 3D, configuração de baudrate 1M para cada motor, definição de IDs dos servos e ajuste do redutor de tensão; a tensão de entrada do XL330 deve ser verificada no Dynamixel Wizard e ajustada para 5V
  • O braço leader usa apenas motores de 5V, o que torna a montagem mais simples; é possível testar os dois braços com teleoperation.py e executar um ambiente básico de simulação MuJoCo com simulation.py

Visão geral do projeto

  • O repositório Low-Cost Robot Arm inclui arquivos para montar e controlar um braço robótico de baixo custo
  • O custo do braço follower básico é de cerca de $250 e, ao adicionar um braço leader, são necessários mais $180, totalizando uma configuração de $430
  • Uma lista de espera para receber todos os componentes em um único pacote está disponível em https://tau-robotics.com/robots
  • O design do braço leader foi inspirado no projeto GELLO, mas foi simplificado para ficar mais fácil de montar
  • Este braço robótico é adequado para aprendizado de robôs e, com duas unidades, também é possível dobrar roupas

Servos e método de controle

  • O braço follower usa servomotores Dynamixel XL430 e Dynamixel XL330
    • O XL430 é quase duas vezes mais forte que o XL330 e é usado nas duas primeiras articulações
    • O XL330 é mais fraco, mas pesa apenas 18g cada, deixando o braço mais leve e rápido
  • A Dynamixel vende o adaptador U2D2 para conectar os servos ao computador, mas esta montagem usa uma placa adaptadora mais barata por causa do custo e da latência
  • O braço robótico pode ser controlado com o Dynamixel SDK
    • Comando de instalação: pip install dynamixel-sdk

Configuração do Follower Arm

  • O custo total das peças do braço follower está organizado em $258
  • Os principais componentes são os seguintes
    • 2x Dynamixel XL430-W250: $100
    • 4x Dynamixel XL330-M288: $96
    • XL330 Idler Wheel: $10
    • XL430 Idler Wheel: $7
    • Waveshare Serial Bus Servo Driver Board: $10
    • Voltage Reducer: $10
    • Fonte de alimentação 12V: $12
    • Grampo de mesa: $6
    • Fios: $7
  • A loja Robotis geralmente oferece um código de desconto de 10%
  • Pode ser útil adicionar grip tape à garra
  • É necessário um cabo USB-C para conectar a placa controladora de servos ao computador

Fluxo de montagem do Follower Arm

  • O vídeo de montagem está disponível em https://youtu.be/RckrXOEoWrk
  • Todas as peças são impressas em impressora 3D
    • Os arquivos STL estão em hardware/follower/stl
    • As peças foram projetadas para facilitar a impressão, e apenas as partes móveis da garra precisam de suporte
  • A etapa de varredura dos motores é a seguinte
    • Conecte a driver board ao computador; deve funcionar em Linux e MacOS
    • Verifique o nome do dispositivo com ls /dev/tty.*, como no exemplo para MacOS
    • Faça a varredura individual de cada motor com o Dynamixel Wizard
    • Defina o baudrate de todos os motores para 1M
    • Defina os IDs dos servos de 1 a 5, do ombro até a garra; se usar a extensão elbow-to-wrist, configure até 6
  • Na etapa de montagem, fixe os servos nas mesmas posições do CAD, e o servo horn deve estar na posição padrão ao ser aparafusado
  • Na configuração de energia, faça a solda no redutor de tensão, fixe-o à driver board e à base, e então conecte tudo
    • A entrada do redutor de tensão é conectada às portas V e G da driver board
    • A saída e a porta D restante da driver board são conectadas ao servo do cotovelo
    • Após conectar ao servo XL330, verifique a tensão de entrada no Dynamixel Wizard e ajuste o parafuso do redutor de tensão para 5V

Braço Leader e simulação

  • O custo total das peças do braço leader é de $183
  • Os principais componentes são os seguintes
    • 6x Dynamixel XL330-M077: $144
    • XL330 Frame: $7
    • XL330 Idler Wheel: $10
    • Waveshare Serial Bus Servo Driver Board: $10
    • Fonte de alimentação 5V: $6
    • Grampo de mesa: $6
  • O braço leader usa 5V em todos os motores, o que torna a montagem mais simples
  • A garra é substituída por uma alça e um gatilho
  • Durante o uso, é possível aplicar um pequeno torque ao gatilho para que ele fique aberto por padrão
    • O design do GELLO usa uma mola para isso, mas a montagem é muito mais difícil
  • É possível testar os braços com o script teleoperation.py
    • No entanto, talvez seja necessário ajustar o nome do dispositivo
  • Ao executar simulation.py, é possível usar um ambiente básico de simulação MuJoCo

1 comentários

 
GN⁺ 2024-04-03
Opiniões no Hacker News
  • Comecei a construir um braço robótico de tamanho parecido. Tenho um velho amigo que é artista em vidro, então estou pensando em usá-lo para fazer pingentes de vidro facetado
    Ele até tem uma máquina de facetamento, mas é manual
    A parte difícil é a precisão de repetição. As tolerâncias precisam ser apertadas, e cada junta do braço amplia o erro quanto mais longe estiver da base. Se a base oscila 1 mm, na ponta de um braço de 20 cm isso vira 4 mm de oscilação, e no braço seguinte fica ainda maior
    Para uso em facetamento, é preciso uma resolução muito mais fina do que a de um servo sem redutor. A redução é complicada: para manter a junta rígida, é preciso lidar com folga, mas não a ponto de gerar muito atrito durante o movimento. Engrenagens sem-fim são lentas e rígidas demais, então não parecem boas; para engrenagens internas do braço, redutores cicloidais parecem ser a melhor opção. Segurar vidro é bem perigoso, então também é necessário um servo de verdade com algum feedback
    Estimei o custo de construção em cerca de 1 a 2 mil dólares, sendo a maior parte o custo dos redutores

    • Uma das coisas impressionantes em robôs industriais é o quanto eles são rígidos quando parados. Quando a velocidade e a carga aumentam, o sistema de frenagem também vira um desafio difícil
      Mesmo depois de fazer o hardware funcionar de algum jeito, fazer o solucionador de cinemática operar corretamente é um desafio enorme. Há muitos casos de exceção, é preciso lidar com feedback em tempo real e também equilibrar usabilidade e confiabilidade. É aí que as empresas de robótica cobram caro, e com razão
      Se for possível não construir um braço robótico e substituí-lo por uma estrutura de movimento mais simples, é melhor fazer isso. Ainda assim, se você construir, será realmente incrível
    • Já fiz um projeto parecido no passado: era um braço robótico levando o limite de desempenho dentro da faixa de alguns milhares de dólares. Obtivemos resultados bem bons com motores de passo e redutores com folga suficientemente baixa
      Para referência, era um projeto que tentava modelar, em certa medida, um braço humano, e chegamos a uma precisão de repetição de cerca de 1 mm com carga de 2,5 kg a um alcance de aproximadamente 80 cm
      Mais especificamente, dependendo dos requisitos de carga do atuador final, dá para combinar NEMA34, 24 e 17. Usam-se motores maiores nas juntas da frente. Se houver orçamento, use redutores cicloidais ou harmônicos; caso contrário, cada atuador (motor + driver + redutor + acoplamento de eixo) fica em torno de 100 a 200 dólares, dependendo do fornecedor e dos requisitos. Um sistema em malha fechada acrescenta cerca de 50 dólares. Em termos de preço, não é nada ruim. Para a junta da base, é necessário um redutor cilíndrico largo que distribua melhor a carga
      Se você conseguir colaborar com uma oficina de usinagem, acho que dá para fazer algo de qualidade bem alta. Alguns exemplos de referência de projeto estão abaixo, e alguns parecem até melhores do que eu, como hobbista, teria conseguido fazer
      https://www.youtube.com/watch?v=7z6rZdYHYfc Este é excelente. Se uma versão menor e mais leve se mover devagar, a oscilação da base deve diminuir ainda mais
      https://www.youtube.com/shorts/II8gdIXPgaE Mais parecido com o post original
      https://www.youtube.com/shorts/_x7P9eZCkVM
      https://www.youtube.com/watch?v=g9AfhqOd-_I O mais profissional que já vi; a lista de materiais quase certamente também fica abaixo de 3 mil dólares, e na China provavelmente abaixo de 1 mil dólares. É tão legal que estou pensando em mandar um e-mail para essa empresa perguntando se vendem um modelo menor
      https://www.youtube.com/watch?v=iB2NAgfVjIs Chris Annin também vale muito a pena ver. Acho que ele é um dos roboticistas americanos que melhor constroem robôs baratos, open source, com motores de passo
    • Não daria para resolver isso com software em vez de hardware caro?
      Uma ideia que eu já tinha pensado antes era deixar os grandes movimentos a cargo de um braço feito com peças baratas e “trêmulas”, e adicionar na extremidade um estágio com pequeno alcance de movimento, mas controlável com altíssima precisão
      Por fim, adicionar um método para rastrear com muita precisão o quanto a posição real da ferramenta se desviou da posição-alvo. Por exemplo, poderia ser uma câmera instalada na ferramenta
      Então um loop de feedback de software rastrearia o desvio da ferramenta e o compensaria com o estágio de “correção” na ponta
      Só não sei se isso funcionaria de verdade. O tempo necessário para a “compensação” também é um problema. É diferente em casos como pegar e colocar, em que basta chegar à posição-alvo no fim do trajeto, e em casos como gravação química ou soldagem, em que é preciso manter o desvio máximo abaixo de um limite durante todo o percurso
    • Penso nisso com frequência, mas não consigo arrumar tempo. Será que não daria para criar o braço dentro do Nvidia Omniverse, adicionar feedback de sensores baratos de alta resolução de distância/ângulo, e então treinar um modelo de machine learning para corrigi-lo?
    • Não entendo muito de hardware, sou mais da área de software, então posso estar completamente errado
      Numa situação dessas, como seria usar motores de passo com uma grande redução por redutores cicloidais? Na minha cabeça, isso tornaria a posição muito controlável e repetível, e a folga seria em grande parte tratada pelo redutor
      Se eu estiver errado, gostaria de saber. Como disse, sou uma pessoa de software tentando colocar um pé no hardware
  • É surpreendente que ainda não exista claramente uma empresa produzindo em massa braços robóticos baratos, de alta qualidade e razoavelmente padronizados. Coisas como impressoras 3D e máquinas CNC já chegaram a faixas de preço para consumidores/amadores, mas essa área ainda parece pouco explorada
    Parece ter potencial no nível de Arduino ou Raspberry Pi, mas ainda não ouvi falar de um nome ou ecossistema tão conhecido assim

    • Trabalhei por um tempo em uma startup que desenvolvia braços robóticos. O que aprendi é que, mesmo que você dê a alguém um braço robótico com uma API razoável e disponível gratuitamente, isso não ajuda muito. A parte difícil é criar automação útil
      A maioria brinca com ele por algumas horas e depois o coloca em uma prateleira
      Cada caso de uso é completamente diferente e dá muito trabalho. Mesmo que você faça algo funcionar, se alguém esbarrar sem querer na mesa ou o braço bater em alguma coisa, todas as coordenadas se perdem e é preciso começar de novo
      A estrutura mecânica real também é realmente complexa. Para levantar uma carga significativa com alcance de 50 cm, a junta da base precisa suportar torque muito alto e, ao mesmo tempo, é necessária altíssima precisão. Para isso, são necessários engrenagens e motores caros, e nada disso é barato
      Também há questões de segurança. Um braço que levanta uma carga útil razoável é bem pesado, e quando essa massa é movimentada, é necessário um sistema de segurança. Isso também não é barato
      É meio como uma versão hardware de no-code. Programar braços robóticos é intrinsecamente difícil, então é difícil criar um braço robótico fácil de usar. Acho que a única coisa que pode mudar isso é uma IA realmente boa
    • Há um motivo para não existir um braço robótico padrão para hobby
      As pessoas acham que conseguem construir um mais barato do que um braço robótico “de verdade”, mas não levam em conta folga/vibração e precisão de repetição
      Respeito quem publicou no HN um projeto de braço robótico feito com servos RC, mas gostaria de ver medições de precisão de repetição. Ou seja: faça-o desenhar o mesmo padrão em um papel todos os dias durante uma semana e mostre o quanto as 7 linhas se sobrepõem. Duvido até que ele consiga desenhar isso. Pode rasgar o papel, ou travar sem sequer ter força para rasgá-lo
      Como base: construo robôs de hobby desde os anos 1980, pesquisei robótica nos anos 1990, inclusive em minha dissertação de mestrado, e passei a maior parte da última década ensinando robótica
    • Se você passar os olhos por esta thread e pelas várias respostas à pergunta “alguém encontrou uma utilidade para braços robóticos?”, dá para entender por que tal empresa não existe. Simplesmente não há um mercado de consumo
    • Produtos assim até existem, mas atualmente, em robôs de uso geral, com alcance de cerca de 1,2 m, “barato” significa algo em torno de 10 mil euros. Por esse dinheiro, você recebe hardware e software de alta qualidade
      Também é importante notar que um robô sem um software de cinemática muito bom é quase inutilizável. Além do braço, é preciso uma caixa de controle que forneça energia e comandos em tempo real de forma estável, e isso também acrescenta bastante custo
    • Primeiro, você precisa se perguntar que problema está tentando resolver
      Depois de definir isso, em quase todos os casos você logo percebe que existe uma solução muito mais simples e barata do que um braço robótico de 6 graus de liberdade
      Se você realmente precisa de um braço robótico desses, considerando todos os fatores, US$ 10 mil a US$ 20 mil é bem barato
  • Que tal reduzir um pouco a ambição e começar por uma plataforma robótica de baixo custo que siga pessoas, transporte objetos e evite obstáculos? Ela nem precisa ter braços; posso colocar e tirar as coisas com meus próprios braços
    Quando machuquei a perna e usei muletas, carregar objetos de repente virou um problema. Há muitas pessoas com mobilidade reduzida. Mesmo quando não é esse o caso, costumo deixar coisas no lugar errado, e isso também poderia ajudar
    No AliExpress há muitas plataformas inferiores de robôs de brinquedo, mas a maior dimensão delas é menor que 20 cm, pequena demais para ser prática

  • É surpreendente que ninguém tenha apontado para isto
    https://github.com/peng-zhihui/Dummy-Robot
    Mas pode ser um pouco difícil de ler

  • Como nerd, dá até água na boca, mas será que alguém encontrou um uso de braço robótico que realmente valha a pena em casa? Hacking é sempre mais divertido quando há um bom projeto

    • Eu gostaria de usar para pegar e separar a enorme pilha de Lego que as crianças deixaram depois do feriadão de Páscoa. Como a qualidade do corpus do banco de dados de peças é alta, a identificação não parece muito difícil
      Nem precisa ser muito rápido. Dá para deixar rodando a noite toda
      Também imagino que alguém já tenha escrito um artigo interessante sobre o algoritmo de classificação ideal. Por exemplo, se deve ir dos maiores para os menores, ou simplesmente pegar e mover o que estiver mais perto. Pessoalmente, eu queria que ele separasse por conjuntos básicos e depois, por favor, colocasse as bandejas de volta nas gavetas originais
    • Para um uso pouco prático, seria substituir alguns braços de monitor por braços robóticos em uma configuração multi-monitor. Assim daria para alternar rapidamente entre alguns layouts
      Outro seria um braço para mexer macarrão na cozinha
    • Poucos. Tenho um UArm na mesa, bem parecido com este produto, mas ele usa servos mais baratos. A precisão é tão baixa que quase não consegui usar para nada
      Também fiz e acoplei um sensor de force feedback com um mouse 3D. A ideia era boa, mas ele não era rígido o suficiente para esse uso
    • Um leitor que sofreu uma deficiência temporária neste thread postou uma ideia de uso prático
      https://news.ycombinator.com/item?id=39903953
    • A Roboexotica está clamando para que se faça uma linha de produção com vários desses braços
      http://roboexotica.at/
  • Se isso parece interessante, talvez você também goste deste. Não é DIY; vem como produto pronto
    https://www.waveshare.com/roarm-m2-s.htm
    Tenho um, e a qualidade de construção é realmente impressionante para a faixa de preço

    • Há também uma versão de 5 graus de liberdade que eu já considerei seriamente comprar. Mas é realmente difícil julgar se a integração com ROS 2 é boa: https://www.waveshare.com/product/robotics/roarm-m1.htm
      É uma pena mesmo não haver uma versão de 6 graus de liberdade. Você precisa disso para pegar algo de forma adequada dentro do raio ao redor do braço
    • Não preciso nem um pouco, mas é o tipo de coisa que eu definitivamente queria ter na mesa
    • Será que há algo assim na Amazon e afins?
    • Como é o suporte de software?
  • Alguém sabe quanto peso isso consegue levantar?
    Quero controlar um ventilador por rastreamento ocular enquanto treino na academia de casa, para que o vento bata no meu rosto, mas o ventilador pesa algumas libras
    Como alternativa, também gostaria de recomendações de hardware de motor para usar nesse tipo de projeto

    • A maioria desses robôs usa servomotores. Isso permite movimentos ágeis, mas significa que é preciso torque de sustentação contínuo para manter qualquer posição; a carga é limitada e também há muito desperdício de energia
      Para um ventilador pesado, não se esqueça também da reação do ar em movimento. Em vez de prendê-lo a um braço, é melhor colocá-lo sobre algum rolamento e fazer o motor apenas girá-lo. Assim o motor não precisa ficar lutando contra a gravidade o tempo todo
      O braço robótico linkado aqui usa servos Dynamixel, e você poderia usar apenas um deles para girar um ventilador sobre uma base rotativa. Muito mais barato e menos complexo
    • Que tal tirar a maior parte do peso do braço? Usar um ventilador ou compressor instalado na base e, com o braço, conectar apenas um duto. Assim você só precisa mover o duto, não um motor pesado
  • Eu estava construindo o braço Thor impresso em 3D, mas este projeto parece muito melhor. Acho que vou mudar de direção
    Aliás, esses servos mudam o jogo

    • Esses servos são melhores que os SG90?
  • Como usuário antigo de Dynamixel, concordo que o adaptador U2D2 é caro em comparação com outras opções. Mas a afirmação de que “a latência é muito alta” parece precisar de alguma quantificação
    Sempre me pareceu uma opção confiável, da qual se pode esperar baixa latência em várias plataformas, algo em torno de 1 ms

  • Gostaria que parassem de juntar 3 servos e dizer que fizeram um robô :D
    Como o movimento dos servos é bem aos trancos, é por isso que não há vídeo mostrando esse “robô” em funcionamento

    • Há vídeos do robô se mexendo aqui: https://twitter.com/alexkoch_ai. A vantagem desse projeto de braço robótico é que ele é muito leve
      Cada motor XL330 pesa só 18 g. Por isso ele é muito adequado para teleoperação e aprendizado robótico
    • Como alguém que já se aprofundou mais em robótica, entendo totalmente esse sentimento. Ainda assim, acho bom incentivar o compartilhamento de conteúdos básicos. Neste thread mesmo, muitos iniciantes podem se interessar e se aprofundar mais
      Fico curioso para saber quão suavemente um braço robótico baseado em servos baratos poderia se mover com um bom algoritmo de controle