Servicios de Recomendación Contextual para Instituciones de Educación Superior Mediante Realidad...
-
Upload
gabriel-gonzalezserna -
Category
Technology
-
view
371 -
download
0
description
Transcript of Servicios de Recomendación Contextual para Instituciones de Educación Superior Mediante Realidad...
dd
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ciencias Computacionales
TESIS DE MAESTRÍA EN CIENCIAS
Servicios de Recomendación Contextual para Instituciones de Educación Superior Mediante Realidad Aumentada
Utilizando Smartphones y Ontologías Organizacionales
presentada por
Rodrigo Alejandro Morán Leal Ing. en Informática por la Universidad Politécnica del Estado de Morelos
como requisito para la obtención del grado de:
Maestría en Ciencias en Ciencias de la Computación
Director de tesis: Dr. Juan Gabriel González Serna
Co-Director de tesis: Dra. Azucena Montes Rendón
Cuernavaca, Morelos, México. 17 de diciembre de 2012
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ciencias Computacionales
TESIS DE MAESTRÍA EN CIENCIAS
Servicios de Recomendación Contextual para Instituciones
de Educación Superior Mediante Realidad Aumentada Utilizando Smartphones y Ontologías Organizacionales
presentada por
Rodrigo Alejandro Morán Leal Ing. en Informática por la Universidad Politécnica del Estado de Morelos
como requisito para la obtención del grado de: Maestría en Ciencias en Ciencias de la Computación
Director de tesis: Dr. Juan Gabriel González Serna
Co-Director de tesis:
Dra. Azucena Montes Rendón
Jurado:
Dr. Hugo Estrada Esquivel – Presidente M.C. Javier Ortiz Hernández– Secretario Dr. Juan Gabriel González Serna – Vocal
Dra. Alicia Martínez Rebollar – Vocal Suplente
Cuernavaca, Morelos, México. 17 de diciembre de 2012
DEDICATORIAS
A Dios, por ayudarme en cada uno de los éxitos y problemas que tuve en esta etapa de mi vida
A mi madre, por todo lo que ha hecho por mí.
A mi primo y a mi familia, por haberme brindado su apoyo.
A Anayely, por haberme brindado lo que más me faltaba para terminar este logro
A todos aquellos que me ayudaron en esta etapa de mi vida
AGRADECIMIENTOS A mi madre María del Carmen Leal Murguía, por haberme dado la vida y haber
creído en mí todos estos años, por haberme apoyado todo este tiempo en mis
metas, por haber hecho muchos sacrificios para que yo pudiera llegar hasta
donde me encuentro ahora, muchas gracias. A mi primo, Jairo Ramiro, quien
ha sido mi mejor amigo desde que nací hasta ahora, muchas gracias por
escucharme y apoyarme en los buenos y malos momentos. A mi hermana,
Violeta, por haberme acompañado y alentado durante todo este periodo. A toda
mi familia que ha estado conmigo apoyándome y dándome ánimos para seguir
adelante, muchas gracias.
A mi princesa, Anayely Noguerón Valdes, gracias por darme el último
empujoncito para poder terminar mi maestría, gracias por haber sido mi
motivación e inspiración en mi último año, eres la mejor sorpresa que me pude
haber encontrado en mi maestría, gracias por haberme prestado un poco de tu
tiempo para estar conmigo, gracias por haberme dejado soñar y haber
compartido muchos momentos especiales conmigo, muchas gracias. A Viviana
Anani Partida Valencia, mi amiga, muchas gracias por haberme prestado tu
tiempo para escucharme, gracias por haberme enviado esa “buena vibra”
siempre.
A todos mis amigos que encontré en el CENIDET, Juan Diego, Samuel Vieyra,
Luis Ángel Chi, Leticia Aponte, Ilse Yari Landa, Adrian Cruz, Nimrod González,
Jesús Rodríguez, Oscar, Julia, Hugo, muchas gracias por haber hecho que
esta etapa de mi vida sea inolvidable.
A mi director de tesis, el Dr. Juan Gabriel González Serna, por haberme
formado durante todo este periodo, ayudándome a desarrollarme como
persona tanto profesional como personalmente. A mis profesores del CENIDET
por haberme enseñado tantas cosas y haberme ayudado a desarrollar todas
las habilidades que tengo ahora conmigo, muchas gracias.
Al CONACYT por haberme apoyado económicamente mientras realizaba mis
estudios, al Centro Nacional de Investigación y Desarrollo Tecnológico, por
permitirme elaborar mis estudios y haberme brindado muchas experiencias y
oportunidades durante toda mi estancia en él.
A mis revisores por haberme compartido sus conocimientos, y haberme guiado a través de todo el desarrollo de mi proyecto de tesis. A todos aquellos que formaron parte de mi vida en esta tapa tan importante de mi vida, a todos ustedes muchas gracias.
RESUMEN Dentro del área de la computación del CENIDET se han desarrollado los servicios de recomendación sensibles al contexto, los cuales le ofrecen al usuario información personalizada del entorno de acuerdo a sus preferencias, ubicación, el horario en que se encuentra, los servicios disponibles de la organización, etc. Estos servicios de recomendación han involucrado diferentes tecnologías, desde algoritmos que son capaces para inferir las preferencias del usuario, hasta tecnologías capaces de capturar datos del entorno como RFID, QR-Codes, sensores especializados, etc.
En el laboratorio de sistemas distribuidos del CENIDET, se pretende desarrollar un sistema capaz de mostrarle recomendaciones personalizadas e información de alguna organización al usuario, a partir de las preferencias del mismo y la información del entorno en el que se encuentra (hora y lugar de la organización a donde llega). El desarrollo de este sistema comenzó con el proyecto T-Guía, el cual puede proporcionarle información al usuario de la organización a partir de su ubicación, una vez terminado este sistema, se desarrollaron otros proyectos que integraron otras funcionalidades al sistema, tales como servicios de recomendación sensibles al contexto, mapas con información de la organización en formato SVG y servicios de localización mediante el uso de tecnologías Wi-Fi y RFID, de esta forma se integran nuevas funcionalidades al sistema desarrollado anteriormente.
En este proyecto de tesis, se desarrolló una nueva funcionalidad para el sistema T-Guía, la cual implementa una interface a través de realidad aumentada, con la cual el usuario podrá interactuar de manera más natural con la información del entorno, además de que conocerá hacia donde quedan algunas ubicaciones de interés. Para ello se desarrolló un modelo de identificación de puntos de interés mediante 10 (8+2) orientaciones, 8 orientaciones que apuntan hacia los puntos cardinales y 2 para apuntar hacia arriba o abajo del dispositivo, utilizando el sensor de acelerómetro de tres ejes y el magnetómetro fue posible determinar la dirección hacia donde el usuario está apuntando y conocer qué puntos de interés se puede encontrar visualizando. Finalmente, en este proyecto, pudo desarrollarse una nueva funcionalidad al sistema, con una aplicación capaz de presentarle al usuario información del entorno al enfocar su dispositivo en diferentes orientaciones.
ABSTRACT In the CENIDET’s computing area have been developed context-aware recommendation services, which offer to the users personalized information of the environment according to their preferences, location, the time in which it is, the services of the organization, etc. These recommendation services have involved different technologies, from algorithms that are able to infer the user's preferences, to technologies able to capture the data environment as RFID, QR-Codes, specialized sensors, etc.
In the Distributed System’s Laboratory CENIDET, aims to develop a system able of showing personalized recommendations and information of an organization to the user, from preferences and information environment that he is (time and place where he arrives). The development of this system began with the project T-Guide, which can provide information to the user in the organization from his location, once finished this system, other projects were developed that integrated other features to the system, such as context-aware recommendation services, maps with organizational information in SVG format and location services using Wi-Fi technology and RFID, so new features are integrated into the system previously developed.
In this thesis, we developed a new feature for the T-Guide system, which implements an interface using augmented reality, with which the user can interact more naturally with information of the environment, plus he will know where some locations of interest are. For that we developed a model to identify points of interest by 10 (8 +2) orientations, 8 orientations pointing to the cardinal points and 2 to point up or down of the device, using the three-axis accelerometer sensor and magnetometer was possible to determine the direction in which the user is pointing and know what points of interest can be displayed. Finally, in this project we could develop a new functionality to the system, with an application that can present to the user information of the environment focusing his device in different directions.
i
TABLA DE CONTENIDO
LISTA DE FIGURAS iii
Capítulo 1. Introducción 5
1.1 Introducción 6
1.2 Antecedentes 7
1.2.1 Servicios de localización conscientes del contexto aplicando perfiles de movilidad y tecnologías
de localización heterogéneas [Arjona 2009] 7
1.2.2 API para servicios de localización basada en tecnología RFID, QRCode, WIFI y Bluetooth [Yris
2012] 7
1.2.3 Generación y explotación de mapas semánticos para instalaciones organizacionales mediante el
uso de ontologías [Estrada 2012] 11
1.2.4 Servicio de recomendación contextual mediante ontologías multidimensionales para dispositivos
Smartphone [González 2012] 12
1.3 Descripción del problema 13
1.3.1 Complejidad del problema 14
1.4 Objetivos del proyecto 15
1.4.1 Objetivo general 15
1.4.2 Objetivos específicos 15
1.5 Justificación 16
Capítulo 2. Marco Teórico 17
2.1 Realidad aumentada 18
2.1.1 Reconocimiento de objetos mediante el uso de marcadores 19
2.1.2 Técnicas de reconocimiento visual sin marcadores 21
2.1.3 Técnicas de reconocimiento sensorial 22
2.2 Computación ubicua 23
2.3 Servicios de recomendación contextual 24
2.4 Modelado organizacional orientado al entorno 25
2.5 Android 26
2.6 Tecnología sensorial en Smartphones 26
Capítulo 3. Estado del Arte 29
3.1 Sistemas 30
3.1.1 A Tracking Framework for Augmented Reality Tours on Cultural Heritage Sites [Park 2010] 30
3.1.2 An Augmented Reality Presentation System for Remote Cultural Heritage Sites [Zöllner 2009] 32
3.1.3 Location-based augmented reality on mobile phones [Turk 2010] 33
3.1.4 An Augmented Reality Interface to Contextual Information [Ajanki 2011] 35
ii
3.1.5 Personalized In-store E-Commerce with the PromoPad: an Augmented Reality Shopping Assistant
[Zhu 2008] 36
3.2 Herramientas 37
3.2.1 Look!: Framework para Aplicaciones de Realidad Aumentada en Android [Bellón 2011] 37
3.2.2 CAMAR Tag Framework: Context-Aware Mobile Augmented Reality Tag Framework for Dual-reality
Linkage [Woo 2009] 37
3.2.3 Unified Context-aware Augmented Reality Application Framework for User-Driven Tour Guides [Woo
2010] 38
3.3 Análisis del estado del arte 39
Capítulo 4. Diseño de la aplicación 42
4.1 Arquitectura general del sistema 43
4.2 Modelo de orientación en el entorno 44
4.3 Diagrama de casos de uso 49
4.4 Diagramas de clases 57
Capítulo 5. Implementación 60
5.1 Modificaciones a la red de ontologías 61
5.2 Servicio de localización 65
5.3 Desarrollo de la aplicación 67
5.3.1 Lectura de la información de la Ontología 68
5.3.2 Implementación de los objetos virtuales 70
5.3.3 Funcionalidad de filtrado de información 72
Capítulo 6. Pruebas 74
6.1 Plan de pruebas 75
6.1.1 Enfoque 75
6.1.2 Características a probar 75
6.1.3 Características excluidas 76
6.1.4 Elementos de prueba 76
6.1.5 Requerimientos para realizar las pruebas 77
6.1.6 Criterio éxito/fracaso de los casos de prueba 77
6.1.7 Responsabilidades 77
6.1.8 Diseño de las pruebas 77
6.2 Reporte de pruebas 80
6.3 Resultados 115
Capítulo 7. Conclusiones y trabajos futuros 117
7.1 Conclusiones 118
7.2 Aportaciones 118
7.3 Trabajos futuros 119
Referencias 120
iii
LISTA DE FIGURAS Figura 1.1 algoritmo de localización por redes inalámbricas implementado [Yris 2012] 8
Figura 1.2 segmentación del entorno de acuerdo a la potencia de señal inalámbrica recibida [Yris 2012] 9
Figura 1.3 diagrama del funcionamiento de los portales RFID [Yris 2012] 10
Figura 1.4 diagrama para la implementación de portales RFID [Yris 2012] 10
Figura 1.5 Ejemplo de un mapa generado en el proyecto [Estrada 2012] 11
Figura 2.1 marcadores de plantilla y matrices de datos [Schmalstieg 2007] 19
Figura 2.2 ejemplo de un QRCode [Woo 2011] 20
Figura 2.3 proceso de umbralización [Schmalstieg 2007] 20
Figura 2.4 modelo de rotaciones en un reconocimiento sensorial por orientación 23
Figura 2.5 Principales componentes de los sensores [Akyildiz 2002] 26
Figura 2.6 diagrama de un giroscopio digital [Jones 2010] 27
Figura 3.1 algoritmo de estimación de poses [Park 2010] 30
Figura 3.2. Técnicas de realidad aumentada implementadas en el palacio de Gyeongbokgung [Park 2010]
32
Figura 3.3 dispositivo estático para la visualización de información contextual en murales [Zöllner 2009] 33
Figura 3.4 inserción de objetos virtuales en los dispositivos móviles [Zöllner 2009] 33
Figura 3.5 Modelo de reconocimiento mediante localización y orientación propuesto en el proyecto [Turk
2010] 34
Figura 3.6 aumentación mediante el reconocimiento por orientación y ajuste mediante técnicas de
reconocimiento visual 34
Figura 3.7 algoritmo para la retribución de información en el sistema [Ajanki 2011] 35
Figura 3.8 reconocimiento de objetos e inserción de información en el entorno [Ajanki 2011] 36
Figura 3.9 acercamiento a un producto de posible interés para el cliente 36
Figura 3.10 generación del mundo virtual a partir del entorno real en el proyecto [Woo 2009] 38
Figura 4.1 arquitectura general del nuevo sistema T-Guía 43
Figura 4.2 Funcionamiento de la aplicación YLEYANA en el sistema 44
Figura 4.3 segmentación del entorno para la construcción de un MOM [Pombinho 2011] 45
Figura 4.4 modelo de navegación de 8 orientaciones [Worboys 2011] 46
Figura 4.5 modelo de ocho orientaciones para indicar los POIs del entorno 46
Figura 4.6 ejemplo de la aplicación del modelo de ocho grados de libertad 47
Figura 4.7 definición de las zonas de localización para los estados en el MOM 47
Figura 4.8 autómata del modelo de orientación propuesto para la visualización de POIs 48
Figura 4.9 manejo de los objetos fuera del campo de visión en el modelo de orientación 49
Figura 4.10 Diagrama de casos de uso del sistema 49
iv
Figura 4.11 Diagrama de clases del sistema 57
Figura 5.1 Unión de la ontología de infraestructura y ONALIN 62
Figura 5.2 Proceso de instanciación de la información del sistema 62
Figura 5.3 Modelo de representación de las distintas zonas del entorno [Estrada 2012] 63
Figura 5.4 Representación de los segmentos de navegación en el entorno 64
Figura 5.5 integración de los puntos de interés al entorno 64
Figura 5.6 integración de las orientaciones en el entorno 65
Figura 5.7 Botón para la selección de la localización del usuario 66
Figura 5.8 Pantalla para la selección de la localización del usuario 66
Figura 5.9 Visualización de puntos de interés en el entorno 67
Figura 5.10 representación de las clases de la ontología en un entorno real 67
Figura 5.11 Ejemplo de instanciación de las ontologías del sistema 68
Figura 5.12 Estructura principal de un archivo JSON 68
Figura 5.13 Estructura de un objeto del tipo nodo 69
Figura 5.14 Estructura de un objeto de orientación 69
Figura 5.15 Estructura de un POI 69
Figura 5.16 Inserción de imágenes con la librería Look! 70
Figura 5.17 Inserción de texto en el objeto virtual 70
Figura 5.18 Inserción de objetos virtuales en el entorno 71
Figura 5.19 Pantalla de información extra de los puntos de interés del entorno 71
Figura 5.20 variables que controlan la visibilidad de los objetos 72
Figura 5.21 Método para el filtrado de información 72
Figura 5.22 Implementación de opciones de filtrado de información en la aplicación 73
Figura 6.1 Representación de la plata baja del edificio de computación 78
Figura 6.2 representación de la planta alta del edificio de computación 79
Figura 6.3 Error en los archivos XML por la etiqueta Extensión 116
Figura 6.4 Recomendaciones nulas en los archivos XML 116
Capítulo 1. Introducción
5
Capítulo 1. Introducción
En este capítulo se describen los antecedentes del proyecto y el contexto en el que se desarrolló, así como también los objetivos, el problema a resolver y los alcances del proyecto.
Capítulo 1. Introducción
6
1.1 Introducción La computación ubicua es un área de la computación que permite a una computadora o dispositivo móvil estar conscientes de su entorno, esto es posible mediante técnicas de reconocimiento contextual y censado de señales emitidas por distintos tipos de dispositivos que permiten que un sistema pueda estar consciente (de manera artificial) de las actividades o cambios que suceden en el entorno. La computación ubicua nos permite diseñar varias aplicaciones capaces de interactuar con el entorno, las cuales pueden involucrar la localización de objetos en interiores o exteriores, sistemas de navegación, sistemas de información contextual, entre otros.
Algunas de las técnicas de identificación usadas en el cómputo ubicuo utilizan tecnologías que permiten a los dispositivos conocer la información de los objetos, lugares y personas de su entorno, ya sea mediante señales de radio frecuencia o marcadores visuales. El desarrollo de estos sistemas ha ido evolucionando de tal manera que podemos encontrar aplicaciones de navegación para celulares, diseñadas con una interfaz de usuario que permite la navegación con mapas o aplicaciones que implementan interfaces con realidad aumentada.
Actualmente en el Laboratorio de Sistemas Distribuidos del Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) se está desarrollando un sistema de recomendación contextual para Instituciones de Educación Superior (IES), en este proyecto se están modelando, diseñando e implementando servicios que permiten averiguar las condiciones del entorno físico de una organización (IES), con estos servicios los usuarios que visitan una IES reciben recomendaciones contextuales, en un cliente instalado en su dispositivo móvil, que contienen información de personas, de objetos de conocimiento y de lugares, se espera que estas recomendaciones satisfagan sus necesidades explicitas e implícitas. La interfaz con la que se le muestran los datos del entorno al usuario utiliza mapas diseñados en segunda dimensión, sin embargo, en los sistemas implementados con este tipo interfaz existe un problema de interpretación de la información de los objetos y la localización del usuario en el entorno, los sistemas que utilizan técnicas de realidad aumentada pueden mostrar la información contextual de los objetos al enfocarlos con el dispositivo, lo que facilitaría la interpretación de esta información y, debido a que el usuario interactúa directamente con el entorno, no existirían problemas para interpretar su localización.
La implementación de sistemas de realidad aumentada elabora la inserción de objetos virtuales en el entorno real, lo que implica que cada objeto virtual debe estar asociado a uno real para poder interpretar de manera correcta la información, para ello deben diseñarse técnicas para identificar los elementos del entorno, dependiendo de las condiciones en las que se vaya a implementar la aplicación. Además del reconocimiento de objetos en la realidad aumentada, deben integrarse servicios que proporcionen la información de los objetos que se encuentran en el entorno, y además de ello, deben implementarse servicios de localización para determinar la ubicación del usuario con el entorno, conocer que objetos se encuentran a su alrededor y finalmente conocer el perfil del usuario para poder elaborar recomendaciones de objetos, lugares o personas
Capítulo 1. Introducción
7
de interés, por lo tanto, la aplicación que se pretende desarrollar debe integrar funciones de reconocimiento, localización y recomendaciones en el entorno.
En resumen, en este proyecto de tesis se diseñaron e implementaron de servicios que presentan la información contextual de recomendaciones de personas, objetos y lugares utilizando tecnologías de realidad aumentada, por ejemplo, descripción de objetos cómo libros, instalaciones, ubicación de personas e incluso la identificación de personas por medio de tecnologías de auto-identificación. Como resultado de este proyecto de tesis se desarrolló un prototipo para teléfonos inteligentes (o Smartphones) que explota todos los sensores contextuales de estos dispositivos mostrando al usuario información contextual de la IES sobre video en tiempo real capturado por la cámara del dispositivo.
1.2 Antecedentes En esta sección se detallarán las tesis y trabajos que se han elaborado dentro del área de sistemas distribuidos del CENIDET con respecto al trabajo que se está desarrollando.
1.2.1 Servicios de localización conscientes del contexto
aplicando perfiles de movilidad y tecnologías de localización heterogéneas [Arjona 2009]
Este trabajo se considera antecedente ya que desarrolló servicios de localización en interiores que pudieran estar conscientes del contexto, además se implementaron servicios para la localización de los usuarios utilizando dispositivos celulares, de esta manera se cuenta con un sistema de localización en interiores que puede identificar los objetos que se encuentren en el entorno real.
Este proyecto logró introducir una aplicación conocida como “T-Guía”, la cual cuenta con una arquitectura cliente servidor, el servidor es capaz de gestionar la ubicación de los objetos mediante tarjetas RFID y las direcciones MAC de los dispositivos, mientras que la aplicación de cliente fue elaborada para dispositivos móviles con sistema operativo Android, y es capaz de recibir la información de las localizaciones mediante RFID y QRCodes, gracias a las tecnologías implementadas en este proyecto se logró una localización en interiores con una precisión de posicionamiento de los dispositivos menor a 2 metros.
1.2.2 API para servicios de localización basada en tecnología RFID, QRCode, WIFI y Bluetooth [Yris 2012]
Este proyecto dio como resultado una API que permitía al programador
implementar métodos de localización de dispositivos móviles en interiores de
edificios en base a las lecturas obtenidas por dispositivos con interfaz IEEE
802.11 (Wi-Fi) y RFID. Los métodos que conforman la API también permitirán
la trazabilidad en tiempo real de personas y objetos que se encuentren
identificados por etiquetas RFID pasivas.
Capítulo 1. Introducción
8
El algoritmo de localización por redes inalámbricas, mediante Wi-Fi o Bluetooth, consiste en definir distintas áreas de localización dependiendo la potencia de la señal con la que esta se reciba, en la figura 1.1 puede apreciarse un ejemplo de ésta definición de zonas tipo de algoritmo, los distintos puntos de acceso emiten señales con distinto nivel de frecuencia, dependiendo la potencia recibida por cada uno de los puntos de acceso es posible dividir el entorno en celdas de localización, ya que se ha dividido el entorno en estas celdas, es posible identificar la ubicación del usuario en el entorno al registrar la potencia de la señal recibida, este método es conocido como el algoritmo de localización “fingerprint”.
Figura 1.1 algoritmo de localización por redes inalámbricas implementado [Yris
2012]
Una vez establecido este algoritmo para la localización en interiores, se procedió a medir la potencia de las señales de los puntos de acceso en el entorno, registrando el incremento y decremento de cada señal recibida, esto permitió dividir el entorno en celdas de localización con una superficie de 2 metros cuadrados, generando una división como se muestra en la figura 1.2.
Capítulo 1. Introducción
9
Figura 1.2 segmentación del entorno de acuerdo a la potencia de señal inalámbrica
recibida [Yris 2012]
Para definir la localización dentro de las distintas áreas funcionales del entorno, se agruparon las celdas que se encontraban dentro de una de las áreas, de ésta forma, podrá definirse si el usuario se encuentra en un área funcional del entrono dependiendo en qué conjunto de celdas se encuentra, la siguiente tabla define la correspondencia de las zonas funcionales del entorno con las celdas definidas en la figura anterior.
Nombre de la zona de localización Símbolo / color
CENIDET.Cerritus.DCC.Aula_1
CENIDET.Cerritus.DCC.Aula_2
CENIDET.Cerritus.DCC.Aula_3
CENIDET.Cerritus.DCC.Laboratorio_Sistemas_Distribuidos
CENIDET.Cerritus.DCC.Laboratorio_Ingenieria_de_software
CENIDET.Cerritus.DCC.Laboratirio_Inteligencia_Artificial
CENIDET.Cerritus.DCC.Soporte_tecnico
CENIDET.Cerritus.DCC.Sanitarios
CENIDET.Cerritus.DCC.Escaleras_planta_baja
CENIDET.Cerritus.DCC.Entrada_al_edificio
CENIDET.Cerritus.DCC.TragaLuz
Además de implementar un servicio de localización por tecnologías inalámbricas, también se implementó un algoritmo de reconocimiento mediante RFID. Esta tecnología permite capturar e identificar de manera automática información contenida en etiquetas (tags) a través de un lector de ondas de radio frecuencia, éstas etiquetas RFID se adhieren a algún objeto, cuando el objeto se encuentre en el campo de recepción del lector RFID, la etiqueta se energiza y envía como respuesta un número de 96 bits (código EPC) al lector,
Capítulo 1. Introducción
10
este código se utiliza para identificar y extraer información del objeto [Portillo 2008].
Para ésta identificación, se diseñaron portales RFID que contaban con dos antenas lectoras, las cuales podían registrar el movimiento de entrada y salida de alguna entidad que contenga un tag, en la figura 1.3 se presenta el modelo de los portales RFID, estos portales podrían ser instalados en los accesos de las distintas áreas del entorno como se muestra en la figura 1.4, de esta forma el sistema podría registrar cuando un usuario, con una etiqueta RFID asignada, entraba o salía de determinada área, y de esta forma inferir su localización.
Figura 1.3 diagrama del funcionam iento de los portales RFID [Yris 2012]
Figura 1.4 diagrama para la implementación de portales RFID [Yris 2012]
Capítulo 1. Introducción
11
1.2.3 Generación y explotación de mapas semánticos para instalaciones organizacionales mediante el uso de ontologías [Estrada 2012]
En este proyecto se desarrollaron herramientas que permitieron crear mapas
virtuales con anotaciones semánticas de manera automática, de esta forma los
mapas contienen información acerca de la estructura de la información,
además de contener la información de los elementos que se encuentran en
cada uno de los lugares.
Para poder elaborar esto, los mapas se desarrollaron en el lenguaje de diseño
de gráficos en segunda dimensión Scalable Vector Graphics (SVG), de esta
manera se lograron desarrollar mapas que contienen información de las
instalaciones sin depender de algún servicio web para obtener esta
información, además que este formato permite elaborar acercamientos a las
imágenes sin obtener alguna distorsión. En la figura 1.5, se muestra un ejemplo
de un mapa construido en este formato de la planta baja del edificio de
computación.
Figura 1.5 Ejemplo de un mapa generado en el proyecto [Estrada 2012]
Para obtener la información contenida en estos mapas, se utilizaron ontologías
organizacionales, en las cuales contenían información acerca de los objetos,
personas, eventos, recursos, etc. Con estas ontologías se podía extraer la
información de la organización y asignarle esta información a los mapas SVG,
de esta forma el mapa contendrá información sobre los objetos y las personas
que están asignadas a ese lugar. Además de ello, se desarrolló una ontología
capaz de modelar la infraestructura de una organización, con la cual era
posible definir áreas funcionales, entradas, edificios, escaleras, etc.
Capítulo 1. Introducción
12
1.2.4 Servicio de recomendación contextual mediante ontologías multidimensionales para dispositivos Smartphone [González 2012]
El objetivo de esta tesis fue desarrollar servicios de recomendación
contextuales para usuarios móviles de una IES, mediante la explotación de
ontologías organizacionales y ontologías de perfil de usuario, para inferir
recomendaciones de servicios, personas, lugares y objetos asociados a una
organización. Las recomendaciones se explotarán en el dispositivo móvil de un
usuario, aplicando técnicas avanzadas de interacción basadas en texto para
visualizar las recomendaciones, utilizando el potencial de los dispositivos
móviles de última generación.
Este proyecto busca modelar la información contextual de una organización
(IES) mediante una red de ontologías, basándose en los conceptos definidos
en [Bouzeghoub 2009] sobre contexto multidimensional, de tal forma, que se
contemplan cinco dimensiones, correspondientes a las siguientes ontologías:
Ontología organizacional: en esta ontología, basada en las ontologías
de organizaciones desarrolladas previamente en el CENIDET, se
describen diversos aspectos de la institución, tales como los datos
generales y financieros de una organización, sus competencias,
recursos de infraestructura, recursos humanos, estructura
organizacional, objetos de conocimiento y servicios, entre otros.
Ontología de localización: esta ontología se forma de ontologías de
espacios y de localización, desarrollándose actualmente en CENIDET
[Estrada 2010] [Yris 2012], considera espacios interiores y exteriores de
las organizaciones.
Ontología de Actividades: se propone esta ontología para describir las
actividades de las personas pertenecientes a una organización,
considerando el tipo de actividad, el rol de la persona en ella y los
recursos organizacionales asociados a dicha actividad.
Ontología de tiempo: se toma como base la ontología OWL-Time y se
propone extenderla para satisfacer los requerimientos del sistema de
recomendación propuesto en esta tesis, tal como el modelado de
horarios, periodos de trabajo, fechas de eventos, etc.
Ontología de perfil de usuario: en esta ontología, basada en las
ontologías de perfil de usuarios desarrolladas previamente en el
CENIDET, se describen los intereses y preferencias de los usuarios,
además de las competencias de los mismos.
Capítulo 1. Introducción
13
Con este conjunto de ontologías, a las cuales se le añadirán las relaciones
correspondientes para conformar la red, se busca modelar aspectos
relacionados con competencias organizacionales e individuales, objetos de
conocimientos, localización, infraestructura, eventos espacio/temporales,
agendas de actividades, ocupaciones, roles e intereses de los usuarios.
1.3 Descripción del problema Actualmente, los sistemas de información contextual en entornos inteligentes
que utilizan realidad aumentada, necesitan establecer métodos para identificar
objetos, personas o lugares que estén contextualizados en el sistema. Sin
embargo deben aplicar diferentes tecnologías para el reconocimiento de
objetos dependiendo el entorno en el que se encuentre la aplicación, ya que
algunas de ellas, como el reconocimiento de objetos a través de marcadores,
pueden ser más eficientes en ciertos entornos, incluso dependiendo del origen
del entorno, algunas tecnologías no pueden implementarse, por ejemplo el uso
de marcadores en museos de patrimonio cultural.
Una vez conocidas las tecnologías que pueden implementarse en el entorno,
debe tenerse en cuenta que utilizar una sola técnica para el reconocimiento de
objetos en este tipo de aplicaciones no garantiza una buena precisión al
relacionar los objetos reales con sus anotaciones virtuales [Park 2010], además
es muy difícil realizar todas las funciones del sistema mediante el uso de una
sola tecnología, por ejemplo, si se utilizaran marcadores únicamente, para la
localización del usuario en el entorno deberían implementarse muchos
marcadores, de tal manera que se asegure que el usuario visualice, además
cada marcador necesitaría contener la información de la zona del entorno en la
que se localiza el usuario, tal como se hizo en [Thomas 2002], en caso de las
tecnologías sensoriales, podría detectarse los objetos que se encuentran cerca
del dispositivo, sin embargo algunas de ellas emiten señales de corto alcance,
tal es el caso de RFID, y en cuanto a la realidad aumentada sería imposible
asociar los objetos virtuales con los reales de manera precisa, por ejemplo en
caso de encontrarse múltiples objetos en el entorno, el dispositivo podría
detectar las señales emitidas por estos, sin embargo no podría asignar los
objetos virtuales con precisión a los objetos, debido a que no sabría en qué
dirección se recibe la señal. Debido a lo anterior, deben implementarse
técnicas que permitan combinar las distintas tecnologías de localización de
usuarios y reconocimiento de objetos en el entorno para obtener una mayor
precisión en la inserción de los objetos reales.
Cada una de las técnicas utilizadas para la auto-identificación de objetos
implica diferentes procesos para el reconocimiento de los mismos, por ejemplo,
la identificación sensorial necesita conocer la localización del usuario para
determinar que objetos se encuentran en su alrededor, después, con ayuda de
los sensores del dispositivo, puede obtener la orientación del usuario y
Capítulo 1. Introducción
14
mostrarle los objetos que está viendo a través de la cámara del dispositivo
móvil. Para elaborar técnicas de auto-identificación hibridas es necesario tomar
en cuenta ¿cómo se van a reconocer los distintos objetos del entorno utilizando
diversas técnicas?, ya que el entorno puede contar con diferentes objetos, en el
campo de visión podrían encontrarse objetos que se reconozcan mediante su
forma, algún marcador o tecnologías sensoriales, de tal manera que debemos
considerar que en el entorno existen múltiples objetos que pueden auto-
identificarse de distintas maneras en tiempo real.
Una vez que se implementan las técnicas de auto-identificación para reconocer
personas, objetos y lugares, se debe extraer la información descriptiva de cada
uno de estos elementos de una fuente de información contextual, para este
proyecto de tesis se utilizará el servicio de recomendación T-Guía, este sistema
modela semánticamente una organización y recomienda al usuario cada uno
de los elementos que define el modelo semántico desarrollado en los proyectos
de tesis descritos en la sección 3, como caso de estudio, en este proyecto de
tesis se considera como escenario de prueba una institución de Educación
Superior (IES), debido a que estas contienen información sobre personal,
eventos, horarios, objetos, etc. de esta manera existe mucha información
contextual en una IES para elaborar recomendaciones de los elementos
anteriores, además que los proyectos anteriores, incluyendo el sistema de
recomendación [Gonzáles 2010], el servicio de localización [Yris 2012] y el
modelado de la infraestructura [Estrada 2010], están basados en la IES
CENIDET, y debido a esto, la aplicación que se pretende desarrollar podría
auxiliarse de éstas herramientas al integrar su funcionamiento para el entorno
en que fueron diseñadas.
Con el escenario descrito para esta tesis, se debe relacionar la información
contextual de los de las personas, lugares y objetos de la IES con las técnicas
de realidad aumentada que estén en el campo de visión del dispositivo,
solucionando los problemas relacionados con objetos sobrepuestos,
identificación de lugares desde diferentes puntos de visión, de acuerdo a la
ubicación del usuario en las instalaciones de la IES, considerando que la
infraestructura de la organización se conforma de varios edificios multinivel en
un área extensa y de muchos objetos de conocimiento y equipos de laboratorio.
1.3.1 Complejidad del problema Como se ha mencionado anteriormente, en este proyecto deben implementarse
técnicas que sean capaces de localizar a los usuarios en entornos inteligentes,
los cuales mediante tecnologías para el censado de dispositivos móviles
pueden detectar e inferir actividades del usuario, además de que debe
mostrársele al usuario información contextual del ambiente que lo rodea, lo cual
implica que debe considerarse lo siguiente para poder implementar esta
aplicación:
Capítulo 1. Introducción
15
Debe implementarse una técnica adecuada de auto-identificación para
los objetos, lugares y personas, que permita la identificación de múltiples
objetos en el campo de visión del dispositivo.
Deben implementarse técnicas de reconocimiento de múltiples objetos
tanto para la identificación en interiores y exteriores dentro del entorno
inteligente.
Deben establecerse técnicas que permitan la auto-identificación de
personas, que puedan reconocer a una persona y mostrar la información
de ésta mediante información contextual del sistema de recomendación.
Cada técnica utilizada comprende propias dificultades de
reconocimiento, los marcadores deben diseñarse de determinado
tamaño, dependiendo de la resolución de la cámara del dispositivo, para
que puedan identificarse de manera correcta.
La aplicación necesita un repositorio donde pueda asociar los patrones
para la identificación de los objetos y la información de los mismos.
1.4 Objetivos del proyecto
1.4.1 Objetivo general El objetivo de esta tesis es el análisis, diseño e implementación de servicios de
recomendación contextual para instituciones de educación superior, que
utilicen tecnologías de realidad aumentada para mostrar información de
personas, lugares y objetos en dispositivos Smartphone.
1.4.2 Objetivos específicos Implementar servicios de localización en interiores capaces de
determinar la localización en tiempo real de un dispositivo móvil.
Desarrollar un servicio que sea capaz de determinar la orientación del
dispositivo Smartphone mediante los sensores contextuales como el
acelerómetro, magnetómetro y giroscopio.
Desarrollar servicios que permita identificar los objetos, lugares,
personas y edificios que se están visualizando en el dispositivo,
extrayendo la información contextual del modelo semántico
organizacional.
Desarrollar servicios para la extracción de información contextual de una
red de ontologías organizacionales, que contendrán la información del
entorno en el que se desarrollará la aplicación.
Capítulo 1. Introducción
16
Desarrollar servicios que muestren información contextual en tiempo real
de personas, lugares y objetos mediante técnicas de realidad
aumentada.
1.5 Justificación Además de la realidad aumentada como una opción de interfaz para los
sistemas de cómputo ubicuo, también pueden desarrollarse sistemas que
muestren la información contextual del entorno mediante mapas en segunda o
tercera dimensión, sin embargo este tipo de interfaz carece de naturalidad en la
interacción del usuario con la información del entorno, lo que conlleva a
problemas como la interpretación de la información del entorno, la localización
de lugares, objetos o personas que se encuentren en un piso distinto al del
usuario, y al orientar al usuario en cuanto a su localización del edificio [Kurata
2007]. Las tecnologías de realidad aumentada han evolucionado la interacción
con el entorno en los sistemas de computación ubicua, ya que el usuario es
capaz de visualizar el entorno real con información mediante objetos virtuales,
lo que permite una interacción más intuitiva, de tal manera que el usuario
puede obtener la información y recomendaciones de objetos, lugares y
personas únicamente al enfocarlas con el dispositivo [Matysczo 2003].
Actualmente se está desarrollando una nueva versión del sistema de
recomendación contextual de [Arjona 2009], de esta manera este proyecto
integraría nuevas funciones que permitieran ampliar su funcionalidad. Como
parte de las mejoras del sistema T-Guía, se pretende mejorar la aplicación
cliente del sistema, de esta manera se implementarían nuevos métodos de
localización y se aprovecharían tecnologías de los dispositivos móviles que no
se consideraron al desarrollar la primera versión del sistema T-Guía.
Por otro lado, las tecnologías de realidad aumentada le permiten interactuar al
usuario con el entorno real de manera más natural con la información de
entornos inteligentes. Además, los dispositivos Smartphone integran
tecnologías sensoriales que podrían gestionar muchos de los requerimientos
de la implementación de aplicaciones de realidad aumentada. Por lo que al
desarrollar una nueva aplicación de información contextual utilizando
tecnologías de realidad aumentada, se innovaría la interacción del cliente con
el sistema.
Capítulo 2. Marco Teórico
17
Capítulo 2. Marco Teórico
En esta sección se describen algunas herramientas, conceptos y aspectos técnicos que están considerados para el desarrollo del proyecto descrito en este documento.
Capítulo 2. Marco Teórico
18
2.1 Realidad aumentada La realidad aumentada (Augmented Reality, AR) es un área de investigación que se procura mejorar la interacción con el entorno real mediante la superposición de información virtual [Schmalstieg 2011], esto quiere decir que gracias a las tecnologías desarrolladas mediante realidad aumentada podemos elaborar tareas en el entorno real permitiéndonos obtener información de éste mediante la inserción de objetos virtuales en el entorno, la realidad aumentada abarca tres principales características;
La inserción de imágenes virtuales en los entornos reales. Como ya se mencionó anteriormente, la realidad aumentada integra información en el entorno real mediante objetos virtuales, ya sea mediante animaciones u objetos estáticos sobre el video grabado del entorno mediante la cámara del dispositivo.
Reconocimiento de objetos en tercera dimensión. Debido a que la realidad aumentada necesita sobreponer información de los objetos en el entorno, es necesario colocarla de manera precisa sobre cada uno de ellos, de esta forma se aseguraría una correspondencia del objeto con la información virtual, para ello se aplican distintas técnicas de reconocimiento de los elementos en el entorno.
Interactividad en tiempo real. Una de las características que integra la realidad aumentada es, que mientras el usuario interactúa con el entorno real puede interactuar con los objetos virtuales en el mismo instante.
Inicialmente las aplicaciones de realidad aumentada se desarrollaban en computadoras fijas o se construían dispositivos que se montaban sobre el usuario (Head Mounted Display, HMD) para permitir la movilidad de estas aplicaciones en el entorno [Azuma 1997], sin embargo, el costo de estos sistemas y los conocimientos técnicos necesarios para su uso impidieron generalizar la construcción de sistemas de realidad aumentada en estos dispositivos. Actualmente, varios investigadores han desarrollado sistemas de realidad aumentada aprovechando las tecnologías que ofrecen los dispositivos de cómputo móvil, como los PDA’s, Smartphones, Tablets PC, etc. Estos dispositivos contienen tecnologías sensoriales que nos permiten conocer el posicionamiento del usuario en el entorno y además la orientación del usuario para conocer que objetos se encuentran en su campo de visión [Thalmann 2008].
Los sistemas de realidad aumentada requieren de un reconocimiento preciso de la orientación y el posicionamiento del usuario para poder ajustar la información virtual en los objetos reales, para ello pueden utilizarse distintas técnicas con las cuales puede identificarse a los objetos del entorno, estas pueden clasificarse dependiendo a la estrategia y a las tecnologías utilizadas para la identificación de objetos del entorno, comúnmente puede elaborarse la identificación de objetos mediante el uso de marcadores visuales, sin marcadores o mediante tecnologías sensoriales, a continuación se describe en qué consiste cada una de estas tecnologías.
Capítulo 2. Marco Teórico
19
2.1.1 Reconocimiento de objetos mediante el uso de marcadores
Un marcador visual es una imagen que contiene algún código preestablecido, el cual puede ser decodificado por algún dispositivo para el reconocimiento de objetos, transferencia de información, etc.
En la realidad aumentada, los marcadores se utilizan para facilitar y controlar las imágenes que se van a visualizar, además de implementar otras funciones en el sistema, por ejemplo, en [Thomas 2002] se implementó un juego de realidad aumentada en primera persona en el que, además de utilizar marcadores para insertar los objetos virtuales, se implementó un sistema de localización de bajo costo utilizando los marcadores, en donde se establecía la ubicación del usuario en el entorno dependiendo el tipo de marcador. Además de funcionar como un sistema de localización los marcadores permiten obtener la orientación del dispositivo sin necesidad de utilizar sensores de orientación en el dispositivo, en trabajos como [Schmalstieg 2003] y [Schmalstieg 2006] los marcadores ayudan a obtener la orientación del dispositivo de acuerdo a la inclinación de la imagen del marcador capturada.
En la figura 2.1 puede apreciarse un ejemplo de los marcadores que se utilizan comúnmente; de plantilla y matrices de datos. Los marcadores de tipo plantilla son aquellos que se diseñan con alguna figura en particular, especialmente diseñada para reconocer objetos en el entorno, pueden facilitar la interpretación de estos por los usuarios. Las matrices de datos son capaces de almacenar códigos binarios de manera bidimensional, comúnmente se emplean matrices de 6x6 capaces de generar 4096 marcadores distintos, también se han llegado a implementar matrices de datos de 144x144 capaces de almacenar hasta 1558 bytes.
Figura 2.1 marcadores de planti lla y matrices de datos [Schmalstieg 2007]
Además de las matrices de datos, también existen los códigos de respuesta rápida (Quick Responce Code, QRCode), los cuales representan un código bidimensional con el cual se puede codificar texto alfanumérico, códigos numéricos e imágenes, la especificación permite codificar tres clases de información: QRCodes con 7,089 caracteres numéricos, con 4,296 caracteres alfanuméricos y con 2,953 códigos binarios (imágenes) [ISO 2006], En la figura 2.2 puede apreciarse un ejemplo de un QRCode.
Capítulo 2. Marco Teórico
20
Figura 2.2 ejemplo de un QRCode [Woo 2011]
Como puede observarse, los marcadores son capaces de almacenar datos de distintas formas, además que pueden ser útiles para indicarle al usuario zonas de interés. Para poder reconocer la información que se encuentra dentro del marcador podemos utilizar el algoritmo propuesto en [Schmalstieg 2007], el cual consta de cinco fases descritas de la siguiente forma:
Umbralización. En este proceso se eliminan las sombras y los otros colores capturados del entorno, conservando únicamente aquellos colores que permitan identificar al marcador, por ejemplo, en la figura 2.3 puede apreciarse que cuando el marcador se encuentra en blanco y negro, el proceso de umbralización eliminará los otros tonos de la imagen, conservando únicamente aquellos que le permitan identificar el marcador.
Figura 2.3 proceso de umbralización [Schmalstieg 2007]
Detección de marcadores. Una vez que se ha obtenido una imagen con la
umbralización, deberán detectarse todas las figuras que puedan formar un marcador, en este proceso se obtendrán diversas formas sin importar que no formen un rectángulo o la forma establecida del marcador.
Definición de la forma. Una vez obtenidas las figuras candidatas, se someten a una verificación que comprueba que cumplen con la forma de los marcadores, en caso de que los marcadores sean cuadrados, se descartarán todas las figuras que no tengan las propiedades de la forma del marcador.
Verificación de patrones. Una vez obtenidas las figuras de los marcadores, puede identificarse el patrón que este contiene, este proceso permitirá reconocer el marcador y añadir los objetos virtuales correspondientes
Estimación de la orientación. Finalmente puede obtenerse una orientación del dispositivo con respecto al marcador, esto puede hacerse al detectar alguna inclinación en la imagen capturada del marcador
Capítulo 2. Marco Teórico
21
Los marcadores visuales permiten controlar la identificación visual en el entorno, incluso pueden diseñarse para facilitar su reconocimiento, por ejemplo al integrar marcadores de colores más visibles en el entorno, además de poder aprovechar otras funcionalidades de estos, como la obtención de la orientación y ubicación del dispositivo.
2.1.2 Técnicas de reconocimiento visual sin marcadores
En algunos de los entornos, como es en el caso de los museos de patrimonio cultural [Park 2010] y [Papagiannakis 2005], no pueden agregarse marcadores para la identificación de objetos en el entorno, por lo tanto debe optarse por otras estrategias que le permitan a la aplicación identificar que objetos se encuentran a su alrededor. Las técnicas de reconocimiento visual se utilizan en los sistemas inteligentes para facilitar la recolección de los datos y la toma de decisiones, este tipo de técnicas se encarga de clasificar objetos, capturados en alguna escena o imagen capturada, en cierto número de categorías o clases [Pajares 2008].
Muchos sistemas de este tipo se basan en la identificación de formas, bordes, o puntos clave de los objetos en el entorno, para ello es necesario aplicar algún algoritmo de tratamiento de imágenes por visión artificial. Para comprender de manera general como puede llevarse a cabo un reconocimiento visual, se expondrá el algoritmo propuesto por [Matysczok 2003], en el cual se extraen los bordes de una imagen para el reconocimiento de objetos y, posteriormente, para la inserción de información virtual de ese objeto.
Extracción de la estructura del objeto. Es necesario que primero se
obtenga una imagen de algún objeto mediante la cámara del dispositivo, en este paso también se identificarán los bodes y puntos clave que puedan formar alguna figura que pueda ayudar a reconocer el objeto.
Acceso a los datos 3D-CAD. Una vez obtenidas los bordes, puntos o figuras candidatas a formar un objeto, se accede a los modelos creados en programas de diseño asistido mediante computadora (CAD), estos modelos almacenan las formas de los objetos del entorno que pueden ser identificados, de esta forma ayudarán a comparar las figuras obtenidas en el primer paso para determinar si se trata de algún objeto contextualizado.
Detección de figuras auxiliares. Una vez obtenido el modelo 3D-CAD,
se compara este modelo con las figuras obtenidas en la captura de la imagen, de esta forma se obtendrán todas las coincidencias con el modelo, obteniendo una primera forma del objeto.
Reducción de polígonos. Ya que se han obtenido los bordes, puntos
clave y figuras que coinciden con el modelo 3D-CAD, aquellos que no hayan coincidido con el modelo serán descartados, reduciendo las figuras capturadas para simplificar la forma del objeto y su reconocimiento.
Extracción de bordes dominantes. Ya que se cuenta únicamente con las figuras que coinciden con el modelo, se definen los bordes y superficies que formarán al objeto.
Capítulo 2. Marco Teórico
22
Definición de relaciones. Una vez definidos los bordes y las superficies
capturadas, se procede a formar relaciones entre estos para definir el objeto, esto permite reconocer finalmente al objeto
Conversión de datos. Finalmente, este objeto puede pasarse a un
formato de reconocimiento, en donde pueda devolverse una clave de identificación, que le pueda indicar al sistema cómo reaccionar una vez que se ha reconocido el objeto, en algunos casos este objeto puede llegar a almacenarse para enriquecer los modelos 3D-CAD.
Como puede verse, el proceso de reconocimiento de objetos requiere un tratamiento avanzado de imágenes, debido a que estos objetos deben ser identificados sin importar de qué ángulo haya sido capturada la imagen, es por ello que los modelos 3D-CAD deben capturarse de manera robusta, de tal forma que el objeto pueda identificarse de diferentes perspectivas.
2.1.3 Técnicas de reconocimiento sensorial
Las técnicas de reconocimiento sensorial pueden dividirse en dos tipos de acuerdo al tipo de reconocimiento que utilizan, por un lado se encuentran aquellas técnicas que se encargan de reconocer los objetos al recibir una señal mediante algún tipo de sensor, y por otro lado se encuentran aquellas que utilizan sensores de orientación para definir que objetos se encuentra visualizando el usuario de acuerdo a la posición en la que se encuentra el dispositivo.
Algunos trabajos han utilizado tecnologías como la identificación por luces infrarrojas, tecnologías por identificación de radiofrecuencia (RFID) u otro tipo de sensores. En trabajos como [Olwal 2006] se utilizan sensores infrarrojos en los dispositivos para poder detectar una señal capaz de identificar objetos del entorno y proyectar información contextual del mismo. El trabajo [Rashid 2006] utiliza la tecnología RFID para integrar etiquetas en los puntos de interés (points of interest, POI) capaces de contener información de estos, para la lectura de estas etiquetas, se integró un lector de RFID en el dispositivo, de esta forma el sistema era capaz de reaccionar ante los POIs del entorno detectados por el dispositivo.
Como puede apreciarse, este tipo de tecnologías se utiliza de manera similar a los marcadores visuales, añadiéndole a algún objeto del entorno un mecanismo capaz de emitir una señal que pueda ser recibida por el dispositivo y de esta forma poder identificarse. Sin embargo, existen otros trabajos que aprovechan los sensores de orientación como el acelerómetro, giroscopio y magnetómetro para identificar los POIs del entorno. Trabajos como [Paucher 2010] implementan un reconocimiento a base de los sensores de orientación, el cual después se complementa con un reconocimiento visual para lograr una mayor precisión para la correspondencia de la información virtual con los objetos reales.
En [Mulloni 2010] se propuso un método con el cual puede saberse si el dispositivo se encuentra viendo un POI a partir de su orientación, en la figura 2.4 puede apreciarse el modelo de orientación de un dispositivo con respecto a un POI, como puede verse, existen tres rotaciones R definidas por los
Capítulo 2. Marco Teórico
23
acelerómetros de los ejes X, Y y Z. Una rotación del dispositivo con respecto al norte (RDN), la rotación del POI con respecto al norte (RPN) y finalmente una rotación del dispositivo con respecto al POI (RDP), el norte se define con las mediciones del magnetómetro del dispositivo.
Figura 2.4 modelo de rotaciones en un reconocimiento sensorial por orientación
Para que este modelo funcione es necesario establecer una localización del usuario con el entorno, ya que la orientación de los POIs puede variar de acuerdo a la ubicación del usuario en el entorno, una vez establecida la localización del usuario, se toman los datos de las rotaciones RPN, donde se encontrarán referenciados los POIs. Cada vez que el usuario se encuentre en la localización definida se obtiene la rotación del dispositivo RDN, esta rotación obtenida puede compararse con la rotación de los POIs RPN y obtener la rotación RDP, esta última rotación definirá la rotación que existe entre el punto de interés y el campo de visión del dispositivo, cuando la orientación del campo de visión del dispositivo este cerca de un POI, podrá visualizarse la información contextual de este.
Como puede apreciarse, las técnicas sensoriales son capaces de identificar objetos al capturar señales en el entorno, o bien, al identificar la orientación del dispositivo, sin embargo ninguna de estas técnicas utiliza la cámara del dispositivo para elaborar algún tipo de reconocimiento, por lo que la precisión de estas técnicas se basa únicamente en las señales capturadas o en las orientaciones medidas, lo que hace que este tipo de técnicas tenga una menor precisión en la correspondencia de las anotaciones virtuales con los objetos reales.
2.2 Computación ubicua La computación ubicua mejora el uso de las computadoras haciendo que estas estén conscientes de un entorno físico, procurando que éstas no sean perceptibles para el usuario, por lo tanto podemos definir a la computación ubicua como el diseño de ambientes inteligentes que integran computadoras o dispositivos que sean capaces de registrar los cambios o actividades que se efectúan en el entorno, de esta manera se pueden implementar sistemas que pueden cambiar su comportamiento de acuerdo a los eventos que se presenten en su entorno. [Weiser 1993]
Capítulo 2. Marco Teórico
24
La computación ubicua surge con el objetivo de integrar a las computadoras en las actividades de la vida cotidiana, de esta manera las computadoras podrían gestionar la información del entorno sin necesidad de que el usuario tuviera conciencia de los dispositivos encargados de construir el ambiente inteligente, para ello, se han diseñado dispositivos de cómputo móvil cada vez más discretos, como los Smartphones o PDA’s, capaces de obtener información del posicionamiento y la orientación del usuario a base de sensores integrados en los dispositivos, además, también se han diseñado tecnologías capaces de integrar técnicas de auto-identificación de los objetos en el entorno, como los marcadores, códigos QR o etiquetas RFID.
2.3 Servicios de recomendación contextual El modelado y administración de contexto es crítico para la implementación de servicios inteligentes (Smart Services), término que incluye dos áreas específicas de investigación: a) técnicas de interacción inteligentes, que tratan aspectos relacionados con el descubrimiento, agregación y entrega de recursos, b) servicios inteligentes, enfocados en proporcionar la infraestructura adecuada para dar soporte a las interacciones inteligentes; es decir, proporcionar la funcionalidad requerida que permita a un sistema adaptarse a su entorno y a las preferencias y necesidades del usuario.
Esto significa que además de conocer el contexto del usuario, también se requiere conocer el contexto que le rodea, país, ciudad, época del año, horario, etc. El contexto se puede representar con información espacial, se utilizan bases de datos espaciales (SIG) que procesan información georeferencial (longitud, latitud) para ubicar puntos o superficies de terrenos o instalaciones en cualquier lugar del planeta, esta información es útil para establecer límites, siempre que sea necesario restringir el razonamiento espacial, de acuerdo a los elementos que se encuentren cercanos a una persona, como por ejemplo personas, instalaciones negocios, lugares, etc.
Con esto se reconoce la importancia de la heterogeneidad de la información contextual, así como también de las relaciones inherentes a ésta. Lo anterior se puede resumir con la siguiente definición de contexto: Cualquier información útil para caracterizar el estado de entidades individuales y las relaciones entre ellos. Una entidad es cualquier objeto o persona que puede afectar el comportamiento de un sistema y/o su interacción con el usuario.
En la última década se han buscado distintos enfoques para representar y administrar la información contextual. Entre estos acercamientos se encuentran: listas de atributos con sus respectivos valores, modelos XML con una estructura de datos jerarquizada de atributos y valores, modelos orientados a objetos y modelos basados en ontologías, estos últimos permiten definir especificaciones formales de entidades contextuales y sus relaciones dentro de un dominio.
Utilizando modelos semánticos basados en ontologías es posible caracterizar dimensiones espacio-tiempo, en donde se modela tanto a las personas como a los lugares. Las personas se modelan mediante su perfil, el cual describe los detalles del usuario en forma de una jerarquía conceptual, representando información como: el nombre, la edad, el año de nacimiento, el nivel
Capítulo 2. Marco Teórico
25
académico, sus dominios de conocimiento, sus competencias individuales1, sus
preferencias, gustos, su agenda, y más. Con relación al modelado de lugares, se pueden modelar organizaciones describiendo aspectos tales como su infraestructura tecnológica e instalaciones (activo fijo), sus recursos humanos
(capital intelectual), sus objetos de conocimiento 2 (capital estructural), sus
servicios y sus competencias organizacionales 3 , adicionalmente se pueden
modelar atributos relacionados con espacio-tiempo tales como: horarios, actividades, servicios, ubicación, etc. Con estos modelos se puede integrar una red de ontologías que represente un modelo semántico multidimensional.
Como resultado de este modelado semántico multidimensional, los servicios de recomendación contextual han emergido como un área de investigación que ofrece varios nichos de oportunidad, áreas como la sobrecarga de información y soporte para la toma de decisiones [Middleton 2009]. El enfoque semántico derivado de las ontologías se puede explotar de manera efectiva en servicios de recomendación contextual, ya que confiere una capacidad de inferencia sobre la información, haciendo uso de lenguajes basados en lógica de primer orden y cláusulas de Horn [Breitman 2007].
2.4 Modelado organizacional orientado al entorno El modelado organizacional es una disciplina que se encarga de externalizar y formalizar conocimiento estructural y de comportamiento sobre cómo se organiza, trabaja y cuáles son las funciones de una organización [Cheung 2006], lo cual permite describir de manera más sencilla las competencias, recursos técnicos, tecnológicos, objetos de conocimiento, etc. Para poder describir los elementos de la organización mencionados anteriormente, se utilizan herramientas como la Web Semántica, memorias corporativas, modelos de competencia y ontologías de la organización.
Los modelos organizacionales nos permiten contener un repositorio con el cual podemos almacenar y administrar información sobre los recursos, la infraestructura, datos del personal, eventos, actividades y demás acerca de una organización, con lo que este repositorio nos suele ser de gran utilidad para elaborar aplicaciones como servicios de recomendación de la organización, modelos de representación del entono organizacional, e incluso sistemas de cómputo ubicuo que puedan informar a un usuario acerca de la localización de recursos, lugares o eventos que se efectúen en el entorno. De esta forma, las herramientas que permiten modelar la información de las organizaciones nos sirven para extraer información relevante para el tipo de aplicaciones que se pretendan diseñar, en el caso del cómputo ubicuo, pueden diseñarse sistemas que permitan obtener información acerca de los eventos, lugares, personas u objetos que se encuentran en el entorno basándose en un repositorio con la información de la organizacional, por ejemplo ontologías organizacionales.
1 Conjunto de características personales (conocimiento, habilidades, destrezas, intereses, educación y entrenamiento) que un individuo aplica en un rango de
situaciones de un dominio de conocimiento.
2 Representación física de conocimiento, de tal manera que dicho conocimiento quede plasmado en un medio físico, en forma de texto, audio, video o
imagen.
3 Se define como las capacidades colectivas que permitirán a una organización sacar provecho a sus servicios o productos, de sus objetos de conocimiento, de
su infraestructura, prestigio y capital intelectual.
Capítulo 2. Marco Teórico
26
2.5 Android Es un sistema operativo desarrollado por Google, el cual contiene un conjunto de aplicaciones para dispositivos móviles. Android está diseñado para que los desarrolladores puedan crear aplicaciones en las que se aproveche al máximo los recursos y las funciones de los dispositivos móviles. Android está desarrollado sobre el núcleo del sistema operativo Linux, además utiliza una máquina virtual que ha sido diseñada para optimizar los recursos de memoria y hardware en un entorno móvil.
Actualmente, los desarrolladores de Android han liberado un SDK (Software Development Kit) con el cual se pueden construir aplicaciones en el lenguaje de programación Java, además este SDK puede actuar como un complemento para el entorno de desarrollo Eclipse. Esto se ha hecho con el fin de permitirles a los desarrolladores diseñar aplicaciones tomando ventaja de todas las características que los dispositivos pueden ofrecer [Kumar 2008].
2.6 Tecnología sensorial en Smartphones Actualmente la tecnología celular ha evolucionado hasta el punto en que puede incluir dispositivos que permitan reconocer actividades del entorno físico, tal como la cámara, micrófonos, acelerómetros, GPS, etc. Para poder procesar esta información es necesario contar con sensores que permitan captar las señales físicas para su transformación en datos electrónicos. Un sensor cuenta con los componentes básicos que se muestran en la figura 2.5, una unidad de detección (Sensing unit), unidad de procesamiento (Processing unit), unidad transceptora (Transceiver) y una unidad de energía (Power unit), pueden tener Componentes adicionales dependientes de alguna aplicación, tales como un sistema de localización (Location finding system), generador de energía (Power generator) o un movilizador (Mobilizer).
Figura 2.5 Principales componentes de los sensores [Akyildiz 2002]
Las unidades de detección están compuestas de dos sub-unidades: sensor y convertidores analógicos a digitales (Analogic-to-Digital Converters, ADC), el sensor produce las señales analógicas de acuerdo a los datos recibidos del
Capítulo 2. Marco Teórico
27
entorno, estas señales analógicas son convertidas a digitales por el ADC y entonces se envían a la unidad de procesamiento. La unidad de procesamiento, que está generalmente asociada con una pequeña unidad de almacenamiento, procesa la información que recibe para convertir los datos recibidos en información, el transceptor es aquel que se encarga de enviar y recibir información de otros sensores o dispositivos, para que estos puedan interactuar con el sensor, uno de los componentes más importantes de un sensor es la unidad de energía, ya que ésta provee al sensor la energía para su funcionamiento [Akyildiz 2002].
En este proyecto se utilizarán sensores que puedan determinar la orientación del dispositivo, para ello pueden emplearse sensores del tipo magnetómetro, giroscopio y acelerómetros de tres ejes.
Magnetómetro. En general, un magnetómetro es el tipo de sensor que permite medir la intensidad y dirección de alguna señal magnética, en algunos celulares, este tipo de sensor nos permite detectar la dirección de la señal magnética de la tierra y determinar la orientación del teléfono celular con respecto a los puntos cardinales, lo que a veces puede funcionar como una brújula digital [Kim 1989].
Giroscopio. Un sensor de tipo giroscopio registra los movimientos entre los
tres ejes (eje longitudinal, eje vertical y eje transversal de acuerdo a las tres dimensiones del entorno real), de tal manera que podemos detectar la orientación y la inclinación del dispositivo, en la figura 2.6 puede apreciarse un ejemplo de un giroscopio digital, se considera el punto central del dispositivo como el punto de gravedad del giroscopio, y de acuerdo a este punto el sensor tomará los valores de su eje vertical (yaw), eje longitudinal (roll) y eje transversal (pitch), dependiendo de la inclinación en la que se encuentre el sensor [Jones 2010].
Figura 2.6 diagrama de un giroscopio digital [Jones 2010]
Acelerómetro. Un sensor del tipo acelerómetro se encarga de medir las
aceleraciones y vibraciones, los acelerómetros son direccionales, esto quiere decir que los acelerómetros pueden medir la aceleración en un solo eje, sin embargo se han podido desarrollar acelerómetros capaces de leer en múltiples ejes, los cuales nos permiten medir la aceleración en tres dimensiones. A diferencia del giroscopio que se encarga de obtener el posicionamiento del
Capítulo 2. Marco Teórico
28
dispositivo con respecto a sus ejes, el acelerómetro permitirá obtener la velocidad en la que el dispositivo se mueve o cambia de posición en los tres ejes mencionados anteriormente [Jones 2010].
Capítulo 3. Estado del Arte
29
Capítulo 3. Estado del Arte
En esta sección se analizaran los trabajos que tienen objetivos similares a los del proyecto en desarrollo, evaluando cada una de las propuestas de solución de estos mismos.
Capítulo 3. Estado del Arte
30
3.1 Sistemas
En esta sección se describirán los trabajos que desarrollaron sistemas capaces de insertar objetos virtuales en el entorno, cada uno de ellos fue diseñado para cierto tipo de entornos con necesidades muy particulares de los mismos.
3.1.1 A Tracking Framework for Augmented Reality Tours on
Cultural Heritage Sites [Park 2010]
El departamento de ingeniería en electrónica y computación de la universidad Hanyang en Corea, desarrolló una aplicación de realidad aumentada para el palacio Gyeongbokgung, el cual es un museo de patrimonio cultural ubicado en Corea. El objetivo de este proyecto era elaborar una inserción de información virtual en las exhibiciones del museo mediante realidad aumentada, sin embargo, una de las principales restricciones que tiene este museo de patrimonio cultural es que no se pueden agregar marcadores al entorno para facilitar el reconocimiento de objetos.
En este trabajo se menciona que existen distintos tipos de métodos para la identificación de objetos en sistemas de realidad aumentada, tales como el reconocimiento mediante el uso de marcadores, sin marcadores (reconocimiento de formas, figuras o patrones) o bien, utilizando tecnologías sensoriales, tales como la radio frecuencia, sensores del dispositivo, etc. Debido a la naturaleza del museo, fue imposible para este proyecto emplear la identificación de los objetos a través de marcadores, por lo cual, propone un método hibrido, entre técnicas de identificación visual y reconocimiento sensorial, para la asociación de objetos virtuales con los objetos reales. Para ello se diseñó un algoritmo como se muestra en la figura 3.1.
Figura 3.1 algoritmo de estimación de poses [Park 2010]
Capítulo 3. Estado del Arte
31
Este algoritmo funciona con tres tipos de identificación, la identificación sensorial TF1, la identificación visual (TF2 y TF3) y la identificación mediante la combinación de estas dos técnicas (TF4). Para elaborar el reconocimiento sensorial TF1, se utilizan sensores de posicionamiento, tales como el GPS, acelerómetro y giroscopio, los cuales permiten estimar la localización, orientación y velocidad con la que se mueve un usuario en el entorno. En el reconocimiento mediante visualización (TF2 y TF3) también estima el posicionamiento del usuario de acuerdo a las imágenes capturadas con la cámara del dispositivo, eso se hace mediante el reconocimiento de figuras, tales como bordes, esquinas o características que son detectadas en las imágenes capturadas. En TF2 el posicionamiento es estimado utilizando el reconocimiento de las figuras de manera directa, siempre que las características de la escena detectada sean conocidas, por ejemplo una serie de segmentos rectangulares que dominen la escena pudieran describir la forma específica de un cuarto en el entorno, o bien, alguna figura especifica podría describir un objeto en particular. En TF3, la información referente a la escena capturada está predefinida en una base de datos, el posicionamiento es definido cuando las figuras detectadas en la escena coinciden con las que se encuentran almacenadas en la base de datos, la cual puede contener referencia de imágenes o el conjunto de ellas así como sus trasformaciones, tales como la rotación o la escala.
Finalmente se emplea un reconocimiento hibrido (TF4) que combina las técnicas basadas en visión y las mediciones obtenidas mediante la localización sensorial, de manera que la localización sensorial puede proveer información acerca de una región de interés (Region Of Interest, ROI), una vez identificada la región de interés en la que se encuentra el usuario, es posible ajustar los objetos virtuales al entorno real mediante una identificación visual de aspectos clave del ambiente.
Como ya se mencionó anteriormente, este algoritmo se aplicó al palacio Gyeongbokgung, tomando los algunos aspectos principales de acuerdo a las posibles formas de los cuartos y a la localización del usuario con el entorno, en la figura 3.2 pueden apreciarse algunos ejemplos de la inserción de los objetos virtuales en algunas de las salas del palacio. En algunas de las salas, como la que se muestra en la figura 3.2.a, se pudo insertar el objeto virtual debido a la forma de los objetos que se encontraban en el cuarto (cuatro pilares y un recuadro en la parte superior), mientras que en otras salas, como en la figura 3.2.b y 3.2.c, es necesario localizar primero al usuario y después reconocer algún patrón establecido, tal como se explicó en el algoritmo de reconocimiento hibrido.
Capítulo 3. Estado del Arte
32
Figura 3.2. Técnicas de realidad aumentada implementadas en el palacio de
Gyeongbokgung [Park 2010]
3.1.2 An Augmented Reality Presentation System for Remote
Cultural Heritage Sites [Zöllner 2009]
En este proyecto se implementó un sistema que mostraba información y objetos virtuales en las exhibiciones de un museo de arqueología y patrimonio cultural, el usuario podía observar videos, imágenes, texto informativo y modelos en 3D de lugares históricos a partir del reconocimiento de una imagen del entorno.
Para mostrar la información virtual se elaboró un reconocimiento visual de los murales o pinturas que se encontraban en el entorno. En ciertos lugares de los museos se instalaron dispositivos como el que se muestra en la figura 3.3, los cuales únicamente tenían 180 grados de libertad, cuando el usuario enfocaba alguno de los murales era posible insertar los objetos virtuales.
Capítulo 3. Estado del Arte
33
Figura 3.3 dispositivo estático para la visualización de información contextual en
murales [Zöllner 2009]
Además, el usuario también podía visualizar los objetos virtuales en dispositivos móviles, como se muestra en la figura 3.4, en este tipo de reconocimiento, el usuario podía acercarse a una pintura que estuviera paralela al suelo, el dispositivo mostraba un objeto virtual físico, el cual se quedaba de manera estática sobre la pintura, permitiéndole al usuario moverse alrededor de ella para visualizar este objeto en distintas perspectivas. Este sistema fue implementado en tres museos de patrimonio cultural, adaptando los objetos virtuales para las exhibiciones y utilizando las mismas técnicas de reconocimiento de objetos.
Figura 3.4 inserción de objetos virtuales en los dispositivos móviles [Zöllner 2009]
3.1.3 Location-based augmented reality on mobile phones
[Turk 2010]
El laboratorio “Four Eyes” de la universidad de california implementó un sistema de realidad aumentada capaz de elaborar un reconocimiento visual y sensorial por orientación de los objetos del entorno. Este proyecto propone un enfoque en el que se aprovechan los servicios de localización y estimación de posicionamiento para desarrollar aplicaciones de realidad aumentada, a su vez, integran técnicas de reconocimiento visual de objetos para lograr una mayor precisión para insertar objetos virtuales.
Los desarrolladores del proyecto proponen el modelo que aparece en la figura 3.5, la nube azul representa el entorno, en el cual pueden existir diversos puntos de interés y varias localizaciones en donde puede estar el usuario (representadas por los puntos verdes), cada una de estas localizaciones define dos movimientos; uno de rotación, en donde el usuario puede girar con el dispositivo visualizando el entorno a su alrededor, y otro de traslación, en donde el usuario cambia de una localización a otra. Cada una de estas localizaciones contiene un campo de visión, el cual puede variar dependiendo la rotación del usuario, en este campo de visión pueden encontrarse distintos puntos de interés (representados por los cubos amarillos), de tal forma que cuando un usuario se encuentre en una localización y oriente el campo de
Capítulo 3. Estado del Arte
34
visión a un punto de interés, el sistema deberá mostrarle información de ese punto mediante realidad aumentada.
Figura 3.5 Modelo de reconocimiento mediante localización y orientación propuesto
en el proyecto [Turk 2010]
Para el reconocimiento mediante la orientación, se emplearon el magnetómetro y acelerómetros de tres ejes, además de recibir las señales del norte magnético y la orientación del dispositivo, estos sensores también captan señales de eléctricas de objetos cercanos y las aceleraciones que se ejercen sobre el dispositivo, por ejemplo la gravedad o el movimiento del usuario, por lo que estas medidas pueden variar y afectar la precisión de los objetos virtuales. Uno de los problemas que se expone en este método es que la precisión en la inserción de los objetos virtuales suele ser afectada por las mediciones de los sensores y la precisión del servicio de localización, es por ello que se implementaron técnicas de visualización que permitieran insertar los objetos virtuales de manera precisa, en la figura 3.6 puede apreciarse que con el método de reconocimiento por orientación (figura de la izquierda) no se obtiene una gran precisión en la relación de los objetos virtuales con los reales, al implementar las técnicas visuales, se logró una correspondencia como se muestra en la figura de la derecha.
Figura 3.6 aumentación mediante el reconocimiento por orientación y a juste
mediante técnicas de reconocimiento visual
Capítulo 3. Estado del Arte
35
3.1.4 An Augmented Reality Interface to Contextual Information [Ajanki
2011]
En este proyecto se implementó un sistema de información contextual en una institución de educación superior, capaz de proporcionar información del entorno dependiendo a la forma en que el usuario interactuaba con ella.
Para poder retribuirle información al usuario utilizo un algoritmo como el que aparece en la figura 3.7, primero el sistema infiere la relevancia de la información de acuerdo al contexto, como el lugar y horario, y de acuerdo al lugar en que se encuentra el usuario, ésta información se proyecta mediante realidad aumentada en un dispositivo HDM (Head Mounted Display), finalmente se evalúa la interacción que tiene el usuario con esta información de acuerdo con su interacción con esta, ésta interacción le permite al sistema volver a inferir la relevancia de información extra del elemento del entorno que el usuario esté visualizando.
Figura 3.7 algoritmo para la retribución de información en el sistema [Ajanki 2011]
En este sistema se podían insertar las anotaciones virtuales como se muestra en la figura 3.8, como puede observarse, en este proyecto se elaboraba un reconocimiento facial a las personas que pudieran conocer temas de interés para el usuario, mientras que los puntos de interés, como lugares del entorno, eran reconocidos mediante marcadores visuales. Además de utilizar estas técnicas de identificación, el sistema podía elaborar un reconocimiento de voz, de esta forma el usuario podría proporcionar información extra del contexto.
Capítulo 3. Estado del Arte
36
Figura 3.8 reconocimiento de objetos e inserción de información en el entorno
[Ajanki 2011]
3.1.5 Personalized In-store E-Commerce with the PromoPad: an
Augmented Reality Shopping Assistant [Zhu 2008]
En este proyecto se implementó un sistema en un centro comercial, el cual les proporcionaba recomendaciones personalizadas a los clientes del almacén. De tal forma que cuando un usuario se encontraba cerca de algún producto que pudiera ser de interés para él, se le mostraba un acercamiento del producto, como se muestra en la figura 3.9, donde además se le mostraba información del producto y algunas recomendaciones de otros productos similares o complementarios.
Figura 3.9 acercamiento a un producto de posible interés para el cliente
Para poder obtener la información del usuario, se les repartía una tarjeta a los clientes frecuentes, de esta forma se podía comprobar que el cliente estaba utilizando el sistema, con esta tarjeta era posible identificar al usuario y tener un registro de las compras que había elaborado anteriormente, permitiendo elaborar un perfil de él para recomendarle productos que pudieran serle de interés. En este sistema se implementó un servicio de localización mediante marcadores visuales, de tal forma que únicamente se podría identificar la localización del usuario cuando éste se encontrara cerca de un producto contextualizado.
Capítulo 3. Estado del Arte
37
3.2 Herramientas
En esta sección se describirán algunas herramientas que pretenden facilitar la implementación de aplicaciones, con tecnologías de realidad aumentada en interiores, estas aplicaciones se diseñaron para poder integrar sus funcionalidades a diversos entornos.
3.2.1 Look!: Framework para Aplicaciones de Realidad Aumentada en Android [Bellón 2011]
Ésta herramienta fue desarrollada en la Universidad Complutense de Madrid dentro de la facultad de informática, en este proyecto se pretendía desarrollar una herramienta capaz facilitar la implementación de sistemas de realidad aumentada, para ello se implementaron varios algoritmos para gestionar el reconocimiento de objetos mediante los sensores de orientación e integraron un sistema de localización mediante tecnologías Wi-Fi.
Además de integrar diversos métodos para la manipulación de los sensores de los dispositivos, para el reconocimiento por orientación, se integraron otras funcionalidades y servicios, con el objetivo de abarcar la mayoría de las necesidades que se presentan en la implementación de sistemas de realidad aumentada, dichos aspectos son los siguientes:
Localización en interiores: Como ya se menciono anteriormente, este
proyecto integra un algoritmo de localización en interiores por tecnología
Wi-Fi conocido como Closest Neighbor, en el cual se establecen
determinadas localizaciones en el entorno de acuerdo a la frecuencia
recibida por la señal Wi-Fi, el sistema determina la localización del
usuario mediante la cercanía de los puntos de localización definidos
anteriormente.
Representación gráfica: En este punto, el Framework permite la
representación gráfica de elementos tanto en dos dimensiones como
tres dimensiones, únicamente proporcionándole al sistema la
información suficiente de los objetos que serán dibujados.
Interacción con los objetos virtuales: El Framework integra un
sistema de interacción táctil con los objetos virtuales, de tal forma que el
programador debe preocuparse por el efecto producido en dicha
interacción.
Acceso a Servicios Remotos: Adicionalmente éste Framework
pretende facilitar el acceso a servicios externos, tales como bases de
datos alojadas en servidores remotos.
3.2.2 CAMAR Tag Framework: Context-Aware Mobile Augmented Reality Tag Framework for Dual-reality Linkage [Woo 2009]
En este proyecto se propuso un Framework basado en realidad aumentada para dispositivos móviles consciente del contexto (Context-Aware Mobile
Capítulo 3. Estado del Arte
38
Augmented Reality, CAMAR), con el cual, el usuario podría agregar anotaciones virtuales en un entorno determinado.
Para el funcionamiento de este Framework, el usuario debe capturar imágenes del entorno en distintas perspectivas, esto es debido a que ésta herramienta emplea un reconocimiento visual, por ello es necesario extraer primero los puntos clave de los objetos del entorno para generar modelos que permitan su reconocimiento posteriormente, estos modelos pueden ser almacenados en un servidor de la red interna del sistema. Con los modelos capturados anteriormente, el sistema generará un entorno virtual como aparece en la figura 3.10, con ayuda del entorno virtual, el usuario podrá generar anotaciones, insertar o eliminar objetos en el entorno, de esta forma, cuando el sistema reconozca un objeto, a partir de los modelos generados anteriormente, se podrá insertar información virtual del entorno diseñada por el usuario.
Figura 3.10 generación del mundo virtual a partir del entorno real en el proyecto
[Woo 2009]
3.2.3 Unified Context-aware Augmented Reality Application Framework for User-Driven Tour Guides [Woo 2010]
Este trabajo desarrolló un Framework orientado a la implementación de aplicaciones de realidad aumentada, para mostrar información contextual en museos, permitiéndole al usuario contribuir en el enriquecimiento de información de las exhibiciones.
Este proyecto extiende las funcionalidades del proyecto CAMAR descrito en [Woo 2009], por lo que también genera un entorno virtual a partir de imágenes capturadas de los objetos que se desean contextualizar, sin embargo, en este Framework se implementaron funciones de localización y reconocimiento sensorial para facilitar el almacenamiento de modelos.
El sistema utilizaba un servicio de localización mediante marcadores visuales, además obtenía la información de la rotación del dispositivo para facilitar el reconocimiento de los objetos en tercera dimensión. Una vez obtenida la ubicación y orientación del dispositivo, el entorno virtual podía ser generado, de la misma forma que el Framework CAMAR. De esta forma el usuario podía agregar anotaciones virtuales en las exhibiciones, las cuales se almacenarían en el entorno virtual para su posterior proyección.
Capítulo 3. Estado del Arte
39
3.3 Análisis del estado del arte Una vez presentados los trabajos similares al proyecto que se encuentra en desarrollo, se procede a comparar las características de cada uno de ellos y las del trabajo que se realizó. De acuerdo con [Swan 2010], los sistemas de realidad aumentada deben considerarse características del entorno, el registro de la información del entorno (captura), el diseño y precisión de la inserción de objetos virtuales (aumentación), los aspectos del dispositivo y los requerimientos de interacción con el usuario, al considerar estas características se solucionan muchos de los problemas que se suscitan en la implementación de estas aplicaciones. Para evaluar los aspectos de estos sistemas, se evaluarán las características mencionadas anteriormente de la siguiente forma:
Entorno: en este punto se considerará el entorno donde se implementó
o para el que fue diseñada la aplicación, también se especifica si el
entorno cuenta con servicios de localización o si requirió de alguna
infraestructura especial para la implementación del sistema.
Captura: se abordarán las técnicas que se emplearon para el
reconocimiento de los elementos del entorno.
Aumentación: se considerarán los objetos virtuales insertados por cada
uno de los trabajos para representar información en el entorno, en este
caso no se evaluará la precisión en la correspondencia de la información
con los objetos virtuales, debido a que cada una de estas aplicaciones
es precisa para sus requerimientos particulares.
Dispositivo: se referirá al tipo de dispositivo en el que se implementó el
sistema o bien la tecnología del hardware que utiliza.
Usuario: en este aspecto se describirá la interacción entre el usuario y
el sistema que se diseñó en el sistema.
Una vez establecidos estos aspectos, se procede a evaluar cómo se comportan los sistemas ante cada uno de ellos, para ello se elaboró la siguiente tabla:
Capítulo 3. Estado del Arte
40
Entorno Captura Aumentación Dispositivo Usuario
[Park 2010] Museo de patrimonio cultural, suele utilizar el GPS para la localización
Reconocimiento visual y por orientación
Inserción personas y objetos virtuales en los objetos
contextualizados del entorno
Cámara GPS Acelerómetro
Giroscopio Magnetómetro
inserción de objetos virtuales para representar información de las
exhibiciones
[Zöllner 2009] museos de arqueología y patrimonio cultural
Reconocimiento visual de pinturas en el
entorno
inserción de lugares virtuales, cuadros con mensajes de texto
Cámara Acelerómetro Giroscopio
El usuario podía obtener información y visualizar lugares virtuales desde
distintas perspectivas
[Turk 2010] institución de educación superior
Identificación sensorial por orientación y
reconocimiento visual de objetos en 3D
Remarca la figura de los objetos detectados
Cámara Acelerómetro Giroscopio
Magnetómetro
Permitió desarrollar una metodología para insertar objetos de manera precisa
[Ajanki 2011] institución de educación superior
reconocimiento facial, marcadores
visuales, reconocimiento de voz
Recuadros transparentes con texto informativo
Cámara Micrófono
Proporcionaba al usuario información del entorno a partir su interacción y el
contexto en que se encuentre
[Zhu 2008] Centro comercial, se implementó localización por
marcadores visuales
reconocimiento visual de los
productos
elabora un acercamiento del
producto y muestra información y recomendaciones de
otros productos similares
Cámara
Se tiene un registro del historial del usuario para
elaborar las recomendaciones de los productos
[Bellón 2011] Considera la implementación en
cualquier entorno, incluye servicios de localización Wi-Fi
Reconocimiento sensorial por
orientación de los objetos
capaz de insertar objetos en 2D y 3D
Magnetómetro Acelerómetro
Giroscopio
permite insertar objetos virtuales especificando la
orientación de estos
[Woo 2009] diseñado para cualquier entorno en interiores
Reconocimiento visual de los objetos
Genera un entorno virtual con anotaciones de acuerdo a los
modelos de reconocimiento de objetos
Cámara
Permite insertar objetos en 2D y 3D sobre los objetos del entorno
[Woo 2010] Orientado para museos, implementa un servicio de
localización por marcadores visuales
Reconocimiento visual de
objetos
se basa en el Framework de [Woo
2009], integra el reconocimiento por localización y
orientación del dispositivo
Acelerómetro Giroscopio
Cámara
Le permite insertar a los usuarios anotaciones
sobre las exhibiciones del museo
Proyecto desarrollado
institución de educación superior
Reconocimiento por orientación
Insertará iconos representativos e información de los
objetos
Magnetómetro Acelerómetro Giroscopio
proporciona recomendaciones del entorno de acuerdo al
contexto y al perfil del usuario
Como pudo verse, muchos de estos trabajos emplean algoritmos híbridos para la identificación de objetos, con el objetivo de elaborar un reconocimiento más robusto de los elementos del entorno, además, todos los trabajos analizados implementan su aplicación en dispositivos móviles de algún tipo, lo que indica que los sensores de este tipo de dispositivos puede gestionar mucha de la información del entorno.
Capítulo 3. Estado del Arte
41
Sin embargo, a pesar de en muchos de los trabajos de este tipo intentan lograr una gran precisión en el entorno de investigación, esto conlleva a ciertas desventajas, estos sistemas pueden ser implementados únicamente en el entorno donde fueron diseñados, esto es debido a que los patrones de los modelos en tercera dimensión o bien los marcadores visuales únicamente están diseñados exclusivamente para el entorno de implementación, en caso de que se quisieran migrar a otro tipo de organización, necesitarían rediseñar sus modelos de reconocimiento o posiblemente algunos de sus algoritmos implementados, en cambio, la aplicación desarrollada, es capaz de utilizarse en distintos tipos de organizaciones, debido a que el algoritmo para la identificación de puntos de interés es más simple y puede adaptarse fácilmente a cualquier entorno, únicamente realizando una extracción de las ubicaciones del usuario, los puntos de interés y la orientación de estos mismos. Además de ello, los patrones visuales únicamente son reconocidos cuando el dispositivo es capaz de ver todos los puntos y figuras claves para la identificación de los objetos en el entorno, en este proyecto se utilizaron técnicas sensoriales para la identificación de estos objetos, de esta manera, no es necesario que el usuario esté visualizando un objeto para que le pueda mostrar información detallada, incluso puede mostrar información de objetos en otras habitaciones o que estén obstruidos por otros objetos, como paredes, tránsito de personas, etc.
Capítulo 4. Diseño de la aplicación
42
Capítulo 4. Diseño de la aplicación
De acuerdo al análisis elaborado anteriormente de las técnicas que se utilizan en los sistemas de realidad aumentada, se diseñaron soluciones para que la aplicación pudiera cubrir con los requerimientos establecidos, en este capítulo se presenta el diseño de las principales características de la aplicación, así como la solución que se implementó para poder identificar puntos de interés en el entorno.
Capítulo 4. Diseño de la aplicación
43
4.1 Arquitectura general del sistema Como se ha hablado anteriormente, este proyecto formará parte de un sistema de recomendación contextual, actualmente orientado a instituciones de educación superior, con el cual se podrá mostrársele al usuario información personalizada del entorno en que se encuentra. Para ello se han desarrollado diferentes aplicaciones en proyectos anteriores, el sistema global abarcará la integración de éstos para presentar las recomendaciones personalizadas, en la figura 4.1 puede observarse la arquitectura general del sistema.
Figura 4.1 arquitectura general del nuevo sistema T -Guía
En la figura 4.1 puede observarse que el sistema se conforma con 4 aplicaciones, las cuales se describen a continuación:
Semantic T-Guide: esta aplicación fue desarrollada en [González 2012],
permite generar recomendaciones a partir del perfil del usuario, la hora y el lugar a donde llega de la organización y la información almacenada en la red de ontologías, de esta forma se genera un archivo de recomendaciones que son presentadas al usuario.
Ont2SVG: este proyecto se desarrolló en [Estrada 2012], en el cual se
generaban mapas en formato SVG a partir de la información de la infraestructura de la organización almacenada en la ontología, de esta forma el usuario podía seleccionar una ubicación en el mapa para obtener más información de lo que se encuentra ahí.
Servicio de ubicación: en [Yris 2012] se desarrolló un servicio de ubicación mediante el diseño de algoritmos con tecnologías Wi-Fi y RFID, con este servicio se puede conocer la ubicación del usuario con respecto a la organización.
YLEYANA: esta aplicación se desarrolló en el presente proyecto de
tesis, aprovecha la ubicación del usuario y las recomendaciones generadas para proyectar la información mediante realidad aumentada.
Capítulo 4. Diseño de la aplicación
44
Como puede observarse, el sistema que se desarrollará al final, implementa servicios de recomendación contextual, servicios de ubicación, interfaces utilizando mapas en formato SVG e interfaces utilizando realidad aumentada.
La aplicación YLEYANA funcionaría como se muestra en la figura 4.2, una vez que se hayan integrado todas las funcionalidades al sistema. Como puede observarse, la aplicación Semantic T-Guide generaría un archivo de recomendaciones en formato XML que serán enviados a la aplicación YLEYANA, estos archivos contendrán toda la información que será mostrada mediante realidad aumentada, por otro lado, el servicio de ubicación recibirá el lugar en donde se encuentra el usuario con respecto a la organización, utilizando tecnologías Wi-Fi, esta ubicación será recibida por la aplicación YLEYANA para determinar qué información del archivo XML se mostrará mediante realidad aumentada, de acuerdo a la ubicación del usuario.
Figura 4.2 Funcionamiento de la aplicación YLEYANA en el sistema
Como puede observarse, la aplicación YLEYANA presentará la información de la organización mediante realidad aumentada, una vez que reciba la ubicación y la información de las recomendaciones, para ello, la aplicación YLEYANA se encargará de identificar los elementos de la organización en el entorno real, mediante alguna técnica para la identificación de puntos de interés, para poder asociarlos con algún objeto virtual y finalmente presentar la información mediante realidad aumentada.
4.2 Modelo de orientación en el entorno
En el CENIDET pueden implementarse técnicas de reconocimiento por orientación y mediante el uso de marcadores visuales, sin embargo, la implementación de marcadores visuales requiere que el marcador sea reconocido por el dispositivo, por lo que es necesario visualizarlo por completo y a una distancia óptima, además el dispositivo únicamente muestra información al usuario cuando éste se encuentra visualizando un marcador. Por otro lado, el reconocimiento por orientación no necesita identificación visual de
Capítulo 4. Diseño de la aplicación
45
los puntos de interés (POI), por lo que tiene la ventaja de poder visualizar POI’s que pueden estar ocultos visualmente por alguna pared u obstáculo en el campo de visión.
Para implementar un servicio de identificación sensorial robusto, se requiere establecer primero hacia que orientaciones puede el usuario encontrar información de interés en cada una de las posibles ubicaciones del entorno. Muchos de los sistemas de navegación convencionales, elaboran modelos para conocer hacia donde quedan determinadas rutas que el usuario puede seguir de acuerdo a su ubicación, para esto algunos de estos sistemas utilizan modelos de navegación basándose en las orientaciones de los ocho puntos cardinales (N, S, E O, NE, NO, SE y SO), es posible adaptar estos modelos a la aplicación para que, en lugar de identificar posibles rutas de navegación, identifique los POI’s que le rodean al usuario.
Los sistemas de navegación como el que se describe en [Jürgen 2007], [Pombinho 2011] o [Worboys 2011] implementan modelos ocultos de Markov (MOM), los cuales pueden representar los estados en un sistema y las transiciones que pueden hacerse para llegar a los distintos estados. En el caso de los sistemas de navegación, los modelos ocultos de Markov se caracterizan como se muestra en la figura 4.3, los estados representan distintas ubicaciones en el entorno y las transiciones representan la ruta que sigue un usuario para llegar a determinado estado.
Figura 4.3 segmentación del entorno para la construcción de un MOM [Pombinho
2011]
Cada transición contiene el valor de una orientación, de tal forma que dependiendo la orientación de la ruta que se tome se llegará al estado que se encuentre en esa dirección. Para simplificar la cantidad de orientaciones en un estado, el trabajo de [Worboys 2011] propone un modelo con ocho orientaciones para cada estado (ver figura 4.4), esto ayuda a representar las rutas de navegación del usuario.
Capítulo 4. Diseño de la aplicación
46
Figura 4.4 modelo de navegación de 8 orientaciones [Worboys 2011]
Con base en lo anterior, es posible adaptar el modelo de orientación [Worboys 2011] para el reconocimiento de POI’s, en este caso es necesario definir las orientaciones en las que puede encontrarse algún punto de interés (POI), para esto se diseño un modelo de ocho orientaciones, como se muestra en la figura 4.5, este modelo se definió con una variación aproximada de 10° de acuerdo a los puntos cardinales, además pueden implementarse orientaciones hacia arriba y abajo, contextualizando las plantas de los edificios, con lo que se define un modelo con 10 orientaciones.
Figura 4.5 modelo de ocho orientaciones para indicar los POIs del entorno
Una vez definido este modelo para cada uno de los estados en el MOM, es necesario definir el área de cada uno de los estados del modelo, para esto se implementó una aplicación con ayuda del framework Look! [Bellón 2011]. Esta aplicación inserta un cubo 3D en la imagen de video en tiempo real relacionado con cada una de las orientaciones definidas en el modelo de orientación (ver figura 4.6), esta aplicación nos permitió ubicarnos en distintas áreas del entorno y visualizar los POI’s relacionados a la ubicación actual, si uno de éstos varía de acuerdo a la ubicación en el entorno se definirá una nueva área en el entorno.
Capítulo 4. Diseño de la aplicación
47
Figura 4.6 ejemplo de la aplicación del modelo de ocho grados de libertad
Para evaluar este modelo, se consideró la planta baja del edificio de computación en el campus “Cerritus”, una vez hecha la evaluación, se segmentó el entorno, como se muestra en la figura 4.7, en esta segmentación se definieron áreas correspondiente a los estados del MOM.
Figura 4.7 definición de las zonas de localización para los estados en el MOM
De acuerdo a lo anterior, podemos representar un autómata, como el de la figura 4.8, para representar el funcionamiento de este modelo en el entorno, en este autómata se consideran los estados E como zonas de localización en donde se encuentran POI’s a su alrededor, el estado E puede asociar dos tipos de movimiento del usuario, de rotación R y de traslación T [Turk 2010]. Cuando el usuario orienta su dispositivo en una rotación R, definida en base al modelo de ocho grados de libertad, podrá visualizar información de un POI’s; distintos estados pueden hacer referencia a un mismo POI desde diferentes rotaciones. El movimiento de traslación T se realiza cuando un usuario cambia de
Capítulo 4. Diseño de la aplicación
48
localización, se considera que el sistema puede iniciar o terminar desde cualquier estado.
Figura 4.8 autómata del modelo de orientación propuesto para la visualización de
POIs
Conforme a lo anterior, puede decirse que para que el usuario pueda visualizar los objetos virtuales, debe seguirse el siguiente proceso:
Se identifica en cuál de las ubicaciones de la organización se encuentra el usuario.
De acuerdo a esta ubicación, se determinan las orientaciones que pueden visualizarse.
Una vez que se han identificado que orientaciones tiene disponible la ubicación del usuario, se identifica hacia qué POI’s apuntan cada una de las orientaciones.
Finalmente se identifica la orientación qué se encuentra visualizando el usuario para poder determinar de que POI será la información que se le muestre.
Una de las ventajas que integra este modelo, es que le permite al sistema tener conocimiento sobre objetos que se encuentren fuera del campo de visión del dispositivo, por ejemplo, en la figura 4.9 se muestra una imagen en donde se identifican tres POI’s de la clase aula, que no son visibles directamente por la perspectiva de la imagen, por lo que mediante éste modelo, podemos inferir que en esa orientación hay tres aulas del entorno, por lo que es posible mostrar información de cada una de éstas.
Capítulo 4. Diseño de la aplicación
49
Figura 4.9 manejo de los objetos fuera del campo de visión en el mode lo de
orientación
4.3 Diagrama de casos de uso
Para modelar las funcionalidades principales del sistema y la interacción del usuario con el mismo, se elaboró el diagrama de casos de uso que se muestra en la figura 4.10, describiendo cada uno de los casos de uso como se muestra a continuación.
Figura 4.10 Diagrama de casos de uso del sistema
En las tablas que se muestran a continuación se describen cada uno de los casos de uso definidos anteriormente, en donde se especifican los objetivos y la secuencia de pasos que involucra cada caso de uso, en las excepciones, se indica la secuencia normal completa y se modifican los pasos a seguir cuando pueda existir una excepción en el sistema.
Capítulo 4. Diseño de la aplicación
50
Capítulo 4. Diseño de la aplicación
51
UC-1 Visualizar puntos de interés
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Desarrollar servicios que permita identificar los objetos, lugares,
personas y edificios que se están visualizando en el dispositivo, extrayendo la información contextual del modelo semántico organizacional.
Desarrollar servicios que muestren información contextual en tiempo real de personas, lugares y objetos mediante técnicas de realidad aumentada.
Desarrollar un servicio que sea capaz de determinar la orientación del dispositivo Smartphone mediante los sensores contextuales como el acelerómetro, magnetómetro y giroscopio.
Descripción Este caso de uso permitirá que el usuario pueda visualizar la
información de los objetos en el entorno de acuerdo a la orientación del dispositivo
Precondición La información de la ontología debe ser descargada en el dispositivo, deberá conocerse la ubicación del usuario
Secuencia normal Acción
P1. El sistema carga la información de la ontología
P2. El sistema recibe la información de la localización del usuario P3. El sistema determina la información que será mostrada y la
ubicación de la misma de acuerdo a la localización del usuario P4. El usuario gira sobre su mismo eje para visualizar distintos puntos de
interés P5. El sistema muestra los distintos puntos de interés de acuerdo a la
orientación del dispositivo
Post condición El usuario podrá visualizar información del dispositivo
Excepciones Acción
S1.1. El sistema mostrará un mensaje de error en caso de que el archivo no pudiera leerse de manera correcta
S2.1. El sistema carga la información de la ontología S2.2. El sistema recibe la información de la localización del usuario
Capítulo 4. Diseño de la aplicación
52
UC-2 Obtener localización del usuario
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Implementar servicios de localización en interiores capaces de
determinar la localización en tiempo real de un dispositivo móvil.
Descripción En este caso de uso se obtiene la localización del usuario para poder
determinar que objetos se encuentran a su alrededor y la información que le será mostrada
Precondición Debe haberse implementado en el entorno un servicio de localización capaz de identificar la localización del usuario en el entorno.
Secuencia normal Acción
P1. El sistema espera la información de la ubicación del usuario
P2. El servicio de localización por Wi-Fi proporciona la ubicación del usuario de acuerdo a las áreas funcionales registradas en la
ontología P3. El sistema identifica el área enviada por el servicio de localización
P4. El sistema determina la información que será cargada de acuerdo al área donde se encuentre el usuario
Post condición Se contara con la información de la ubicación del usuario en el entorno
Excepciones Acción
S1.1 El sistema espera la información de la ubicación del usuario
S1.2 El servicio de localización no se encuentra disponible o tiene problemas para informar la ubicación del usuario
S1.3 El sistema indica que no se pudo obtener la ubicación del usuario S2.1 El sistema espera la información de la ubicación del usuario
S2.2 El servicio de localización por Wi-Fi proporciona la ubicación del usuario de acuerdo a las áreas funcionales registradas en la
ontología S2.3 El sistema no reconoce la zona que proporciona el servicio de
localización S2.4 El sistema indica que el área donde se encuentra el usuario no se
encuentra registrada o no se ha cargado dentro del dispositivo S2.5 El sistema indica que la información debe de actualizarse o
contactar al administrador
Capítulo 4. Diseño de la aplicación
53
UC-3 Obtener detalles
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Desarrollar servicios que muestren información contextual en tiempo
real de personas, lugares y objetos mediante técnicas de realidad aumentada
Descripción En este caso de uso se mostrará la información detallada de alguno de
los puntos de interés que haya seleccionado el usuario
Precondición El usuario deberá encontrarse visualizando los puntos de interés en el
entorno
Secuencia normal Acción
P1. El usuario selecciona un punto de interés del entorno mostrado a
través de objetos virtuales mediante realidad aumentada P2. El sistema identifica el objeto seleccionado por el usuario
P3. El sistema recopila la información disponible del objeto y se la presenta al usuario
Post condición El usuario obtendrá más información de un punto de interés en el entorno
Excepciones Acción
S1.1 El usuario selecciona un punto de interés del entorno mostrado a
través de objetos virtuales mediante realidad aumentada S1.2 El sistema identifica el objeto seleccionado por el usuario
S1.3 El sistema tiene problemas para proporcionar la información del objeto
S1.4 El sistema indica al usuario que hubo un error al presentar la información y que es necesario que lo vuelva a intentar
Capítulo 4. Diseño de la aplicación
54
UC-4 Filtrar información
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Desarrollar servicios que muestren información contextual en tiempo
real de personas, lugares y objetos mediante técnicas de realidad aumentada
Descripción Este caso de uso permitirá al usuario seleccionar al usuario la
información de cierto tipo de objetos que desea que se presente
Precondición El usuario debe encontrarse visualizando puntos de interés en algún
lugar del entorno
Secuencia normal Acción
P1. El usuario selecciona los tipos de ítems que desea que se muestren
en la pantalla P2. El sistema identifica los tipos de ítems seleccionados
P3. El sistema vuelve a presentar la información del entorno de acuerdo a los tipos de ítems seleccionados por el usuario
Post condición El sistema mostrará únicamente la información de los tipos de objetos que haya seleccionado el usuario
Excepciones Acción
S1.1 El usuario selecciona los tipos de ítems que desea que se muestren
en la pantalla S1.2 El sistema identifica los tipos de ítems seleccionados
S1.3 El sistema le indica al usuario que existieron problemas para presentar la información del entorno
Capítulo 4. Diseño de la aplicación
55
UC-5 Actualizar información
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Desarrollar servicios para la extracción de información contextual de
una red de ontologías organizacionales, que contendrán la información del entorno en el que se desarrollará la aplicación
Desarrollar servicios que muestren información contextual en tiempo real de personas, lugares y objetos mediante técnicas de realidad aumentada
Descripción En este caso de uso el sistema descargará la versión más reciente del archivo que contiene la información para el funcionamiento del sistema
Precondición El archivo con la información del sistema debe encontrarse almacenado en algún repositorio en donde accederá el sistema
Secuencia normal Acción
P1. El usuario selecciona la opción para actualizar la información del
sistema P2. El sistema descarga el archivo actual con la información de la
ontología P3. El sistema se reinicia con la información del archivo descargado
Post condición El sistema contará con la información actualizada de todos los puntos
de interés, orientaciones y ubicaciones en el entorno
Excepciones Acción
S1.1 El usuario selecciona la opción para actualizar la información del sistema
S1.2 El sistema no puede descargar el archivo con la información de la ontología
S1.3 El sistema indica al usuario que el archivo no pudo descargarse por una falla en la conexión de red
Capítulo 4. Diseño de la aplicación
56
UC-6 Generar archivo de información
Versión 1.0
Autores Rodrigo Alejandro Morán Leal
Objetivos
Asociados Desarrollar servicios para la extracción de información contextual de
una red de ontologías organizacionales, que contendrán la información del entorno en el que se desarrollará la aplicación.
Descripción Este caso de uso permite al administrador del sistema generar el
archivo que contendrá toda la información necesaria para el funcionamiento del sistema, extrayendo esta información de la red de
ontologías de la organización.
Precondición Debe encontrarse instanciada la información de los puntos de interés,
las orientaciones, los objetos y las ubicaciones en la red de ontologías
Secuencia normal Acción
P1. El administrador inicia la aplicación para generar el archivo con la
información de la red de ontologías P2. La aplicación extrae la información de la red de ontologías
P3. La aplicación genera un archivo y lo almacena en el repositorio del sistema
Post condición Se generará un archivo con la última información registrada en la red de ontologías para el funcionamiento del sistema
Excepciones Acción
S1.1 El administrador inicia la aplicación para generar el archivo con la
información de la red de ontologías S1.2 La aplicación no puede extraer la información de la ontología
S1.3 La aplicación genera una excepción indicando que ocurrió un error en la extracción de la información de la ontología
S2.1 El administrador inicia la aplicación para generar el archivo con la información de la red de ontologías
S2.2 La aplicación extrae la información de la red de ontologías S2.3 La aplicación no puede generar el archivo
S2.4 La aplicación genera una excepción indicando que el archivo con la información de la ontología no pudo ser generado
Capítulo 4. Diseño de la aplicación
57
4.4 Diagramas de clases
Una vez que se han definido las funciones principales del sistema, se procede a diseñar los objetos principales del sistema, para ello se elaboró un diagrama como se muestra en la figura 4.11.
Figura 4.11 Diagrama de clases del sistema
Nombre Main
Descripción Esta será la clase principal del sistema, con ella se podrán insertar los objetos virtuales y será la pantalla con la que el usuario podrá interactuar
con la información del sistema
Atributos Nodos: este atributo contendrá una lista de varios objetos del tipo Nodo, los
cuales harán referencia a las localizaciones del usuario en el entorno pois: representará una lista con los puntos de interés hacia los que apuntan
las orientaciones del modelo Orientaciones: será una lista de todas las orientaciones que contienen los
nodos Referencias: en este atributo se almacenará una lista con la información de
todos los objetos que se encuentran en el entorno
Métodos crearObjetosVirtuales: este método permitirá que la aplicación cree los
objetos virtuales en el entorno. leerArchivo: para obtener la información de la red ontologías es necesario
extraerla de algún archivo almacenado en el dispositivo, este método permitirá extraer la información del archivo para almacenarla en la lista de
Nodos, Pois, Orientaciones y referencias. leerLocalizacion: este método permitirá recibir la información del servicio
de localización y procesarla para determinar en qué ubicación se encuentra el usuario en el entonrno
Capítulo 4. Diseño de la aplicación
58
Nombre Nodo
Descripción Cada localización del usuario en el entorno será representado por un nodo o segmento de navegación, dependiendo a la localización del usuario se
seleccionará un nodo en específico, cargando cada uno de los datos del nodo correspondiente
Atributos Id: este atributo define el identificador de los nodos del entorno, estos nodos estarán registrados en la ontología del sistema y se identificarán de la
misma forma como se encuentran en la ontología Nombre: describirá el nombre que se le dio al nodo, esto permitiría que el
sistema pueda proporcionarle al usuario información de su ubicación y que éste la pueda entender.
ContainedIn: este atributo contendrá el identificador del área física a la que hace referencia el nodo
Orientación: este atributo será una lista de objetos del tipo Orientación, la cual almacenará todas las referencias a las orientaciones que contenga el
nodo donde esté localizado el usuario
Métodos obtenerOrientacion(): este método fue diseñado para permitirle al sistema buscar una determinada orientación dentro del objeto Nodo, de esta forma
será posible acceder a la información que ésta contenga
Nombre Orientación
Descripción Esta clase se refiere a las orientaciones que se encuentran disponibles de acuerdo a la ubicación del entorno
Atributos Id: contiene el identificador de la orientación
POI: esta lista contendrá todos los puntos de interés definidos con la clase POI, estos puntos de interés serán los que se encuentren en la determinada
orientación
Métodos obtenerPOI(): este método permitirá obtener la información de algún punto
de interés que se encuentre dentro de la orientación, como resultado arrojará un objeto de la clase POI
Nombre POI
Descripción Se refiere a los puntos de interés que se encuentran en el entorno, esta clase se referirá a las zonas en donde se pueda encontrar información en el
entorno
Atributos Id: este atributo hará referencia al identificador de los puntos de interés
definido en la ontología Referencias: al igual que los objetos anteriores, este atributo contendrá una
lista de objetos, sin embargo contendrá la información de los objetos del entorno a los que el punto de interés hace referencia.
Métodos obtenerReferencias(): este método permitirá que la clase POI pueda buscar la información de las referencias que se encuentran en el entorno, este
método permitirá definir los objetos de tipo Referencia para mostrar su información posteriormente
Capítulo 4. Diseño de la aplicación
59
Nombre Referencia
Descripción Esta clase se utilizará para describir la información de los objetos que aparecerá en el entorno, esta clase podrá heredar a otros objetos,
añadiéndole atributos específicos para los distintos tipos de objetos, personas, lugares o eventos del entorno
Atributos Id: será el identificador del objeto, este identificador será extraído de la red de ontologías.
Tipo: se referirá al tipo de objeto de la ontología que representa, por ahora se ha definido que el sistema identificará personas, objetos fijos, lugares y
eventos en el entorno.
Métodos getTipo(): este método permitirá obtener el tipo de objeto al que pertenece la referencia, esto podría ayudar a crear nuevos objetos que contengan
atributos específicos para cada uno de los objetos, lugares, personas y eventos del entorno.
Capítulo 5. Implementación
60
Capítulo 5. Implementación
En este capítulo se describe la etapa de implementación del prototipo que cumple con las funcionalidades descritas en el capítulo anterior, se describen las adecuaciones que se hicieron a la red de ontologías para gestionar la información del sistema, se describe el servicio de localización que se utilizó en el sistema y finalmente las funcionalidades implementadas.
Capítulo 5. Implementación
61
5.1 Modificaciones a la red de ontologías Como se mencionó anteriormente, en el laboratorio de sistemas distribuidos del CENIDET se diseñó e implementó una red de ontologías que permite modelar varios elementos y dimensiones contextuales de una organización, esta ontología se utilizó para desarrollar una plataforma de servicios de recomendación sensibles al contexto en el proyecto de [González 2012] y mapas en formato SVG desarrollados en el proyecto de [Estrada 2012] capaces de almacenar información del entorno.
Para el desarrollo de este proyecto, es necesario que la red de ontologías pueda modelar los elementos necesarios para cumplir con las necesidades especificadas, para ello debe contener la información de los puntos de interés, orientaciones y las localizaciones del usuario. Actualmente, se cuenta con una ontología desarrollada en [Estrada 2012] capaz de gestionar la información de la infraestructura de la organización, esta ontología le permitiría al sistema controlar la información de la ubicación del usuario y de los diferentes puntos de interés en el entorno, sin embargo, esta ontología no hace referencia a los puntos de interés ni a las orientaciones en las que se encuentran los POI’s, por lo que fue necesario adaptar esta ontología agregando nuevos elementos que permitan gestionar e instanciar esta información.
Para este caso se analizaron dos ontologías, OntoNav descrita en [Christos 2005] y ONALIN descrita en [Dudas 2009], estas ontologías permiten gestionar información de puntos de interés e información de orientación del usuario referente a su entorno, estas ontologías se diseñaron para gestionar información de sistemas de navegación. Si se requiere implementar funcionalidades de un sistema de navegación, como parte de los servicios de recomendación, estas dos ontologías proporcionan soluciones a los problemas que se relacionan con la gestión de información en sistemas de navegación, por lo que utilizar una de estas ontologías para extender el modelo propuesto por [González 2011] podría soportar nuevas funcionalidades para la implementación de sistemas de navegación en el futuro.
La ontología ONALIN extiende la ontología OntoNav, ambas contienen clases y relaciones orientadas a los sistemas de navegación, sin embargo, ONALIN implementa adicionalmente el estándar ADA, que permite una descripción más detallada del entorno, por ejemplo, permite describir detalles del entorno adecuados para auxiliar a personas con alguna incapacidad, con lo cual, las funcionalidades del sistema también incluirían a usuarios con alguna discapacidad, por lo tanto se optó por implementar la ontología ONALIN dentro de la red de ontologías organizacionales.
Una vez integradas las clases y relaciones de la ontología de infraestructura desarrolladas en [Estrada 2012] y las de la ontología ONALIN de [Dudas 2009] en la red de ontologías, se muestran en la figura 5.1 las clases y las relaciones que le permitirán gestionar la información a la aplicación.
Capítulo 5. Implementación
62
Figura 5.1 Unión de la ontología de infraestructura y ONALIN
Para describir el proceso de gestión de información del sistema de recomendación es necesario identificar cómo se instancia la información de las localizaciones de los puntos de interés y de las orientaciones del dispositivo, en la figura 5.2, se muestran las fases de este proceso de instanciación.
Figura 5.2 Proceso de instanciación de la información del sistema
Instanciación de infraestructura. De acuerdo con la ontología de
infraestructura, la clase Space puede representar todos los espacios físicos de alguna organización, debido a la relación containedIn, cada uno de estos espacios puede encontrarse dentro de algún otro espacio mayor, por ejemplo, en la figura 5.3 se muestra la definición de los espacios en una institución de educación superior, como puede verse dentro del espacio más grande denominado campus se encuentran los edificios, los cuales contienen distintos
Capítulo 5. Implementación
63
pisos y a su vez estos contienen zonas (aulas, oficinas, laboratorios, etc.), finalmente se llega al espacio que se refiere a la celda de localización utilizada en el algoritmo diseñado en [Yris 2012]. Como puede apreciarse, la clase Space y la relación containedIn permiten modelar todos los espacios dentro de una organización de manera jerárquica.
Figura 5.3 Modelo de representación de las distintas zonas del entorno [Estrada
2012]
Instanciación de la información. En este paso, pueden instanciarse todos los objetos de la red de ontologías en paralelo con la infraestructura de la información, esta información contendrá la descripción de los objetos de conocimiento, personas, eventos, servicios, etc. Esta información será la que referenciarán los puntos de interés.
Instanciación de segmentos de navegación. Los segmentos de navegación hacen referencia a las localizaciones en las que se puede encontrar el usuario en el entorno, estas localizaciones son modeladas por la clase NetworkSegment de la ontología ONALIN, estos segmentos de red pueden estar contenidos en un espacio definido en la ontología de infraestructura, como puede verse en la figura 5.4, los puntos con la letra N representarán los lugares en los que el usuario puede encontrarse para obtener información del entorno mediante realidad aumentada.
Capítulo 5. Implementación
64
Figura 5.4 Representación de los segmentos de navegación en el entorno
Para registrar cada uno de estos segmentos de navegación se definió el identificador EαNβ, donde Eα representa el identificador del edificio y Nβ representa el identificador del nodo.
Instanciación de POI’s. Para referenciar la información descrita anteriormente,
es necesario instanciar la clase POI de la ontología ONALIN, esta clase permite indicar la existencia de puntos de interés en el entorno y permite relacionarlos con alguna orientación de los segmentos de navegación. En la figura 5.5, se muestran los puntos de interés (puntos con la letra P) que representan un lugar en el entorno donde se pueda encontrar posible información para el usuario.
Figura 5.5 integración de los puntos de interés al entorno
Para controlar los puntos de interés en el entorno se definió un identificador de la forma EαPOIβ, el cual identifica el edificio Eα y el punto de interés POIβ.
Instanciación de orientaciones. Una vez instanciados los nodos y los POI’s
es necesario relacionarlos entre sí con la clase Orientation de la ontología ONALIN, con la clase Networksegment se relacionan los nodos con las
Capítulo 5. Implementación
65
orientaciones mediante hasOrientation y finalmente la orientación se relaciona con los POI’s mediante la relación hasPOI de la clase Orientation, en la figura 5.6 se puede observar que cada segmento de navegación integra una o más relaciones con algún punto de interés.
Figura 5.6 integración de las orientaciones en el entorno
Para cada una de las orientaciones se utiliza un identificador definido de la siguiente manera:
EαNβ(NO|SU|ES|WE|NE|NW|SE|SW|UP|DN)
En donde se emplea el mismo identificador del segmento de navegación, Eα para identificar el edificio y Nβ para identificar el segmento de navegación, este identificador se complementa con diez identificadores de orientación posibles de acuerdo a las ocho orientaciones de los puntos cardinales (NO norte, SU Sur, ES este, WE oeste, NE noreste, NW noroeste, SE sureste y SW suroeste) y las 2 orientaciones hacia arriba UP o hacia abajo DN.
Relación de POI’s con la información. Una vez que se instancian los elementos necesarios en la ontología para describir el entorno, es necesario referenciar la información a los puntos de interés, para esto la clase POI puede utilizarse para hacer referencia cualquier elemento de la red de ontologías mediante la relación reffersTO a owl:Thing, de esta forma los POI’s pueden contener información de elemento de la organización.
5.2 Servicio de localización Actualmente, el entorno de desarrollo no cuenta con la infraestructura necesaria para implementar los servicios de localización diseñados en [Yris 2012], estos servicios permiten identificar automáticamente la ubicación del usuario dentro de su contexto para seleccionar los POI’s que se encuentran a su alrededor.
El servicio de localización automático desarrollado por [Yris 2012], no se utilizó en este proyecto, en su lugar, se implementó una función que le permita al usuario seleccionar manualmente la ubicación en la que se encuentra, en la
Capítulo 5. Implementación
66
figura 5.7 puede apreciarse el botón dentro de la interfaz en donde el usuario puede seleccionar su ubicación en el entorno.
Figura 5.7 Botón para la selección de la localización del usua rio
Una vez que el usuario presiona ese botón, le aparece una pantalla como la que se muestra en la figura 5.8, en esta figura se muestra una lista de ubicaciones, los valores de esta lista son determinados de acuerdo al archivo del sistema que tiene la información registrada en la ontología organizacional.
Figura 5.8 Pantalla para la selección de la localización del usuario
Finalmente, una vez seleccionada la ubicación del usuario, el sistema es capaz de identificar los POI’s relacionados con esa ubicación, como puede verse en la figura 5.9, la localización del usuario fue determinada y el sistema es capaz de mostrar los puntos de interés en el entorno.
Capítulo 5. Implementación
67
Figura 5.9 Visualización de puntos de interés en el entorno
5.3 Desarrollo de la aplicación Una vez que se han definido los servicios de localización y se han establecido los métodos para gestionar la información del sistema, se describirán las funcionalidades del sistema. Para la etapa de implementación fue necesario analizar la interacción de los elementos descritos en la red de ontologías, el dispositivo y el entorno, en la figura 5.10, se muestra la representación de cada uno de los elementos con respecto a la ontología, al entorno y al dispositivo.
Figura 5.10 representación de las clases de la ontología en un entorno real
Capítulo 5. Implementación
68
Con relación a la ontología, en la figura 5.11, se presenta un ejemplo de instancias descritas en el modelo organizacional.
Figura 5.11 Ejemplo de instanciación de las ontologías del sistema
De acuerdo a las figuras 5.10 y 5.11, se describe que el aula 1 representa un área funcional del entorno, mientras que DCCN3 hace referencia a la ubicación del usuario, es decir, el usuario está dentro del Aula 1, localizado en el segmento de navegación identificado por DCCN3. Mientras el usuario se encuentre en nodo DCCN3 puede visualizar el entorno a su alrededor con su dispositivo móvil, cuando el usuario enfoque el campo de visión del dispositivo en la orientación noreste, determinada por el sensor magnetómetro (representada por DCCN3NE) el modelo de orientación definido en la ontología encuentra que la orientación es válida y que hace referencia al punto de interés DCCPOI5, este punto de interés contiene la información de el Servidor de sistemas distribuidos (SD) y del portal RFID.
5.3.1 Lectura de la información de la Ontología Para poder formar los objetos virtuales y también para mostrar información del entorno, es necesario que la aplicación acceda de alguna forma a la información de la ontología, para lograr esto se planteó que la aplicación fuera capaz de descargar un archivo en formato JSON que contiene información de los POI’s para asignarla a los objetos virtuales.
La estructura principal de los archivos JSON se describe en la figura 5.12, en los archivos JSON primero se define el nombre del objeto entre comillas, enseguida se define el valor de este objeto, en este caso, se define un objeto llamado “RecomendacionesAR” el cual, tiene como valor otra estructura de objeto, dentro del cual existen tres objetos más, Nodos, Orientaciones y POI’s, los cuales tienen la estructura de un arreglo, cada uno contiene información para la proyección de objetos virtuales.
Figura 5.12 Estructura principal de un archivo JSON
Capítulo 5. Implementación
69
Cada arreglo contiene información de la estructura de los objetos, en el caso de los nodos, cada uno de sus elementos tiene una estructura como la que se muestra en la figura 5.13, esta estructura contiene el Id del nodo, su nombre y donde se encuentra contenido este nodo en el entorno, también contiene un arreglo que contiene la lista de todas las orientaciones que define este nodo.
Figura 5.13 Estructura de un objeto del tipo nodo
La estructura de cada una de las orientaciones se describe en la figura 5.14, como puede observarse, cada orientación define un identificador y un arreglo que contiene los identificadores de todas las orientaciones que se encuentran en determinado nodo.
Figura 5.14 Estructura de un objeto de orientación
Finalmente, se encuentran los objetos del tipo POI (puntos de interés), los cuales, contienen un identificador y un arreglo que contiene información de cada uno de los objetos que se mostrarán mediante realidad aumentada, los cuales se definen como se muestra en la figura 5.15.
Figura 5.15 Estructura de un POI
Con estas estructuras la aplicación puede obtener la información necesaria para formar los objetos virtuales, extrayendo todos los datos contenidos en los objetos del archivo JSON.
Capítulo 5. Implementación
70
5.3.2 Implementación de los objetos virtuales Como se describió en la sección anterior, la ontología es capaz modelar los aspectos del entorno organizacional y los dispositivos que utiliza el usuario, se describió el proceso de localización, sin embargo, no se ha explicado cómo se identifican las orientaciones. Para gestionar las orientaciones se emplea el Framework Look! Descrito en [Bellón 2011], el cual, permite gestionar gran parte de las funcionalidades de los sensores de orientación de un dispositivo.
Para insertar los objetos virtuales en imágenes de video, capturadas en tiempo real, mediante un dispositivo tablet o Smartphone, se utiliza una variable denominada “entorno” de tipo “World”, esta variable controla todos los objetos que se insertan mediante las técnicas de realidad aumentada. Los objetos virtuales que se van a crear para mostrar información de los POI’s se generan a partir de una imagen del icono representativo del POI, asociándole una cadena de texto, para insertar la imagen se emplea el código de la figura 5.16, en este código se define una entidad mediante la clase “EntityData”, estas entidades hacen referencia a los datos de cada uno de los objetos virtuales y se agregan al entorno, estos datos se almacenan en una variable nueva del tipo “WorldEntity” en la cual se puede indicar que se insertó un objeto imagen en segunda dimensión, la cual se agrega a la variable “entorno”.
Figura 5.16 Inserción de imágenes con la librería Look!
Una vez que se han insertado las imágenes se procede a insertar el texto descriptivo, para ello se implementó un proceso similar al anterior, como se muestra en la figura 5.17, primero se definen los datos de la entidad, esta vez se especifica que se inserta un texto en el objeto, para esto se obtiene el nombre que viene desde la ontología y se coloca en el objeto.
Figura 5.17 Inserción de texto en el objeto virtual
Capítulo 5. Implementación
71
Una vez hechos estos ajustes, la información se despliega en la pantalla del dispositivo como se muestra en la figura 5.18.
Figura 5.18 Inserción de objetos virtuales en el entorno
Una vez que se integran los objetos virtuales en el entorno, el Framework Look! Permite interactúar con estos objetos, de tal forma que cuando el usuario selecciona alguno de estos POI’s directamente en la pantalla, se muestra información descriptiva de este objeto, en la figura 5.19 se muestra la pantalla que presenta información de un punto de interés del entorno.
Figura 5.19 Pantalla de información extra de los puntos de interés del entorno
Capítulo 5. Implementación
72
5.3.3 Funcionalidad de filtrado de información En la pantalla del dispositivo pueden aparecer distintos objetos en una misma dirección, en esta pantalla el usuario puede seleccionar la información que quiere que se despliegue, en esta pantalla se integró una funcionalidad para el filtrado de información, de esta forma el usuario puede mostrar y ocultar ciertos tipos de objetos en la pantalla. Para integrar esta funcionalidad primero se declaran variables que controlan la visibilidad de los objetos, en la figura 5.20 pueden apreciarse estas variables, en este caso el sistema controla cuatro tipos de objetos (Personas, lugares, inventario y eventos), el valor de estas variables es “true” al inicio para mostrar todos los objetos y conforme elija el usuario estos objetos se irán ocultando.
Figura 5.20 variables que controlan la visibilidad de los objetos
Para ocultar o mostrar los objetos se utiliza el método que se muestra en la figura 5.21, este método recibe en un entero el número del elemento del arreglo anterior donde contiene el valor de visibilidad del objeto, también recibe el tipo de objetos que será ocultado, con estas variables se puede buscar entre los objetos que se encuentran insertados en el entorno y cambiar la visibilidad de cada uno de los que correspondan con el tipo de objetos que será ocultado.
Figura 5.21 Método para el filtrado de información
La función anterior se implementa en los diferentes botones del menú para que cada uno sea capaz de ocultar y mostrar distintos tipos de objetos, en la figura 5.22 puede apreciarse que el usuario apunta su dispositivo móvil a una misma dirección y en esta se muestran distintos tipos de objetos gracias a las opciones de filtrado implementadas.
Capítulo 5. Implementación
73
Figura 5.22 Implementación de opciones de filtrado de información en la aplicación
Capítulo 6. Pruebas
74
Capítulo 6. Pruebas
Una vez diseñadas e implementadas los diferentes elementos de la aplicación, es necesario comprobar el funcionamiento de éstos en el entorno de implementación. En este capítulo se especifica el diseño de las pruebas que se le hicieron a la aplicación y los resultados obtenidos.
Capítulo 6. Pruebas
75
6.1 Plan de pruebas
Para documentar la especificación de las pruebas de esta aplicación, se utilizará el estándar IEEE 829-1998 [IEEE 1998], el cual está diseñado para documentar las pruebas que se elaboran a los sistemas de software, para comprobar la funcionalidad de los mismos.
Para las pruebas de este sistema, se ejecutarán las funcionalidades desarrolladas en la aplicación, para comprobar su comportamiento en el entorno de implementación, de esta forma se observarán las diversas situaciones que puedan presentarse, detectando y corrigiendo los diversos errores que puedan surgir.
6.1.1 Enfoque En estas pruebas se verificara que las funcionalidades de la aplicación puedan ser capaces de presentar la información de los puntos de interés (POI) en el entorno a través de tecnologías de realidad aumentada, además de ello, se comprobará que la aplicación pueda acceder a la información de la ontología que representa el entorno y a las recomendaciones diseñadas en el proyecto de tesis de [González 2012].
6.1.2 Características a probar Las características a probar de esta aplicación serán aquellas que permitan cumplir con los requerimientos funcionales del proyecto, las cuales se definen a continuación:
Inserción de los objetos virtuales en el entorno. La aplicación debe
ser capaz de insertar objetos virtuales en el entorno que muestren
información de éste, los objetos virtuales deben permitirle al usuario
acceder a más información cuando interactúa con ellos, además de ello,
los objetos virtuales deben cambiar dependiendo de la ubicación que
seleccione el usuario, además de comprobar las funciones de filtrado de
información de los objetos en la pantalla
Lectura de la información de la ontología. Deberá evaluarse que la
aplicación pueda extraer de manera correcta la información necesaria de
la ontología, verificando que sea posible representar la ubicación del
usuario, las orientaciones del dispositivo, los puntos de interés y la
información de los objetos que serán representados en el sistema.
Acceso a las recomendaciones. En la tesis desarrollada por [González
2012] se desarrollaron diversos tipos de archivos que contenían distintas
recomendaciones de ciertos ítems del entorno organizacional, estos
ítems les eran recomendados a los usuarios de acuerdo a tres tipos de
perfil; estudiante, profesor investigador y empresario, además de ello se
tomaban en cuenta aspectos del horario en el que llegaba el usuario
(tiempo) y al campus o lugar en el que llegaba (espacio), en este
proyecto se comprobará que el sistema sea capaz de acceder a esos
Capítulo 6. Pruebas
76
archivos para leer la información de las recomendaciones y plasmarla
mediante realidad aumentada.
6.1.3 Características excluidas Las características que no serán consideradas al evaluar esta aplicación son las siguientes:
Precisión del sistema. Las pruebas que se realizarán a esta aplicación
no evaluará la precisión con la que corresponden los objetos virtuales
insertados mediante realidad aumentada con los elementos del entorno,
esto se debe a que la precisión, del método de identificación de los
elementos del entorno, depende mucho del servicio de ubicación del
usuario. Además, de acuerdo con el Framework Look!, el algoritmo de
identificación de objetos utiliza el magnetómetro y los acelerómetros de
tres ejes del dispositivo, los cuales cual pueden captar la energía de
diversos campos magnéticos, con lo cual, su precisión puede también
afectarse con la interferencia de objetos con demasiado metal o si se
encuentra en cercanía con algún otro dispositivo, igualmente en el
trabajo desarrollado en [Bellón 2011], se establece que la precisión de
este tipo de sensores puede variar de 1 a 11 grados de acuerdo a
diversos factores, como el tipo de sensor y los eventos que se susciten
en el entorno.
Información recibida en las recomendaciones. En estas pruebas no
se evaluarán las recomendaciones de los elementos que se encuentran
en los archivos que se utilizarán en las pruebas, esto se debe a que
anteriormente ya se evaluó la efectividad de estas recomendaciones en
la tesis de [González 2012], las cuales comprobaban que se le
proporcionara información al usuario de distintos tipos de objetos en el
entorno de acuerdo al horario, la información de su perfil y el lugar
donde se encuentra.
6.1.4 Elementos de prueba La red de ontologías debe contener información sobre todos los objetos
que serán representados mediante realidad aumentada del entorno en
donde será implementado.
Debe instanciarse la infraestructura, nodos, orientaciones y puntos de
interés del entorno que sean capaces de indicarle a la aplicación cómo
serán insertados los objetos virtuales.
Deberá contarse con los archivos de recomendaciones generados con el
proyecto de tesis de [González 2012] y haberse generado un archivo
JSON para todos estos archivos para proyectar la información mediante
realidad aumentada.
Capítulo 6. Pruebas
77
6.1.5 Requerimientos para realizar las pruebas Un Smartphone con sistema operativo Android 2.2, sensor de
magnetómetro, acelerómetro de tres ejes y/o giroscopio y una tarjeta SD
Una red Wi-Fi en el entorno para las pruebas de actualización de la
información
Un servicio http al que se pueda acceder para descargar la información
de la ontología
6.1.6 Criterio éxito/fracaso de los casos de prueba Se considerará que la aplicación funciona de manera correcta si sus funcionalidades pueden cumplir con lo siguiente:
La aplicación es capaz de insertar objetos virtuales en el entorno
compuestos por una imagen y un nombre.
Las opciones de filtrado son capaces de mostrar y ocultar información de
manera correcta.
La aplicación es capaz de descargar el archivo JSON que contiene la
información de la ontología.
Los objetos virtuales deben proporcionar información detallada cuando
el usuario interactúa con ellos.
Los objetos virtuales de esta aplicación deben cambiar cuando el
usuario selecciona una ubicación diferente.
Si alguno de los aspectos anteriores no se cumple se marcará que una de las funcionalidades ha fracasado y se revisarán los aspectos técnicos de está para corregir los posibles errores.
6.1.7 Responsabilidades El tesista Rodrigo Alejandro Morán Leal será el responsable de elaborar cada una de las pruebas diseñadas para esta aplicación, así como las correcciones a la aplicación a partir de los fracasos que puedan surgir en las pruebas.
6.1.8 Diseño de las pruebas Como se ha mencionado anteriormente, las pruebas se ejecutarán con ayuda de los archivos de recomendaciones generados en [González 2012], en estos archivos se elaboraron recomendaciones para tres tipos de usuarios, Profesores, Empresarios y Alumnos, para el proyecto de [González 2012] se generó un total de 100 archivos XML con recomendaciones.
Para poder conocer la ubicación de los objetos contenidos en las recomendaciones, es necesario construir los archivos JSON que representarán el entorno de implementación, es por ello que se construyeron dos archivos JSON base que modelan la planta baja y alta del edificio de computación, en la figura 6.1 puede apreciarse que en la planta baja del edificio de computación, como puede observarse, este piso contiene 9 diferentes ubicaciones
Capítulo 6. Pruebas
78
(representadas por los puntos verdes) y 7 puntos de interés (representados por los puntos amarillos).
Figura 6.1 Representación de la plata baja del edificio de computación
Por otro lado, la planta alta del edificio de computación se representa como aparece en la figura 6.2, en este plano puede apreciarse que se continúa con los puntos de interés y las ubicaciones en el entorno, se puede apreciar que esta vez son 8 ubicaciones y 24 puntos de interés, para estas pruebas no se consideró que el usuario se metiera a los cubículos debido a que estos podrían estar cerrados u ocupados durante las pruebas.
Capítulo 6. Pruebas
79
Figura 6.2 representación de la planta alta del edificio de computación
Una vez modelado el entorno de implementación, es posible construir dos archivos JSON base (uno para la planta alta y otro para la planta baja), capaces de contener toda la información que permita representar las recomendaciones obtenidas por los archivos XML. Los archivos JSON construidos, deberán adecuarse para cada uno de los archivos con recomendaciones, por lo que existirán dos archivos JSON (uno de la planta baja y otro de la planta alta) para cada uno de los archivos XML considerados en las pruebas.
Para elaborar las pruebas en esta aplicación, se tomarán 9 archivos para los tres tipos de usuarios generados en las recomendaciones. Para cada uno de los archivos se considerará elaborar diferentes pruebas en cada piso del edificio de computación, considerando aleatoriamente 4 ubicaciones para cada uno de los pisos, en resumen, se elaborarían 108 pruebas para cada nivel del edificio, generando un total de 216 casos en los que se comprobará la funcionalidad de la aplicación.
Para cada uno de los 216 casos de prueba deberán realizarse las siguientes acciones para comprobar el funcionamiento de la aplicación:
Se seleccionará una ubicación aleatoria de acuerdo al piso en que se encuentre
El usuario deberá poder visualizar algún objeto virtual que represente un punto de interés en el entorno
El usuario interactúa con los objetos virtuales y estos le muestran más información de las recomendaciones
Capítulo 6. Pruebas
80
Si alguna de estas actividades no se puede completarse exitosamente, la prueba se considerará como errónea y se corregirán los posibles errores para volverla a realizar.
6.2 Reporte de pruebas En esta sección se presentan algunas pruebas realizadas a la aplicación, mostrando los resultados obtenidos y las observaciones que se hicieron.
Caso de prueba: Alumno120101
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno uno, la ubicación de las pruebas fue la entrada
Resultado:
Observaciones: en esta prueba se descargó el archivo JSON con los datos de la
planta baja, existieron problemas de conexión de red sin embargo pudo descargarse el
archivo de manera correcta, el usuario interactuó con los objetos virtuales y la prueba
fue exitosa
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
81
Caso de prueba: Alumno130102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del alumno uno, la ubicación de las pruebas fue el laboratorio de inteligencia artificial
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
82
Caso de prueba: Empresario130202
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del empresario uno, la ubicación de las pruebas fue el pasillo 13
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
83
Caso de prueba: Alumno130203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del alumno uno, la ubicación de las pruebas fue el pasillo 14
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
84
Caso de prueba: Alumno220103
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno dos, la ubicación de las pruebas fue el aula 3
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
85
Caso de prueba: Alumno220104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno dos, la ubicación de las pruebas fue el laboratorio de sistemas distribuidos
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
86
Caso de prueba: Alumno220202
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno dos, la ubicación de las pruebas fue el pasillo 15
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
87
Caso de prueba: Alumno220204
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno dos, la ubicación de las pruebas fue el pasillo 17
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
88
Caso de prueba: Alumno310102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del alumno tres, la ubicación de las pruebas fue el aula 2
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
89
Caso de prueba: Alumno310104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del alumno tres, la ubicación de las pruebas fue el aula 3
Resultado:
Observaciones: en esta prueba, el archivo de recomendaciones contenía la
información del laboratorio de inteligencia artificial como un lugar y también registrada
como inventario
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
90
Caso de prueba: Alumno310203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del alumno tres, la ubicación de las pruebas fue el pasillo 13
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
91
Caso de prueba: Alumno320203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del alumno tres, la ubicación de las pruebas fue el pasillo 14
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
92
Caso de prueba: Empresario130104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del empresario uno, la ubicación de las pruebas fue la entrada
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
93
Caso de prueba: Empresario110104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del empresario uno, la ubicación de las pruebas fue la entrada
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
94
Caso de prueba: Empresario130203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del empresario uno, la ubicación de las pruebas fue el pasillo 13
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
95
Caso de prueba: Empresario130204
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del empresario uno, la ubicación de las pruebas fue el pasillo 12
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
96
Caso de prueba: Empresario230102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo
tres del empresario dos, la ubicación de las pruebas fue el laboratorio de sistemas
distribuidos
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
97
Caso de prueba: Empresario230103
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del empresario dos, la ubicación de las pruebas fue el aula 2
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
98
Caso de prueba: Empresario210201
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del empresario uno, la ubicación de las pruebas fue el pasillo 12
Resultado:
Observaciones: en esta prueba se descargó el archivo JSON para modelar la planta
alta, el usuario pudo interactuar con los objetos virtuales en estas pruebas por lo que
resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
99
Caso de prueba: Empresario210204
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del empresario tres, la ubicación de las pruebas fue el pasillo 15
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
100
Caso de prueba: Empresario310102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del empresario tres, la ubicación de las pruebas fue el vestíbulo
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
101
Caso de prueba: Empresario320102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del empresario tres, la ubicación de las pruebas fue el laboratorio de inteligencia
artificial
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
102
Caso de prueba: Empresario310203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del empresario tres, la ubicación de las pruebas fue el pasillo 10
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
103
Caso de prueba: Empresario320203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del empresario tres, la ubicación de las pruebas fue el pasillo 10
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
104
Caso de prueba: Profesor130102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del profesor uno, la ubicación de las pruebas fue el laboratorio de sistemas distribuidos
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
105
Caso de prueba: Profesor130103
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del profesor uno, la ubicación de las pruebas fue la entrada
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
106
Caso de prueba: Profesor110202
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del profesor uno, la ubicación de las pruebas fue el pasillo 11
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
107
Caso de prueba: Profesor110204
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo uno
del profesor uno, la ubicación de las pruebas fue el pasillo 14
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
108
Caso de prueba: Profesor220102
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor dos, la ubicación de las pruebas fue el laboratorio de inteligencia artificial
Resultado:
Observaciones: en estas pruebas se incluyó la orientación hacia arriba, en la cual se
encontraba el cubículo del Dr. René Santaolaya
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
109
Caso de prueba: Profesor220104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor dos, la ubicación de las pruebas fue el aula 3
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
110
Caso de prueba: Profesor220203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor dos, la ubicación de las pruebas fue el pasillo 11
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
111
Caso de prueba: Profesor230203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del profesor dos, la ubicación de las pruebas fue el vestíbulo
Resultado:
Observaciones: en estas pruebas se incluyó la orientación hacia abajo, en la cual se
encontraba el laboratorio de sistemas distribuidos
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
112
Caso de prueba: Profesor330101
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo tres
del profesor tres, la ubicación de las pruebas fue el laboratorio de ingeniería de
software
Resultado:
Observaciones: en esta prueba se descargó el archivo JSON para modelar la planta
baja, el usuario pudo interactuar con los objetos virtuales en estas pruebas por lo que
resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
113
Caso de prueba: Profesor320104
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor tres, la ubicación de las pruebas fue el laboratorio de inteligencia artificial
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
114
Caso de prueba: Profesor320204
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor tres, la ubicación de las pruebas fue el pasillo 10
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
115
6.3 Resultados Una vez elaboradas las pruebas descritas anteriormente se procederá a evaluar los resultados obtenidos. En un principio, la aplicación marcaba un error en varios de los archivos XML al tratar de extraer la información de los objetos en las recomendaciones, esto fue debido a que en los archivos XML existe un error en la etiqueta “Extensión” en las recomendaciones de personas, como puede apreciarse en la figura 6.3, en esta figura puede apreciarse que algunas etiquetas utilizan la letra s mientras que otras la letra c.
Caso de prueba: Profesor320203
Descripción: se elaborarán pruebas de funcionalidad de la aplicación en el archivo dos
del profesor tres, la ubicación de las pruebas fue el pasillo 12
Resultado:
Observaciones: el usuario pudo interactuar con los objetos virtuales presentados
mediante realidad aumentada, estas pruebas resultaron exitosas
Responsable de la prueba:
Rodrigo Alejandro Morán Leal
Cargo:
Autor de la prueba
Capítulo 6. Pruebas
116
Figura 6.3 Error en los archivos XML por la etiqueta Extensión
Este error se ocasiono debido a que en un principio se generaban las recomendaciones utilizando una c en la etiqueta, después se corrigió y se utilizo la letra s, por tal motivo algunos archivos quedaron con la letra c, para solucionar este problema se corrigieron todos los archivos encontrados en las pruebas que utilizaban la letra c en la etiqueta extensión. Además de este problema en los archivos XML, algunos de ellos generaban recomendaciones nulas, como puede verse en la figura 6.4, que también pueden causar conflicto, estas recomendaciones no fueron consideradas para las pruebas.
Figura 6.4 Recomendaciones nulas en los archivos XML
Una vez corregidos los archivos XML para adaptarlos a las pruebas, éstas procedieron a ejecutarse, únicamente se descargó una vez el archivo JSON para realizar todas las pruebas correspondientes en cada piso. En una primera ejecución de las pruebas, únicamente tuvieron error 4 pruebas de las 216 que se planearon, dando porcentaje de éxito del 98.14%, las pruebas que marcaron error fue debido a que existía un error de sintaxis en el archivo JSON en el que se ejecutaron las pruebas, una vez corregido este error, se volvieron a ejecutar estas pruebas y resultaron exitosas, obteniendo finalmente un 100% de éxito en la ejecución de las pruebas.
Capítulo 7. Conclusiones y trabajos futuros
117
Capítulo 7. Conclusiones y trabajos futuros
En este capítulo se abordarán las conclusiones obtenidas en el desarrollo de este proyecto de investigación, así como también las aportaciones hechas en este proyecto y los posibles trabajos futuros.
Capítulo 7. Conclusiones y trabajos futuros
118
7.1 Conclusiones Como pudo observarse, en este proyecto se desarrolló una aplicación capaz de presentar las recomendaciones e información del entorno, a través de tecnologías de realidad aumentada en dispositivos Smarthphone, con esta aplicación es posible identificar diferentes objetos en el entorno a través del modelo de reconocimiento por orientación desarrollado en esta tesis, con el cual, el dispositivo es capaz de mostrar información de puntos de interés al usuario mediante técnicas de realidad aumentada.
Además, al implementar la aplicación, se desarrolló la estructura de mensajes basados en JSON, estos mensajes contienen información extraída del modelo semántico de la organización, la aplicación es capaz de leer los datos necesarios para formar los puntos de interés, las orientaciones y las ubicaciones del usuario, también se implementaron ajustes a la red de ontologías organizacional, con estas modificaciones se puede modelar la información necesaria para que el modelo de orientación funcione con un sistema de orientación basado en sensorización.
Para probar el modelo de orientación resultado de este proyecto de tesis, se desarrolló una aplicación capaz de presentar las recomendaciones de una organización a través de realidad aumentada, aprovechando los sensores del dispositivo para determinar su orientación, además, se implementaron nuevas clases y relaciones a la red de ontologías organizacionales que ayudarán a complementar la gestión de la información del entorno.
7.2 Aportaciones Además de haber desarrollado una aplicación capaz de insertar información de recomendaciones en el entorno, a través de realidad aumentada, también se diseñó un modelo de reconocimiento de distintos puntos de interés mediante el uso de los sensores del dispositivo, con este modelo de reconocimiento por orientación, es posible que el dispositivo reconozca diferentes puntos de interés en el entorno sin que estos se encuentren en el campo de visión del dispositivo. Además, se implementaron algunas modificaciones a las recomendaciones y a la aplicación desarrollada en este proyecto de tesis, con este modelo se puede reconocer cualquier punto de interés fijo, (tales como oficinas, salas, lugares, rutas de evacuación, etc.) así como objetos que se encuentren temporalmente en algún espacio determinado (expendedores de alimentos, extintores, botiquines de primeros auxilios, etc.).
Otra de las aportaciones en este proyecto de tesis, fue ampliar el conocimiento que se tenía sobre el desarrollo de aplicaciones que utilizan realidad aumentada dentro del área de sistemas distribuidos, a través de la investigación de las diversas técnicas utilizadas en estos sistemas, y también con la evaluación de los trabajos abordados en el estado del arte. De esta forma se asimilaron tecnologías y técnicas se utilizan actualmente para el desarrollo de aplicaciones con realidad aumentada.
Por último, en este proyecto de tesis también se modificó la ontología ONALIN, con estas modificaciones complementaron la ontología implementada en [Estrada 2010] para modelar la infraestructura de la organización. La ontología
Capítulo 7. Conclusiones y trabajos futuros
119
ONALIN se diseñó para el desarrollo de sistemas de navegación, considera estándares que son capaces de elaborar especificaciones para usuarios con discapacidades motrices, por lo que permitiría desarrollar algún sistema de navegación que fuera capaz de escoger la ruta más conveniente para el usuario, de acuerdo a sus capacidades motrices.
7.3 Trabajos futuros Una vez que se ha desarrollado una aplicación que presenta información al usuario mediante realidad aumentada, un trabajo futuro sería la integración del servicio de recomendaciones con mapas contextuales en formato SVG y el servicio de localización implementado en el trabajo de [Yris 2012], integrando de esta forma una aplicación muy completa para modelar los elementos de diversos tipos de organizaciones (museos, empresas de gobierno, centros comerciales, instituciones de educación superior, etc.), ofreciendo en las organizaciones recomendaciones personalizadas a sus visitantes, servicio de ubicación de los usuarios dentro de las instalaciones y consultar la información de la organización a través de una interfaz tradicional, mapas SVG o bien realidad aumentada.
Además de implementar los otros trabajos realizados anteriormente, también podrían adecuarse los archivos XML de las recomendaciones al formato JSON, de esta forma la aplicación sería mucho más ligera y su lectura sería más simple. También, sería posible adecuar algunos aspectos de esta aplicación para que pudiera funcionar en dispositivos móviles tipo Tablet, con las cuales se podrían integrar más opciones en la interfaz, debido a que sus pantallas son más grandes.
Finalmente, otro proyecto que contemplaría este trabajo de investigación, es la implementación de una herramienta que permita la generación semiautomática de mapas contextuales en formato SVG y los modelos ocultos de Markov (MOM), a partir de la descripción de infraestructura de la red de ontologías organizacional, para este caso se podría generar de manera semiautomática la definición de las ubicaciones y de los POI’s y algo interesante es que se pueden generar las rutas por donde se puede transitar dentro y fuera de los edificios, tomando en cuenta las especificaciones de accesibilidad para personas con diversas discapacidades, estas especificaciones están consideradas en la ontología ONALIN.
Referencias
120
Referencias
[Ajanki 2011] An Augmented Reality Interface to Contextual Information, Antti Ajanki, Mark Billinghurst, Hannes Gamper, Toni Järvenpää, Melih Kandemir, Samuel Kaski, Markus Koskela, Mikko Kurimo, Jorma Laaksonen, Kai Puolamäki, Teemu Ruokolainen, Timo Tossavainen, Special Issue on Augmented Reality, Volumen 15, 2011
[Jones 2010] STMicroelectronics Makes 3-Axis Digital Gyroscope With One
Sensor, Willie D. Jones, IEEE Spectrum, 2010
[Akyildiz 2002] A survey on sensor networks, Ian F. Akyildiz, Weilian Su,
Yogesh Sankarasubramaniam, and Erdal Cayirci, IEEE communications magazine, Agosto del 2002
[Arjona 2009] Servicios de localización consientes de contextos aplicados a perfiles de movilidad y tecnologías de localización heterogéneas, Israel Arjona Vizcaíno, CENIDET, México 2009
[Azuma 1997] A survey of Augmented Reality, Ronald T. Azuma,
Teleoperators and Virtual Environments, Agosto 1997
[Bellón 2011] Look!: Framework para Aplicaciones de Realidad Aumentada en
Android, Sergio Bellón Alcarazo, Jorge Creixell Rojo, Angel Serrano Laguna, Jorge J. Gómez Sanz, Universidad Complutense de Madrid, Facultad de Informática, 2011
[Bouzeghoub 2009] Situation-Aware Adaptive Recommendation to Assist
Mobile Users in a Campus Environment, Amel Bouzeghoub, Kien Ngoc Do, Leandro Krug Wives, International Conference on Advanced Information Networking and Applications, Reino Unido 2009
[Cheung 2006] A Personal Knowledge Management Tool that Supports
Organizational Knowledge Management, Cheung Larry Y.C., Chung Paul Wai Hing, Stone R.G., Dai Wei, 3rd Asia-Pacific International Conference on Knowledge Management (KMAP), Hong Kong 2006
[Choonsung 2010] Unified Context-aware Augmented Reality Application
Framework for User-Driven Tour Guides, Choonsung Shin, Hyejin Kim, Changgu Kang, Youngkyoon Jang, Ahyoung Choi, Woontack Woo, International Symposium on Ubiquitous Virtual Reality, 2010
Referencias
121
[Christos 2005] OntoNav: A Semantic Indoor Navigation System, Christos
Anagnostopoulos, Vassileios Tsetsos, Panayotis Kikiras, Stathes P., 1st Workshop on Semantics in Mobile Environments (SME'05), 2005
[Coulton 2008] Using a Camera Phone as aMixed-Reality Laser Cannon, Fadi Chehimi, Paul Coulton, Reuben Edwards, International Journal of Computer Games Technology, Reino Unido 2008
[Dudas 2009] ONALIN: Ontology and Algorithm for Indoor Routing, Patrick M.
Dudas, Mahsa Ghafourian, Tenth International Conference on Mobile Data Management: Systems, Services and Middleware, 2009
[Ehrig 2007] Ontology Alignment Bridging the Semantic Gap, Marc Ehrig, Springer, Estados Unidos 2007
[Estrada 2010] Generación y explotación de mapas semánticos de instalaciones organizacionales mediante el uso de ontologías, Ricardo Estrada Peláez, CENIDET, México 2010
[Estrada 2012] Generación y explotación de mapas semánticos de
instalaciones organizacionales mediante el uso de ontologías, Ricardo Estrada Peláez, CENIDET, México 2010
[Gediminas 2010] Context-Aware Recommender Systems, Gediminas Adomavicius, Alexander Tuzhilin, New York, 2010
[González 2012] Servicio de recomendación contextual mediante ontologías multidimensionales para dispositivos Smartphone, Nimrod González Franco, CENIDET, México 2012
[IEEE 1998] 829 Standard for Software and System Test Documentation,
Institute of Electrical and Electronic Engineers, Estados Unidos, 1998
[ISO 2006] ISO/IEC18004, Information technology - Automatic identification and
data capture techniques - QR Code 2005 bar code symbology specification, segunda Edición, Editorial ISO/EC, Suiza 2006
[Jürgen 2007] Towards a Semantic Spatial Model for Pedestrian Indoor
Navigation, Edgar-Philipp Stoffel, Bernhard Lorenz, Hans Jürgen Ohlbach, conference on Advances in conceptual modeling: foundations and applications, 2007
Referencias
122
[Kim 1989] Digital Compass and Magnetometer having a sensor coil wound on
a high permaneablility isotropic core, Nam H. Kim, Timothy Hawks, United States Patent, Estados Unidos 1989
[Kumar 2008] A Developer’s First Look at Android, Amit Kumar Saha, Overview developers – Linux for you, Enero del 2008
[Kurata 2007] A Pilot User Study on 3-D Museum Guide with Route Recommendation Using a Sustainable Positioning System, Takashi Okuma, Masakatsu Kourogi, Nobuchika Sakata, Takeshi Kurata, International Conference on Control, Automation and Systems, Corea 2007
[Matysczok 2003] Development of a Real Time Image Based Object Recognition Method for Mobile AR-Devices, Juergen Gausemeier, Juergen Fruend, Carsten Matysczok, Beat Bruederlin, David Beier, Afrigraph 2003
[Mulloni 2010] North-centred Orientation Tracking on Mobile Phones, Gerhard
Schall, Alessandro Mulloni, Gerhard Reitmayr, 9th IEEE International Symposium on Mixed and Augmented Reality (ISMAR), 2010
[Olwal 2006] LightSense: Enabling Spatially Aware Handheld Interaction Devices, Alex Olwal, IEEE and ACM International Symposium on Mixed and Augmented Reality
[Pajares 2008] Visión por computador Imágenes digitales y aplicaciones,
Gonzalo Pajares Martinsanz, Jesús M. de la Cruz García, segunda Edición, Editorial RA-MA, México 2008.
[Papagiannakis 2005] Mixing Virtual and Real scenes in the site of ancient Pompeii, George Papagiannakis, Sebastien Schertenleib, Brian O’Kennedy, Marlene Arevalo-Poizat, Nadia Magnenat-Thalmann, Andrew Stoddart, Daniel Thalmann, Journal of Visualization and Computer Animation 16, 2005
[Park 2010] A Tracking Framework for Augmented Reality Tours on Cultural Heritage Sites, Byung-Kuk Seo, Kangsoo Kim, Jungsik Park, Jong-II Park, Proceedings of the 9th ACM SIGGRAPH Conference on Virtual-Reality Continuum and its Applications in Industry, Estados unidos 2010
[Paucher 2010] Location-based augmented reality on mobile phones, Rémi Paucher, Matthew Turk, IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 2010
Referencias
123
[Pombinho 2011] Point of interest awareness using indoor positioning with a
mobile phone, Paulo Pombinho, Ana Paula Afonso, Maria Beatriz Carmo, International Conference on Pervasive and Embedded Computing and Communication Systems, 2011
[Portillo 2008] Tecnología de identificación por radio frecuencia (RFID):
Aplicaciones en el ámbito de la salud, Javier I. Portillo, Ana Belén Bermejo, Ana M. Bernardos, Informe de Vigilancia Tecnológica Madrid, 2008
[Pressman 2002] Ingeniería del software: un enfoque práctico, Roger Pressman, 5ª edición, McGraw-Hill, 2002.
[QDevNet 2011] Augmented Reality – Qualcomm developer Network, QDevNet, 2011, https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality
[Rashid 2006] PAC-LAN: Mixed-Reality Gaming with RFID Enabled Mobile
Phones, Omer Rashid, Will Bamford, Paul Coulton, Reuben Edwards, ACM Computers in Entertainment, Vol. 4, No. 4, October 2006.
[Röhrig 2009] Indoor Location Tracking in Non-line-of-Sight Environments Using a IEEE 802.15.4a Wireless Network, Christof Röhrig, Marcel Müller, International Conference on Intelligent Robots and Systems, 2009
[Schmalstieg 2003] Location based Applications for Mobile Augmented
Reality, Gerhard Reitmayr, Dieter Schmalstieg, Australasian User Interface Conference, Australia 2003
[Schmalstieg 2006] Handheld augmented reality displays, IEEE Conference on Virtual Reality, Dieter Schmalstieg, Daniel Wagner, Washington, 2006
[Schmalstieg 2007] Experiences with Handheld Augmented Reality, Dieter Schmalstieg, Daniel Wagner, International Symposium on Mixed and Augmented Reality (ISMAR), Japón 2007
[Schmalstieg 2011] Augmented Reality 2.0, Dieter Schmalstieg, Tobias
Langlotz, Mark Billinghurst, Virtual Realities, p. 13-38, Springer, Alemania 2011
[Shann 2007] Face detection and smile detection, Yu-Hao Huang, Chiou-
Shann Fuh, Images & Recognition, Vol. 13 - No. 1, p. 4 – 9, China 2007
Referencias
124
[Sukhatme 2009] Coarse In-building Localization with Smartphones, Avinash
Parnandi, Ken Le, Pradeep Vaghela, Aalaya Kolli, Karthik Dantu, Sameera Poduri, Gaurav S. Sukhatme, Estados Unidos 2009
[Swan 2010] Perceptual Issues in Augmented Reality Revisited, Ernst Kruijff, J. Edward Swan, Steven Feiner, IEEE International Symposium on Mixed and Augmented Reality, Corea 2010
[Thalmann 2008] A survey of mobile and wireless technologies for augmented
reality systems, George Papagiannakis, Gurminder Singh, Nadia Magnenat-Thalmann, Journal of Visualization and Computer Animation, Estados Unidos 2008
[Thomas 2002] First Person Indoor/Outdoor Augmented Reality Application:
ARQuake, Bruce Thomas, Ben Close, John Donoghue, John Squires, Phillip De Bondi, Wayne Piekarski, Springer - Personal and Ubiquitous Computing, Londres 2002.
[Turk 2010] Location-based augmented reality on mobile phones, Rémi
Paucher, Matthew Turk, IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 2010
[Vargas 2009] Modelo colaborativo para la integración de sistemas, Rocío Vargas Arrollo, CENIDET, México 2009
[Weiser 1993] Some computer science issues in ubiquitous computing, Mark Weiser, communications of the ACM, Julio 1993, Vol 36, No. 7
[Woo 2009] CAMAR Tag Framework: Context-Aware Mobile Augmented Reality Tag Framework for Dual-reality Linkage, Hyejin Kim, Wonwoo Lee, Woontack Woo, International Symposium on Ubiquitous Virtual Reality, 2009.
[Woo 2010] Unified Context-aware Augmented Reality Application Framework
for User-Driven Tour Guides, Choonsung Shin, Hyejin Kim, Changgu Kang, Youngkyoon Jang, Ahyoung Choi, Woontack Woo, International Symposium on Ubiquitous Virtual Reality, 2010.
[Woo 2011] QR Code Data Representation for Mobile Augmented Reality,
Hyoseok Yoon, Nohyoung Park, Wonwoo Lee, Youngkyoon Jang, Woontack Woo, International AR Standards Meeting-February, 2011
[Worboys 2011] Modeling indoor space, Michael Worboys, Conference On Spatial Information, 2011
Referencias
125
[Yris 2012] API Para servicios de localización basada en tecnología RFID,
QRCode, WIFI y Bluetooth, Miguel Ángel Yris Pastor, CENIDET, México 2010
[Zhu 2008] Personalized In-store E-Commerce with the PromoPad: an
Augmented Reality Shopping Assistant, Wei Zhu, Charles B. Owen, Hairong Li, Joo-Hyun Lee, Electronic Journal for E-commerce Tools, 2008
[Zöllner 2009] An Augmented Reality Presentation System for Remote Cultural Heritage Sites, M. Zöllner, J. Keil, H. Wüst, D. Pletinckx, The 10th International Symposium on Virtual Reality, Archaeology and Cultural Heritage VAST, 2009