Saltar al contenido principal
Etapa 3 · Capítulo 9 · Teoría

9. Arquitectura del sistema LeRobot y SO-ARM

Capítulo 9 del curso para principiantes de SO-ARM Physical AI — qué es LeRobot, la división de trabajo líder/seguidor, la arquitectura de plugins Robot y Teleoperator, el flujo de datos de cámaras/bus serie/brazos y lo esencial de la configuración del SO-ARM.

9.1 ¿Qué es LeRobot y por qué lo necesitamos?​

Motivación

9.1 ¿Qué es LeRobot y por qué lo necesitamos?

En el Capítulo 8 establecimos el marco conceptual del aprendizaje por imitación: demostración, datos, modelo, bucle cerrado. Pero para ejecutar ese pipeline, de inmediato aparece una ristra de problemas triviales pero concretos:

  • ¿Cómo alinear las marcas de tiempo entre fotogramas de cámara y ángulos de articulación?
  • ¿En qué formato almacenar imágenes, estados y acciones de docenas de episodios?
  • ¿Cómo compartir y descargar modelos entrenados en Hugging Face Hub?
  • ¿Cómo hacen los tres códigos — recolección, entrenamiento e inferencia — para compartir la misma lógica de control del brazo?
Reinventar la rueda

Si cada uno reinventa la rueda, el aprendizaje en robótica seguiría siendo un juego de pocos laboratorios. LeRobot es el framework de código abierto que Hugging Face construyó para resolver esto — implementa algoritmos de imitación probados (ACT, SmolVLA, GR00T, etc.) en PyTorch, define un formato estándar de dataset robótico y aporta una cadena completa de herramientas de línea de comandos, desde teleoperación y recolección hasta entrenamiento y despliegue. El SO-ARM nació precisamente junto a LeRobot como su hardware de referencia de bajo costo — están diseñados el uno para el otro.

9.2 Brazo líder y brazo seguidor​

Brazos

9.2 Brazo líder y brazo seguidor

  • El primer paso del aprendizaje por imitación es que "un humano demuestre al robot". La pregunta es: ¿cómo "enseña" un humano movimientos precisos a un brazo? Guirarlo con la mano es peligroso y produce datos poco suaves.
  • La respuesta es la teleoperación maestro-esclavo: usar un brazo de demostración estructuralmente idéntico, ligero y de movimiento libre como "dispositivo de entrada" — la persona mueve el líder y el seguidor sigue en tiempo real.
Brazo líder y brazo seguidor
  • Brazo líder (leader / de enseñanza): el brazo que la persona sostiene y mueve. Solo lee posiciones — lee sus ángulos en tiempo real y los envía al ordenador. No necesita ejercer fuerza, así que usa los mismos STS3215 con poca carga y relaciones menores donde la mano humana hace el trabajo.
  • Brazo seguidor (follower / de ejecución): el brazo que trabaja de verdad. Recibe los ángulos del líder e impulsa sus servos de mayor par y alimentación completa para seguir, completando el agarre real.

Es como la relación entre la palanca de control de la cabina de una grúa y el brazo de la grúa misma. El operador mueve la palanca ligera (líder) mientras el trabajo pesado lo hace el brazo de afuera (seguidor). Cada movimiento de la palanca se "traduce" en tiempo real a movimiento de la grúa.

Un kit SO-ARM trae ambos en la misma caja — por eso es una plataforma de enseñanza tan natural.

9.3 Arquitectura de plugins: plugin Robot y plugin Teleoperator​

Plugins

9.3 Arquitectura de plugins: plugin Robot y plugin Teleoperator

El primer principio de diseño de LeRobot: el framework no conoce hardware específico; solo define interfaces. El hardware se conecta como plugins.

Plugin RobotPlugin Teleoperator
RolEjecutor: recibe acciones, reporta estadoEntrada: solo lee la intención de movimiento humano
Dirección de datosBidireccional (lectura + escritura)Unidireccional (solo lectura)
Métodos núcleoget_observation(), send_action()get_action()
En el sistema SO-ARMso101_follower (seguidor blanco)so101_leader (líder negro)

Una frase para distinguirlos: el Robot se encarga de "hacer", el Teleoperator de "leer".

Arquitectura de plugins

9.4 Flujo de datos: cámaras, bus serie y brazos​

Flujo de datos

9.4 Flujo de datos: cámaras, bus serie y brazos

En un ciclo de control, ¿qué datos fluyen, en qué formato, por qué ruta? Un ordenador conecta tres tipos de periféricos, correspondientes a tres rutas:

  1. Cámaras → ordenador: fotogramas USB (vistas frontal y lateral);
  2. Líder → ordenador: posiciones de articulación por bus serie (/dev/ttyACM1) — la intención humana;
  3. Ordenador → seguidor: posiciones objetivo por bus serie (/dev/ttyACM0) — con el estado del propio seguidor leído en el mismo bus.

El ordenador está en el centro: lee cámaras + líder, escribe al seguidor, sella todo con marcas de tiempo y (al grabar) escribe una fila alineada de observación/estado/acción por fotograma.

9.5 Cuatro flujos de trabajo: cuatro usos del mismo sistema​

Flujos

9.5 Cuatro flujos de trabajo: cuatro usos del mismo sistema

Entendido el hardware y el flujo de datos, al mirar los cuatro flujos de esta etapa verás que usan los mismos plugins y la misma configuración; solo cambia la herramienta de LeRobot invocada:

FlujoHerramienta LeRobot
Teleoperaciónlerobot-teleoperate
Recolección de datoslerobot-record
Entrenamientolerobot-train
Inferencia y desplieguelerobot-record (con política) o lerobot-rollout
  • Teleoperación y recolección comparten la misma cadena de hardware — la única diferencia es si se graban datos.
  • Despliegue de inferencia y recolección son imágenes especulares: durante la recolección las acciones vienen del líder (humano); en la inferencia, del modelo (checkpoint). Todo lo demás (lectura de cámaras, retroalimentación de estado, comandos de servo, límites de seguridad) es idéntico. Ese es el beneficio de la arquitectura de plugins — cambiar al decisor no exige cambiar el sistema.
  • Teleoperación e inferencia: ambas activan todo el hardware y controlan el brazo en línea; la diferencia es "quién decide" — en la teleoperación, la persona; en la inferencia, el modelo.

9.6 Esenciales de la configuración del SO-ARM​

Configuración

9.6 Esenciales de la configuración del SO-ARM

ÍtemBrazo seguidorBrazo líder
Tipo LeRobot--robot.type=so101_follower--teleop.type=so101_leader
Puerto típico/dev/ttyACM0/dev/ttyACM1
Clave de puerto--robot.port--teleop.port
Clave de ID--robot.id--teleop.id
Alimentación (kit Standard)5V5V
Alimentación (kit Pro)12V5V

Notas que evitan los errores más comunes:

  • SO100 y SO101 comparten código. so101_leader y so100_leader son la misma implementación; los usuarios de SO100 usan los mismos comandos.
  • El id guarda el archivo de calibración. Usa el mismo --robot.id / --teleop.id en teleoperación, grabación y evaluación para el mismo brazo físico — si no, LeRobot buscará un archivo que no existe.
  • El orden de puertos sigue el orden de conexión en Linux y Jetson: primera placa = ttyACM0, segunda = ttyACM1. Verifica con lerobot-find-port antes de cada sesión.

El sistema en una frase: mismo esqueleto, dos roles. El líder lee, el seguidor escribe, las cámaras miran, y el ordenador lo cose todo con marcas de tiempo. Todos los comandos posteriores reutilizan exactamente esta configuración.

Loading Comments...