LeRobot documentation

SO-101

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

SO-101

SO-101 SO-101

En los pasos a continuación, explicamos cómo ensamblar nuestro robot insignia, el SO-101.

Obtener las piezas

Sigue este README. Contiene la lista de materiales, con un enlace para conseguir las piezas, así como las instrucciones para imprimir las piezas en 3D. También incluye consejos si es la primera vez que imprimes o si no tienes una impresora 3D.

Instalar LeRobot 🤗

Para instalar LeRobot, sigue nuestra Guía de instalación

Además de estas instrucciones, debe instalar el SDK de Feetech (si instaló LeRobot desde PyPI, ejecute pip install 'lerobot[feetech]' en su lugar):

pip install -e ".[feetech]"

Instrucciones de ensamblaje paso a paso

El brazo seguidor utiliza 6x motores STS3215 con una relación de transmisión de 1/345. El líder, sin embargo, utiliza tres motores con relaciones de transmisión diferentes para asegurarse de que pueda soportar su propio peso y de que pueda moverse sin requerir mucha fuerza. El motor necesario para cada articulación se muestra en la tabla siguiente.

Eje del brazo líderMotorRelación de transmisión
Base / Hombro Pan11 / 191
Elevación de hombros21 / 345
Flexión del codo31 / 191
Flexión de muñeca41 / 147
Wrist Roll51 / 147
Gripper61 / 147

Configura los motores

1. Encuentra los puertos USB asociados con cada brazo

Para encontrar el puerto de cada adaptador de servos de bus, conecte MotorBus a su computadora mediante USB y alimentación. Ejecute el siguiente script y desconecte MotorBus cuando se le solicite:

lerobot-find-port
Mac
Linux

Ejemplo de salida:

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.

Donde se encuentra el puerto: /dev/tty.usbmodem575E0032081 correspondiente a su brazo líder o seguidor.

2. Establecer los ids de los motores y las tasas de baudios

Cada motor se identifica mediante un id único en el bus. Cuando son nuevos, los motores suelen venir con un id predeterminado de 1. Para que la comunicación funcione correctamente entre los motores y el controlador, primero es necesario asignar un id único y diferente a cada motor. Además, la velocidad a la que se transmiten los datos en el bus está determinada por el baudrate. Para que el controlador y todos los motores puedan comunicarse entre sí, es necesario configurar todos con el mismo baudrate.

Para ello, primero necesitamos conectar individualmente a cada motor con el controlador para establecer estos parámetros. Dado que escribiremos estos parámetros en la sección no volátil de la memoria interna de los motores (EEPROM), solo tendremos que hacerlo una vez.

Si estás reutilizando motores de otro robot, probablemente también necesites realizar este paso, ya que los ids y la velocidad de baudios probablemente no coincidirán.

El video de abajo muestra la secuencia de pasos para configurar los ids de los motores.

Video de configuración de motores

Seguidor

Conecte el cable USB desde su computadora y la fuente de alimentación a la placa de control del brazo seguidor. Luego, ejecute el siguiente comando o ejecute el ejemplo de la API con el puerto que obtuvo en el paso anterior. También deberá asignar un nombre a su brazo seguidor con el parámetro id.

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

Deberías ver la siguiente instrucción

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

Como se indicó, conecte el motor de la pinza. Asegúrese de que sea el único motor conectado a la placa y de que el propio motor no esté aún encadenado a ningún otro motor. Al presionar [Enter], el script establecerá automáticamente el id y la velocidad de baudios para ese motor.

Troubleshooting

Si obtienes un error en ese punto, revisa tus cables y asegúrate de que estén bien conectados:

  • Fuente de alimentación
  • Cable USB entre su computadora y la placa de control
  • El cable de 3 pines de la placa de control al motor

Si está utilizando una placa de controlador Waveshare, asegúrese de que los dos puentes estén configurados en el canal B (USB).

A continuación, debería ver el siguiente mensaje:

'gripper' motor id set to 6

Seguido de la siguiente instrucción:

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

Puede desconectar el cable de 3 pines de la placa de control, pero puede dejarlo conectado al motor de la pinza en el otro extremo, ya que ya estará en el lugar correcto. Ahora, conecte otro cable de 3 pines al motor de giro de la muñeca y conéctelo a la placa de control. Como con el motor anterior, asegúrese de que sea el único motor conectado a la placa y de que el propio motor no esté conectado a ningún otro.

Repita la operación para cada motor según se indica.

Compruebe el cableado en cada paso antes de presionar Enter. Por ejemplo, el cable de alimentación podría desconectarse mientras manipula la placa.

Cuando haya terminado, el script simplemente finalizará, momento en el que los motores estarán listos para su uso. Ahora puede conectar el cable de 3 pines de cada motor al siguiente, y el cable del primer motor (el ‘shoulder pan’ con id=1) a la placa de control, que ahora puede fijarse a la base del brazo.

Líder

Sigue los mismos pasos para el brazo líder.

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

Partes limpias

Retire todo el material de soporte de las piezas impresas en 3D. La forma más sencilla de hacerlo es usar un destornillador pequeño para acceder por debajo del material de soporte.

Se recomienda instalar un cable de 3 pines en el motor después de colocarlos y antes de continuar con el ensamblaje.

Articulación 1

  • Instale ambos bocinas de motor. Fije la bocina superior con un tornillo M3x6mm. No se requieren tornillos para la bocina inferior.
  • Coloque el primer motor en la base.
  • Fije el motor con 4 tornillos M2x6mm (los tornillos más pequeños). Dos desde arriba y dos desde abajo.
  • Deslice el primer soporte de motor y fíjelo con dos tornillos M2x6mm (uno en cada lado).
  • Adjunta la parte del hombro.
  • Ajuste la parte del hombro con 4 tornillos M3x6mm en la parte superior y 4 tornillos M3x6mm en la parte inferior
  • Agregue el soporte del motor del hombro.

Conjunto 2

  • Instale ambos bocinas de motor. Fije la bocina superior con un tornillo M3x6mm. No se requieren tornillos para la bocina inferior.
  • Deslice el segundo motor desde la parte superior.
  • Fije el segundo motor con 4 tornillos M2x6mm.
  • Fije el brazo superior con 4 tornillos M3x6mm en cada lado.

Conjunto 3

  • Instale ambos bocinas de motor. Fije la bocina superior con un tornillo M3x6mm. No se requieren tornillos para la bocina inferior.
  • Inserte el motor 3 y fíjelo con 4 tornillos M2x6mm.
  • Conecte el antebrazo al motor 3 usando 4 tornillos M3x6mm en cada lado.

Conjunto 4

  • Instale ambos bocinas de motor. Fije la bocina superior con un tornillo M3x6mm. No se requieren tornillos para la bocina inferior.
  • Soporte deslizante para motor 4.
  • Deslizar en el motor 4.
  • Fije el motor 4 con 4 tornillos M2x6mm.

Conjunto 5

  • Inserte el motor 5 en el soporte de muñeca y fíjelo con 2 tornillos frontales M2x6mm.
  • Instale solo un cuerno de motor en el motor de la muñeca y fíjelo con un tornillo de cuerno M3x6mm.
  • Fije la muñeca al motor 4 utilizando 4 tornillos M3x6mm en ambos lados.

Mandíbula / Asa

Seguidor
Líder
  • Fije el agarre al motor 5 y conéctelo al cuerno del motor en la muñeca utilizando 4 tornillos M3x6mm.
  • Inserte el motor de la pinza y fíjelo con 2 tornillos M2x6mm en cada lado.
  • Instale ambos cuernos de motor en el motor de la pinza. Fije el cuerno superior con un tornillo M3x6mm; no se requieren tornillos para el cuerno inferior.
  • Instale la garra de sujeción y fíjela con 4 tornillos M3x6mm en ambos lados.

Calibrar

A continuación, deberá calibrar su robot para asegurarse de que los brazos líder y seguidor tengan los mismos valores de posición cuando se encuentren en la misma posición física. El proceso de calibración es muy importante porque permite que una red neuronal entrenada en un robot funcione en otro.

Seguidor

Ejecute el siguiente comando o ejemplo de API para calibrar el brazo seguidor:

Comando
Ejemplo 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

El video de abajo muestra cómo realizar la calibración. Primero, debe mover el robot a la posición en la que todas las articulaciones estén en el medio de sus rangos. Luego, después de presionar enter, debe mover cada articulación a través de su rango de movimiento completo.

Video de calibración

Líder

Siga los mismos pasos para calibrar el brazo líder, ejecute el siguiente comando o ejemplo de API:

Comando
Ejemplo 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

Felicidades 🎉, tu robot está listo para aprender una tarea por sí solo. Comienza a entrenarlo siguiendo este tutorial: Primeros pasos con robots del mundo real

Si tienes alguna pregunta o necesitas ayuda, comunícate con nosotros en Discord.

Update on GitHub