Del Hub al robot físico: cómo conectar Strands Agents con LeRobot

Strands Robots integra la pila LeRobot para unir grabación, simulación y despliegue en hardware en un solo agente. Esta guía muestra cómo pasar de demostraciones en MuJoCo a un SO-101 real y coordinar flotas con una malla peer-to-peer.

Por Redaccion TD
Del Hub al robot físico: cómo conectar Strands Agents con LeRobot

Resumen

La integración entre Strands Robots y LeRobot busca simplificar el ciclo completo de aprendizaje por demostración para robots: desde la grabación de datos, pasando por la simulación, hasta el despliegue en hardware real y la coordinación entre múltiples unidades. En lugar de usar cinco herramientas separadas que no se comunican, Strands presenta AgentTools que componen un único agente. La idea central es que los datasets escritos en simulación y en hardware compartan exactamente el mismo formato en disco, y que las políticas se puedan intercambiar sin reescribir la lógica del agente.

Qué van a construir

El ejemplo mostrado por Strands realiza cuatro tareas clave dentro de un mismo agente:

  • Grabar nuevas demostraciones en simulación y guardarlas como LeRobotDataset.
  • Subir (opcional) ese dataset al Hugging Face Hub.
  • Ejecutar una política en simulación usando el mismo formato de dataset.
  • Desplegar exactamente el mismo código de agente a un robot físico SO-101 cambiando un solo argumento (mode=“real”).

Además, cuando hay más de un robot, el agente puede propagar comandos a la flota mediante una malla peer-to-peer.

Por qué esto importa para equipos en América Latina

Muchos laboratorios y equipos de I+D en la región cuentan con recursos limitados: acceso intermitente a GPU, presupuestos ajustados y barreras para la adquisición de hardware. Este flujo permite:

  • Empezar y validar todo en un laptop sin hardware ni GPU ni credenciales de Hugging Face para la ruta por defecto.
  • Mantener la misma estructura de datos entre sim y real, reduciendo la complejidad de pasar a producción física.
  • Reusar herramientas de LeRobot para grabación y calibración de hardware, mientras Strands orquesta el agente en producción.

Requisitos previos

Minimal (ruta por defecto en simulación):

  • Python 3.12+ en Linux o macOS (Apple Silicon compatible para el backend MuJoCo).
  • Un proveedor de modelos compatible con Strands para la razonamiento del agente (Amazon Bedrock, Anthropic, OpenAI o Ollama localmente).
  • Instalar Strands Robots con los extras recomendados: pip install “strands-robots[sim-mujoco,lerobot,mesh]”.

Advanced (para despliegue en hardware y uso real del Hub):

  • Cuenta y token de Hugging Face con permisos de escritura para subir datasets y descargar checkpoints.
  • Robots SO-101 (follower y leader) u otro robot soportado por LeRobot para el camino de hardware. Ambos dispositivos requieren archivos de calibración en ~/.cache/huggingface/lerobot/calibration/.
  • Para inferencia local con GR00T: una GPU NVIDIA con al menos 16 GB de memoria de video y Docker instalado.

Paso 1 – Preparar el ejemplo

Instalen Strands Robots y clonen el repositorio de ejemplos:

Si desean que el agente suba datasets o descargue políticas desde el Hub, exporten su token Hugging Face: export HF_TOKEN=hf_… (esto es opcional para la ruta simulada que viene por defecto).

Los archivos ejecutables viven en examples/lerobot/hub_to_hardware.py y hub_to_hardware.ipynb. El notebook es una buena puerta de entrada: pueden abrirlo en JupyterLab y ejecutar las celdas.

Paso 2 – Grabar demostraciones y empujar al Hub

La integración es deliberadamente delgada: LeRobot mantiene sus propias utilidades de línea de comando (por ejemplo, lerobot-record y lerobot-calibrate) para el arranque y la calibración en hardware. Strands aprovecha el mismo formato de dataset y comparte el DatasetRecorder entre simulación y hardware. Eso significa que si graban datos en MuJoCo o en un SO-101 físico, obtendrán LeRobotDatasets idénticos en disco.

En simulación pueden grabar demostraciones con las herramientas del ejemplo y, si lo desean, empujar el resultado al Hugging Face Hub usando su token. Para la ruta por defecto no necesitan credenciales: el dataset se escribe en la caché local.

Paso 3 – Ejecutar una política en simulación

Strands expone proveedores de políticas (por ejemplo GR00T y LerobotLocal) detrás de una interfaz común. Con la misma estructura de datos pueden ejecutar checkpoints MolmoAct2 vía LerobotLocal o usar políticas “mock” para pruebas rápidas. El flujo típico en Python es conciso: crear un Robot(“so100”) —que por defecto devuelve una simulación MuJoCo—, componer un Agent con los AgentTools necesarios y enviar una instrucción como “Pick up the red cube”. La implementación del agente realiza la orquestación: captar el dataset, invocar la política y controlar el robot en simulación.

Paso 4 – Desplegar en hardware real

Para pasar del simulador al robot físico basta con cambiar un argumento: Robot(“so100”, mode=“real”) devuelve una instancia controlada por LeRobot que habla con el hardware. El mismo agente, los mismos AgentTools y el mismo DatasetRecorder funcionan en ambos modos. Eso reduce la fricción para validar políticas en el mundo real, siempre que los robots estén calibrados y los archivos de calibración estén presentes en ~/.cache/huggingface/lerobot/calibration/.

Si planean correr inferencia local con GR00T, recuerden que la herramienta gr00t_inference con lifecycle=“full” descargará imágenes y checkpoints y necesita una GPU con al menos 16 GB y Docker.

Paso 5 – Coordinar múltiples robots con la malla

Strands incorpora una malla peer-to-peer (Zenoh mesh) que permite propagar acciones del agente a robots remotos. Esto facilita escenarios de flota donde un mismo agente coordina unidades distribuidas. La orquestación se mantiene en el agente; la malla expande su alcance sin cambios en la lógica de control.

Probar la aplicación de ejemplo

El repositorio contiene un script y un notebook listos para ejecutar la ruta de simulación en un laptop: examples/lerobot/hub_to_hardware.py y hub_to_hardware.ipynb. La notebook utiliza por defecto una política mock, lo cual permite experimentar sin GPUs ni credenciales.

Consideraciones de seguridad y operativas

  • La ruta por defecto (simulación) es segura para experimentación y evita riesgos de dañar hardware.
  • Para despliegues reales, sigan las prácticas de calibración y las herramientas oficiales de LeRobot para el arranque y la grabación.
  • El acceso al Hub requiere un token con permisos adecuados; mantengan ese token seguro.

Cómo encaja todo y siguientes pasos

Strands actúa como el pegamento: orquesta la grabación, la simulación, la inferencia y el despliegue usando los formatos y utilidades que ya provee LeRobot. Para equipos en América Latina esto representa una manera pragmática de acelerar la transición sim-to-real sin rehacer pipelines ni crear adaptadores complejos.

Si quieren avanzar, exploren el notebook en JupyterLab, prueben la ruta sim-only para validar sus agentes y, cuando estén listos, habiliten acceso al Hub y prueben la ruta real con un SO-101 calibrado.

Recursos

  • Código de ejemplo: repository strands-labs/robots (examples/lerobot/hub_to_hardware.py y hub_to_hardware.ipynb)
  • Comandos para instalar: pip install “strands-robots[sim-mujoco,lerobot,mesh]”

Este flujo ofrece una manera ordenada de mover investigaciones y prototipos hacia robots físicos, manteniendo compatibilidad entre simulación y hardware y reduciendo la complejidad operativa al mínimo.

Fuente original: Hugging Face Blog