Diseño de una Aplicación basada en Realidad Aumentada para el Centro Histórico de Quito Betsabe Simbaña, Darwin Alulema, Christian Vega, Derlin Morocho Universidad de las Fuerzas Armadas - ESPE bisimbana@espe.edu.ec, doalulema@espe.edu.ec, cnvega@espe.edu.ec, dmorocho@espe.edu.ec Abstract El proyecto desarrolla una aplicación de realidad aumentada para dispositivos móviles, la cual muestra al usuario datos e información de los edificios patrimoniales del centro histórico de Quito, y de esa manera ser una herramienta útil para los turistas en la ciudad. La aplicación es compatible con dispositivos a partir de la versión 3.0 Honeycomb y se desarrolló en lenguaje JAVA y HTML, la obtención de información se hace a través de la consulta a una base de datos por medio de un servicio web y para la realidad aumentada se utilizó el SDK Wikitude, debido a que permite el desarrollo de aplicaciones basadas en geolocalización y beneficios como licencia estudiantil. Se desarrolló las interfaces en los lenguajes de programación JavaScript y HTML. Finalmente, se realizó una serie de pruebas para validar las funciones de la aplicación tanto en la memoria, consumo de datos y Wi-Fi 1. Introducción Siendo Quito la capital del Ecuador donde lo clásico y tradicional se mezcla con la modernidad e innovación, hacen que Quito busque convertirse en una Smart City cada vez más enfocada a la tecnología. El uso de aplicaciones de geolocalización y realidad aumentada permitirán a las personas interactuar en tiempo real con su entorno físico. La aplicación sirve de ayuda a los turistas que se encuentran en la ciudad de Quito, mediante la presentación en realidad aumentada de la información más relevante de las edificaciones de su centro histórico, disponible para dispositivos a partir de la versión 3.0. 1.1. Realidad Aumentada La realidad aumentada (RA) es una nueva manera de interactuar con el mundo físico (o real). Esta crea una versión modificada de la realidad que se observa, enriquecida con la información digital (o virtual) en la pantalla de la computadora de escritorio o de un teléfono móvil. [1] La principal diferencia con la realidad virtual, en un concepto mucho más extendido, es que no sustituye la realidad física, sino que superpone la información digital en tiempo real al mundo real. Así pues, la realidad aumentada extrae información del entorno convirtiendo lo digital en real. [2] Se puede considerar como realidad aumentada cuando cumple con tres características esenciales: Combinar el mundo real y el mundo virtual. Interactuar en tiempo real. Registrado en 3D. Las diferencias entre realidad aumentada y realidad virtual se presentan en la Tabla 1: Realidad Virtual Realidad Aumentada Diferencias Sustituye de No sustituye la realidad física, manera completa sobreimprime información a la realidad virtual sobre ella. física. Sistema que se genera en tiempo real. Sistema que genera una visión directa o indirecta de un entorno físico en el mundo real. Introduce al No aleja al usuario de la usuario en un realidad e integra con lo digital. ambiente digital. Tabla 1. Diferencias entre realidad aumentada y realidad virtual Se establecen dos tipos de realidad aumentada, la basada en marcadores o imágenes y la basada en posicionamiento o geolocalización. El detalle de cada tipo se describe en la Tabla 2: R. A. BASADA EN MARCADORES R. A. BASADA EN POSICIÓN Usa símbolos impresos Usa la cámara del conocidos como dispositivo móvil, brújula marcadores. y acelerómetro Marcadores se Ubica la posición, altura caracterizan por ser de color negro con blanco y dirección del dispositivo mediante la cámara. El diseño de los Con las coordenadas, la marcadores está aplicación muestra la relacionado con la información virtual. información virtual. La información La información virtual virtual puede ser puede ser imágenes en 3D imágenes en 3D o o vídeos. vídeos. 978-1-4673-9461-1/15/$31.00 2015 IEEE
La cámara del Dispositivo dispositivo móvil necesariamente debe estar enfoca los marcadores conectado a internet. y superpone la información virtual. Tabla 2. Tipos de realidad aumentada 1.2. WIKITUDE Development Kit (SDK) se emplea para desarrollar aplicaciones de realidad aumentada con el que es posible realizar la Geo-AR, reconocimiento de imágenes, tracking y modelado 3D. [3] Wikitude es un SDK de paga que ofrece 5 tipos de licencias, que son: Trial, Lite, Pro, Pro+ y Estudiantil. Además, Wikitude permite la descarga de una librería.jar que contiene el API, ARchitect, a utilizar en el desarrollo de aplicaciones. La Tabla 3 muestra los principales objetos que ofrece el API: OBJETO DESCRIPCIÓN ArchitectObject Es la clase base para cada crear un objeto en el Architect. ArchitectView Permite la encapsulación de la cámara, presenta la superficie y el WebView. Drawable Es la clase base para cualquier representación gráfica de un GeoObject GeoLocation Representa una ubicación en el GeoObject espacio tridimensional de la tierra. Representa una ubicación en el espacio tridimensional de la tierra. ImageDrawable Encapsula una imagen para ser utilizada como representación visual de un ARObject. Location Tabla 3. API WIKITUDE Describe una ubicación general de un punto de interés en la escena aumentada. 1.3. Diseño De La Aplicación Casos de Uso La aplicación está diseñada para trabajar en lugares abiertos con conexión a internet vía datos móviles o Wi- Fi. En la Tabla 4, se muestra una descripción general de las 6 funciones que realiza la aplicación: FUNCIÓN Menú Inicial Generar la Realidad Aumentada Mostrar DESCRIPCIÓN Muestra dos opciones para escoger: Vista de Realidad Aumentada o Ayuda. Genera en la pantalla del dispositivo del usuario la vista de la información virtual. Muestra la información, en un panel 2 Información Virtual Captura de Pantalla Rango Ayuda HTML, de un POI seleccionado. Realiza una foto del enfoque de la cámara y muestra la opción de compartirla en redes sociales, correo electrónico u otro dispositivo. Limita la visibilidad de POIs de acuerdo a un rango en metros. Accede a una lista de los lugares a visitar, direccionamiento para la activación de GPS y una breve descripción de la aplicación. Tabla 4. Descripción general de las funciones de la Aplicación La figura 1 muestra el diagrama de casos de uso que se obtuvo después del análisis de las diferentes funciones. Las clases utilizadas en el desarrollo de la aplicación son JAVA y cada una cumple con funciones específicas, como por ejemplo: manejo de cámara, obtención de licencia, uso de layouts, pantalla de bienvenida, localización, manejo de markers, conexión con el servicio web, creación de panel informativo y de rango, etc. La Tabla 5 muestra el detalle de cada clase: CLASE DESCRIPCIÓN AbstractArchitect Carga el ArchitectView, CamActivity calibra la brújula y maneja los ciclos de vida de los eventos. LocationProvider Maneja de GPS y Proveedor de CamaraGeneral Activity Content FromNative Licencia Ayuda MainActivity Lugares Disponibles ActivarGPS internet Actividad que muestra el enfoque de la cámara. Realiza la conexión con el servicio web para obtener la información de POIs. Contiene la licencia otorgada por Wikitude Muestra al usuario 3 opciones de ayuda en un layout. Muestra el menú inicio. Actividad que muestra el layout con los distintos lugares. Actividad que con un intento dirige a los ajustes del dispositivo. Sobre Actividad que muestra el layout con la descripción. SplashScreen Muestra una pantalla de bienvenida por 3 segundos. Tabla 5. Descripción De Clases
Figura 1. Diagramas de Casos de Uso. En la Figura 2 se presenta el diagrama de clases resumido con sus relaciones, el mismo que se obtuvo de la aplicación ya finalizada. 1.4. Arquitectura La arquitectura de la aplicación fue diseñada para reducir procesos y carga en la memoria de los dispositivos, a continuación se muestra una descripción de los elementos utilizados en el diseño: Servicio Web: Implementado en lenguaje PHP, conecta y consulta a la base de datos. Envía la respuesta a la aplicación, mediante un JSONArray con el número de JSONObject acorde a los registros del de la tabla. Base de Datos: con MySQL se creó la base de datos que tiene una tabla con los siguientes campos: id, nombre, descripción, latitud, longitud y altitud. Web Hosting: Alberga al servicio web y base de datos. CLIENTE La aplicación es el cliente y sus componentes son los siguientes: Capa Negocio: Consta de cada Activity que se presenta al usuario. Capa Presentación: Consta de los layouts de la aplicación donde el usuario podrá interactuar. En la Figura 3, se puede observar los elementos de la arquitectura física de aplicación, como son: la base de datos, servicio web y el cliente. Los dispositivos móviles utilizan el GPS y una conexión a internet tipo Datos Móviles o Wi-Fi: Figura 2. Diagramas de Clases. SERVIDOR Se encuentra integrado por un servicio web y una base de datos, este se encuentra alojado en un web hosting. 3
Figura 3. Diagramas de Clases. 2. Diseño 2.1. Menú Inicio La interfaz está diseñada con un layout de fondo blanco, con dos botones: el primero para la opción de realidad aumentada, que incluye texto y se encuentra centrado en la parte inferior de la pantalla y el segundo es un small button, para la opción de ayuda que incluye una imagen con el signo de interrogación, además de un ImageView, que se encuentra en la parte superior de la pantalla, en donde, se ubica el logo de la aplicación. La figura 4 muestra la interfaz presentada al usuario: Figura 5. Vista en Realidad Aumentada. Detalles: Panel desarrollado en lenguaje HTML con la información de cada POI obtenido de la base de datos. La siguiente figura muestra el panel: Figura 4. Menú Inicio. 2.2. Vista en Realidad Aumentada La interfaz muestra la vista en realidad aumentada con un panel de detalles de cada punto de interés, un panel de rango de visibilidad y un botón para la captura de pantalla. Fue diseñada en lenguaje HTML y sus elementos son: un botón informativo que se encuentra centrado en la parte inferior de la pantalla y en la parte superior se encuentra una barra con las opciones de Captura y Rango, que son representados con dos botones. La figura 7 muestra el diseño de la interfaz: Figura 6. Panel Detalles 2.3. Ayuda Función que ofrece tres opciones que son: lugares disponibles, activar GPS y una descripción de la aplicación. Interfaz implementada en lenguaje y consta de tres botones para cada opción, tal como lo muestra la figura 7: Figura 7. Interfaz Ayuda 4 Lugares Disponibles: consta de TextView con los
nombres de las edificaciones disponibles. Sobre Quito Visión+: cuenta con un ImageView, en donde se muestra la descripción de la aplicación. Activar GPS: redirige a los ajustes propios del teléfono. 3. Resultados Las pruebas se realizaron en el centro histórico de Quito con diferentes dispositivos: Samsung S3 Mini, Samsung S5 y Xperia Play. Las principales diferencias de cada dispositivo son: versión, dimensiones de pantalla, resolución de cámara principal, memoria y procesador. La Tabla 6 muestra las características de cada dispositivo: Dispositivo Samsung s3 Samsung Xperia play Versión mini V4.1.2 Jelly Bean s5 V4.4.2 KitKat V2.3.3 Gingerbread Resolución 5MP 16MP 5MP cámara Pantalla 4 5 4 Procesador 1GHz 2.5GHz 1GHz RAM Tabla 6. Especificación de Características A continuación, la Tabla 7 con los resultados de cada función en los diferentes dispositivos móviles utilizados: Samsung s3 mini Samsung s5 Xperia play Menú inicio Vista en realidad aumentada Detalles Captura Rango 3 opciones de ayuda Tabla 7. Resultado las Funciones de Acuerdo a los Dispositivos Según los resultados presentados en la Tabla 7, el dispositivo Sony Xperia Play no permite mostrar los detalles de cada POI, debido a que la aplicación realiza una conexión a internet con la clase AsyncTask. El uso de la clase AsyncTask es obligatorio a partir de la versión 3.0 de. Por ese motivo, teléfonos con versiones inferiores a la 3.0 no podrán hacer uso de la aplicación. Ya que no sabrán cómo manejar las conexiones a internet con AsyncTask. 3.1. Memoria Para conocer los valores del uso de la memoria RAM se dejó funcionando la aplicación por 3 minutos y con la aplicación 3C Toolbox, se encontró el valor promedio del uso de la memoria. La figura 8 muestra las barras 5 comparativas del uso de la memoria RAM en los dispositivos de prueba: Figura 8. Uso de la Memoria RAM El uso real de la aplicación, en el Samsung S5 es de 124,96, en el Samsung S3 mini el uso real es de 68,75 y en el Xperia Play su uso real es de 25,54 en un día. El valor obtenido en el Xperia Play es solo del uso de la función Ayuda y no de la vista en realidad aumentada ya que el dispositivo no soporta AsyncTask. En los dispositivos restantes el valor es debido al uso de la cámara y los diferentes tipos de conexiones a internet, además del uso de los sensores. 4. Consumo de Datos Móviles Para probar el uso de datos, se dejó en operación la aplicación durante 10 minutos, en un lugar abierto y utilizando todas sus funciones. La prueba se realizó con la ayuda de la opción Uso de Datos propia de y con la aplicación My Data Manager, que permiten conocer el consumo de datos y Wi-Fi por aplicación. La figura 9, muestra las barras comparativas de los resultados de los diferentes valores del consumo de datos en los tres dispositivos de prueba: Figura 9. Uso de la Memoria RAM Uso de Datos Móviles Los datos obtenidos del consumo de datos móviles de la aplicación en primer plano en el Samsung S3 Mini es de 111KB, en el Samsung S5 los datos consumidos son de 109KB y en el dispositivo Xperia Play no hace uso de los datos móviles, debido a que no puede realizar una
conexión a internet con la clase AsyncTask. 5. Conclusiones La función, Vista, en Realidad Aumentada, no tiene una precisión del 100% (que porcentaje tiene, si no es el 100%) debido a que existe un desplazamiento en la colocación de los POI-Markers, causado por motivos como: fabricación de los dispositivos, tipo de conexión a internet o condiciones climatológicas. En el mercado existen varios SDKs para realidad aumentada y tras un análisis, Wikitude fue la opción escogida para realizar la aplicación, por ser multiplataforma, tracking por GPS y marcadores, lenguaje de programación Java, desarrollo de mundos en lenguaje HTML y JavaScript. La aplicación utiliza la clase AsyncTask, la cual crea un segundo hilo para el manejo de conexiones a internet, por ello la versión mínima para utilizar la aplicación es la 3.0 Honeycomb, no tomando en cuenta que la versión mínima para desarrollar aplicaciones con Wikitude es la 2.3.3 Gingerbread porque dicha versión no soporta la clase AsyncTask. Existe demora en el momento de cargar información, debido a la condición climática y las características de cada dispositivo. Por ello, la aplicación debe ser utilizada en lugares abiertos. Referencias [1] J. Grubert y R. Dr Grasset, Augmented Reality for Application Development, Birmingham, UK: Packt Publishing Ldt., 2013. [2] Minetur, «Chaval.es,» Secretarí a de Estado de Telecomunicaciones y para la Sociedad de la Información, 17 Noviembre 2013. [En línea]. Available: http://www.chaval.es/chavales/enterate/nuevosusos/%c2%bfque-es-la-realidad-aumentada. [Último acceso: 24 Abril 2014]. [3] Wikitude, «Wikitude,» 9 Juilio 2014. [En línea]. Available: http://www.wikitude.com/about/jobs-career/. [Último acceso: 9 Julio 2014]. [4] Universidad Carlos III De Madrid, «Software de Comunicaciones,» 2012. [En línea]. Available: https://sites.google.com/site/swcuc3m/home/android/genera lidades/dalvikvm-1. [Último acceso: 19 Junio 2014]. [5] Business Wire, «Wikitude and Optinvent Show True Augmented Reality Glasses Experience» 18 Septiembre 2013. [En línea]. Available: http://www.businesswire.com/news/home/20130918005578 /en/wikitude-optinvent-show-true-augmented-reality- Glasses#.VFu4STSG9qU. 6