SEGURIDAD EN OBRAPosicionamiento
4.4 Descripción general de los subsistemas básicos de una plataforma de Realidad Aumentada Móvil
4.4.1 Análisis de Arquitecturas de Realidad Aumentada
El análisis de la arquitectura de algunos de los principales sistemas de realidad aumentada desarrollados hasta el momento representa una fuente importante para, confirmar la validez del enfoque seguido en la identificación a través de los escenarios, así como la generalización de dichos resultados y la adaptación de los mismos con conclusiones de la experiencia de la implementación de los sistemas.
Este análisis se basa principalmente en dos fuentes de datos. Una primera teórica donde se toma como referencia los resultados del estudio presentado en [125], y una segunda más práctica obtenida de la experiencia de participación en el desarrollo de arquitecturas de realidad aumentada como AMIRE [41], TARVITEK[126] o RASMAP[22].
El análisis de las arquitecturas tomado como complemento teórico presenta un modelo de referencia de arquitectura compuesto por seis subsistemas, cada uno de ellos dividido a su vez en varios componentes. Este análisis pone de manifiesto la heterogeneidad de los sistemas en su concepción y su enfoque, a pesar de lo cual, la comparativa de los sistemas resultantes puede adaptarse sin demasiadas complicaciones al modelo de referencia desarrollado en el estudio [125]. Los subsistemas utilizados en el modelo de referencia son los siguientes:
¾ Subsistema de Aplicación: Se trata del subsistema que hace referencia a la lógica específica de cada aplicación. Este subsistema contiene la información relativa al código específico de la aplicación, los datos de configuración y la información de los contenidos.
¾ Subsistema de Posicionamiento: Es uno de los subsistemas clave y específico de cualquier sistema de realidad aumentada. Se encarga del cálculo de la posición y orientación del usuario de forma continua. Se puede desarrollar en base a diferentes tecnologías y varios de los otros subsistemas requieren de su información para realizar sus tareas.
¾ Subsistema de Control: Recoge y procesa la información de interacción del usuario con el sistema. Existen varios modos de introducción de información que realiza el usuario en el sistema (dispositivos periféricos, voz, selección táctil, etc.). Esta información se transmite a otros subsistemas. La interacción entre el usuario y el sistema puede realizarse también a través de otros subsistemas (p. ej: el de posicionamiento).
¾ Subsistema de Presentación: Es el subsistema de salida de información al usuario. La información proporcionada al usuario puede ser de diferentes tipos (visual, auditiva, táctil, etc.). En un sistema de realidad aumentada, la información visual en general y los gráficos 3D en particular es la más importante. La visualización 3D se basa generalmente en grafos de escena.
¾ Subsistema de Contexto: Este subsistema es el encargado de recoger los datos de las diferentes fuentes de información de contexto del sistema y del usuario. Sensores integrados en el sistema u otros a los que se conecta de forma inalámbrica son las fuentes de datos de este subsistema.
¾ Subsistema de Modelo del Entorno: Este subsistema almacena y proporciona información al usuario sobre el mundo real. Un modelo de entorno consiste en escenas, colecciones de objetos virtuales, información de características para tracking o representaciones de objetos del mundo real.
Es conveniente resaltar en este punto que este estudio tomado como referencia se centra en la arquitectura software de los sistemas de realidad aumentada, no considerando en ningún caso los componentes o aspectos hardware de dichos sistemas. En todo caso, el número y la descripción de los subsistemas se asemeja bastante a los identificados en los diferentes escenarios descritos en el apartado anterior.
La experiencia práctica en el desarrollo de arquitecturas nos lleva al proyecto AMIRE [41]. Dentro de este proyecto se implementó una plataforma de desarrollo y ejecución de aplicaciones de realidad aumentada basada en una arquitectura de componentes. La aproximación al desarrollo de software basada en componentes facilita la reutilización y customización de los mismos para la generación y edición de aplicaciones. Esta aproximación posibilita la separación del conocimiento de la tecnología y el conocimiento del dominio necesarios para el desarrollo de aplicaciones basadas en tecnologías de realidad aumentada.
Dentro de este proyecto se han desarrollado más de 50 componentes diferentes, esta cifra se ha extendido por desarrolladores externos al proyecto. Se trata de componentes con funcionalidades muy específicas y que pueden combinarse para generar aplicaciones u otros componentes con funcionalidad más compleja. En AMIRE la clasificación de los componentes se hace en base a dos variables, dominio y funcionalidad. Los componentes de dominio resultan de la combinación de componentes genéricos adaptados a un dominio específico. Por lo que respecta a la clasificación en base a la funcionalidad, los grupos resultantes son:
¾ Presentación 2D ¾ Tracking
¾ Gráficos 3D
¾ Otros: En este grupo se encuentran los componentes que no pertenecen a los grupos anteriores, por ejemplo: operaciones lógicas y matemáticas, perfil de usuario, audio, etc.
Estos son los tipos de componentes accesibles al usuario encargado de desarrollar la aplicación final. El framework posee además otros componentes básicos que permiten la ejecución de las aplicaciones de realidad aumentada. La captura de información visual del entorno real se gestiona desde el componente Imagen de Vídeo del framework de ejecución. La persistencia de la aplicación se consigue asegurando la persistencia de los datos de los componentes. En este proyecto se desarrolla un mecanismo, de exportación e importación de los datos, basado en XML.
El concepto componente resulta aplicable en arquitecturas de software, el proyecto AMIRE centraba sus desarrollos en los componentes software de la plataforma. Los componentes software identificados en este proyecto tienen su correspondencia con los elementos software de los subsistemas de una plataforma de realidad aumentada.
El proyecto TARVITEK [126] desarrolla una arquitectura basada en AMIRE. La plataforma RASMAP [22] se desarrolla sobre la base de los subsistemas identificados en este capítulo. La experiencia de implementación de un prototipo de plataforma basada en estos subsistemas ayuda a demostrar la viabilidad de la solución planteada. De la experiencia adquirida en estos desarrollos se considera relevante y especialmente apropiada la identificación de un subsistema específico de presentación de contenidos 3D, entendiendo como tal los contenidos que se presentan en el entorno tridimensional, tanto en posición como orientación, frente a los contenidos presentados en una posición fija sobre la pantalla de visualización. Este subsistema debe ser independiente del subsistema de presentación de otros tipos de contenidos en 2D. Esta diferenciación es importante especialmente en aplicaciones de realidad aumentada ya que:
¾ Existen librerías diferentes y específicas para la visualización de información en 3D y en 2D. Para la visualización de contenidos 3D se requiere algoritmos, metodologías y librerías de computación gráfica.
¾ El principal valor diferenciador de una aplicación de realidad aumentada está en la contextualización en posición y orientación de la información presentada.