Por qué ACT sobresale en tareas bimanuales

ACT (Transformadores de Acciones Fragmentadas) fue desarrollado originalmente específicamente para la investigación en manipulación bimanual. Su idea central — que predecir secuencias de acciones futuras (fragmentos) en lugar de acciones de un solo paso reduce el error acumulativo — es especialmente valiosa para tareas bimanuales, donde un pequeño error en la trayectoria de un brazo puede causar un fallo en cascada en la ejecución del otro brazo.

El mecanismo de fragmentación de acciones le da efectivamente a la política un horizonte de planificación. En lugar de comprometerse a un solo comando conjunto en cada intervalo de 50Hz, ACT planifica 100 pasos por delante y suaviza la ejecución. Para una tarea de entrega, esto significa que la política puede "ver" la aproximación de ambos brazos hacia el punto de entrega como parte de una secuencia planificada, en lugar de reaccionar a cada cuadro de forma independiente. Empíricamente, esto reduce a la mitad la tasa de fallos a mitad de transferencia en comparación con enfoques no fragmentados en conjuntos de datos bimanuales.

Una advertencia: ACT asume que las demostraciones en tu conjunto de datos representan una estrategia consistente. Si diferentes demostraciones muestran formas fundamentalmente diferentes de ejecutar la entrega — diferente brazo que inicia, diferente altura de entrega — el componente CVAE tendrá dificultades para codificar un solo estilo. Tus 100 demostraciones deberían ejecutar todas la misma estrategia de movimiento.

Comando de Entrenamiento

source ~/dk1-env/bin/activate # policy.action_dim=14 tells ACT the action space is 14-dimensional (6+6 joints + 2 grippers) # Run this before sleeping — checkpoints save every 5k steps
GPU requerida para un tiempo de entrenamiento práctico: En una RTX 3080 (10GB), 80,000 pasos tardan aproximadamente 90 minutos. En una RTX 4090, aproximadamente 50 minutos. En CPU, espera de 10 a 14 horas. Usa el --device cuda bandera si tienes una GPU. Las opciones de GPU en la nube (Lambda Labs, Vast.ai) cuestan alrededor de $0.50–1.50/hora por el hardware necesario.

Lectura de Curvas de Entrenamiento Bimanuales

Las curvas de entrenamiento bimanuales difieren de las de un solo brazo en un aspecto importante: tienes dos espacios de acción, y la política debe aprender a coordinarlos. Observa estos patrones en tus curvas de pérdida (ver en TensorBoard en tensorboard --logdir ~/dk1-policies/):

L_reconstruction (pérdida de acción general)

Debería disminuir de ~3.0 a menos de 0.4 en 60,000 pasos. Un plateau por encima de 0.7 después de 40,000 pasos indica problemas de calidad en el conjunto de datos — probablemente demasiada variación en el tiempo o posición de entrega.

L_kl (regularización CVAE)

Comienza cerca de 0 y sube lentamente a 5–15. Si sube por encima de 30, el CVAE está teniendo dificultades para encontrar una representación de estilo compacta. Esto a menudo significa que tus demostraciones tienen demasiada diversidad de comportamiento. Considera eliminar el 20% inferior de las demostraciones menos consistentes y volver a entrenar.

Error de acción: izquierda vs. derecha

Si habilitas el registro de errores de acción por brazo (a través del training.log_per_action_dim=true anulación), verás curvas de pérdida separadas para las dimensiones de acción izquierda y derecha. Una gran brecha persistente entre las dos indica que las demostraciones de un brazo son más consistentes que las del otro — revisa tu lista de verificación de calidad de la Unidad 4 para el brazo rezagado.

Hiperparámetros específicos para bimanual.

Parámetro Predeterminado (un solo brazo) DK1 Bimanual Recomendado Por qué
action_dim 7 14 Dos brazos de 6-DOF + 2 pinzas = 14 dimensiones de acción
chunk_size 100 100 Igual — la segmentación de acciones ya está bien adaptada a las escalas de tiempo de coordinación bimanual
dim_feedforward 3200 3200 No se necesita cambio — el espacio de acción más grande es manejado por la cabeza de acción, no por el ancho del transformador
num_steps 50000 80000 La coordinación bimanual requiere más pasos de entrenamiento para converger de manera confiable; 80k es el mínimo práctico para 100 demostraciones
batch_size 32 16 Reducido para ajustarse a las muestras del conjunto de datos bimanual más grande (alimentaciones de cámara dual) en la memoria de la GPU
kl_weight 10 10 El predeterminado funciona bien; aumenta a 20 solo si L_kl se mantiene cerca de cero después de 30k pasos (CVAE no aprendiendo)

Selección de punto de control

Guarda puntos de control cada 5,000 pasos (training.save_freq=5000). No asumas que el último punto de control es el mejor. Las políticas bimanuales pueden sobreajustarse a altos conteos de pasos — la política aprende a reproducir las demostraciones de entrenamiento perfectamente pero pierde generalización ante las ligeras variaciones del mundo real que encontrarás durante la evaluación.

Selecciona el punto de control en el paso donde L_reconstruction alcanzó su mínimo antes de comenzar a estabilizarse o aumentar ligeramente. Por lo general, esto se encuentra en el rango de 60,000 a 80,000 pasos para conjuntos de datos bimanuales de 100 demostraciones. Despliega dos puntos de control (el punto de control de mínima pérdida y el final) y compara su rendimiento en el mundo real en la Unidad 6.

Unidad 5 Completa Cuando...

El entrenamiento ha completado 80,000 pasos y los puntos de control se guardan en ~/dk1-policies/cube-handoff-v1/. El final L_reconstruction el valor está por debajo de 0.5. Has identificado tu mejor punto de control basado en las curvas de pérdida. Entiendes por qué la curva L_kl se comporta como lo hace en tu ejecución. Estás listo para desplegar en hardware real en la Unidad 6 — la tasa de éxito objetivo en la transferencia del cubo es >60% (bimanual es más difícil que un brazo único, y este es un fuerte resultado de la primera ejecución).