LeRobot documentation

SO-101

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-101

SO-101 SO-101

Nas etapas abaixo, explicamos como montar nosso robô principal, o SO-101.

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. Ele também oferece orientações caso seja 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]"

Instruções de Montagem Passo a Passo

O braço seguidor usa 6x motores STS3215 com redução de 1/345. O líder, no entanto, usa três motores com reduções diferentes para garantir que ele possa suportar seu próprio peso e que possa ser movido sem exigir muita força. Qual motor é necessário para qual junta é mostrado na tabela abaixo.

Eixo do braço líderMotorRelação de Transmissão
Base / Ombro11 / 191
Levantamento de Ombros21 / 345
Flexão de cotovelo31 / 191
Flexão do Punho41 / 147
Wrist Roll51 / 147
Gripper61 / 147

Configure os motores

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

Para encontrar a porta de cada adaptador de servo de barramento, conecte o MotorBus ao seu computador via USB e energia. Execute o seguinte script e desconecte o MotorBus quando solicitado:

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.

O vídeo abaixo mostra a sequência de etapas para definir os ids dos motores.

Vídeo de configuração dos motores

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.

Comando
Exemplo de API
lerobot-setup-motors \
    --robot.type=so101_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=so101_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

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.

É aconselhável instalar um cabo de 3 pinos no motor após posicioná-los antes de continuar a montagem.

Junção 1

  • Instale os dois bichos de motor. Fixe o bicho superior com um parafuso M3x6mm. Não são necessários parafusos para o bicho inferior.
  • Coloque o primeiro motor na base.
  • Fixe o motor com 4 parafusos M2x6mm (os parafusos menores). Dois pela parte superior e dois pela parte inferior.
  • Deslize sobre o primeiro suporte do motor e fixe-o usando dois parafusos M2x6mm (um em cada lado).
  • Anexe a parte do ombro.
  • Aperte a parte do ombro com 4 parafusos M3x6mm na parte superior e 4 parafusos M3x6mm na parte inferior
  • Adicione o suporte do motor do ombro.

Junção 2

  • Instale os dois bichos de motor. Fixe o bicho superior com um parafuso M3x6mm. Não são necessários parafusos para o bicho inferior.
  • Deslize o segundo motor a partir do topo.
  • Fixe o segundo motor com 4 parafusos M2x6mm.
  • Fixe o braço superior com 4 parafusos M3x6mm em cada lado.

Conjunto 3

  • Instale os dois bichos de motor. Fixe o bicho superior com um parafuso M3x6mm. Não são necessários parafusos para o bicho inferior.
  • Insira o motor 3 e fixe-o usando 4 parafusos M2x6mm.
  • Conecte o antebraço ao motor 3 usando 4 parafusos M3x6mm em cada lado.

Conjunto 4

  • Instale os dois bichos de motor. Fixe o bicho superior com um parafuso M3x6mm. Não são necessários parafusos para o bicho inferior.
  • Suporte deslizante do motor 4.
  • Deslize para o motor 4.
  • Fixe o motor 4 com 4 parafusos M2x6mm.

Conjunto 5

  • Insira o motor 5 no suporte do pulso e fixe-o com 2 parafusos frontais M2x6mm.
  • Instale apenas um chifre de motor no motor do pulso e fixe-o com um parafuso de chifre M3x6mm.
  • Fixe o pulso ao motor 4 usando 4 parafusos M3x6mm em ambos os lados.

Gancho / Alça

Seguidor
Líder
  • Conecte o garfo ao motor 5 e fixe-o no chifre do motor no pulso usando 4 parafusos M3x6mm.
  • Insira o motor do garfo e fixe-o com 2 parafusos M2x6mm em cada lado.
  • Instale os dois chifres de motor no motor da garra. Fixe o chifre superior com um parafuso M3x6mm; não são necessários parafusos para o chifre inferior.
  • Instale a garra e fixe-a com 4 parafusos M3x6mm em ambos os lados.

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=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

O vídeo abaixo mostra como realizar a calibração. Primeiro, você precisa mover o robô para a posição em que todas as juntas estão no meio de seus intervalos. Em seguida, após pressionar enter, você deve mover cada junta por todo o seu intervalo de movimento.

Vídeo de calibração

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=so101_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