Tesis de Realidad Virtual Movil
Tesis de Realidad Virtual Movil
Tesis de Realidad Virtual Movil
de
Ciencias
Junio – 2017
2
ÍNDICE DE CONTENIDO
Resumen ................................................................................................. 5
Abstract.................................................................................................... 6
Indice de figuras ...................................................................................... 7
Indice de tablas ........................................................................................ 8
1. Introducción .................................................................................... 9
1.1. Estado del arte: realidad virtual ................................................ 9
1.2. Estado del artE....................................................................... 13
1.3. Motivación .............................................................................. 14
1.4. Objetivos ................................................................................ 15
2. Material y tecnología utilizada....................................................... 15
2.1. Herramientas.......................................................................... 15
2.1.1. Unity 3D.............................................................................. 15
2.1.2. Blender ............................................................................... 18
2.1.3. Adobe Photoshop CC ......................................................... 18
2.1.4. Monodevelop ...................................................................... 19
2.1.5. Unity Remote ...................................................................... 20
2.1.6. Cámara Ricoh Theta S ....................................................... 21
2.1.7. Project 2016 ....................................................................... 21
2.1.8. Draw.io ............................................................................... 21
2.1.9. Balsamiq Mockups ............................................................. 22
2.1.10. XMLSpy ............................................................................ 22
2.2. Tecnología ............................................................................ 22
2.2.1. C# ....................................................................................... 22
2.2.2. XML .................................................................................... 22
2.2.3. Google VR SDK For Unity .................................................. 22
2.2.4. Android SDK ....................................................................... 23
3. Metodología .................................................................................. 23
3.1. Planificación ........................................................................... 24
4. Análisis de requisitos .................................................................... 25
4.1. Requisitos funcionales ........................................................... 25
4.2. Requisitos no funcionales ...................................................... 26
5. Diseño e implementación ............................................................. 27
5.1. Arquitectura del sistema ......................................................... 27
5.2. Capa de presentación ............................................................ 29
5.2.1. Diagrama de flujo de navegación ....................................... 30
5.3. Capa de negocio .................................................................... 34
5.3.1. Diagrama de clases ............................................................ 38
5.4. Capa de datos ........................................................................ 40
5.4.1. Paseos ............................................................................... 40
5.4.2. Entornos del paseo............................................................. 42
5.4.3. Sugerencias ....................................................................... 43
6. Evaluación y pruebas ................................................................... 44
6.1. Pruebas unitarias ................................................................... 44
6.2. Pruebas de integración .......................................................... 46
6.3. Pruebas de sistema ............................................................... 46
6.3.1. Pruebas de rendimiento ..................................................... 46
3
6.3.2. Pruebas de usabilidad ........................................................ 47
6.4. Pruebas de aceptación .......................................................... 49
7. Conclusiones y trabajos futuros .................................................... 51
7.1. Conclusiones.......................................................................... 51
7.2. Trabajos futuros ..................................................................... 52
Bibliografía ............................................................................................. 53
4
RESUMEN
Con el auge y la múltiple creación dispositivos de realidad virtual este
próximo año, vamos a vivir un salto tecnológico considerable en nuestra
sociedad. La repercusión de estos sistemas va a ser inmensa en su comienzo y
todos los sectores de la sociedad se van a ver beneficiados de una u otra
manera por esta tecnología, por ejemplo, en el ámbito de la educación o la
industria.
5
ABSTRACT
With the boom and the diverse creation of virtual reality devices this
coming year, we will live a considerable technological leap in our society. The
impact of these systems will be immense and all sectors of society will benefit in
some way through this technology, for example in the field of education or
industry.
6
INDICE DE FIGURAS
Figura 1. Estereoscopio de Wheatstone ................................................ 10
Figura 2. Sword of Damocles................................................................. 11
Figura 3. Sistema "Vived" ...................................................................... 12
Figura 4. De izquierda a derecha: Google Cardboard, Samsung Gear VR
......................................................................................................................... 13
Figura 5. Dispositivos con pantalla incorporada .................................... 13
Figura 6. Logo de Unity.......................................................................... 16
Figura 7. Interfaz de usuario de Unity .................................................... 17
Figura 8. Interfaz de Blender ................................................................. 18
Figura 9. Interfaz de Photoshop ............................................................. 19
Figura 10. Interfaz de Monodevelop ...................................................... 20
Figura 11. Unity Remote ........................................................................ 20
Figura 12. Cámara Ricoh Theta S ......................................................... 21
Figura 13. Fases de metodología iterativa e incremental ...................... 23
Figura 14. Diagrama de Gantt ............................................................... 25
Figura 15. Arquitectura 3 capas utilizada ............................................... 28
Figura 16. Diagrama de componentes de la arquitectura ...................... 28
Figura 17. Diagrama de flujo de navegación de las escenas................. 30
Figura 18. Mockup de la escena menú principal .................................... 32
Figura 19. Mockup de la escena del formulario de sugerencias ............ 32
Figura 20. Mockup de la escena menú de selección de entorno ........... 33
Figura 21. Mockup de la escena del paseo virtual ................................. 34
Figura 22. Eventos Gaze Pointer ........................................................... 35
Figura 23. Evento que se ejecuta .......................................................... 36
Figura 24. Reconocimiento del gesto .................................................... 37
Figura 25. Carga de las sugerencias del buzón de sugerencias ........... 38
Figura 26. Diagrama de clases .............................................................. 38
Figura 27. Estructura de los paseos ...................................................... 40
Figura 28. Datos del fichero XML paseos .............................................. 41
Figura 29. Esquema del fichero XML paseos ........................................ 41
Figura 30. Estructura de los entornos de los paseos ............................. 42
Figura 31. Esquema de los entornos de los paseos .............................. 43
Figura 32. Estructura de las sugerencias............................................... 43
Figura 33. Esquema de las sugerencias ................................................ 44
Figura 34. Pruebas unitarias ejemplo 1 ................................................. 45
Figura 35. Pruebas unitarias ejemplo 2 ................................................. 45
Figura 36.Pruebas unitarias ejemplo 3 .................................................. 46
Figura 37. Gráfica de resultados de pruebas de aceptación.................. 50
7
INDICE DE TABLAS
8
1. INTRODUCCIÓN
En los últimos años, los dispositivos móviles han pasado a ser una parte
esencial de nuestra vida. Las grandes compañías han apostado fuerte en el
desarrollo de estos dispositivos y esto ha significado un aumento exponencial
de sus características técnicas en los últimos años. Los denominados
Smartphone ya no son solo aparatos de comunicación, sino que son pequeños
ordenadores de bolsillo que nos acompañan a todas partes. En este mercado
de teléfonos móviles, la tecnología también se ha incrementado y diversificado
llegando a tener varios sistemas operativos móviles en los terminales. Siendo
Android, el sistema operativo móvil con más cuota de mercado mundial [1].
9
conocidos como gafas de realidad virtual. Por lo tanto, el punto clave de esta
tecnología, es la eliminación de la frontera existente entre realidad e irrealidad
en un entorno no real.
10
Cerca de los años 60, la empresa Philco Corporation crea un casco de
realidad virtual que utiliza los movimientos de la cabeza del usuario para
realizar los desplazamientos. El invento fue creado con la idea de ser utilizado
por el ejército para la visualización de situaciones peligrosas de forma remota.
11
Figura 3. Sistema "Vived"
Las que no tienen un visor incorporado, por lo que necesitan un móvil, que
contenga los sensores de giroscopio y acelerómetro.
12
Figura 4. De izquierda a derecha: Google Cardboard, Samsung Gear VR
13
situaciones de riesgo realistas en primera persona, mejorando la detección de
riesgos, en la medicina, para la formación de médicos y enfermeras en
situaciones de entrenamiento donde tienen que interactuar con un paciente, o
para el tratamiento de fobias de pacientes.
1.3. MOTIVACIÓN
En la actualidad, la realidad virtual es una tecnología que está muy
presente y que está suponiendo una auténtica revolución, puede suponer un
antes y un después en muchos sectores como la educación, la medicina o la
industria. Por ello en este proyecto se va a apostar por esta nueva tecnología
que cambia la forma en la que el usuario interacciona con los sistemas de
información.
14
con ideas realizadas en otras aplicaciones con otros fines, adaptando esa
información a este proyecto.
1.4. OBJETIVOS
El objetivo principal de este proyecto es desarrollar una aplicación para
el entorno educativo mediante el sistema operativo Android, que permita a los
alumnos estar inmersos en un entorno sociocultural virtual sin salir de sus
aulas. Pudiendo interactuar con objetos del entorno, aportando y cumpliendo
una función educativa además de entretenimiento y diversión. Para la creación
de los entornos virtuales, se hace uso de la tecnología de Realidad virtual, y los
usuarios pueden disfrutar de una buena experiencia a través de unas gafas de
realidad virtual, en este caso “Cardboard”. Además, los usuarios no necesitan
hacer uso de los botones que proporcionan determinadas gafas de realidad
virtual, ya que toda, la interacción se hace con el movimiento de la cabeza y la
mirada fija a un objeto.
2.1. HERRAMIENTAS
2.1.1. UNITY 3D
15
una versión gratuita y una versión Pro de pago, que incorpora funcionalidades
que la versión gratuita no posee.
16
Figura 7. Interfaz de usuario de Unity
17
2.1.2. BLENDER
2.1.4. MONODEVELOP
19
Figura 10. Interfaz de Monodevelop
Unity Remote [15] es una app descargable diseñada para ayudar con el
desarrollo Android y iOS. La aplicación se conecta con Unity mientras estas
corriendo el proyecto en el modo de reproducción desde el editor. El output
visual desde el editor es enviado a la pantalla del dispositivo y unos inputs en
vivo son enviados de vuelta al proyecto ejecutándose en Unity.
20
2.1.6. CÁMARA RICOH THETA S
2.1.8. DRAW.IO
21
2.1.9. BALSAMIQ MOCKUPS
2.1.10. XMLSPY
2 .2 . TECNOLOGÍA
2.2.1. C#
2.2.2. XML
3. METODOLOGÍA
Para realizar este proyecto, se ha utilizado una metodología de
desarrollo iterativa e incremental [7]. Este procedimiento permite planificar un
proyecto en distintos bloques temporales denominados iteración. Por lo tanto,
este tipo de metodología, nos va a permitir dividir nuestro proyecto en
diferentes etapas, que van a ser validadas al final de cada una. Se puede
comprobar que todos los resultados son los esperados sin la necesidad de
tener terminado nuestro software completamente, y se puede identificar
situaciones de error (o simplemente aplicar mejoras) en las fases ya
desarrolladas.
23
3.1. PLANIFICACIÓN
El proyecto está dividido principalmente en 3 fases, en la que una de
ellas, está dividida en iteraciones:
Fase de formación
Fase de desarrollo
Análisis: Fase de análisis sobre qué hacer, cómo hacerlo, con qué
herramientas, limitaciones y objetivos a conseguir.
Revisión
24
Figura 14. Diagrama de Gantt
Iteración 1
Iteración 2
Iteración 3
Iteración 4
4. ANÁLISIS DE REQUISITOS
En este capítulo se presenta la fase de análisis, parte inicial de todo
proyecto software. Se muestra una especificación de requisitos detallada [7],
tanto los requisitos funcionales como los no funcionales.
Identificador Descripción
RF01 El sistema moverá la cámara siguiendo el movimiento de la
cabeza del usuario.
RF02 El puntero de la aplicación generara continuamente raycast,
que generarán eventos al colisionar con objetos válidos.
25
RF03 El sistema no se iniciará por completo si el dispositivo móvil no
dispone de sensor de giroscopio o la versión de Android es
menor que 5.1.
RF04 Las sugerencias se almacenarán en ficheros de datos XML.
RF05 El sistema debe representar el contenido gráfico y sugerencias
a partir de ficheros de datos XML.
RF06 El sistema generará dos imágenes desfasadas para que
nuestro cerebro las una y genere una única imagen
tridimensional, como la visión en el mundo real.
RF07 El sistema avisará al usuario de tomar un descanso, tras un
periodo de tiempo razonable usando la aplicación.
RF08 El sistema interpretará el gesto que hace el usuario con la
cabeza para avanzar a una escena u otra.
RF09 El usuario podrá hacer una captura de pantalla y compartirla
en sus redes sociales.
RF10 El usuario podrá configurar el volumen del sonido y el brillo del
entorno.
RF11 El usuario podrá realizar un tour virtual.
RF12 El usuario podrá elegir el paseo y el entorno a su gusto.
RF13 El usuario podrá ver información del entorno.
RF14 El usuario podrá ver videos del entorno y controlar su
reproducción.
RF15 El usuario podrá ver imágenes del entorno.
RF16 El usuario podrá ver imágenes 360 del entorno.
RF17 El usuario podrá salir de la aplicación en todo momento.
RF18 El usuario podrá ocultar/mostrar el contenido gráfico del
entorno cuando desee.
RF19 El usuario podrá ver y dejar sugerencias de la aplicación, en el
buzón del menú principal.
RF20 La aplicación no necesita de uso de Internet, por lo que se
puede usar en todo momento.
Tabla 1. Requisitos Funcionales
26
RNF03 Rendimiento El sistema deberá ofrecer un Alta
buen rendimiento, cargando y
respondiendo a las acciones
del usuario en un mínimo de 1
segundo.
RNF04 Rendimiento El sistema deberá funcionar a Alta
más de 30 FPS.
RNF05 Interfaz La aplicación debe ser fácil e Media
intuitiva.
RNF06 Hardware El sistema necesita que el Alta
móvil disponga de los
sensores de giroscopio y
acelerómetro.
RNF07 Hardware La aplicación debe ser Alta
utilizada con unas gafas de
realidad virtual.
RNF08 Disponibilidad La aplicación necesita al Media
menos 350 mega bytes
disponibles de
almacenamiento dentro del
dispositivo para poder ser
instalada y ejecutada
correctamente.
RNF09 Usabilidad y El sistema ha de presentar los Media
Accesibilidad elementos gráficos claramente
visibles e identificables.
RNF10 Usabilidad La aplicación ha de cumplir Alta
con los consejos de usabilidad
de una aplicación Android y
de realidad virtual.
Tabla 2. Requisitos No Funcionales
5. DISEÑO E IMPLEMENTACIÓN
En este capítulo se explican los procesos de diseño e implementación
del sistema. Para ello, se especifica la arquitectura de la aplicación y cada una
de las capas que compone la arquitectura.
27
rendimiento, mantenimiento y sus funciones. Esta separación de las diferentes
partes hace que los cambios en cualquiera de las capas no afecten o afecten
poco a las otras capas en que está dividida la aplicación.
28
presentación e información de la capa de datos, y encargarse de mostrarlos
en la capa de presentación. Además, es la que contiene toda la lógica de la
aplicación, como scripts. Esta capa está formada por un módulo principal
que se encarga de todo aquello que está sucediendo durante el juego, y
varios submódulos que se encargan de la gestión de la realidad virtual o las
escenas, entre muchos otros.
29
Pantalla: Todo lo que suceda en la aplicación se representará
gráficamente a través de la pantalla del dispositivo.
1. Splash Screen
2. No giroscopio
30
3. Escena inicial
5. Escena tutorial
Ajustes: Aparecen los botones con los que el usuario puede calibrar
los valores de brillo de la escena o sonido ambiente.
31
Ayuda: Es un texto de ayuda para saber cómo interactuar con los
botones, saber la funcionalidad de los botones que aparecen a lo
largo de la aplicación u otras funcionalidades de la aplicación.
7. Escena sugerencia
32
8. Escena selección del entorno
33
Figura 21. Mockup de la escena del paseo virtual
34
Gaze Pointer: Este sistema compone la interacción del usuario con
el entorno de realidad virtual. El retículo situado en mitad de la
pantalla manda continuamente “Raycast” y al chocar con un
elemento 3D o un elemento UI se producen determinados eventos y
comportamientos. Cuando los “Raycast” chocan con un objeto válido,
el puntero del retículo se transforma en un círculo, y cuando deja de
chocar, se transforma otra vez en un punto. Este comportamiento
ayuda a los usuarios a saber en todo momento lo que está pasando y
es manejado mediante el uso de OnGazeStart, OnGazeStay y
OnGazeExit. Además, se comprueba si el elemento al que se está
mirando es un elemento grafico del entorno. Ya que los elementos
del entorno son creados con el tag instancia.
35
Gestión de los eventos: Este componente se encarga de gestionar la
funcionalidad de determinados objetos del entorno. Debido a que muchos
de los objetos del entorno se implementan como scripts de comportamiento
asociados a componentes.
36
Figura 24. Reconocimiento del gesto
37
Figura 25. Carga de las sugerencias del buzón de sugerencias
38
A continuación, se va a hacer una descripción detallada de las clases del
diagrama anterior:
EstadoApp
Sugerencia
Paseo
Entorno
Esta clase contiene los ítems que hay por el entorno como marcadores,
imágenes, videos, imágenes 360 o textos. Estos objetos se obtienen
mediante uso del documento XML. Cada vez que se elige o cambia un
nuevo entorno, se limpian los ítems anteriores y se busca en el documento
XML los ítems del nuevo entorno elegido.
Ítem
Marcador,Imagen,Imagen360,Texto,Video
Son las clases derivadas. A parte de los atributos que heredan de la clase
Ítem, cada clase tiene un atributo distinto y sus respectivos getters.
Marcador tiene un atributo Integer con el id del entorno destino de ese
marcador. Imagen tiene un atributo Sprite 2D de la imagen a mostrar.
Imagen360 tiene un atributo Material con el fondo la imagen 360 a mostrar.
39
Texto tiene un atributo String con el texto a mostrar. Video tiene un atributo
VideoClip del video.
5.4.1. PASEOS
40
Nombre: Es el nombre del paseo virtual.
41
5.4.2. ENTORNOS DEL PASEO
Información: Valor String esencial para la creación del ítem, pero tiene una
finalidad diferente en cada uno. Si el tipo es “Marcador”, es el número del
entorno que te diriges si se pulsa ese marcador. Si el tipo es “Imagen”, es el
nombre del archivo que contiene la imagen que se quiere mostrar al pulsar
42
sobre el elemento. Si el tipo es “Imagen360”, es el nombre del material que
contiene el fondo que se quiere ver. Si el tipo es “Texto” contiene el texto
que se va a mostrar al pulsar sobre el elemento. Si el tipo es “Video”, es el
nombre del video que se va a mostrar al pulsar sobre el elemento.
5.4.3. SUGERENCIAS
43
Asunto: Tema de la sugerencia. No es un campo obligatorio.
6. EVALUACIÓN Y PRUEBAS
En este capítulo se realizan las pruebas [7] para validar y comprobar el
funcionamiento de la aplicación, y asegurarse que los requisitos especificados
se han cumplido. Al haber utilizado la metodología incremental, cada iteración
debía realizar pruebas sobre lo implementado.
44
Figura 34. Pruebas unitarias ejemplo 1
45
Figura 36.Pruebas unitarias ejemplo 3
46
Para demostrar esto, se ha utilizado un prefab que nos proporciona el
paquete de Google VR, que se añade a la cámara y nos indica en número de
fotogramas por segundo a los que va la aplicación. Se ha tomado los fps de la
aplicación en todas las escenas y se ha hecho la media. Resultando una media
de 34.8 fps, por lo que, los fps son fluidos.
47
seguir unos consejos adecuados. Para estas pruebas se ha seguido la guía de
usabilidad de Android.
48
6.4. PRUEBAS DE ACEPTACIÓN
Las pruebas de aceptación se conciben como la última parte del proceso
de verificación, ya que se refieren a la validación del funcionamiento del
sistema según los propios usuarios o jugadores. En nuestro caso, se ha hecho
una encuesta a 6 usuarios de diferentes edades. Tras el uso de la aplicación,
han rellenado el siguiente formulario, en el cual, se han definido un conjunto de
tareas con el fin de comprobar el correcto funcionamiento y el nivel de
usabilidad. Dichas pruebas, se realizaron con el mismo terminal con la
aplicación instalada.
Pregunta 1
El usuario debe lanzar la aplicación. ¿Ha comenzado de manera
satisfactoria? Si la respuesta es no indique que ha pasado.
□ Si
□ No
Pregunta 2
El usuario debe salir de la aplicación. ¿Ha salido de manera
satisfactoria? Si la respuesta es no indique que ha pasado.
□ Si
□ No
Pregunta 3
¿Reconoce el sistema correctamente el gesto “si” o “no” del usuario? Si
la respuesta es no indique que ha pasado.
□ Si
□ No
Pregunta 4
El usuario debe interactuar con los botones de los menús. ¿Ha podido
interactuar de manera satisfactoria? Si la respuesta es no indique que ha
pasado.
□ Si
□ No
Pregunta 5
El usuario debe interactuar con los objetos del entorno del paseo virtual.
¿Ha podido interactuar de manera satisfactoria? Si la respuesta es no indique
que ha pasado.
□ Si
□ No
Pregunta 6
¿Le parece una interfaz fácil e intuitiva?
□ Si
□ No
□ Regular
49
Pregunta 7
¿Le ha parecido una aplicación difícil de utilizar?
□ Si
□ No
□ Regular
Pregunta 8
¿Le ha gustado la aplicación?
□ Si
□ No
□ Regular
Pregunta 9
¿Le parece una buena idea el aprendizaje a través de una aplicación de
realidad virtual, en el ámbito de la educación? Si la respuesta es no indique que
por qué.
□ Si
□ No
□ Regular
Pregunta 10
¿Qué aspectos mejorarías de la aplicación?
50
En las primeras 5 preguntas y la pregunta 7, todos los usuarios
respondieron a todo que positivamente. Sin embargo, en la pregunta 6, un
usuario respondió que la interfaz no le parecía muy intuitiva y que cambiaría la
organización y diseño de algunas cosas. En la pregunta 8, un usuario
respondió regularmente, ya que no veía mucho futuro a la aplicación. En la
pregunta 9, dos usuarios respondieron negativamente con una respuesta
similar, que preferirían el aprendizaje de los entornos visitándolos en persona y
que veían la aplicación más en el ámbito del turismo y entretenimiento. En la
última pregunta, la mayoría de los usuarios contestaron que mejorarían la
calidad de la imagen de algunos elementos de la aplicación.
7.1. CONCLUSIONES
En primer lugar, hay que centrarse en ofrecer las conclusiones obtenidas
desde el análisis y desarrollo de una aplicación de Android, usando la
tecnología de realidad virtual, desde un punto de vista de un ingeniero de
software.
52
BIBLIOGRAFÍA
1. Android domina el mercado global de sistemas operativos Android:
http://www.elcomercio.com/guaifai/android-ios-mercado-sistema-
operativo.html
53
20. C#: https://es.wikipedia.org/wiki/Extensible_Markup_Language
54