Introducción
Tanto la robótica como el juego están cada día más presentes en el ámbito de la educación. Empero, son aún poco frecuentes los desarrollos que buscan combinar de manera equilibrada los aportes de los campos disciplinarios en presencia. Se expone aquí un proyecto deliberadamente pluridisciplinario que asocia la robótica con las ciencias del juego y la didáctica de lenguas y culturas; su principal producto es Ludibot, un robot móvil basado en el dispositivo Kinect v2 que aprovecha la interacción gestual humano-máquina con fines de aprendizaje de una lengua extranjera.
Cabe destacar que los orígenes de la robótica aplicada a juegos remontan a finales del siglo XVIII, cuando Wolfgang von Kempele desarrolló una máquina autónoma capaz de desafiar en el ajedrez a un jugador humano. Hoy en día, los robots en general y los robots móviles en particular siguen generando amplio interés como dispositivos lúdicos. Ejemplo de ello son los desarrollos propuestos por Ohashi et al. (2014); Galán et al. (2011) y Su et al. (2009), entre otros.
Durante las dos últimas décadas, los robots móviles han tenido un auge importante, trátese de robots guías (Burgard et al., 1999; Thrun et al., 1999), de robots de apoyo a la rehabilitación (Hansen et al., 2012; Calderita et al., 2015), de robots para la navegación y el mapeo simultáneo (Yu et al., 2015), de robots multiagentes (García et al., 2010) o de robots aplicados a juegos (Ohashi et al., 2014; Galán et al., 2011; Su et al., 2009). Todos ellos han requerido el desarrollo tanto de sensores capaces de medir las variables de interés (relativas al entorno, al usuario y al robot) como de actuadores capaces de poner en movimiento las extremidades, los eslabones o las ruedas del dispositivo.
Las interfaces destinadas a medir las variables arriba mencionadas permiten controlar el robot y sus acciones. Algunos dispositivos comúnmente usados con ese fin son las palancas de mando o joysticks (Kružić et al., 2017), los dispositivos hápticos (Xiaolei et al., 2017), las cámaras (Wu et al., 2017; Waldherr et al., 2000), los teléfonos inteligentes (Waldherr et al., 2000) o los relojes inteligentes (Villani et al., 2017). A ellos se suman las interfaces humano-máquina, que tienen como particularidad la capacidad de procesar informaciones relativas al usuario. Dentro de esta última categoría caben las interfaces cerebro-computadora, las interfaces con reconocimiento facial, vocal y de movimiento, así como las interfaces basadas en gestos, entre otros. Para recabar la información, estas interfaces suelen recurrir a cámaras, micrófonos y otros tipos de sensores.
Entre los dispositivos que permiten obtener datos útiles para el desarrollo y la implementación de interfaces humano-máquina en tiempo real, destaca el Kinect v2. Para medir los parámetros del cuerpo humano el Kinect v2 integra tres tipos de sensores: Una cámara a color, un sensor infrarrojo y un conjunto de micrófonos. En comparación con otros dispositivos, presenta especial interés por su accesibilidad y su bajo costo (Escolano & Minguez, 2011; Sirvent, 2011). El Kinect v2 se ha aprovechado en diversas disciplinas corporales y artísticas: artes marciales (Alharbi et al., 2017), yoga (Islam et al., 2017), danza (Masurelle et al., 2013) o música (Payeur et al., 2014), entre otras.
En el marco de esta investigación, que combina robótica, ciencias del juego y didáctica de lenguas, se ha dado prioridad al estudio de las propuestas de uso del sensor Kinect v2 relacionadas con robótica y juegos, mismas que presentaremos sucintamente a continuación.
En el campo de la robótica, el Kinect v2 se ha utilizado principalmente en asociación con robots articulares y con robots móviles para realizar aplicaciones e interfaces. La mayoría de las aplicaciones han sido implementadas para los robots móviles, mientras que las interfaces han sido desarrolladas solo para robots articulares.
Entre las aplicaciones más notables están el sistema articular de validación de dispositivos RGBD para medir el equilibrio de pacientes en terapia (Ayed et al., 2017); la aplicación para la captura automática de posturas corporales (Muñoz et al., 2018) y el robot móvil compacto bajo ROS para la navegación y la localización en ambientes no estructurados (Araújo et al., 2014).
En cuanto a las interfaces humano-robot, resultan especialmente pertinentes cinco de ellas: un sistema de reconocimiento de gestos para mover un brazo robótico (Baron et al., 2013); una interfaz que reconoce posturas estáticas del cuerpo humano (Cicirelli et al., 2015); una interfaz que identifica las acciones ejecutadas por un grupo de niños mientras bailan (Maraj et al., 2016); las librerías de desarrollo de software para el Kinect v2 (SDK) (Cueva et al., 2017) para controlar un robot industrial de siete grados de libertad; y, finalmente, una interfaz para mover un robot industrial basada en Lab-View (Ben et al., 2015).
Durante la revisión de la literatura, no fue posible identificar trabajos que integrasen a la vez robótica, ciencias del juego y didáctica de lenguas, como sí lo hace Ludibot. Ahora bien, entre los juegos programados con el Kinect v2 que coinciden en mayor o menor grado con el enfoque de tipo ludopedagógico de Ludibot, se pueden mencionar, entre otros, la propuesta de Fernández y Lücken (2015), cuyo objetivo es propiciar el acercamiento lúdico a las matemáticas de niños en edad preescolar, así como juegos en los cuales el usuario dirige un avatar mediante movimientos del cuerpo (Qingtang et al., 2015; Grammatikopoulou et al., 2017). Por su parte, el trabajo de Iturrate et al. (2013) combina el Kinect v2 con juegos de video y robots móviles remotos, en el marco de un entorno interactivo para la resolución de retos de cultura general.
Estructura y control de Ludibot
Ludibot es un robot móvil basado en el dispositivo Kinect v2 diseñado para aprovechar la interacción gestual humano-máquina con fines de aprendizaje de una lengua extranjera. Se describen a continuación los elementos que componen su estructura y la ley de control utilizada.
Ludibot posee una configuración diferencial con una rueda de apoyo. El prototipo incluye un sensor Kinect v2, una computadora portátil, un controlador de motores de corriente directa (CD) RoboClaw y dos motores de corriente directa con decodificadores ópticos incrementales. Se utiliza un entorno Matlab-Simulink (The Math Works, 2012), un núcleo de tiempo real QuaRC (Quanser Consulting, 2011) y Visual Studio (Microsoft Corporation, 2013a y b). La arquitectura del sistema se muestra en la Figura 1.
El sensor Kinect v2 permite el seguimiento de 25 articulaciones del cuerpo humano y detecta tres estados de las manos (mano abierta, mano cerrada y posición de lazo). Usa un sensor infrarrojo para estimar la distancia calculando el tiempo de vuelo.
La interfaz se programó en el lenguaje C# utilizando Visual Studio bajo el entorno .NET (Microsoft Corporation, 2013a) y el SDK Kinect (Microsoft Corporation, 2013b). Para el control de motores se utiliza el controlador RoboClaw (Basic Micro Motion Control, 2014-2015). Se emplea el entorno Matlab/Simulink (The Math Works, 2012) asociado al núcleo de tiempo real QuaRc (Quanser Consulting, 2011) para programar la ley de control. Desde luego, existen otras alternativas, tales como Raspberry Pi o Arduino. Sin embargo, éstas exigen un puente H externo, además de un dispositivo de comunicación USB a USART TTL 3.3V en el caso de Raspberry Pi. Arduino es una opción interesante para proyectos que no requieren altas prestaciones, pero resulta una opción inadecuada cuando los requerimientos de tiempo son demandantes, como es el caso de sistemas en tiempo real.
El robot móvil es propulsado mediante dos ruedas. Cada una de ellas puede girar de
manera independiente, a diferentes velocidades. La cinemática de movimiento del
robot está dada por ẋ = vcos (θ),
ẏ = vsin(θ),
Las velocidades lineal y angular se definen de acuerdo con las velocidades de las llantas, determinadas por:
El seguimiento de trayectorias se consigue mediante la ley de control propuesta por Canudas et al. (1994), que estabiliza al robot móvil en un punto de operación. El control no lineal implementado busca que el sistema tenga estabilidad asintótica. Cuando las velocidades de referencia vref y ωref son variantes en el tiempo, la ley de control no lineal está dada por:
Donde:
k1(vref, ωref) = k3(vref, ωref) = 2ξ (k2vref2 + ωref2)1/2, en donde k2 > 0 y ξ son parámetros que se sintonizan. En los experimentos se utilizó r = 0.095 m, L = 0.42 m, k2 = 2.1 y ξ = 0.35.
Interfaz interactiva humano-robot móvil
La interfaz interactiva de Ludibot está inspirada en un modelo de máquina de estado finito. Las transiciones se activan con gestos de las manos como entrada, definidos según dos posiciones (arriba/abajo) y la situación de las manos (mano abierta/mano cerrada).
El funcionamiento de la interfaz se basa en cinco estados primarios: “Menú”, “¡Te sigo!”, “Posicióname”, “Juguemos” y “Alto”. La Figura 2 muestra la representación esquemática de la interfaz, que incluye el estado inicial, llamado “Aprende a controlarme”.
El diagrama de la Figura 2 ilustra los diversos estados primarios y secundarios, así como las transiciones entre ellos.
Hay diez estados secundarios derivados de los primarios, gracias a las diversas combinaciones el usuario podrá conducir el robot de un estado origen a un estado destino:
1) “Establecer posición”
2) “Guardar posición”
3) “Mover a Ludibot”
4) “Repasar”
5) “Entrenar”
6) “Jugar De la tête aux pieds”
7) “Recibir indicación”
8) “Verificar”
9) “Perdiste”
10) “Ganaste”
Se aborda aquí de manera detallada únicamente el desarrollo requerido por el estado primario “Juguemos”.
La interfaz gráfica (Figura 3), que permite al usuario elegir entre cinco estados diferentes, incluye la barra de estado, etiquetada en la Figura 3 con (1), la ventana de animación del cuerpo (2), la ventana del gesto detectado (3), la ventana con el repertorio de gestos disponibles (4), el estado de la detección por parte del Kinect (5) y, finalmente, la barra de nivel de energía de la batería (6). Cada uno de estos elementos se explica brevemente a continuación.
La barra de estados describe el estado actual del robot. Entre las funciones implementadas están: “Aprende a controlarme”, “Menú”, “¡Te sigo!”, “Posicióname”, “Juguemos”. La ventana de animación muestra la representación del cuerpo del usuario obtenida a partir de la información de Kinect v2. Para posicionar y mover a Ludibot, la interfaz emplea los siguientes estados de las manos: mano abierta (círculo verde), mano cerrada (círculo rojo), mano arriba o abajo del punto superior del pecho a la altura del hombro.
La ventana del gesto detectado presenta la imagen de la posición y el gesto del usuario tal como van identificándose en un momento dado y, por ende, permite cerciorarse de la pertinencia del gesto que ha sido seleccionado.
La ventana con el repertorio de gestos disponibles asocia la representación gráfica de diversos estados y los nombres respectivos. Indica al usuario los estados accesibles y sirve para recordar el gesto preestablecido para cada estado.
El estado detectado por el Kinect v2 se representa mediante una secuencia de caracteres. La secuencia de caracteres (o‿o) representa una cara con los ojos abiertos e indica que el Kinect v2 está detectando adecuadamente al usuario. La secuencia de caracteres (-‿-) representa una cara con los ojos cerrados e indica que el Kinect v2 no está detectando ningún usuario. La barra de nivel de energía indica el estado de carga de la batería en tiempo real.
“Aprende a controlarme” es el estado inicial de la interfaz. En él, el usuario descubre cómo funciona Ludibot y aprende los gestos preestablecidos para la interacción. El gesto correspondiente a “Salir” le permite transitar hacia el menú. En el estado “Menú”, el usuario tiene la posibilidad de elegir entre cuatro estados: “¡Te sigo!”, “Posicióname”, “Juguemos” y “Salir”. A cada uno de ellos corresponde un gesto específico. “¡Te sigo!” permite que Ludibot siga al usuario en movimiento, según la distancia y el ángulo predefinidos en el diagrama de control. “Posicióname” permite mover el robot a la posición deseada, recurriendo a los datos relativos a las magnitudes y al ángulo del brazo derecho del usuario. “Salir” permite regresar al menú o, en el caso de estar ya en “Menú”, regresar al estado inicial “Aprende a controlarme”.
“Juguemos” permite acceder al juego De la tête aux pieds. En éste, el robot enuncia aleatoriamente, uno por uno y en francés, los nombres de diferentes partes del cuerpo. El jugador no debe tocar la parte del cuerpo recién enunciada sino la anterior. En otras palabras, al iniciar el juego, Ludibot enuncia la parte A y el jugador debe permanecer inmóvil. Cuando el robot enuncia la parte B, el jugador toca la parte A; cuando el robot enuncia la parte C, el jugador toca la parte B, y así sucesivamente. Se trata de una actividad durante la cual el desfase deliberado entre instrucción dada e instrucción realizada exige concentración y memorización a corto plazo. El objetivo es acumular cinco aciertos sin cometer más de dos errores. Por cada acierto, el robot avanzará una distancia determinada (Figura 4).
Antes de iniciar el juego, el usuario puede elegir dos modalidades distintas de utilización, de menor complejidad que el juego en sí: “Repasar” y “Entrenar”.
“Repasar” permite descubrir o revisar el vocabulario. En esta modalidad, cuando el usuario toca una parte de su cuerpo, Ludibot permanece fijo, detecta la parte del cuerpo correspondiente y formula el nombre de la misma en voz alta.
“Entrenar” invita a practicar la interacción con el robot sin el reto adicional del desfase entre instrucciones que introduce De la tête aux pieds.
“Juguemos” incluye asimismo la posibilidad de pasar al estado “Alto” (para interrumpir anticipadamente el juego o dar por terminada la partida en curso) y la de recurrir a la transición “Salir” (para regresar al menú).
Juego De la tête aux pieds
La primera aplicación lúdica desarrollada con Ludibot está destinada al aprendizaje dirigido o semiautónomo del idioma francés, teniendo por objetivo lingüístico la sensibilización, la conceptualización y la sistematización del vocabulario básico relativo a las partes del cuerpo humano, así como los elementos gramaticales y fonéticos correspondientes. Los usuarios pueden ser tanto los aprendientes que se acercan por primera vez a ese vocabulario, como quien busca organizar o repasar un conocimiento léxico previo.
El juego es fácilmente adaptable a cualquier idioma, pues basta con sustituir los archivos de los audios y las imágenes con los archivos correspondientes en el idioma deseado. También puede ajustarse el nivel de lengua, enriqueciendo el repertorio léxico o remplazándolo por una lista de nivel más avanzado.
La Figura 5 ilustra las partes del cuerpo humano incluidas hasta ahora en el repertorio de Ludibot. A futuro, se tiene contemplado ampliar la lista de vocabulario disponible. Es posible asimismo programar adaptaciones a otros contenidos, siempre y cuando a cada unidad de contenido corresponda una posición específica en el espacio (por ejemplo, identificar figuras proyectadas en una pantalla o ubicar sitios en un mapa).
A reserva de futuros desarrollos, De la tête aux pieds ha permitido ya efectuar diversas pruebas, con base en los tres estados secundarios del estado primario “Juguemos”, a saber, “Repasar”, “Entrenar” y “Jugar De la tête aux pieds”.
El estado “Repasar” tiene como objetivo que el usuario descubra o repase el vocabulario. Esta primera dinámica brinda un acercamiento sonoro, visual y escrito al corpus lingüístico. En efecto, la interfaz enuncia el nombre de cada parte del cuerpo y, simultáneamente, muestra en pantalla la imagen correspondiente, acompañada del nombre en cuestión, siempre precedido del artículo definido (le, la o l’) que, en los dos primeros casos, permite determinar el género de la palabra.
El propósito de esta dinámica es favorecer un proceso de aprendizaje intuitivo y multisensorial, durante el cual el usuario escucha una palabra, ve la imagen asociada a la palabra y toca la parte del cuerpo correspondiente. De esta manera, descubre o repasa elementos léxicos, gramaticales (género de la palabra) y fonéticos (pronunciación), identificando a qué partes de su propio cuerpo alude Ludibot como se muestra en la Figura 6. La pantalla incluye tres grandes secciones: a la izquierda aparece el título de la modalidad de juego, seguido por un recuadro con la representación del cuerpo del usuario. En la Figura 6 vemos al jugador tocando su cabeza en respuesta al audio “la tête”. Más abajo figuran el estado de detección de Kinect y el estado de la batería. Al centro, se muestra el modelo de figura humana que permite identificar la posición, el nombre y la ortografía de la parte del cuerpo mencionada. A la derecha, se ofrece al usuario la opción “Salir” y se le recuerda el gesto correspondiente.
La segunda y la tercera dinámicas del estado “Juguemos” son “Entrenar” y “Jugar De la tête aux pieds”. Ambos estados se basan en tocar la parte del cuerpo enunciada por el robot móvil mediante el estado secundario “Recibir indicación”, cuya función es reproducir un audio aleatoriamente pero, como se mencionó más arriba, “Entrenar” permite jugar sin desfase entre la indicación y la acción solicitada, mientras que “Jugar De la tête aux pieds” introduce el reto adicional de recordar y realizar la acción previa a la enunciada.
En ambos casos, cada vez que el usuario obtiene un acierto, el robot emite una señal sonora específica, muestra en pantalla un ícono de aplauso, y avanza una distancia preestablecida. Por el contrario, si el usuario se equivoca o tarda más de cinco segundos en dar su respuesta, el robot emite una señal sonora de error y no avanza.
Cuando el jugador obtiene cinco aciertos, gana. El robot emite una señal sonora de fanfarria para felicitarlo. Para reiniciar el juego, el usuario debe emplear el estado “Salir”. Ahora bien, si el usuario acumula tres errores, se reproduce una señal sonora que indica que el jugador ha perdido el juego. En tal caso, es necesario reiniciar el juego con el estado “Salir”. A futuro, las distintas señales sonoras mencionadas serán sustituidas por mensajes vocales. La Figura 7 muestra un usuario jugando De la tête aux pieds.
El robot móvil lleva a cabo el conteo de aciertos (Figura 8), según dos modalidades: la barra central, de color rojo, va aumentando su longitud; además, en la esquina inferior derecha de la pantalla se indica el número de aciertos acumulados.
Durante el desarrollo de Ludibot, se buscó tomar en cuenta la heterogeneidad de los jugadores potenciales. Según se expuso anteriormente, es posible trabajar con alumnos de diferentes idiomas y con diferentes niveles de desempeño. Las pruebas realizadas permiten una identificación gestual adecuada para el desarrollo del juego con usuarios diversos: la interfaz propuesta, al permitir visualizar el gesto detectado, facilita la verificación del desempeño. Los contados errores de percepción derivan de los límites propios del dispositivo Kinect. Gracias al carácter multisensorial de la interfaz, es posible también prever adaptaciones en función de ciertas necesidades especiales. Así, para jugadores con limitaciones visuales, es posible desplegar la imagen de la interfaz en una pantalla de gran tamaño, utilizando una conexión remota. El uso de imágenes favorece también la participación de usuarios con limitaciones auditivas. Como la mayoría de los gestos se realizan con brazos y manos, el juego es accesible para usuarios en silla de ruedas.
Discusión de los resultados
Las pruebas experimentales con alumnos de bachillerato (adolescentes hispanohablantes de 15 a 18 años, con un nivel básico de francés) estaban previstas para el inicio del periodo escolar 2020-2021, tanto en el aula como en mediateca. La contingencia sanitaria impidió realizar pruebas en situación real. En espera de poder experimentar con grupos de aprendientes, se llevaron a cabo pruebas preliminares con cinco voluntarios. Se efectuaron en un lugar cerrado semejante al entorno de uso previsto, cuyos niveles de iluminación no afectaron de manera significativa el reconocimiento y la adquisición de datos. Ludibot funciona de manera óptima sobre un suelo cuya superficie es regular, pues las pruebas en superficies irregulares dieron lugar a perturbaciones tanto en el seguimiento de trayectorias del robot como en el proceso de reconocimiento y de adquisición de datos. Será necesario elegir entre trabajar ese aspecto o restringir el uso de Ludibot a espacios que reúnan condiciones óptimas.
Las pistas para mejorar el desempeño técnico, lúdico y lingüístico de Ludibot serán tomadas en cuenta para el pilotaje en situaciones formales e informales de aprendizaje de idiomas, en el aula de francés o en mediateca. Se mencionan aquí algunas de ellas.
Las pruebas del juego De la tête aux pieds involucraron a un solo usuario a la vez. Está previsto programar una modalidad de juego colectiva (de dos a ocho usuarios), introduciendo de esa manera la emulación y la competencia entre participantes. Para hacer el juego más ágil, es importante reducir tanto el tiempo de reconocimiento por parte de Kinect v2 como el tiempo de reacción del robot.
Está en proceso el diseño de actividades de juego distintas, que saquen provecho de la singularidad del sistema. En tales actividades, los aprendientes serán invitados a descubrir por sí mismos las modalidades de interacción. Se contempla asimismo el diseño de actividades grupales inscritas en una secuencia didáctica con objetivos curriculares específicos.
En cuanto al aspecto visual, la actitud lúdica de los usuarios se vería sin duda favorecida por un diseño gráfico más sobrio y llamativo a la vez. En efecto, muchos de los beneficios asociados actualmente con el juego pedagógico están relacionados con la disposición de ánimo del participante respecto de la actividad antes que con el material de juego o las reglas que rigen la actividad (Silva, 1999).
En lo que atañe a los contenidos lingüísticos, el juego incluye por el momento la identificación y el reconocimiento de ocho partes del cuerpo, que fueron elegidas tanto por pertenecer a un nivel básico de vocabulario como por la facilidad de identificación por Kinect v2. Será indispensable ampliar la lista, incluyendo palabras de nivel más avanzado e introduciendo los ajustes de programación necesarios. Para ello, será preciso implementar un método más eficiente de detección, con el fin de diferenciar partes del cuerpo cercanas entre sí o situadas a la misma altura en las partes anterior y posterior del cuerpo.
Tomando en cuenta las necesidades de aprendizaje, se contempla incluir en la modalidad “Repasar” la posibilidad de elegir entre desplegar u ocultar el nombre escrito de la palabra enunciada, de tal manera que la grafía no interfiera en la percepción sonora.
Conclusiones
En este artículo se ha presentado a un robot móvil experimental basado en el Kinect v2, el cual aplica la interacción humano-máquina mediante reconocimiento de gestos para promover el aprendizaje de un idioma. La arquitectura de Ludibot incluye en su diseño diferentes elementos que ofrecen al usuario una interfaz interactiva, atractiva y de fácil uso, destinada a estimular la comunicación verbal y no verbal.
Respecto de otros desarrollos basados en el sensor Kinect v2 que asocian juego y robótica, Ludibot se distingue técnicamente por la naturaleza de su interfaz interactiva humano-máquina y, epistemológicamente, por la asociación multidisciplinaria que busca de manera deliberada establecer un equilibrio entre los aportes de la robótica, las ciencias del juego y la didáctica de lenguas. Por añadidura, el desarrollo contempla la posibilidad de apoyar el proceso de aprendizaje de un idioma tanto en situaciones formales como en situaciones informales.
La interfaz de Ludibot aprovecha la comunicación no verbal para un aprendizaje activo y significativo. Con miras a fomentar la autonomía, incluye un menú que permite al usuario descubrir de manera independiente el funcionamiento del robot, practicar el vocabulario por adquirir y, finalmente, jugar.
La primera de las aplicaciones desarrollada para Ludibot consiste en un juego en francés enfocado al aprendizaje de vocabulario relacionado con las partes del cuerpo. El juego refuerza asimismo elementos gramaticales y fonéticos.
La interfaz interactiva y la primera aplicación lúdica han sido probadas con éxito con un grupo reducido de usuarios, y se han identificado nuevas pistas de desarrollo. Se busca así promover el uso razonado de herramientas tecnológicas para favorecer el aprendizaje activo de idiomas, conjugando aportes pluridisciplinarios que contribuyen a la difusión crítica de nuevos paradigmas de aprendizaje.