← Volver al Blog
Robotics & Physical AI

Integración humanoide LeRobot SONIC: los tokens de movimiento no son articulaciones motoras

La integración humanoide de LeRobot separa una política de tareas aprendida del control integrado de cuerpo completo en Unitree G1. Sigue la interfaz de tokens de movimiento SONIC y el desajuste de observación de 31 valores frente a 64 valores que debe resolverse antes de tratar un checkpoint como compatible.

Escrito por Hamza Diaz
26 de septiembre de 202610 min de lectura19 vistas

Lo que realmente agrega la integración humanoide de LeRobot

La integración humanoide LeRobot SONIC es interesante porque no pide a una política de tareas que controle directamente cada motor de un Unitree G1. Ese es el instinto correcto. Una política humanoide puede predecir una representación compacta del movimiento, mientras un controlador local maneja el movimiento de cuerpo completo y proporciona objetivos articulares para el seguimiento de bajo nivel. Esta separación no establece un equilibrio seguro en una configuración no probada.

Para el checkpoint de colocación de latas, la política de tareas predice 64 valores de token de movimiento más dos campos de pinza. Esos 64 valores no son 64 comandos articulares. Son coordenadas latentes. Un decodificador integrado combina ese token con el historial reciente del estado del robot y luego produce objetivos articulares para el bucle de control proporcional derivativo del robot.

Esa separación es el punto central. También es donde una integración descuidada puede fallar.

Una nota de integración útil, no un benchmark nuevo

El artículo de integración humanoide de LeRobot del 25 de septiembre explica cómo encajan la teleoperación, el aprendizaje de políticas y el control del Unitree G1. El checkpoint y el conjunto de datos de colocación de latas ya eran artefactos de agosto, por lo que el anuncio no debe leerse como una nueva publicación de modelo con pesos nuevos. La parte útil es el diagrama de cableado, especialmente la forma en que expone el límite entre la salida de la política y el control de movimiento integrado.

La primera pregunta práctica es la compatibilidad

La publicación describe un flujo de trabajo. La documentación del controlador describe el despliegue. El checkpoint describe una política entrenada. Leer los tres juntos plantea una pregunta simple: ¿el runtime proporciona las observaciones que el checkpoint fue entrenado para usar?

Esa pregunta sigue sin resolverse. La política de latas espera 31 valores de estado. El controlador SONIC documentado expone 64 valores de eco de token. Las dimensiones de acción compartidas no resuelven el asunto.

Esto es distinto de la transferencia de almacenamiento cubierta en nuestro análisis de integración LeRobot LanceDB. Un conjunto de datos legible y un checkpoint cargable son útiles, pero no demuestran que un runtime de robot en vivo esté alimentando la misma representación de estado que la política aprendió.

Por qué la política de tareas no es el controlador de equilibrio

El token no es una lista de motores

La publicación describe una representación latente SONIC de 64 dimensiones. El checkpoint de latas agrega dos campos de pinza. Esas coordenadas codifican la intención de movimiento. No son posiciones articulares, objetivos de torque ni una lista directa de comandos de actuadores.

La documentación del G1 describe SonicWholeBodyController decodificando un token más propiocepción reciente en una acción residual. Ese residual se escala y se suma a ángulos de pie predeterminados, lo que produce objetivos para 29 articulaciones. El control PD del robot luego sigue esos objetivos.

El decodificador carga pesos ONNX y constantes de despliegue desde lerobot/sonic_decoder. La implementación fijada lee ganancias PD, ángulos predeterminados, escala de acción y un token neutro desde los metadatos ONNX. También separa el orden de articulaciones de IsaacLab del orden de despliegue de MuJoCo. Esos mapeos no son contabilidad. Son parte del contrato de movimiento.

Para una visión más amplia de las suposiciones de hardware y controlador, nuestro análisis de morfología y control de BRIDGE es contexto útil. No demuestra que BRIDGE y SONIC compartan una interfaz.

La inferencia remota no debe poseer el bucle local

Para el despliegue físico, la documentación describe un policy_server del lado de la GPU, un robot_client integrado que ejecuta el controlador SONIC en el Jetson del G1 y el puente run_g1_server. Los fragmentos de tokens se mueven por la red. El controlador integrado está diseñado para ejecutar su bucle documentado de 50 Hz usando propiocepción local; el cumplimiento real de los plazos debe medirse.

flowchart LR O[Observaciones de cámara y articulaciones] --> M[Procesador de observaciones resuelto] L[Instrucción de tarea] --> P[Política de tareas en GPU] M --> P P --> N[Red: fragmentos de tokens; enrutamiento de pinza sin resolver] subgraph G[ONBOARD G1] N --> Q[Cola de acciones] Q --> D[Decodificador SONIC] R[Propiocepción reciente] --> D D --> T[Objetivos articulares PD] T --> B[Cuerpo del robot] B --> R Q -.-> H[Mapeo separado de pinza propuesto] end B --> O

Este diagrama es un mapa conceptual de interfaz, no un despliegue verificado. El procesador de observaciones se deja sin resolver a propósito. El ciclo de retroalimentación local no debería necesitar un nuevo resultado de inferencia de GPU en cada tick del controlador. El almacenamiento en búfer puede reducir la dependencia de la latencia remota, pero no demuestra equilibrio seguro ni comportamiento útil después de una pérdida de red.

La colocación asíncrona y el RTC guiado son mandos distintos

El despliegue asíncrono decide dónde se ejecuta la inferencia y cómo llegan los fragmentos de acción al robot. El chunking guiado en tiempo real, o RTC, aborda la predicción a través de los límites de los fragmentos de acción. La tarjeta del checkpoint de latas recomienda RTC guiado, mientras también dice que este checkpoint no fue entrenado para RTC entrenado ni piR2.

No fusiones esas ideas en una sola afirmación. El muestreo del conjunto de datos a 50 fps, un fragmento de 50 acciones, la cadencia de publicación y un controlador de 50 Hz son cantidades separadas. Los números coincidentes pueden ser una pista. No son prueba de que los relojes coincidan en un sistema en vivo.

El mapa de interfaz de token a movimiento

Empieza con la semántica, luego comprueba las formas

La configuración del checkpoint declara observation.state con forma [31] y action con forma [66]. El esquema del conjunto de datos nombra los campos de estado: 29 posiciones articulares, luego valores de pinza izquierda y derecha. Sus campos de acción son motion_token_0 hasta motion_token_63, seguidos por las pinzas.

La parte 5 de la documentación principal actual del G1, en cambio, dice que SonicWholeBodyController devuelve un estado de observación de eco de token de 64 dimensiones. La función observation_state() de la implementación fijada confirma que expone el último token decodificado, no el vector medido de articulaciones y pinzas del checkpoint.

Esa es la brecha principal de integración. La compatibilidad directa no está establecida. Un equipo necesita resolver el procesador de observaciones, el mapeo de estado físico, la normalización y la revisión de código antes de conectar estos artefactos. Rellenar un vector articular o recortar un vector latente solo hace que el tensor pase una comprobación de forma. No hace que los valores signifiquen lo mismo.

La tabla de la tarjeta del modelo también etiqueta la acción como "64 articulaciones + 2 pinzas". Eso entra en conflicto con los campos de configuración nombrados, el esquema del conjunto de datos y la explicación de la publicación. Para esta interfaz, los artefactos tipados pesan más que la redacción de la tabla.

Matriz de compatibilidad para la ruta completa de movimiento

El mapa de interfaz de token a movimiento siguiente es una síntesis editorial de los artefactos inspeccionados. No es un estándar y no es una receta de despliegue probada por Optijara. Su trabajo es hacer visible la evidencia faltante antes de que alguien elija un runtime.

InterfazSignificado esperadoArtefacto para inspeccionarComprobación sin resolver
Entrada de la políticaEstado de articulaciones y pinzas [31], tres flujos de cámara y texto de tareaCaracterísticas de entrada del checkpoint y nombres de estado del conjunto de datosConciliar el estado de eco de token del controlador con observaciones medidas
Token de acción64 coordenadas latentes, no posiciones articularesaction_feature_names y claves de acción del controladorMapear motion_token_i a motion_token.{i}.pos sin cambiar orden ni significado
Mapeo de pinzasCampos separados izquierdo y derecho después del tokenEsquema del conjunto de datos y procesador del robotEstablecer enrutamiento, unidades y la limitación registrada de la mano izquierda
Constantes del decodificadorGanancias, postura de pie, escala y token neutroMetadatos ONNX y fuente fijada del controladorRevisar constantes y conversiones de orden articular juntas
Frecuencia del controladorDecodificación local a 50 Hz y producción de objetivoscontrol_dt del controlador y documentación del G1Medir plazos de forma independiente de la latencia de GPU
Cadencia de fragmentosHorizonte de la política, publicación y consumo de colaTamaño de fragmento del checkpoint y planificador del runtimeEstablecer la temporización en lugar de copiar fps de ejemplo
Versión de runtimePolítica, procesadores y controlador coincidentesReferencia de código del checkpoint y revisión de fuenteResolver diferencias antes de afirmar compatibilidad

La tarjeta del checkpoint registra el código de LeRobot 8bf6056d1. La fuente del controlador inspeccionada aquí está fijada a e595b7902714ba51f91e47523f66f89c5181b649. La documentación principal actual requiere una instalación desde fuente y distingue la versión estable v0.6.1. Sus ejemplos de SONIC usan nepyope/sonic_walk, no el checkpoint de latas. Trátalos como referencias relacionadas, no como instrucciones intercambiables.

{
  "contract": {
    "checkpoint_state": "29 joint positions plus 2 grippers",
    "checkpoint_action": "64 SONIC coordinates plus 2 grippers",
    "documented_controller_state": "64-value token echo"
  },
  "proposedchecks": ["Resolve observation processor", "Verify names and normalization", "Pin compatible runtime revisions"],
  "limitations": ["Drop-in compatibility unresolved", "No inference, simulation or hardware tests performed for this article"]
}

Lo que muestra el checkpoint de latas y lo que no

Lee la tarea, las cámaras y la temporización como un contrato

La tarjeta del conjunto de datos can_clean_final describe 105 episodios y 212.290 fotogramas a 50 fps. Los tres flujos de cámara de 480 por 640 son ego_view, left_wrist y right_wrist. La única tarea es Bring the can to the white table. Esos detalles definen el contrato de entrada del checkpoint. No establecen rendimiento en otra sala, con otro montaje de cámara o bajo una instrucción de tarea diferente.

El conjunto de datos documenta action[t] como el comando que produce observation.state[t+1]. Conserva esa relación al construir ejemplos de reproducción. El estado con el mismo índice no debe convertirse silenciosamente en el resultado atribuido a la acción.

La tarjeta también informa que observation.state[29] y action[64], los campos de la pinza izquierda, siempre son cero. En términos prácticos, las grabaciones fueron de una sola mano. Dos campos de salida de pinza no proporcionan evidencia de habilidad bimanual.

La normalización necesita el mismo cuidado. La configuración especifica normalización por cuantiles para estado y acción. La tarjeta del conjunto de datos dice que los límites de cuantiles de la pinza izquierda se fijaron manualmente para evitar división por cero. Una migración del procesador tiene que preservar ese manejo en lugar de interpretar un rango numérico válido como comportamiento útil de la mano izquierda.

La pérdida no es una afirmación de éxito en la tarea

El conjunto de datos fue revisado y se eliminaron fallos. La tarjeta del checkpoint informa una pérdida final de entrenamiento de 0,025, explícitamente sin una partición de reserva. Es metadato útil de entrenamiento. No es éxito autónomo en la tarea y no es evidencia de generalización.

La lectura justa es más estrecha: estos artefactos documentan una configuración de entrenamiento y exponen restricciones que una evaluación compatible debe respetar. Las afirmaciones de capacidad necesitan evidencia separada de bucle cerrado. Presupuesta explícitamente la comprobación de suposiciones de interfaz y la evaluación del comportamiento, en lugar de tratar la disponibilidad de artefactos como prueba de compatibilidad.

Un plan de adopción con simulación primero para la pila de movimiento del G1

Etapa 1: conciliar el contrato offline

Todas las comprobaciones siguientes son propuestas. Optijara no ha ejecutado inferencia, simulación, entrenamiento ni pruebas físicas con robots para este artículo.

Empieza con la inspección de artefactos. Fija revisiones. Compara nombres de estado y unidades. Confirma el orden articular. Rastrea ambas pinzas por separado. Compara identidades de cámaras y preprocesamiento con el checkpoint, no solo dimensiones de imagen. Inspecciona la normalización de estado y acción y las constantes del decodificador. Trata el mapeo de observación de 31 frente a 64 sin resolver como una condición de parada.

Este también es el lugar para comprobar la alineación temporal. Una canalización de reproducción que suministra los campos correctos desde el timestep equivocado no ha reproducido la interfaz de entrenamiento. Registra las decisiones del procesador para que otro ingeniero pueda distinguir transformaciones deliberadas de coerción accidental.

Etapa 2: separar la temporización de la política de la temporización del controlador

Después de resolver herramientas y mapeos compatibles, ejecuta reproducción offline o simulación de la interpretación de token a objetivo antes de juzgar el comportamiento de tarea aprendido. La documentación proporciona ejemplos de simulación, pero eso no muestra que un simulador sin cambios reproduzca esta pila exacta de política de latas.

Medición propuestaQué capturarDecisión que respalda
Comprobaciones de forma y nombreCampos de entrada y salida, orden articular y enrutamiento de pinzasDetenerse cuando el significado del tensor difiera
Normalización y alineaciónEstadísticas del procesador y emparejamiento de action[t] con el siguiente estadoRechazar ejemplos reconstruidos incorrectamente
Salud de la colaEdad de la acción, underruns y eventos de reemplazo de fragmentosIdentificar comandos de política obsoletos o ausentes
Temporización del controladorIncumplimientos de plazo e intervalos de tick localesSeparar problemas de ejecución integrada del retraso de inferencia
Latencia de la políticaLatencia de inferencia p50 y p95, con contexto de hardwareEvaluar la planificación frente al retraso observado
Progreso de la tareaCriterios de finalización predefinidos, intervenciones y reiniciosEvaluar el comportamiento por separado de la salud de temporización

Define umbrales de aceptación para la configuración prevista antes de probar. Este artículo no proporciona valores predeterminados universales de seguridad. Registra la cadencia de publicación y el consumo de cola junto con la latencia de inferencia; un promedio decente puede ocultar interrupciones. Para una discusión complementaria de la evidencia conductual, consulta nuestro mapa de evaluación robótica de video a tarea.

Etapa 3: decidir si la preparación de hardware está justificada

Adopta ahora la inspección de interfaz. Migra procesadores solo después de que sus significados estén resueltos. No trasplantes un comando de tarjeta de checkpoint al código de hardware principal actual solo porque ambos mencionan Unitree G1.

Antes de cualquier prueba física, exige procedimientos de seguridad del fabricante, un área de prueba controlada y una parada de emergencia funcional. Revisa explícitamente el comportamiento de cola obsoleta y pérdida de red. Este artículo no establece un watchdog predeterminado ni recomienda una prueba de humo síncrona en hardware.

Errores comunes y limitaciones que conviene mantener visibles

Errores que hacen que la interfaz parezca más segura de lo que es

  • Tratar coordenadas latentes como articulaciones motoras omite el papel del decodificador. Rastrea la decodificación de tokens y la conversión de orden articular.
  • Coincidir dimensiones de acción mientras se ignora el significado de observación deja sin resolver la entrada de la política. Comprueba ambos lados del contrato.
  • Llamar 50 Hz a la velocidad de la política confunde el control local con el rendimiento de inferencia. Mídelos por separado.
  • Inferir habilidad bimanual de dos campos de salida ignora la pinza izquierda registrada como inactiva.
  • Tratar RTC guiado como despliegue asíncrono seguro confunde la predicción de fragmentos con la colocación del runtime y el manejo de fallos.

Licencias, seguridad y compromisos operativos

El listado de archivos del decodificador SONIC inspeccionado expone artefactos del decodificador, pero no muestra una tarjeta de modelo ni un archivo de licencia visibles. Esa ausencia no es una conclusión legal. Revisa por separado los términos del modelo base, decodificador, software del controlador, conjunto de datos y hardware; una licencia de biblioteca o conjunto de datos no concede permiso para todos los componentes.

La deriva de la rama principal y los procesadores de la época del checkpoint complican la reproducibilidad. La colocación de cámaras, las convenciones de propiocepción y las diferencias de ejecución en GPU también necesitan revisión. Si las observaciones de cámara salen del robot para inferencia remota, evalúa controles de acceso y privacidad para el entorno operativo.

Presupuesta trabajo de integración y evaluación sin asumir preparación para producción. La decisión inmediata es si un equipo puede establecer un contrato consistente de observación a token a movimiento, con las suposiciones sin resolver visibles antes de que empiece la preparación de hardware.

Puntos clave

  • 1La política de latas produce 64 coordenadas latentes SONIC más dos campos de pinza, no 64 comandos de articulaciones motoras.
  • 2La inferencia de la política de tareas y el control integrado de cuerpo completo tienen entradas, responsabilidades de temporización y modos de fallo distintos.
  • 3Resuelve el estado de articulaciones y pinzas de 31 valores del checkpoint frente al eco de token de 64 valores del controlador documentado antes de afirmar compatibilidad.
  • 4El muestreo del conjunto de datos, el fragmentado de acciones, la cadencia de publicación y el bucle de 50 Hz del controlador son cantidades separadas.
  • 5Las comprobaciones propuestas no son pruebas ejecutadas, y la pérdida de entrenamiento no es éxito demostrado de tarea en hardware.

Conclusión

La integración SONIC de LeRobot da a los equipos una separación práctica entre aprendizaje de tareas y ejecución de movimiento integrada. El checkpoint de latas hace visible la cadena de dependencias, pero no resuelve la compatibilidad con el controlador documentado. Empieza con semántica de observación, nombres de acción, constantes del decodificador y revisiones de runtime antes de asumir compromisos de implementación.

Preguntas frecuentes

¿Qué agrega la integración humanoide LeRobot SONIC?

Conecta una política de tareas de Unitree G1 que predice tokens de movimiento SONIC y acciones de pinza con control integrado de cuerpo completo. La descripción general de integración del 25 de septiembre no convierte el checkpoint ni el conjunto de datos de latas de agosto en pesos recién publicados.

¿Los 64 valores de acción SONIC son comandos de articulaciones motoras?

No. Son coordenadas latentes de movimiento. El checkpoint de latas agrega dos campos de pinza para una acción de 66 valores. El decodificador SONIC combina tokens con propiocepción reciente para producir objetivos para 29 articulaciones.

¿Puede el checkpoint de latas ejecutarse sin cambios con SonicWholeBodyController?

La compatibilidad directa no está resuelta. El checkpoint espera 31 valores de estado de articulaciones y pinzas, mientras que la documentación principal actual describe un eco de token de 64 valores. Resuelve el mapeo de observaciones, la normalización y las versiones de runtime fijadas antes de la ejecución; rellenar o recortar no puede reparar un desajuste semántico. Empieza con inspección offline y reproducción o simulación compatible. Cualquier prueba física posterior requiere procedimientos de seguridad del fabricante, un área controlada y una parada de emergencia funcional. No se realizaron pruebas con robots para este artículo.

¿Un controlador SONIC de 50 Hz significa que la política de tareas se ejecuta a 50 Hz?

No. Los ticks del controlador local, la inferencia de GPU, el muestreo del conjunto de datos, la longitud de fragmento y la publicación de comandos son cantidades separadas. Mide su relación en lugar de inferir el rendimiento de la política a partir de la frecuencia del controlador.

¿El RTC guiado es lo mismo que la ejecución asíncrona de políticas?

No. El RTC guiado se ocupa de las predicciones a través de límites de fragmentos de acción. La ejecución asíncrona se ocupa de la planificación, el almacenamiento en búfer y la colocación de procesos. Ninguno de los dos por sí solo demuestra compatibilidad del checkpoint ni comportamiento seguro después de una pérdida de red.

Fuentes

Compartir este artículo

Hamza Diaz

Escrito por

Hamza Diaz

Hamza Diaz es el fundador de Optijara, donde crea agentes de IA prácticos, sistemas de automatización y flujos de trabajo de Copilot para empresas de servicios. Escribe sobre operaciones de IA, estrategia de agentes e implementación real para equipos que quieren sistemas útiles en lugar de promesas vacías.