Este artigo foi efectuado para documentar os testes que efectuei com os seguintes braços róboticos educativos cujas algumas das peças mecanicas se podem fazer com uma impressora 3D.
Para efectuar o controlo do braço recorri ao hardware e software descrito mais abaixo.
O controlo dos 4 servos do braço é efectuado por um conjunto de 4 potenciómetros cuja posição é lida pelo recurso á leitura de 4 dos pinos analógicos de um Arduino Uno, que é convertido num comprimento de pulso mapeado entre o valor minimo e máximo de comprimento de pulso , enviado por I2C para o módulo PCA9685, que gera o PWM para a respectiva posição para cada um dos servos.
Hardware
A parte electrónica é composta por:
um microcontrolador ATMEGA 328P (Arduino Uno)
um modulo PCA9685
quatro potenciómetros
uma resistencia
Software
Para implementar o procedimento descrito existe um pequeno programa disponivel mais abaixo e que necessita da biblioteca Adafruit PWM Servo Driver para o Arduino que se pode instalar no arduino ide.
A biblioteca pode ser instalada recorrendo ao gestor de bibliotecas, pesquisar por: “adafruit pwm” e instalar. Mas também está disponivel no seguinte endereço
O principal propósito deste artigo é procurar coligir uma lista de Braços Robóticos operados com ROS, com recurso ao Moveit. No entanto também são incluídos alguns braços róboticos que ainda não existe software para os operar com o ROS mas que seja eventualmente possível criar esse software.
Requisitos básicos para operar um braço robótico com o ROS
Uma das primeiras condições para que o braço róbotico seja possível de ser operado com facilidade com o ROS Moveit é que exista uma descrição do mesmo num ficheiro URDF.
Os ficheiros URDF são ficheiros XML com duas etiquetas fundamentais:
Link, que representam as parte estáticas dos robot
Joint. que representam as ligações entre as várias partes do robot, (links)
Existem dois tipos de cadeias cinemáticas:
As cadeias em malha fechada (closed loop): em que cada link está ligado pelo menos a dois outro links ( a cadeia forma um ou mais circuitos fechados).
As cadeias em malha aberta (malha aberta): em que um, ou mais, dos links apenas está ligado a um outro link.
Os ficheiros URDF só permitem a descrição de robots em árvore hierárquica, o que deixa de fora os robots com cadeia cinemática em malha fechada.
Existe um grupo do facebook para os utilizadores deste braço. (https://www.facebook.com/groups/robotarm)
O administrador do grupo criou uma remix deste braço usando correias. Informação disponível em: https://www.20sffactory.com/
STLs disponiveis em: https://www.thingiverse.com/thing:4415380
Após ter feito um braço robótico EEZYbotARM (MK1), em que não cumpri exactamente as instruções pois não encontrei o tubo, e de ter tentado sem sucesso criar uma descrição do braço num ficheiro URDF, iniciei a construção do EEZYbotARM MK2.
O braço EEZYbotARM MK2, tal como o MK1 tem os ficheiros STL disponiveis para podermos imprimir parte das suas peças mecânicas numa impressora 3D e está descrito nos seguintes links:
As partes mecânicas e a respectiva montagem estão bem descritas nos links acima.
A parte electrónica também tem a descrição, no artigo do instructables, de uma das soluções possíveis que é usar o controlador USB servo Mini Maestro da Pololu. Nesta solução o software é fornecido com o controlador e instalado no PC
Outra solução possível, conforme indicado na informação disponível no thingverse, e assim como no instructables é usar uma app para o android e um arduino. As informações sobre esta solução estão disponíveis em:
No entanto este documento não informa nem sobre o sobre qual a electrónica e software usado.
Por ultimo também será possível implementar o controlo do braço recorrendo ao ROS moveit.
Parte 1: Aquisição das peças necessárias para o braço robótico
As peças necessárias são 4 servos, esferas, um rolamento e um conjunto de diversas porcas, parafusos e anilhas.
3 x Servo Tower Pro MG955 ou MG946 ou MG996
1 x SG90 SERVO
1 x rolamento 606zz (6mm x 17mm x 6mm)
32 x esferas 6mm (diametro)
2 x parafuso M3 x 10 mm fenda
5 x parafuso M3 x 20 mm
2 x parafuso M3 x 25 mm
5 x parafuso M4 x 20 mm
1 x parafuso M4 x 35 mm ( original: 1 x parafuso M4 x 30)
1 x parafuso M4 x 50 mm ( original: 1 x parafuso M4 x 40)
1 x parafuso M6 x 25 mm
1 x varão roscado M4 x 32 mm
1 x varão roscado M4 x 60 mm
3 x porca M3
5 x porca M3 auto-bloqueante
9 x porca M4 auto-bloqueante
1 x porca M6 auto-bloqueante
2 x anilha M3
8 x anilha M4
1 x anilha M6
Esta lista de materiais pode ser ligeiramente diferente da original, por exemplo uso mais esferas, e em alguns pormenores, como por exemplo os parafusos, não tem de ser exactamente igual.
Parte 2: Impressão dos componentes para o braço robótico
Lista dos componentes impressos por ordem de impressão.
A ordem de impressão dos componentes foi escolhida de modo a ir efectuando a respectiva montagem.
Base
EBAmk2_001_base.STL
EBAmk2_010_gearservo.STL
EBAmk2_012_mainbase.STL
EBAmk2_013_lower base.STL
EBAmk2_011_gearmast_full.STL
Braço
EBAmk2_002_mainarm.STL
EBAmk2_003_varm.STL
EBAmk2_004_link135.STL
EBAmk2_005_link135angled.STL
EBAmk2_006_horarm__.STL
EBAmk2_007_trialink.STL
EBAmk2_008_link147_new.STL
EBAmk2_009_trialinkfront.STL
Garra
EBAmk2_014_claw base.STL
EBAmk2_015_claw finger dx.STL
EBAmk2_016_claw gear drive.STL
EBAmk2_017_claw finger sx.STL
EBAmk2_018_claw gear driven.STL
Cobertura da base
EBAmk2_019_drive cover.STL
Não impressos
EBAmk2_010_gearservo_22DENTI.STL
EBAmk2_011_gearmast.STL
EBAmk2_006_horarm_plate.STL
Parte 3: Montagem do braço róbotico
A montagem do braço robótico é efectuada em várias fases e está descrita mais abaixo. Posteriormente encontrei o seguinte video, em inglês, que explica com bastante pormenor a montagem do braço robótico.
Entre a descrição e o video creio que fica bastante claro o que é que é necessário e como se monta o braço robótico.
Montagem da base do braço robótico
A base, que é composta pelas seguintes peças:
Peças impressas ( 5 peças, das indicadas acima)
1 x Servo MG966
1 x rolamento 606 ZZ
32 x esferas 6 mm
2 x parafusos (1 mm x 5mm), (fixar o hub do servo à gearservo)
1 x parafuso M3 x 10 mm, (fixar o hub com engrenagem ao servo)
3 x parafuso M3 x 20 mm
2 x parafuso M3 x 25 mm
1 x parafuso M6 x 25 mm
3 x porcas M3
2 x porcas M3 auto-bloqueante
1 x porca M6 auto-bloqueantes
1 x anilha M6
Passo 1: montar o servo MG996R
Peças usadas:
1 x 012_mainbase
1 x Servo MG966
4 x parafusos fornecidos com o servo
Para encaixar o servo na mainbase, retirar os 4 parafusos inferiores do servo e retirar a tampa inferior. Encaixar o servo na posição, colocar a tampa e voltar a colocar os parafusos no sitio.
A mainbase não tem os furos para fixar o servo. Fazer os furos com um arame fino e quente. De seguida Usar os 4 parafusos para fixar o servo à mainbase.
Passo 2: Montar o suporte das esferas com o rolamento
Peças usadas
1 x 013_lower base.STL
3 x parafuso M3 x 20 mm
3 x porcas M3
1 x rolamento 606 ZZ
Primeiro encaixam-se as 3 porcas M3 nos locais apropriados. Provavelmente será necessário limar um pouco, ou aquecer as porcas, de modo a conseguir encaixar devidamente as porcas.
De seguida encaixa-se o rolamento no espaço destinado ao efeito e aplica-se os respectivos parafusos de modo a fixar a base
Passo 3: aplicar a engrenagem ao servo
Peças usadas
1 x 010_gearservo
1 x parafuso M3 x 10 mm
1 x suporte circular para o eixo do servo (fornecido com o servo)
Antes de aplicar a engrenagem verificar se está bem impressa e eventualmente retirar algum imperfeição ou algum plástico a mais que se tenha acumulado nas primeiros camadas.
Também convém determinar qual é a amplitude do servo, o seu mínimo, máximo e centro. Deixando o servo posicionado ao centro.
Aplicar o suporte circular préviamente encaixado à engrenagem no eixo do servo (e eventualmente fixo com 2 parafusos pequenos). Fixar o conjunto com o parafuso M3.
Passo 4: aplicar as esferas e montar a base rotativa
Peças usadas
1 x 001_base.STL
1 x 011_gearmast_full
32 x esferas 6 mm
2 x parafuso M3 x 25 mm (com 2 porcas fixar a gearmaster à base)
1 x parafuso M6 x 25 mm
2 x porcas M3 auto-bloqueantes
1 x porca autoblocante M6
1 x anilha M6
Antes de aplicar a engrenagem verificar se está bem impressa e eventualmente retirar algum imperfeição ou algum plástico a mais que se tenha acumulado nas primeiros camadas.
Numa primeira fase, aplicar a porca auto-bloqueantes M6 no local apropriado na parte de baixo da base.
De seguida aplicar o gearmaster com o rebordo de acondicionamento das esferas para baixo, na parte de baixo da base, fixando-o com 2 parafusos M3 de 25 mm e 2 porcas auto-bloqueantes M3.
Depois de preparar a base com a engrenagem colocar as esferas no socalco apropriado e manter peça na vertical de modo a que as esferas se mantenham na devida posição.
De seguida encaixar a base com engrenagem na engrenagem do servo sem deixar fugir as esferas.
Fixar os dois elementos com o parafuso M6, com anilha, que enrosca na porca M6 préviamente colocada na base. Apertar quanto baste de modo a não dificultar o movimento.
Montagem do braço robótico
Após finalizar a montagem da base do braço passamos a montagem do sistema de alavancas do braço que são comandadas por dois servos.
Esta parte do braço robótico, é composto pelas seguintes peças:
Peças impressas ( 8 peças, das indicadas acima)
1 x Varão roscado M4 com 32 mm
8 x parafusos fixadores do servo
Passo 5: aplicar as alavancas principais do braço
Peças usadas:
002_mainarm
003_varm
1 x varão roscado M4 com 32 mm
8 x parafusos fixadores do servo
Antes de começar este passo, determinar qual é a amplitude dos servos, o seu mínimo, máximo e centro. Deixar os servos posicionados ao centro.
Também deve preparar o fixador para o eixo do servo, pois é necessário retirar uma aba ao fixador longitudinal (o que tem 2 abas)
Como os buracos onde vai passar o varão roscado estão com certeza muito apertados deve-se afinar o seu diâmetro com uma lima redonda até o varão roscado deslizar sem muito atrito nos diversos orifícios das 2 hastes impressas.
Na primeira fase deste passo, coloca-se a haste maior (002_mainarm) no local adequado (com a curvatura para o lado da pequena haste existente base), insere-se de seguida o varão roscado M4 com 32 mm.
Na segunda fase, coloca-se a haste mais pequena (003_varm) e avança-se o varão roscado até estar a face nos dois lados.
Com o eixo dos servos posicionado na posição central, aplica-se o fixador no eixo dos servos. De acordo com o seguinte procedimento:
Na haste grande, o fixador fica a apontar para cima. Na haste pequena o fixador fica a apontar para o lado da haste, que fica mais ou menos na horizontal. Para montar o fixador, deve-se usar o parafuso que vem com os servos.
Como senti dificuldades na fixação dos servos com os parafusos. Será melhor adequar melhor os orifícios na peça impressa ao diâmetro dos parafusos que se vai usar e enroscar primeiro os parafusos mesmo sem o servo para testar primeiro.
Passo 6: montar as hastes verticais traseiras
Peças usadas
004_link135
005_link135angled
2 x parafuso M4 x 20 mm
2 x porca M4 auto-bloqueante
Preparar os buracos onde vão passar os parafusos M4 com uma lima de modo a que os parafusos deslizem e rodem sem muito atrito nos diversos orifícios das hastes (link135 e link135angled).
Na primeira fase coloca-se a haste recta com a nervura para o lado de fora, no espaço apropriado para o efeito.
Fixa-se com um parafuso M4 de 20 mm e uma porca M4 auto-bloqueante. O aperto ao parafuso deve ser dado de forma a que o movimento não sofra atrito.
Na segunda fase, coloca-se a haste curvada com a nervura para o lado de dentro, e a parte saliente da curvatura orientada para traz. Aplica-se com o parafuso M4 de 20 mm e uma porca M4 auto-bloqueante. O aperto ao parafuso deve ser dado de forma a que o movimento não sofra atrito.
Passo 7: Montar a haste horizontal e triângulo superior
Peças usadas:
006_horarm__
007_trialink
008_link147_new
1 x varão roscado M4 com 60 mm
2 x parafuso M4 x 20 mm
1 x parafuso M4 x 30 mm
5 x porca M4 auto-bloqueante
Todos os orifícios devem ser preparados préviamente com uma lima de modo a que o varão roscado e os parafusos deslizem e rodem sem muito atrito nos diversos orifícios.
Primeiro encaixamos a haste horizontal (horarm) no local apropriado. Seguidamente inserimos o varão roscado no orifício até ficar à face do encaixe (de forma a suster a haste).
Em segundo lugar encaixamos o triângulo (trialink) com a face plana para fora no espaço apropriado e continuamos a inserir o varão roscado (que previamente tinha ficado à face) pelo furo do triângulo. Apertar de ambos os lados com porcas M4 auto-bloqueantes.
Em terceiro lugar fixamos as duas hastes verticais na traseira da haste horizontal.
Numa primeira fase fixamos a haste com ângulos no orifício posterior na parte de dentro do triângulo com um parafuso M4 de 35 mm e uma porca M4 auto-bloqueante (este parafuso pode ser M4 25 mm).
Na fase seguinte fixamos a haste rectilínea no orifício posterior da haste horizontal, pela parte de fora, com um parafuso M4 de 20mm e uma porca M4 auto-bloqueante.
Em quarto lugar, com um parafuso M4 de 20mm e uma porca M4 auto-bloqueante, montamos a haste rectilínea maior (link147_new), por dentro no orifício do triângulo e com a nervura para fora.
Passo 8: Montar terminação da haste horizontal
Peças usadas:
009_trialinkfront
1 x parafuso M4 x 35 mm
1 x parafuso M4 x 50 mm
2 x porca M4 auto-bloqueante
Neste passo vamos montar o suporte da garra (trialinkfront) na parte frontal da haste horizontal superior e no final da haste lateral superior.
Todos os orifícios devem ser preparados préviamente com uma lima de modo a que o varão roscado e os parafusos deslizem e rodem sem muito atrito nos diversos orifícios.
Como a garra (claw base) aplica no suporte da garra (trialinkfront), num encaixe justo. Antes de prosseguir confirmar se as duas peças encaixam devidamente. Caso seja necessário deve desbastar a zona de encaixe no suporte da garra.
Primeiro aplica-se o suporte da garra no meio do encaixe da haste horizontal. Depois insere-se um parafuso M4 de 35mm no orifício e aperta-se uma porca M4 auto-bloqueante para o fixar.
Segundo, fixa-se a parte de cima da garra à terminação da haste lateral, com um parafuso M4 de 50 mm no orifício e aperta-se uma porca M4 auto-bloqueante para o fixar.
Montagem da garra
Após a montagem das hastes do braço robótico a fase seguinte é montar a garra e aplicar no braço.
Passo 9: montar a garra e aplicar no suporte da garra
Peças usadas:
1 x claw base
1 x claw finger dx
1 x claw gear drive
1 x claw finger sx
1 x claw gear driven
1 x servo Tower Pro SG90
2 x parafuso M3 com 20 mm
2 x parafuso para montar servo
1 x parafuso para montar suporte no eixo do servo
Todos os orifícios por onde passam os parafusos devem ser preparados préviamente com uma lima de modo a que o varão roscado e os parafusos deslizem e rodem sem muito atrito nos diversos orifícios.
A engrenagem (claw gear driven) tem duas saliências que servem como encaixe nos dois orifícios apropriados no dedo da garra (claw finger sx).
Antes de prosseguir deve certificar de que essas duas peças encaixam devidamente. Se não encaixarem deve-se desbastar os excesso nas saliências até estarem encaixarem.
O eixo do servo deve ser colocado nos zero graus. Mais tarde o fixador que é aplicado no eixo deve ficar posicionado para a frente. Deste modo quando o eixo do servo está no ângulo zero graus a garra está completamente fechada, e quando está no ângulo 180 graus a garra está completamente aberta.
Após os procedimentos preparatórios, a primeira coisa a fazer é montar o servo no local apropriado. Para o montar devemser usados os dois parafusos para esse efeito que vêm com o servo.
A segunda coisa a fazer é fixar a engrenagem (claw gear drive) junto com o fixador (que vem com o servo) no eixo do servo, e usar o parafuso que vem como o servo para prender o conjunto.
Em terceiro lugar, deve encaixar a engrenagem (claw gear driven) no dedo da garra (claw finger sx) e montar o conjunto alinhado com o orifício à direita na base da garra ( claw base), usando um parafuso M3 de 20 mm, uma anilha M3 e uma porca M3 auto bloqueante.
Em quarto lugar, proceder à montagem do outro dedo da garra, no orifício à esquerda na base da garra (claw base), usando um parafuso M3 de 20 mm, uma anilha M3 e uma porca M3 auto bloqueante.
Com a garra montada o ultimo passo é encaixar a garra no suporte da garra que está a haste horizontal, e fixar o conjunto com um parafuso M3 de 10 mm e uma porca M3 auto-bloqueante.
Finalizar a montagem da garra
Após a montagem da, base, hastes e garra do braço robótico a ultima coisa que falta da parte mecânica é a cobertura da base.
Passo 10: montar a cobertura da base
Peças usadas:
019_drive cover
Para a aplicar a cobertura da base basta colocar no local e pressionar.
Com este passo, a montagem parte mecânica fica completa.
Parte 4: A electrónica de controlo do braço
Conforme indicado na introdução, o autor do braço refere as seguintes soluções:
controlador USB servo Mini Maestro da Pololu + sofware proprietario no pc
arduino uno + placa bluetooth ( HC-06) + sketch para arduino + app para android.
Para além das soluções do autor é possível ainda usar outras soluções disponíveis na internet como por exemplo: