Realidad Aumentada aplicada a la Matemática

Luego de algún tiempo retomo la escritura en el blog, para comentarles el emprendimiento que se ha iniciado en favor de aplicar la tecnología de la Realidad Aumentada para poder reforzar los aprendizajes en matemática, fundamentalmente en los primeros grados.  El Informe Horizon 2010 elaborado por el eLearn Center de la UOC y el New Media Consortium   vaticinó que la realidad aumentada sencilla sólo tardaría de dos a tres años en imprimir una fuerte influencia en la educación; esta vaticinio se ha ido cumpliendo en estos cerca de 3 años; el grato reto que asumí fue poder ser referentes en el uso de esta tecnología; por fortuna se coincidió con la empresa mexicana  M.C. Ar  en este empeño y en estos meses estoy trabajando para ellos en el desarrollo de un sistema que pueda apoyar la enseñanza de las Matemáticas basándonos en la curricula de primer grado en México, que es muy similar en los contenidos a varias de las currículas latinoamericanas en especial la peruana.

Durante el desarrollo del proyecto se van construyendo  juegos de RA, que usan conceptos de las denominadas aplicaciones de computación basadas en el gesto. El lenguaje de programación que se eligió fue CSharp bajo el framework Microsoft XNA; dentro de este entorno se usaron  librerías de visión artificial basadas en OpenCV y adaptada a CSharp con la denominación de OpenCvSharp. Las aplicaciones construidas  logran interactividad a través de los gestos; usando para ello la detección de flujo de movimiento,  es decir, se determina el patrón aparente de movimiento de objetos, superficies, y los bordes en una escena visual que es causado por el movimiento relativo entre un observador (un ojo una cámara ) y la escena,

Experimentalmente se esta validando las aplicaciones en la  I.E. «Jesús Nazareno», bajo estrategias del juego didáctico; donde se introducen los juegos  para poder validar sus resultados, que espero poder comentar en este espacio. Estos son algunos de los conceptos que se están trabajando:

–        Clasificación de objetos.

–        Seriación de objetos.

–        Representación de la cardinalidad de un conjunto de objetos.

–        Identificación de números ordinales.

–        Identificación de la relación “mayor que”, “menor que”, “igual que”

–        Sumar y restar de números.

Videos ilustrativos de lo que se esta avanzando:

Juan Cadillo

Desarrollo de un Multimarcador para Realidad Aumentada

Desde Diciembre del 2012 me empeñe en desarrollar mi propia detección de marcadores en CSharp y XNA, para ello estoy empleando OpenCvSharp, un marco de trabajo muy bueno que esta siendo portado desde OpenCv.

Para el desarrollo de diferentes pasos me he inspirado en js-aruco que me permitió entender los pasos para desarrollar la homografía. La codificación del marcador es propia y esta basada en una secuencia de 2 a la 9 combinaciones, es decir el marcador esta dividido en un tablero de 7 x 7 partes (49), de las cuales solo tomo 9 que son las centrales. La parte exterior permite crear una bloque totalmente negro que separa el marcador de la parte blanca, la segunda cuadricula interior determina la orientación y la siguiente cuadricula es la que permite determinar la codificación, cuyo resultado son 512 marcadores posibles.

Una vez ubicado e identificado el marcador, el siguiente reto fue determinar la rotación, traslación y escalado. Fue realmente una tarea ardua, debido a que se tenía que transmitir estos valores a 3D en XNA, que de por si es ya es difícil sino tienes mucha experiencia en trabajar con 3D. Luego de mucho investigar en la matemática proyectiva y funciones recomendadas  (ProjectPoints2, SolvePnP, Rodrigues, etc.) que fueron casi un dolor agudo de cabeza por los datos de entrada como de salida (interpretación); me decidí hacerlo a mi modo…. básicamente basarme en el ángulo de rotación y su cambio según los sentidos de orientación que me permite trasladar y rotar el objeto en 3D según el movimiento del marcado. Esto me  permite economizar en tiempo de ejecución y memoria.

El escalado fue mucho más sencillo pues tomé como referencia el perímetro y en función de este determinar el tamaño del modelo a presentar.

Este es el video de muestra del avance logrado; ahora queda optimizar el código y documentarlo para su posterior liberación.

Juan Cadillo

Primer Juego de Realidad Aumentada para conservar la Naturaleza – Hecho en el Perú

Estimado amigos que leen este blog; dentro de los proyectos realizando me he planteado construir un juego de realidad aumentada que aliente el desarrollo de conciencia de los niños por la a conservación del Medio Ambiente. Para la construcción de este tipo se requiere una idea marco, pero además todo un trabajo de ingeniería de software que permita tener esquemas de la aplicación y un código compacto que se pueda ir mejorando y en los siguientes meses iré mostrando en este blog.

Les dejo con un video del avance.

[youtube:http://youtu.be/Fdb1WEFqXRw%5D

Juego de Realidad Aumentada en 3D usando GoblinXNA

Dentro de los avances en el uso de la Realidad Aumentada que vengo realizando; sigo explorando diferentes plataformas y entornos de trabajo; uno de ellas es XNA. XNA es un entorno creado por Microsoft para facilitar la construcción y gestión del desarrollo de video juegos; dentro de este entorno se ha optimizado ciertas funcionalidades para poder integrar 3D dentro de la plataforma, siendo GoblinXNA una distribución libre que posibilita este objetivo.

GoblinXNA me ha permitido integrar un objeto en 3D a la pantalla y poder manejarlo usando realidad aumentada a través de opencv para el entorno de programación de C#.

El juego es un primer prototipo del manejo y la funcionalidad que se requiere para permite potenciar las habilidades motrices de los niños con video juegos en 3D; que espero pueda seguir evolucionando.

Y un resumen del proyecto presentado a Microsoft Partners in Learning – Latin America y Caribbean Forum que se desarrollara el 19 y 20 de Setiembre en Lima – Perú.

Juan Cadillo