CÓRDOBA AUMENTADA Sistema de Realidad
Transcripción
CÓRDOBA AUMENTADA Sistema de Realidad
TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA CÓRDOBA AUMENTADA Sistema de Realidad Aumentada aplicado a la Ciudad de Córdoba, Argentina __________________________________________ Trabajo de Especialización en Ingeniería en Sistemas de Información Ignacio Cano [email protected] 2011 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Agradecimientos Al Dr. Mario A. Groppo, por su gran colaboración y ayuda para mejorar el presente. 1 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Dedicatorias A mi gran amigo Agustín, que en paz descanses titán. A Laura, el amor de vida. 2 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Resumen El presente trabajo, requisito para la finalización de la Especialización en Ingeniería en Sistemas de Información, propone el desarrollo de un prototipo de Realidad Aumentada con la plataforma Layar1, que añada meta información a determinados puntos de interés de la ciudad de Córdoba, Argentina, para mejorar la experiencia de los usuarios al momento de recorrer la mencionada localidad. A lo largo del trabajo, se introducirán los conceptos relacionados al campo de la Realidad Aumentada, conocido comúnmente como Augmented Reality, sus características principales y usos más frecuentes. También se describirán las diversas tecnologías necesarias para la creación del prototipo, se incluirá fundamentación y descripción de las elegidas para la elaboración del sistema. En base a los análisis previos, se procederá al diseño y construcción de una prueba de concepto que permitirá crear una “Córdoba Aumentada”. 1 Navegador de Realidad Aumentada disponible en distintas plataformas móviles, como Android, IPhone. Se puede obtener información adicional de este framework en http://www.layar.com 3 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Tabla de Contenidos Introducción ................................................................................................................................... 6 Marco Teórico ................................................................................................................................ 7 Realidad Aumentada ............................................................................................................................... 7 Reseña Histórica .................................................................................................................................. 8 Dominios de Aplicación ...................................................................................................................... 9 Objetivos y Justificación .............................................................................................................. 13 EcoTurismo ............................................................................................................................................ 13 Importancia de la Realidad Aumentada .............................................................................................. 14 Aplicaciones Sensibles a la Localización.............................................................................................. 16 Aplicaciones Móviles ............................................................................................................................. 16 Alternativas de Solución ............................................................................................................. 17 Diseño e Implementación ........................................................................................................... 18 Arquitectura de la Plataforma Layar ................................................................................................... 19 Diseño de Alto Nivel .............................................................................................................................. 20 Diagrama de Paquetes....................................................................................................................... 20 Casos de Uso ...................................................................................................................................... 21 Diseño de Bajo Nivel ............................................................................................................................. 24 Cálculo de Distancia – Fórmula de Haversine ..................................................................................... 25 Tecnologías y Frameworks Utilizados ................................................................................................. 25 Análisis de Costos Indicativo ................................................................................................................ 26 Capturas de Pantalla del Prototipo ...................................................................................................... 27 Conclusiones ................................................................................................................................ 31 Trabajos Futuros ......................................................................................................................... 32 Bibliografía................................................................................................................................... 33 Apéndices ..................................................................................................................................... 36 Apéndice A: Diagrama de Clases .......................................................................................................... 36 Apéndice B: Diagrama de Secuencia .................................................................................................... 37 Apéndice C: Snippets de Código ........................................................................................................... 38 4 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Tabla de Figuras Figura 1: Realidad-Virtualidad de Milgran .................................................................................................... 8 Figura 2: Cirugías guiadas por imágenes....................................................................................................... 9 Figura 3: ARQuake....................................................................................................................................... 10 Figura 4: Aplicaciones militares .................................................................................................................. 10 Figura 5: Reconstrucciones de entorno utilizando robots con RA [Stilman, 2005] .................................... 11 Figura 6: Realidad aumentada en BMW y Boeing ...................................................................................... 11 Figura 7: Aplicaciones de consumo............................................................................................................. 12 Figura 8: Magic Book y sus aplicaciones en materias de ciencias sociales ................................................. 12 Figura 9: Aplicación para la enseñanza de geometría basada en la plataforma Studierstube ................... 12 Figura 10: Actividades de turistas en su visita a la ciudad de Córdoba ...................................................... 13 Figura 11: Gartner Hype Cycle general ....................................................................................................... 14 Figura 12: Gartner Hype Cycle 2010 ........................................................................................................... 15 Figura 13: Requerimientos del Smartphone ............................................................................................... 18 Figura 14: Arquitectura de la Plataforma Layar .......................................................................................... 19 Figura 15: Diagrama de Paquetes ............................................................................................................... 20 Figura 16: Diagrama de Casos de Uso ......................................................................................................... 21 Figura 17: Fórmula Haversine ..................................................................................................................... 25 Figura 18: Pantalla inicial ............................................................................................................................ 27 Figura 19: Imagen del Buen Pastor y de la Catedral ................................................................................... 28 Figura 20: Más Información de la Catedral de Córdoba ............................................................................. 29 Figura 21: Vista lejana y cercana del POI UTN ............................................................................................ 30 Figura 22: Lista de Acciones de UTN y Ejecución de Llamar UTN ............................................................... 30 Figura 23: Diagrama de Clases .................................................................................................................... 36 Figura 24: Diagrama de Secuencia Caso Feliz ............................................................................................. 37 Figura 25: Implementación de la Interfaz RESTful getPois ......................................................................... 38 Figura 26: Snippets de los POJOs Poi y PoiAction ....................................................................................... 39 5 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Introducción Cada objeto o lugar tiene una historia o contexto. Hacer disponible ese contenido a individuos que interactúan con esos sitios o cosas provee una experiencia más enriquecedora al usuario [Educause, 2005]. De la misma manera, Sinclair afirma que contar con información sobre el entorno que nos rodea influye en la percepción de las personas, les permite comprender más profundamente la historia de los lugares que visitan, lo que termina impactando en la experiencia de usuario [Sinclair, 2000]. El Ecoturismo es un enfoque para las actividades turísticas en el que se privilegia, entre otras cosas, el interés cultural por el medio [Wood, 2002]. Sinclair, al igual que Wood, dos refentes en el área, afirman que el “eco turista” es una persona que no sólo quiere contemplar sectores naturales o culturas diferentes, sino más bien, es alguien que prefiere aprender tanto como pueda de los lugares que visita para así poder sacar un mayor provecho y obtener una mejor apreciación. Alegan que la satisfacción de este tipo de turistas depende en gran medida de la información suministrada por los guías turísticos al momento de hacer las visitas. Sin embargo, muchas personas no cuentan con los recursos necesarios para contratar tours guiados. El trabajo final aquí propuesto, motivado por lo antepuesto, propone el desarrollo de un sistema de Realidad Aumentada que permita al usuario contar con información del entorno a la hora de recorrer la ciudad de Córdoba, Argentina, sin necesidad de contratar los servicios turísticos de alguna empresa. El prototipo consistirá en un sistema distribuido con arquitectura cliente-servidor basado en la plataforma Layar. El cliente Layar correrá en un celular con sistema operativo Android 2.x y enviará información de localización (latitud, longitud, etc.) al servidor. Éste, recibirá dicha información y consultará a su base de datos para obtener meta información de la ubicación en cuestión, la cual será debidamente codificada en formato JSON2 y enviada nuevamente al cliente para su visualización (la información se verá superpuesta sobre la imagen real). 2 Formato ligero para el intercambio de datos, el cual es un subconjunto de la notación literal de objetos de Javascript. Se puede obtener información adicional accediendo a http://www.json.org/ 6 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Marco Teórico A continuación se define el marco teórico que servirá de respaldo conceptual a la implementación del prototipo. Cabe destacar que no se pretende realizar un desarrollo exhaustivo de las disciplinas relacionadas, sino más bien una reducida introducción al marco de trabajo indispensable para el desarrollo del prototipo. Realidad Aumentada Un sistema de realidad aumentada es aquel que crea una vista de una escena real incorporando objetos virtuales generados por computadora, ya sean 2D o 3D. A medida que el usuario de dichos sistemas se mueve alrededor de la escena real, los objetos virtuales aparecen como si efectivamente existieran en la escena real. Idealmente, los objetos virtuales deben interactuar naturalmente con el usuario y los objetos reales [Vallino, 1998]. La realidad aumentada proporciona una vista compuesta al usuario, que resulta de la combinación de una escena real vista por el usuario y una escena virtual generada por computadora que añade al ambiente real información adicional [Rozier, 1999]; superpone un mundo virtual sobre el mundo real [Avery, 2008]. A diferencia de la realidad virtual, la realidad aumentada no crea una simulación de la realidad, sino que toma un objeto o espacio real como base e incorpora tecnologías que agregan datos contextuales para mejorar la comprensión del sujeto en cuestión [Educause, 2005]. La realidad virtual permite la inmersión del usuario en el mundo artificial que sustituye completamente al mundo real del usuario; mientras que la realidad aumentada mantiene el mundo real del usuario enriqueciéndolo con la presencia de elementos virtuales [Jordá, 2006]. Milgram [Milgram, 1994] describe una taxonomía que identifica como se relacionan la realidad aumentada y la realidad virtual. Esta relación se ilustra en la Figura 1. 7 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 1: Realidad-Virtualidad de Milgran Reseña Histórica Dan Sung [Sung, 2011] escribió un artículo muy interesante sobre la historia de la Realidad Aumentada. A continuación, ddetallo algunas de las ideas fundamentales: fundamentales Se considera que la RA tuvo sus comienzos allá por eell año 1962, cuando Morton Heilig Heili creó y patentó tentó un simulador llamado “Sensorama” [Heilig, 1962],, el cual contaba con efectos visuales, sonidos, oloress y vibración. Hacia el año 1968 1968,, Ivan Sutherland inventó un casco visor al que consideró una puerta al mundo virtual [Sutherland, 1968].. Diversas invenciones in le sucedieron. En el año 1992, Tom Caudell y David Mizell, dos ingenieros de la Boeing propusieron por primera vez el término Realidad Aumentada cuando se encontraban ayudando a armar una aeronave. El término se refería a superponer material gene generado rado por computadora sobre el mundo real [Caudell, 1992]. En el 99, Hirokazu Kato y Mark Billinghurst crean ARToolKit3, una librería para crear aplicaciones de realidad aumentada. En 2009 este framework fue portado a Adobe Flash (FLARToolKit), incorporando la realidad aumentada al browser. En la actualidad, diversos proyectos de investigación se están llevando a cabo en prestigiosas universidades alrededor del mundo, tales como MIT, con su proyecto SixthSense4 presentado recientemente en las conferencias TE TED, D, Carnegie Mellon, con su proyecto 5 MagicEye , Columbia, Delf University, etc. 3 Librería para la creación de aplicaciones de Realid Realidad ad Aumentada. Para más información dirigirse a http://www.hitl.washington.edu/artoolkit/ 4 Interfaz gestual que aumenta la información del mundo físico con información digita digital.l. Para más información dirigirse a http://www.pranavmistry.com/projects/sixthsense/ 5 Proyecto oyecto para desarrollar sistemas de Realidad Aumentada basados en visión computacional. Para más información dirigirse a http://www.cs.cmu.edu/afs/cs/user/mue/www/magiceye.html 8 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Dominios de Aplicación En su tesis de doctorado, James Vallino [Vallino, 1998] propone áreas de aplicación de realidad aumentada que van desde entretenimiento a entrenamien entrenamiento to militar, pasando por campos medicinales,, robótica, manufactura, etc. A continuación, se hará una breve reseña sobre estos dominios de aplicación. Medicina Este campo es visto como uno de los más importantes para sistemas de realidad aumentada. Esta tecnología permite realizar cirugías guiadas por imágenes imágenes, superponiendo en tiempo real la reconstrucción 3D de las estructuras internas del paciente sobre la imagen de video del mismo [MIT, 1999]. Figura 2: Cirugías guiadas por imágenes Entretenimiento Existen xisten varias aplicaciones de realidad aumentada dedicadas al entretenimiento. Un clásico ejemplo es el proyecto ARQuake6 del Wearable Computer Lab, versión de RA del popular juego Quake, en donde los jugadores enfrentan monstruos vi virtuales rtuales en el mundo real. Sin embargo, Avery afirma que el hardware disponible para crear juegos de realidad aumentada es aún demasiado costoso para ser usado en productos para el consumidor final [Avery, 2005]. 2005] 6 Sistema interactivo de Realidad Aumentada. Para obtener más información se puede acceder a http://wearables.unisa.edu.au/projects/arquake/ 9 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 3: ARQuake Militar Los militares utilizan esta tecnología en diversas áreas, proyectando información en el parabrisas del avión o el visor del casco del piloto piloto, generando marcas de referencia en imágenes de reconocimiento aéreo,, dotando a soldados de infantería con equipamiento para la visualización de objetos sospechosos [Urban, 1995] 1995]. Figura 4: Aplicaciones militares Robótica En el dominio de la robótica y tele robótica robótica, pantallas de realidad aumentada asisten al usuario del sistema [Milgram, 1993]. Una tele operadora de un robot utiliza la imagen aumentada del lugar remoto para poder guiarlo. 10 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 5:: Reconstrucciones de entorno utilizando robots con RA [Stilman, 2005] Manufactura, Mantenimiento y Reparac Reparación Cuando un técnico de mantenimiento se acerca a un nuevo equipo, en vez de abrir manuales de reparación, se pone anteojos de realidad aumentada, los cuales muestran muestra imágenes del dispositivo con anotaciones e información pertinente a la reparación (como se ilustra en la Figura 6). Cabe destacar que uno no de los pioneros en incorporar sistemas de realidad aumentada en sus actividades de manufactura y mantenimiento fue la Boeing de la mano de Tom Caudell [Caudell, 1994]. Figura 6: Realidad aumentada en BMW y Boeing Aplicaciones de Consumo Diversas industrias se nutren de las ventajas de la realidad aumentada. En la industria de la moda, un usuario puede utilizarr estos sistemas para probarse ropa online antes de efectuar la compra [Kuang, 2009]. Enn la industria turística, se está comenzando a utilizar para aumentar la información de puntos históricos de ciudades [Lucier, 2009]. El marketing es un área en el que qu la publicidad basada en realidadd aumentada está cobrado gran impulso [Ewen, 2011]. 2011] 11 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 7: Aplicaciones de consumo Educación Basogain, Olabe et al. en su trabajo sobre realidad aumentada en la educación [Basogain, 2007], 2007] enumeran ejemplos de aplicaciones act actuales como Magic Book,, en donde el alumno lee un libro real a través de un visualizador de mano y ve sobre las páginas reales contenidos virtuales, virtuales como se ilustra en la Figura 8. Figura 8: Magic Book y sus aplicaciones en materias de ciencias sociales Instituciones de la talla del MIT y Harvard han desarrollado aplicaciones para la enseñanza de conceptos de ingeniería mecánica, la enseñanza de matemáticas y la enseñanza de la geometría, geometría como se muestra en la Figura 9. Figura 9: Aplicación para la eenseñanza de geometría basada en la plataforma Studierstube 12 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Objetivos y Justificación Como se menciona en la introduccción, el objetivo de este trabajo es diseñar e implementar un prototipo de Realidad Aumentada que permita a los turistas obtener información adicional de determinados lugares de la ciudad de Córdoba, brindando así una mejor experiencia de usuario, sin coste alguno. Dicho objetivo abarca grandes temas de la actualidad, el ecoturismo, la realidad aumentada, aplicaciones móviles iles y aplicaciones sensibles a la localización localización. Considero que la l importancia de cada área y la relación que aquí se propone, justifican la realización ización del prototipo que ofrecerá una nueva forma de hacer turismo turismo. EcoTurismo El ecoturismo es el sector con m mayor crecimiento de la industria de servicios más grande del mundo, el turismo.. Muchos países en vías de desarrollo están tratando de monetizar monetiza la gran demanda por esta nueva tendencia en los viajes [Dasenbrock, 2002]. El gobierno de la ciudad iudad de Córdoba suele publicar encuestas a turistas que visitan la ciudad. La Figura 10 muestra las actividades que rrealizaron los visitantes durante su estadía7. Figura 10:: Actividades de turistas en su visita a la ciudad de Córdoba 7 Datos correspondientes a Enero-Febrero Febrero 2007, extraídos dos de la página oficial de la ciudad de Córdoba: http://www.cordoba.gov.ar 13 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Del gráfico, notamos que un 88,9% o 78,4% de turistas extranjeros y nacionales respectivamente se interesaron en pasear por la ciudad. Como omo se mencionó anteriormente, uno de los pilares del el ecoturismo hace hincapié en el interés cultural por el medio [Wood, 2002] 2002]. Mediante laa utilización del prototipo, prototipo los turistas podrán pasear por la ciudad de una manera diferente diferente, sin visitas guiadas ni libros turísticos, sólo con un celular con conexión a internet. Importancia de la Realidad Aumentada Esta sección pretende evidenciar la importancia que tiene hoy en día la realidad aumentada. Para ello, nos basaremos en estudios de la compañía Gartner, líder mundial en asesoramiento tecnológico. El Gartner Hype Cycle es una representación gráfica de la madurez y el grado de adopción de tecnologías y aplicaciones; prove provee una vista de cómo una tecnología o aplicación puede evolucionar nar a través del tiempo [GartnerHC, 2011]. Diversas empresas utilizan este gráfico para comprender las promesas y riesgos que ofrecen las tecnologías emergentes en el contexto de sus industrias. A continuación, describo el Gartner Hype Cycle con información obtenida obtenid de la página 8 oficial de la consultora . Figura 11: Gartner Hype Cycle general 8 Gartner es la empresa líder der mundial en consultoría de IT. Para obtener más información de la consultora se puede acceder a la página http://www.gartner.com/technology/home.jsp 14 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA La Figura 11 muestra el gráfico con 5 áreas bien diferenciadas: - Disparador Tecnológico: Pruebas de concepto e interés de los medios disparan un potencial boom tecnológico.. A esta altura los pproductos oductos no son generalmente usables ni comercialmente viables. - Pico de Expectativas Infladas Infladas: La publicidad produce varias victorias. Algunas empresas intervienen, otras no. - Desilusión: El interés decrece a medida que los experimentos e implementaciones fallan. fallan Algunos productores de la tecnología se apartan, los inversores continúan an sólo si los proveedores sobrevivientes mejoran sus productos productos. - Rampa de Iluminación: Se descubren nuevas formas de obtener beneficios a partir de la tecnología. Aparecen productos de segunda y tercera generación generación,, más compañías invierten en pruebas piloto, mientras que las más conservadoras se mantienen en alerta. - Meseta de Productividad: La adopción masiva empieza a despegar. Las dudas se disiparon y el consumidor final comienza a dar sus frutos. En la Figura 12 se muestra el ciclo de Gartner de 2010 donde la Realidad Aumentada se sitúa entre el área de Disparador Tecnológico y el de Pico de Expectativas Infladas. Infladas Figura 12: Gartner Hype Cycle 2010 Esta información no sólo evidencia a la Realidad Aumentada como un boom tecnológico sino que recalca su importancia ia y vigencia como tecnología innovadora. 15 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Aplicaciones Sensibles a la Localización Hacia fines de 2011, más del 75% de los dispositivos moviles fabricados incluirán GPS. Éste será el principal medio para determinar la localización del handset. ID de celdas y Wi-Fi seguirán utilizándose en aquellas situaciones en que el GPS no esté disponible. La popularidad de location-aware handsets permitirá crear una amplia gama de aplicaciones sensibles a la localización, y servirán como base para más sofisticadas aplicaciones sensibles al contexto en el futuro. Sin embargo, las organizaciones estarán sujetas a las leyes locales, y deberán asegurar que cada location-aware application que realicen actúen conforme a la ley [GartnerMO, 2010]. Gartner también predice que para el 2013, más de la mitad de las compañías Fortune 500 tendrán sistemas de computación sensibles al contexto. Context-aware Computing se centra en el concepto de usar información del usuario final, de su entorno, localización, preferencias, para mejorar la interacción con el mismo. A su vez, afirma que para fines de 2016, un tercio del mercado de marketing mundial de celulares será basado en el contexto [GartnerST, 2010]. Aplicaciones Móviles La venta de smartphones a nivel mundial alcanzará 468 millones de unidades en 2011, un 57,7% más que en 2010, según Gartner Inc. Hacia fines de 2011, Android se convertirá en el OS más popular y tendrá un 49% del mercado de smartphones para el 2012, brindando un entorno ideal para la convergencia de la movilidad y la Web [GartnerAN, 2011]. La experiencia del usuario en estos dispositivos, de los que se puede obtener información de localización, movimiento y contexto, está llevando a los clientes a interactuar con las compañías preferentemente a través de ellos. Todo esto ha permitido el desarrollo de aplicaciones móviles como una herramienta competitiva para mejorar las relaciones y obtener ventaja sobre competidores cuyas interfaces son puramente basadas en el browser [GartnerST, 2010]. 16 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Alternativas de Solución En la actualidad, exiten varias frameworks para desarrollar aplicaciones móviles de Realidad Aumentada, entre los que se pueden destacar Wikitude9 y Layar. Como todavía no existe un estándar de facto, ambas compañías están tratando de imponer los suyos. A fines de 2009, Wikitude definió ARML (Augmented Reality Markup Language) v1.0, un lenguage descriptivo, basado en XML, para mapear POIs a sus metadatos. En Septiembre del presente año, se reunirá el Open Geospatial Consortium (OCG) para la formación del OCG ARML 2.0 Standars Working Group (SWG). La idea de este grupo es expandir la definición de ARML 1.0 en varios aspectos, como ser, habilitando la modificación dinámica de propiedades, manejo de eventos, visualizaciones 3D, entre otros10. Por su parte, Layar, el pionero en este segmento, utiliza un formato JSON propietario más light-weight que ARML, que ya cuenta con la mayoría de las mejoras que propone el ARML 2.0. Provee una infraestructura simple para el desarrollador, en la que varias aspectos aparecen resueltos (ver más detalles en la sección Arquitectura de la Plataforma Layar). Otra alternativa es ARToolkit, una librería multiplataforma que permite crear objetos virtuales 3D en marcas reales utilizando algoritmos de visión computacional. Cuenta con una API en C, aunque existen proyectos que lo han portado a Java y Matlab. Para el propósito del presente, si bien es una opción muy interesante, es de más bajo nivel que Wikitude y Layar, por lo que decidí no utilizarlo en pos de favorecer una implementación más rápida. Luego de evaluar los pros y contras de cada alternativa, se eligió utilizar Layar por diversos motivos, pero principalmente por los que se mencionan a continuación: • • • • • • Se pueden crear experiencias de realidad aumentada de una manera simple y económica. Cuenta con una comunidad de más de 9000 desarrolladores, que comparten sus conocimientos y experiencias. Tiene más de 1.5 millones de usuarios activos alrededor del mundo. Provee un entorno de testing. Ofrece una API simple y flexible. Utiliza un protocolo light-weight para la comunicación entre el cliente y servidor. 9 Navegador de Realidad Aumentada disponible en diversas plataformas móviles, que permite crear mundos aumentados. Para más información se puede consultar la página http://www.wikitude.com/ 10 El OCG es un foro que incentiva la creación de un lenguaje de etiquetas para aplicaciones de realidad aumentada. Se puede obtener más detalles en http://www.opengeospatial.org/pressroom/pressreleases/1473 17 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Diseño e Implementación Como se mencionó en la sección anterior, eel prototipo que se desarrolló como parte de este trabajo utiliza la plataforma más popular de Realidad Aumentada dee la actualidad, Layar, la cual cuenta con miles de desarrolladores y capas de contenido, conocidas comúnmente como layers. El Layar Reality Browser es una aplicación móvil de RA disponible para usuarios de smartphones, incluyendo el iPhone y dispositivos Android. Esta plataforma muestra layers de información digital en los celulares de los usuarios. Permite ermite publicar, descubrir y buscar capas de realidad aumentada. En la Figura 13 (extraída de la página oficial de L Layar) se muestran las características que debe poseer el smartphone para poder correr correctamente el Layar Reality Browser. Browser Para el prototipo, las pruebas se realizaron con dos dispositivos Motorola, el Defy, con Android OS 2.1, y el Milestone, con OS Android droid 2.3. Figura 13: Requerimientos del Smartphone 18 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Arquitectura de la Plataforma Layar La arquitectura de esta plataforma consiste en 5 componentes principales, que se aprecian en la Figura 1411. Ellos son: • • • • • Aplicación Layar: Es el cliente en el dispositivo móvil del usuario. Servidor Layar:: Es el corazón de la plataforma, el cual provee las interfaces a la Aplicación Layar, la Plataforma de Aprovisionamiento y los Proveedores de Servicio. Serv Plataforma de Aprovisionamiento Aprovisionamiento: Un sitio web en donde los desarrolladores pueden crear sus cuentas y administrar sus layers. Proveedores de Servicio:: Infraestructura provista por los desarrolladores, en el ejemplo se ilustra una capa de Flickr. Contenidos de las Capas:: Proveen el contenido a la Aplicación Layar.. No necesariamente estan separados de los Proveedores roveedores de Servicio. Figura 14: Arquitectura de la Plataforma Layar 11 La información de arquitectura de Layar se eextrajo xtrajo de la página oficial de la compañía. Para mayor detalle se puede consultar http://layar.pbworks.com/w/page/7783214/Layar%20Platform%20Architecture%20Overview http://layar.pbworks.com/w/page/7783214/Layar%20Platform%20Architecture%20Over 19 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Diseño de Alto Nivel Diagrama de Paquetes Como parte del prototipo, se desarroll desarrollaron los componentes de Proveedores de Servicio y Contenidos de las Capas,, mencionados en la sección anterior anterior. La Figura 15 muestra el diagrama de paquetes del componente implementado. implementa Figura 15: Diagrama de Paquetes com.augmentedcba.ws: Contiene el servicio REST al cual se conecta el servidor Layar. com.augmentedcba.service: Abstrae bstrae la capa de servicio y utiliza los DAOs para obtener información de los puntos ntos de interés en base a los datos recibidos por el web service. com.augmentedcba.service.impl: Contiene la implementación de la capa de servicio. com.augmentedcba.dao: Capa de acceso a datos. com.augmentedcba.dao.impl: Contiene la implementación de la ca capa pa de acceso a datos. com.augmentedcba.model: Contiene los POJOs del modelo, como ser: Poi, PoiAction, GetPoisResponse, etc. com.augmentedcba.exception: Paquete que encapsula las excepciones que maneja el componente. com.augmentedcba.utils: Paquete de uti utilidades.. Se utiliza para hacer el cálculo de distancia, obtener coordenadas decimales GPS, etc. 20 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Casos de Uso La Figura 16 muestra los principales casos de uso identificados del sistema. sistema Figura 16: Diagrama de Casos de Uso Nombre: Buscar Capas Descripción: Permite buscar capas disponibles de acuerdo a diferentes criterios de búsqueda búsqueda. Actores: Usuario del sistema. Precondiciones: 1- El usuario debe poseer un celular con Layar instala instalado. 2- El usuario debe haber abierto la aplicación Layar. Flujo Normal: 1- El usuario selecciona la sección de Capas. 2- El sistema muestra una caja de texto para introducir el nombre de la capa a buscar. También muestra tres botones, Destacados, Populares es y Nuevo. Finalmente muestra una lista de Categorías de Capas para buscar. 21 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA 3- El usuario introduce texto en el TextField y presiona buscar. 4- El sistema muestra todas las capas que contienen el texto buscado. 5- El usuario selecciona una capa. Flujo Alternativo: 3- El usuario selecciona la Categoría “Información Turística”. 4- El sistema muestra todas las capas pertenecientes a la mencionada categoría. Poscondiciones: El sistema muestra la información de la capa buscada. Nombre: Detectar POIs Descripción: Permite detectar los pois cercanos de una capa seleccionada. Actores: Usuario del sistema. Precondiciones: 1- El usuario debe poseer un celular con Layar instalado. 2- El usuario debe haber abierto la aplicación Layar. 3- El usuario ejecutó satisfactoriamente el caso de uso Buscar Capas. Flujo Normal: 1- El usuario ingresa a la capa seleccionada. 2- El sistema prende la cámara de fotos y se contacta con el servidor Layar para detectar pois dentro del rango por defecto (1 km). 3- El sistema encuentra un POI. Flujo Alternativo: 3- El sistema no encuentra un POI dentro del rango por defecto. El sistema informa al usuario del problema. 4- El usuario selecciona “Menú” “Ajustes”. 5- El sistema muestra la pantalla de ajustes de la capa con un indicador para cambiar el rango por defecto. 6- El usuario selecciona el máximo rango que permite la capa y selecciona “Aceptar”. 7- El sistema encuentra un POI. Poscondiciones: El sistema muestra la información del POI encontrado, junto con la acciones que en él se pueden 22 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA ejecutar. Nombre: Ejecutar Acción sobre POI Descripción: Permite ejecutar diversas acciones sobre un POI seleccionado. Actores: Usuario del sistema. Precondiciones: 1- El usuario debe poseer un celular con Layar instalado. 2- El usuario debe haber abierto la aplicación Layar. 3- El usuario ejecutó satisfactoriamente el caso de uso Detectar POIs. 4- El POI encontrado ofrece acciones para ejecutar. Flujo Normal: 1- El usuario visualiza las acciones del POI encontrado. Dicho POI contiene las siguientes acciones: “Más Información”, “Llamar”, “Cómo Llegar”, “Mail”. 2- El usuario selecciona la acción “Más Información”. 3- El sistema abre el browser del equipo y muestra la página web del POI en cuestión. Flujo Alternativo: 2- El usuario selecciona la acción “Cómo Llegar”. 3- El sistema abre la aplicación GoogleMaps del equipo con la ubicación actual y el destino (latitud y longitud del POI). 4- GoogleMaps muestra el trayecto necesario para llegar a destino. Poscondiciones: El usuario pudo ejecutar una acción sobre el POI. Nombre: Compartir POI en Redes Sociales Descripción: Permite compartir información del POI en Facebook o Twitter. Actores: 23 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Usuario del sistema. Precondiciones: 1- El usuario debe poseer un celular con Layar instalado. 2- El usuario debe haber abierto la aplicación Layar. 3- El usuario ejecutó satisfactoriamente el caso de uso Detectar POIs. 4- El usuario debe haberse logueado en Facebook o Twitter a través de Layar. Flujo Normal: 1- El usuario visualiza la información del POI encontrado. 2- El usuario selecciona “Menú” “Acciones de Capa”. 3- El sistema muestra las siguientes acciones de capa: “Capturar Pantalla”, “Compartir”, “Enviar por email”. 4- El usuario selecciona Compartir. 5- El sistema muestra una pantalla en donde se puede ingresar el texto a compartir y dónde compartirlo (Facebook y/o Twitter). 6- El usuario selecciona Facebook y Twitter y luego “Compartir”. Flujo Alternativo: N/A Poscondiciones: El sistema postea en el muro de Facebook y twittea en el Twitter del usuario la información recientemente compartida. Diseño de Bajo Nivel Debido a razones de legibilidad, se incluyeron los Diagramas de Clases y de Secuencia (con diferente formato de página) en los Apéndices A y B respectivamente. Asimismo, el Apéndice C cuenta con dos snippets de código, que forman parte del prototipo implementado. Se incluyeron partes de la interfaz REST12 y de dos POJOs13 del modelo. 12 Representational State Transfer, acrónimo que se utiliza para describir cualquier interfaz web simple que utiliza XML y HTTP, sin las abstracciones adicionales de los protocolos basados en patrones de intercambio de mensajes como el protocolo de servicios web SOAP. 13 Plain Old Java Object, acrónimo utilizado por programadores Java para enfatizar el uso de clases simples y que no dependan de un framework en especial. 24 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Cálculo de Distancia – Fórmula de Haversine Una de las piezas fundamentales de este trabajo es el algoritmo utilizado para el cálculo de distancia entre dos puntos. En base a la latitud y longitud actual, se desea conocer la distancia a un punto conocido (con latitud y longitud conocido) conocido). Para ello se utilizó la Fórmula Haversine: Figura 17: Fórmula Haversine Donde: - haversin es la función haversine: haversin(θ) = sin2(θ/2) = (1−cos(θ))/2 (con θ en radianes) - d es la distancia entre dos puntos (a lo largo de un círculo máximo de la esfera). - R es el radio de la esfera (consideramos a la tierra esférica con un radio de 6.356,78 km). - φ 1 es la latitud del punto 1. - φ 2 es la latitud del punto 2. - ∆ λ es la diferencia de longitud. Mediante operaciones matemáticas matemáticas, se puede obtener la distancia entre la ubicación actual y un determinado POI. Si el rango de búsqueda, configura configurado en el cliente, es mayor que la distancia, se incluye el POI en la respuesta, en caso contrario, se lo omite. Tecnologías y Frameworks Utilizados Para el desarrollo del componente web se utilizaron los siguientes frameworks y tecnologías: Java 6: Lenguaje utilizado para la creación del componente web (war). MySQL: Motor de base de datos utilizado para persistir información de los puntos de interés. 25 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Tomcat 7: Contenedor utilizado para el deployment del war. Maven: Se utilizó como herramienta de building. SVN: Software utilizado para el control de versiones. CXF: Framework open source utilizado para la implementación del servicio RESTful. Log4j: Utilizado para insertar logs en el código. Resultó muy útil para el debugging. Spring: Framework base utilizado en el desarrollo del componente. Se utilizaron diversos módulos, tales como: spring-core, spring-jdbc, spring-beans, spring-context, etc. Ehcache: Utilizado para el caching de los puntos de interés. JAXB: Utilizado para mapear las clases Java a representaciones XML y a formato JSON. Apache-commons: Set de utilidades de la fundación apache utilizado en la validación de parámetros, hashcode builders, equality builders, etc. Análisis de Costos Indicativo Como se puede apreciar en la sección anterior, para el desarrollo del prototipo no se realizaron gastos en Software, se utilizaron solamente frameworks open-source. En cuanto al hosting de la aplicación, se contrató un servidor privado virtual (Virtual Private Server) a la empresa Dattatec14. Dicho servidor cuesta U$S 20 x mes aproximadamente, y ofrece, entre otras cosas, lo siguiente: - IP pública Apache Tomcat Acceso remoto a MySQL Acceso root vía SSH 512 MB RAM 10 GB HD Soporte Si bien estas prestaciones son suficientes para cumplir con los objetivos del prototipo actual, si éste llegara a convertirse en un proyecto con clientes reales (por ejemplo el Gobierno 14 Empresa Argentina que ofrece servicios de Web Hosting. Para mayor información se puede acceder a http://dattatec.com/site/sp/argentina/home 26 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA de la Provincia de Córdoba),, se podrían ofrecer distintas alternativas de deployment, deployment desde escenarios con disponibilidad limitada ((como el actual), pasando por escenarios con mayor availability, hasta llegar a utilizar íntegramente la infraestructura del cliente. Por supuesto, cada uno de ellos implicará precios diferentes diferentes. En cuanto al costo para los usuarios, el sistema es totalmente gratuito. El usuario sólo deberá tener un celular con Layar instalado y acceso a Internet. Capturas de Pantalla del Prototipo En esta sección se incluyen algunas capturas de pantalla del prototipo implementado. En la Figura 18 se muestra la pantalla inicial del layer implementado, con su nombre, autor, imagen y una breve descripción. En la Figura 19 se ilustra una imagen del Paseo del Buen Pastor y otra con la dirección de la Catedral de Córdoba. Figura 18: Pantalla inicial 27 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 19: Imagen del Buen Pastor y de la Catedral Al seleccionar una de las acciones de los POIs (en la imagen anterior “Más Más Información” Información y “Cómo llegar”), el teléfono abrirá determinada aplicació aplicación con los metadatos correspondientes. Por ejemplo, laa siguiente figura muestra el resultado de hacer click en “Más Información nformación” del POI Catedral. 28 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 20: Más Información de la Catedral de Córdoba La Figura 21 muestra una vista lejana y otra cercana del punto de interés UTN UTN.. En la primera se pueden apreciar las acciones aplicables a este POI, expandidas dentro de la vista. En la Figura 22 se ilustran las acciones en forma de lista y el resultado de ejecutar la acción “Llamar UTN”. 29 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 21: Vista lejana y cercana del POI UTN Figura 22:: Lista de Acciones de UT UTN y Ejecución de Llamar UTN 30 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Conclusiones La aplicación de la Realidad Aumentada en el sector turístico, más precisamente el Ecoturismo, fue el eje principal de este trabajo. Para alcanzar el objetivo central del presente, el desarrollo de un prototipo de Realidad Aumentada que brinde una mejor experiencia de usuario a los turistas que recorran la ciudad de Córdoba, se definió el marco teórico, en el que se hizo hincapié en conceptos fundamentales y usos actuales de Realidad Aumentada. Se analizó la importancia de las áreas involucradas, Ecoturismo, Realidad Aumentada, Aplicaciones Sensibles a la Localización, Aplicaciones Móviles. Se hizo foco principalmente en la actual vigencia de las disciplinas mencionadas, utilizando principalmente estudios recientes de la consultora Gartner. Se realizó un sondeo general sobre los frameworks y alternativas existentes. Layar resultó la plataforma elegida para la implementación del prototipo, el cual se diseñó y desarrolló íntegramente como parte de este trabajo final integrador. Finalmente, se mostraron algunas capturas del sistema andando. Se intentó plantear una solución original, utilizando tecnologías aún no tan maduras, pero con enormes expectativas de crecimiento. El prototipo aquí propuesto, nos ofrece la posibilidad de realizar guías turísticas interactivas a través de nuestros dispositivos móviles. Tan sólo basta con que el usuario enfoque un lugar para que la aplicación nos brinde datos del sitio al que estamos apuntando. No sólo se pensó en la facilidad de uso, sino que también se favoreció un desarrollo escalable, fácilmente ampliable, modificable y configurable mediante la utilización de diversos frameworks de caching, de IoC15, de logging, entre otros. Esta tecnología ofrece un sinfín de oportunidades para Córdoba, no sólo para la capital sino también para la provincia. El turismo constituye una de las principales y más importantes actividades económicas de la zona. Existen muchísimos circuitos turísticos en la provincia, Punilla, Traslasierra, Calamuchita, Sierras Chicas, cada uno con sus atractivos indiscutidos que los hacen únicos. “Aumentar” estas atracciones con este tipo de sistemas será un claro diferenciador en el futuro. 15 Principio de Inversión de Control, es un método de programación en el que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales. Con IoC, se especifican respuestas deseadas a sucesos, dejando que una arquitectura externa lleve a cabo las acciones de control que se requieran en el orden necesario. 31 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Estoy convencido que extender este sistema a toda Córdoba, ofreciendo, además, respuestas a preguntas tales como ¿Cuál es la parada de colectivo más cercana? ¿Cuáles son los hoteles con mejor reputación? ¿Cuáles son los mejores lugares para comer?, será una manera de cuidar al turista y hacer que los que ya nos conocen vuelvan a visitarnos. Trabajos Futuros Indudablemente, futuros trabajos y mejoras aparecen a partir del presente. En la implementación actual, sólo el administrador del sistema puede agregar POIs mediante scripts que se ejecutan en la base de datos. Una mejora sustancial consistiría en crear una interfaz gráfica web, con manejo de permisos, roles, etc., que permita la Creación, Lectura, Actualización y Borrado (CRUD) de POIs. Otro aspecto a tener en cuenta es la automatización en la obtención de la meta información. Si bien es importante proveer una UI web para la carga manual de datos, consultar APIs de enciclopedias online, como ser Wikipedia, favorecerá notablemente al rápido incremento de POIs en la base, y la consecuente potencialidad de la aplicación. Resueltos ambos puntos anteriores, creo que el paso a seguir sería ofrecer la información internacionalizada. Agregando como parámetro opcional a la interfaz REST el locale code obtenido de las preferencias del teléfono, se podría mejorar la difusión del sistema a usuarios no hispanohablantes. Si bien este trabajo se planteó con foco en el sector turístico, las posibilidades de negocio de esta tecnología son relativamente infinitas. La misma aplicación web se podría ofrecer al sector comercial de la ciudad de Córdoba. Por ejemplo, se podrían mostrar los descuentos y ofertas del día de grandes tiendas como Garbarino, Frávega y Falabella. Se podría saber si el local tiene algún artículo que buscamos. De la misma manera, el sector gastronómico podría ser un potencial cliente, se visualizaría información de restaurantes, sus platos, precios, promociones, etc. Ambos casos abrirían un abanico de alternativas de cobro, que permitirían obtener ganancias a partir de la inversión: - Tasa Fija (TF). Tasa Variable en base a clientes que se acercaron atraídos por la aplicación y consumieron los productos ofrecidos por las tiendas, restaurantes (TV). TF + %TV 32 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Bibliografía [Avery, 2008] Avery, B., Thomas, B., & Piekarski, W. (2008). User Evaluation of See-Through Vision for Mobile Outdoor Augmented. University of South Australia. [Avery, 2005] Avery, B., Thomas, B., Velikovsky, J., & Piekarski, W. (2005). Outdoor augmented reality gaming on five dollars a day. AUIC Proceedings of the Sixth Australasian conference on User interface. [Basogain, 2007] Basogain, X., Olabe, M., Espinosa, K., Rouèche, C., & Olabe, J. (2007). Realidad Aumentada en la Educación: una tecnología emergente. Libro de Actas ONLINE EDUCA MADRID - 7ª Conferencia Internacional de la Educación y Formación basada en las Tecnologías. [Caudell, 1994] Caudell, T. P. (1994). Introduction to Augmented Reality. In SPIE Proceedings Vol. 2351: Telemanipulator and Telepresence Technologies. [Caudell, 1992] Caudell, T., & Mizell, D. (1992). Augmented reality: an application of heads-up display technology to manual manufacturing processes. Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences. [Dasenbrock, 2002] Dasenbrock, J. (Enero de 2002). The Pros and Cons of Ecotourism in Costa Rica. Recuperado el 1 de Septiembre de 2011, de http://www1.american.edu/ted/costa-ricatourism.htm [Educause, 2005] Educause. (2005). 7 things you should know about Augmented Reality. Educause Learning Initiative. [Ewen, 2011] Ewen, S. (8 de Junio de 2011). Why Augmented Reality Is Poised To Change Marketing. Recuperado el 29 de Agosto de 2011, de http://mashable.com/2011/06/08/augmented-reality-marketing-2/ [GartnerHC, 2011] Gartner. (2011). Gartner Hype Cycle. Recuperado el 30 de Agosto de 2011, de http://www.gartner.com/technology/research/methodologies/hype-cycle.jsp [GartnerMO, 2010] Gartner. (24 de Marzo de 2010). Gartner Outlines 10 Mobile Technologies to Watch in 2010 and 2011. Recuperado el 2 de Octubre de 2011, de Gartner NewsRoom: http://www.gartner.com/it/page.jsp?id=1328113 [GartnerAN, 2011] Gartner. (7 de Abril de 2011). Gartner Says Android to Command Nearly Half of Worldwide Smartphone Operating System Market by Year-End 2012. Recuperado el 1 de Octubre de 2011, de Gartner NewsRoom: http://www.gartner.com/it/page.jsp?id=1622614 33 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA [GartnerST, 2010] Gartner. (19 de Octubre de 2010). Top 10 Strategic Technologies for 2011. Recuperado el 17 de Septiembre de 2011, de Gartner Newsroom: http://www.gartner.com/it/page.jsp?id=1454221 [Heilig, 1962] Heilig, M. L. (1962). Patent No. 3.050.870. US. [Jordá, 2006] Jordá, S. (2006). Taller de Sistemes Interactius. Universitat Pompeu Fabra. [Kuang, 2009] Kuang, C. (29 de Julio de 2009). Five To-Die-For Augmented Reality Shopping Apps. Recuperado el 29 de Agosto de 2011, de http://www.fastcompany.com/blog/cliffkuang/design-innovation/shopping-augmented-reality [Lucier, 2009] Lucier, T. (3 de Septiembre de 2009). Augmented Reality in Travel and Tourism: merging digital information with the real world. Recuperado el 29 de Agosto de 2011, de http://www.tourismkeys.ca/blog/2009/09/augmented-reality-travel-and-tourism-merging-digitalinformation-with-the-real-world/ [Milgram, 1994] Milgram, P., & Kishino, F. (1994). A taxonomy of mixed reality visual displays. IEICE Transactions on Information Systems , Vol E77-D, No.12. [Milgram, 1993] Milgram, P., & Zhai, S. (1993). Applications of augmented reality for humanrobot communication. IEEE/RSJ International Conference on Intelligent Robots and Systems. [MIT, 1999] MIT AI Lab and Brigham and Women's Surgical Planning Laboratory. (5 de Febrero de 1999). Project on Image Guided Surgery. Recuperado el 14 de Agosto de 2011, de http://www.ai.mit.edu/projects/medical-vision/surgery/surgical_navigation.html [Rozier, 1999] Rozier, J. (1999). Hear&There: An Augmented Reality System of Linked Audio. [Sinclair, 2000] Sinclair, J. (2000). Recuperado el 20 de Julio de 2011, de Ecotourism — An overview: http://www.sinclair.org.au/thailand/OverviewOfEcotourism.html [Stilman, 2005] Stilman, M., Michel, P., Chestnutt, J., Nishiwaki, K., Kagami, S., & Kuffner, J. (2005). Augmented Reality for Robot Development and Experimentation. Carnegie Mellon University, Advanced Industrial Science and Technology. [Sung, 2011] Sung, D. (1 de Marzo de 2011). The history of augmented reality. Recuperado el 30 de Julio de 2011, de Pocket-lint: http://www.pocket-lint.com/news/38803/the-history-ofaugmented-reality [Sutherland, 1968] Sutherland, I. (1968). A head-mounted three dimensional display. AFIPS computer conference, part I. [Urban, 1995] Urban, E. (1995). The Information Warrior. IEEE Spectrum. [Vallino, 1998] Vallino, J. (1998). Interactive Augmented Reality. University of Rochester. 34 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA [Wood, 2002] Wood, M. (2002). Ecotourism: principles, practices & policies for sustainability. United Nations Environment Programme. 35 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Apéndices Apéndice A: Diagrama de Clases La Figura 23 muestra un diagrama de clases del componente implementado. Por razones de legibilidad, se omitieron algunos atributos, métodos y asociaciones entre clases. Figura 23: Diagrama de Clases TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Apéndice B: Diagrama de Secuencia La Figura 24 muestra un diagrama de secuencia del caso feliz. Por legibilidad, se omitió el chequeo en cache y la comunicación con la base de datos. Figura 24: Diagrama de Secuencia Caso Feliz 37 TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Apéndice C: Snippets de Código Todo trabajo de implementación requiere mostrar parte del código realizado. El presente Apéndice ofrece una vista parcial de la interfaz REST (Figura 25) y dos de los objetos del modelo (Figura 26). Por idénticas razones a los Apéndices péndices anteriores, no se incluyó la totalidad talidad del código. Si el lector necesita mayor detalle, no deje de contactarse vía e-mail e con el autor. Figura 25: Implementación de la Interfaz terfaz RESTful getPois TRABAJO DE ESPECIALIZACIÓN EN INGENIERÍA EN SISTEMAS DE INFORMACIÓN UNIVERSIDAD TECNOLÓGICA NACIONAL – FACULTAD REGIONAL CÓRDOBA Figura 26: Snippets de los POJOs Poi y PoiAction 39