🧠 Arquitectura Dual-System (S1/S2)
Kahneman aplicado a robots: reflejo rápido (S1) y planificación lenta (S2) trabajando en sincronía. La separación de frecuencias que hace posible un robot que piensa e envejece al mismo tiempo.
Contenido detallado
🧩 Kahneman y el marco Thinking Fast and Slow
Daniel Kahneman propuso que el pensamiento humano opera en dos modos: Sistema 1 (rápido, intuitivo, automático) y Sistema 2 (lento, deliberado, analítico). En robótica, este framework inspira arquitecturas donde un módulo reactivo controla los movimientos en tiempo real mientras otro planifica a alto nivel.
✓ Cuándo S1/S2 funciona bien
- Separación clara de responsabilidades — planificación y control con latencias distintas.
- Buffer asíncrono — S1 nunca espera a S2; continúa con el último subgoal.
- Retroalimentación de estado — S1 reporta el progreso; S2 vuelve a planificar cuando es necesario.
- Degradación gradual — si S2 falla, S1 mantiene el comportamiento seguro.
✗ Errores comunes
- Pipeline síncrono — hacer que S1 espere a S2 en cada frame bloquea el control motor.
- Frecuencias mal dimensionadas — S2 a 1 Hz con S1 a 200 Hz genera deriva del subgoal.
- Sin watchdog — S2 bloqueado sin fallback deja al robot en un estado indefinido.
- Interfaz de alto acoplamiento — los cambios en S2 rompen S1 y viceversa.
Conceptos clave
Tomar decisiones óptimas con recursos computacionales limitados.
Tiempo entre percepción y acción: crítico para la estabilidad en lazo cerrado.
Las decisiones más rápidas son menos precisas; el sistema dual equilibra ambos extremos.
🔭 System 2: VLM como planificador a 7–9 Hz
El System 2 robótico usa un Vision-Language Model (VLM) que procesa imágenes y lenguaje natural para generar planes de acción de alto nivel. Funciona normalmente a 7–9 Hz porque es computacionalmente costoso, pero produce una comprensión semántica rica del entorno y los objetivos.
🎯 Por qué 7–9 Hz es suficiente para la planificación
La planificación de alto nivel no necesita velocidad: la tarea "tomar la taza" cambia cada segundo, no cada milisegundo. El VLM tiene tiempo para razonar sobre el contexto, el lenguaje y la semántica visual antes de emitir un nuevo subgoal.
- Descomposición de tareas — desglosa instrucciones en lenguaje natural en subobjetivos ejecutables.
- Generación de subgoals — emite embeddings o tokens que S1 interpreta como objetivos de comportamiento.
- Replanificación adaptativa — detecta fallas mediante la retroalimentación de S1 y genera un nuevo plan.
💡 Consejo práctico
En la práctica, el VLM de S2 casi siempre es un modelo preentrenado (Gemini, GPT-4V, InternVL) con un ajuste fino mínimo para el dominio robótico. Rara vez entrenas el S2 desde cero — el costo computacional es prohibitivo. El valor está en el ajuste fino eficiente con datos de demostración.
⚡ System 1: política visuomotora a 200 Hz
System 1 es una red neuronal ligera, normalmente un diffusion policy o MLP, que convierte observaciones visuales en comandos motores a 200+ Hz. No "entiende" el objetivo global; solo ejecuta el comportamiento motor correspondiente al subgoal recibido de S2.
⏱️ Por qué importan 200 Hz
❌ Insuficiente — movimientos temblorosos, incapaz de reaccionar a perturbaciones en tiempo real.
⚠️ Marginal — funciona para tareas lentas; no es adecuado para la manipulación fina.
✓ Adecuado — cumplimiento natural, reacción a perturbaciones, manipulación diestra.
✓ Ideal — control de impedancia; requiere hardware dedicado (FPGA/ASIC).
Conceptos clave de S1
Predice secuencias de acciones en lugar de acciones puntuales: reduce el jitter y mejora la fluidez.
Modela la distribución de acciones mediante denoising iterativo; genera trayectorias suaves y multimodales.
Ajusta acciones continuamente según las observaciones sensoriales —esencial para la robustez.
Retraso total de la cadena cámara → inferencia → comando del motor; debe ser <5ms para 200 Hz.
🤖 GR00T, Helix y π0: implementaciones reales
En 2025–2026, tres sistemas se convirtieron en referentes de cómo se implementa la arquitectura de sistema dual en la industria. Cada uno resuelve el problema con un enfoque distinto: desde pipelines modulares hasta modelos unificados con dual-head.
📊 Trade-offs de diseño
- Modular (GR00T/Helix) — es más fácil actualizar S2 sin reprocesar S1; mayor latencia de comunicación.
- Unificado (π0) — representaciones compartidas; más eficiente; actualización más compleja.
- Modelo externo (Helix/Gemini) — Aprovecha los LLM de punta sin costo de entrenamiento; depende de una API estable.
🖥️ GPU integrada: por qué no usar la nube
Los robots autónomos necesitan GPU integradas — como Jetson Thor o Orin — para ejecutar inferencia localmente. La latencia de red (50–200 ms) hace que la nube sea inviable para el control motor en tiempo real, donde cada milisegundo define la estabilidad y la seguridad.
⚙️ Jetson Thor / Orin
SoC de NVIDIA con GPU Ada/Ampere integrada. Thor ofrece 2000 TOPS sparse para inferencia de modelos robóticos; Orin, 275 TOPS. Diseñados para el rango térmico de un robot (~20–30W).
📉 Cuantización INT8/INT4
Reduce los pesos de FP32 a 8 o 4 bits: entre 4 y 8 veces menos memoria y entre 2 y 4 veces más rendimiento. Esencial para ejecutar VLM de 7B parámetros en VRAM integrada limitada, sin una pérdida crítica de precisión.
🌡️ Estrangulamiento térmico
Cuando el chip se calienta, reduce la frecuencia de reloj para proteger el hardware. En los robots, esto puede degradar la frecuencia de inferencia en momentos críticos. Un diseño térmico adecuado forma parte del pipeline de S1/S2.
☁️ Descarga selectiva de tareas
Las tareas no críticas (registro, volver a planificar a largo plazo, actualización de mapas) pueden usar la nube con una latencia tolerable. S1 siempre local; S2 puede tener componentes híbridos.
💡 Regla práctica para dimensionar
Para S1 a 200 Hz: el modelo no debe tardar más de 4 ms por inferencia. Para S2 a 9 Hz: hasta 100 ms por inferencia. Esto define el tamaño máximo del modelo sin cuantización: generalmente <100M params para S1 y <7B para S2 en Orin.
🔗 Orquestación S1↔S2: frecuencias e interfaces
La orquestación define cómo se comunican S1 y S2: S2 envía subobjetivos (embeddings o tokens) a S1, que ejecuta e informa el estado. El desafío es sincronizar un pipeline lento (7 Hz) con uno rápido (200 Hz) sin cuellos de botella — usando buffers asíncronos y priorización de mensajes.
✓ Patrones recomendados
- Double buffering — S1 lee del buffer activo mientras S2 escribe en el buffer inactivo; sin locks.
- Paso de mensajes asíncrono — S2 publica subgoals en un tópico; S1 los consume en el siguiente ciclo.
- Watchdog timer — si S2 no se actualiza en N ciclos, S1 entra en modo de seguridad.
- Degradación gradual — S1 mantiene el último subgoal válido hasta que S2 se recupere.
✗ Antipatrones
- Bloqueo síncrono — S1 espera a S2 en cada ciclo → latencia de 100 ms en vez de 5 ms.
- Sondeo de alto costo — verificar S2 en cada frame consume CPU que debería destinarse a la inferencia.
- Sin tratamiento de fallas — S2 bloqueado → S1 sin subgoal → el robot se congela o va a la posición predeterminada.
- Subgoal desactualizado no detectado — S1 ejecuta un subgoal desactualizado sin saber que el entorno cambió.
🔄 Pipeline de comunicación S1↔S2
VLM recibe frame + instrucción → infiere un plan → serializa el subobjetivo en un embedding.
Subgoal escrito en el buffer inactivo; la flag atomic indica que está disponible para S1.
La política lee el subobjetivo activo → infiere una acción a 200 Hz → envía torques → informa el estado.
Recibe el estado de S1 → detecta un fallo o progreso → decide si replanifica.
✅ Resumen del módulo
Siguiente módulo
3.2 — World Models y simulación predictiva