View
6
Download
0
Category
Preview:
Citation preview
Trabajo realizado por:
Jorge Luis Ramos Hurtado
Dirigido por:
Francisco Javier Mora e Ignacio Valero
Grado en:
Ingeniería de Obras Públicas
Barcelona, Octubre 2019
Departamento de Ingeniería Civil y Ambiental
TR
AB
AJO
FIN
AL
DE
GR
AD
O
REALIDAD AUMENTADA APLICADA A CIMENTACIONES DE OBRAS DE CONSTRUCCIÓN
Octubre 2019
JORGE LUIS RAMOS HURTADO 2
Resumen
Actualmente, en el sector de la Arquitectura, Ingeniería y Construcción, la revolución tecnológica
es menor debido a la complejidad y el dinamismo de los distintos recursos, especialmente,
durante la fase de construcción.
La realidad aumentada (RA) es una de las tecnologías en investigación por parte del sector para
su implementación, y así, mejorar la eficiencia en los distintos procesos constructivos. El
potencial de esta tecnología es mayúsculo ya que su aplicabilidad puede llegar a ser de gran
utilidad, no solo en fase de diseño como la realidad virtual (RV), sino también en fase de
explotación y mantenimiento.
Esta tesina pretende enfocarse en la aplicación de la realidad aumentada en la construcción,
concretamente, en el proceso de ejecución de las armaduras y, además, de cómo ayudar en obra
a la prevención de riesgos laborales (PRL) para esta actividad. Para ello se barajan distintos
dispositivos que permiten la visualización de los elementos necesarios, como bien puede ser un
teléfono móvil, una tableta o unas gafas de realidad aumentada.
El desarrollo de aplicaciones en RA para la visualización de elementos de obra conlleva un
aprendizaje de las distintas plataformas que intervienen y un análisis del contexto de la
tecnología actual. Además, se ha de realizar un estudio de los procesos de ejecución actuales
para poder diseñar mejoras en un futuro próximo. En el caso de la prevención de riesgos
laborales, se debe de hacer un análisis de zonas de peligro y sus localizaciones, y posteriormente
identificarlas y mostrar las medidas a tomar para su correcta ejecución.
Una vez se estudia los distintos softwares informáticos disponibles, se determina que las gafas
de realidad aumentada (Magic Leap One) son el dispositivo con el que se realiza esta
experiencia. Seguidamente, se adquiere el conocimiento necesario para el diseño de la
aplicación en RA para poder aplicarlo en una obra de construcción real.
Finalmente, no se da la oportunidad de aplicabilidad en obra, pero se sientan las bases para el
desarrollo de una app en RA, se describen los casos en los que se percibe un mayor progreso
con su implementación y se extraen conclusiones de todo ello.
Octubre 2019
JORGE LUIS RAMOS HURTADO 3
Abstract
Currently, the technology revolution in the Architecture, Engineering and Construction (AEC)
sector is being minoritized due to the complexity and the dynamism of the various resources.
Specifically, during the construction phases.
Augmented reality (AR) is one of the systems that is being investigated by the AEC sector to
implement it and enhance the distinct construction processes efficiencies, inter alia.
The potential of this technology is immense on account of the various applications that could
have, not only in design as the virtual reality (VR), but also in operation and maintenance
phases.
Therefore, this bachelor thesis pretends to aim at the AR application, particularly, on the steel
framework construction. And also, how to aid in construction site safety in this particular
activity. This can be done with multiple devices like a mobile phone, tablet or AR glasses that
allows you to visualize required elements.
Development in AR application that visualizes construction site elements entails learning about
the software’s platforms involved and current technological context analysis. Furthermore,
research is needed on the current procedures of the various construction works to design
improvements shortly. In terms of constructions safety, an analysis of the dangerous locations
is required to identify them and make appropriate decisions.
Once the analysis of the different platforms is done, the determined device to continue this AR
experience is the Magic Leap One glasses. Afterwards, research on how this device works is
needed to create an AR experience and implement it on a real construction site.
In the end, there is not an opportunity to apply the experience, nevertheless, it provides the
basis of an AR application development. Different applications modes with enormous potential
are created and then there is a conclusion extraction about the made process.
Octubre 2019
JORGE LUIS RAMOS HURTADO 4
Agradecimientos
En primer lugar, agradecer a mis tutores Francisco Javier Mora e Ignacio Valero por haberme
brindado la oportunidad de realizar esta tesina y por haber incentivado un gran interés en mí
acerca de las nuevas tecnologías, en especial de la realidad aumentada. Por su paciencia y
dedicación, y por el constante seguimiento para la realización de este trabajo.
Al Centro Internacional de Métodos Numéricos en Ingeniería (CIMNE), por dejarme utilizar sus
instalaciones y material, que, sin él esta tesina no hubiera sido posible. Agradecer también a
todos los integrantes, del centro mencionado, que han resuelto dudas y han aportado
conceptos.
Agradecer a la empresa CROMSA CONSTRUCCIÓN Y MEDIOAMBIENTE por permitirme utilizar el
diseño de las cimentaciones de uno de sus proyectos. Y por darme la oportunidad de formar
parte de su extraordinario equipo humano. Por todas las experiencias vividas y todo el
conocimiento aportado.
A mi familia por haberme dado la oportunidad de poder avanzar en un país que nos ha llenado
de grandes oportunidades. Por su guía, paciencia y sobre todo el sacrificio realizado.
Y, por último, a mis amigos y compañeros que han hecho que esta etapa sea fructífera y
complaciente.
Octubre 2019
JORGE LUIS RAMOS HURTADO 5
Motivación
Hoy en día, vivimos en una época donde el avance de la tecnología está teniendo un papel
fundamental en nuestra manera de vivir y de pensar. Esta nos rodea y nos facilita una nueva vía
para afrontar los retos en las distintas áreas de la vida.
La investigación de nuevas tecnologías en las industrias existentes nos lleva a una mejor
eficiencia en los procesos de diseño y fabricación que, en el caso del sector de la Arquitectura,
Ingeniería y Construcción (AIC) ha sido menor en comparación a otros sectores como, por
ejemplo, el automovilístico. Esta poca industrialización en la que se encuentra el sector es
debida a diversos aspectos, como que el espacio de trabajo se encuentra en cambio continuo y
no es fijo. Además, esto comporta una desventaja frente a otros sectores en cuanto a la
maquinaria tecnológica que ha de ser transportada al lugar de ejecución.
Por ello, se hace atractiva la idea de crear e investigar nuevas tecnologías que permitan avanzar
al sector de la AIC. En mi caso, siento la gran curiosidad de conocer a fondo las nuevas
metodologías y tecnologías que existen en el sector, en especial acerca de la metodología BIM
(Building Information Modeling) y de sus distintos softwares informáticos.
La metodología BIM es un sistema de trabajo donde los agentes involucrados en un proyecto
colaboran para su creación y gestión. Y, a su vez, se centraliza toda la información, tanto
geométrica como temporal, de costes, ambiental y de mantenimiento, en formato digital.
Esta nueva metodología ayuda también a reducir imprevistos en obra, ya que se tiene un mayor
control de los elementos que intervienen en un proyecto. Sin embargo, este mayor control que
se llega a obtener no se ve reflejado en materia de PRL, ya que el número de accidentes es
notablemente mayor al de otros sectores más industrializados.
Por ello, la gran cantidad de avances tecnológicos no solo han de mejorar los procesos y
metodologías actuales, sino que también han de proteger y garantizar la seguridad de los
trabajadores. La revolución tecnológica ha de ser complementaria con la investigación en
prevención de riesgos laborales, siendo de esperar una repercusión positiva en la reducción del
número de accidentes.
Por todas estas razones, nace la motivación de aprender y poder aportar mejoras al sector
mediante la investigación nuevas tecnologías.
Octubre 2019
JORGE LUIS RAMOS HURTADO 6
Visión
A lo largo de esta tesina, se han visto las capacidades y el potencial que tiene la RA en el ámbito
de la ingeniería civil. Y, a la hora de basar la decisión, acerca de hacia dónde dirigir esta tesina,
es inevitable imaginar cómo será el futuro de la construcción con la RA.
En consecuencia, estos pensamientos llevan a un estado en el que uno visiona e imagina nuevas
metodologías que se transcriben en las siguientes visiones acerca del futuro que depara esta
tecnología.
- “Veo a un encargado del control de calidad realizando una inspección con la ayuda de
la RA de forma exhaustiva y con un esfuerzo significativamente menor.”
- “Veo a un trabajador seguro y con la certeza de que cualquier peligro que ocurra en la
obra sea percibido y solucionado con antelación gracias a la RA.”
- “Visualizo el deslizamiento de una ladera antes que ocurra gracias a la gestión de datos
en tiempo real.”
- “Veo a un trabajador conociendo en todo momento la ubicación de los elementos
móviles en una obra y así evitar colisiones.”
- “Veo a todos los trabajadores con gafas de RA para un mejor desarrollo de sus tareas.
- “Veo a un prevencionista más seguro conociendo la localización de los trabajadores y
sabiendo los peligros a tiempo real dentro de una obra.”
- “Veo a un trabajador visualizando las armaduras, antes de ser montadas en su posición
final.”
- “Visualizo un mantenimiento más elaborado gracias a la visualización en la posición real
de los componentes internos de una estructura.”
- “Visualizo una metodología más robusta que fortalece el sistema BIM gracias a la
cooperación entre los distintos agentes.”
- “Veo a un sector avanzado e industrializado gracias a la implementación de esta
tecnología. “
El pensamiento de estas visiones es esencial para idear aplicaciones en RA que ayuden al sector
de la AIC y para dar pie a futuras líneas de investigación.
Octubre 2019
JORGE LUIS RAMOS HURTADO 8
Índice
Resumen ........................................................................................................................................ 2
Abstract ......................................................................................................................................... 3
Agradecimientos ........................................................................................................................... 4
Motivación .................................................................................................................................... 5
Visión ............................................................................................................................................. 6
Índice ............................................................................................................................................. 8
Índice de esquemas ..................................................................................................................... 10
Índice de ilustraciones ................................................................................................................. 11
1. PLANTEAMIENTO .................................................................................................................... 14
1.1. Introducción ................................................................................................................ 14
1.2. Objetivos ..................................................................................................................... 15
1.3. Metodología ................................................................................................................ 16
2. Contexto de la Tecnología Actual ....................................................................................... 17
2.1. Building Information Modeling (BIM) ......................................................................... 17
2.2. Realidad Mixta ............................................................................................................. 19
2.3. Unity: Plataforma de desarrollo 3D............................................................................. 27
2.4. VUFORIA: Plataforma de Realidad Aumentada .......................................................... 31
2.5. ARCore: Plataforma de Realidad Aumentada ............................................................. 33
2.6. Magic Leap: Gafas de realidad aumentada ................................................................ 36
3. Diseño ................................................................................................................................. 46
3.1. Modelado de las armaduras en Revit .......................................................................... 46
3.2. Adaptación de la plataforma de Unity para trabajar con Magic Leap One: configuraciones y descargas previas ....................................................................................... 58
3.3. Creación del proyecto dentro de Unity ....................................................................... 63
3.4. Diseño de la aplicación en Unity ................................................................................. 65
3.5. Instalación de la aplicación en las Magic Leap One .................................................... 89
4. Caso de Estudio .................................................................................................................. 90
4.1. Modo Control de Calidad (CC) ..................................................................................... 90
4.2. Modo Prevención de Riesgos Laborales (PRL) ............................................................ 93
Octubre 2019
JORGE LUIS RAMOS HURTADO 9
4.3. Modo de Mantenimiento ............................................................................................ 96
4.4. Modo Ayudas a la Construcción de Armaduras (CAC) ................................................ 97
4.5. Análisis del proceso seguido ....................................................................................... 99
5. Conclusiones y futuras líneas de investigación ................................................................ 101
5.1. Conclusiones.............................................................................................................. 101
5.2. Futuras líneas de investigación ................................................................................. 103
Bibliografía ................................................................................................................................ 104
Anejos ........................................................................................................................................ 104
Configuración inicial en Unity para la creación de una App en Magic Leap ......................... 106
RayCastVisual ........................................................................................................................ 116
Menu Handler ....................................................................................................................... 121
Initial Instructions Panel Handler .......................................................................................... 124
Mode 2 Options Menu Handler ............................................................................................ 126
Miixing Handler ..................................................................................................................... 128
Octubre 2019
JORGE LUIS RAMOS HURTADO 10
Índice de esquemas
Esquema 1: Diagrama de los componentes de la realidad mixta. Fuente: (Microsoft, 2018).................... 19 Esquema 2: Componentes principales para la creación de una app en RA con sus distintas plataformas
más populares. Fuente: propia. ......................................................................................................... 29 Esquema 3: Plataformas investigadas compatibles con Unity. Enmarcado en rojo se muestran las 2
plataformas designadas para el desarrollo de esta tesina. ............................................................... 35 Esquema 4: Funciones principales de las Magic Leap One. Fuente: propia. .............................................. 39 Esquema 5: Procedimiento para la creación del archivo del modelo 3D aceptado por Unity. .................. 47 Esquema 6: Plataformas y elementos utilizados para el desarrollo de la aplicación en RA con sus
respectivas versiones. ........................................................................................................................ 60
Octubre 2019
JORGE LUIS RAMOS HURTADO 11
Índice de ilustraciones
Ilustración 1: Dimensiones del BIM. ........................................................................................................... 18 Ilustración 2: Distintas plataformas que favorecen la metodología BIM. .................................................. 19 Ilustración 3: Ivan Sutherland con el primer dispositivo de realidad aumentada. ..................................... 20 Ilustración 4: Aplicación del Pokemon Go. ................................................................................................. 21 Ilustración 5: Aplicación en el ámbito del aprendizaje. .............................................................................. 21 Ilustración 6: Determinación de la red de saneamiento mediante gafas de realidad aumentada. Fuente:
ColonialWebb Contractors Company. ................................................................................................ 23 Ilustración 7: Implantación del modelo tridimensional en un plano bidimensional. Fuente: doka.com ... 23 Ilustración 8: Visualización en RA de las instalaciones previo a su colocación. Fuente: Daqri Smart
Glasses. .............................................................................................................................................. 24 Ilustración 9: Oscar utilizando las gafas de RA Micorsoft HoloLens. Fuente: ¡Error! No se encuentra el
origen de la referencia. (deCoss Henning, 2017) ............................................................................... 24 Ilustración 10: Precisión final en las armaduras de un pilar. Fuente: [2] (Chavarri de Lemos, 2018) ........ 25 Ilustración 11: Deformación de una viga visualizada en realidad virtual. Fuente: [3] (Claure Soliz, Febrero
2019) .................................................................................................................................................. 26 Ilustración 12: Muestra una aplicación instructiva de mantenimiento mediante videollamada. Fuente:
Microsoft.com .................................................................................................................................... 26 Ilustración 13: Componente principal de las Magic Leap Ones, las gafas. Fuente: propia. ....................... 27 Ilustración 14: Ejemplos de las fases de renderizado de una vivienda. Fuente: Unity ............................... 28 Ilustración 15: Plataformas informáticas compatibles con Unity. Fuente: Unity ....................................... 28 Ilustración 16: Organización de las principales ventanas en Unity. Fuente: propia. .................................. 28 Ilustración 17: Ejemplo de acceso a información de datos BIM mediante un recorrido virtual por la
infraestructura. Fuente: Unity ........................................................................................................... 30 Ilustración 18: Ejemplos de aplicaciones desarrolladas con Vuforia. Manufacturación (izquierda) y
mantenimiento (derecha). Fuente: (Vuforia) .................................................................................... 31 Ilustración 19: Resultado de la aplicación realizada con Vuforia. Fuente: propia. ..................................... 32 Ilustración 20: Web inicial de ARCore para trabajar con Unity. Fuente: ARCore ....................................... 34 Ilustración 21: Creación del primer prototipo en 2014 (izquierda) y del segundo en 2015 (derecha).
Fuente: Magic Leap. .......................................................................................................................... 36 Ilustración 22: Componentes de las Magic Leap One en su caja de origen. Fuente: propia. ..................... 37 Ilustración 23: Chips fotónicos en las lentes de las gafas. Fuente: propia. ................................................ 37 Ilustración 24: Componentes internos del LightWear y LightPack. Fuente: (IFIXIT) .................................. 38 Ilustración 25: Manual de colocación de las gafas y del LightPack. ........................................................... 38 Ilustración 26: Disposición para la carga del LightWear y el Control. ........................................................ 38 Ilustración 27: Visualización del Control en una experiencia en RA. Fuente: propia. ................................ 40 Ilustración 28: Visualización de la mano dentro de Magic Leap. Fuente: magic-leap.reality.news........... 41 Ilustración 29: Menú principal de la escena InputModule. Fuente: propia. ............................................... 41 Ilustración 30: Permanencia de l modelo de las cimentaciones en el entorno real. .................................. 42 Ilustración 31: Colocación de esferas virtuales en el entorno real. Fuente: propia. .................................. 43 Ilustración 32: Reconocimiento del entorno real y visualización mediante la creación del mallado. ........ 43 Ilustración 33: Primeras impresiones de la experiencia en realidad aumentada....................................... 44 Ilustración 34: Comparativa del campo de visión entre las Magic Leap, HoloLens y las gafas de RV de Play
Station. Fuente: (Beat) ....................................................................................................................... 45 Ilustración 35: Ubicación de la construcción de la Nave A (abajo a la derecha), dentro del polígono
industrial existente. ........................................................................................................................... 46 Ilustración 36: Archivo original de la nave A, donde se muestra la ubicación de las cimentaciones y los
detalles constructivos de éstas. Fuente: CROMSA ............................................................................ 47 Ilustración 37: Archivo AutoCad de las cimentaciones de la nave A modificado para el anclaje del dibujo
en REVIT. ............................................................................................................................................ 48 Ilustración 38: Proceso para la designación de las unidades de proyecto en AutoCAD. ............................ 48 Ilustración 39: Paso 1: Selección de todo el dibujo y con el comando _MOVE y se determina el origen del
dibujo. En este caso es la esquina inferior derecha del encepado con denominación 11G. ............. 49
Octubre 2019
JORGE LUIS RAMOS HURTADO 12
Ilustración 40: Paso2: Inserción manual numérica de las coordenadas (0,0). ........................................... 49 Ilustración 41: Pasos iniciales para la creación de un proyecto en Revit. .................................................. 50 Ilustración 42: Guía para anclar un dibujo de AutoCAD en Revit. .............................................................. 51 Ilustración 43: Indicaciones para visualizar el punto base de proyecto en Revit. ...................................... 52 Ilustración 44: Modelado de las zapatas existentes. .................................................................................. 53 Ilustración 45: Modelado de la familia: Encepados – Pilotes. .................................................................... 53 Ilustración 46: Modelado de las riostras existentes. .................................................................................. 54 Ilustración 47: Modelado de los muretes-riostras. .................................................................................... 54 Ilustración 48: Modelado de las armaduras de los Muretes-Riostras. ....................................................... 55 Ilustración 49: Modelado de las armaduras de los encepados y pilotes. ................................................... 55 Ilustración 50: Modelado de las columnas existentes y de nueva construcción. ....................................... 56 Ilustración 51: Modelado de elementos no estructurales de nueva construcción: paredes, puerta
enrollable de la nave y puerta de entrada. ........................................................................................ 56 Ilustración 52: Ubicación de la opción de exportación al archivo FBX. ...................................................... 57 Ilustración 53: Apartado en página web de Unity para iniciar experiencias con Magic Leap. ................... 58 Ilustración 54: Panel principal del Magic Leap Package Manager. ............................................................ 59 Ilustración 55: Notificación donde se comenta la incompatibilidad de las funciones MLInputModel y
MLInputRaycaster con la última versión del Unity Package (0.22.0). ............................................... 59 Ilustración 56: Apartado Learn de la página web principal dónde se encuentra la documentación paso a
paso para crear una aplicación de Magic leap en Unity. ................................................................... 61 Ilustración 57: Estado final de la creación del certificado de desarrollo. Fuente: propia. ......................... 62 Ilustración 58: Paso 6: Configuración de Lumin dentro de Unity > Player Settings.................................... 63 Ilustración 59: Paso 7: Configuración del Bundle Identifier dentro de Unity > Player Settings. ................. 64 Ilustración 60: Paso 8: Configuración del Api Compatibility Level dentro de Unity > Player Settings. ....... 64 Ilustración 61: Organización inicial de las carpetas. ................................................................................... 65 Ilustración 62: Implantación del modelo en la escena mediante su arrastre a Hierarchy (izquierda) y
desagrupado del modelo (derecha)................................................................................................... 66 Ilustración 63: Estructuración de las carpetas en Hierarchy (superior) y eliminación de los elementos
dispensables (en azul). ....................................................................................................................... 67 Ilustración 64: Creación de los materiales de las distintas barras, y descarga de nuevos materiales desde
el Asset Store. .................................................................................................................................... 67 Ilustración 65: Pasos para la asignación de materiales. ............................................................................. 68 Ilustración 66: Resultado final de la asignación de materiales al modelo. ................................................. 68 Ilustración 67: Pasos iniciales para la creación del menú........................................................................... 70 Ilustración 68: Pasos para crear EmptyGameObjects de los modos y adhesión del script MenuHandler.. 71 Ilustración 69: Pasos iniciales para la creación del modo control de calidad. ............................................ 72 Ilustración 70: Creación del Panel de Instrucciones utilizado para todos los modos. ................................ 73 Ilustración 71: Creación del menú interno del modo control de calidad. .................................................. 75 Ilustración 72: Guía del proceso para la creación de los elementos necesarios para la implantación del
modelo virtual en el entorno real. ..................................................................................................... 76 Ilustración 73: Disposición de las variables públicas para el componente en forma de script
RaycastVisual. .................................................................................................................................... 76 Ilustración 74: Transcurso de la aplicación en el modo control de calidad. ............................................... 78 Ilustración 75: Panel instructivo del modo PRL. ......................................................................................... 79 Ilustración 76: Configuración del menú interno del modo PRL. ................................................................. 80 Ilustración 77: Pasos a seguir para la adhesión de los elementos de obra. ............................................... 83 Ilustración 78:Resultado de la asignación de los boxes colliders a los elementos determinados. ............. 84 Ilustración 79: Responsable realizando el control de calidad de las armaduras. ....................................... 91 Ilustración 80: Riesgo de colisión con la pala de la excavadora (izquierda). Y caída dentro de la zanja
(derecha). Fuente: Yanet Caldes, Seguridad en excavaciones y Zanjas, SLIDESHARE. ...................... 94 Ilustración 81: Puntos ciegos de una hormigonera. ................................................................................... 94 Ilustración 82: Detección real de la hormigonera mediante la función Box Collider, y posterior aviso.
Fuente: propia ................................................................................................................................... 95 Ilustración 83: Grietas en una viga por origen desconocido. Fuente: Quora.com ..................................... 96
Octubre 2019
JORGE LUIS RAMOS HURTADO 13
Ilustración 84: Ejemplos de armadura compleja donde la importancia de una buena colocación es fundamental en cimentaciones. Fuente: (GeotechTips) ................................................................... 98
Ilustración 85: Desviación del pilar debido a insuficiencia de armadura de espera. Fuente: (ESCALESA) 98 Ilustración 86: Medición manual y repetitiva de la disposición de las armaduras. Fuente: ...................... 98 Ilustración 87: Operario durante el montaje de la armadura. ................................................................... 99 Ilustración 88: Paso 1: Creación de un nuevo proyecto en Unity. ............................................................ 106 Ilustración 89: Paso 2: Selección del tipo de proyecto en Unity. ............................................................. 107 Ilustración 90: Paso 3: Instalación de XR Legacy Input Helpers ................................................................ 108 Ilustración 91: Paso 4: Ubicación del Lumin SDK dentro de Unity............................................................ 109 Ilustración 92: Paso 5: Cambio de plataforma a Lumin desde Build Settings. .......................................... 110 Ilustración 93: Paso 6: Configuración en la plataforma Lumin dentro de Player Settings. ...................... 111 Ilustración 94: Paso 7: Cambios de configuración en el apartado XR Settings. ........................................ 112 Ilustración 95: Paso 8: Importación del Magic Leap Unity Package......................................................... 113 Ilustración 96: Paso 9: Configuración de la cámara principal del proyecto. ............................................. 114 Ilustración 97: Paso 10: Copia del archivo manifest.xml .......................................................................... 115
Octubre 2019
JORGE LUIS RAMOS HURTADO 14
1. PLANTEAMIENTO
1.1. Introducción
En estas últimas décadas, donde la revolución tecnológica está teniendo un papel fundamental
en los distintos sectores, está habiendo una gran optimización de los distintos recursos. Sin
embargo, el sector de la AIC siempre ha sido un tanto reacio a los grandes cambios. La
investigación actual es visible en diversas áreas tecnológicas, pero la implementación de éstas
se hace más difícil de llevar a cabo, debido a la poca inversión en tecnología en comparación a
otros sectores.
Para la aplicación que se realiza en esta tesina, se ha de tener en cuenta los aspectos
metodológicos actuales que se llevan a cabo en el sector. Y, además, se debe realizar un estudio
de las tecnologías actuales.
En este primer aspecto, se analiza la situación actual de las metodologías en la fase de
construcción de armaduras y, también, las posibles mejoras en materia de PRL. Y en el aspecto
tecnológico se realiza una revisión del contexto de las tecnologías en materia de realidad
aumentada para la creación de la aplicación. Para ello, se requiere de conceptos de
programación y conocimiento de plataformas informáticas como Unity, Vuforia, Revit, etc., que
se explican más adelante.
Mediante todos estos conceptos, se tiene una base de conocimiento adecuada para la creación
de una aplicación de realidad aumentada.
En la actualidad, al trabajar en la empresa constructora CROMSA CONSTRUCCIÓN Y
MEDIOAMBIENTE, SA, se tiene la oportunidad de conocer los retos que conlleva una obra de
construcción y que sin duda aportan ideas para la realización de esta tesina.
Debido a los de esta empresa, se ha abierto un abanico de posibilidades para conocer dónde la
RA puede ser de gran ayuda. Siendo de gran interés personal, las instalaciones, las
cimentaciones y las ayudas en materia de PRL.
Después de analizar las posibilidades de implantación en obra, se decanta finalmente por las
cimentaciones debido a que se le ve un gran potencial para poder implantar la RA. A lo largo de
esta tesina se argumentan los beneficios que se pueden conseguir, y posteriormente, se crea
Octubre 2019
JORGE LUIS RAMOS HURTADO 15
una aplicación de RA que sea aplicable para la mejora de procesos constructivos, además
teniendo en cuenta las posibles ayudas en PRL para esta actividad constructiva.
1.2. Objetivos
El objetivo principal de esta tesina es el diseño e implementación de una aplicación en realidad
aumentada para la supervisión de cimentaciones y de los procedimientos de PRL, como casos
de uso del potencial de la RA en la construcción.
La determinación de este objetivo, es crucial para el rumbo de esta tesina, es por ello que a
continuación, se determinan los objetivos generales y específicos.
1.2.1. Objetivos Generales
Los objetivos generales de este trabajo, son los siguientes:
- Obtener un conocimiento de las tecnologías actuales en RA pudiendo realizar un análisis
sobre qué alternativa se adecua más al desarrollo de esta experiencia.
- Aprender acerca de la implementación de la RA.
- Crear una aplicación de RA para que los procesos constructivos sean más eficientes, más
precisos y consecuentemente más económicos.
- Conocimiento de uso de las plataformas informáticas que intervienen, para poder
explorar la extensión del desarrollo y otros tipos de aplicación.
- Analizar posibles mejoras en materia de PRL gracias a la RA.
- Implantar y desarrollar una metodología más digital y menos dependiente del papel.
1.2.2. Objetivos Específicos
Los objetivos específicos son los siguientes:
- Aprender el uso de una plataforma de creación de experiencias de RV y RA, como Unity
3D.
- Obtener un conocimiento de programación en lenguaje C#.
- Lograr un conocimiento profundo de las gafas de RA (Magic Leap One).
- Realizar una prueba de campo, donde poder extraer conclusiones más robustas acerca
de la implantación de esta tecnología.
- Alimentarse de información acerca de la complementación de distintas plataformas
informáticas.
- Ampliar el conocimiento acerca de los dispositivos aptos para aplicaciones en RA.
Octubre 2019
JORGE LUIS RAMOS HURTADO 16
1.3. Metodología
La metodología a seguir para la creación de la aplicación requiere de dos grandes campos:
aprendizaje e investigación.
La primera consistirá en el aprendizaje del uso del software informático, dónde son necesarias
diversas plataformas que se complementan y hacen posible la creación de aplicaciones en RA.
El aprendizaje de estas plataformas conlleva al acceso de grandes fuentes de información para
conocer las funciones más significativas para dicha aplicación.
En cuanto al campo de investigación consiste en analizar los distintos procesos constructivos y
controles de calidad actuales en armaduras para idear mejoras con ayuda de la RA. Por ello, se
ha de idear un nuevo método que fortalezca las principales carencias actuales para, en un futuro
poder sustituir de manera firme las prácticas anteriores, con la muestra de evidentes mejoras
en estos procesos.
Dentro de este campo también se realiza el aprendizaje con las gafas de RA (Magic Leap), las
cuales son de creación reciente (2018) y con una presencia escasa en Europa. Este hecho implica
la no existencia de trabajos de referencia con este dispositivo. Situación que comporta un
análisis exhaustivo de las funciones de las gafas para establecer una metodología robusta y que
sirva de referencia para futuras investigaciones.
En términos de RA y RV, se toma como referencia trabajos de investigación de alumnos y
exalumnos de la Escuela de Caminos Canales y Puertos de Barcelona, (deCoss Henning, 2017),
(Navarro, 2018) (Chavarri de Lemos, 2018). Los trabajos citados, determinan una ruta para una
revolución tecnológica en el sector de la construcción en materia de aplicabilidades de la RA.
Octubre 2019
JORGE LUIS RAMOS HURTADO 17
2. Contexto de la Tecnología Actual
Para una mejor comprensión de las posibilidades y los límites de la tecnología actual, es vital
realizar una revisión del contexto de la tecnología en materia de RA.
Por ello se realiza un análisis de las plataformas existentes necesarias para esta aplicación, y se
determina cuáles son las más favorables para el diseño e implantación de aplicaciones en
construcción, en particular de las armaduras en cimentaciones.
2.1. Building Information Modeling (BIM)
BIM, Building Information Modeling, es una metodología que se basa en la gestión de datos de
los distintos elementos constructivos para una obra de edificación o de infraestructura. Estos
elementos constructivos se modelan desde una plataforma informática, la cual te permite
acceder a cualquier atributo del elemento durante todo el ciclo de vida de la obra en cuestión.
Además, se basa en la cooperación, desde el inicio, de los distintos agentes que intervienen en
el ciclo de vida de una edificación o infraestructura. Esta colaboración y participación mejora la
eficiencia en la toma de decisiones y tiene como objetivo eliminar la pérdida de información que
sucede cuando el agente que se encarga del diseño no tiene en cuenta la presencia del agente
que se encarga de la construcción.
Esta dinámica de trabajo se basa en 7 grandes aspectos o, como se denomina mayoritariamente,
dimensiones. En la Ilustración 1, se muestran los componentes de cada una.
Octubre 2019
JORGE LUIS RAMOS HURTADO 18
Ilustración 1: Dimensiones del BIM.
Pese a que se establecen 7 dimensiones, hay opiniones acerca de la existencia de la octava
dimensión que contempla los aspectos relacionados con la seguridad y salud en la obra.
Uno de los grandes objetivos de esta metodología es la de reducir costes a partir de la mejora
de flujos de trabajo. Actualmente su ineficiencia repercute desfavorablemente en el sector por
una cantidad de 450 mil millones de dólares anuales según un estudio realizado por la empresa
de software informático (VERITY).
Por todas estas ventajas que supone para el sector, el desarrollo realizado en esta tesina ha de
ser compatible con la metodología BIM para facilitar la interpretación e interoperabilidad de los
datos.
Existen diversas plataformas informáticas que permiten la modelización 3D de la infraestructura
y/o la gestión de sus datos. En la Ilustración 2, se muestra la cantidad de plataformas en los
distintos campos de esta metodología, como pueden ser programas de diseño 2D y 3D (AutoCAD
y Revit); creación de experiencias en RA y RV (Unity), gestión de datos (BIM 360), de detección
de intersecciones entre objetos (NavisWorks), etc.
Octubre 2019
JORGE LUIS RAMOS HURTADO 19
Ilustración 2: Distintas plataformas que favorecen la metodología BIM.
2.2. Realidad Mixta
Según Microsoft, una de las empresas más dedicadas a la realidad mixta (RM), la define como
“Una mezcla de contenido real y virtual en entornos híbridos donde coexisten e interactúan
objetos físicos y digitales.” (Microsoft, 2018). Y en efecto, se trata de la interacción entre los dos
entornos al que se le añade el componente humano que es participe de la visualización de esta
interacción. En el Esquema 1, se muestra el diagrama de los componentes que intervienen en la
RM.
Esquema 1: Diagrama de los componentes de la realidad mixta. Fuente: (Microsoft, 2018)
Octubre 2019
JORGE LUIS RAMOS HURTADO 20
Sin embargo, existe una definición más profunda acerca de dos realidades donde intervienen la
interacción humana y digital.
- Realidad aumentada: experiencia que permite la interacción entre objetos/gráficos
virtuales y el entorno real. Se permite la extracción de información por parte del usuario
y modificar estos objetos como si pertenecieran en la realidad.
- Realidad virtual: experiencia donde el entorno visualizado es completamente virtual.
Existe la interacción entre el usuario y este entorno, pero el entorno virtual no se
complementa con el real.
Otra de las definiciones que se le otorga a la RA consiste en la existencia del entorno
convencional que conocemos como realidad, al cual se le añaden objetos virtuales o información
gráfica que llenan y “aumentan” esta realidad convencional, dando origen al nombre de realidad
aumentada.
Debido a que la experiencia de esta tesina se desarrolla en el ámbito de la RA, nos centraremos
en descubrir sus características.
2.2.1. Realidad Aumentada
La realidad aumentada es una tecnología que se ha desarrollado en la década de los 60 pese que
se piensa que es más reciente. Esto es debido a que no ha tenido un gran impacto en el mercado
global hasta, prácticamente, este último siglo donde el gran avance de las tecnologías ha
permitido su implementación en el mercado obteniendo grandes resultados. De hecho, el
primer dispositivo de realidad aumentada fue creado en 1968 por el profesor de Harvard
University, Ivan Sutherland junto a su alumno Bob Sproull. Este dispositivo permitía la
visualización de objetos virtuales a través de dos lentes.
Ilustración 3: Ivan Sutherland con el primer dispositivo de realidad aumentada.
Octubre 2019
JORGE LUIS RAMOS HURTADO 21
En la actualidad, la realidad aumentada tiene múltiples aplicaciones como puede ser el conocido
juego Pokemo Go, en el cual se implantan dibujos animados virtuales en las calles [Ilustración
4]. También existen aplicaciones en el campo de la enseñanza, donde se proporciona una mayor
inmersión y comprensión del objeto de estudio [Ilustración 5]:
Ilustración 4: Aplicación del Pokemon Go.
Ilustración 5: Aplicación en el ámbito del aprendizaje.
En el ámbito ingenieril, también existen gran variedad de aplicaciones. Cada vez son más los
sectores que se benefician de esta tecnología obteniendo grandes resultados. En la actualidad,
el sector que más inversión dedica y prevé dedicar a la RA, es el automovilístico tal y como se
muestra en el Gráfico 1.
Octubre 2019
JORGE LUIS RAMOS HURTADO 22
Gráfico 1: Inversión en RA de distintos sectores en el año 2017 y su previsión en el año 2020. Fuente:
PWC 2017 Global Digital IQ Survey, datos de 2.216 empresas y ejecutivos de las tecnologías de la
información y comunicación, de 53 países.
En cambio, en el sector de la AIC su inversión es menor, lo cual dificulta un desarrollo elaborado
de posibles aplicaciones a implementar. Sin embargo, se han realizado primeras aplicaciones
que demuestran su capacidad de extracción de información y facilidad de visualización de
elementos complejos. Por ejemplo, el uso para la visualización de la red de saneamiento, o la
comprensión de planos mediante su levantamiento en 3D.
Octubre 2019
JORGE LUIS RAMOS HURTADO 23
Ilustración 6: Determinación de la red de saneamiento mediante gafas de realidad aumentada. Fuente: ColonialWebb Contractors Company.
Ilustración 7: Implantación del modelo tridimensional en un plano bidimensional. Fuente: doka.com
El mayor uso de la RA en la construcción, es la visualización del modelo virtual de las
instalaciones en su emplazamiento final. Esta aplicación ha supuesto un gran avance ya que
comporta una mayor eficiencia en su instalación. Además, reduce drásticamente la existencia
de errores de colocación ya que en todo momento se conoce la red completa, la posición de las
conexiones y su compatibilidad con los demás sistemas de una infraestructura.
Octubre 2019
JORGE LUIS RAMOS HURTADO 24
Ilustración 8: Visualización en RA de las instalaciones previo a su colocación. Fuente: Daqri Smart
Glasses.
También cabe destacar las investigaciones realizadas acerca de la RA en la Universidad
Politécnica de Catalunya (UPC), en la Escuela Técnica Superior de Ingeniería de Caminos, Canales
y Puertos de Barcelona (ETSECCPB), en colaboración con CIMNE.
Estas investigaciones se han llevado a cabo por los exalumnos Óscar de [6], cuyo trabajo se
centra en la aplicación de la RA en la construcción y realiza un análisis exhaustivo de la tecnología
actual en el momento dentro del ámbito de la RA.
Ilustración 9: Oscar utilizando las gafas de RA Micorsoft HoloLens. Fuente: ¡Error! No se encuentra el
origen de la referencia. (deCoss Henning, 2017)
Octubre 2019
JORGE LUIS RAMOS HURTADO 25
El trabajo de Gerardo Chavarri [2], el cual se centra en la visualización en RA de modelos BIM y
realiza una experiencia para la visualización de las armaduras con la plataforma ARKit. En esta
experiencia determina que la precisión de la implantación es de aproximadamente de 5 cm
cuando el origen se encuentra a 4,5 metros.
Ilustración 10: Precisión final en las armaduras de un pilar. Fuente: [2] (Chavarri de Lemos, 2018)
Y, por último, Rolando Chacón, profesor e investigador en la ETSECCPB y que ha liderado
investigaciones sobre el desarrollo de aplicaciones inmersivas de realidad aumentada y realidad
virtual para ensayos de estructuras de acero inoxidable. Como en la tesis de máster elaborada
por Ruth Claure [3].
Octubre 2019
JORGE LUIS RAMOS HURTADO 26
Ilustración 11: Deformación de una viga visualizada en realidad virtual. Fuente: [3] (Claure Soliz, Febrero 2019)
Los dispositivos más interesantes en esta disciplina son las gafas de RA que en la actualidad
coexisten diversos modelos y marcas.
Las más destacadas, son la Microsoft HoloLens, desarrolladas en EUA y que permiten una
experiencia inmersiva que está muy avanzada, ya que en la actualidad ya se ha desarrollado la
segunda versión: Microsoft Holo Lens 2. Estas gafas son las más comercializadas alrededor del
mundo, siendo de destacar la última venta de 100.000 unidades al ejército americano.
Ilustración 12: Muestra una aplicación instructiva de mantenimiento mediante videollamada. Fuente:
Microsoft.com
Octubre 2019
JORGE LUIS RAMOS HURTADO 27
Las Magic Leap One de la compañía Magic Leap, que lleva una década con el desarrollo de su
primera versión y que se muestra como la gran competencia de las HoloLens.
En el desarrollo de esta tesina se describen sus componentes y funciones principales.
Ilustración 13: Componente principal de las Magic Leap Ones, las gafas. Fuente: propia.
2.3. Unity: Plataforma de desarrollo 3D
Tal y como se indica en la página web oficial, Unity, se describe a sí misma como “una plataforma
de desarrollo 3D en tiempo real “, y que, además, permite el desarrollo de aplicaciones en RA y
RV. Fundada en Dinamarca en el año 2004, su inversión ha ido en auge debido a las múltiples
prestaciones que ofrece.
Según los datos publicados por Unity, esta plataforma es la más empleada por los creadores de
aplicaciones en RA para dispositivos móviles. Esto es en gran parte debido a la capacidad de
renderizados avanzados y, sobre todo, de la gran compatibilidad con otras plataformas de
software informático como Windows, Apple, Android, Magic Leap, ARCore, ARKit y Vuforia entre
otras.
Octubre 2019
JORGE LUIS RAMOS HURTADO 28
Ilustración 14: Ejemplos de las fases de renderizado de una vivienda. Fuente: Unity
Ilustración 15: Plataformas informáticas compatibles con Unity. Fuente: Unity
A continuación, en la Ilustración 16, se describe la organización de la plataforma y sus principales
funciones. Esta información se muestra con más detalle en la web oficial de Unity.
Ilustración 16: Organización de las principales ventanas en Unity. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 29
Como se observa, existen 4 ventanas principales con una función específica, organizadas de una
manera determinada. Esta organización es modificable desde la barra de menús superior
Window > Layouts. Sus funciones, se describen a continuación:
1. Ventana Project: Desde esta ventana se accede y se organizan los distintos
componentes y elementos de una aplicación, en Unity denominados Assets.
2. Ventana Scene: Trata de la visualización del entorno que se está creando y permite
interactuar y modificar con los elementos que lo componen.
3. Ventana Hierarchy: Contiene la lista de todos los objetos (GameObjects) que se
encuentran en la Scene de trabajo. Una de las ventajas es que permite crear
dependencias entre objetos para múltiples utilidades.
4. Ventana Inspector: Muestra información detallada del elemento seleccionado. Esta
información está organizada por componentes como pueden ser scripts, materiales,
renderizados, textos, etc.
Se realizan pruebas, en diferentes plataformas compatibles con Unity, para el conocimiento de
las capacidades de éstas, y así, poder extraer conclusiones acerca de cuál es más óptima para la
creación de una app en RA. Las pruebas realizadas se hacen con las plataformas de VUFORIA,
ARCore y Magic Leap.
En el siguiente esquema, se muestran los componentes necesarios para la realización de una
aplicación en RA.
Unity
Unreal
Godot
ARCore
ARKit
Vuforia
Magic Leap
Móviles
Tablets
Gafas de RA
Esquema 2: Componentes principales para la creación de una app en RA con sus distintas plataformas más
populares. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 30
Recientemente, Unity ha desarrollado una colaboración con la plataforma de diseño 2D y 3D,
Autodesk, para el traspaso de datos BIM y así facilitar su gestión para la creación de aplicaciones.
Este desarrollo permite acceder a estos datos de manera instantánea, y así, favorecer una
colaboración más inmersiva donde todos los agentes intervinientes tienen acceso a ellos y, así,
se puedan tomar decisiones más ágiles y acertadas.
Estas funciones solo están disponibles para la versión profesional de Unity, que tiene un precio
de 125 $ al mes. Las posibilidades de esta versión son más amplias, ya que permiten exportar
datos BIM en formato IFC (Industry Foundation Classes).
IFC es un formato estándar que permite la interoperabilidad entre programas BIM, ya que tiene
la capacidad de almacenar datos relacionados con el diseño, construcción, mantenimiento y
operaciones de obra civil.
Sin embargo, no se importan directamente en la plataforma de Unity. Para la resolución de este
problema, la plataforma danesa ofrece un paquete informático: PiXYZ Plugin. Este paquete se
ha desarrollado en colaboración la empresa de software informático PiXYZ que sí permite la
importación en Unity de archivos IFC a través de este Plugin.
Los resultados de esta colaboración es la de tener acceso a los datos BIM desde Unity y poder
darles el uso que uno desee. En la Ilustración 17, se muestra un ejemplo de los resultados de
esta compatibilidad entre las plataformas descritas.
Ilustración 17: Ejemplo de acceso a información de datos BIM mediante un recorrido virtual por la infraestructura. Fuente: Unity
Octubre 2019
JORGE LUIS RAMOS HURTADO 31
2.4. VUFORIA: Plataforma de Realidad Aumentada
Vuforia es una plataforma de realidad aumentada compatible con Unity, que permite la creación
de apps en RA mediante el reconocimiento de marcadores (imágenes o patrones) en el entorno
real.
Una de las aplicaciones más extendidas es la de ayudas mediante paneles al manejo de
maquinaria industrial, instrucciones de montaje, mantenimiento, marketing y todo tipo de
acceso instantáneo a información.
Ilustración 18: Ejemplos de aplicaciones desarrolladas con Vuforia. Manufacturación (izquierda) y
mantenimiento (derecha). Fuente: (Vuforia)
Tal y cómo realizó (Chavarri de Lemos, 2018) en su tesis, se realiza el modelo tridimensional de
la estructura de un proyecto de CROMSA (proceso explicado en 3.3 Creación del proyecto dentro
de Unity) y se realiza la implementación en el espacio real mediante marcadores QR que en este
caso trata del carnet UPC. Debido a la gran envergadura del modelo 3D se tuvo que realizar la
prueba a una escala menor debido a la poca potencia del teléfono móvil que no soportaba un
modelo de gran tamaño. El resultado, se puede observar en la ilustración siguiente.
Octubre 2019
JORGE LUIS RAMOS HURTADO 32
Ilustración 19: Resultado de la aplicación realizada con Vuforia. Fuente: propia.
Debido a que los entornos de una obra de construcción son amplios y el reconocimiento de
marcadores es preciso en posición, pero no en direccionamiento, ya que es difícil ser preciso en
dirección con un marcador de pequeñas dimensiones. Por esta razón, se descarta esta
plataforma debido a la necesidad de precisión para la aplicación a realizar.
La precisión de rotación es poco robusta para la experiencia requerida para esta tesina. Sin
embargo, esta opción puede ser muy sólida para la visualización de modelos más pequeños, que
no requieran de gran precisión de direccionamiento, como por ejemplo la visualización de
componentes pequeños en el sector del automóvil.
Octubre 2019
JORGE LUIS RAMOS HURTADO 33
2.5. ARCore: Plataforma de Realidad Aumentada
ARCore, (Augmented Reality Core) es una plataforma de realidad aumentada creada por Google
y que está disponible gratuitamente para poder trabajar desde Android con Unity. Ésta ofrece
una inmersión y una interacción equivalente a la plataforma de RA de Apple, ARKit. Estas
plataformas combinan el entorno virtual y el real de manera muy avanzada, lo cual ayuda a la
comprensión del entorno de realidad mixta.
Esta plataforma también permite trabajar con dispositivos de la marca Apple, para competir con
la plataforma de ARKit que es de desarrollo exclusivo para el sistema iOS de Apple.
Seguidamente se muestra de manera general los inicios para la creación del entorno ARCore
dentro de Unity.
Para la creación de aplicaciones en iOS se precisa del Entorno de Desarrollo Integrado (IDE, en
sus siglas en inglés) Xcode. El cual permite desarrollar aplicaciones combinando las plataformas
de ARCore y Unity. Esta plataforma solo está disponible para ordenadores con el sistema
operativo de Apple.
Al no disponer de un ordenador con el sistema operativo mencionado, se opta por realizar una
prueba con Unity, ARCore y la plataforma de programación Visual Studio 2017 necesaria para la
realización de scripts dentro de Unity.
Para crear una aplicación de RA en Unity, primero, se debe descargar el SDK de ARCore para
Unity que se encuentra disponible en el apartado Developers de la web de ARCore. En la
siguiente ilustración, se encuentra el portal web donde se proporciona una guía de cómo
descargar los SDK que en el caso de esta tesina trata de un dispositivo Android.
Octubre 2019
JORGE LUIS RAMOS HURTADO 34
Ilustración 20: Web inicial de ARCore para trabajar con Unity. Fuente: ARCore
Una vez los SDK’s de ARCore están descargados, se procede a preparar el entorno para la
aplicación de RA en Unity. Descargando los Plugins necesarios para la compatibilidad entre Unity
y ARCore.
Este proceso de adaptación de la plataforma en Unity se detalla dentro de la web de ARCore, el
cual una vez se realiza se procede a la creación del proyecto dentro de Unity.
Después de desarrollar una aplicación con esta plataforma se observaron varios problemas de
compatibilidad con el dispositivo el cual se iba a implementar, que en este caso trata del teléfono
Blackview A30. Además, ARCore como requisito exige las últimas versiones del sistema
operativo Android, que en el caso de esta tesina no se poseían.
En consecuencia, por la falta de las últimas versiones y de la no posibilidad de uso de dispositivos
suficientemente potentes, se dificulta el desarrollo en esta plataforma y se continua en la
búsqueda de otras alternativas.
Por ello, se toma la decisión de no seguir con esta plataforma. Y se prosigue con otro dispositivo,
ya que se presenta la oportunidad de trabajar con unas gafas de realidad aumentada, las Magic
Leap One, propiedad de CIMNE, y desarrolladas por la compañía Magic Leap ubicada en Florida,
EUA.
Se decide usar estas gafas pues se trata de uno de los dispositivos más interesantes y completos
del mercado, el cual poca gente ha tenido la ocasión de probar.
Octubre 2019
JORGE LUIS RAMOS HURTADO 35
En el Esquema 3, se muestra el estado actual de esta tesina. Donde finalmente, las plataformas
utilizadas son Unity junto a Magic Leap.
Esquema 3: Plataformas investigadas compatibles con Unity. Enmarcado en rojo se muestran las 2 plataformas designadas para el desarrollo de esta tesina.
Octubre 2019
JORGE LUIS RAMOS HURTADO 36
2.6. Magic Leap: Gafas de realidad aumentada
Magic Leap es una compañía americana, concretamente de Plantation, Florida, que se dedica
en su totalidad al desarrollo tecnológico en materia de realidad aumentada. En agosto del 2018
sale a la venta las Magic Leap One, unas gafas de RA destinada exclusivamente al mercado
americano.
Estas gafas, permiten el desarrollo de aplicaciones en RA a través de distintas plataformas
informáticas de desarrollo 3D (Unreal Engine, Unity y Lumin Web Platform) o directamente
mediante lenguajes de programación (C/C++ y JavaScript).
Debido a la compatibilidad con Unity, se opta por esta plataforma ya que proporciona grandes
fuentes de información para el aprendizaje dentro de su página web oficial, y ha sido con la que
se ha practicado desde un inicio para la realización de esta tesina.
El desarrollo de este producto ha requerido de un largo proceso. En el año 2014 se obtuvieron
los primeros resultados, fecha en la que Magic Leap, muestra su primer prototipo. El capital de
inversores privados ha sido fundamental para obtener el modelo actual. En total, la compañía
americana ha conseguido 2,6 mil millones de dólares en financiamiento, lo que es una buena
muestra de la expectación que ha generado.
Ilustración 21: Creación del primer prototipo en 2014 (izquierda) y del segundo en 2015 (derecha).
Fuente: Magic Leap.
En este apartado se explicarán los componentes de las Magic Leap One, sus características más
destacadas, así como sus mayores defectos de esta primera versión.
Cabe destacar que este producto está a la venta exclusivamente en EUA para desarrolladores.
Por lo que su existencia en Europa es prácticamente escasa; y en España su presencia es todavía
menor. Así, esta tesina es de las primeras investigaciones que se realiza en España acerca de las
Magic Leap y de su aplicabilidad en el campo de la ingeniería civil.
Octubre 2019
JORGE LUIS RAMOS HURTADO 37
2.6.1. Magic Leap: Componentes
Las Magic Leap One están compuestas por diversos dispositivos con una función específica
(Mercé Gotsens, 2019). A continuación, se describen las funciones principales de cada
componente.
Ilustración 22: Componentes de las Magic Leap One en su caja de origen. Fuente: propia.
- LightWear: Es el componente principal, las gafas. Con dos chips fotónicos que funcionan
como pantallas que dejan pasar la luz a través para permitir la percepción del entorno
real. Además, contiene un micrófono, 3 sensores y un indicador de estado.
- LightPack: Es el componente circular, que contiene la CPU (Central Processing Unit), GPU
(Graphics Processing Unity), una memoria RAM de 8GB, un almacenamiento de 95 GB y
una batería con capacidad hasta 3 horas.
- Control: Componente principal que permite la interacción entre el entorno real y el
virtual. Con 3 botones y un panel táctil que permiten dar instrucciones y funcionalidad
en las aplicaciones.
- Lightpack Charger: Accesorio para la carga del dispositivo.
- Control Charger: Accesorio para la carga del Control.
Ilustración 23: Chips fotónicos en las lentes de las gafas. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 38
Ilustración 24: Componentes internos del LightWear y LightPack. Fuente: (IFIXIT)
La manipulación y la correcta colocación de los distintos componentes se describen
detalladamente en el manual. Las gafas han de estar ligeramente inclinadas en la cabeza para
evitar un mayor confort como se muestra en la siguiente ilustración.
Ilustración 25: Manual de colocación de las gafas y del LightPack.
La disposición para la carga de los componentes es la siguiente:
Ilustración 26: Disposición para la carga del LightWear y el Control.
Octubre 2019
JORGE LUIS RAMOS HURTADO 39
2.6.2. Funciones principales y características
Una vez analizado el producto, se analiza su compatibilidad con Unity y se procede a la creación
de aplicaciones sencillas para el conocimiento de las capacidades de este dispositivo.
Su instalación y adaptaciones necesarias para la creación de aplicaciones en RA se describen
detalladamente en el apartado: 3. Diseño.
Una vez se ha configura correctamente Unity para el desarrollo de aplicaciones de Magic Leap,
se observan diversos ejemplos que vienen incluidos en la descarga del paquete informático,
Magic Leap Package. Estos muestran las capacidades y funciones principales de las gafas. En
este apartado se recogen las primeras impresiones y se buscan las características y funciones
más interesantes para poder diseñar una aplicación en RA aplicada en cimentaciones.
En el Esquema 4, se muestran las funciones principales de las gafas.
2.6.2.1. Controller: Operabilidad y posicionamiento del Control
Esta función consiste en el conocimiento de la posición del Control. El dispositivo es de gran
ayuda para poder interactuar con los elementos/objetos virtuales en el entorno real. Además,
Funciones principales: Magic Leap
One
Controller
Input Module
Raycast
Placement
Persistance
Hand Tracking
Esquema 4: Funciones principales de las Magic Leap One. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 40
contiene mecanismos como botones (Bumper, Trigger y HomeButton) y el pad, que nos permite
dar Inputs dentro de la aplicación.
Para poder hacer uso del Control es necesario conocer su posición y su estado operativo, por lo
que se han de desarrollar scripts que controlen su operabilidad y su estado de funcionamiento.
Es por ello que dentro del Unity Package existen diferentes scripts con sus respectivas funciones.
A continuación, se comentan los diferentes scripts y su función:
- Controller Connection Handler: Script que maneja toda la información acerca de la
conectividad del Control. Esta conectividad puede ser modificada durante la ejecución
del aplicativo, por lo que es importante conocer el estado de operabilidad e informar de
cualquier evento que suceda.
- Controller Visualizer: Script que se encarga de poder visualizar el Input que se genera en
el Control dentro de la aplicación.
- Controller Transform: Script que calcula la posición y la rotación del Control.
Ilustración 27: Visualización del Control en una experiencia en RA. Fuente: propia.
2.6.2.2. Hand Tracking: Reconocimiento de gestos manuales
Esta función muestra la capacidad por parte de las gafas, de reconocer gestos manuales.
Esta detección se realiza mediante la función interna MLHands API (función de programación
integrada), que realiza un escaneado de las manos mediante los sensores y devuelve los puntos
clave (KeyPoints). Estos puntos son algunas articulaciones de los dedos, sus extremos, el centro
de la palma y la muñeca.
Para la visualización de los puntos en la app es necesario el script Hand Tracking Visualizer. Este
script detecta los puntos clave e implementa esferas en ellos. Además, los puntos se unen
mediante líneas renderizadas, que permiten identificar de manera esquelética una mano.
Octubre 2019
JORGE LUIS RAMOS HURTADO 41
En la Ilustración, se muestra la imagen del rastreo de estos puntos clave.
Ilustración 28: Visualización de la mano dentro de Magic Leap. Fuente: magic-leap.reality.news
2.6.2.3. Input Module: Interacción
Esta función nos permite, mediante un script, imponer Inputs a través del Controller, LightWear
o mediante reconocimiento ocular. El uso del menú principal para el desarrollo de una aplicación
puede servir de plantilla para la creación de un menú principal. Este componente ya contiene
los códigos de programación que permiten la detección del puntero láser y la selección de
botones mediante los pulsadores del Control.
Ilustración 29: Menú principal de la escena InputModule. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 42
2.6.2.4. Persistence: Persistencia de objetos virtuales en el entorno real
Esta función permite a cualquier objeto, al que se le asigne el script correspondiente,
permanecer en el espacio real. Esto se realiza mediante el cálculo constante de la posición del
objeto respecto un sistema de coordenadas general. El código de programación en concreto
tiene el nombre de Persistance Behaviour.
Ilustración 30: Permanencia de l modelo de las cimentaciones en el entorno real.
2.6.2.5. Placement: Colocación de objetos virtuales en el espacio real
En este caso, la función Placement, permite la implantación de objetos virtuales en un punto del
entorno real. El script que realiza esta función, emite una serie de rayos virtuales que detectan
los puntos del espacio real. Haciendo posible la ubicación de un modelo respecto a uno de los
puntos detectados.
Los códigos de programación necesarios para esta función son:
- MLSpatialMapper: se encarga del reconocimiento del entorno a través de la emisión de
rayos virtuales.
- Placement: se usa para la implantación del modelo virtual en el entorno real
previamente creado.
- Placement Visualizer: se encarga de la visualización de esta implantación.
Octubre 2019
JORGE LUIS RAMOS HURTADO 43
Ilustración 31: Colocación de esferas virtuales en el entorno real. Fuente: propia.
2.6.2.6. Raycast: Emisión de rayos virtuales
Esta función, mencionada previamente, se realiza a través de 3 sensores ubicados en las gafas
que detectan todo objeto con el que colisionen.
Estos rayos virtuales permiten realizar un reconocimiento del entorno real y así poder
interactuar con él y obtener una experiencia más realística. En la siguiente Ilustración, se
muestra un ejemplo de esta detección del entorno y una creación del mallado para su
visualización.
Ilustración 32: Reconocimiento del entorno real y visualización mediante la creación del mallado.
Octubre 2019
JORGE LUIS RAMOS HURTADO 44
2.6.2.7. Magic Leap One: Características positivas
En este apartado, se describen las características positivas más destacables de las Magic Leap
One.
En cuanto al diseño de las gafas, se puede sentir su ligereza y su compacidad. Esto, en gran parte,
es debido a que la mayor parte del hardware y la batería está concentrada en el LightPack, el
cual libera de peso a las gafas, favoreciendo la comodidad del usuario.
Otra gran característica es la potencia escogida del hardware, el cual te permite ejecutar
aplicaciones de gran tamaño.
Las primeras impresiones han sido muy positivas. Estas gafas ofrecen una inmersión muy realista
en la que uno percibe que los componentes virtuales se encuentran en adecuada armonía con
el resto de componentes reales.
Ilustración 33: Primeras impresiones de la experiencia en realidad aumentada.
2.6.2.8. Magic Leap One: Características mejorables
A continuación, se determinan los puntos mejorables de las gafas.
- Campo de visión reducido: característica común en gafas de RA
- Incompatibilidad de utilizarlas con gafas graduadas.
- Calentamiento notable de las gafas a partir de los 10 minutos.
- Resecamiento de los ojos debido al calentamiento de las lentes fotónicas.
- Sensación de mareo en algunas personas.
Octubre 2019
JORGE LUIS RAMOS HURTADO 45
Ilustración 34: Comparativa del campo de visión entre las Magic Leap, HoloLens y las gafas de RV de Play Station. Fuente: (Beat)
Octubre 2019
JORGE LUIS RAMOS HURTADO 46
3. Diseño
Una vez se han analizado las funciones más interesantes para el desarrollo de la aplicación, en
este capítulo se describe el proceso del diseño a realizar. La guía contiene las fases siguientes:
- Diseño de las cimentaciones en Revit.
- Descargas previas para el funcionamiento de Unity.
- Configuraciones de la plataforma de Unity para poder trabajar con Magic Leap,
- Diseño de la aplicación para los distintos modos de ayuda al usuario.
A continuación, se describen los procesos empleados para el modelado tridimensional de los
distintos componentes.
3.1. Modelado de las armaduras en Revit
Debido a que las armaduras son de una obra ejecutada por CROMSA CONSTRUCCIÓN Y
MEIDOAMBIENTE S.A. se consultan los planos de las cimentaciones. Estos se encuentran en un
archivo AutoCAD, por lo que se ha de proceder al modelado tridimensional de la estructura en
Revit.
Hay que recalcar, que la obra consiste en una ampliación de unas naves industriales ya
existentes, y que se hallan varias zonas de actuación. La zona escogida trata de la ampliación de
una nave. De manera que ésta, denominada en proyecto Nave A, contiene en su contorno parte
de cimentación existente y parte de nueva construcción.
Ilustración 35: Ubicación de la construcción de la Nave A (abajo a la derecha), dentro del polígono industrial existente.
Octubre 2019
JORGE LUIS RAMOS HURTADO 47
En los siguientes apartados, se muestra los pasos a continuar para el modelado. Primeramente,
se ha de adecuar el archivo de AutoCAD, y posteriormente, realizar el levantamiento en Revit
para poder exportarlo a FBX (archivo de interoperabilidad admitido por Unity).
3.1.1. Pasos previos en AutoCAD
Para el modelado 3D, primero se abre el archivo AutoCAD original y se observa, que contiene
información en referencia a detalles constructivos. Esta información es fundamental, ya que
contiene la disposición de las armaduras y secciones de los diversos elementos estructurales.
Pero, para el modelado de las cimentaciones, se requiere exclusivamente de las medidas de
estos elementos de hormigón. En consecuencia, el archivo que se ha ancla en REVIT solo
contiene el contorno y la forma en planta de las cimentaciones.
Ilustración 36: Archivo original de la nave A, donde se muestra la ubicación de las cimentaciones y los detalles constructivos de éstas. Fuente: CROMSA
AutoCAD Revit Archivo FBX
ExportaciónLevantamiento tridimensional
Esquema 5: Procedimiento para la creación del archivo del modelo 3D aceptado por Unity.
Octubre 2019
JORGE LUIS RAMOS HURTADO 48
Ilustración 37: Archivo AutoCad de las cimentaciones de la nave A modificado para el anclaje del dibujo en REVIT.
Para el anclaje del plano de las cimentaciones, primero se ha de configurar las unidades del
archivo AutoCAD a las mismas en las que se vaya a desarrollar el modelo REVIT. En esta tesina,
se emplea como unidad principal el metro.
Ilustración 38: Proceso para la designación de las unidades de proyecto en AutoCAD.
Una vez designadas las unidades del proyecto, se ha determinar el origen del proyecto en el
dibujo, ya que, posteriormente, en REVIT el modelo se implanta en referencia a este punto.
Además, debido a esta disposición se determina como dirección principal la línea vertical que
pasa por el origen. Para ello se siguen los pasos siguientes:
Octubre 2019
JORGE LUIS RAMOS HURTADO 49
Ilustración 39: Paso 1: Selección de todo el dibujo y con el comando _MOVE y se determina el origen del
dibujo. En este caso es la esquina inferior derecha del encepado con denominación 11G.
Ilustración 40: Paso2: Inserción manual numérica de las coordenadas (0,0).
Seguidamente, se guarda el proyecto en la ubicación deseada y se procede a abrir el proyecto
en REVIT.
3.1.2. Creación del proyecto en REVIT
En este apartado, se detalla la guía para la creación de un proyecto en REVIT, concretamente,
para el modelado de las cimentaciones de una estructura. Este proceso se ha realizado con la
versión 2020 de este programa.
Octubre 2019
JORGE LUIS RAMOS HURTADO 50
En primer lugar, se ha de abrir el programa y crear un nuevo proyecto con la plantilla estructural
llamada “Structural Template”. En la Ilustración 41, se muestran estos pasos.
Ilustración 41: Pasos iniciales para la creación de un proyecto en Revit.
Inmediatamente después, se procede al anclaje del dibujo en AutoCAD. Dicho proceso, se realiza
desde la barra de menú en Insert > Link CAD.
1. Clic en la pestaña Insert de barra de menú.
2. Clic en la opción Link CAD.
3. Se abre la ventana Link CAD formats. Se procede a la búsqueda del archivo CAD
realizado previamente.
4. Se configura las opciones a Color: Black and White, Layers/Levels: All, Import Units:
meter, Positioning: Auto: Origin to Origin y Place at: Level 1.
5. Clic en Open.
Octubre 2019
JORGE LUIS RAMOS HURTADO 51
Ilustración 42: Guía para anclar un dibujo de AutoCAD en Revit.
Una vez se ancla el dibujo, se debe comprobar si el origen del proyecto en Revit (Punto Base de
Proyecto) coincide con el origen designado en AutoCAD. Este paso es necesario ya que, por
defecto, este punto se encuentra en modo oculto. Estas opciones se encuentran en la pestaña
View > Visbility / Graphics.
1. Clic en la pestaña View de la barra de menús.
2. Clic en la opción Visbility / Graphics.
3. Aparece la ventana de Visibilidad y Gráficos para el nivel en el que se encuentra el
archivo CAD.
4. Se busca el apartado Site y dentro se asegura que la caja de verificación de Project
Base Point está marcada.
5. Seguidamente, se da clic a Ok.
Octubre 2019
JORGE LUIS RAMOS HURTADO 52
Ilustración 43: Indicaciones para visualizar el punto base de proyecto en Revit.
Estas indicaciones, muestran los importantes pasos previos antes de iniciar el modelado. Por
ello, se detalla para el conocimiento común. En la elaboración del modelado, se ha tenido que
aprender a utilizar este programa, ya que no se poseían grandes conocimientos al inicio.
Sin embargo, en el siguiente proceso de modelado, se muestran imágenes de la creación de los
objetos, pero no de todos los pasos seguidos al detalle; ya que esta tesina no tiene como objetivo
mostrar el funcionamiento de Revit, sino de sistematizar la creación de una aplicación en RA,
aprovechando un modelo tridimensional realizado previamente por el/la proyectista, y a su vez,
proporcionar una herramienta que favorezca la metodología BIM.
A continuación, se muestran imágenes del proceso del levantamiento de los elementos
estructurales:
Octubre 2019
JORGE LUIS RAMOS HURTADO 53
Ilustración 44: Modelado de las zapatas existentes.
Ilustración 45: Modelado de la familia: Encepados – Pilotes.
Octubre 2019
JORGE LUIS RAMOS HURTADO 54
Ilustración 46: Modelado de las riostras existentes.
Ilustración 47: Modelado de los muretes-riostras.
Octubre 2019
JORGE LUIS RAMOS HURTADO 55
Ilustración 48: Modelado de las armaduras de los Muretes-Riostras.
Ilustración 49: Modelado de las armaduras de los encepados y pilotes.
Octubre 2019
JORGE LUIS RAMOS HURTADO 56
Ilustración 50: Modelado de las columnas existentes y de nueva construcción.
Ilustración 51: Modelado de elementos no estructurales de nueva construcción: paredes, puerta enrollable de la nave y puerta de entrada.
Una vez realizado el modelado en Revit, se procede al exportado de la estructura en el archivo
de interoperabilidad FBX (Filmbox). Este proceso se realiza desde File > Export > FBX. Las
indicaciones de este paso se muestran en Ilustración 52.
Octubre 2019
JORGE LUIS RAMOS HURTADO 57
Ilustración 52: Ubicación de la opción de exportación al archivo FBX.
En esta fase de la presente tesina, ya se ha configurado Unity para trabajar con Magic Leap, y se
ha realizado el modelo tridimensional de las cimentaciones. Por lo que el siguiente suceso, es el
diseño de la app dentro de Unity.
Como se ha descrito anteriormente, los conocimientos previos acerca de esta plataforma, eran
escasos. Añadiendo dificultad a los procesos seguidos, sobre todo en la creación de las
armaduras, ya que trata de un proceso muy manual y complejo; que con la falta de experiencia
han supuesto un reto y un valioso aprendizaje.
Octubre 2019
JORGE LUIS RAMOS HURTADO 58
3.2. Adaptación de la plataforma de Unity para trabajar con Magic Leap
One: configuraciones y descargas previas
Para poder trabajar con las gafas en la plataforma de Unity se precisan de diversos requisitos
fundamentales. Estos requerimientos, consisten en la descarga de varios archivos informáticos
que habilitan el desarrollo de aplicaciones y experiencias en RA. En este apartado se mencionan
los procesos más destacados a realizar. Esta guía se puede encontrar en la página web principal
de Magic Leap, en el apartado Creator Portal.
Ilustración 53: Apartado en página web de Unity para iniciar experiencias con Magic Leap.
Para iniciar esta adaptación primero se ha de realizar la descarga del Magic Leap Manager.
Archivo que se encuentra disponible en la web de Magic Leap.
3.2.1. Descarga del Magic Leap Package Manager.
El Magic Leap Package Manager consiste en un programa externo que da acceso a las descargas
necesarias para poder trabajar en el entorno y la plataforma deseada.
Para la descarga del ejecutable se ha de ir a la web principal de Magic Leap / Creator Portal /
Downloads (Package Manager). Una vez se ejecuta el archivo descargado, se siguen las
instrucciones hasta que haya finalizado la descarga. Una vez descargado, se abre el archivo de
acceso directo y se encuentra el siguiente panel de la Ilustración 54.
Octubre 2019
JORGE LUIS RAMOS HURTADO 59
Ilustración 54: Panel principal del Magic Leap Package Manager.
Para poder trabajar en la plataforma de Unity, se ha de descargar dos componentes:
- Magic Leap Unity Package: Este paquete contiene ejemplos de aplicaciones creadas, así
como ejemplos de código que son necesarios para el funcionamiento de los elementos
dentro de la aplicación. Más adelante se mencionan los ejemplos de código utilizados.
Al observar la última versión de este Package (0.22.0), se observa la notificación en la
Ilustración 55:
Ilustración 55: Notificación donde se comenta la incompatibilidad de las funciones MLInputModel y MLInputRaycaster con la última versión del Unity Package (0.22.0).
Octubre 2019
JORGE LUIS RAMOS HURTADO 60
Como se observa, en esta versión no es compatible las funciones de
MLInputModule, que proporciona las herramientas necesarias para poder
manipular el Control de Magic Leap; y la función de MLInputRaycaster, que es
necesaria para poder detectar puntos del entorno real.
Debido a la necesidad de estas dos funciones para detectar el entorno real de
una obra de construcción, se opta por utilizar la versión anterior del Package, la
versión 0.21.0.
- Lumin SDK (Software Development Kit): Este SDK contiene todas las herramientas
necesarias para el desarrollo de aplicaciones con Magic Leap. Existen varias versiones,
y la utilizada en esta tesina, es la versión Lumin SDK 0.21.0. Esto es debido a que la
versión (0.21.0) del Package Manager, tiene como dependencia esta versión de Lumin.
Además, se observa que esta versión solo es compatible con la versión 2019.1 de Unity,
por lo que para esta tesina se opta por el uso de estos tres elementos con sus versiones
correspondientes.
Esquema 6: Plataformas y elementos utilizados para el desarrollo de la aplicación en RA con sus respectivas versiones.
Configuración Unity-Magic
Leap
Lumin SDK 0.21.0
Unity 2019.1.
14f1. Magic LeapPackageManager
0.21.0
Octubre 2019
JORGE LUIS RAMOS HURTADO 61
3.2.2. Configuraciones previas dentro de Unity
En este apartado, se describen las configuraciones necesarias dentro de Unity para
compatibilizarlo con Magic Leap.
Este proceso se encuentra en la web de Magic Leap > Creator Portal > Learn > Guides > Develop
> Unity > Creating Unity Projects. En la página web existe documentación de cómo realizar una
aplicación desde cero, en las diversas plataformas existentes. Dentro se escoge la plataforma
con la que se trabaja, en el caso de esta tesina con Unity. En la Ilustración 56 se muestra el lugar
dónde se encuentra este proceso.
Ilustración 56: Apartado Learn de la página web principal dónde se encuentra la documentación paso a
paso para crear una aplicación de Magic leap en Unity.
La descripción de este proceso se describe en el anejo, apartado (Configuración inicial en Unity
para la creación de una App en Magic Leap). En él, se encuentra la guía paso a paso para la
configuración de las dos plataformas. Este proceso también se encuentra en la web oficial de
Magic Leap, y en el anexj se halla la traducción de este documento en castellano.
Octubre 2019
JORGE LUIS RAMOS HURTADO 62
3.2.3. Descarga del certificado de desarrollo de Apps con Magic Leap
En este apartado se describe un paso esencial para la descarga de Apps en las Magic Leap One.
Se trata del certificado de desarrolladores que permite la publicación de la app creada en el
dispositivo personal.
En caso que se requiera de una publicación a la plataforma de distribución digital de
aplicaciones, Magic Leap World, se debe de poseer un certificado Submission, el cual permite
distribuir la aplicación en cualquier dispositivo Magic Leap One a nivel global. En esta tesina no
se requiere de ello, en consecuencia, se empelará el certificado de desarrollador (Development
Certificate).
Para la descarga del archivo de los certificados, es necesario poseer una cuenta de Magic Leap.
Para esta tesina, se emplea la cuenta de CIMNE. Seguidamente, este proceso se encuentra en
Creator Portal > Publish > Certificates.
Para el desarrollo de esta tesina se crea el certificado “cimne – jorge” desde la opción Add new.
El archivo zip que se descarga, se ha de almacenar en un lugar conocido para su posterior uso
dentro de Unity. El estado final de este proceso se muestra en la ilustración siguiente:
Ilustración 57: Estado final de la creación del certificado de desarrollo. Fuente: propia.
Octubre 2019
JORGE LUIS RAMOS HURTADO 63
3.3. Creación del proyecto dentro de Unity
En este apartado, se describen los procesos iniciales necesarios para la creación de un proyecto
en Unity. Este proceso se puede encontrar también en la página web principal de Magic Leap
(Create First Unity App). A continuación, se muestra la misma guía traducida al castellano.
1. Antes de comenzar, es necesario que se hayan realizado los procesos comentados en
apartados anteriores (Véase: 3.2 Adaptación de la plataforma de Unity para trabajar con Magic
Leap One: configuraciones y descargas previas).
2. Clic en Edit > Project Settings. Se abre la ventana de Project Settings.
3. Se dirige a Magic Leap > Manifest Settings.
4. Selecciona la siguiente configuración:
5. Se acude a Project > Player.
6. Clic en la barra de Lumin . Aparece la configuración de Lumin.
Ilustración 58: Paso 6: Configuración de Lumin dentro de Unity > Player Settings.
7. Se dirige a Other Settings > Identification y después se configura el Bundle Identifier en letras
minúsculas siguiendo el siguiente criterio: com.company.test.
Octubre 2019
JORGE LUIS RAMOS HURTADO 64
Ilustración 59: Paso 7: Configuración del Bundle Identifier dentro de Unity > Player Settings.
8. Se acude a Other Settings > Configuration, y después se configura el Api Compatibility Level
a .Net 4.x.
Ilustración 60: Paso 8: Configuración del Api Compatibility Level dentro de Unity > Player Settings.
9. Se dirige a Publishing Settings y después se busca el archivo del certificado descargado
previamente desde el Magic Leap Creator Portal. (Véase: 3.2.3 Descarga del certificado de
desarrollo de Apps con Magic Leap).
Octubre 2019
JORGE LUIS RAMOS HURTADO 65
3.4. Diseño de la aplicación en Unity
Para el diseño de la aplicación en Unity se debe conocer, antes de todo, cuáles son los propósitos
de la app, de qué manera se va ayudar al sector de la AIC y cómo se repercute en la app. Por
ello, se explican brevemente cuáles son los distintos campos, dentro de la ingeniería civil, en los
que se va aplicar estas experiencias en RA. En el apartado (4. Caso de Estudio) se describe
detalladamente estos modos de ayuda y se argumenta el porqué de su elección.
Como se describía al inicio de esta tesina, existe una gran competencia en el sector de la AIC y,
además, poca intención de adaptación a las nuevas tecnologías. Por ello, los modos de ayuda
con RA han de ejemplificar un gran avance respecto a los métodos actuales. Han de
argumentarse de manera que suponga una evidencia para su futura implantación. Por
consiguiente, se plantean y se describe brevemente los modos de ayuda a crear:
- Modo de Control de Calidad: en este modo se pretende implantar el modelo real de las
cimentaciones en el lugar final de obra. Obteniendo una comparación de la ejecución
real de las armaduras con la ejecución virtual de proyecto.
- Modo de Prevención de Riesgos Laborales: en este modo se pretende ofrecer ayudas a
los operarios para detectar riesgos difíciles de detectar, anular sus propias imprudencias
e informar y asegurar que los operarios llevan los Elementos de Protección Individual
(EPI) necesarios.
Antes de iniciar el proceso indicado, es recomendable organizar los distintos elementos que van
ser partícipes de las aplicaciones. En consecuencia, se crea una organización con carpetas para
almacenar los distintos componentes de manera ordenada. Para la creación de una carpeta, se
realiza clic derecho en la ventana de Project > Create > Folder.
Para esta tesina, se dispone de la organización que se muestra en la siguiente ilustración:
Ilustración 61: Organización inicial de las carpetas.
Octubre 2019
JORGE LUIS RAMOS HURTADO 66
3.4.1. Asignación de materiales a los elementos
Antes de asignar los materiales, se ha de importar el elemento FBX realizado previamente. Para
ello, se realizan los siguientes pasos:
1. En la ventana de Project dentro de la carpeta creada: Cimentaciones Revit, se clica el botón
derecho, se selecciona Import New Asset y se busca el archivo de FBX.
2. Se arrastra el prefab a la ventana Hierarchy. Acto seguido, se realiza clic derecho en el prefab
y se selecciona Unpack Prefab Completely.
Ilustración 62: Implantación del modelo en la escena mediante su arrastre a Hierarchy (izquierda) y
desagrupado del modelo (derecha).
Seguidamente, se estructuran los distintos elementos en Hierarchy y se eliminan aquellos
elementos que no son necesarios para esta experiencia y que se han exportado por defecto.
Como, por ejemplo, sus niveles, simbología y la cámara 3D.
Octubre 2019
JORGE LUIS RAMOS HURTADO 67
Ilustración 63: Estructuración de las carpetas en Hierarchy (superior) y eliminación de los elementos
dispensables (en azul).
Una vez se tiene el prefab del modelo listo, se procede a la creación de materiales. Esto se realiza
dentro de la carpeta TFG > Materials, clic derecho Create > Material. Se selecciona el material,
y se le asigna el color deseado desde la ventana Inspector > Main Maps > Albedo. Se le
denomina de la manera deseada, en este caso, para la diferenciación de los diámetros de barras.
Además, desde la pestaña Asset Store, se da la posibilidad de buscar materiales más sofisticados
como el hormigón o paneles metálicos.
Ilustración 64: Creación de los materiales de las distintas barras, y descarga de nuevos materiales desde el Asset Store.
Octubre 2019
JORGE LUIS RAMOS HURTADO 68
Para la asignación de los materiales creados, a los objetos existentes en Unity, se procede a los
pasos siguientes:
1. Selección en la ventana Hierarcy, de los elementos que han de tener el mismo material.
2. Se dirige al Inspector > Mesh Renderer > Materials > Element 0, y se clica en el círculo de la
derecha.
3. Se busca el material a asignar. Este paso también se puede realizar arrastrando el material
desde la ventana Project al recuadro de Element 0.
4. Visualización de los cambios en la ventana Scene.
Ilustración 65: Pasos para la asignación de materiales.
Ilustración 66: Resultado final de la asignación de materiales al modelo.
Octubre 2019
JORGE LUIS RAMOS HURTADO 69
3.4.2. Diseño del menú principal
En este subapartado, se describe el procedimiento paso a paso para la creación de elementos
de dirección y orientación de la app.
El primer paso, consiste en crear el menú principal donde se encuentran las distintas opciones
de la aplicación. Para ello, se aprovecha una aplicación del Package de Unity llamado Input
Module. Los pasos a seguir son los siguientes y se muestra en la Ilustración 67.
1. Desde la ventana Project, se abre la dirección Assets > Magic Leap > Examples > Scenes >
InputModule.
2. Se arrastra esta Scene a la ventana de Hierarchy y se despliegan los elementos.
3. Se selecciona el Canvas y se arrastra, dentro de Hierarchy, a la Scene TFG-CIMNE&UPC.
Dentro del Canvas, se observan distintos elementos:
- Header: contiene el título del menú. En este caso, Menú Principal.
- Buttons: son los botones de las distintas opciones.
- Text: son los textos de cada Button.
4. Se selecciona, en la Scene: InputModule > [CONTENT], los elementos de a continuación, que
se han de arrastrar a la Scene: TFG-CIMNE&UPC:
- Input Example, que contiene el script para ejecutar los Inputs del Controller.
- Controller, que posee los elementos tridimensionales del Control y scripts para la
visualización en la aplicación.
5. Se clica en, Hierarchy > InputModule el elemento EventSystem, que se encarga de dirigir los
distintos eventos que suceden con el Controller, y se arrastra al Hierarchy > TFG-CIMNE&UPC.
6. Se modifica los textos de Header y de los Buttons desde la ventana de Inspector. Este proceso,
también se puede realizar mediante un script que se desarrolla más adelante.
Octubre 2019
JORGE LUIS RAMOS HURTADO 70
Ilustración 67: Pasos iniciales para la creación del menú.
El texto y los Inputs de los botones del Menú, pueden ser modificados manualmente desde
el Inspector. Y en el caso de necesitar el mismo formato del menú, pero con otros Inputs y
textos, se tendría que realizar otro panel con los nuevos textos e Inputs.
Debido a que en esta tesina se va a precisar de otro menú, y, además, para obtener una
mejor eficiencia del programa, se opta por desarrollar un script el cual modifica los textos y
los Inputs dependiendo del modo en el que se encuentra la app. Este script se muestra
explicado en el Anejo con el título Script: MenuHandler.
Este script se añadirá como componente desde el Inspector > Add Component > New Script
> MenuHandler. Una vez creado y añadido, se rellenan las variables públicas con los
EmptyGameObjects de los modos, previamente creados. A continuación, se muestran los
pasos seguidos. En la Ilustración 68 ,se puede observar el resultado.
Octubre 2019
JORGE LUIS RAMOS HURTADO 71
1. Creación de los EmptyGameObjects para organizar los distintos modos. Esto se realiza
con clic derecho en el Hierarchy > CreateEmpty, y se cambia al nombre de los distintos
modos.
2. Clic en AddComponent y se busca el script MenuHandler.
3. Asignar las variables públicas del MenuHandler a los EmptyGameObjects de los
modos.
Ilustración 68: Pasos para crear EmptyGameObjects de los modos y adhesión del script MenuHandler.
A continuación, se describe la creación de los modos realizados en esta tesina.
3.4.3. Modo Control de Calidad: componentes principales en Unity
En este apartado, se especifica la guía para crear este modo. Como se detalla en el inicio de este
capítulo, el modo control de calidad pretende permitir la superposición del modelo virtual en el
entorno real con precisión de milímetros.
El primer paso, se fundamenta en crear un método, en el cual se escoge un punto del entorno
real mediante el puntero láser de las gafas, y acto seguido implantar el modelo con origen en
este punto. Además, se le proporciona una dirección con la detección de un segundo punto del
entorno. Para ello, se crea un EmptyGameObject que contenga todos los elementos necesarios.
A continuación, se describen los pasos y una ilustración de ellos (Ilustración 69).
Octubre 2019
JORGE LUIS RAMOS HURTADO 72
1. Creación del EmptyGameObject denominado RaycastMethod.
2. Selección del Add Component y adhesión de los siguientes elementos:
3. Mesh Filter: se clica el círculo de la derecha en el que se busca el Mesh: Cursor.
También se puede arrastrar desde la ubicación Assets > MagicLeap > Examples >
Models > Cursor > Meshes.
4. Mesh Renderer: se clica en Element 0, y se busca el material con nombre
GreenCursor. También en la ubicación Assets > MagicLeap > Examples > Models >
Cursor > Materials.
5. Mesh Collider: donde se deja la configuración por defecto.
6. Scripts: Raycast Object y Raycast Visual: Encargados de las funciones de implantación
de los modelos. Su explicación se detalla en el anejo con nombre Script: Raycast Object
y Script: Raycast Visual.
Ilustración 69: Pasos iniciales para la creación del modo control de calidad.
Octubre 2019
JORGE LUIS RAMOS HURTADO 73
Estos scripts, realizan la implantación del objeto y contiene variables públicas para el
funcionamiento de la app. Más adelante, se designan las variables y se detalla su explicación;
antes, se ha de crear unas instrucciones iniciales para cada método.
3.4.3.1. Creación del panel de instrucciones iniciales
Para la realización de estas instrucciones, se ha de visualizar mediante un panel que se sitúa
dentro del objeto previamente creado, Canvas. A continuación, se describe la guía para este
proceso.
1. Creación del Panel InitialInstrPanel, dentro del Canvas.
2. Creación de los textos Header, que contiene el título del modo, y de Instruction, que
describe la experiencia a realizar. Creación, a su vez, del botón UnderstoodButton, que
da el permiso para comenzar la aplicación.
3. Adhesion del script InitialInstructionsPanel_Handler. Este script organiza los cambios
del título y de las instrucciones, dependiendo del modo en el que se halle. Su explicación
se detalla en el anejo.
Ilustración 70: Creación del Panel de Instrucciones utilizado para todos los modos.
Octubre 2019
JORGE LUIS RAMOS HURTADO 74
3.4.3.2. Creación del menú interno
Posteriormente, se crea el menú interno del modo 1, en el que se encuentran opciones como la
activación y desactivación de las armaduras. Los pasos a seguir, son los siguientes:
1. Creación del panel de menú M1OptionsPanel, utilizando la plantilla de menú que se
ha visto anteriormente.
2. Nombramiento de los botones:
- ActArmButton: Botón que activa la visualización de la armadura.
- DesArmButton: Botón que desactiva su visualización
- Placement Button: Botón que inicia el proceso de implantación del modelo.
- BackButton: Botón que devuelve al menú principal.
2.1. Creación del EmptyGameObject, que contiene todos los componentes
necesarios para la implantación del modelo. En la siguiente guía de los pasos, se
describen los componentes de este objeto.
3. Creación de un texto guía de ayuda, HelpText; y de la imagen que ayuda a localizar el
punto de origen de la estructura, Image. Esta imagen se añade dentro del Inspector >
Image > Source Image.
Octubre 2019
JORGE LUIS RAMOS HURTADO 75
Ilustración 71: Creación del menú interno del modo control de calidad.
3.4.3.3. Creación del método de implantación del modelo en el entorno real.
Seguidamente, se explica el componente que más complejidad ha presentado debido a la
cantidad de conceptos nuevos de programación. Se trata de la creación de la función, que
permite la implantación del modelo en el entorno real. Es por ello, que se hace un inciso en la
creación de este objeto. Los pasos se detallan a continuación y en la Ilustración 72:
1. Denominación del nuevo EmptyGameObject a RayCastMethod.
2. Adhesión del componente Mesh Filter y asignación del Mesh al elemento Cursor que
se encuentra dentro de Assets > MagicLeap > Examples > Models > Cursor > Meshes.
3. Adhesión del componente Mesh Renderer y asignación del Element 0 al elemento
GreenCursor ubicado en Assets > MagicLeap > Examples > Models > Cursor > Materials.
4. Adhesión del componente Mesh Collider con la configuración por defecto.
5. Adhesión del script denominado RaycastObject y configuración según la Ilustración
73.
Octubre 2019
JORGE LUIS RAMOS HURTADO 76
6. Adhesión del script denominado RaycastVisual, que proporciona las directrices
necesarias para la implantación del modelo virtual en el entorno real, y que organiza las
instrucciones a visualizar, dentro del proceso implantación. El detalle de este
componente, se describe detalladamente en el anejo.
Ilustración 72: Guía del proceso para la creación de los elementos necesarios para la implantación del modelo virtual en el entorno real.
Ilustración 73: Disposición de las variables públicas para el componente en forma de script RaycastVisual.
Octubre 2019
JORGE LUIS RAMOS HURTADO 77
3.4.3.4. Funcionamiento del modo Control de Calidad
Finalmente, el proceso para la implantación del modelo, es el siguiente:
1. Selección del modo Control de Calidad
2. Información acerca de este modo.
3. Aparición del menú interno de este modo.
4. Colocación del puntero verde en el origen de la estructura del entorno real.
5. Colocación del segundo punto para determinar la dirección del modelo.
6. Implantación del modelo realizado.
7. Iniciación de la inspección de las armaduras.
1
4 3
2
Octubre 2019
JORGE LUIS RAMOS HURTADO 78
Ilustración 74: Transcurso de la aplicación en el modo control de calidad.
5 6
7
Octubre 2019
JORGE LUIS RAMOS HURTADO 79
3.4.4. Modo Prevención de Riesgos Laborales: componentes principales en Unity
Una vez creado el primer modo, se prosigue a la creación del modo PRL, donde el objetivo es
crear sistemas de ayuda al operario para la detección de riesgos en obra. Además, se le ha de
recordar los elementos de protección individual (EPI’s) a utilizar según la tarea.
En el transcurso de esta experiencia, el operario, sigue los siguientes procesos:
- Instrucción inicial del modo PRL.
- Elección de la fase de ejecución de cimentaciones: Excavado, Ferrallado o
Hormigonado.
- Preguntas iniciales acerca de la utilización de EPI’s necesarios, según la actividad
que se dispone a realizar.
- Viabilidad del operario para ejercer su trabajo teniendo avisos de los principales
riesgos.
3.4.4.1. Instrucción inicial del modo PRL
Para añadir el panel que da a pie a la instrucción de este modo, se aprovecha el realizado
previamente en el modo CC. Para modificar el texto, se realiza mediante el script previamente
citado InitialInstrHandler. Este script modifica el título, el texto y el ouput del botón entendido.
EL nuevo texto tendrá la siguiente instrucción:
"El modo PRL permite al usuario prever los riesgos mediante ayudas incorporadas dentro de la
experiencia y recordarle el uso obligatorio de EPI’s. Por favor seleccione entendido para
continuar. “
Ilustración 75: Panel instructivo del modo PRL.
Octubre 2019
JORGE LUIS RAMOS HURTADO 80
Una vez el operario selecciona entendido, aparece el menú interno de este modo.
3.4.4.2. Menú interno
Para la realización del menú interno, utilizamos la plantilla que ya se ha utilizado para el menú
principal e interno del modo CC. Éste, se modifica para que haya 4 opciones que representan las
3 fases de ejecución y el botón que devuelve al menú principal. La configuración se muestra en
la Ilustración 76.
Ilustración 76: Configuración del menú interno del modo PRL.
Para la organización de las distintas opciones y de las funciones a realizar por cada botón, se
crea un script: Mode2OptionsMenuHandler; el cual da las directrices para la funcionalidad del
panel. Este script se muestra en su totalidad en el anejo.
Seguidamente, en cuanto el operario escoge la fase en la que se encuentra, se procede a la
aparición de unas cuestiones iniciales acerca de las EPI’s a utilizar en la fase en concreto.
3.4.4.3. Cuestiones iniciales
En este instante, dentro de la aplicación, se plantean las cuestiones en materia de EPI’s.
Las cuestiones principales se rigen por el Estudio de Seguridad y Salud del proyecto, el cual exige
los siguientes aspectos en las distintas fases:
- Fase de excavación:
Octubre 2019
JORGE LUIS RAMOS HURTADO 81
o “El operario usará en todo momento casco, guantes, mono de trabajo,
botas de seguridad de cuero en terreno seco o botas de goma en
presencia de lodos.”
o “En caso de usar el martillo neumático, además, usará muñequeras,
protectores auditivos y mandil.”
o “Debe procurarse la mínima presencia de trabajadores alrededor de las
máquinas.”
o “Debe prohibirse la presencia de trabajadores en el radio de giro de la
retroexcavadora, prohibición que debe señalizarse en la parte exterior
de la cabina del conductor.”
- Fase de ferrallado:
o “Los operarios que realicen la colocación de las armaduras en la zanja
deberán usar casco de seguridad, guantes de cuero, mono de trabajo y
botas de cuero de seguridad.”
- Fase de hormigonado:
o “El operario que realice el vertido del hormigón y posterior vibrado
deberá usar casco de seguridad, guantes de neopreno, mono de trabajo
y botas de goma de seguridad de caña alta.”
Con estas indicaciones, se plantean las siguientes cuestiones para cualquiera de las 3 fases.
1. ¿Lleva puesto el casco de seguridad?
2. ¿Lleva puesto el mono de trabajo y el chaleco reflectante?
Y dependiendo de la fase en cuestión, se añadirán las siguientes preguntas:
- Fase de excavación:
1. ¿Lleva botas de seguridad de cuero, si el terreno está seco? En caso que este
mojado, ¿lleva botas de goma?
2. ¿Lleva los guantes?
- Fase de ferrallado:
1. ¿Lleva guantes de cuero?
- Fase de hormigonado:
1. ¿Lleva guantes de neopreno?
2. ¿Lleva botas de goma de caña alta?
Octubre 2019
JORGE LUIS RAMOS HURTADO 82
Para la visualización de estas cuestiones, se aprovecha el panel de Instrucciones Iniciales, ya que
este script: InitialInstPanel, permite modificar el texto. Este proceso nos permite una mayor
eficiencia de la aplicación ya que se emplean menos elementos de Unity que, a la hora de
procesar toda la información, puede generar una gran exigencia al procesador de las Magic
Leap, repercutiendo en los tiempos de ejecución de la app.
3.4.4.4. Creación de elementos de obra
En este apartado, se muestra la inserción de los modelos de obra para su visualización en el
entorno real.
Primero de todo, se determina los elementos necesarios para las distintas fases. Se distingue
dos grupos de elementos a colocar en esta app:
- Elementos móviles: como, por ejemplo, la maquinaria de obra necesaria para la
ejecución del ferrallado: excavadora, para la fase de excavación; y hormigonera
para la de hormigonado.
- Elementos fijos: consisten en elementos de protección colectiva que son las
mallas perimetrales alrededor de las zanjas, vallas de obra y pasarelas
provisionales.
Estos elementos, se descargan desde el Asset Store de Unity. Seguidamente, se detallan los
pasos.
1. Descarga desde Asset Store los elementos de la hormigonera, excavadora, vallas de obra y
pasarela provisional. Y, también, de los materiales como la malla de obra que se asigna a objetos
cúbicos con las dimensiones de una valla.
2. Adhesión de estos elementos en la ventana Hierarchy, asignación de los materiales en el caso
de las vallas y de la pasarela.
3. Ajuste de la ubicación desde la pestaña Scene.
Octubre 2019
JORGE LUIS RAMOS HURTADO 83
Ilustración 77: Pasos a seguir para la adhesión de los elementos de obra.
3.4.4.5. Asignación de la función Box Collider
Como el objetivo planteado es poder detectar estos elementos en obra, se precisa de un proceso
similar al del control de calidad. Ya que se ha de poder implantar los modelos en su posición
exacta. Por ello, se realiza los mismos pasos descritos anteriormente (véase: 3.4.3 Modo Control
de Calidad: componentes principales en Unity).
Seguidamente, se necesita de algún método para poder detectar los peligros cuando uno se
encuentra en las inmediaciones. Para ello, se emplea la función de los objetos llamada Box
Collider. Esta función permite generar acciones cuando dos objetos colisionan. En el caso de
esta experiencia, se asigna esta función a las gafas (Main Camera, en Hierarchy) y a los
elementos que supongan un riesgo para los operarios como caídas en altura en las zanjas,
atropellos por parte del camión, excavadora, etc.
En la Ilustración 78, se muestra el resultado de la asignación de la función Box Collider. Estos
paralelepípedos que delimitan la zona de colisión, se han de modificar desde la ventana de
Inspector > Box Collider > Edit Collider.
Octubre 2019
JORGE LUIS RAMOS HURTADO 84
Ilustración 78:Resultado de la asignación de los boxes colliders a los elementos determinados.
En el caso de esta experiencia, se asigna esta función a las mallas que rodean las zanjas, la
hormigonera y la excavadora.
Una vez, creadas estas funciones, el siguiente paso consiste en la creación de alertas en el
momento que se accede dentro de la zona de riesgo delimitada por los Box Collider.
3.4.4.6. Creación de las alertas
Para dar a conocer la peligrosidad de la posición del operario, se crea un script con nombre
OnTrigger_Handler. Este script, detecta la colisión de la cámara con los otros elementos que
indican riesgo, y emite una alerta en forma de panel rojo que indica el peligro. Para la emisión
del panel, se aprovecha el panel de Instrucciones Iniciales existente (InitialInstrPanel) y se
modifica el título, el texto y el color del panel mediante códigos de programación. Las alertas
son las siguientes:
- Alerta por proximidad a la zanja: con el aviso “¡Riesgo de caída en altura! Aléjese
de la zona excavada.
- Alerta por proximidad de la excavadora: con el aviso “Excavadora cerca. Aléjese
por su bien.”.
- Alerta por proximidad de la excavadora: con el aviso “Hormigonera cerca.
Aléjese por su bien.”
Una función a tener en cuenta, es que, Magic Leap One, permite el apareamiento de dispositivos
móviles mediante su aplicación de móvil (Magic Leap App). La posición de este dispositivo es
rastreable dentro de Unity. Por lo que se puede asignar cualquier objeto virtual a un dispositivo,
Octubre 2019
JORGE LUIS RAMOS HURTADO 85
y así, obtener en todo momento su posición real exacta. Por ejemplo, aparear un dispositivo a
la excavadora para rastrear su posición en todo momento y emitir un aviso en cuanto se acerque
a algún operario.
Esto supone ciertas limitaciones, ya que el dispositivo ha de estar permanentemente conectado,
y su rango de detección es limitado. Sin embargo, se evidencia la posibilidad de detectar y
asignar objetos virtuales a objetos móviles reales para una experiencia más tangible.
Finalmente, una vez realizado este procedimiento, se prosigue a la visualización dentro del
modo Prevención de Riesgos Laborales.
3.4.4.7. Funcionamiento del modo PRL
A continuación, se muestra el resultado de la experiencia dentro de la aplicación realizada en el
simulador.
1. Menú principal.
2. Instrucción inicial.
3. Selección de la fase.
4. Inicio de la implantación del modelo.
5. Selección del primer punto.
6. Selección del segundo punto.
7. Implantación realizada.
8. Primera pregunta en todas las fases
9. Segunda pregunta en todas las fases.
10. Tercera pregunta en fase de hormigonado.
11. Cuarta pregunta en fase de hormigonado.
12. Tercera pregunta en fase de ferrallado.
13. Tercera pregunta en fase de excavación.
14. Cuarta pregunta en fase de excavación.
15. Operario en la zona de la hormigonera.
16. Alerta de peligrosa cercanía a la hormigonera.
17. Alerta de peligrosa cercanía a la zanja.
Octubre 2019
JORGE LUIS RAMOS HURTADO 89
3.5. Instalación de la aplicación en las Magic Leap One
Una vez, se ha desarrollado la aplicación en Unity, se deben realizar unos sencillos pasos para su
descarga en las Magic Leap One.
Para ello, es indispensable tener descargado el certificado de desarrollador (véase: 3.2.3
Descarga del certificado de desarrollo de Apps con Magic Leap).
Para la descarga del .mpk (archivo exportable a Magic Leap) se han de seguir los siguientes
pasos.
1. Se conecta las gafas al ordenador mediante el cable USB.
2. Dentro de Unity, se clica en File > Build and Run.
3. Se guarda el .mpk en una ubicación conocida dentro de la carpeta del proyecto.
4. Se coloca las gafas para visualizar la aplicación.
5. Si es la primera vez que se crea una aplicación dentro del dispositivo, se debe aceptar el
certificado en las gafas.
6. Esperar a que se inicie la aplicación, que se abre con el panel de Made with Unity.
En el caso de querer eliminar la aplicación, se debe seleccionar en el menú principal, presionar
el panel táctil del Control durante 3 segundos y, seguidamente, seleccionar el símbolo de la
papelera y presionar el botón tirgger.
Octubre 2019
JORGE LUIS RAMOS HURTADO 90
4. Caso de Estudio
En este apartado se describe la razón de ser de los distintos modos creados en esta tesina.
Se han realizado por separado pero su implementación en el futuro ha de ser combinable. Esto
significa que mientras se realiza el control de calidad en RA, se ha de poder detectar los peligros
existentes en una obra.
A continuación, se describen los dos modos realizados en Unity, y se describen dos modos más,
los cuales se argumenta el uso de RA en ellos.
4.1. Modo Control de Calidad (CC)
Este modo consiste en obtener una mejora en los procesos de control de calidad de las
armaduras. Además, este control permite al responsable del control de calidad agilizar los
procesos de supervisión y obtener una mayor precisión de las características geométricas del
ferrallado.
El modo Control de Calidad superpone el modelo virtual de las armaduras al modelo realmente
ejecutado para extraer conclusiones más robustas de si la ejecución está realizada
correctamente.
Este proceso queda contemplado en la EHE-08, Anejo 21: Documentación de suministro y
control. En este documento se expone que se han de realizar los siguientes controles a la
geometría de las armaduras pasivas.
- Comprobación de las características geométricas de las barras suministradas.
- Comprobación del número de elementos y de las distancias entre barras.
Teniendo estos conceptos en cuenta se describe el método actual del control de calidad de las
armaduras y el método que se propone con RA.
4.1.1. Método actual.
Actualmente la realización de este proceso se realiza de manera manual. El responsable del
control se asegura que las distancias entre barras sean las indicadas en proyecto y que el atado
de las armaduras sea lo suficientemente robusta mediante herramientas como el pie de rey,
libreta y flexómetro.
Octubre 2019
JORGE LUIS RAMOS HURTADO 91
Ilustración 79: Responsable realizando el control de calidad de las armaduras.
Este proceso, sobre todo puede llegar a consumir grandes períodos de tiempo en el caso de una
obra con un gran volumen de armado y de gran complejidad. Esto puede repercutir
negativamente en los flujos de trabajo de esta actividad ya que, si hay prisas, puede hacerse
rápido y mal. No es inusual que se den prácticas donde, por ejemplo, no se acaben de
inspeccionar la totalidad de las distancias.
Conversando con responsables de este proceso, comentan que en la actualidad no se hace un
control riguroso de las disposiciones. En ocasiones, los errores de ejecución de las armaduras no
tienen graves consecuencias, pero pueden llegar a comprometer y comportar grandes costes de
mantenimiento en un futuro.
Es bien sabido que en la actualidad la mano de obra es un componente que consume gran parte
del capital de una empresa. La optimización de los recursos y la industrialización de los sectores
pretenden reducir estos costes. Por todo esto la creación de nuevos métodos ha de tener
presente esta línea de eficiencia, y así, lograr una reducción de costes del total de una obra de
construcción.
La propuesta mediante RA pretende ayudar a inspeccionar de manera exhaustiva, y a la vez ágil,
la disposición del ferrallado. Es por ello, que se ha visto la necesidad de crear un nuevo método
en RA que ayude a inspeccionar de manera exhaustiva, y a la vez, ágil la disposición del
ferrallado.
4.1.2. Método en RA
Este nuevo método ha de solucionar las carencias que posee el método actual, y por lo que debe
proporcionar una gran exactitud en la implantación del modelo virtual para poder ser
comparado con el ejecutado.
Octubre 2019
JORGE LUIS RAMOS HURTADO 92
Para ello, como se ha visto en el apartado (3.4.3 Modo Control de Calidad: componentes
principales en Unity), se ha desarrollado un aplicación la cual permite implantar el modelo
tridimensional de la estructura, en su disposición final, ofreciendo una gran capacidad de análisis
de las disposiciones geométricas.
Asimismo, tal y como se ha visto anteriormente se permite el traspaso y visualización de datos
BIM a la plataforma de Unity, lo que ofrece una gran capacidad de análisis a la hora de
inspeccionar las barras. Por ejemplo, en el caso de identificar una barra defectuosa, esta función
permitiría saber el suministrador y si se han realizado ensayos del material.
Lamentablemente, este método no se ha podido validar aún en obra. Por lo que no se ha podido
obtener unos resultados que corroboren estas mejoras. No obstante, en nivel de laboratorio se
deja en evidencia su gran precisión y potencial.
Con las pruebas realizadas, se puede confirmar que la comparación entre los dos componentes
genera un beneficio a la hora de visualizar si una armadura está correctamente en su sitio. Se
determina que es más sencillo una comparación visual que una comparación que se basa en la
consulta de los valores de distancia, y la posterior comprobación con un medidor.
La tarea de visualización de datos en los planos y comprobación puede llegar a ser muy
repetitiva. Es más, el ferrallado puede llegar a tener geometrías complejas que hagan de la
inspección de las armaduras una labor tediosa. Todo ello repercutiendo en la exhaustividad de
la inspección.
Debido a que la implantación de las armaduras con RA es un método que permite la visualización
de la correcta ejecución, se determina que su uso es perfectamente viable para la fase de
construcción del ferrallado. Es decir, que este método no sólo es válido para el control de
calidad, sino que también para las ayudas de construcción de armaduras. Esta posible aplicación
se describe como caso de estudio más adelante.
La implementación de la RA en la ejecución de las armaduras comporta que las diferencias que
pueda haber entre la ejecución realizada y la dictada por el proyecto sean mínimas. En el caso
que se consiguiese este hito, la comprobación de su ejecución seguiría siendo necesaria, pero
mediante un enfoque distinto.
Esta reflexión medita un cambio en la manera de ejecutar y controlar esta actividad. Es por ello
que a continuación, se describe la visión de este proceso al añadir el componente de la RA.
Octubre 2019
JORGE LUIS RAMOS HURTADO 93
4.1.3. Visión de la ejecución y control de las armaduras con RA
La detección de estos objetos mediante RA es precisa pero mejorable. Una mejora en este
aspecto, lo cual es perfectamente factible, comportaría la posibilidad de realizar un escaneo de
gran precisión y completo del entorno.
Se ve viable que cuando la tecnología sea suficientemente robusta se pueda llegar a escanear la
forma exacta de las armaduras. Esto conlleva que el escaneo pueda generar objetos con las
superficies detectadas. Siendo estos nuevos objetos creados una copia muy exacta de la
realidad. En ese caso, se obtienen dos tipos de modelos virtuales, el diseñado digitalmente, y el
creado a partir del modelo real.
Si se obtienen dos modelos virtuales que representan un mismo objeto pero que tienen orígenes
diferentes, se ve factible que su identidad geométrica pueda llegar a ser comprobada
informáticamente. Es decir, establecer la existencia de un control geométrico informatizado de
gran precisión, que permita deliberar si la ejecución de las armaduras se ha efectuado de manera
correcta o no.
Se conoce que las herramientas necesarias para este método existen en la actualidad. El
detonante de su creación, es que se investigue y se ejemplifique su robustez en el ámbito de la
ingeniería civil.
4.2. Modo Prevención de Riesgos Laborales (PRL)
Como se menciona en el apartado de diseño, este modo pretende ofrecer ayudas a la prevención
de riesgos laborales, con la visualización de avisos de alerta y recordatorios en materia de EPI’s.
Además, se contempla el rastreo de elementos móviles, como puede ser una hormigonera, y
así, proporcionar un mayor control de los elementos más peligrosos en una obra.
En la actualidad, los métodos de avisos de los riesgos en una obra se realizan mediante señales
luminosas y carteles pasivos. Sin embargo, estos avisos pueden pasar desapercibidos debido a
la concentración/pasividad del operario o por otras causas diversas. Es por ello, que este método
se basa en la detección de estos riegos de manera que el operario es directamente alertado
mediante un aviso del peligro y, así, que pueda actuar de manera anticipada.
Octubre 2019
JORGE LUIS RAMOS HURTADO 94
La aplicación realizada se aplica en 3 fases de ejecución:
- Excavación: en la que el principal peligro, es la presencia de la excavadora.
- Ferrallado: donde existe el peligro de caídas en altura dentro de la zanja.
- Hormigonado: donde el principal peligro es la hormigonera
Ilustración 80: Riesgo de colisión con la pala de la excavadora (izquierda). Y caída dentro de la zanja (derecha). Fuente: Yanet Caldes, Seguridad en excavaciones y Zanjas, SLIDESHARE.
Ilustración 81: Puntos ciegos de una hormigonera.
Mediante esta aplicación, la detección de los riesgos es efectiva y de precisión suficiente para
implementar su uso.
En este caso de estudio se puede determinar que en un futuro las gafas puedan ser un elemento
de uso habitual en obra, interconectadas entre sí y, por consiguiente, proporcionar una
herramienta que mejore la detección de riesgos en una obra de construcción.
Otro de los aspectos a destacar es que la detección de elementos móviles puede significar la
eliminación del problema de los puntos ciegos. Para ello, los elementos móviles, como la
hormigonera, deberían llevar también un sistema de aviso el cuál permita rastrear el
posicionamiento de un operario mediante las gafas. En cuanto al operario, también podría
percibir la existencia de una hormigonera en un punto ciego, y así evitar una colisión con ella.
Octubre 2019
JORGE LUIS RAMOS HURTADO 95
Esto supondría una reducción considerable de los atropellos en obra, que, por desgracia es un
evento que sucede. A continuación, se muestra una ilustración de la situación que supone la
detección de elementos móviles.
Ilustración 82: Detección real de la hormigonera mediante la función Box Collider, y posterior aviso. Fuente: propia
Esta experiencia se considera como una de las más robustas para su implementación en obras
de construcción. Esto es debido a que muestra soluciones contundentes a la problemática de la
alta accidentalidad en el sector.
Bien es sabido la insuficiente implicación de las empresas en materia de PRL. Su control en las
obras requiere de un esfuerzo añadido. El empleo de herramientas necesarias como la planteada
pueden facilitar la gestión de prevención, lo que es fundamental para una buena acogida de
nuevos métodos.
Es por ello que la visión de esta tecnología es que pueda adaptarse cómodamente a las funciones
diarias de un operario. En el momento que sea posible, los métodos pueden comportar un gran
cambio. Esto supone la localización constante de las personas que intervienen en una obra, lo
que daría lugar a una primera medida preventiva con la generación de alertas.
Otra de las visiones ideadas es que, al obtener una localización precisa de todos los integrantes
y de los objetos necesarios, se pueda llegar a generar una simulación real de obra, en la que no
solo se visualice el progreso de la infraestructura, sino que además se refleje el estado de los
Octubre 2019
JORGE LUIS RAMOS HURTADO 96
trabajadores. Esta simulación debería ser accesible por parte de los responsables se seguridad y
salud, que tomaran las medidas pertinentes en función de la situación. Este responsable deberá
tener la posibilidad de comunicarse a través de las gafas con el trabajador, y tener la facilidad
de emitir instrucciones o alertas en forma de paneles informativos.
Todo este manejo y visualización de la obra permitiría obtener un mayor control en las
actividades que se han de realizar. Obteniendo, además, una herramienta que permite el
conocimiento del modus operandi de los integrantes. Y en el caso de malas prácticas por parte
de los trabajadores, poder corroborar con justificaciones sólidas las decisiones tomadas por ellos
mismos.
4.3. Modo de Mantenimiento
El método de mantenimiento, pretende proporcionar un análisis inicial de cualquier fallo o
anomalía en una estructura. Este análisis tiene como objetivo descartar primeros posibles
motivos de fallo, pudiendo acceder a la visualización del proyecto as Built. Y así observar si la
anomalía es debida a una mala ejecución del armado, o no.
Ilustración 83: Grietas en una viga por origen desconocido. Fuente: Quora.com
Actualmente, este proceso se realiza mediante unos análisis de posibles fallos, para averiguar el
motivo y el origen de éstas. En el caso de no poder llegar a una conclusión firme, uno de los
posibles procedimientos a realizar es la extracción de catas. Estas muestras, permiten saber si la
ejecución y/o el diseño se han desempeñado de manera adecuada.
En el caso que se haya ejecutado conforme a un proyecto mal diseñado, la visualización de las
armaduras en RA permitiría detectar si la anomalía es debida a este suceso. Esta implementación
en RA permitiría identificar si la zona del fallo coincide exactamente con la zona mal diseñada,
siendo innecesaria la realización de la cata.
Octubre 2019
JORGE LUIS RAMOS HURTADO 97
Un posible caso sería la incorrecta realización de un proyecto, el cual se diseñan 4 barras
longitudinales de diámetro 15 mm en una viga. Se ejecuta tal y como la define proyecto y al cabo
de unos meses aparece una grieta en la viga.
Si el encargado del mantenimiento visualiza el modelo del AsBuilt en RA, podrá llegar a la
conclusión que esas vigas han sido mal diseñadas ya que eran necesarias un número o diámetro
mayor de barras, y realizará las operaciones de mantenimiento necesarias sin la necesidad de
catas.
4.4. Modo Ayudas a la Construcción de Armaduras (CAC)
Este caso consiste en la implementación de un nuevo método de trabajo para el montaje en
obra, o en taller, que tenga como herramienta de ayuda principal la RA. Para este caso de
estudio, se han de analizar los métodos actuales del montaje en obra de la ferralla.
4.4.1. Método actual
En la actualidad, en obra, los trabajos más habituales del ferrallado son:
- Descarga del material en zonas previamente asignadas.
- Manipulación y elaboración de la ferralla. Donde se da la forma asignada a las distintas
armaduras.
- Montaje de armaduras. En la disposición final o, premontado en zona asignada, por
secciones de elementos.
Este caso de estudio se enfoca en el montaje de las armaduras, tanto el montaje in situ, como
el premontaje en obra.
Hoy en día el montaje de las armaduras se realiza de manera manual. Es un proceso bastante
artesanal ya que se han de ir midiendo una a una las distancias entre las barras. Obteniendo
rendimientos bajos que son mejorables si se implementa un método más rápido en el que no se
precise de una medición manual y repetitiva por parte del operario.
Otro aspecto a tener en cuenta en elementos de ferralla complejos, es la correcta disposición
de las esperas, ya que es muy frecuente la mala de la disposición de ellas debido a una mala
ejecución de la ferralla. También errores en las distancias de solape suelen ser frecuentes en el
montaje, además de excesos y defectos en el recubrimiento por la mala colocación de la ferralla.
Octubre 2019
JORGE LUIS RAMOS HURTADO 98
Ilustración 84: Ejemplos de armadura compleja donde la importancia de una buena colocación es fundamental en cimentaciones. Fuente: (GeotechTips)
Ilustración 85: Desviación del pilar debido a insuficiencia de armadura de espera. Fuente: (ESCALESA)
Ilustración 86: Medición manual y repetitiva de la disposición de las armaduras. Fuente:
Octubre 2019
JORGE LUIS RAMOS HURTADO 99
Ilustración 87: Operario durante el montaje de la armadura.
4.4.2. Método con RA
Debido a las carencias mencionadas anteriormente, se propone la idea de un nuevo método que
permita una mayor eficiencia del montaje. Este método se propone mediante la elaboración de
una aplicación en RA mediante las Magic Leap One.
En esta app en RA, se implanta el modelo virtual de las armaduras en el lugar exacto donde van
situadas. De esta forma, el error de montaje es menor ya que la ejecución del proceso es más
exacta. También se muestra una leyenda del diámetro de barras para ayudar al operario a
determinar la barra correcta, algoritmos que permitan visualizar las mediciones, cálculos que
justifiquen la disposición del ferrallado, posibilidad de comprobaciones mediante RA, etc.
4.5. Análisis del proceso seguido
Para la elaboración de esta tesina, se ha tenido que adoptar gran cantidad de conocimientos
nuevos que han supuesto una dificultad añadida pero apasionante.
En el ámbito de la programación, se ha tenido que aprender desde el inicio el lenguaje C Sharp.
Este proceso ha sido largo pero muy enriquecedor ya que el hilo de las ordenes que sigue un
ordenador es distinto al humano, y esto ha hecho posible la ampliación de nuevas vías de
razonamiento.
También se ha tenido que aprender de nuevos softwares informáticos como Revit, Unity, ARCore
y Vuforia. Para la comprensión de su funcionamiento se ha tenido que seguir numerosas guías,
Octubre 2019
JORGE LUIS RAMOS HURTADO 100
ayudas y tutoriales ya que estos programas contienen una gran cantidad de nuevos conceptos
esenciales para su funcionamiento.
En cuanto a Magic Leap, ha sido un verdadero reto aprender a entender las funciones integradas
de este dispositivo. Existen variedad de ejemplos de aplicaciones, sin embargo, todavía hay poco
material para la ayuda al desarrollo de nuevas apps. Es por ello que ha habido fases de esta
tesina en las que se ha dedicado un gran tiempo en la comprensión de su funcionamiento. La
elaboración de funciones mediante códigos de programación ha sido relativamente sencilla una
vez se tienen los conceptos básicos. Pero su implementación para poder trabajar con Magic Leap
ha sido un reto mayúsculo. Cada nuevo desafío que se ha sabido sobrellevar, ha sido una fuente
de ánimo y de empuje a seguir investigando y aprendiendo.
En cuanto a la aplicabilidad de la RA en el campo de la ingeniería civil, es un aspecto que tiene
un gran camino por delante. Actualmente la revolución tecnológica también está teniendo
impacto en el sector, pero su implementación requiere de inversiones que, a veces, no es capaz
de asumir. La hoja de ruta, es la de seguir investigando acerca de su implementación y así acabar
perfeccionándola y evidenciar su uso al sector y mostrar sus grandes ventajas.
Como estudiante en el campo de la ingeniería civil, todo este proceso ha tenido grandes
repercusiones positivas, se han añadido nuevas capacidades que, sin duda, en el futuro
tecnológico en el que se encuentra el mundo actual, serán de gran ayuda. En cuanto, al
desarrollo de profesionales en este sector, en materia de uso tecnológico, se limita al
aprendizaje de uso de los programas informáticos, pero no de un conocimiento profundo de su
funcionamiento interno, quizás por qué no es el objetivo primordial. Pero desde mi punto de
vista, su conocimiento permitiría modificar internamente su desarrollo teniendo conocimientos
no solo en el campo de la informática, sino del ámbito de la ingeniería civil, lo cual puede tener
un componente añadido a la hora de desarrollo de nuevas aplicaciones informáticas.
Octubre 2019
JORGE LUIS RAMOS HURTADO 101
5. Conclusiones y futuras líneas de investigación
5.1. Conclusiones
En la realización de esta experiencia se concluye, de manera general, que la realidad aumentada
es una tecnología que ha de estar presente en el sector de la AIC, por su gran potencial y la gran
cantidad de aplicaciones posibles.
Además, se ha visto que es capaz de agilizar los procesos existentes en una obra de construcción,
pese a no poder realizar una prueba de campo.
En cuanto a la combinación de la metodología BIM con esta tecnología, se observa que supone
una gran ayuda, al poder acceder de forma instantánea y visual a ciertos datos BIM. Además,
las gafas de RA sirven como herramienta que fomenta la colaboración entre los distintos agentes
al poder realizar experiencias colaborativas interconectado varios dispositivos
simultáneamente.
Hay que añadir, que la implementación de esta tecnología en el campo de la prevención de
riesgos laborales, obtiene resultados muy favorables que, sin duda, en cuanto se implante esta
tecnología, será de una gran ayuda.
En cuanto al desarrollo de la aplicación, se ha visto una gran dificultad debido al
desconocimiento de Unity y sobre todo de las Magic Leap One. Situación que ha llevado a la
elaboración completa de la app un tiempo de 3 meses. Sin embargo, con las bases que se han
dado y con experiencia en Unity, desarrollar una aplicación similar podría tomar unas 1 o 2
semanas.
El uso de la aplicación desarrollada, va destinada a todo al personal que tenga conocimientos
básicos en construcción. En el caso del control de las armaduras, iría orientado hacia los
responsables de control de calidad y de los operarios que se encargan del montaje. En cuanto al
modo de prevención de riesgos laborales, se dirige a todos los trabajadores en colaboración con
el coordinador de seguridad y salud.
La incorporación de esta tecnología en el flujo de trabajo tendría una repercusión positiva, ya
que se obtendrían procesos más eficientes que reducirían los tiempos de ejecución. La RA sería
capaz de ofrecer una repercusión económica positiva gracias a la rapidez de las nuevas
metodologías.
Octubre 2019
JORGE LUIS RAMOS HURTADO 102
Se determina que, para la creación de este tipo de aplicaciones, se necesita de potentes
dispositivos electrónicos que permitan un desarrollo ágil. Un ordenador con especificaciones
determinadas sería conveniente para la creación en Unity, y unas gafas de realidad aumentada
como las Magic Leap o HoloLens serían los recursos necesarios para esta experiencia.
En cuanto al aprendizaje es necesario obtener conceptos de programación e ingenieriles ya que
no solo se ha de crear la aplicación, sino que también se ha de idearla para determinar las
mejores opciones.
Se concluye también, que la tecnología ha de seguir avanzando en el desarrollo de los
componentes. Haciendo que estos sean más ligeros y aptos para su uso diario en obra. Este
proceso es cuestión de esperar ya que hoy en día la tecnología avanza a pasos agigantados.
Por último, se concluye que la elaboración de esta tesina, ha sido provechosa y enriquecedora
ya que ha evidenciado las mejoras que conlleva la implementación de la RA en sector de la AIC.
Su implementación es cuestión de tiempo, pero para cuando llegue el momento, las aplicaciones
han de estar listas para que el sector se convenza de toda la capacidad que posee.
Octubre 2019
JORGE LUIS RAMOS HURTADO 103
5.2. Futuras líneas de investigación
Las futuras líneas de investigación han de seguir buscando la complementación de la
metodología BIM con la realidad mixta.
Además, se propone la creación de visualización de los datos BIM en cualquiera de las fases de
una obra de construcción. Investigar acerca de su exportación y analizar qué datos son
relevantes en cada fase puede ser el componente diferencial para la razón de uso de esta
tecnología.
También se ve interesante la visualización de los flujos de trabajo mediante el modelo virtual.
Ya que esta visualización puede ayudar a comprender en cómo mejorar la optimización de las
actividades existentes. Fomentar el trabajo colaborativo será esencial para que la visualización
de este flujo, pueda suponer un avance.
Otra de las líneas a seguir, es poder implantar estas aplicaciones en obra, ya que solo así, se
podrá convencer al sector de la necesidad de su uso.
Octubre 2019
JORGE LUIS RAMOS HURTADO 104
Bibliografía
[1] Beat, Venture. Venture Beat. [En línea] [Citado el: 16 de Setiembre de 2019.] https://venturebeat.com/2018/07/31/magic-leap-ones-field-of-view-leak-signals-another-ar-disappointment/.
[2] Chavarri de Lemos, Miguel Gerardo. 2018. La realidad aumentada como medio de visualización del modelo BIM en la construcción. Departamento de Ingeniería Civil y Ambiental, UPC & CIMNE. Barcelona : s.n., 2018. Tesis de Máster.
[3] Claure Soliz, Ruth Fabiola. Febrero 2019. Desarrollo de aplicaciones inmersivas de Realidad Virtual y Aumentada para ensayos de estructuras de acero inoxidable. Departamento de Ingeniería Estructural y de la Construcción. s.l. : UPC, Febrero 2019. TFM.
[4] Create First Unity App, Magic Leap. Creator Portal - Learn - Guides. [En línea] [Citado el: 12 de Junio de 2019.] https://creator.magicleap.com/learn/guides/gsg-create-your-first-unity-app.
[5] Creating Unity Projects, Magic Leap. [En línea] [Citado el: 2 de Setiembre de 2019.] https://creator.magicleap.com/learn/guides/unity-project-sdk-20.
[6] deCoss Henning, Oscar. 2017. Realidad Aumentada Aplicada en la Construcción. Departamento de Ingeniería Civil y Ambiental, UPC & CIMNE. Barcelona : s.n., 2017. Tesis de Máster.
[7] ESCALESA. ESCALESA. [En línea] [Citado el: 15 de Setiembre de 2019.] https://escalesa.com/2013/02/06/armadura-de-espera-en-pilares-insuficiente-errores-de-ejecucion/.
[8] Fomento, Ministerio de. 2008. EHE-08 Instrucción de hormigón estructural. Madrid : Centro de Publicaciones Secretaría General Técnica Ministerio de Fomento, 2008.
[9] GeotechTips. [En línea] [Citado el: 16 de Setiembre de 2019.] https://twitter.com/geotechtips/status/774246298853793792.
[10] Google. ARCore - developers. [En línea] https://developers.google.com/ar.
[11] IFIXIT. iFixIt - Guía - Desmontaje. [En línea] [Citado el: 16 de Setiembre de 2019.] https://es.ifixit.com/Gu%C3%ADa/Desmontaje+del+Magic+Leap+One/112245.
[12] Jeniffer Andrea, Nogales Irahola. 2018. La digitalitzación en la fase de ejecución de proyectos constructivos. Departamento de Ingeniería Civil y Ambiental, CIMNE & UPC. Barcelona : s.n., 2018. Tesis de Máster.
[13] Leap, Magic. Creator Portal. [En línea] https://creator.magicleap.com/home.
[14] Mercé Gotsens, Raimon. 2019. Documentación Magic Leap. CIMNE. Barcelona : s.n., 2019.
[15] Microsoft. 2018. developers.microsoft.com. Microsoft - Mixed reality. [En línea] Microsoft, 2018. [Citado el: 29 de Mayo de 2019.] https://docs.microsoft.com/es-es/windows/mixed-reality/.
[16] —. Holo Lens. [En línea]
[17] Milgram, P. , & Kishino, F. 1994. A Taxonomy of Mixed Reality Visual Displays. s.l. : IEICE Transactions on Information Systems, 1994. 77 (12).
Octubre 2019
JORGE LUIS RAMOS HURTADO 105
[18] Navarro, Marc Arnau. 2018. Virtual Reality to enhance safety and health in construction. Departamento de Ingeniería Civil y Ambiental, UPC & CIMNE. Barcelona : s.n., 2018. Tesina de Grado.
[19] Package Manager, Magic Leap. Magic Leap Package Manager download. [En línea] [Citado el: 2 de Setiembre de 2019.] https://creator.magicleap.com/downloads/lumin-sdk/overview.
[20] Unity. Learn. [En línea] https://unity.com/learn.
[21] VERITY. Topconpositioning. [En línea] [Citado el: 20 de Septiembre de 2019.] https://www.topconpositioning.com/sites/default/files/product_files/2018_verity_brochure_v1.pdf.
[22] Vuforia. Develop Portal. [En línea] https://developer.vuforia.com/.
Octubre 2019
JORGE LUIS RAMOS HURTADO 106
Anejos
Configuración inicial en Unity para la creación de una App en Magic Leap
1. Abrir Unity Hub.
2. Seleccionar Projects y clicar New.
Ilustración 88: Paso 1: Creación de un nuevo proyecto en Unity.
3. Especificar la versión de Unity para el proyecto. Seguidamente, aparece la ventana de Create
a new Project with Unity <version>.
4. Especifica el Template: 3D, el Project Name (nombre del proyecto) y la Location (ubicación),
y clicar Create (crear).
Octubre 2019
JORGE LUIS RAMOS HURTADO 107
Ilustración 89: Paso 2: Selección del tipo de proyecto en Unity.
Se abre el editor de Unity.
5. Instalar el Unity XR Legacy Input Helpers:
1. En el menú principal del editor de Unity, ir a Window > Package Manager. Se abre el
diálogo del Package.
2. Desde el listado de los Packages, seleccionar XR Legacy Input Helpers.
3. Clicar Install.
Octubre 2019
JORGE LUIS RAMOS HURTADO 108
Ilustración 90: Paso 3: Instalación de XR Legacy Input Helpers
4. Cerrar el cuadro de diálogo del Package.
6. Ubicar el Lumin SDK:
1. Id a Edit > Preferences. El cuadro de diálogo de Preferences se abre.
2. Dentro del cuadro diálogo, clicar a External Tools.
3. En la parte baja del cuadro de diálogo, en el apartado de Lumin SDK, clicar Browse, y
seguidamente seleccionamos el Lumin SDK con su versión, descargado previamente. La
ubicación de este archivo se encuentra en la carpeta de MagicLeap/mlsdk/v0.21.0 (por
defecto).
Octubre 2019
JORGE LUIS RAMOS HURTADO 109
Ilustración 91: Paso 4: Ubicación del Lumin SDK dentro de Unity.
4. Cerrad el cuadro de diálogo de Preferences.
7. Cambiar la plataforma a Lumin, en Build Settings:
1. Id a File > Build Settings.
2. En la lista de plataformas, escoged Lumin y seguidamente clicar Switch Platform.
Octubre 2019
JORGE LUIS RAMOS HURTADO 110
Ilustración 92: Paso 5: Cambio de plataforma a Lumin desde Build Settings.
3. Cerrad el cuadro de diálogo Build Settings.
8. Configuración para la plataforma Lumin en Player Settings:
1. Id a Edit > Project Settings.
2. Seleccionad Player.
3. Clicad en el icono de Magic Leap – Lumin.
4. En el apartado Other Settings, cambiad el Color Space a Linear.
Octubre 2019
JORGE LUIS RAMOS HURTADO 111
Ilustración 93: Paso 6: Configuración en la plataforma Lumin dentro de Player Settings.
5. En el apartado XR Settings, seleccionad la casilla de verificación de Virtual Reality
Supported, y después cambiar el Stereo Rendering Mode a Single Pass Instanced.
Octubre 2019
JORGE LUIS RAMOS HURTADO 112
Ilustración 94: Paso 7: Cambios de configuración en el apartado XR Settings.
6. Ya se puede cerrar el Project Settings.
9. Importar el Magic Leap Unity Package, descargado previamente (véase el apartado: 3.2.1
Descarga del Magic Leap Package Manager.)
1. Id a Assets > Import Package, y acto seguido clicad Custom Package.
2. En el cuadro de diálogo del Import Package, buscad el archivo
MagicLeap.unitypackage ubicado por defecto dentro de la carpeta
MagicLeap/tools/unity/v0.21.0.
3. En el cuadro de diálogo Import Unity Package, clicad All y seguidamente clicad
Import.
Octubre 2019
JORGE LUIS RAMOS HURTADO 113
Ilustración 95: Paso 8: Importación del Magic Leap Unity Package.
10. Para la creación de un nuevo proyecto, es indispensable utilizar como cámara principal Main
Camera, la proporcionada dentro del Unity Package:
1. En la ventana de Hierarchy, se elimina la Main Camera dentro de la Sample Scene.
2. Selección de la ventana del proyecto e id a Assets > MagicLeap > Core > Prefabs, y
después arrastrar la Main Camera dentro del Sample Scene en la ventana Hierarchy.
Octubre 2019
JORGE LUIS RAMOS HURTADO 114
Ilustración 96: Paso 9: Configuración de la cámara principal del proyecto.
11. Copia del archivo manifest.xml desde la carpeta de Examples a los Assets de tu proyecto.
1. En la ventana del proyecto id a Assets > Magic Leap > Examples > Plugins > Lumin.
2. Clic derecho en manifest y después clicad a Show in Explorer.
Octubre 2019
JORGE LUIS RAMOS HURTADO 115
Ilustración 97: Paso 10: Copia del archivo manifest.xml
3. Utilizando el Windows Explorer, copiad el archivo manifest.xml en tu proyecto de
Unity en la carpeta Assets/Plugins/Lumin. Si esta carpeta no existe, has de crearla.
Estos son los pasos que realizar para desarrollar aplicaciones de Magic Leap en Unity.
Octubre 2019
JORGE LUIS RAMOS HURTADO 116
RayCastVisual
using UnityEngine;
using UnityEngine.XR.MagicLeap;
using UnityEngine.UI;
public class RaycastVisual : MonoBehaviour
{
#region Variables
//Se declaran las variables
[SerializeField, Tooltip("El objeto referente de la clase que da los resultados")]
private BaseRaycast _raycast = null;
private bool _hit = false;
private Renderer _render = null;
public MLPersistentBehavior persistentBehavior;
public GameObject objToPlace = null;
public Text helpText;
public GameObject actarm, desarm, placementbutton, crossImage;
private MLInputController _controller;
private GameObject _camera;
private float secondsCount;
private int lastPressed = 0;
private Vector3 angle;
private Vector3 rotangle;
private Vector3 firstpoint, p1;
private Vector3 secondpoint, p2;
#endregion
#region Public Properties
Octubre 2019
JORGE LUIS RAMOS HURTADO 117
public bool Hit
{
get
{
return _hit;
}
}
#endregion
#region Unity Methods
private void Start()
{
_camera = GameObject.Find("Main Camera");
MLInput.Start();
_controller = MLInput.GetController(MLInput.Hand.Left);
helpText.text = "Con las gafas, apunta al origen de la estructura que contiene la imagen siguiente. Seguidamente, pulsa el 'Bumper'";
}
void Awake()
{
// Check if the Layer is set to Default and disable any child colliders.
if (gameObject.layer == LayerMask.NameToLayer("Default"))
{
Collider[] colliders = GetComponentsInChildren<Collider>();
// Disable any active colliders.
foreach (Collider collider in colliders)
{
collider.enabled = false;
}
// Warn user if any colliders had to be disabled.
if (colliders.Length > 0)
{
Debug.LogWarning("Colliders have been disabled on this RaycastVisualizer.\nIf this is undesirable, change this object's layer to something other than Default.");
Octubre 2019
JORGE LUIS RAMOS HURTADO 118
}
}
if (_raycast == null)
{
Debug.LogError("Error: RaycastVisualizer._raycast is not set, disabling script.");
enabled = false;
return;
}
_render = GetComponent<Renderer>();
if (_render == null)
{
Debug.LogError("Error: RaycastVisualizer._render is not set, disabling script.");
enabled = false;
return;
}
}
private void OnDestroy()
{
MLInput.Stop();
}
#endregion
#region Event Handlers
public void OnRaycastHit(MLWorldRays.MLWorldRaycastResultState state, RaycastHit result, float confidence)
{
if (state != MLWorldRays.MLWorldRaycastResultState.RequestFailed && state != MLWorldRays.MLWorldRaycastResultState.NoCollision)
{
// Este código, actualiza la poisicón del puntero, igualando la posición al punto detectado, direccionándolo perpendicularmente a la superfície de contacto.
transform.position = result.point;
transform.LookAt(result.normal + result.point);
transform.localScale = new Vector3 (0.5f , 0.5f, 0.5f);
Octubre 2019
JORGE LUIS RAMOS HURTADO 119
//se crea un contador
secondsCount += Time.deltaTime;
// Si el botón es presionado por primiera vez.
if (_controller.IsBumperDown == true && lastPressed == 0)
{
//El texto de ayuda cambia para proprocionar las instrucciones.
Debug.Log("Objeto posicionado");
helpText.text = "Selecciona el segundo punto de orientación en obra, también con la misma señal en verde.";
//Resultado del punto.
firstpoint = result.point;
Debug.Log("firstpoint" + firstpoint);
lastPressed = 1;
//Se transforma la posición del modelo tridimensional al punto detectado en el entorno real.
objToPlace.transform.position = firstpoint;
// Se deja el temporizador a zero.
secondsCount = 0;
Debug.Log(secondsCount);
//crossImage.GetComponent<Image>().defaultMaterial.color.g;
}
//Si el botón es presionado por segunda vez, y se hace 2 segundos después de presionar el primero.
if (_controller.IsBumperDown == true && lastPressed == 1 && secondsCount >= 2)
{
Debug.Log("Segundo Presionado");
Debug.Log("firstpoint" + firstpoint);
//Detección del segundo punto
secondpoint = result.point;
//Anulación del componente y en los vectores posición de los dos puntos.
secondpoint.y = 0;
firstpoint.y = 0;
Debug.Log("secondpoint" + secondpoint);
//Angulo de rotación del vector que une los dos puntos. Al no tener componente y, este vector direccional se encuentra en el plano xy.
var targetRot = Quaternion.LookRotation(firstpoint - secondpoint);
Octubre 2019
JORGE LUIS RAMOS HURTADO 120
Debug.Log("Angulo rotación:" + targetRot);
//Se iguala la rotación en xy de los dos puntos, con la rotación del modelo.
objToPlace.transform.rotation = targetRot;
//Se modifica el texto y se activan los botones de activación y descativación de armaduras.
helpText.text = "Modelo implantado correctamente. Para comenzar con la inspección, haga uso del menú.";
actarm.SetActive(true);
desarm.SetActive(true);
placementbutton.SetActive(false);
lastPressed = 2;
Debug.Log("Segundo Presionado");
}
//Una vez implantado el modelo se entra en este apartado.
if (lastPressed == 2)
{
//Se activa la visualización del modelo.
objToPlace.SetActive(true);
//Se actualiza la posición en el entorno para su permanente visualización.
persistentBehavior.UpdateBinding();
lastPressed = 3;
}
_hit = true;
}
}
#endregion
}
Octubre 2019
JORGE LUIS RAMOS HURTADO 121
Menu Handler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MenuHandler : MonoBehaviour
{
#region Variables
//Se declaran las variables públicas a designar.
public Button option1, option2, option3, option4;
public GameObject initialPanel;
public Text header, instruction;
public GameObject Mode1, Mode2, Mode3, Mode4;
#endregion
#region Unity Methods
void Start()
{
//Antes de iniciar, se ha de asegurar, que todos los modos estan deshabilitados.
Mode1.SetActive(false);
Mode2.SetActive(false);
Mode3.SetActive(false);
Mode4.SetActive(false);
//Llamadas a las funciones que realiza cada botón.
option1.onClick.AddListener(GetMode1);
option2.onClick.AddListener(GetMode2);
option3.onClick.AddListener(GetMode3);
option4.onClick.AddListener(GetMode4);
}
#endregion
#region Event Handlers
Octubre 2019
JORGE LUIS RAMOS HURTADO 122
//Funciones del modo1
void GetMode1()
{
Debug.Log("dentro");
//Se desactiva el panel actual y se activa el panel de instrucciones iniciales.
Mode1.SetActive(true);
initialPanel.SetActive(true);
//Se designa el título y el texto de cada modo.
header.text = "Modo Control de Calidad";
instruction.text = "El modo Control de Calidad, permite al usuario implantar " +
"el modelo Tridimensional de la estructura, y realizar una comparativa " +
"de las armaduras ya colocadas con las dises en proyecto. \n" +
"Para iniciar la implantación del modelo en el espacio real, presione entendido";
//Mensaje de comprobación.
Debug.Log("Mode 1 activated");
//Se desactiva el menu principal
gameObject.SetActive(false);
}
//En el modo 2 se realizan las misma funciones que en el modo 1.
void GetMode2()
{
Mode2.SetActive(true);
initialPanel.SetActive(true);
header.text = "Modo de Prevención de Riesgos Laborales";
instruction.text = "El modo PRL permite al usuario preveer los riesgos " +
"mediante ayudas incorporadas dentro de la experiencia. Por favor al " +
"seleccionar entendido, seguidamente indique su código de trabajador.";
Debug.Log("Mode2 activated");
Octubre 2019
JORGE LUIS RAMOS HURTADO 123
gameObject.SetActive(false);
}
//Se describe el modo 3 pese ano haber creado la aplicación.
void GetMode3()
{
Mode3.SetActive(true);
initialPanel.SetActive(true);
header.text = "Modo de Mantenimiento";
instruction.text = "El modo de Mantenimienot, permite implantar un modelo ya " +
"construido que ha fallado o deteriorado por causas desconocidas. La " +
"visualización del interior permite detectar errores de proyecto, y así," +
" evitar la realización de una cata";
Debug.Log("Mode3 activated");
gameObject.SetActive(false);
}
//Se describe la ayuda acerca de estas aplicaciones en RA.
void GetMode4()
{
Mode4.SetActive(true);
initialPanel.SetActive(true);
header.text = "Ayuda";
instruction.text = "Esta aplicación está desarrollada para ayudar y optimizar" +
"procesos en distintos entornos de obra" + "\n Los distintos entornos " +
"de esta experiencia son los siguintes: \n -Modo Control de Calidad \n" +
"-Modo de Prevención de Riesgos Laborales \n -Modo de mantenimiento";
Debug.Log("Mode4 activated");
gameObject.SetActive(false);
}
#endregion
}
Octubre 2019
JORGE LUIS RAMOS HURTADO 124
Initial Instructions Panel Handler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class InitialIntructionsPanel_Handler : MonoBehaviour
{
#region Variables
//Se declaran las variables.
public Button entendidobutton;
public GameObject mode1, mode2, mode3, mode4, m1OptionsPanel, m2OptionsPanel, helpText;
public Text header, coreText;
public Button afirmativeBttn;
private int lastPressed = 0;
#endregion
#region Unity Methods
void Start()
{
//En el caso que uno de los modos esté activado, en cuanto se clique
//el botón entendido, se procede al inciio de las aplicaciones.
Debug.Log("InitialInstrPanel_Handler has started");
if (mode1.activeSelf == true)
{
entendidobutton.onClick.AddListener(TaskOnClick1);
}
if (mode2.activeSelf == true)
{
entendidobutton.onClick.AddListener(TaskOnClick2);
}
if (mode3.activeSelf == true)
{
entendidobutton.onClick.AddListener(TaskOnClick3);
}
if (mode4.activeSelf == true)
{
Octubre 2019
JORGE LUIS RAMOS HURTADO 125
entendidobutton.onClick.AddListener(TaskOnClick4);
}
}
//Se inicia el modo1
void TaskOnClick1()
{
//Se activa el panel de texto de ayuda dentro la app.
helpText.SetActive(true);
//Se activa el menú interno de las funciones.
m1OptionsPanel.SetActive(true);
//Se desactiva el panel de instrucciones.
gameObject.SetActive(false);
Debug.Log("Button entendido apretado");
}
void TaskOnClick2()
{
//Se activa el menú interno del modo 2.
m2OptionsPanel.SetActive(true);
//Se desactiva el panel de instrucciones.
gameObject.SetActive(false);
Debug.Log("Button entendido apretado");
}
void TaskOnClick3()
{
//Se deja el mensaje que esté modo no está desarrollado.
Debug.Log("Modo no desarrollado");
}
public void TaskOnClick4()
{
//Se inicia elc ontador y en cunato supera los 2 segundos, la scena se reinicia.
var counter = Time.deltaTime;
if (counter > 2)
{
SceneManager.LoadScene("TFG-CIMNE&UPC");
}
}
#endregion
}
Octubre 2019
JORGE LUIS RAMOS HURTADO 126
Mode 2 Options Menu Handler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class M2OptionsMenu_Handler : MonoBehaviour
{
//Se declaran las variables
public GameObject initialPanel, constructionElements;
public Text header, coreText;
public Button excavationBtn, reinforcementBtn, concreteBtn, okButton;
public Text buttonText;
private int lastPressed = 0;
//En cuanto de selecciona la fase, llama a la función de las preguntas inicailes.
void Start()
{
excavationBtn.onClick.AddListener(QuestionsHandler);
reinforcementBtn.onClick.AddListener(QuestionsHandler);
concreteBtn.onClick.AddListener(QuestionsHandler);
}
public void QuestionsHandler()
{
//Se realizan las instrucciones iniciales a las preguntas.
initialPanel.SetActive(true);
header.text = "Preguntas Previas";
coreText.text = "Antes de acceder a obra, es necesario comprobar que se cumple" +
" con los criterios descritos en el PSS en materia de EPI's. A continuación," +
" se le reailzaran diversas preguntas acerca de ello; Una vez tenga el EPI " +
"puesto, presione entendido.";
okButton.onClick.AddListener(Questions2);
gameObject.SetActive(false);
}
Octubre 2019
JORGE LUIS RAMOS HURTADO 127
//Se realizan las preguntas
void Questions2()
{
if (lastPressed == 0)
{
coreText.text = "¿Lleva puesto el casco de seguridad?";
lastPressed = 1;
}
if (lastPressed == 1)
{
coreText.text = "¿Lleva puesto el mono de trabajo y el chaleco reflectante?";
buttonText.text = "Comenzar";
okButton.onClick.AddListener(PlaceObjects);
}
}
//Se activan los objetos requeridos.
void PlaceObjects()
{
constructionElements.SetActive(true);
gameObject.SetActive(false);
}
}
Octubre 2019
JORGE LUIS RAMOS HURTADO 128
Mixing Handler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//Script que realiza los movimientos del camión cuba.
public class ConcreteMixerhandler : MonoBehaviour
{
// Se declaran los componentes del camión.
public GameObject shiftingA, shiftingB, mixingDrum;
public float speedRotation = 15f;
public float angleToRotate = -30f;
//Función que realiza los giros.
void Update()
{
//Rota los grados indicados el brazo mecanico.
transform.rotation = Quaternion.Slerp(transform.transform.rotation, Quaternion.Euler(angleToRotate+5, 0, 0), Time.deltaTime * speedRotation);
//Rota los grados indicados el segundo brazo mecánico.
shiftingB.transform.localRotation = Quaternion.Slerp(shiftingB.transform.localRotation, Quaternion.Euler(angleToRotate - 60, 0, 0), Time.deltaTime * speedRotation/3);
//Giro constante del tambor de mezcla.
mixingDrum.transform.Rotate(Vector3.forward * Time.deltaTime * 30);
} }
Recommended