A Mobile Augmented Reality Framework Based on Reusable

Anuncio
A Mobile Augmented Reality Framework Based
on Reusable Components
R. I. Barraza, O. O. Vergara, Senior Member, IEEE, and V. G. Cruz
Abstract— In recent years, Augmented Reality (AR) has
experienced a great growth in the interest of researchers and
general public. Commercial applications such as AR browsers,
games, and marketing campaigns are gradually becoming more
available; however, the need for a flexible authoring solution still
remains. The aim of this paper is to present a novel framework to
create marker based augmented reality applications for mobile
devices. The framework is composed of five main subsystems: a)
presentation: with a game engine as the core component, b)
tracking: which performs all the computer vision algorithms, c)
interaction: composed of a custom visual editor which processes
all the inputs to the framework, d) world model: used to store
and provide access to the digital representation of the world, and
e) context: used to provide status information of the entire
system. All the subsystems were used to provide for users a
comprehensive way to develop and share prefabricated objects
that allow reusability across applications. A particular case, of an
interactive “pARabola plotting” application, is presented to
demonstrate the efficiency of the framework. The application
was tested in four mobile devices running Android OS. The
experimental results demonstrate the ability of the framework to
create usable mobile AR applications, observing better visual and
interaction results on the higher quality mobile devices.
Keywords— Augmented reality, Framework, Reusable
components, Mobile devices, Android operating system.
L
I. INTRODUCCIÓN
A REALIDAD AUMENTADA (RA) es un campo de
estudio dentro de la Realidad Virtual (RV) que puede ser
vista como una de las posibilidades de representación que
existen entre el mundo real y un mundo completamente
virtual. El paradigma de interacción humano-computadora es
una parte fundamental de la RA. Es por eso que la RA permite
complementar la realidad con objetos virtuales, de tal manera
que para el usuario, dichos objetos parecen coexistir en el
mismo tiempo y espacio que los objetos en el mundo real [13].
Para poder realizar un sistema de RA se necesitan al menos
cuatro elementos: 1) un dispositivo que capture las imágenes
del mundo real, el cual típicamente es una cámara, 2) un
dispositivo en el que se puedan proyectar de manera conjunta
las imágenes del mundo real y los modelos virtuales, el cual
puede ser una pantalla de una computadora o de un dispositivo
móvil, 3) un elemento que permita interpretar la información
que se obtiene del mundo real, reconocer los objetos de
interés, estimar la pose para superponer los objetos virtuales y
realizar el algoritmo de seguimiento, el cual es una unidad
R. Barraza, Universidad Autónoma de Ciudad Juárez, Ciudad Juárez,
Chihuahua, México, al110471@alumnos.uacj
O. Vergara, Universidad Autónoma de Ciudad Juárez, Ciudad Juárez,
Chihuahua, México, overgara@uacj
V. Cruz, Universidad Autónoma de Ciudad Juárez, Ciudad Juárez,
Chihuahua, México, vianey.cruz@uacj.mx
central de procesamiento, y 4) un objeto que permita activar la
RA, aquí se distingue entre los sistemas que utilizan
marcadores (objetos enmarcados con un borde) y los que no
(el lugar donde se suporpone la información puede ser
cualquier objeto dentro de la escena).
La tecnología detrás de la RA, que permite enriquecer la
percepción de nuestra realidad, ha existido desde hace más de
dos décadas. Sin embargo, las primeras implementaciones
estaban limitadas por pesados y costosos sistemas de
procesamiento llamados Head Mounted Displays (HMD por
sus siglas en inglés), lo que implicaba que, en muchas
ocasiones, la movilidad del usuario fuera reducida debido a la
configuración general del sistema [4]. Con el desarrollo
tecnológico de dispositivos móviles, como teléfonos
inteligentes y tabletas digitales equipados con cámaras de
video, se abrió la puerta a una nueva era de aplicaciones de
RA. Las pantallas de dichos dispositivos, pueden ser utilizadas
como ventanas hacia el mundo real aumentándolo con objetos
e información virtual relevante, lográndose así un enfoque
más natural, sencillo y económico.
La llegada de los dispositivos móviles, trajo consigo la
capacidad de la comunicación inalámbrica, no sólo en la
forma de tecnologías de radio de largo alcance, sino también
en estándares de comunicación de corto alcance como
Bluetooth y Wireless Local Area Network (WLAN por sus
siglas en inglés). Dichos esquemas permiten a los dispositivos
interconectarse y compartir información sobre seguimiento,
interacción y contexto, para crear escenas distribuidas y
ambientes colaborativos [5-6]. Cuando se habla de
aplicaciones de RA móvil (RAM), esencialmente se está
tratando con sistemas en tiempo real, con tiempos de respuesta
en el orden de los milisegundos [7]. Por lo que, el añadir una
capa de red a la RAM, implica lidiar con los posibles
problemas de interoperabilidad, latencia y ancho de banda,
mismos que tienen que ser considerados sin perder de vista la
limitante del tiempo de procesamiento, que de inicio, ya se ve
afectado por la complejidad de los algoritmos de visión por
computadora.
La RAM permite crear atractivos espacios multimedia
compartidos, lo que proporciona, formas de mejorar las
experiencias de los usuarios en una amplia gama de campos de
investigación [8]. Esto hace de la RAM una de las áreas más
interesantes de la RA. Sin embargo, para lograr integrar de
manera más efectiva la RAM en la vida cotidiana, es necesario
contar con un framework potente, configurable, extensible y
económico. Anteriormente, ya se han presentado en la
literatura algunos trabajos para atender a dicha necesidad, sin
embargo, algunos inconvenientes como las técnicas de
integración, el soporte multiusuario, y los métodos de
evaluación han entorpecido su diseminación dentro de las
comunidades de desarrollo.
El objetivo principal del presente artículo es mostrar el
diseño de un framework extensible, flexible y sencillo, basado
en componentes reutilizables, para el desarrollo de
aplicaciones de RAM. Adicionalmente, se presenta una
aplicación desarrollada a partir del framework que
posteriormente pudiera ser reutilizada como un objeto
prefabricado por usuarios con menor conocimiento técnico a
través de un editor What You See Is What You Get
(WYSIWYG por sus siglas en inglés).
El resto del artículo se encuentra organizado de la siguiente
manera. En la Sección II, se presenta un resumen de los
frameworks de RA existentes en la literatura. La Sección III,
define los materiales y métodos utilizados para el desarrollo
del framework. En la Sección IV, se presenta la aplicación
interactiva pARabola, así como los resultados obtenidos en
pruebas con diferentes dispositivos. Finalmente, las
conclusiones obtenidas se muestran en la Sección V.
II. TRABAJOS RELACIONADOS
El interés por la creación de frameworks de apoyo para el
desarrollo de aplicaciones de RA ha existido casi desde la
aparición del campo de investigación mismo. La evolución
comenzó desde las primeras librerías de código abierto como
ARToolKit [9], ARTag [10] y ArUco [11], proyectos de
código cerrado como Studierstube Tracker [12] y Studierstube
ES [13] hasta llegar a paquetes de software comercial como
Vuforia, Layar, Metaio y Junaio, por mencionar algunos.
Gracias a dichos proyectos, una variedad de campos han sido
permeados por la tecnología de RA, principalmente en la
forma de sistemas personales de información, aplicaciones
médicas, entretenimiento y educación; aún así, la mayor parte
de las aplicaciones sigue sin contar con una aceptación
general. Para comprender el porqué de la necesidad de un
framework sencillo, extensible y flexible para el desarrollo de
aplicaciones de RAM, a continuación se presentan algunas
características de las investigaciones relacionadas.
Hasta el día de hoy, resulta difícil señalar un proyecto que
haya logrado lo que el framework de RA Studierstube [13]. El
cual fue diseñado en 1996 y utilizado por más de una década
en la creación de numerosas herramientas para la enseñanza
de distintos tópicos y para promover la investigación de la
RA. Sin embargo, a pesar de ser un framework robusto, de
código abierto y que permite a múltiples usuarios trabajar de
manera simultánea, también presenta algunos inconvenientes:
la curva de aprendizaje es elevada, por lo que resulta difícil
utilizarlo para la creación rápida de prototipos, su
mantenimiento requiere extensa experiencia en el área, no
cuenta con una interfaz gráfica de usuario para la gestión de
escenas, y actualmente no cuenta con soporte, lo cual hace que
la tarea de integración de nuevas tecnologías sea complicada.
En el proyecto presentado en 2005 por [14] se generó un
conjunto de herramientas que permitían que tecnólogos,
diseñadores y estudiantes pudieran crear prototipos de RA de
manera rápida. Los autores detectaron que incluso cuando la
tecnología necesaria para la creación de aplicaciones de RA se
encontraba disponible para Director (su plataforma de
desarrollo), el proceso de desarrollo seguía siendo
complicado. El tiempo necesario desde la concepción de la
idea, la codificación y la obtención del producto final, era
demasiado largo y muchas veces no se obtenía el resultado
esperado. Por lo que, se dispusieron a crear Designers
Augmented Reality Toolkit (DART), un sistema basado en
Director que incorpora los conceptos de Xtras (plug-ins
nativos escritos en C++ para proporcionar servicios como la
captura de vídeo, seguimiento y registro de marcador de
referencia) y comportamientos (fragmentos de código
LINGO) utilizados como elementos básicos para el desarrollo
de la aplicación de RA. DART tiene algunos inconvenientes,
tales como el costo de las licencias, un gestor de escenas
basado en líneas de tiempo y la falta de soporte móvil nativo.
En el 2006 Miroslav y Petrovski desarrollaron la plataforma
Collaborative Mobile Augmented Reality (CMAR) [15], que
consiste en cuatro módulos: 1) seguimiento y renderizado, 2)
administración de escena distribuida, 3) manejador de eventos
y 4) comunicación Bluetooth. La plataforma expone un
conjunto de funciones para el desarrollo de RAM de manera
sencilla. Como parte de la investigación, presentaron un
prototipo que permite a múltiples usuarios compartir una
escena común con nueve objetos manipulables por los
participantes. A pesar de enfocarse al ahora casi extinto
sistema operativo Symbian, CMAR fue un paso importante en
la dirección correcta para llevar a la RA al ambiente
colaborativo móvil.
El framework ComposAR aparece en el año 2008 [16]
como un intento para poner al alcance la creación de
contenido de RA a un grupo más extenso de desarrolladores.
Fue construido sobre ARToolKit for Open Scene Graph
(osgART), utiliza el lenguaje de programación Python y
permite la creación de herramientas externas para ser
utilizadas dentro del ambiente de edición. Una característica
particular de ComposAR es que fue diseñado con el propósito
exclusivo de apoyar la creación de contenido de RA a través
de la programación visual, interpretación de fragmentos de
código Python y un modo de prueba en tiempo de ejecución,
que permite ocultarle al usuario desarrollador, los complejos
conceptos relacionados con la RA.
Uno de los frameworks de más reciente creación (2012) es
ARTiFiCe [8], que hace uso de un motor de juegos y puede
utilizarse para el desarrollo de aplicaciones colaborativas de
realidad virtual y aumentada. Se propuso una estructura de
software que puede adaptarse fácilmente a la introducción de
nuevas tecnologías y dispositivos. De esta forma ARTiFiCe
puede ser configurado para ambientes totalmente envolventes
al emplear una combinación de HMD y mandos de control con
seis grados de libertad (Microsoft Kinect), ambientes semienvolventes, estaciones de escritorio y entornos móviles.
Como se puede observar, existen distintos proyectos que
han surgido con el fin de desarrollar frameworks para la
creación de aplicaciones de RAM, todos ellos con sus ventajas
y desventajas asociadas. Sin embargo, aún existen muchos
retos por superar y demasiados nichos de oportunidad.
III. FRAMEWORK BASADO EN COMPONENTES
REUSABLES
De acuerdo con el estudio realizado por [17], a pesar de la
variedad y la notoria diferencia que existe entre las
aplicaciones, la mayoría de los sistemas de RA comparten una
estructura arquitectónica básica en común. Por lo que, existen
subsistemas y componentes fundamentales que pueden
encontrarse en la mayoría de las aplicaciones de RA. Esto
obedece a que todos los sistemas de RA son interactivos y su
funcionalidad central es la misma: rastrear la posición del
marcador, mezclar objetos virtuales con escenas reales y
procesar y reaccionar contextualmente a los cambios e
interacción del usuario.
Después de la revisión de la literatura y de la evaluación de
diferentes opciones, se propone como base del framework para
realizar aplicaciones de RAM con marcadores, el diagrama de
bloques que se muestra en la Fig. 1a. Además, con el fin de
crear un framework extensible, fácil de usar y basado en
técnicas de visión por computadora, se eligieron los
componentes y plataformas de desarrollo que se muestran en
la Fig. 1b como las herramientas particulares para cada uno de
los subsistemas de la Fig. 1a.
a)
b)
Figura 1. Framework propuesto. a) Subsistemas a desarrollar, y b)
componentes y plataformas para el desarrollo de RAM con marcadores.
A. Subsistema de Presentación
Es el encargado de desplegar la escena compuesta al
usuario, incluye los elementos del mundo real, así como los
elementos virtuales que permitirán aumentarlo. En el núcleo
del framework, se encuentra Unity3D [18], un poderoso motor
de juegos 3D que proporciona la capacidad de renderizado,
modelos de transformación, iluminación y sombreado, efectos
especiales, un motor de simulación física y un detector de
colisiones. Unity3D, también ofrece la posibilidad de extender
su funcionalidad a través de programación directa del editor o
a través de extensiones de desarrolladores independientes.
Además, permite exportar el desarrollo final a una amplia
gama de plataformas que incluyen Windows, Mac OS, iOS,
Android, Xbox 360, PS3 y Wii.
A pesar de que Unity3D es un motor de juegos que no
ofrece soporte incorporado para el desarrollo de aplicaciones
de RA, su capacidad para el manejo de escenas,
extensibilidad, flexibilidad y su amplia comunidad de
desarrollo, lo han convertido en la plataforma preferida para
muchos desarrolladores, así como un excelente recurso para
utilizarse en el subsistema de presentación. Además, la
facilidad de integrar extensiones de desarrollo independiente
permite tomar ventaja de toda su funcionalidad inherente.
Todo elemento dentro de una escena de Unity3D, deriva de
la clase base GameObject, la cual actúa como un contenedor
jerárquico para otros objetos denominados Components,
mismos que son los responsables de la funcionalidad real del
sistema. Debido a que todo elemento deriva de GameObject,
ciertas propiedades y métodos comunes son heredados, tal es
el caso del rendererizador, el animador, el detector de
colisiones, el transformador, etc. También, es posible adjuntar
nuevas clases que permiten controlar la apariencia visual y el
comportamiento de los elementos dentro de la escena. Se
puede utilizar el editor de código y el lenguaje de
programación C# para desarrollar clases personalizadas que
expongan métodos y propiedades que permitan a un objeto
responder a la interacción del usuario a través del subsistema
de interacción. La desventaja de utilizar Unity3D es que no
contiene un ambiente integrado para crear modelos 3D
complejos, por lo que es necesario hacer uso de herramientas
externas para su posterior importación.
B. Subsistema de Seguimiento
Es un componente clave en cualquier aplicación de RA, es
responsable de la detección de marcadores, procesamiento,
filtrado y estimación de pose. Dicha información se transmite
al componente de renderizado, dentro del subsistema de
presentación, encargado de añadir los elementos virtuales
correspondientes y combinar la escena final que será vista por
el usuario. Con el fin de mantener la ilusión de que el mundo
real y el virtual coexisten como uno solo, las afectaciones y
fluctuaciones inducidas por la librería de seguimiento deben
mantenerse al mínimo sin sacrificar el tiempo de respuesta.
Aunque algunas librerías de RA basadas en visión por
computadora existentes realizan la detección robusta y
seguimiento en tiempo real de los marcadores, también
presentan limitantes tales como costo, soporte de plataforma e
implementación compleja. Dichos inconvenientes se
solucionaron mediante el uso del SDK Vuforia [19], una
librería estable, bien documentada y creada por Qualcomm
(líder de la industria de las telecomunicaciones inalámbricas).
Vuforia puede incorporarse a Unity3D en forma de
extensión, por lo que el código C/C++ de la biblioteca
responsable de la detección de marcadores y el seguimiento
puede ser llamado desde la clase de C# TrackableBehaviour,
derivada de la clase base MonoBehaviour. Esto facilita la
comunicación y transmisión de la información de estimación
de la pose a los componentes de gestión de escena y
renderizado con el objetivo de actualizar los valores del nodo
de transformación.
C. Subsistema de Interacción
Se encarga de recolectar y procesar cualquier acción de
entrada ejercida por el usuario. A lo largo de los años se han
desarrollado diferentes interfaces de interacción para RA, cada
una con sus propias ventajas y limitantes. Tomando en cuenta
la clasificación presentada en [20], donde se define la forma
en que el usuario puede interactuar con las aplicaciones de
RAM, se implementó un enfoque basado en una interfaz
gráfica de usuario táctil. La principal ventaja, es que no se
requiere ningún hardware extra, aparte del propio dispositivo
móvil, y que la mayoría de los usuarios de teléfonos
inteligentes se sienten cómodos con este tipo de interfaz.
El proceso de estimación de la pose, está a cargo de la clase
TrackableBehaviour de Vuforia, el resultado es
posteriormente transmitido al resto de los componentes para
modificar los valores de transformación del objeto y
renderizado. Con el fin de poder responder a las entradas del
usuario, se creó una clase personalizada de interacción la cual
es asociada al objeto principal (cámara de RA), para asegurar
que la interfaz gráfica de usuario este siempre visible y lista
para transmitir información al subsistema de presentación
cuando se detecte la interacción del usuario con el dispositivo.
Al registrarse un contacto con la pantalla, se desencadenan
una serie de eventos para evaluar si algún elemento de la
interfaz gráfica ha sido tocado. Después, se verifica la
presencia de un marcador válido en la escena, se valida
cualquier cambio en las propiedades expuestas y finalmente, si
fuera necesario, se invoca el método correspondiente para
actualizar el objeto con la nueva información.
D. Subsistema de Modelo del Mundo
La idea principal es almacenar y proporcionar acceso a una
representación digital del mundo real, esto incluye los
patrones de los marcadores de referencia, los datos sobre
puntos de interés, los modelos tridimensionales utilizados,
entre otros. Dentro del framework el subsistema de modelo del
mundo no es un componente independiente, sino una
amalgama entre las clases de la librería de seguimiento, que
reconocen cuáles son los patrones a buscar y cómo
interpretarlos, y el editor de escena, mismo que actúa como
contenedor jerárquico para todos los componentes de la escena
virtual listos para ser utilizados por cualquier otro subsistema
dentro del bucle principal de la aplicación.
E. Subsistema de Contexto
Es responsable de almacenar y proporcionar información
contextual relevante a todo el framework; puede tratarse de
datos estáticos o datos generados en tiempo real conforme se
ejecuta la aplicación. A pesar de que es posible incluir
información acerca del seguimiento de los marcadores,
generalmente dicha tarea se delega al subsistema de
seguimiento. Al igual que en el subsistema de interacción,
para implementar este componente se utilizan clases
personalizadas y asociadas a objetos vacíos dentro de Unity3D
y el patrón de pizarra (donde todos los objetos pueden escribir
y leer la información que necesiten). Del mismo modo, se
puede emplear un patrón donde los objetos pueden
comunicarse directamente entre ellos para el intercambio de
datos.
La Fig. 2 muestra una vista simplificada de las clases
utilizadas en cada subsistema del framework para el desarrollo
de la aplicación experimental que será descrita en la Sección
IV.
concepto de la ecuación de segundo grado y la forma en que
se comporta su gráfica cuando sus coeficientes cambian.
La elección de la aplicación, surge después de la aplicación
de encuestas con diferentes profesores de diferentes
asignaturas en la Universidad Autónoma de Ciudad Juárez, en
Ciudad Juárez, Chihuahua, México. Como resultado de las
encuestas, se observó, que en las materias de matemáticas, el
tema de ecuaciones cuadráticas es particularmente difícil de
enseñar. Esto se debe a que el profesor debe redibujar las
gráficas en el pizarrón al cambiar algún parámetro de la
ecuación.
Figura 2. Diagrama simplificado de subsistemas y clases del framework.
A pesar de que pARabola no es una aplicación
particularmente compleja, sirve para el propósito de exponer
los beneficios del framework propuesto. El primer reto, fue
encontrar la manera de graficar ecuaciones en 2D y 3D dentro
de Unity3D, ya que este no proporciona controles predefinidos
para hacerlo. Después de investigar sobre las mallas
procedurales para trazado de trayectorias, controles de interfaz
gráfica de usuario personalizados y emisores de partículas, se
optó por este último, debido a que proporciona un mayor
control y una implementación más limpia.
Aunque el propósito real de los sistemas de emisión de
partículas dentro del motor de juego es otro, su flexibilidad
permite controlar el comportamiento aleatorio como se
muestra en la Fig. 3.
IV. DESARROLLO DE LA APLICACIÓN PARABOLA
Como parte de la propuesta del framework, se desarrolló
una aplicación de RAM sencilla pero práctica e ilustrativa. Se
tomó como base el patrón Modelo Vista-Controlador y se creó
la aplicación interactiva llamada pARabola (con la "A" y "R"
en mayúsculas para referirse a "Augmented Reality") que
permite graficar la parábola definida por una ecuación
cuadrática.
La aplicación está enfocada a que los estudiantes de
ingeniería puedan utilizarla para comprender mejor el
Figura 3. Emisor de partículas aleatorias.
Las partículas emitidas por el generador, pueden ser
organizadas de tal forma que sigan un camino descrito por una
función matemática tal como si fuera un componente de
graficación, así como se puede observar en la Fig. 4.
Figura 4. Emisor de partículas posicionadas estáticamente de acuerdo a una
función cuadrática.
Después de la primera iteración, el sistema emisor es capaz
de posicionar las partículas individuales en coordenadas
predefinidas. Para que el sistema pueda responder a la
interacción del usuario (por ejemplo, a los cambios de
coeficientes) fue necesario crear los controles de la interfaz
gráfica de usuario del subsistema de interacción, así como las
clases en el subsistema de contexto. Como resultado, se
anexaron a la aplicación 2 parámetros que regulan la
resolución y escala de la gráfica (deslizadores superior e
inferior izquierdo en la Fig. 5) y 3 coeficientes que
representan las constantes a, b y c en la ecuación de la
parábola (los tres deslizadores ubicados en la parte superior
derecha de la Fig. 5). Con el sistema de partículas ya
funcional, se creó un objeto prefabricado para encapsular su
funcionalidad.
En la segunda iteración, con el emisor de partículas
modificado y el objeto prefabricado creado, se introduce el
componente de RA en la mezcla, para ello se utilizó la
extensión Vuforia para Unity3D. Un nuevo proyecto fue
creado y con él una escena vacía, después, se añadió un objeto
de tipo ARCamera al contenedor jerárquico y se anexaron las
clases responsables de la inicialización, captura y transmisión
de cuadros de imagen al componente de seguimiento y
finalización. Antes de delegar la imagen al subsistema de
seguimiento, Vuforia convierte cada cuadro capturado por la
cámara a un formato adecuado para el renderizado con
OpenGL ES y las operaciones de seguimiento.
El subsistema de seguimiento contiene los algoritmos de
visión por computadora que permiten detectar y rastrear
objetos del mundo real en los cuadros capturados por la
cámara. Como resultado, el componente de seguimiento
almacena la información resultante en un objeto de estado
(parte del subsistema de contexto) mismo que es utilizado por
el componente de presentación para garantizar un renderizado
y posicionamiento correcto del objeto 3D. Cabe mencionar
que el ciclo de seguimiento-actualización se ejecutará para
cada cuadro de video procesado.
El componente de tipo FrameMarker mostrado en la Fig. 6,
fue utilizado para asociar el objeto prefabricado creado con el
emisor de partículas. De tal forma que, cuando el marcador es
detectado en la escena, el emisor de partículas modificado
(con los correspondientes valores de las constantes a, b y c)
sea posicionado sobre él. En esencia este proceso construye el
subsistema del modelo del mundo de la aplicación.
Figura 6. Marcador utilizado en la aplicación pARabola.
Figura 5. Aplicación pARabola ejecutándose dentro del ambiente de Unity3D.
El último componente necesario para concluir la aplicación
es el subsistema de interacción. El cual había sido, en parte,
previamente implementado, mediante el uso de clases
desarrolladas en C# las cuales acompañan al objeto
prefabricado. De la misma forma, se crearon las clases
necesarias para dibujar y administrar los controles de la
interfaz gráfica de usuario. Así, el ciclo de seguimiento,
interacción y actualización finalmente se completó.
Por cada cuadro en el que el componente ARCamera esté
activo en la aplicación, se llamará al código correspondiente
en la interfaz de usuario para evaluar si alguno de los
deslizadores ha sido seleccionado y/o se ha cambiado su valor,
de ser así, se enviará un mensaje al interior del objeto
prefabricado para reposicionar las partículas del emisor acorde
al cambio sugerido por el usuario.
El subsistema de seguimiento analizará entonces, el
contenido del estado del objeto y actualizará la información
para que el componente de presentación actualice la escena y
refleje tanto los cambios en la pose del modelo 3D, así como
cualquier modificación que éste último haya sufrido.
Después del proceso anterior, la aplicación esta lista para
ser empaquetada en el formato valido (apk para Android) para
su instalación en cualquier dispositivo con el sistema
operativo Android 2.2 o superior y que tenga al menos un
procesador ARMv6 + VFP.
A. Discusión de Resultados
La versión final de la aplicación pARabola fue probada en
los 4 dispositivos enlistados en la Tabla I. A pesar de que no
hubo necesidad de realizar modificaciones especiales para
lograr la ejecución en ninguno de los dispositivos, la
diferencia visual fue evidente en los modelos con
especificaciones técnicas superiores. Un vídeo que demuestra
el uso de la aplicación ejecutándose en un teléfono HTC One
S
se
encuentra
disponible
en
la
red
(http://youtu.be/eS7DvvymNFE).
La aplicación se ejecutó correctamente y en ningún
momento se percibió demora en el tiempo de respuesta en
ninguno de los dispositivos. Por lo que, se realizaron pruebas
para evaluar el rendimiento en cada extremo del espectro de
hardware. El Galaxy Mini S5570 con un solo núcleo de
procesamiento y una velocidad de reloj de 600 MHz tardó
16.2 segundos para cargar la aplicación, mientras que el
Galaxy SII así como la Tab2 lograron hacerlo en 5.6
segundos, esto debido a que comparten especificaciones
técnicas similares, mientras que el HTC One S con dos
núcleos a 1.5 GHz fue capaz de hacerlo en sólo 4.8 segundos.
Una vez que la aplicación había sido cargada y el ciclo de
seguimiento, interacción y actualización comenzó, se realizó
un monitoreo constante del parámetro de rendimiento Frames
Per Second (FPS por sus siglas en inglés). Sin ningún
marcador a la vista, el S5570 mantuvo una velocidad de entre
28-31 FPS, nuevamente el SII y la Tab2 mostraron un
comportamiento similar al mantenerse entre 29-32 FPS.
Finalmente, el HCT One S logró una velocidad casi constante
de 31-32 FPS.
Aunque no se encontró ninguna diferencia significativa
entre los dispositivos desde el momento en que la aplicación
identifica el marcador en la escena y el emisor de partículas
aparece por primera vez, se observó un pequeño decremento
en los FPS del S5570 cuando el usuario interactúa con los
controles de la interfaz gráfica. De manera similar se produjo
un decremento de los FPS y se percibió la dificultad del S5570
para identificar y seguir al marcador cuando el dispositivo fue
sometido a movimientos deliberadamente bruscos. Los
modelos de gama más alta realizaron un mejor trabajo de
seguimiento del marcador en movimiento y se mantuvieron en
el rango de 29-30 FPS.
Después de probar la versión final de la aplicación en las
cuatro configuraciones de hardware disponibles, fue evidente
que cuanto más limitado es el hardware, menor es el
rendimiento de las aplicaciones. Por lo que se concluye que,
las especificaciones técnicas como, el número de núcleos de
procesamiento, la velocidad de reloj de los mismos, la
memoria disponible, la cámara e inclusive el tamaño y
resolución de la pantalla, juegan un papel significativo en la
experiencia final del usuario.
Adicionalmente, tomando como base uno de los
dispositivos con mejor desempeño en las pruebas de carga y
ejecución (HTC One S), se realizó una serie de ensayos para
identificar el comportamiento del sistema de detección y
seguimiento bajo distintas condiciones de iluminación
ambiental, distancia entre el marcador y dispositivo, y el
ángulo de incidencia.
El tamaño de los marcadores utilizados para las pruebas fue
de 5.5cm x 5.5cm, manteniendo un margen blanco alrededor
del borde negro de al menos el doble de grosor de este último.
La Tabla II muestra la media aritmética de los resultados
obtenidos después de ejecutar 10 veces las pruebas.
Como se puede observar en la cuarta columna de la Tabla
II, la detección del marcador se ve afectada de manera
negativa en ambientes con temperatura de luz cálida, mientras
que se obtiene un mejor resultado bajo condiciones de luz
blanca o de día.
El ángulo mínimo requerido para la detección, está
directamente relacionado con la visibilidad del borde de color
negro del marcador; en cuanto se obtiene una vista completa
de este, es posible realizar la detección.
Debido a que el reconocimiento del marcador se da con
base al patrón binario codificado alrededor del borde interno,
tanto la distancia de detección mínima como la máxima,
tuvieron mejores resultados bajo condiciones de luz que
permiten un mayor contraste. Sin embargo, el tamaño del
marcador y la calidad del lente del dispositivo son factores
complementarios con los que también es posible mejorar el
rendimiento.
Aunado al desarrollo y la demostración de la aplicación, se
realizó un estudio con un grupo de estudiantes de ingeniería de
la Universidad Autónoma de Ciudad Juárez con el fin de
obtener una primera aproximación y evaluación del uso de la
tecnología de RAM en las aulas. Para obtener los datos se
desarrolló una encuesta para conocer la percepción de los
estudiantes con respecto a la aplicación pARabola. Con base a
los resultados obtenidos a través de la aplicación del
cuestionario y los comentarios conseguidos mediante la
técnica de pensar en voz alta, se observa una respuesta
positiva por parte de los estudiantes hacia el uso de la
tecnología como herramienta complementaria de enseñanzaaprendizaje en el aula.
V. CONCLUSIONES
En el presente artículo se mostró un framework para el
desarrollo de aplicaciones de realidad aumentada móvil. El
framework se basa en un modelo genérico de referencia de
arquitectura de RA, un patrón probado de desarrollo de
software y un motor de juego como eje central, con los que se
pueden crear aplicaciones atractivas mucho más rápido de una
manera sencilla.
Uno de los problemas más comunes de los sistemas para el
desarrollo de contenido de RA, es el equilibrio entre la
facilidad de desarrollo y la funcionalidad de la aplicación
final. En otras palabras, algunas características importantes
son sacrificadas en favor de una interfaz de desarrollo más
amigable y viceversa los frameworks más robustos requieren
de un mayor conocimiento técnico y de una habilidad de
programación mayor por parte del diseñador.
TABLA I. CARACTERÍSTICAS TÉCNICAS DE LOS DISPOSITIVOS DE PRUEBA.
Compañía
Modelo
Versión de
Android
CPU
RAM
(MiB)
Cámara
(MP)
Pantalla
(Px)
Samsung
Galaxy Mini
S5570
v2.2
(Froyo)
600 MHz ARMv6
384
3.15
240 x 320
Samsung
Galaxy S II
v2.2.3
(Gingerbread)
Doble núcleo
1.2 GHz Cortex-A9
1024
8
480 x 800
HTC
One S
v4.0
(Ice Cream
Sandwich)
Doble núcleo
1.5GHz Krait
1024
8
540 x 960
Samsung
Tab 2 10.1
P5110
v4.0.3
(Ice Cream
Sandwich)
Doble núcleo
1 GHz Cortex-A9
1024
3.15
800 x 1280
TABLA II. RESULTADOS DE LAS PRUEBAS DE DETECCIÓN Y SEGUIMIENTO.
Fuente de Luz
Distancia Min
Detección (cm)
Distancia Max
Detección (cm)
Ángulo Min
Detección (grados)
4 focos Sylvania
CLF 13W 2,700K
13.6
166
47
4 focos Sylvania
CLF 13W 6,500K
12.3
182
43
Luz natural
12.1
187
41
Aprovechando la naturaleza altamente programable del
editor de Unity3D, el modelo de encapsulamiento, el editor de
programación visual y el intérprete de código, se proporciona
la flexibilidad y escalabilidad necesaria para la creación de
aplicaciones tanto por diseñadores experimentados como por
novatos y entusiastas. El objetivo principal es presentar el
framework como un proyecto de código abierto, a disposición
de la comunidad en general con la esperanza de que sea
adoptado de una forma más amplia y continúe su desarrollo a
través de contribuciones de terceros.
Aún queda trabajo por realizar, como incluir un subsistema
de red que permita a múltiples dispositivos descubrirse y
conectarse entre sí de manera intuitiva para compartir
información e interactuar con los elementos de la escena, para
así crear un ambiente colaborativo más natural y atractivo para
los usuarios. Lograr esto, implica resolver una serie de
problemas como el desarrollo de un mecanismo de bloqueo de
objetos para asegurar que sólo un usuario pueda controlar un
objeto a la vez, implementar un algoritmo de deducción
estimada e interpolación de pose y finalmente crear objetos
prefabricados de conducta para controlar el comportamiento
de otros objetos y facilitar el desarrollo visual de contenido de
RA móvil.
AGRADECIMIENTOS
Los autores desean agradecer al Consejo Nacional de
Ciencia y Tecnología CONACyT por el apoyo ofrecido a
Ramón Barraza para sus estudios de Doctorado. Un
reconocimiento especial para Jasper Flick por su guía sobre
los emisores de partículas Shuriken.
REFERENCIAS
[1]
R. Azuma, “A survey of augmented reality,” Presence: Teleoperators
and Virtual Environments, vol. 6, no. 4, pp. 355-385, August 1997.
[2] O. Demuynck and J. M. Menendez, “Magic cards: A new augmentedreality approach,” IEEE Computer Graphics and Applications, vol. 33,
no. 1, pp. 12-19, January-February 2013.
[3] M. Mine, J. van Baar, A. Grundhofer, D. Rose and B. Yang,
“Projection-based augmented reality in disney theme parks,” Computer,
vol. 45, no. 7, pp. 32-40, July 2012.
[4] M. Gervautz and D. Schmalstieg, “Anywhere interfaces using handheld
augmented reality,” Computer, vol. 45, no. 7, pp. 26-31, July 2012.
[5] A. Morrison, A. Mullonib, S. Lemmeläc, A. Oulasvirtad, G. Jacuccid,
P. Peltonene, D. Schmalstieg and H. Regenbrechtf, “Collaborative use
of mobile augmented reality with paper maps,” Computers & Graphics,
vol. 35, no. 4, pp. 789-799, August 2011.
[6] X. Wang, P. Love, M. Kim and W. Wang, “Mutual awareness in
collaborative design: An augmented reality integrated telepresence
system,” Computers in Industry, vol. 65, no. 2, pp. 314-324, February
2014.
[7] T. Siu and V. Herskovic, “Mobile augmented reality and contextawareness for firefighters,” IEEE Latin America Transactions, vol. 12,
no. 1, pp. 42-47, January 2014.
[8] A. Mossel, C. Schönauer, G. Gerstweiler and H. Kaufmann, “Artificeaugmented reality framework for distributed collaboration,” The
International Journal of Virtual Reality, vol. 11, no. 3, pp. 1-7, 2012.
[9] H. Kato and M. Billinghurst, “Marker tracking and HMD calibration for
a video-based augmented reality conferencing system,” 2nd IEEE and
ACM International Workshop on Augmented Reality (IWAR), San
Francisco, California, USA, pp. 85-94, October 1999.
[10] M. Fiala, “ARTag, a fiducial marker system using digital techniques,”
IEEE Computer Society Conference on Computer Vision and Pattern
Recognition (CVPR), San Diego, California, USA, vol. 2, pp. 590-596,
June 2005.
[11] R. Muñoz-Salinas, “ArUco: A minimal library for augmented reality
applications based on OpenCV,” Technical Report, University of
Córdoba, Spain, 2012.
[12] D. Schmalstieg and D. Wagner, “Mobile phones as a platform for
augmented reality,” IEEE Virtual Reality (VR) Conference, Reno,
Nevada, USA, pp. 1-2, March 2008.
[13] D. Schmalstieg, A. Fuhrmann, G. Hesina, Z. Szalavári, L. M.
Encarnaçao, M. Gervautz and W. Purgathofer, “The studierstube
augmented reality project,” Presence: Teleoperators and Virtual
Environments, vol. 11, no. 1, pp. 33-54, February 2002.
[14] B. MacIntyre, M. Gandy, S. Dow and J. D. Bolter, “DART: A toolkit for
rapid design exploration of augmented reality experiences,” 17th annual
ACM Symposium on User Interface Software and Technology (UIST),
Santa Fe, New Mexico, USA, pp. 197-206, October 2005.
[15] A. Miroslav and A. Petrovski, “Interactive collaborative augmented
reality using a distributed scene graph on mobile phones,” Ms.C. Thesis,
Linkoping University, Sweden, June 2006.
[16] S. Hartmut, J. Looser and M. Billinghurst, “ComposAR: An intuitive
tool for authoring AR applications,” 7th IEEE/ACM International
Symposium on Mixed and Augmented Reality (ISMAR), Cambridge,
United Kingdom, pp. 177-178, September 2008.
[17] A. MacWilliams, T. Reicher, G. Klinker and B. Bruegge, “Design
patterns for augmented reality systems,” International Workshop
Exploring the Design and Engineering of Mixed Reality Systems
(MIXER), Funchal, Madeira Island, pp. 1-8, January 2004.
[18] Unity, “Unity - Game Engine,” Unity, [Online]. Available:
http://www.unity3d.com. [Accessed 5 08 2013].
[19] Qualcomm, “Augmented Reality (Vuforia) - Mobile Technologies Qualcomm Developer Network,” QDevNet, [Online]. Available:
https://developer.qualcomm.com/mobile-development/mobiletechnologies/augmented-reality. [Accessed 15 08 2013].
[20] E. Ortman and K. Swedlund, “Guidelines for user interactions in mobile
augmented reality,” Ms.C. Thesis, Umeå University, Sweden, November
2012.
Ramón Barraza was born in Ciudad Juárez, Chihuahua,
México on August 31, 1981. He received the B. S. degree in
computer science from Instituto Tecnológico de Ciudad
Juárez in 2003, and the M. Sc. degree in computer science
from Instituto Tecnológico de Hermosillo, in 2009.
Currently, Ramón Barraza is a Ph.D. student on engineering
sciences at Universidad Autónoma de Ciudad Juárez.
Additionally, he serves as a professor at Instituto Tecnológico de Ciudad
Juárez. His current research interest includes software engineering, augmented
reality and mobile computing.
Osslan Vergara was born in Cuernavaca, Morelos, México
on july 3, 1977. He earned the B.S. degree in computer
engineering from the Instituto Tecnológico de Zacatepec,
México, in 2000; the M. Sc. in computer science at the
Center of Research and Technological Development
(CENIDET) in 2003; and the Ph.D. degree in computer
science from CENIDET in 2006. He currently serves as a
professor at the Autonomous University of Ciudad Juárez, Chihuahua,
México. He is a senior member of the IEEE Computer Society since 2012.
His fields of interest includes pattern recognition, digital image processing,
augmented reality and mechatronics.
Vianey Cruz was born in Cárdenas, Tabasco, México, on
September 14, 1978. She earned the B.S. degree in
computer engineering from the Instituto Tecnológico de
Cerro Azul, México, in 2000; the M.Sc. degree in computer
science at the Center of Research and Technological
Development (CENIDET) in 2004; and the Ph.D. degree in
computer science from CENIDET in 2010. She currently
serves as a professor at the Autonomous University of
Ciudad Juarez, Chihuahua, México. She is a member of the IEEE Computer
Society. Her fields of interest include neuro symbolic hybrid systems, digital
image processing, knowledge representation, artificial neural networks and
augmented reality.
Descargar