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

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

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. Y da 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]"

Configura los motores

Nota: A diferencia del SO-101, los conectores de los motores no son fácilmente accesibles una vez que el brazo está ensamblado, por lo que el paso de configuración debe realizarse con antelación.

1. Encuentra los puertos USB asociados con cada brazo

Para encontrar el puerto de cada adaptador de servos de bus, ejecute este script:

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.

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.

Para una referencia visual sobre cómo configurar los ids de los motores, consulte este video donde seguimos el proceso para el brazo SO101.

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

Instrucciones de ensamblaje paso a paso

Retire los engranajes de los 6 motores líderes

Video removing gears

Sigue el video para quitar las engranajes. Debes quitar el engranaje de los motores del brazo líder. Como resultado, solo usarás la codificación de posición del motor y reducirás la fricción para operar el brazo líder con mayor facilidad.

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.

Orientación adicional

Video assembling arms

Nota: Este video ofrece una guía visual para el ensamblaje de los brazos, pero no especifica cuándo ni cómo realizar el cableado. Insertar los cables con antelación es mucho más fácil que hacerlo después. El primer brazo puede tardar un poco más de 1 hora en ensamblarse, pero una vez que te acostumbres, puedes ensamblar el segundo brazo en menos de 1 hora.


Primer Motor

Paso 2: Insertar cables

  • Inserta dos cables en el primer motor.

Paso 3: Instalar en Base

  • Coloque el primer motor en la base.

Paso 4: Fijar el motor

  • Fije el motor con 4 tornillos. Dos desde la parte inferior y dos desde la parte superior.

Paso 5: Fije el soporte del motor

  • Deslice el primer soporte de motor y fíjelo con dos tornillos (uno en cada lado).

Paso 6: Fijar los cuernos del motor

  • Instale ambos cuernos del motor, asegurando el cuerno superior con un tornillo. Intente no mover la posición del motor al fijar el cuerno del motor, especialmente en los brazos líderes, donde quitamos las engranajes.
Video adding motor horn

Paso 7: Fijar la parte del hombro

  • Conecte un cable a la parte trasera del robot y el otro a la izquierda o hacia usted (vea la foto).
  • Adjunta la parte del hombro.

Paso 8: Hombro seguro

  • Ajuste la parte del hombro con 4 tornillos en la parte superior y 4 en la inferior (acceda a los orificios inferiores girando el hombro).

Segundo conjunto de motor

Paso 9: Instalar Motor 2

  • Deslice el segundo motor desde la parte superior y conecte el cable del motor 1 al motor 2.

Paso 10: Fije el soporte del hombro

  • Agregue el soporte del motor del hombro.
  • Asegúrese de que el cable que va del motor 1 al motor 2 pase por detrás del soporte, mientras que el otro cable se dirige hacia arriba (vea la foto).
  • Esta parte puede ser difícil de ensamblar; puedes usar un banco de trabajo como en la imagen o una configuración similar para empujar la pieza alrededor del motor.

Paso 11: Fijar el motor 2

  • Fije el segundo motor con 4 tornillos.

Paso 12: Fijar el claxon del motor

  • Conecte ambos bocinas del motor al motor 2, utilice nuevamente el tornillo de la bocina.

Paso 13: Adjuntar la base

  • Instale el accesorio base usando 2 tornillos.

Paso 14: Adjuntar el brazo superior

  • Fije el brazo superior con 4 tornillos en cada lado.

Tercer conjunto de motor

Paso 15: Instalar Motor 3

  • Enruta el cable del motor desde el motor 2 a través del soporte de cables hasta el motor 3 y luego asegura el motor 3 con 4 tornillos.

Paso 16: Fijar el claxon del motor

  • Conecte ambos cuernos del motor al motor 3 y fije uno de nuevo con un tornillo de cuerno.

Paso 17: Adjuntar el antebrazo

  • Conecte el antebrazo al motor 3 usando 4 tornillos en cada lado.

Ensamblaje del cuarto motor

Paso 18: Instalar Motor 4

  • Deslice el motor 4, conecte el cable del motor 3 y fije el cable en su soporte con un tornillo.

Paso 19: Fije el soporte de motor 4

  • Instale el cuarto soporte de motor (ajuste ajustado). Asegúrese de que un cable esté enrutado hacia arriba y el cable del motor 3 esté enrutado hacia abajo (vea la foto).

Paso 20: Fijar el motor 4 y conectar la bocina

  • Fije el motor 4 con 4 tornillos y conecte sus cuernos de motor, utilice un tornillo de cuerno para uno de ellos.

Ensamblaje de la muñeca

Paso 21: Instalar Motor 5

  • Inserte el motor 5 en el soporte de muñeca y fíjelo con 2 tornillos frontales.

Paso 22: Adjuntar muñeca

  • Conecte el cable del motor 4 al motor 5. Y ya inserte el otro cable para el actuador.
  • Fije la muñeca al motor 4 utilizando 4 tornillos en ambos lados.

Paso 23: Fijar el cuerno de la muñeca

  • Instale solo un cuerno de motor en el motor de la muñeca y fíjelo con un tornillo de cuerno.

Configuración del seguidor

Paso 24: Adjuntar el agarre

  • Conecte el agarre al motor 5.

Paso 25: Instalar el motor de la pinza

  • Inserte el motor de la pinza, conecte el cable del motor desde el motor 5 al motor 6 y fíjelo con 3 tornillos en cada lado.

Paso 26: Fije el cuerno y la garra de la pinza

  • Fije las bocinas del motor y vuelva a utilizar un tornillo de bocina.
  • Instale la garra de sujeción y fíjela con 4 tornillos en ambos lados.

Paso 27: Montar el controlador

  • Conecte el controlador del motor a la parte trasera del robot.

Ensamblaje completo: proceda al ensamblaje del brazo del líder.


Configuración del líder

Para la configuración del líder, realice los pasos 1–23. Asegúrese de haber retirado los engranajes del motor de los motores.

Paso 24: Fijar el soporte del líder

  • Monte el soporte del líder en la muñeca y fíjelo con un tornillo.

Paso 25: Adjuntar el mango

  • Fije la manivela al motor 5 utilizando 4 tornillos.

Paso 26: Instalar el motor de la pinza

  • Inserte el motor de la pinza, fíjelo con 3 tornillos en cada lado, conecte un cuerno de motor usando un tornillo de cuerno y conecte el cable del motor.

Paso 27: Adjuntar disparador

  • Fije el disparador del seguidor con 4 tornillos.

Paso 28: Montar el controlador

  • Conecte el controlador del motor a la parte trasera del robot.

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

Unificamos el método de calibración para la mayoría de los robots. Por lo tanto, los pasos de calibración para este brazo SO100 son los mismos que para el Koch y el SO101. Primero, debemos mover el robot a la posición en la que cada articulación se encuentra en el medio de su rango, y luego presionamos Enter. En segundo lugar, movemos todas las articulaciones a través de su rango de movimiento completo. Un video de este mismo proceso para el SO101 como referencia se puede encontrar aquí

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