TESIS DE MAESTRÍA EN CIENCIAS - cenidet.edu.mx Rodrigo... · tecnologías, desde algoritmos que...

134
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

Transcript of TESIS DE MAESTRÍA EN CIENCIAS - cenidet.edu.mx Rodrigo... · tecnologías, desde algoritmos que...

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