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

En los pasos a continuación, explicamos cómo ensamblar el robot Koch v1.1.

Ordenar y ensamblar las piezas

Siga las instrucciones de adquisición y ensamblaje proporcionadas en este README. Esto le guiará a través de la configuración de ambos brazos, el seguidor y el líder, como se muestra en la imagen siguiente.

Para una explicación visual del proceso de ensamblaje, puede consultar este tutorial en video.

Desde la producción de este video, simplificamos la fase de configuración. Por lo tanto, dos cosas difieren de las instrucciones de ese video:

  • No conecte todos los cables del motor de inmediato y espere a que se le indique hacerlo en Configurar los motores.
  • No fije la placa del controlador (PCB) a la base de inmediato y espere a que se le indique hacerlo en Configure the motors.

Instalar LeRobot 🤗

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

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

pip install -e ".[dynamixel]"

Configura los motores

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 de 12V a la placa de control del brazo seguidor (el brazo líder utiliza la fuente de alimentación de 5V). 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=koch_follower \
    --robot.port=/dev/tty.usbmodem575E0031751 # <- 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

Realice los mismos pasos para el brazo líder, pero modifique el comando o el script en consecuencia.

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

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=koch_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 Koch son los mismos que para el SO100 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=koch_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