Saltar al contenido

Robótica social educativa

El robot que da la clase.

ADAI es un humanoide docente con Motor Didasko: identifica a cada estudiante, explica con voz y gesto, pregunta y evalúa — adaptando la forma del discurso a cada persona sin alterar jamás el contenido.

ADAI · plataforma RobotAtlas · humanoide de familia InMoov

líneas de Python
116k
servos controlados
9
arranque de percepción
17×
capas de dispositivo
4

Arquitectura y hardware

Seis clases de dispositivo.
Una clase sin interrupciones.

Cinco protocolos distintos, contratos explícitos entre procesos y un requisito común: el fallo de cualquier eslabón degrada el sistema, nunca lo detiene.

Sistemas de control

Topología de cuatro capas con contratos explícitos. La clase se ejecuta como proceso independiente de la interfaz, de modo que un cuelgue de la aplicación no tumba la sesión.

  1. 01 App móvil Atlas
    ReactLynx · HTTP :8080 · 17 endpoints
  2. 02 Estación docente
    Python 3.12 · 15 pestañas · doble pantalla
  3. 03 ESP32 «Cerebro»
    WiFi · WebServer · secuencias en RAM
  4. 04 Arduino Mega
    UART 115 200 bps · PWM · ping/PONG 10 s

Actuadores

Nueve servos —ocho de brazos y uno de cuello— más las manos sobre controladores propios. Los límites articulares están replicados en tres niveles independientes.

Codo derecho · HD105–165°
Húmero izq. · BI95–160°
Cuello · C75–155°

Seguridad en cliente, en ESP32 y en firmware del Mega.

Visión computacional

OpenCV, MediaPipe y codificación facial sobre un proceso de cámara aislado. El modelo de huecos ancla cada nombre a la persona y no a su posición en la imagen, con corrección periódica por huella facial: los nombres dejan de «saltar de silla».

44,5 s → 2,6 s DirectShow explícito escala 0,5 · 4× menos píxeles manos alzadas

Interfaz con el estudiante

Voz sintetizada con gesto sincronizado, conversación hablada en tiempo real, detección de manos alzadas y evaluación entregada por código QR proyectado al dispositivo de cada estudiante.

TTS + animación facial quiet_robot QR diagnóstico y final 51 secuencias de gesto

Degradación grácil, por defecto

Cada capacidad avanzada —perfiles, listas, registro facial, ESP32, red, LLM— se importa y se usa «en blando». Si falta, el sistema vuelve al comportamiento anterior en lugar de abortar. Nada opcional puede detener una clase.

  • Sin red → secuencias locales
  • Sin ESP32 → clase sin gesto
  • Sin cámara → lista declarada
  • Sin LLM → banco de preguntas

En el aula

Una clase completa,
fase por fase.

El motor no improvisa una estructura: ejecuta un ciclo instruccional reconocible, modelado explícitamente como una enumeración de estados.

FASE 01 · DIAGNOSTIC_TEST

Prueba diagnóstica

Un QR proyectado abre la evaluación previa en el teléfono de cada estudiante. El robot conoce el punto de partida antes de explicar nada.

FASE 02 · CLASS_INTRO

Saludo y pase de lista

Identificación facial cruzada con la lista declarada. Cada hueco de la escena queda anclado a un nombre, y con él a un perfil.

FASE 03 · THEORY_PRESENTATION

Exposición con gesto

Narración de las diapositivas con voz y movimiento sincronizado. El motor silencia los servos cuando el micrófono está abierto.

FASE 04 · PRACTICAL_DEMO

Demostración práctica

Una secuencia de movimiento demostrativa ejecutada sobre los nueve servos, editable desde el constructor de secuencias.

FASE 05 · INTERACTIVE_SESSION

Preguntas adaptadas

Rondas de preguntas repartidas por turno. La formulación se adapta a la personalidad de quien responde; el contenido evaluado y su dificultad permanecen invariantes.

FASE 06 · FINAL_EXAM

Evaluación final

Segundo QR con la evaluación sumativa. El par diagnóstico–final cierra el ciclo con evidencia, no con impresiones.

EN CUALQUIER MOMENTO

El docente manda

Manos alzadas, preguntas de los estudiantes e intervención del docente humano en tiempo real, con pausa y reanudación desde la app móvil.

Motor Didasko

«Didasko»: yo enseño.

Seis subsistemas funcionales convierten un humanoide antropomórfico en un agente docente autónomo.

Percepción

Ver el aula: cámara, caras, manos alzadas y seguimiento por huecos.

Identidad

Saber quién está: registro facial, lista declarada y asistencia.

Adaptación

Perfiles OCEAN traducidos a conducta docente, con invariante de contenido.

Docencia

Diapositivas, turnos, bancos de preguntas y evaluación estructurada.

Expresión

Voz, rostro animado, gesto y conversación hablada en tiempo real.

Nexo

La conexión entre móvil, estación, ESP32, Mega y servos.

Ficha técnica

Especificaciones avanzadas

Datos de ingeniería y rendimiento medidos sobre la plataforma. Despliega cada bloque.

Articulación Abrev. Mín Máx Reposo Pin
Omóplato derechoPD40100452
Pecho-hombro derechoFD90160903
Húmero derechoBD3090404
Codo derechoHD1051651055
Omóplato izquierdoPI2890286
Pecho-hombro izquierdoFI2595807
Húmero izquierdoBI95160958
Codo izquierdoHI60140809
Cuello (horizontal)C301308010

Rango operativo restringido del cuello: NECK_MIN 75 · NECK_CENTER 115 · NECK_MAX 155

Resultado Antes Después Factor
Arranque de percepción de clase44,5 s2,6 s17,1×
Apertura de cámara (DirectShow)3,0 s1,4 s2,1×
Codificación facial (escala 0,5)—4× menos píxeles4×
Detecciones válidas descartadas65 %0 %—
Área facial a distancia de mesa—3,4 % – 15,8 %—
Líneas de Python
~116 300
Archivos Python
205
Líneas JS/JSX (app móvil)
~6 500
Líneas C++ Arduino/ESP32
2 241
Clases implementadas
15
Secuencias de movimiento
51
Endpoints de la API móvil
17
Documentos técnicos
71
Perfiles de personalidad
5 OCEAN + 1
Periodo de desarrollo
13 meses

Estación docente en Python 3.12 con tkinter. Despliegue primario sobre Windows, empaquetado con PyInstaller e instalador Inno Setup.

OpenCV MediaPipe face_recognition · dlib PyMuPDF pytesseract openai SpeechRecognition sounddevice websockets pygame
App movil Atlas   --HTTP :8080 / JSON-->          Estacion docente
Estacion docente  --HTTP :80 / form-urlencoded-->  ESP32
ESP32             --UART Serial2 115200 bps-->     Arduino Mega
Arduino Mega      --PWM-->                         Servos (8 brazos + 1 cuello)
Manos             --Arduino Uno, sketches propios
Estudiantes       --QR optico proyectado-->

Cinco protocolos distintos y un modo degradado documentado por enlace. El Mega confirma presencia con ping/PONG cada 10 segundos.

El documento completo

Arquitectura, principios de diseño, algoritmos, hallazgos empíricos y protocolo experimental propuesto. Documento privado protegido con contraseña.

Abrir documentación