LeRobot documentation

Koch v1.1

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Koch v1.1

Nas etapas abaixo, explicamos como montar o robô Koch v1.1.

Ordene e monte as partes

Siga as instruções de obtenção e montagem fornecidas neste README. Elas o guiarão na configuração dos braços seguidor e líder, conforme mostrado na imagem abaixo.

Para uma demonstração visual do processo de montagem, você pode consultar este tutorial em vídeo.

Desde a produção deste vídeo, simplificamos a fase de configuração. Por isso, duas coisas diferem das instruções daquele vídeo:

  • Não conecte todos os cabos dos motores de imediato e aguarde a instrução para fazê-lo em Configure os motores.
  • Não fixe a placa do controlador (PCB) na base imediatamente e aguarde as instruções para fazê-lo em Configure the motors.

Instale o LeRobot 🤗

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

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

pip install -e ".[dynamixel]"

Configure os motores

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 a fonte de alimentação de 12V à placa controladora do braço seguidor (o braço líder usa a fonte de alimentação de 5V). 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=koch_follower \
    --robot.port=/dev/tty.usbmodem575E0031751 # <- 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 garfo 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 no 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, mas modifique o comando ou o script de acordo.

Comando
Exemplo de API
lerobot-setup-motors \
    --teleop.type=koch_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751

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=koch_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 Koch são as mesmas das etapas para o SO100 e o SO101. Primeiro, precisamos mover o robô para a posição em que cada junta está no meio de sua faixa de movimento, em seguida, pressionamos Enter. Em segundo lugar, movemos todas as juntas por toda a sua faixa 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=koch_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