UNIVERSIDAD DE CASTILLA-LA MANCHA
ESCUELA SUPERIOR DE INFORMÁTICA
INGENIERÍA
EN INFORMÁTICA
PROYECTO FIN DE CARRERA
MARS: Sistema de Tracking Híbrido Modular para Realidad
Aumentada
Sergio Pérez Camacho
Febrero, 2011
UNIVERSIDAD DE CASTILLA-LA MANCHA
ESCUELA SUPERIOR DE INFORMÁTICA
Tecnologías y Sistemas de Información
PROYECTO FIN DE CARRERA
MARS: Sistema de Tracking Híbrido Modular para Realidad
Aumentada
Autor: Sergio Pérez Camacho
Director: Carlos González Morcillo
Febrero, 2011
Sergio Pérez Camacho
[email protected]
E-mail:
Teléfono: (+34) 902204100 - Ext. 3746
Web site: http://oreto.esi.uclm.es
c 2011 Sergio Pérez Camacho
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no Front-
Cover Texts, and no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
Se permite la copia, distribución y/o modificación de este documento bajo los térmi-
nos de la Licencia de Documentación Libre GNU, versión 1.3 o cualquier versión
posterior publicada por la Free Software Foundation; sin secciones invariantes. Una
copia de esta licencia esta incluida en el apéndice titulado «GNU Free Documenta-
tion License».
Muchos de los nombres usados por las compañías para diferenciar sus productos
y servicios son reclamados como marcas registradas. Allí donde estos nombres
aparezcan en este documento, y cuando el autor haya sido informado de esas marcas
registradas, los nombres estarán escritos en mayúsculas o como nombres propios.
TRIBUNAL:
Presidente:
Vocal 1:
Vocal 2:
Secretario:
FECHA DE DEFENSA:
CALIFICACIÓN:
PRESIDENTE
VOCAL 1
VOCAL 2
SECRETARIO
Fdo.:
Fdo.:
Fdo.:
Fdo.:
A mis padres y Egl˙e, mi realidad aumentada
Resumen
La Realidad Aumentada (RA) es un campo en auge tanto a nivel de investigación
como de explotación comercial. La diversidad de los dispositivos hardware y los
diferentes métodos de tracking utilizados en RA revelan un problema de tratamiento
de la heterogeneidad. Las arquitecturas y frameworks existentes para el desarrollo de
aplicaciones de RA habitualmente ofrecen un soporte limitado a cierto tipo de dispositivos
y están enfocados a determinados métodos de tracking. Además, no son libres, lo que
imposibilita su ampliación o adaptación para ciertos ámbitos de aplicación, como la
combinación de varios métodos de tracking, el filtrado o el uso de diferentes fuentes de
vídeo.
Como solución a este problema y con motivo de facilitar la creación de aplicaciones
de RA de manera rápida, se propone el presente proyecto fin de carrera: MARS, una
arquitectura modular, híbrida y libre, que homogeneiza el acceso a los dispositivos de vídeo
y proporciona interfaces genéricos y homogéneos para la creación de filtros y métodos de
tracking.
MARS implementa un sistema de representación de objetos sintéticos 3-D y de interfaz
de usuario y suministra un conjunto de clases matemáticas para realizar transformaciones de
cuerpo rígido en el espacio tridimensional. Igualmente facilita la reproducción de sonidos y
de voz sintetizada, y permite el uso de un lenguaje de script para ampliar la funcionalidad
de una aplicación o cambiar su comportamiento sin la necesidad de recompilarla.
IX
Abstract
Augmented Reality (AR) is a booming field at both research and commercial
exploitation. The diversity of hardware devices and tracking methods used in AR reveal
a heterogeneity treatment problem. Existing architectures and frameworks used for the
development of AR applications tipically offer support only for specific devices and certain
tracking methods. Also, they are not free (as in freedom), thus preventing their expansion
and adaptation to some application areas such as combining various tracking methods,
filtering or the use of different video sources.
This Final Project (MARS) is proposed to solve this problem and to allow the quick
creation of AR applications. MARS is a modular, hybrid and free architecture designed to
provide homogenized access to video devices and generic and uniform interfaces for the
creation of filters and tracking methods.
MARS implements a real-time rendering system for the representation of synthetic 3D
objects and graphic interfaces, and provides a set of mathematical classes to facilitate the
transformation of rigid bodies in three-dimensional space. It also facilitates sound and
synthesized speech reproduction, and allows the use of a script language to extend the
funcionality or to modify the behavior of an application without recompiling it.
XI
Índice general
Resumen
Abstract
Índice general
Índice de figuras
Índice de listados
Listado de acrónimos
1. Introducción
1.1. Realidad Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1.
Impacto socio-económico . . . . . . . . . . . . . . . . . . . . . .
1.1.2. Problemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3. Objetivo principal
1.2. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Antecedentes
2.1.
2.2.
Introducción general
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Aplicaciones de la RA . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Arquitecturas y frameworks de RA . . . . . . . . . . . . . . . . .
2.1.3. Áreas y campos relacionados . . . . . . . . . . . . . . . . . . . . .
Introducción al marco matemático . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Pipeline gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Vectores y Puntos . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3. Matrices y transformaciones en el espacio . . . . . . . . . . . . . .
2.2.4. Representación de la orientación . . . . . . . . . . . . . . . . . . .
XIII
IX
XI
XIII
XIX
XXI
XXIII
1
1
2
3
4
4
7
7
7
10
10
11
12
13
15
18
.
.
.
.
.
.
.
.
.
.
2.6.
.
.
.
.
.
.
.
.
2.2.5. Proyecciones .
2.3. Gráficos 3-D y apariencia visual
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Fuentes de luz
. . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Materiales .
.
Iluminación y sombreado . . . . . . . . . . . . . . . . . . . . . . .
2.3.3.
. . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4. Vértices y caras .
2.3.5. Texturas y mapeado UV . . . . . . . . . . . . . . . . . . . . . . .
2.3.6. Metaformatos de archivo para 3-D interactivo . . . . . . . . . . . .
2.3.7. Transparencia, Alpha y Composición . . . . . . . . . . . . . . . .
2.4. Bibliotecas de representación 3-D . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
2.4.1. OpenGL .
. . . . . . . . . . . . . . . . . . . . . . . . .
. .
. .
2.5. Motores gráficos
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
2.5.1. OGRE .
.
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
2.5.2. CrystalSpace .
.
2.5.3. Blender GameKit .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
Interfaces gráficas de usuario . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.1. Fuentes de texto .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . . . . .
. .
2.7.1. Fuentes de vídeo y formatos de píxel
. . . . . . . . . . . . . . . .
2.7.2. Parámetros intrínsecos de la cámara . . . . . . . . . . . . . . . . .
2.7.3. Calibración .
. . . . . . . . . . . . . . . . . . . . . . . . .
2.7.4. Obtención de la matriz de proyección . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . . . .
.
2.8.1. Taxonomía general
. . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2. Métodos de tracking no-visuales . . . . . . . . . . . . . . . . . . .
2.8.3. Métodos de tracking visuales . . . . . . . . . . . . . . . . . . . . .
2.8.4. Métodos relativos y absolutos
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. .
2.9. Bibliotecas de apoyo .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
. .
. .
. .
.
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
. .
. .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
. .
. .
. .
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
libVLC .
.
2.10. Lenguajes de script
2.10.1. Python .
.
2.10.2. Lua .
2.9.1. SDL . .
2.9.2.
2.9.3. Festival
2.8. Métodos de tracking .
2.7. Visión por computador
.
.
.
.
.
.
.
22
24
24
24
25
25
26
27
30
31
31
33
33
33
34
34
36
38
38
39
40
41
42
42
42
43
45
46
46
46
46
47
47
47
3. Objetivos
3.1. Objetivo general .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
4. Método de trabajo
.
.
4.1. Metodología de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Herramientas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Hardware .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. Software
.
49
49
49
51
51
52
52
53
53
5. Arquitectura de MARS
57
60
5.1. Subsistema de captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
5.1.1. Fuentes de Vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
5.1.2. Creación y control de las fuentes de vídeo . . . . . . . . . . . . . .
69
5.1.3. Patrones utilizados . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.2. Subsistema de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Métodos de tracking
Comentarios de: MARS: Sistema de Tracking Híbrido Modular para Realidad Aumentada (0)
No hay comentarios