LeRobot documentation

SO-100

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-100

Nas etapas abaixo, explicamos como montar o robô SO-100.

Obter as peças

Siga este README. Ele contém a lista de materiais, com um link para adquirir as peças, bem como as instruções para imprimir as peças em 3D. E informe se é a sua primeira vez imprimindo ou se você não possui uma impressora 3D.

Instale o LeRobot 🤗

Para instalar o LeRobot, siga nosso Guia de Instalação

Além dessas instruções, você precisa instalar o SDK da Feetech (se você instalou o LeRobot a partir do PyPI, execute pip install 'lerobot[feetech]' em vez disso):

pip install -e ".[feetech]"

Configure os motores

Observação: Diferente do SO-101, os conectores dos motores não são facilmente acessíveis após a montagem do braço, portanto, a etapa de configuração deve ser realizada previamente.

1. Encontre as portas USB associadas a cada braço

Para encontrar a porta de cada adaptador de servo de barramento, execute este script:

lerobot-find-port
Mac
Linux

Exemplo de saída:

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

Onde a porta encontrada é: /dev/tty.usbmodem575E0032081, correspondente ao seu braço líder ou seguidor.

2. Defina os ids e as taxas de baud dos motores

Cada motor é identificado por um id único no barramento. Quando novos, os motores geralmente vêm com um id padrão de 1. Para que a comunicação funcione corretamente entre os motores e o controlador, primeiro precisamos definir um id único e diferente para cada motor. Além disso, a velocidade na qual os dados são transmitidos no barramento é determinada pelo baudrate. Para que se comuniquem, o controlador e todos os motores precisam ser configurados com o mesmo baudrate.

Para isso, primeiro precisamos nos conectar a cada motor individualmente com o controlador para definir esses parâmetros. Como escreveremos esses parâmetros na seção não volátil da memória interna dos motores (EEPROM), precisaremos fazer isso apenas uma vez.

Se você estiver reaproveitando motores de outro robô, provavelmente também precisará executar esta etapa, pois os ids e o baudrate provavelmente não corresponderão.

Seguidor

Conecte o cabo USB do seu computador e da fonte de alimentação à placa controladora do braço seguidor. Em seguida, execute o comando a seguir ou execute o exemplo da API com a porta obtida na etapa anterior. Você também precisará dar um nome ao seu braço seguidor com o parâmetro id.

Para uma referência visual sobre como definir os ids dos motores, consulte este vídeo, no qual seguimos o processo para o braço SO101.

Comando
Exemplo de API
lerobot-setup-motors \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem585A0076841  # <- paste here the port found at previous step

Você deve ver a seguinte instrução

Connect the controller board to the 'gripper' motor only and press enter.

Conforme instruído, conecte o motor do garfo. Certifique-se de que ele seja o único motor conectado à placa e de que o próprio motor ainda não esteja em cascata com nenhum outro motor. Ao pressionar [Enter], o script definirá automaticamente o id e a taxa de baud para esse motor.

Troubleshooting

Se você receber um erro nesse ponto, verifique seus cabos e certifique-se de que estão conectados corretamente:

  • Fonte de alimentação
  • Cabo USB entre seu computador e a placa controladora
  • O cabo de 3 pinos da placa controladora ao motor

Se você estiver usando uma placa controladora Waveshare, verifique se os dois jumpers estão configurados no canal B (USB).

Em seguida, você deve ver a seguinte mensagem:

'gripper' motor id set to 6

Seguido pela próxima instrução:

Connect the controller board to the 'wrist_roll' motor only and press enter.

Você pode desconectar o cabo de 3 pinos da placa controladora, mas pode deixá-lo conectado ao motor do garra na outra extremidade, pois ele já estará no lugar certo. Agora, conecte outro cabo de 3 pinos ao motor de rotação do pulso e conecte-o à placa controladora. Assim como com o motor anterior, verifique se é o único motor conectado à placa e que o próprio motor não está conectado a nenhum outro.

Repita a operação para cada motor conforme instruído.

Verifique a fiação em cada etapa antes de pressionar Enter. Por exemplo, o cabo de alimentação pode se desconectar ao manipular a placa.

Quando você terminar, o script simplesmente será finalizado, momento em que os motores estarão prontos para uso. Agora, você pode conectar o cabo de 3 pinos de cada motor ao próximo e o cabo do primeiro motor (o ‘shoulder pan’ com id=1) à placa controladora, que agora pode ser fixada na base do braço.

Líder

Faça os mesmos passos para o braço líder.

Comando
Exemplo de API
lerobot-setup-motors \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

Instruções de Montagem Passo a Passo

Remova as engrenagens dos 6 motores líderes

Video removing gears

Siga o vídeo para a remoção das engrenagens. Você precisa remover a engrenagem dos motores do braço líder. Como resultado, você usará apenas a codificação de posição do motor e reduzirá o atrito para operar o braço líder com mais facilidade.

Partes limpas

Remova todo o material de suporte das peças impressas em 3D. A maneira mais fácil de fazer isso é usar uma pequena chave de fenda para acessar a parte inferior do material de suporte.

Orientações adicionais

Video assembling arms

Observação: Este vídeo oferece orientação visual para a montagem dos braços, mas não especifica quando ou como realizar a fiação. Inserir os cabos previamente é muito mais fácil do que fazê-lo depois. O primeiro braço pode levar um pouco mais de 1 hora para ser montado, mas, uma vez que você se acostumar, é possível montar o segundo braço em menos de 1 hora.


Primeiro Motor

Etapa 2: Inserir fios

  • Insira dois fios no primeiro motor.

Etapa 3: Instalar na Base

  • Coloque o primeiro motor na base.

Etapa 4: Fixar o motor

  • Fixe o motor com 4 parafusos. Dois pela parte inferior e dois pela parte superior.

Etapa 5: Fixe o Suporte do Motor

  • Deslize sobre o primeiro suporte do motor e fixe-o usando dois parafusos (um em cada lado).

Etapa 6: Fixe os chifres do motor

  • Instale os dois chifres do motor, fixando o chifre superior com um parafuso. Tente não mover a posição do motor ao fixar o chifre do motor, especialmente nos braços líderes, onde removemos as engrenagens.
Video adding motor horn

Etapa 7: Fixar a parte do ombro

  • Conecte um fio à parte de trás do robô e o outro à esquerda ou em sua direção (veja a foto).
  • Anexe a parte do ombro.

Etapa 8: Ombro Seguro

  • Aperte a parte do ombro com 4 parafusos na parte superior e 4 na parte inferior (acesse os furos inferiores girando o ombro).

Segundo Conjunto de Motor

Etapa 9: Instale o Motor 2

  • Deslize o segundo motor a partir do topo e conecte o fio do motor 1 ao motor 2.

Etapa 10: Fixe o Suporte do Ombro

  • Adicione o suporte do motor do ombro.
  • Certifique-se de que o fio do motor 1 para o motor 2 passe por trás do suporte, enquanto o outro fio é direcionado para cima (veja a foto).
  • Esta parte pode ser apertada para montar; você pode usar um banco de trabalho como na imagem ou uma configuração semelhante para empurrar a parte ao redor do motor.

Etapa 11: Fixar o Motor 2

  • Prenda o segundo motor com 4 parafusos.

Etapa 12: Fixe a buzina do motor

  • Conecte os dois bocal de motor ao motor 2, novamente usando o parafuso do bocal.

Etapa 13: Fixar a base

  • Instale o anexo base usando 2 parafusos.

Etapa 14: Anexe o braço superior

  • Fixe o braço superior com 4 parafusos em cada lado.

Terceiro Conjunto do Motor

Etapa 15: Instale o Motor 3

  • Roteie o cabo do motor do motor 2 através do suporte de cabo até o motor 3, em seguida, fixe o motor 3 com 4 parafusos.

Etapa 16: Fixe a buzina do motor

  • Conecte os dois bocal de motor ao motor 3 e fixe um novamente com um parafuso de bocal.

Etapa 17: Acoplar o antebraço

  • Conecte o antebraço ao motor 3 usando 4 parafusos em cada lado.

Quarto Conjunto de Motor

Etapa 18: Instalar o Motor 4

  • Deslize o motor 4, conecte o cabo do motor 3 e fixe o cabo em seu suporte com um parafuso.

Etapa 19: Fixe o Suporte do Motor 4

  • Instale o quarto suporte do motor (ajuste firme). Certifique-se de que um fio é direcionado para cima e o fio do motor 3 é direcionado para baixo (veja a foto).

Etapa 20: Fixe o Motor 4 & Anexe a Buzina

  • Prenda o motor 4 com 4 parafusos e anexe seus chifres de motor, usando um parafuso de chifre para cada um.

Montagem do Punho

Etapa 21: Instale o Motor 5

  • Insira o motor 5 no suporte do pulso e fixe-o com 2 parafusos frontais.

Etapa 22: Anexar Punho

  • Conecte o fio do motor 4 ao motor 5. E já insira o outro fio para a garra.
  • Fixe o pulso ao motor 4 usando 4 parafusos em ambos os lados.

Etapa 23: Fixar o Chifre do Pulso

  • Instale apenas um chifre de motor no motor do pulso e fixe-o com um parafuso de chifre.

Configuração de Seguidor

Etapa 24: Acoplar o Garfo

  • Conecte o garfo ao motor 5.

Etapa 25: Instale o motor do garfo

  • Insira o motor do garfo, conecte o fio do motor do motor 5 ao motor 6 e fixe-o com 3 parafusos em cada lado.

Etapa 26: Fixe o Chifre e a Garra do Garra

  • Fixe os chifres do motor e, novamente, use um parafuso de chifre.
  • Instale a garra e fixe-a com 4 parafusos em ambos os lados.

Etapa 27: Montar o Controlador

  • Conecte o controlador do motor à parte traseira do robô.

Montagem concluída – prossiga para a montagem do braço do líder.


Configuração do Líder

Para a configuração do líder, execute as Etapas 1–23. Certifique-se de que removeu as engrenagens do motor dos motores.

Etapa 24: Fixe o Suporte do Líder

  • Monte o suporte do líder no punho e fixe-o com um parafuso.

Etapa 25: Anexar alça

  • Fixe a alavanca no motor 5 usando 4 parafusos.

Etapa 26: Instale o motor do garfo

  • Insira o motor do garfo, fixe-o com 3 parafusos em cada lado, acople um chifre de motor usando um parafuso de chifre e conecte o fio do motor.

Etapa 27: Anexar gatilho

  • Fixe o gatilho do seguidor com 4 parafusos.

Etapa 28: Montar o Controlador

  • Conecte o controlador do motor à parte traseira do robô.

Calibrar

Em seguida, você precisará calibrar seu robô para garantir que os braços líder e seguidor tenham os mesmos valores de posição quando estiverem na mesma posição física. O processo de calibração é muito importante, pois permite que uma rede neural treinada em um robô funcione em outro.

Seguidor

Execute o seguinte comando ou exemplo de API para calibrar o braço seguidor:

Comando
Exemplo de API
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

Unificamos o método de calibração para a maioria dos robôs. Assim, as etapas de calibração para este braço SO100 são as mesmas das etapas para o Koch e o SO101. Primeiro, precisamos mover o robô para a posição em que cada junta está no meio do seu intervalo, e então pressionamos Enter. Em seguida, movemos todas as juntas por todo o seu intervalo de movimento. Um vídeo desse mesmo processo para o SO101 como referência pode ser encontrado aqui

Líder

Faça os mesmos passos para calibrar o braço líder, execute o seguinte comando ou exemplo de API:

Comando
Exemplo de API
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

Parabéns 🎉, seu robô está pronto para aprender uma tarefa por conta própria. Comece o treinamento seguindo este tutorial: Primeiros passos com robôs do mundo real

Se você tiver alguma dúvida ou precisar de ajuda, entre em contato no Discord.

Update on GitHub