Volver a Blog

Guía de configuración de ALOHA móvil: hardware, software y primeras tareas

Los costos de ALOHA móvil: base de AgileX Tracer, brazos ViperX 300, computación <unk> total BOM ~ $ 32K. Además de 3 alternativas más baratas a partir de $ 4.500. Completa configuración ROS2 y entrenamiento ACT.

[← Blog] T23)

Mobile ALOHA es una plataforma de teleoperación de todo el cuerpo en una base de ruedas.

Qué es ALOHA móvil

Mobile ALOHA, desarrollado en Stanford por Tony Zhao et al., extiende el ALOHA original (Un sistema de hardware de código abierto de bajo costo para la teleoperación bimanual) montando el sistema de brazo bimanual en una base móvil omnidireccional. Esto permite la teleoperación de todo el cuerpo: un operador controla los brazos y la base simultáneamente, demostrando tareas que requieren movimiento junto con la manipulación, como abrir puertas, empujar carros, limpiar mesas mientras se mueve y navegar entre habitaciones.

La contribución clave de la investigación de Mobile ALOHA está demostrando que la capacitación conjunta sobre diversos datos estáticos de ALOHA más un pequeño número de demostraciones móviles (hasta 50 episodios) produce políticas que generalizan sorprendentemente bien las tareas de manipulación móvil. Esto significa que las costosas demostraciones móviles se complementan con datos bimanual estáticos más baratos, lo que hace que el enfoque sea más práctico de lo que parece inicialmente.

Mobile ALOHA se ha convertido en una de las plataformas de investigación más replicadas en el aprendizaje robótico. Múltiples laboratorios, empresas y grupos de fabricantes han construido variantes, y el diseño de hardware original es completamente de código abierto. Sin embargo, el proceso de construcción implica más complejidad de lo que sugiere el documento, y esta guía cubre los detalles prácticos que la publicación académica omite.

Contrato de materiales de hardware

Un sistema completo de ALOHA móvil requiere cuatro categorías de hardware: la base móvil, los brazos de manipulación (líder y seguidor), el sistema de cámara y la pila de computación.

** Base móvil:**

  • Base de la unidad de diferenciación de AgileX Tracer: $4,500-5,500 dependiendo de la configuración. Esta es la plataforma utilizada en el papel original. Las alternativas incluyen el AgileX Scout Mini ($6,800) para una carga útil más alta o el Clearpath Jackal ($20,000+) para odometría de grado de investigación, pero el Tracer es la opción estándar para edificaciones con costos limitados.
  • Cuadro de montaje personalizado (extrusión de aluminio 80/20 o similar): $300-600 por materiales, más mecanizado.

Armas de seguimiento (los brazos robots que ejecutan tareas):

  • 2x Trossen Robotics ViperX 300 S2 6-DOF brazos: $ 4,800 cada, $ 9,600 en total. Estos son los brazos de seguimiento estándar para las construcciones ALOHA. Utilizan servos de la serie Dynamixel XM / XH con posición, velocidad y retroalimentación de la corriente (torque). La carga útil es de 750 g a la extensión completa, lo que limita el peso de los objetos que el sistema puede manipular.
  • 2x conjuntos de agarre personalizado: $200-400 cada uno. El agarre ALOHA estándar es un agarre paralelo simple con mandíbula con un servo Dynamixel XL330.

Armas de mando (manteniéndose por el operador durante la teleoperación):

  • 2x Trossen Robotics WidowX 250 S 6-DOF brazos: $ 3,100 cada, $ 6,200 en total. El WidowX es más ligero (0,53 kg) y de menor alcance que el ViperX, lo que hace que sea cómodo para el operador sentado o de pie para sostener durante sesiones de recopilación de datos de varias horas. La misma familia de servos Dynamixel asegura un mapeo cinemático transparente.
  • Los soportes de montaje del brazo del líder: $100-200. Montados a la altura de la cintura en el marco de la plataforma móvil para que el operador camine detrás de la plataforma mientras sostiene los brazos del líder.

** Sistema de cámaras:**

  • 2x Intel RealSense D405 cámaras de muñeca: $300 cada, $600 en total. Montados en las muñecas del brazo seguidor para vistas de manipulación de alcance cercano.
  • 1x Intel RealSense D435 cámara de alto nivel: $350. Montado en el mástil del marco para una vista de arriba hacia abajo del espacio de trabajo.
  • Montes de cámara y cables USB: $100-150.

** Computación:**

  • Estación de trabajo a bordo: Intel NUC 13 Pro o mini-PC equivalente con i7, 32 GB de RAM, 1 TB de NVMe SSD: $ 800-1,200. Esto maneja el control de teleoperación en tiempo real, la captura de cámara y la grabación de datos. No necesita una GPU; el entrenamiento se realiza fuera de línea.
  • Estación de trabajo de capacitación (separada, no en el robot): Cualquier instancia de escritorio o en la nube con una NVIDIA RTX 4090 o A100 para la capacitación ACT / Difusión Política. Presupuesto de $ 2,000-3,000 para una máquina de capacitación local, o usar instances de GPU en la nube a $ 1-4 / hora.

Desglose de costes totales

Category Cost Range
Mobile base (AgileX Tracer) $4,500-5,500
Follower arms (2x ViperX 300 S2) $9,600
Leader arms (2x WidowX 250 S) $6,200
Grippers and mounting $700-1,200
Camera system (3x RealSense) $950-1,100
Onboard compute $800-1,200
Frame, cables, misc hardware $500-800
Total (robot only) $23,250-25,600
Training workstation (separate) $2,000-3,000
Total (complete system) $25,250-28,600

Este es el costo total de construir un sistema ALOHA móvil desde cero. El documento original de Stanford citó aproximadamente $32,000 por su configuración específica; la diferencia refleja el precio de los componentes 2026 y el uso del Tracer base en lugar de las configuraciones de gama superior. Tenga en cuenta que esto no incluye el trabajo del operador para la recopilación de datos, que es el costo continuo dominante en cualquier proyecto de aprendizaje de imitación.

Estaca de software: ROS2, ACT y LeRobot

La pila de software Mobile ALOHA tiene tres capas, cada una con un papel específico.

Layer de control en tiempo real (ROS2 Humble en Ubuntu 22.04). El control de bajo nivel se ejecuta como nodos ROS2: un nodo de controlador Dynamixel para cada brazo, un nodo de controlador base para la plataforma AgileX y nodos de controlador de cámara para cada cámara RealSense. El requisito crítico es que todos los nodos comparten un reloj sincronizado (use chrony o PTP) y que el bucle de comandos líder a seguidor se ejecuta a 50 Hz con una latencia inferior a 10 ms.

Teléoperación y capas de grabación. Un nodo de grabación se suscribe a todos los temas de estado conjunto y los temas de imagen de cámara, los marca con un reloj compartido y escribe episodios sincronizados en archivos HDF5. Cada episodio contiene: posiciones conjuntas de 14 DOF (7 por brazo) a 50 Hz, velocidades conjuntas de 14 DOF, aberturas de agarre, tres flujos de cámara a 30 fps, comandos de velocidad base y metadatos de episodio (etiqueta de tarea, bandera de éxito, ID del operador). LeRobot de Hugging Face proporciona scripts de grabación estandarizados para hardware de estilo ALOHA que manejan esta sincronización correctamente.

Layer de capacitación (offline, en la estación de trabajo de capacitación). ACT (Action Chunking with Transformers) es el algoritmo de capacitación estándar para los datos ALOHA. ACT predice una gran parte de las acciones futuras (generalmente 100 pasos en el tiempo) desde la observación actual, utilizando una arquitectura de codificación y decodificación de transformadores con un CVAE (autoencodificación de variación condicional) para la predicción de la acción. El entrenamiento dura 4-8 horas en un solo RTX 4090 para un conjunto de datos de 200 episodios. LeRobot proporciona al pipeline de entrenamiento con valores defectuosos para ACT, Política de difusión y TDMPC2.

Las primeras tareas para aprender

Comience con estas tareas por orden de dificultad.

Tarea 1: Transferencia bimanual estacionaria. El robot coge un objeto con un brazo y lo entrega al otro. La base permanece estacionaria. Esto valida la calibración y coordinación bimanual sin agregar complejidad en el movimiento de la base. Objetivo: 50 demostraciones, tasa de éxito de la política del 60-70% en la primera carrera de entrenamiento.

Tarea 2: Buscar la mesa (limpiar una mesa). El robot recoge objetos de una mesa y los coloca en una contención en la plataforma del robot, luego se dirige a un lugar de entrega. Esto introduce el movimiento de base junto con la manipulación. La técnica de co-entrenamiento es importante aquí: aumentar sus 50 demostraciones móviles con 200-300 demostraciones bimánuales estáticas de la tarea de entrega. Objetivo: 50 demostraciones móviles más datos de formación conjunta, tasa de éxito del 50-60%.

Tarea 3: Abrir puertas. Aproximarse de una puerta, agarrar el mango, tirar/empujar mientras se coordina el movimiento de la base. Esta es una tarea canónica de ALOHA móvil que demuestra la coordinación de todo el cuerpo: la base debe moverse en sincronía con el brazo mientras la puerta se balancea. Esto es sustancialmente más difícil que la toma de la mesa porque la dinámica de contacto cambia a lo largo de la trayectoria. Objetivo: 100 demostraciones, 40-50% de éxito inicial.

Tarea 4: Entrega de objetos a un humano. El robot navega hacia una persona, extiende un brazo y libera un objeto cuando la persona lo agarra. Esto requiere detectar la presencia humana y el tiempo de liberación.

Errores comunes en la configuración

Estos son los errores que el RCSV ve con mayor frecuencia en los laboratorios que construyen su primer sistema ALOHA móvil.

  • ** Salto de la fuerza de gravedad del brazo del líder.** Sin la fuerza de gravedad, los brazos del líder se sienten pesados para el operador. La fatiga del operador se inicia después de 30 minutos, y la calidad de los datos se degrada gravemente. Configurar los límites de la corriente de Dynamixel a 30-50% del par nominal en el modo de compensación de gravedad. Prueba sosteniendo el brazo del líder en varias poses; debe sentirse casi sin peso.
  • El router del bucle de control de líder-seguidor a través de WiFi introduce 20-100 ms de latencia variable. El sistema se siente lento y el operador se sobrecompensa, produciendo demostraciones torpes. Utilice conexiones directas USB-Dynamixel en la computadora de bordo. El líder y los brazos de seguidor deben estar en la misma máquina física.
  • Sincronización de cámara ignorada. Si las cámaras de muñeca y la cámara aérea no están sincronizadas, las observaciones grabadas contienen una desalinuación temporal. A 30 fps, una desalinuación de 2 cuadros es de 66 ms, lo que es significativo para una manipulación rápida. Utilice la sincronización de disparador de hardware (module de sincronización multi-cámara RealSense, $50) o en una alineación basada en timestamp mínima durante la carga de datos.
  • No bloquear la base durante las tareas estáticas. Si recopila datos de manipulación únicamente para aumentar las demostraciones móviles (el enfoque de co-entrenamiento), activa el freno motor base o utiliza límites de velocidad del software para evitar que la base se dé a la deriva.
  • Gestión insuficiente de cables. Los cables sueltos se atrapan en los muebles, se atrapan en las articulaciones de los brazos durante el movimiento y ocasionalmente se desconectan durante los episodios. Una cámara desconectada a mediados del episodio corrompe todo el episodio.
  • Recolectar datos con definiciones de tareas inconsistentes. "Limpiar la tabla" es demasiado vaga. "Recolectar la taza azul de la posición A y colocarla en la basura gris" es lo suficientemente específico.

Guía de ensamblaje paso a paso

Este apartado cubre la secuencia de montaje físico. Presupuesta 2-3 días completos para el montaje si tienes experiencia con hardware robótico, o 4-5 días si esta es tu primera construcción.

** Paso 1: Preparación de la plataforma base (2-4 horas).** Desempaque el Tracer AgileX y verifique todos los componentes con la lista de embalaje. Cargue la batería completamente antes de proceder (4-6 horas desde el vacío). Mantenga el Tracer en una superficie plana y verifique el movimiento omnidireccional ejecutando la herramienta de diagnóstico AgileX. Encienda el último firmware del repositorio de GitHub de AgileX antes de continuar.

** Paso 2: Construcción del marco de montaje (4-8 horas).** Extrusión de aluminio (serie 80/20 10 o equivalente) a las dimensiones especificadas en los dibujos de Stanford ALOHA CAD. El marco tiene tres superficies de montaje críticas: dos placas de base de brazo (una a la izquierda, una a la derecha, espaciadas 40 cm entre el centro y el centro) y un mástil vertical para la cámara aérea. Todas las superficies de montaje del brazo deben ser co-planares a un máximo de 1 mm. Utilice el nivel de un maquinista durante el montaje.

** Paso 3: Instalación del brazo de seguimiento (3-4 horas por brazo).** Coloque cada ViperX 300 S2 en su placa base utilizando los pernos M6 proporcionados. Torque a 6 Nm. Conecte el U2D2 (adaptor USB-Dynamixel) al servo bus con cadena de margarita del brazo. Ejecute el Dynamixel Wizard para verificar la comunicación con todos los 7 servos por brazo (6 articulaciones de brazo + 1 agarre). Si algún servo no responde, compruebe el cableado TTL para ver si hay conectores sueltos en cada unión. Establezca cada servo en modo de control de posición-corriente (multi-turn). Configure las ganancias de PID en los valores predeterminados recomendados por Trossen: P=800, I=0, D=0 para el control de posición; ajuste solo después de verificar la operación básica.

** Paso 4: Instalación del brazo del líder (2-3 horas por brazo).** Montar cada WidowX 250 S en los soportes del brazo del líder a la altura de la cintura. Los brazos del líder deben estar posicionados para que el operador pueda sostenerlos cómodamente mientras camina detrás de la plataforma. Establezca límites de corriente al 40% del par nominal para un funcionamiento cómodo. Prueba la compensación de gravedad liberando cada brazo líder en varias posturas - debe permanecer aproximadamente estacionario, deslizándose menos de 5 grados durante 30 segundos.

** Paso 5: Ensamblaje de la pegadura (1-2 horas por pegadura).** Ensambla las pegaditas paralelas de la mandíbula de las piezas provistas o las almohadillas personalizadas de los dedos impresas en 3D. El servo de la pegadura (Dynamixel XL330) se conecta al mismo bus que los servos del brazo. Rango de funcionamiento del agarre: 0 (totalmente cerrado) a 1200 (totalmente abierto) en unidades de posición Dynamixel. Pantallas de huella 3D en TPU (filamento flexible) para mejorar el agarre en objetos lisas. espesor del almohadón: 2-3 mm proporciona una buena conformidad sin deformación excesiva.

** Paso 6: Instalación de la cámara (2-3 horas).** Coloque las dos cámaras de pulsera D405 en las muñecas del brazo de seguimiento utilizando los soportes proporcionados o personalizados. La D405 tiene un rango de profundidad mínimo de 7 cm, lo que la hace adecuada para la manipulación de alcance cercano. Coloque la cámara D435 en el mástil a 80-120 cm sobre el espacio de trabajo.

** Paso 7: Instalación de computadora (1-2 horas).** Mantener el NUC de Intel o equivalente en la placa base del marco, asegurado con montantes anti-vibración (esencial - movimiento base transmite vibración que puede aflojar las conexiones USB). Conectar todos los dispositivos USB: 2x U2D2 (marcos de seguimiento), 2x U2D2 (marcos de cabeza), 3x cámaras RealSense, 1x base AgileX. Utilice un centro USB 3.0 alimentado para las cámaras para garantizar un ancho de banda suficiente. Verifique todos los dispositivos enumerados correctamente con T3.

Configuración de la pila de software ROS2

La pila de software requiere Ubuntu 22.04 con ROS2 Humble. No use Ubuntu 24.04 o ROS2 Iron/Jazzy - los paquetes Interbotix no han sido completamente validados en versiones más recientes a partir de 2026.

Instalación del sistema operativo base:

# Install ROS2 Humble (follow official docs, then):
sudo apt install ros-humble-desktop python3-colcon-common-extensions

# Install Interbotix ROS2 packages for arm control
curl 'https://raw.githubusercontent.com/Interbotix/interbotix_ros_manipulators/main/interbotix_ros_xsarms/install/amd64/xsarm_amd64_install.sh' > xsarm_install.sh
chmod +x xsarm_install.sh && ./xsarm_install.sh -d humble

# Install RealSense SDK and ROS2 wrapper
sudo apt install ros-humble-librealsense2* ros-humble-realsense2-camera

# Install AgileX ROS2 driver
cd ~/colcon_ws/src
git clone https://github.com/agilexrobotics/agx_sdk_ros2.git
cd ~/colcon_ws && colcon build --symlink-install

# Install LeRobot for data recording and training
pip install lerobot

Configuración y calibración:

  • Establezca la velocidad de baud de Dynamixel a 1M (1000000) en todos los servos utilizando Dynamixel Wizard.
  • Calibra las posiciones servo cero: mueva cada brazo a su posición mecánica de origen y graba los desplazamientos del codificador.
  • Configurar el mapeo líder-seguidor: cada conjunto líder realiza mapas 1:1 a la unión seguidor correspondiente. El ejemplo de teleoperación Interbotix proporciona este mapeo fuera de la caja, pero verifique que todas las 7 juntas (incluido el agarre) se rastrean correctamente antes de recopilar datos.
  • Configurar la sincronización de tiempo: instalar cronía y configurar todos los nodos para usar el mismo reloj del sistema. Las marcas de tiempo de la cámara deben estar dentro de 5 ms de las marcas de tiempo de estado conjunta para los datos limpios. ejecutar T4 para verificar la sincronización.

Procedimiento de calibración de la cámara

La calibración de las cámaras no es opcional. Las cámaras no calibradas producen una desalineación espacial en los datos registrados que degrada el rendimiento de las políticas en un 10-25%.

** Calibración intrínseca:** Las cámaras de RealSense envían calibración de fábrica, pero esta calibración puede degradarse con el tiempo o después de impactos físicos. Verifique la calibración intrínseca ejecutando la herramienta de autocalibración de RealSense. Si el error de reproyección supera los 0,5 píxeles, vuelva a ejecutar la calibración en el chip. Para mayor precisión, utilice el paquete T5 ROS2 con tablero de ajedrez 9x6 (25 mm cuadrados) para calcular las características propias de la persona. Recoge al menos 30 imágenes de tablero de ajedrez que cubran todo el campo de visión.

** Calibración externa (transformación de cámara a base):** La posición y la orientación de cada cámara en relación con el marco de base del robot deben medirse con precisión. Para las cámaras de muñeca, esto se determina principalmente por la cinemática del brazo hacia adelante más el desplazamiento de montaje de la cámara. Para la cámara aérea, utilice un marcador ArUco colocado en una posición conocida en el marco de base del robot y resuelva el problema PnP para calcular la transformación de cámara a base. Verifique la calibración ordenando el brazo a una posición conocida y comprobando que la proyección de la cámara del efector final coincide con la ubicación de píxeles esperada a un máximo de 5 píxeles.

** Sincronización de múltiples cámaras:** Conecte las cámaras RealSense D435 y D405 utilizando el cable de sincronización Intel Multi-Camera (disponible por separado, aproximadamente $50). Configure una cámara como el maestro y las otras como esclavos. Esto asegura que todas las cámaras capturen los cuadros simultáneamente, eliminando la desalineamiento temporal que de otra manera causa 30-60 ms de nerviosismo entre las flujos de cámara. Sin sincronización de hardware, debe utilizar una alineación basada en timestamp en su línea de carga de datos, que es menos confiable.

Primero recopilación de datos: tarea de validación

Antes de intentar cualquier tarea de investigación real, recoger un conjunto de datos de validación para verificar el conjunto de la tubería de trabajo de extremo a extremo.

Definición de tarea: Recoge una pelota de tenis desde el centro de la mesa y colocala en un tazón de 30 cm a la derecha. Esta es la tarea bimanual más simple: un brazo coge la pelota mientras que el otro brazo mantiene el tazón estable. Si tu sistema no puede lograr el 80% de éxito en esta tarea con 50 demostraciones, hay un problema de hardware o calibración que debe ser resuelto antes de proceder.

Procedimiento de recogida:

  1. Coloque la pelota de tenis en la misma posición durante las primeras 20 demostraciones (validación de posición fija).
  2. Varia la posición de la bola dentro de un radio de 20 cm para las siguientes 30 demostraciones (diversidad de posición).
  3. Cada demostración debe llevar 15-30 segundos de teleoperatoria activa. Rechazar episodios en los que la bola se cae, la colocación se pierde en el tazón o el operador hace un movimiento correctivo más largo de 2 segundos.
  4. Graba todos los datos utilizando el guión T6 de LeRobot: T7

** Entrenamiento y evaluación:** Entrenamiento ACT en las 50 demostraciones utilizando las características predeterminadas de LeRobot. El entrenamiento debe completarse en 1-2 horas en un solo RTX 4090. Si es inferior al 40%, compruebe antes de recopilar más datos lo siguiente: precisión de calibración de la cámara, latencia de seguimiento del líder-seguidor, sincronización de timestamp y integridad de la grabación de datos (sin cadros caídos).

Especificaciones de par y seguridad

Los tornillos sobreestresados tiran hilos en extrusión de aluminio. Los tornillos sobreestresados permiten que el marco se mueva durante el movimiento. Siga estas especificaciones:

Connection Torque (Nm) Notes
Frame extrusion joints (M8) 10-12 Use threadlocker on vibrating joints
Arm base mounting (M6) 6 Check monthly for loosening
Camera mount (M4) 2-3 Easy to strip; use calibrated driver
Gripper finger pads (M3) 1-1.5 3D-printed parts; low torque to avoid cracking
Base-to-frame (M8) 12-15 Critical for base stability; double-check after first drive test

Consideranzas de seguridad: Los brazos ViperX tienen un par suficiente para causar lesiones. Siempre implemente límites de articulaciones de software (establecidos en la configuración Interbotix YAML) para evitar que los brazos se pongan en contacto con el operador, el marco o entre sí. Establezca límites de velocidad a 1,0 rad/s durante las pruebas iniciales y aumente a 1,5 rad/s solo después de verificar el funcionamiento libre de colisiones. Implemente un botón de parada de emergencia (arrestador electrónico de hardware conectado a la fuente de alimentación Dynamixel) que corte la energía de servo inmediatamente.

Mantenimiento y solución de problemas

El mantenimiento regular evita que la recopilación de datos se detenga.

  • Antes de cada sesión (5 min): Compruebe las conexiones por cable, verifique las comunicaciones de la cámara, siga el líder y el seguidor de la prueba en 3 posturas, compruebe el nivel de la batería (carga mínima del 40% para una sesión de 2 horas).
  • ** Semanalmente:** Compruebe todos los pernos del marco para aflojarse. Lente de cámara limpia con tela de microfibra. Verifique que las temperaturas de servo después de una carrera de 1 hora son inferiores a 60 °C (verifique a través de Dynamixel Wizard).
  • ** Mensual:** Recalibra las partes extrínsecas de la cámara (la montaje de la cámara puede deslizarse de 1-2 mm durante un mes de operación). Inspeccione los cables de servo Dynamixel para detectar el desgaste en las articulaciones. Actualice los paquetes ROS2 si hay parches de seguridad disponibles.
  • Solución de problemas común: Si un servo deja de responder a mitad de sesión, probablemente se haya sobrecalentado. Espera 10 minutos para enfriarse. Si el problema persiste, revisa el cable TTL en esa unión. Si los marcos de la cámara están cayendo, revisa el ancho de banda USB - tres cámaras RealSense requieren USB 3.0, y el funcionamiento a través de un centro USB 2.0 causará caídas del marco.

Lectura relacionada

Guía de aprendizaje de imitación · Guía de ACT vs. Política de difusión · Configuración de cámara de robot · LeRobot comenzando · Costo por análisis de demostración · Guía de anotación de datos · Servicios de datos

Configuración de grabación de datos

La configuración correcta de grabación de datos determina si las demostraciones recogidas realmente entrenarán una política utilizable. La grabación mal configurada produce datos que se ven bien durante la revisión pero fallan durante el entrenamiento debido a errores de sincronización, espacios de acción incorrectos o modalidades faltantes.

** Frecuencia de grabación.** Registra estados conjuntos a 50 Hz (el estándar para los sistemas de clase ALOHA).

Configuración del espacio de acción. ACT espera objetivos de posición conjunta absolutas como acciones. Cada vector de acción es de 14 dimensiones: 7 articulaciones por brazo (6 articulaciones de brazo + 1 agarre). Las posiciones de las articulaciones están en radianos, y la apertura del agarre está en unidades de posición Dynamixel (0-4095, mapeadas al rango físico). Asegurar que la acción registrada en el paso t corresponda a la posición conjunta a la que se ordenó al brazo seguidor en el paso t, no a la posición en la que se midió.

Metadatos de episodios. Cada archivo de episodios HDF5 debe contener:

  • T8: forma (T, 14), dtipo float32 -- posiciones conjuntas comandadas en cada paso de tiempo
  • T9: forma (T, 14), float32 dtipo -- posiciones de articulación medidas
  • T10: forma (T, 14), float32 de tipo d -- velocidades de unión medidas
  • T11: forma (T, 480, 640, 3), dtipo uint8 -- cámara aérea
  • T12: forma (T, 480, 640, 3), dtipo uint8
  • T13: forma (T, 480, 640, 3), dtipo uint8
  • T14: forma (T, 14), dtipo float32 -- lecturas de servo corriente (opcional, útil para las políticas de contacto)
  • T15: forma (T, 2), dtipo float32 -- comandos de velocidad lineal y angular base
  • Atributos: tarea_nombre ( cadena), éxito (bool), operador_id ( cadena), timestamp (formato ISO)
# Verify a recorded episode for completeness
import h5py
import numpy as np

def verify_episode(filepath):
    with h5py.File(filepath, 'r') as f:
        T = f['/action'].shape[0]
        checks = {
            'action_shape': f['/action'].shape == (T, 14),
            'qpos_shape': f['/observations/qpos'].shape == (T, 14),
            'images_top': f['/observations/images/top'].shape[0] == T,
            'images_lwrist': f['/observations/images/left_wrist'].shape[0] == T,
            'images_rwrist': f['/observations/images/right_wrist'].shape[0] == T,
            'no_nan_actions': not np.any(np.isnan(f['/action'][:])),
            'joint_limits': np.all(np.abs(f['/action'][:]) < 3.14),
            'episode_length': 50 < T < 3000,  # 1-60 sec at 50Hz
        }
        for check, passed in checks.items():
            status = 'PASS' if passed else 'FAIL'
            print(f'  {check}: {status}')
        return all(checks.values())

Erros de registro comunes:

  • Drift de tiempo: Si se utilizan timestamps de software en lugar de sincronización de hardware, verifique que los timestamps de marco de cámara y los timestamps de estado conjunto permanecen alineados dentro de los 10 ms a lo largo de todo el episodio.
  • ** Frames de cámara caídas:** La disputa de ancho de banda USB causa caídas de frames cuando tres cámaras de RealSense comparten un hub USB 3.0. Verifique si el recuento de frames de cámara es igual al recuento esperado (episodio_durada * 30fps +/- 1 frame). Si faltan frames, el episodio HDF5 tendrá pares de observación-acción desalineados que corrompen el entrenamiento.
  • Erros de codificación de acción del pegamento: La acción del pegamento debe utilizar la misma codificación que la tubería de entrenamiento. ACT espera que la posición del pegamento se encuentre en el mismo espacio de coordenadas que las articulaciones de los brazos (radianos equivalentes o normalizados 0-1).

Entrenando su primera política

Después de recopilar el conjunto de datos de validación, el entrenamiento de una política de ACT con LeRobot sigue un proceso sencillo.

# Step 1: Push your dataset to HuggingFace Hub (or train locally)
# Assumes data was recorded with LeRobot's record script
python lerobot/scripts/push_dataset_to_hub.py \
  --raw-dir data/aloha_validation \
  --repo-id your-username/aloha-validation \
  --raw-format aloha_hdf5

# Step 2: Train ACT policy
python lerobot/scripts/train.py \
  policy=act \
  dataset_repo_id=your-username/aloha-validation \
  env=aloha \
  training.num_epochs=2000 \
  training.batch_size=8 \
  policy.chunk_size=100 \
  policy.kl_weight=10 \
  policy.n_obs_steps=1 \
  wandb.enable=true

# Step 3: Evaluate on the real robot
python lerobot/scripts/control_robot.py record \
  --robot-path lerobot/configs/robot/aloha.yaml \
  --fps 50 \
  --policy-path outputs/train/act_aloha_validation/checkpoints/last/pretrained_model \
  --warmup-time-s 2 \
  --episode-time-s 30 \
  --num-episodes 20

Entrenamiento de los hiperparámetros más importantes:

  • T16: Prevé 100 pasos temporales futuros (2 segundos a 50 Hz). Los trozos más grandes reducen el error de composición pero requieren que la trayectoria de la tarea sea consistente en todas las demostraciones.
  • T17: Controla la regularización de la CVAE. Valores más altos (50-100) producen acciones más suaves pero menos precisas. Valores más bajos (1-5) producen acciones más agudas pero el modo de riesgo se derrumba.
  • T18: Norma para el entrenamiento de un solo GPU en RTX 4090. Aumenta a 16-32 si utiliza A100 con 80 GB de VRAM para una convergencia más rápida.
  • T19: ACT normalmente converge alrededor de 1000-1500 épocas. Observe la pérdida de validación - si se alza durante más de 200 épocas, el entrenamiento se hace.

Métricas de formación esperadas: La pérdida de MSE de acción debe disminuir de ~0,01 a ~0,001 en las primeras 500 épocas, luego gradualmente a ~0.0005 por convergencia. Si la pérdida no disminuye por debajo de 0,005, compruebe problemas de calidad de los datos (demostraciones inconsistentes, marcas de tiempo desalineadas). Si la divergencia KL es cerca de cero, aumentar el peso KL - el CVAE se está derrumbando a un solo modo.

La escalación: desde la validación hasta las tareas de investigación

Una vez que la tarea de validación (pick and place de pelota de tenis) tenga un éxito superior al 60%, puede escalar con confianza a tareas más complejas.

  • Aumentar la diversidad, no sólo el volumen. 200 demostraciones con posiciones de objetos variadas (5 centímetros de cuadrícula en todo el espacio de trabajo) y 3-5 objetos diferentes entrenarán una mejor política que 500 demostraciones con un solo objeto en una posición fija.
  • Utilice la capacitación conjunta para tareas móviles. Recoge 50-100 demostraciones móviles y combinelas con 200-500 demostraciones bimanual estáticas durante el entrenamiento. Los datos estáticos enseñan habilidades de manipulación; los datos móviles enseñan coordinación de base. LeRobot admite la capacitación de multisetos de datos a través del parámetro T20 aceptando una lista de conjuntos de datos.
  • Monte el éxito por fase. Cuando una tarea tiene varias fases (aproximación, agarre, transporte, lugar), rastrear dónde ocurren las fallas. Si el 80% de las fallas ocurren durante el agarre, recoger correcciones HG-DAgger específicamente para la fase de agarre en lugar de recoger episodios completos.
  • ** Presupuesto para la iteración.** El ciclo típico es: recoger 50 demostraciones, entrenar, evaluar, identificar los modos de falla, recoger 50 demostraciones más dirigidas a esos fallos, retrenar. Presupuesto de 3-5 ciclos de capacitación de recopilación por tarea. Los servicios de recopilación de datos gestionados de RCSV pueden acelerar este ciclo de iteración - nuestros operadores están capacitados para recopilar demostraciones correctivas dirigidas basadas en el análisis de fallos de políticas. Consulte nuestra página [servicios de datos]T31) para detalles, a partir de $2,500 para una colección piloto.

Soluciones de problemas de formación común

Cuando su política de ACT no funcione en el robot real, utilice esta guía de diagnóstico antes de recopilar datos.

Symptom Likely Cause Fix
Robot does not move Action normalization mismatch Verify action stats (mean/std) match between training and deployment config
Arms collide with each other Demostraciones include a wide range of arm positions; policy interpolates between modes Add joint limit safety checks in deploy script; increase KL weight to 50 to reduce mode averaging
Policy drifts after 2-3 seconds Control frequency mismatch: training at 50Hz, deploying at 30Hz Match --fps between record and deploy commands exactly
Gripper never closes Gripper action polarity inverted or normalized incorrectly Check gripper min/max in the YAML config; verify open=0.0, closed=1.0 convention
Works on day 1, fails on day 2 Camera bumped or lighting changed Rigidly mount cameras with Loctite; run calibration check at start of each session
Jerky, oscillating motion near objects Inconsistent operator strategies across demonstrations Use a single operator; filter episodes by trajectory smoothness; increase temporal_agg weight

Integración de la base móvil: coordinación de la locomoción y la manipulación

El "móvil" en Mobile ALOHA agrega una complejidad sustancial en comparación con el ALOHA estático. La base de AgileX Tracer (o Tracer Mini) debe coordinarse con los brazos dobles durante la teleoperación de todo el cuerpo. Detalles clave de integración:

Control de velocidad de base. La base de Tracer acepta comandos de velocidad (lineal x, angular z) a 50Hz a través del bus CAN. La posición de base del robot líder (seguida por odometría) mapea a comandos de velocidad: la compensación entre la posición actual del líder y la posición de la base del seguidor genera comandos de velocidad proporcionales. Velocidades máximas seguras durante la manipulación: lineal de 0,3 m/s, angular de 0,5 rad/s. Excedir estos riesgos puede provocar la inclinación del conjunto del brazo o exceder los límites de velocidad de articulación.

** Espacio de acción coordinado.** El espacio de acción completo de Mobile ALOHA es de 16 dimensiones: 7 articulaciones por brazo (14 en total) + 2 comandos de velocidad base. Durante el entrenamiento ACT, se predicen las 16 dimensiones conjuntamente, lo que permite a la política aprender movimientos coordinados de todo el cuerpo (por ejemplo, inclinarse hacia adelante mientras se alcanza). Sin embargo, las dimensiones de velocidad de base deben normalizarse de manera diferente a las posiciones conjuntas porque sus unidades y rangos difieren - normalizar las velocidades de base a [-1, 1] basándose en la velocidad máxima segura.

Cuándo utilizar la movilidad. No todas las tareas se benefician de la movilidad. Las tareas estáticas bimanual (doblar ropa sobre una mesa, montar en una estación de trabajo fija) deben recogerse con la base bloqueada para evitar introducir ruido innecesario de movimiento de la base en los datos de formación. Permitir la movilidad sólo cuando la tarea realmente lo requiere: recoger objetos de diferentes ubicaciones, navegar entre estaciones de trabajo o llegar a objetos más allá del espacio de trabajo del brazo estático.

Lectura relacionada

Guía de aprendizaje de imitación · Política de ACT contra difusión · LeRobot Comenzando · Costo por demostración · Annotación de datos · Servicios de datos · Leasing de robots

Configuración de cámara para móvil ALOHA

La colocación de las cámaras es crítica para la calidad de la política de ALOHA móvil.

Camera Position Resolution Role Required?
Top/overhead Center of base frame, 40-60cm above workspace 640x480 @ 30fps Global workspace awareness, object layout Yes (primary)
Left wrist Left arm wrist, pointing at gripper 640x480 @ 30fps Left arm grasp precision, contact detection Recommended
Right wrist Right arm wrist, pointing at gripper 640x480 @ 30fps Right arm grasp precision, contact detection Recommended
Front-facing Base frame front, eye-level 640x480 @ 30fps Navigation awareness, approach planning Optional (mobile tasks only)

Restrinción de ancho de banda USB: 3 cámaras a 640x480 30fps (YUYV sin comprimir) requieren aproximadamente 1.1 GB/s de ancho de banda USB. Un solo puerto USB 3.0 proporciona 5 Gbps (prácticamente: 3.2 Gbps). Utilice controladores USB 3.0 separados para cada cámara - compartir un único centro USB causa caídas de fotogramas. Las cámaras Intel RealSense D435 y Logitech C922 funcionan bien. Verifique con T22 que todas las cámaras alcanzan 30 fps simultáneamente antes de recopilar datos.

** Lista de verificación de calibración de la cámara:** Después de montar, calibre las características intrínsecas de cada cámara (jardín de ajuste OpenCV) y las características extrínsecas en relación con el marco de base del robot. Almacenar la calibración como parte de los metadatos del conjunto de datos. Verifique la calibración al comienzo de cada sesión de recogida observando la vista de la cámara en una configuración de brazo conocida.

Alternativas para construir la suya

Construir un sistema ALOHA móvil requiere de 2-4 semanas de esfuerzo enfocado para un robótico experimentado, o 6-8 semanas para un equipo sin experiencia previa en Dynamixel y ROS2.

UMI (Interfaz de Manipulación Universal): Un enfoque mucho más barato ($ 2.000-3.000 en total) que utiliza un agarre de mano con una cámara GoPro para recoger demostraciones sin ningún hardware robótico. UMI no puede capturar datos de movilidad base, por lo que no es un reemplazo de Mobile ALOHA si sus tareas requieren movilidad, pero es un excelente punto de partida para la recopilación de datos solo para manipulación.

Recolección de datos gestionada por RCSV: Si necesita datos de manipulación móvil pero no desea construir y mantener el hardware, RCSV opera sistemas Mobile ALOHA y otras plataformas bimanual en nuestra instalación de San Francisco. Usted define la especificación de tarea y el conjunto de objetos; recopilamos, anotamos y entregamos el conjunto de datos en formato LeRobot o RLDS. Esto elimina la construcción de hardware por completo y le da datos recogidos profesionalmente desde el principio. Consulte nuestros [servicios de datos]T39) para detalles y precios.

Alquilación de un sistema: El programa de alquiler de robots de RCSV puede proporcionar un sistema ALOHA móvil totalmente ensamblado y calibrado para el alquiler mensual. Esto le permite recopilar datos en su propio entorno sin la inversión inicial de hardware. Póngase en contacto con nosotros para discutir la disponibilidad y las opciones de configuración del alquiler.

Salta el hardware de construcción

RCSV opera ALOHA móvil y otros sistemas bimanual para la recopilación de datos gestionados. Define su tarea, y entregamos el conjunto de datos, sin necesidad de construcción de hardware.

[Vea Servicios de datos]