simulador en ambiente de realidad aumentada por interacci ... · por medio de realidad...
TRANSCRIPT
Simulador en Ambiente de
Realidad Aumentada por
Interaccion Natural para
Ensamble de Dispositivos
Electronicos
Por
Nelson Sosa Macmahon
Presentado como requisito parcial para la obtencion del
grado de:
MAESTRO EN CIENCIAS CON ESPECIALIDAD EN
ELECTRONICA
en el
Instituto Nacional de Astrofısica Optica y Electronica
Noviembre 2012
Tonantzintla, Puebla
Supervisada por:
Dr. Juan Manuel Ramırez Cortes.
Investigador principal
Departamento de Electronica INAOE
Dr. Leopoldo Altamirano Robles.
Investigador principal
Departamento de Ciencias Computacionales INAOE
c©INAOE 2012
El autor otorga al INAOE el permiso de reproducir copias
totales o parciales de esta tesis.
.
Dedicatoria.
Dedicado inmensamente a mi mama Nidia Macmahon y a mis hermanos
Roldan, Ronald y Carlos Andres.
Contenido
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Lista de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Acronimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
1. Introduccion 1
1.1. Definicion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Fundamentacion Teorica 8
2.1. Definicion de Realidad Aumentada(RA) . . . . . . . . . . . . . . . . . . . 8
2.2. Realidad Aumentada vs Realidad Virtual . . . . . . . . . . . . . . . . . . . 8
2.3. Tecnicas de interaccion en sistemas de RA . . . . . . . . . . . . . . . . . . 9
2.4. Caracterısticas de un sistema de RA . . . . . . . . . . . . . . . . . . . . . 12
2.5. Campos de aplicacion de RA . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6. Herramientas Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6.1. NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6.2. ARToolKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.3. OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.4. OpenNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
CONTENIDO v
2.7. Aplicaciones en Realidad Aumentada . . . . . . . . . . . . . . . . . . . . . 21
2.7.1. Realidad Aumentada en aplicaciones moviles . . . . . . . . . . . . . 21
2.7.2. Sistemas de ensamblado por medio de RA . . . . . . . . . . . . . . 22
2.7.3. Ideacion Arquitectonica Asistida mediante RA . . . . . . . . . . . . 26
2.7.4. Diseno y evaluacion de ensamble por medio de la mano en un am-
biente RA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3. Estructura del Simulador de Ensamble de Dispositivos Electronicos 32
3.1. Sensor Kinect como un dispositivo de medicion 3D . . . . . . . . . . . . . 32
3.1.1. Imagen IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.2. Imagen RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.3. Imagen de Profundidad . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.4. Resolucion de profundidad . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.5. Corrimiento entre la imagen IR y la imagen de profundidad . . . . 35
3.1.6. Modelo geometrico del sensor Kinect . . . . . . . . . . . . . . . . . 37
3.2. Estructura software desarrollada para la implementacion del simulador de
ensamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3. Base de datos de modelos 3D de los dispositivos electronicos . . . . . . . . 42
3.4. Plataforma de ensamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5. Modelo de interaccion entre la mano del usuario y los modelos 3D . . . . . 46
3.6. Interfaz de usuario para el sistema de ensamble . . . . . . . . . . . . . . . 47
3.7. Proceso de ensamble de los dispositivos electronicos . . . . . . . . . . . . . 51
3.8. Metodo de evaluacion del simulador de ensamble de dispositivos electronicos 53
4. Resultados 57
5. Conclusiones y Perspectivas 69
Bibliografıa 72
AGRADECIMIENTOS
Agradecezco al Consejo Nacional de Ciencia y Tecnologıa (CONACyT) por la beca otor-
gada No. 51465, sin la cual mis estudios de maestrıa en Mexico no habrıan sido posibles.
A los Doctores Juan Manuel Ramırez Cortes y Leopoldo Altamirano por el apoyo inte-
lectual y las excelentes aportaciones durante el proceso de ejecucion de la tesis de maestrıa.
De igual manera a mis companeros de maestrıa que permanecieron muy cercarnos en
este proceso y que me brindaron excelente ideas , siendo un aporte significativo para la
obtencion de muy buenos resultados.
SUMMARY
TITLE:
Augmented Reality Simulator for Natural Interaction of Assembly Electronic Devices. 1
AUTHOR:
Nelson Sosa Macmahon. 2
KEY WORDS: Augmented Reality, Natural Interaction, Recognition and Hand Trac-
king, 3D Modeling.
This work presents the development of a simulator for assembly of electronic devices th-
rough Augmented Reality, consisting of a natural interaction interface between the hand
of a person and virtual elements representing the electronic devices.
An algorithm is employed for recognizing and tracking the user’s hand as a natural ele-
ment,for interaction with virtual models through Open Natural Interaction (OpenNI) [1]
libraries. Hardware of the designed system for acquisition, processing and visualization
of information consists of laptop with processor Intel Core i7-620M and a Kinect Sensor
Xbox 360. The programming code for the application is made in C++ language, using
Open Graphics Library (OpenGL) [2] libraries, OpenNI, and Augmented Reality ToolKit
(ARToolKit) [3]. The result of the application is an assembler of electronic devices th-
rough Augmented Reality (AR) that can be implemented as a standard tool in industrial
processes.
1Master degree project2National Institute for Astrophysics, Optics and Electronics. Advisor Ph.D Juan Manuel
Ramırez Cortes Co-Advisor Ph.D Leopoldo Altamirano Robles
RESUMEN
TITULO:
Simulador en Ambiente de Realidad Aumentada por Interaccion Natural para Ensamble
de Dispositivos Electronicos. 3
AUTOR:
Nelson Sosa Macmahon. 4
PALABRAS CLAVE: Realidad Aumentada, Interaccion Natural, Reconocimiento y
Seguimiento de Mano, Modelado 3D.
Este trabajo presenta el desarrollo de un simulador de ensamble de dispositivos electroni-
cos por medio de Realidad Aumentada, el cual consiste en una interfaz de interaccion
natural entre la mano de una persona y elementos virtuales que representan los disposi-
tivos electronicos.
Se hace uso de un algoritmo para el reconocimiento y seguimiento de la mano del usuario
como elemento natural, para la interaccion con los modelos virtuales por medio de las
librerıas de OpenNI [1]. Como sistema hardware para la visualizacion, procesamiento
y adquisicion de informacion, se utiliza una computadora portatil con procesador Intel
Core i7-620M y un Sensor Kinect Xbox 360. El codigo de programacion para la aplicacion
se realiza en lenguaje C++, usando librerıas OpenGL [2], OpenNI y ARToolKit [3]. El
resultado final de la aplicacion es un simulador de ensamble de dispositivos electronicos
por medio de Realidad Aumentada(RA) que puede ser implementado como instrumento
estandar en procesos industriales.
3Proyecto de Maestrıa4Instituto Nacional de Astrofısica, Optica y Electronica. Asesor Dr. Juan Manuel Ramırez Cortes
Co-Asesor Dr. Leopoldo Altamirano Robles
Lista de Figuras
1.1. Esquema general de librerıas y estructuras de programacion. . . . . . . . . 7
2.1. Modelo de continuidad entre realidad y virtualidad planteado por Milgram. 9
2.2. Sistema de Realidad Aumentada. . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Relacion de transformacion entre las coordenadas del marcador y las coor-
denadas de la camara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Vectores de direccion unitaria perpendiculares: v1, v2 calculados de u1 y u2. 19
2.5. Estructura OpenNI [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6. Oclusion del marcador [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.7. Simulacion de ensamble usando los dedos de la mano en un espacio 2D [5]. 30
2.8. Diagrama de flujo del algoritmo de segmentacion de la mano. . . . . . . . . 31
2.9. a) Entrenamiento de la red RCE. b) Segmentacion de la mano en el espacio
de color L*a*b* [6]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1. proyector infrarrojos(IR), camara IR y una camara RGB del sensor Kinect. 33
3.2. Profundidad inversa del sensor kinect como una funcion de la profundidad
real [7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3. Paso de cuantizacion q del sensor Kinect(0-15m) [7]. . . . . . . . . . . . . . 36
3.4. Paso de cuantizacion q del sensor Kinect(0-5m) [7]. . . . . . . . . . . . . . 37
3.5. Corrimiento entre una imagen IR y una imagen de profundidad y su co-
rreccion : a) Alineacion antes. b) Alineacion despues. . . . . . . . . . . . . 38
3.6. Modelo geometrico del sensor Kinect [7]. . . . . . . . . . . . . . . . . . . . 39
3.7. Integracion de librerıas y herramientas de programacion. . . . . . . . . . . 43
x LISTA DE FIGURAS
3.8. Conversion de formatos de modelos 3D usando Wings3D. . . . . . . . . . . 44
3.9. Modelos 3D: a) Led. b) Resistencia. c) Potenciometro. d) Display LCD. . 45
3.10. Ejemplo de marcador cuadrado. . . . . . . . . . . . . . . . . . . . . . . . . 45
3.11. Interfaz grafica del simulador de ensamble de equipos electricos. . . . . . . 48
3.12. Captura de video anexa a los controles del simulador de ensamble. . . . . . 48
3.13. Tarjeta de circuito impreso para el ensamble de dispositivos electronicos. . 52
3.14. Ensamble del potenciometro. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.15. Ensamble de la bobina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.16. Ensamble del led. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1. Movimiento del modelo 3D con la mano. . . . . . . . . . . . . . . . . . . . 58
4.2. Trayectoria de la mano en el espacio tridimensional. . . . . . . . . . . . . . 59
4.3. Trayectoria de la mano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4. Trayectoria de la mano con suavizado. . . . . . . . . . . . . . . . . . . . . 61
4.5. Arreglo en fila de tres cubos virtuales. . . . . . . . . . . . . . . . . . . . . 61
4.6. Apilamiento de tres cubos virtuales. . . . . . . . . . . . . . . . . . . . . . . 62
4.7. Tarjeta de circuito impreso ensamblada. . . . . . . . . . . . . . . . . . . . 62
4.8. Evaluacion Demanda Mental. . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.9. Evaluacion Demanda Fısica. . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.10. Evaluacion Demanda Temporal. . . . . . . . . . . . . . . . . . . . . . . . . 65
4.11. Evaluacion Desempeno Propio. . . . . . . . . . . . . . . . . . . . . . . . . 65
4.12. Evaluacion de Esfuerzo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.13. Evaluacion de Frustacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.14. Tiempo de Ensamble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.15. Promedio de las subescalas de evaluacion. . . . . . . . . . . . . . . . . . . 67
4.16. Desviacion estandar de las subescalas de evaluacion. . . . . . . . . . . . . . 68
Lista de Tablas
2.1. Categorıas de RA movil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1. Caracterısticas y especifıcaciones tecnicas del sensor kinect. . . . . . . . . . 33
3.2. Corrimiento de posicion de pixel entre las imagenes en el IR y profundidad. 36
4.1. Resultado con la herramienta de evaluacion subjetiva NASA TLX. . . . . . 63
Acronimos
APIs Application Programming Interfaces.
ARToolKit Augmented Reality ToolKit.
GLUT OpenGL Utility Toolkit.
GPS Global Positioning System: sistema de posicionamiento global.
OpenGL Open Graphics Library.
OpenNI Open Natural Interaction.
RA Realidad Aumentada.
RFID Radio Frequency IDentification: identificacion por radiofrecuencia.
RV Realidad Virtual.
Capıtulo 1
Introduccion
Los productos modernos de ingenierıa se llevan a cabo por medio de un proceso de en-
samblaje por unidades funcionales. El diseno de ensamble y evaluacion durante la etapa
de diseno inicial son significativos para el desarrollo de productos industriales. Para es-
te tipo de desarrollo, el metodo principal es el prototipo fısico que permite verificar la
funcionalidad y la facilidad de ensamblaje. Con esto, los disenadores pueden obtener facil-
mente resultados en el proceso e identificar defectos para mejorar los disenos de ensamble.
Sin embargo, los prototipos fısicos consumen tiempo y presentan altos costos. Ademas,
cuando se construye y se prueba el prototipo fısico, este es difıcil o imposible de modificar.
En la actualidad existen tecnicas con Realidad Virtual (RV) y conceptos de prototipos
virtuales, para simular y evaluar el ensamble de equipos industriales como una etapa tem-
prana de diseno. La RV intenta reemplazar la percepcion del disenador en el ambiente
de trabajo, por un ambiente inmerso e interactivo en 3D computarizado. Adoptar la RV
completamente para dicho proposito, hace que el disenador pueda ver, tocar y operar
un producto antes de ser implementado fısicamente, disminuyendo costos y esfuerzos de
fabricacion. La eliminacion de los prototipos fısicos y la verificacion de los disenos en el
instante de trabajo, hace del ensamble virtual una poderosa herramienta computacional,
que permite realizar cambios en los disenos o introducir nuevos productos en el mercado
reduciendo el tiempo de marketing. La idea no es solo hacer que el diseno de ensamble
2 Introduccion
y evaluacion se desarrolle correctamente en RV, sino hacer que el proceso se convierta
en una experiencia casi real, donde el operario pueda manipular objetos virtuales. Una
manera de hacer que el proceso se desarrolle en un entorno real, es por medio de Realidad
Aumentada (RA).
El concepto de RA difiere de la RV. La RA no pretende aislar al usuario del mundo real,
al contrario, complementa este mediante objetos virtuales generados por computadora
usando software para modelado en 3D, presentando una buena alternativa para el diseno
de ensamble y evaluacion de productos. Basandonos en lo anterior, se pretende desarrollar
un simulador en ambiente de RA por interaccion natural para ensamble de dispositivos
electronicos.
El diseno de ensamble de equipos en la industria electrica, se desarrolla por medio de
prototipos fısicos. La evaluacion de los prototipos se realiza para obtener informacion de
la funcionalidad del dispositivo. Los prototipos no presentan la flexibilidad necesaria para
hacer cambios inmediatos en el diseno del equipo, lo cual implica que hay que redisenar
el prototipo para conocer el estado final antes de ser puesto en funcionamiento. Esto con-
sume tiempo y dinero en la industria, haciendo que este metodo de diseno de ensamble
sea ineficiente.
Como metodo para reemplazar los prototipos fısicos, se ha considerado desarrollar un
simulador de ensamble de productos por medio de Realidad Virtual. Este tipo de apli-
caciones presentan sus limitantes. Un diseno de ensamblado complicado en un ambiente
puramente virtual puede requerir de mucho recurso computacional. En muchos casos es
difıcil satisfacer los requerimientos de simulacion en tiempo real, para esto se necesitan
computadoras de mucha capacidad de procesamiento grafico.
Los investigadores dentro de la industria se han enfocado en el adelanto de tecnologıa
de aplicacion de software con Realidad Aumentada. En la actualidad se desarrollan apli-
1.1 Definicion del problema 3
caciones para la simulacion de ensamble de productos industriales en etapas tempranas
de diseno y fabricacion, con el proposito de mejorar los procesos industriales, disminuir
costos y tiempos de produccion. Este tipo de tecnologıa de Realidad Aumentada se basa
en la mezcla de objetos virtuales con objetos reales que se encuentran en el ambiente
natural, haciendo que el operario del simulador de ensamble, este interactuando con los
modelos virtuales para llevar a cabo el ensamble en tiempo real.
El simulador de ensamble de dispositivos electronicos pretende mejorar el procedimien-
to de ensamble de productos en la industria electronica. Tambien se pretende ampliar
las aplicaciones con la realizacion del proyecto, incursionando en aplicaciones academicas
para la ensenanza de temas fundamentales en diferentes areas de las ciencias basicas en
instituciones educativas de la region.
La arquitectura del sistema de ensamble esta conformado por una librerıa de modelos de
dispositivos electronicos a ensamblar, entorno o plataforma de ensamble, una computadora
personal para el procesamiento de datos y visualizacion del proceso de ensamble que realiza
el usuario usando las manos como herramienta de interaccion natural con los modelos
virtuales.
1.1. Definicion del problema
La RA es actualmente una de las ultimas tendencias en los medios de comunicacion movi-
les, pero la tecnologıa en sı no es nueva. El ejemplo mas antiguo de RA se remonta a los
primeros sistemas de representacion visual con un display con montaje sobre la cabeza,
utilizado por la Fuerza Aerea britanica durante la Segunda Guerra Mundial. Una pantalla
de radar superpuesta en el parabrisas de un piloto que mostraba informacion acerca de
las aeronaves cercanas, incluyendo la identidad de objetivos enemigos.
En 1968, Ivan Sutherland creo el primer ejemplo de un sistema de RA que cumple con
4 Introduccion
la definicion moderna planteada por Azuma y Milgram. Sutherland invento un casco con
display capaz de mostrar graficos en 3D, que se movıan cuando el usuario movia la cabeza.
En 1992, Tom Caudwell fue el primero en dar el termino de RA, cuando diseno un dispo-
sitivo de montaje sobre la cabeza para la empresa de aviones Boeing, que permitıa ayudar
a los ingenieros durante el proceso de fabricacion de un avion. Su sistema mostraba el
esquema de la aeronave sobre la plataforma de ensamble.
Hirokazu Kato y Mark Billinghurst lograron introducir la primera librerıa de seguimiento
por vision por computadora, llamada ARToolKit [3]. Usando esta aplicacion, las imagenes
virtuales ahora pueden ser superpuestas en el mundo real a traves de marcadores digi-
tales llamados ARTags, que pueden ser leıdos por computadoras equipadas con camaras.
Cuando los marcadores impresos “ARTags” se ubican frente a la camara integrada a la
computadora y se ejecuta la aplicacion ARToolKit, el impreso es reconocido por la apli-
cacion y una imagen en 3D se superpone en la ubicacion del marcador en la pantalla del
computador. Hoy en dıa, los publicitas y revistas suelen utilizar ARTags como una forma
de llevar su producto impreso a la interactividad digital con los usuarios.
En diciembre de 2009 la revista Esquire mostro como el contenido digital e impreso podıan
fusionarse a traves del empleo de ARTags. Despues de descargar el software de RA en el
sitio web de Esquire [8], los lectores podıan utilizar la camara web de su computadora
para ver las caracterısticas digitales de la revista. En la portada de la edicion de dicha
revista aparece el actor Robert Downey Jr, sentado en un marcador ARTag que muestra
un vıdeo del promocional de la pelıcula de Sherlock Homes. Mas de media docena de
paginas de contenido exhibidas por medio de RA. Otras empresas y publicaciones han
seguido su ejemplo como Popular Mechanics y MINI.
Recientemente, el estado del arte en la investigacion de RA se ha desplazado hacia dis-
positivos moviles, dispositivos portatiles. Los investigadores estan estudiando como los
dispositivos portatiles se pueden utilizar para mejorar la vision a traves de seguimiento
1.2 Objetivos 5
por RA [9]. La primera aplicacion en RA movil durante la decada de 1990, se baso en un
dispositivo portable sobre la cabeza con su respectivo display. Este dispositivo se contro-
laba por medio de una computadora portatil cargada en una mochila. Luego de obtener
resultados notables en la aplicacion, se expandio a PDAs y telefonos celulares [10,11]. Con
el advenimiento de potentes telefonos inteligentes equipados con GPS, mayor velocidad
de procesamiento, mayor transferencia de datos y pantallas mas grandes. Los dispositivos
moviles con RA actuales, son capaces de superponer informacion virtual sobre informa-
cion digital que adquiere la camara de un telefono inteligente en tiempo real.
Combinando las plataformas moviles iPhone y Android, la RA movil ha ido mas alla de
las aplicaciones militares, industriales y ha comenzado a entrar en las manos de los con-
sumidores. Una gran variedad de aplicaciones han sido introducidas, como por ejemplo:
en buscadores de informacion, herramientas educativas y juegos.
El uso de nuevas tecnologıas de Realidad aumentada permitiran mejorar el ensamblaje
dispositivos electronicos.
1.2. Objetivos
Objetivo general
Desarrollar un simulador de ensamble de dispositivos electronicos por medio de interaccion
natural con Realidad Aumentada.
Objetivos especıficos
Adaptar los algoritmos de reconocimiento y seguimiento de mano de OpenNI para
su incorporacion al simulador de ensamble en desarrollo.
Desarrollar el esquema de interaccion para el ensamble de los modelos virtuales.
Disenar la interfaz de usuario del simulador de ensamble.
6 Introduccion
Generar el ensamble de diferentes modelos virtuales: simulacion de modelos primi-
tivos y ensamble de modelos de dispositivos electronicos.
Realizar pruebas y evaluacion del simulador de ensamble con diferentes usuarios.
1.3. Metodologıa
El objetivo de este trabajo es realizar un simulador en ambiente de Realidad Aumentada
por interaccion natural para el ensamble de dispositivos electronicos. El proceso de en-
samble de cada uno de los modelos virtuales se describe a continuacion.
Inicialmente cuando se ejecuta el simulador, se hace el reconocimiento y seguimiento de
la mano del usuario como elemento de interaccion usado para controlar el desplazamien-
to de los modelos virtuales en las coordenadas (x, y, z). La ubicacion de estos modelos
virtuales se hace sobre un plano de referencia definido por un marcador (Hoja con un
patron cuadrado en blanco y negro con dimensiones definidas). Una vez manipulado co-
rrectamente la posicion del modelo virtual en las coordenadas del mundo real a partir del
movimiento de la mano, se ensamblan uno a uno los modelos virtuales que constituyen el
equipo electrico.
Descripcion del experimento
Como paso inicial se ejecuta el proyecto en el software NetBeans IDE que integra el
codigo C++ para el reconocimiento del marcador, reconocimiento y seguimiento de la
mano, tambien el proceso de renderizado(del ingles render) de los modelos virtuales que
se desean proyectar sobre el marcador en la escena de video en tiempo real. En la Figura
1.1 se muestra el esquema general que invoca a las librerıas necesarias para realizar cada
una de estas tareas.
El sistema de ensamble se basa en el reconocimiento y seguimiento de la mano del usua-
rio, esto se realiza por medio de codigo abierto de la estructura de programacion OpenNI.
1.3 Metodologıa 7
OpenNI
ARToolKit OpenGL
Figura 1.1: Esquema general de librerıas y estructuras de programacion.
Con dicha aplicacion se tiene control del centroide de la palma de la mano, conociendo
su posicion en las coordenadas (x, y, z). Tambien se implementa la programacion para
reconocer el marcador, usado como referencia para la proyeccion de los modelos virtuales
de los diferentes dispositivos electronicos. Para realizar la integracion del reconocimiento
y seguimiento de la mano, la deteccion del marcador para la implementacion de RA y
posteriormente la manipulacion de objetos 3D por medio de la mano del usuario, se usa la
estructura de programacion OpenNI y un conjunto de librerıas graficas de fuente abierta
OpenGL y las librerıas de ARToolKit para reconocimiento de marcadores y aplicaciones
en RA.
En este capıtulo se presento una introduccion de la Realidad Aumentada en el ambito de
las aplicaciones industriales como herramienta para el ensamble de productos. Tambien
como alternativa y tema de investigacion para el ensamble de dispositivos electronicos
con interaccion natural.
Partiendo de lo anterior, se realizo una descripcion del problema, se planteo el objetivo
general de la tesis, subsiguientemente se plantearon los objetivos especıficos y se abordo la
metodologıa utilizada para llevar a cabo el simulador de ensamble.
Capıtulo 2
Fundamentacion Teorica
2.1. Definicion de Realidad Aumentada(RA)
Muchos investigadores han ampliado la definicion y el alcance de la RA. La definicion
mas aceptada de RA fue concebida por Ronald Azuma en 1997. Azuma considero que un
sistema de RA se constituye por tres caracterısticas:
Combina objetos reales y virtuales en un entorno del mundo real.
Posee interactividad que se presenta en tiempo real.
Registra y alinea elementos virtuales con objetos fısicos en un entorno 3D.
La razon de ser de estos criterios, es de no limitar la RA para tecnologıas especıficas.
Inicialmente se desarrollaron aplicaciones de RA con displays montados en la cabeza del
usuario. Un nuevo criterio para implementar RA, se expande a dispositivos moviles de
mano, tales como Smartphone y sistemas basados en monitores que leen marcas especiales
para presentar informacion sobre la pantalla de un computador [3].
2.2. Realidad Aumentada vs Realidad Virtual
La RA es definida como termino medio entre el ambiente virtual y el ambiente fısico. La
RA tiene gran relacion con el entorno fısico, mientras que la RV se encuentra muy enlaza-
2.3 Tecnicas de interaccion en sistemas de RA 9
da con el mundo sintetico. La RV se define como un ambiente tridimensional, interactivo,
generado por computadora, en el cual las personas pueden estar inmersas.
La principal diferencia entre Realidad Virtual (RV) y Realidad Aumentada (RA) se basa
en la perspectiva del usuario y los metodos de inmersion usados por cada sistema. La
diferencia entre RA y RV se puede mostrar por medio de un ejemplo. Si un usuario se
encuentra en un mundo virtual, esta completamente inmerso en un ambiente artificial
usando elementos o artefactos sinteticos. En el ambiente de RA el usuario percibe la
mezcla entre el mundo real y elementos virtuales [5]. La Figura 2.1 muestra la lınea de
continuidad entre realidad y virtualidad planteado por Milgram.
Figura 2.1: Modelo de continuidad entre realidad y virtualidad planteado por Milgram.
2.3. Tecnicas de interaccion en sistemas de RA
Las tecnicas de interaccion se basan en aplicaciones de RA tangibles.
Los tipos de tecnicas de interaccion mas usados en aplicaciones con RA son:
Tecnicas de interaccion usando marcadores.
Tecnicas de interaccion que utilicen movimientos corporales: seguimiento de la po-
sicion y orientacion de manos y dedos, la direccion de la cabeza y orientacion de los
ojos. Tecnologıas para el seguimiento de posicion y orientacion de manos y dedos:
10 Fundamentacion Teorica
tracking magnetico, tracking inercial, sistemas de reconocimiento basados en vision,
etc.
Dispositivos de bajo costo como herramientas de interaccion.
Interaccion multimodal.
Tecnicas de interaccion usando marcadores
Se conocen como interfaces tangibles basadas en el uso de marcadores, aquellas interfa-
ces que mezclan informacion digital con objetos reales cotidianos. ARToolKit, Unifeye,
BuildAR, etc; son algunas de este tipo de interfaces, donde se relaciona un marcador
sobre un elemento real para manipular un objeto virtual asociado a dicho marcador. A
continuacion se nombra algunos ejemplos de aplicaciones de RA usando marcadores.
El uso de marcadores en aplicaciones como forma de filtrar informacion, la cual se
desea visualizar.
Aplicaciones con el uso de marcadores de dos tipos: marcador de datos y otro mar-
cador de funciones.
Marcadores en los dedos o guantes con marcadores como funciones de interaccion
con los modelos virtuales.
Oclusion con marcadores como sistema de interaccion con un menu de marcadores.
Sistema de seguimiento para la interaccion con un menu 2D implementado con
marcadores.
Tecnicas de interaccion usando movimientos corporales
Este tipo de tecnica se basa en la interaccion de los gestos realizados por medio de la cara,
ojos, dedos, manos, brazos a partir del reconocimiento y seguimiento. Tambien se pueden
considerar posturas corporales como modelos de interaccion con los objetos virtuales.
2.3 Tecnicas de interaccion en sistemas de RA 11
Algunas tecnologıas para seguir la posicion y la orientacion de las manos, se puede rea-
lizar con seguimiento magnetico, seguimiento inercial y sistemas basados en vision por
computadora, etc.
Algunos ejemplos de aplicaciones de RA usando los gestos corporales sin marcadores como
medio de interaccion con los modelos virtuales son:
Combinacion gestual usando la mano y la direccion de la cabeza para generar cuatro
tipos de gestos: apuntar, empujar, voltear y rotar.
Interaccion de gesto de la mano usando vision por computadora para escalar, tras-
ladar y rotar objetos virtuales.
Seguimiento del movimiento de los ojos para interaccion en aplicaciones de RA.
Dispositivos de bajo costo como herramientas de interaccion
Los telefonos celulares y controladores de videoconsolas han sido utilizados como sistemas
de interaccion en entornos de RA, entre otros dispositivos moviles.
Algunas tecnicas que usan este tipo de dispositivos de bajo costo como herramientas de
interaccion son:
Usando como herramienta de interaccion el wiimote de la videoconsola Nintendo
wii se pueden implementar tres tecnicas de interaccion: Direct touch, Ray casting y
Lens.
Los telefonos celulares modernos son usados para aplicaciones en RA por medio de
reconocimiento de marcadores y gestos del usuario.
Interaccion multimodal
Los sistemas multimodales se definen como aquellos que procesan metodos de entrada
naturales combinados (como voz, gestos de mano y movimientos corporales) de forma
12 Fundamentacion Teorica
coordinada con la salida multimedia del sistema.
Los sistemas multimodales presentan diferentes combinaciones para determinada aplica-
cion de RA. Dichos sistemas pueden ser desarrollados con o sin marcadores para llevar a
cabo la interaccion. Algunas de las combinaciones mas implementadas en dichos sistemas
son:
Integracion de gestos (2D y 3D), reconocimiento de voz y deteccion del movimiento
o direccion de la cabeza.
Sistema de interaccion basado en reconocimiento de voz y usando gestos con dos
cubos con marcadores.
Integracion de gestos, movimiento de los ojos y direccion de la cabeza.
2.4. Caracterısticas de un sistema de RA
El sistema para hacer RA se implementa de la siguiente forma, Figura 2.2.
Figura 2.2: Sistema de Realidad Aumentada.
Como se observa en la Figura 2.2. Los elementos que participan en el sistema de RA son:
2.5 Campos de aplicacion de RA 13
webcam, patron de reconocimiento, pantalla o proyector de video, modelo 3D, compu-
tadora y simulador para RA.
2.5. Campos de aplicacion de RA
La RA es mas antigua de lo que parece. Ha sido usada por anos para diversas aplicaciones,
tales como: Marcar un fuera de juego en los partidos de futbol, hacer superposicion de
elementos o esquemas electricos sobre circuitos reales o en el ambito militar, desplegar
a traves del casco informacion del objetivo a pilotos de combate. Se pueden distinguir
dos tipos basicos de aplicaciones. La primera es basada en localizacion de una escena real
mostrando objetos virtuales por medio de orientacion de la camara y la segunda se basa
en marcadores presentes en la escena que se muestra.
El desarrollo de software orientado al modelado de objetos ha venido evolucionando a lo
que hoy conocemos como RA. Este tipo de desarrollo es de gran importancia en la forma
como el usuario adquiere la capacidad de interactuar con la aplicacion en un entorno 3D.
En la actualidad se pretenden realizar aplicaciones con RA, siendo introducidas en Proyec-
tos educativos, entretenimiento, medicina, Simulacion, Servicios de emergencias, Apoyo
con tareas complejas, Arquitectura, Aplicaciones Industriales, Prospeccion, Colaboracion
y Publicidad.
La RA genera un sistema totalmente interactivo con imagenes y sonidos que pueden
llegar a recrear todo un entorno de la realidad mezclada con una gran variedad de obje-
tos, haciendo que la imaginacion del usuario y de los mismos disenadores no tenga lımites.
Los sistemas RA modernos incluyen como tecnologıa: sensores opticos, camaras digita-
les, Global Positioning System: sistema de posicionamiento global (GPS), acelerometros,
giroscopios, Radio Frequency IDentification: identificacion por radiofrecuencia (RFID),
14 Fundamentacion Teorica
brujulas de estado solido, entre otros dispositivos. Existe una gran variedad de aplica-
ciones de RA en celulares y en estaciones de video juegos. El futuro de esta tecnologıa
tendra un valor agregado en cada uno de los campos de aplicacion. Esto se debe al me-
joramiento de la percepcion de nuestro entorno, haciendo que la brecha entre lo real y lo
animado sea cada vez mas pequena.
Las aplicaciones de RA estan siendo dirigidas a la interaccion entre elementos naturales
y elementos virtuales. Esto implica que el usuario tenga la capacidad de manipular los
elementos virtuales, de tal forma que pueda recrear la aplicacion, segun las especificaciones
y complejidad de la aplicacion final.
2.6. Herramientas Software
2.6.1. NetBeans
NetBeans esta desarrollado para lenguaje de programacion Java. Existe ademas un nume-
ro importante de modulos para extenderlo. NetBeans IDE es un producto libre y gratuito
sin restricciones de uso.
NetBeans es un proyecto de codigo abierto con millones de usuarios en todo el mundo,
dicha comunidad esta en constante crecimiento. Tambien, es una plataforma que permite
que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software
llamados modulos. Un modulo es un archivo Java que contiene clases de java escritas para
interactuar con las Application Programming Interfaces (APIs) de NetBeans y un archivo
especial (manifest file) que lo identifica como modulo. Las aplicaciones construidas a partir
de modulos pueden ser extendidas agregandole nuevos modulos. Debido a que los modulos
pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma
NetBeans pueden ser extendidas facilmente por otros desarrolladores de software.
2.6 Herramientas Software 15
2.6.2. ARToolKit
El aspecto mas importante al desarrollar sistemas de RA en computadoras, es el uso de
una buena librerıa que proporcione la matriz de transformacion de los objetos de la esce-
na. Para dicho fin se ha utilizado la librerıa ARToolKit [3].
ARToolKit usa algoritmos de vision por computadora para solucionar el problema de re-
conocimiento y seguimiento de marcadores. ARToolKit usa librerıas para seguimiento en
video, para calcular la posicion real de la camara y la orientacion relativa de los marca-
dores fısicos en tiempo real.
Algunas de las caracterısticas que incluye ARToolKit son:
Seguimiento de orientacion y posicion de una sola camara.
Codigo de seguimiento que utiliza cuadrados negros.
Capacidad de utilizar cualquier patron de marcadores cuadrados.
Codigo sencillo de calibracion de camara.
Suficientemente rapido en tiempo real para aplicaciones de RA.
SGI IRIX, Linux, MacOS y distribuciones del sistema operativo Windows.
Distribuido con codigo fuente completo.
Determinacion de Matriz de Transformacion
La matriz de transformacion de las coordenadas del marcador a las coordenadas de la
camara es calculada por medio de la librerıa ARToolKit.
Las aplicaciones con RA deben ser un proceso rapido que permita superponer objetos 3D
aplicando la matriz de transformacion de la vista del observador, para visualizar correc-
tamente los objetos virtuales y generar la sensacion de ocurrencia en tiempo real o por lo
16 Fundamentacion Teorica
menos sin ningun tipo de retraso visual. La Figura 2.3 muestra el proceso para calcular
la matriz de transformacion de la vista del marcador a la vista de la camara.
Figura 2.3: Relacion de transformacion entre las coordenadas del marcador y las coorde-nadas de la camara.
Los marcadores cuadrados de tamanos definidos son usados como una base de las coor-
denadas del fotograma de video, en el cual las pantallas virtuales son representadas en la
Figura 2.3. La matriz de transformacion de las coordenadas del marcador a las coordena-
das de la camara (Tcm) se representa por medio de la ecuacion 2.1.
Xc
Yc
Zc
1
=
V11 V12 V13 Wx
V21 V22 V23 Wy
V31 V32 V33 Wz
0 0 0 1
Xm
Ym
Zm
1
=
V3×3 W3×1
0 0 0 1
Xm
Ym
Zm
1
= Tcm
Xm
Ym
Zm
1
(2.1)
Despues de umbralizar la imagen de entrada, se extrae la region que tiene un contorno,
y esta delimitado con cuatro segmentos lineales. Los parametros que definen los cuatro
segmentos lineales y las coordenadas de los cuatro vertices de la region encontrada en la
interseccion de los segmentos, son guardados para su posterior procesado.
2.6 Herramientas Software 17
La region detectada es normalizada y la sub-imagen con la region es comparada con la
plantilla de patrones dados por el sistema, para poder identificar las marcas especificadas
por el usuario. Para el proceso de normalizacion, se usa la ecuacion 2.2 que representa
una transformacion de perspectiva. Todas las variables en la matriz de transformacion
son determinadas por medio de la sustitucion de las coordenadas de la pantalla y las
coordenadas de los cuatro vertices del marcador detectado para (xc, yc) y (Xm, Ym) res-
pectivamente. Despues de esto, el proceso de normalizacion puede ser realizado usando la
siguiente matriz de transformacion.
hxc
hyc
h
=
N11 N12 N13
N21 N22 N23
N31 N32 N33
Xm
Ym
1
(2.2)
Cuando dos lados paralelos del marcador cuadrado son proyectados sobre la imagen, las
ecuaciones de estos segmentos lineales de las coordenadas de la camara en la pantalla son:
a1x+ b1y + c1 = 0, a2x+ b2y + c2 = 0 (2.3)
Para cada marcador, los valores de cada uno de estos parametros son calculados en el
proceso de alineamiento. Conociendo la matriz de proyeccion perspectiva P , obtenida en
la calibracion de la camara, ver ecuacion 2.4. Las ecuaciones de los planos que incluyen a
los dos lados se representan en la ecuaciones 2.5 y 2.6 en el espacio de coordenadas de la
camara, sustituyendo xc e yc en la ecuacion 2.4 por x e y en la ecuacion 2.3.
18 Fundamentacion Teorica
P =
P11 P12 P13 0
0 P22 P23 0
0 0 1 0
0 0 0 1
=⇒
hxc
hyc
h
1
= P
Xc
Yc
Zc
1
(2.4)
a1p11Xc + (a1p12 + b1p22)Yc + (a1p13 + b1p23 + c1)Zc = 0 (2.5)
a2p11Xc + (a2p12 + b2p22)Yc + (a2p13 + b2p23 + c2)Zc = 0 (2.6)
Considerando que los vectores normales de los dos planos de las ecuaciones 2.5 y 2.6 se
llaman n1 y n2, el vector direccion de los lados paralelos del marcador cuadrado se deter-
mina por el producto vectorial n1×n2. De esta forma se obtienen los vectores de direccion
unitarios u1 y u2, que pueden ser considerados perpendiculares. Como existen errores en
el procesamiento de la imagen, por lo tanto, los vectores unitarios no pueden ser perpen-
diculares. La compensacion de estos dos vectores de direccion unitaria perpendiculares se
denomina v1 y v2 en el mismo plano en el que se encuentran los vectores u1 y u2 como
se observa en la Figura 2.4. El vector de direccion unitaria v3 es perpendicular a v1 y v2,
por lo tanto la componente de rotacion V3×3 en la matriz de transformacion Tcm de las
coordenadas del marcador a las coordenadas de la camara especificada en la ecuacion 2.1
es[V1
t V2t V3
t]
[12].
2.6.3. OpenGL
OpenGL es un conjunto de librerıas estandar de renderizado y modelado en 2D y 3D, tra-
baja sobre diferentes plataformas, usando ampliamente el hardware. Esta disenado para
cualquier aplicacion de uso grafico, como es el modelado CAD [2].
OpenGL se usa exclusivamente para el desarrollo de graficos, la cual no incluye el apoyo
2.6 Herramientas Software 19
Figura 2.4: Vectores de direccion unitaria perpendiculares: v1, v2 calculados de u1 y u2.
de sonido. Tampoco tiene eventos sobre las ventanas, menus o salidas. En este punto
entran las GLUT, que son librerıas de soporte para cualquier plataforma. Sirven para
proporcionar la funcionalidad basica en todas aquellas areas, haciendo la plataforma in-
dependiente, para que el usuario pueda mover la aplicacion de las GLUT, como en el caso
de Windows y Linux. Las GLUT se pueden usar y aprender de una manera didactica.
2.6.4. OpenNI
OpenNI es una estructura para multiples plataformas, que define APIs para escribir apli-
caciones utilizando interaccion natural. El proposito principal de OpenNI es formar APIs
estandar para permitir la comunicacion entre ambos:
Sensores de vision y audio (dispositivos que captan las imagenes y sonidos del am-
biente).
Software intermedio (del ingles middleware) para percepcion de audio y vision (los
componentes del software que analiza el audio y video que es grabado de la escena,
interpretando dicha informacion). Por ejemplo, este software recibe la informacion
visual, tal como una imagen, retornando la localizacion de la palma de la mano
detectada en la imagen.
OpenNI ofrece un conjunto de APIs para ser implementados por los sensores y un con-
junto de APIs para ser implementados por los componentes del software intermedio.
20 Fundamentacion Teorica
La Figura 2.5 muestra las tres capas que componen el concepto de OpenNI:
La capa superior representa el software que implementa las aplicaciones de interac-
cion natural en OpenNI.
La capa intermedia proporciona las interfaces de comunicacion que interactua con
los sensores y los componentes del software intermedio que analizan los datos del
sensor.
La capa inferior muestra los dispositivos hardware que capturan video y audio de
la escena.
Figura 2.5: Estructura OpenNI [1].
Interaccion Natural
El termino Interaccion Natural (del ingles Natural Interaction-NI ) hace referencia al con-
cepto de interaccion humano-dispositivo, basado en el sentido auditivo y el sentido de la
2.7 Aplicaciones en Realidad Aumentada 21
vision. Los paradigmas NI de dispositivos humanos hacen de los dispositivos de control
perifericos, tales como el control remoto, el teclado o mouse sean obsoletos. Los ejemplos
de uso cotidiano de aplicaciones NI incluyen [1]:
Reconocimiento de voz y mando, donde los dispositivos reciben instrucciones a
traves de comandos vocales.
Los gestos con las manos, son gestos predefinidos, los cuales son reconocidos e inter-
pretados para activar y controlar los dispositivos. Por ejemplo, se usa el control de
gestos con la mano que permite al usuario gestionar la electronica de los dispositivos
de una casa.
El movimiento completo del cuerpo es seguido, siendo interpretadas las diferentes
posturas corporales como comandos para proposito de video juegos.
2.7. Aplicaciones en Realidad Aumentada
En esta seccion se introducen diferentes aplicaciones orientadas a Realidad Aumentada.
Las aplicaciones que se mencionan a continuacion son: Realidad Aumentada en aplicacio-
nes moviles, Sistemas de ensamblado por medio de RA, Ideacion arquitectonica asistida
mediante RA, Diseno y evaluacion de ensamble por medio de la mano en un ambiente
RA.
2.7.1. Realidad Aumentada en aplicaciones moviles
Las aplicaciones comerciales de RA en dispositivos moviles estan tomando fuerzas en los
ultimos anos. Recientemente la RA ha ganado mucha popularidad por su convergencia
hacia telefonos inteligentes(del ingles smartphones), redes de alta densidad de datos y
nubes computacionales.
El estado del arte en la investigacion de RA, se ha dirigido de forma atenta a las apli-
caciones celulares y otros dispositivos electronicos de uso manual. Los investigadores han
22 Fundamentacion Teorica
estudiado como los dispositivos moviles pueden ser usados para enriquecer la vision del
mundo real a traves de seguimiento por RA [9]. En la industria se han estado usando
aplicaciones basadas en RA por medio de dispositivos moviles. Con la llegada de los po-
tentes equipos smartphones con sistema GPS, mejores disenos de pantalla, alta velocidad
de procesamiento y transferencia de datos. Hoy en dıa los dispositivos moviles con RA
son capaces de superponer informacion virtual sobre la salida de video de la camara de
un celular en tiempo real.
Combinando plataformas moviles Android y el popular iPhone, la RA movil ha ido mas
alla de las tradicionales aplicaciones industriales y militares, llegando directamente a las
manos del consumidor final. Una variedad de aplicaciones han sido introducidas, tales
como: buscadores de informacion, herramientas educativas y juegos de entretenimiento.
El desarrollo de aplicaciones en dispositivos moviles con RA basadas en las nececesidades
del consumidor, han tenido un tremendo crecimiento en los ultimos anos. En Junio de
2010 habian 396 aplicaciones listadas en la tienda iTunes de Apple con lista de descrip-
cion de RA como caracterıstica. En marzo de 2011 habıan 630 aplicaciones para iPhone
con la misma descripcion. Las diferentes aplicaciones van desde servicios de informacion,
herramientas de navegacion hasta juegos y entretenimiento.
La categorıa de aplicacion mas popular y mas grande hasta la fecha son los buscadores
de informacion. Los buscadores con RA en dispositivos moviles, despliegan en pantalla
informacion de interes del campo de vision que es captado por la camara del celular.
Se utilizan para encontrar puntos locales de interes, tales como puntos de referencia,
transporte publico, restaurantes o tiendas.
2.7.2. Sistemas de ensamblado por medio de RA
La idea detras de la RA es simple, pero su desarrollo ha sido lento por el inadecuado so-
porte de recursos de hardware para soportar grandes procesos de computacion en tiempo
2.7 Aplicaciones en Realidad Aumentada 23
Buscadores de informacion Los usuarios pueden encontrar puntos locales deinteres, restaurantes, fotos. Tambien el contenidode los medios de comunicacion social.
Redes sociales Acciones y geo-etiquetado en pantalla del contenido de redessociales.
Turismo Guıas de ciudades y aplicaciones turısticas.
Entretenimiento y Juegos Cazadores de tesoro, mascotas virtuales y plantillasde rompecabezas de trucos.
Educacion Aplicaciones basadas en aprendizaje, tales como buscadores desatelites o identificadores de constelacion.
Compras Probar los productos y mercancıa de tiendas, usando imagenes oescaner de codigo de barras .
Navegacion Ayudar a los usuarios a localizar un lugar especıfico, comoun restaurante o estacion de autobus .
Utilidades Brujulas, pantallas de visualizacion frontal y superposiciones,como identificadores de colores, reglas o instrucciones demontaje.
Traduccion Traduce dinamicamente textos en imagenes desde una perspectivade la camara a un lenguaje nativo.
Tabla 2.1: Categorıas de RA movil.
real. La RA puede ser considerada como una extension de una pantalla de un compu-
tador, en el cual modelos tridimensionales pueden ser integrados dentro de la escena real.
El nivel de detalle de aumentar la escena, ha sido muy realista, dando al usuario la ilusion
de un solo mundo real.
Actualmente, la investigacion en el campo de la RA esta enfocada en el incremento de la
interaccion [13]. Esto significa que el usuario no es solo espectador, tambien esta habili-
tado para interactuar activamente con el contenido de la escena. De esta forma, la RA
es un candidato destacado para soportar muchas actividades de ingenierıa, tales como:
Modelado, simulacion, ensamblado, etc. En este caso, el desarrollo de aplicaciones con
RA en ingenierıa, han brindado un conjunto poderoso de herramientas para solucionar
el problema de planeacion de ensamblado. En resumen, un ingeniero puede realizar el
ensamble intuitivamente en el ambiente virtual usando hardware y software con RA.
24 Fundamentacion Teorica
El proceso de ensamble consume tiempo, tambien recursos tecnicos y economicos, donde
los recursos humanos deben ser considerados. Hay dos objetivos generales de estas activi-
dades: Realizar el proceso de ensamble mas facil, rapido, menos costoso, y mas rentable
a traves del diseno de tecnicas [14] y analisis secuencial de ensamble. Con el uso de am-
bientes virtuales, el proceso de ensamble y desensamble podrıa ser simulado y optimizado.
De otra forma, las aplicaciones con RA ofrecen ventajas con respecto a aquellas desarrolla-
das usando RV. Como primera ventaja, el usuario puede observar el modelo del producto
desde diferentes perspectivas en un espacio real, junto con los objetos reales. Como se-
gunda ventaja, el usuario puede interactuar con el modelo del producto en el espacio 3D,
el cual podrıa ser mas natural e intuitivo. De esta manera, es mas facil para el usuario
comprender la relacion espacial entre la informacion aumentada y los objetos reales o
fısicos. La literatura reportada en el estado del arte en RA, ensena algunas contribuciones
en el campo de trabajo de ensamble virtual usando RA.
Una de las aplicaciones mas conocidas de RA en el area de ensamble, es la de ensamblado
de estructuras de aviones de la companıa aerea Boening [15]. En el campo de la produccion
de automoviles, diferentes aplicaciones han sido introducidas para el ensamble guiado de
las puertas de los carros [16]. El proyecto de investigacion ARVIKA [17], el cual es patro-
cinado por el Ministerio Federal de Educacion y Investigacion de Alemania, usa tecnologıa
de RA para soporte orientado al usuario y manejo de aplicaciones para procedimientos
de trabajo en el desarrollo, produccion y mantenimiento de sistemas y productos tecnicos
complejos. El sistema de RA WebShaman Digiloop [18], mezcla prototipos virtuales con
objetos fısicos para evaluar la funcionalidad y caracterısticas de productos a traves de
operaciones de ensamble en una ambiente RA. Una estructura de un sistema RA para
una evaluacion rapida de prototipos de productos a traves de prototipos mezclados fue
presentado por Balcisoy et al. [19]. Fiorentino propuso un sistema Spacedesign, el cual
es un innovador sistema de RA dirigido al diseno estetico de superfıcies y curvas de for-
mas libre. Blandine and Bernd [20] desarrollaron un sistema de RA para capacitacion y
2.7 Aplicaciones en Realidad Aumentada 25
asistencia en el mantenimiento de equipos en un entorno industrial. Klinker et al. [21] en
TU Munich, reporto un interesante proyecto para analizar la generacion de informacion,
recuperacion, transmision, y proceso de visualizacion en el contexto de mejorar los pro-
cedimientos de mantenimiento en plantas nucleares. Tanto el sistema Fata Morgan [22]
desarrollado por TU Munich y BMW, y un sistema de diseno de productos basado en RA
presentado por Gausemeier [23], fue usado para investigar la presentacion de RA para
evaluacion de diseno de automoviles.
En los ultimos diez anos, un grupo pequeno de investigadores han desarrollado sistemas
de ensamble virtual. El sistema VADE [24] usa modelos CAD limitados en un ambien-
te de RV que representa el area de ensamble, y un ensamblador humano experto puede
manipular las partes virtuales y las herramientas de ensamblado usando ambas manos y
manipulaciones basadas en la puntas de los dedos para realizar operaciones de ensamble
realista. El constructor virtual CODY [25] es un sistema basado en reconocimiento que
permite el ensamble interactivo de partes mecanicas visualizadas en 3D en un ambiente
virtual. BMW y IGD cooperaron para investigar los pasos requeridos para aplicar pro-
totipos virtuales en la verificacion de ensamble y procesos de mantenimiento [26, 27]. El
grupo Ye [28] en la universidad de ILLinois en Chicago investigo los beneficios potencia-
les de un ambiente en RV como soporte en la planeacion de ensamble usando el sistema
CAVE. Ma et al. [29] propusieron una estructura jerarquica y modelo de datos basado
en restricciones para modelado de solido preciso e intuitivo en un ambiente de ensamble
virtual. Steffan and Kuhlen [30] desarrollaron el sistema MAESTRO para simulacion de
ensamble interactivo en un ambiente virtual. El sistema de ensamble DPM desarrollado
por la corporacion Delmia es un sistema comercial que proporciona funciones similares(
incluyendo: Deteccion de colision, secuencia de ensamble y generacion de trayectorias
libres de colision,etc.) como el sistema VADE.
26 Fundamentacion Teorica
2.7.3. Ideacion Arquitectonica Asistida mediante RA
Este es el caso de un tipo de aplicacion con RA, usando un algoritmo de reconocimiento
de gestos de la mano del usuario para el diseno de maquetas virtuales [4], permitiendole
al usuario poder interactuar con el diseno de la maqueta usando las manos.
La idea principal de la aplicacion es identificar la mano en la imagen y detectar las posi-
ciones relativas de los dedos, para hacer que interactue con el modelo virtual. La funcion
principal de la mano es la de apuntador. Este apuntador natural al interactuar con el
modelo, permite conocer parametros del modelo tales como: posicion mas cercana del
modelo al apuntador, material, etc.
Para la deteccion de la mano en video y el reconocimiento de las posiciones relativas de
los dedos, pueden ser implementados los siguientes metodos de deteccion y segmentacion:
transformacion Karhunen loeve, uso de serpientes (Snake) [31] y segmentacion por creci-
miento [32].
La transformacion Karhunen loeve y el uso de serpientes, presentan desventajas para el
reconocimiento de la mano en la imagen capturada. La transformacion Karhunen se afecta
por variaciones de luz, sombras y tonalidad de la piel y requiere entrenamiento previo para
diferentes usuarios. El uso de serpientes presenta la desventaja de ser un metodo iterativo
y no es facil controlarlo.
Karhunen Loeve
La proyeccion Karhunen-Loeve es una forma muy eficiente para reducir un espacio de alta
dimension a un subespacio de baja dimension. Los vectores producidos por la proyeccion
Karhunen-Loeve son llamados comunmente componentes principales. Otro nombre que
reciben estos vectores es el de caracterısticas mas expresivas(del ingles most expressive
features (MEF)) que es la mejor descripcion del conjunto de muestras en el sentido de la
transformacion lineal [31].
2.7 Aplicaciones en Realidad Aumentada 27
Smart Snakes
Los modelos de formas activas (del ingles Active Shape Models (ASM)) o Serpientes
Inteligentes fueron originalmente disenados como un metodo para la localizacion exacta
de un elemento en una imagen fija, partiendo de una suposicion inicial. El concepto que
usa este metodo es sencillo de aplicar. Un contorno que es aproximadamente la forma de
la caracterıstica que deseamos detectar en la imagen, se coloca sobre la imagen muy cerca
a la forma de la caracterıstica. Dicho contorno es atraıdo hacia los bordes cercanos en
la imagen (cambios de intensidad), haciendo mas parecido a los bordes de la forma, esto
implica una deformacion del contorno aplicado a la imagen para encajar exactamente al
ajuste de la caracterıstica.
Segmentacion por Crecimiento
La segmentacion por crecimiento se encarga de extraer el contorno de la mano, de acuerdo
a la region de color deseado. Cuando se determina el contorno de la mano, se buscan las
maximas curvaturas del contorno. Para esto se crea una funcion de curvatura que permite
definir que valor del contorno presenta mayor curvatura y seleccionarlo como el puntero
de la mano. En resumen, los dedos forman los picos de la funcion de curvatura de la
mano. La principal ventaja del metodo de segmentacion por curvatura es la resistencia al
ruido por efectos de cuantizacion y por posibles errores de segmentacion. Tambien es una
metodo que se adapta a la escala del contorno, variando el umbral de filtrado de acuerdo
a los puntos significativos del contorno.
Para las aplicaciones de RA, debemos conocer los tiempos de carga del modelo 3D y el
numero de imagenes por segundo transmitidas al sistema de vision. Por lo que en estas
aplicaciones el tiempo de carga es considerado el mas crıtico.
Muchas veces se piensa que el tiempo de carga del modelo depende del tamano del ar-
chivo, pero esto no es cierto. El tiempo de carga depende del numero de caras(C) y de
28 Fundamentacion Teorica
mallas(M) del modelo, que es proporcional a la relacion C/M. El tiempo de carga del
modelo no llega a ser algo negativo, debido a que este modelo se carga una sola vez para
la aplicacion.
La tasa de transmision de datos del sistema de vision, tambien depende de la relacion
entre las caras y las mallas del modelo. Pero la resolucion de la secuencia de imagenes es
el parametro clave en la generacion de imagenes en RA y crece linealmente con el numero
de caras y la resolucion de la imagen.
El sistema RA al ser sometido a diferentes condiciones de iluminacion natural y artificial
de forma directa o indirecta se comporta de la siguiente forma:
Cuando se aplica iluminacion directa sobre el marcador en blanco y negro, la luz se refleja
por la superficie blanca del papel. Esto no permite que el dispositivo de vision reconozca
el marcador y no se pueda insertar el modelo 3D en la aplicacion. La forma de solucio-
nar dicho problema, se hace cambiando el tipo de papel o cambiando la iluminacion de
forma indirecta. Cuando las condiciones de iluminacion natural y artificial son extremas,
el programa no reconoce el marcador. Pero el marcador se puede reconocer incluso en
condiciones de sombras.
Otro problema en el reconocimiento del marcador por el sistema de vision, se debe a
oclusion del marcador como se observa en la Figura 2.6. En esta condicion, el progra-
ma no puede reconocer el marcador, se pierde la posicion de referencia del mismo y no
se sabe donde ubicar el elemento virtual. Como posible solucion, se implementan varios
marcadores para hacer que cuando una marcador falle, pueda ser reemplazado por otro.
La desventaja de agregar mas marcadores a la aplicacion, requiere mayor tiempo de carga
del modelo y la transmision de imagenes por segundo tambien se reduce. Para contrarres-
tar ese efecto, se reduce la resolucion de las imagenes que se adquieren por el dispositivo
de vision. Lo importante de las aplicaciones de RA es hacer constante la percepcion del
2.7 Aplicaciones en Realidad Aumentada 29
usuario y no perder detalle de lo que se observa.
Figura 2.6: Oclusion del marcador [4].
Las lıneas futuras de investigacion para las aplicaciones de RA, se enfocan a la interac-
cion completa del usuario sobre maquetas virtuales, lo cual se debe trabajar en calcular
la posicion de la mano en el mundo virtual. Esto permitira que la maqueta virtual pueda
ser modificada en caracterısticas como: tamano, color, y realizar diferentes disenos.
2.7.4. Diseno y evaluacion de ensamble por medio de la mano
en un ambiente RA
Este tipo de aplicacion basada en RA, consiste en un sistema de ensamble de componentes
virtuales. El ensamble de los modelos virtuales se lleva a cabo por medio de interaccion
natural, usando las puntas de dos dedos de la mano del usuario(dedos indice y pulgar)
para simular el ensamble de los modelos virtuales en el espacio 2D, como se observa en la
Figura 2.7. La tecnica de clasificacion de color implementada para la segmentacion de la
piel de la mano del usuario es conocida como RCE.
30 Fundamentacion Teorica
Figura 2.7: Simulacion de ensamble usando los dedos de la mano en un espacio 2D [5].
Red Neural de Energıa Restringida de Coulomb
Otro algoritmo usado para la segmentacion de la mano, es la Red Neuronal de Energıa Res-
tringida de Coulomb (del ingles RestrictedCoulombEnergy (RCE) NeuralNetwork) [6].
Este algoritmo incluye dos procesos. El entrenamiento de la red neuronal RCE es imple-
mentado para clasificar los pixeles con el color de la piel en la imagen y la segmentacion
de la mano. El diagrama de flujo del algoritmo de segmentacion de la mano [5], se muestra
en la Figura 2.8.
Para el entrenamiento de la red neuronal RCE, se debe seleccionar un area de la palma
de la mano para que la red clasifique los pixeles que hacen parte del color de la piel.
Posteriormente, se inicializa la captura de imagenes para realizar la segmentacion de la
mano del usuario. Para entrenar la red y segmentar la mano, la imagen se convierte
del espacio de color RGB a L*a*b*. La Figura 2.9(a) muestra el entrenamiento de la red
RCE y la Figura 2.9(b) muestra la segmentacion de la mano en el espacio de color L*a*b*.
2.7 Aplicaciones en Realidad Aumentada 31
Selección del área de entrenamiento de la mano
Conversión del espacio de color RGB a
L*a*b*
Entrenamiento de la red RCE
Captura de imagen a color
Conversión del espacio de color RGB a
L*a*b*
Segmentación de la mano en la imagen
Figura 2.8: Diagrama de flujo del algoritmo de segmentacion de la mano.
(a) (b)
Figura 2.9: a) Entrenamiento de la red RCE. b) Segmentacion de la mano en el espaciode color L*a*b* [6].
En este capitulo se presento la fundamentacion teorica correspondiente a la definicion
de Realidad Aumentada, Tecnicas de interaccion en sistemas con Realidad Aumentada,
Campos de aplicacion de RA, Herramientas sotfware usadas para la implementacion del
simulador de ensamble de dispositivos electronicos y aplicaciones en Realidad Aumentada.
Capıtulo 3
Estructura del Simulador de
Ensamble de Dispositivos
Electronicos
El simulador de ensamble esta constituido por una parte hardware y otra parte software.
El hardware para la aplicacion se integra de un sensor Kinect y una computadora portatil
para el procesado de imagenes y visualizacion de la interfaz del simulador de ensamble.
3.1. Sensor Kinect como un dispositivo de medicion
3D
El sensor Kinect es un dispositivo compuesto, que consta de un proyector de infrarrojos
con un patron definido y la camara de infrarrojos, que se utilizan para triangular puntos
en el espacio. Este trabaja como una camara de profundidad y una camara a color(RGB),
que pueden ser usadas para reconocer el contenido de la imagen y puntos con textura 3D.
En la figura 3.1 observamos las partes del sensor Kinect. El sensor kinect como dispositivo
de medicion envia tres senales de salida: Imagen IR, imagen RGB e imagen de profundi-
dad(invertida).
3.1 Sensor Kinect como un dispositivo de medicion 3D 33
Proyector
Figura 3.1: proyector infrarrojos(IR), camara IR y una camara RGB del sensor Kinect.
Las caracterısticas y especifıcaciones tecnicas del sensor kinect se presentan en la Tabla
3.1.
Sensores - Lentes de color y sensacion de profundidad- Microfono multi-arreglo- Ajuste de sensor con su motor de inclinacion- Totalmente compatible con las consolas existentes de Xbox 360
Campo de vision - Campo de vision horizontal: 57 grados- Campo de vision vertical: 43 grados- Rango de inclinacion fısica: ± 27 grados- Rango de profundidad del sensor: 1,2 – 3,5 metros
Data Streams (Flujo de datos) - 320 × 240 a 16 bits de profundidad a 30fps- 640 × 480 32-bit de color a 30fps- Audio de 16-bit a 16 kHz
Sistema de Seguimiento - Rastrea hasta 6 personas, incluyendo 2 jugadores activos- Rastrea 20 articulaciones por jugador activo- Capacidad para mapear jugadores activos en Live Avatars
Sistema de audio - Chat en vivo y voz dentro del juego (requiere Xbox Live Gold)- Sistema de cancelacion de eco que aumenta la entrada de voz- Reconocimiento de voz multiple
Tabla 3.1: Caracterısticas y especifıcaciones tecnicas del sensor kinect.
34 Estructura del Simulador de Ensamble de Dispositivos Electronicos
3.1.1. Imagen IR
Camara IR(1280×1024 pixels por 57×45 grados de campo de vision, 6.1 mm de longitud
focal,tamano pixel 5.2µm) es usada para observar y decodificar el patron de proyeccion
IR para triangular la escena 3D.
3.1.2. Imagen RGB
Camara RGB(1280×1024 pixeles por 63×50 grados de campo de vision, 2.9 mm de lon-
gitud focal, tamano de pixel 2.8µm).
3.1.3. Imagen de Profundidad
La salida principal de un sensor Kinect es una imagen raw que corresponde a la profun-
didad en la escena de video. En lugar de proporcionar la profundidad actual z, el sensor
Kinect retorna la “profundidad inversa” d, Figura 3.2. Tomando en cuenta la resolucion
de profundidad alcanzada con el sensor Kinect. La imagen de profundidad es construida
por la triangulacion de la imagen IR y el proyector, ası es “llevada” por la imagen IR.
3.1.4. Resolucion de profundidad
Las Figuras 3.3 y 3.4 muestran la resolucion en profundidad como una funcion de la dis-
tancia. La resolucion de profundidad fue medida por el movimiento del sensor Kinect en
el siguiente rango de distancia(0.5-15m), frente a un objeto plano para capturar todos los
valores retornados en un campo de vision de aproximadamente 5 grados sobre el centro
de la imagen.
El tamano del paso de cuantizacion q, es la distancia entre los dos valores consecutivos
grabados. La funcion que define el paso de cuantizacion en funcion de la profundidad z,
se define por la ecuacion 3.1.
3.1 Sensor Kinect como un dispositivo de medicion 3D 35
Distancia[m]
Pro
fundid
ad invers
a[-
]
Figura 3.2: Profundidad inversa del sensor kinect como una funcion de la profundidadreal [7].
q(z) = 2,73z2 + 0,74z − 0,58[mm] (3.1)
Con z en metros. Los valores de q en el inicio y final del rango operacional del sensor
Kinect fueron q(0.5m)= 0.65mm y q(15.7m)= 685mm.
3.1.5. Corrimiento entre la imagen IR y la imagen de profundi-
dad
Las imagenes IR y de profundidad del sensor Kinect presentan un corrimiento entre sı.
Para determinar el corrimiento [u0, v0]T , diferentes objetos fueron capturados en las ima-
genes IR y de profundidad, Figura 3.5(a). El objeto comparado fue segmentado del fondo
de la imagen y el corrimiento fue determinado colocando la forma segmentada en la mejor
36 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Dato medido
Ajuste polinomial orden 2
Paso de cuantización como una función de la distancia del objeto frente al kinect
Distancia[m]
Tam
añ
o d
el p
aso
de c
uan
tiza
ción
[mm
]
Figura 3.3: Paso de cuantizacion q del sensor Kinect(0-15m) [7].
alineacion, Figura 3.5(b).
Los resultados de experimentos con objetos de diferentes tamanos son mostrados en la
Tabla 3.2. El corrimiento fue estimado como el valor medio de todos los experimentos.
Un resultado propuesto usando una ventana de correccion de tamano 9×9 en el proceso
de calculo de la profundidas se obtuvo en [33].
Imagen 1 2 3 4 Promediou0 2.8 2.9 3.0 3.4 3.0v0 3.0 2.7 2.8 3.1 2.9
Tabla 3.2: Corrimiento de posicion de pixel entre las imagenes en el IR y profundidad.
3.1 Sensor Kinect como un dispositivo de medicion 3D 37
Dato medidoAjuste polinomial orden 2
Distancia[m]
Paso de cuantización como una función de la distancia del objeto frente al kinect
Tam
añ
o d
el p
aso
de c
uan
tiza
ción
[mm
]
Figura 3.4: Paso de cuantizacion q del sensor Kinect(0-5m) [7].
3.1.6. Modelo geometrico del sensor Kinect
El sensor Kinect es modelado como un sistema de vision multiple que consiste de cama-
ras RGB, IR y profundidad. El modelo geometrico de las camaras RGB y IR, las cuales
proyectan un punto X en el espacio 3D, en un punto [u, v]T de la imagen, es dado por [34]
u
v
1
= K
s
t
1
(3.2)
s
t
1
= (1 + k1r2 + k2r
4 + k5r6)
p
q
0
+
2k3pq + k4(r
2 + 2p2)
2k4pq + k3(r2 + 2q2)
1
(3.3)
38 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Desalineación de la imagen en la cámara IR(negro) y la imagen de profundidad(borde blanco)
Píxel
Píxel
(a)
Alineación de la imagen en la cámara IR(negro) y la imagen de profundidad(borde blanco)
Píxel
Píxel
(b)
Figura 3.5: Corrimiento entre una imagen IR y una imagen de profundidad y su correccion: a) Alineacion antes. b) Alineacion despues.
3.1 Sensor Kinect como un dispositivo de medicion 3D 39
r2 = p2 + q2,
pz
qz
z
= R(X − C) (3.4)
CRGBCIR CProyector
X1
RRGBCRGB
Figura 3.6: Modelo geometrico del sensor Kinect [7].
con parametros de distorsion k = [k1, k2, . . . , k5], Matriz de calibracion de la camara K,
rotacion R y centro de la camara C [35, 36].
La camara de profundidad del sensor Kinect esta asociada a la geometrıa de la camara
IR. Esta retorna la profundidad inversa d a lo largo del eje z, Figura 3.6, para cada pıxel
[u, v]T de la camara IR como
40 Estructura del Simulador de Ensamble de Dispositivos Electronicos
x
y
d
=
u− u0v − v01c1
1z− c0
c1
(3.5)
donde u, v son dados por la ecuacion 3.3, la profundidad real z por la ecuacion 3.4, y
[u0, v0]T en la Tabla 3.2, X representa las coordenadas 3D de un punto 3D, y c1, c0 son
parametros del modelo. Normalmente, se asocia el sistema de coordenadas del sensor Ki-
nect con la camara IR y ası obtener RIR = I y CIR = 0. Un punto 3D XIR es construido
por la medida [x, y, d] en la imagen de profundidad por
XIR =1
c1d+ c0dis−1
KIR−1
x+ u0
y + v0
1
, kIR (3.6)
y proyectada a las imagenes RGB como
uRGB = KRGBdis(RRGB(XIR − CRGB), kRGB) (3.7)
donde dis es la funcion de distorsion dada por la ecuacion 3.3, kIR, kRGB son parametros
de distorsion respectivos de las camaras IR y RGB, KIR es la matriz de calibracion de la
camara IR y KRGB, RRGB, CRGB son la matriz de calibracion, la matriz de rotacion y el
centro de la camara RGB respectivamente.
3.2. Estructura software desarrollada para la imple-
mentacion del simulador de ensamble
Las librerıas y herramientas de programacion comerciales usadas para implementar el
simulador de ensamble de dispositivos electronicos, se dividen en tres herramientas fun-
3.2 Estructura software desarrollada para la implementacion del simuladorde ensamble 41
damentales, tales como: OpenNI, OpenGL y ARToolKit, como se observan en la Figura
3.7. A continuacion se explica brevemente la estructura de software OpenNI y su respec-
tiva funcionalidad.
Estructura software de OpenNI
La estructura OpenNI proporciona los drivers para el reconocimiento del sensor Kinect
como dispositivo de adquisicion de datos. Tambien habilita la comunicacion con el software
intermedio (Algoritmos y controles NITE) que analiza los datos capturados por el sensor.
NITE
Tecnologıa de interaccion natural para el usuario final de PrimeSense( del ingles Natural
Interaction Technology for End-user-NITE) [37], es el software intermedio que percibe el
mundo 3D, basado en las imagenes de profundidad y traduce esas percepciones, dandole
un significado a los datos en la misma forma que las personas lo hacen. El sensor 3D Pri-
meSensor observa el ambiente del usuario, mientras que NITE actua como la ingenierıa
de percepcion que abarca la interaccion del usuario con su entorno. El software inter-
medio NITE incluye algoritmos de vision por computadora que habilita la identificacion
de usuarios y el seguimiento de sus movimientos, tambien una estructura API para la
implementacion de una interfaz de usuario con controles de interaccion natural que estan
basados en los gestos de los usuarios.
Algoritmos y controles NITE
El software intermedio NITE incluye tanto un generador de vision por computadora y
una estructura que proporciona a la aplicacion los controles de interfaz de usuario basado
en gestos. Esta division es esencialmente las dos capas que constituyen a NITE:
1. Algoritmos NITE: Es la capa de abajo que interpreta el trabajo previo del pro-
cesamiento del flujo de imagenes de profundidad en formato raw. Esta capa utiliza
42 Estructura del Simulador de Ensamble de Dispositivos Electronicos
algoritmos de vision por computadora para interpretar:
Segmentacion de escena: Es un proceso en el cual los usuarios y los objetos son
separados del fondo de la escena y por consiguiente etiquetados.
Deteccion y seguimiento de un punto de la mano: Las manos de los usuarios
son detectadas y posteriormente seguidas.
Seguimiento de cuerpo completo: Se basa en la salida de la segmentacion de la
escena, en donde los cuerpos de los usuarios son seguidos para determinar su
posicion normal. Cuando se realiza el seguimiento del cuerpo del usuario, un
conjunto de localizaciones de uniones del cuerpo son marcadas.
2. Controles NITE: Es una capa de la estructura de aplicacion que analiza los pun-
tos de la mano generados por los algoritmos NITE y proporciona herramientas que
habilitan aplicaciones escritas para disenar los flujos de aplicaciones segun los mo-
vimientos de la mano. La estructura de controles NITE identifica gestos especıficos
y proporciona un conjunto de controles de interfaz de usuario que se basan en estos
gestos.
3.3. Base de datos de modelos 3D de los dispositivos
electronicos
Los modelos 3D de los dispositivos electronicos fueron obtenidos en formato .3Ds y poste-
riormente convertidos a formato .Obj, pasando de modelos vectoriales a modelos de texto
plano, lo cual simplifica el renderizado de los modelos dentro de la escena de video en
el simulador de ensamble de equipos electricos. Para realizar la tarea de conversion del
formato de cada uno de los modelos, se uso el software Wings3D, basado en el uso de
lıbrerias graficas de fuente abierta para crear modelos tridimensionales. En la Figura 3.8
se ensena como se convierte un modelo en formato .3Ds a otro tipo de formato soportado
por Wings3D.
3.3 Base de datos de modelos 3D de los dispositivos electronicos 43
GUI Simulador de Ensamble
OpenNI ARToolKit OpenGL
Sensor Kinect
PC
Marcador
Profundidad Video
Figura 3.7: Integracion de librerıas y herramientas de programacion.
Se prentende ensamblar diferentes tipos de instrumentos electricos, usando una variedad
de dispositivos electronicos, tales como: capacitores, resistencias, leds, bobinas, displays
LCD, jumpers, potenciometros, disipadores de calor, etc. A continuacion se muestra en
la Figura 3.9 los modelos de los diferentes dispositivos implementados en el simulador de
44 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Figura 3.8: Conversion de formatos de modelos 3D usando Wings3D.
ensamble.
3.4. Plataforma de ensamble
La plataforma de ensamble que se usa para realizar las operaciones de ensamblado de los
diferentes modelos tridimensionales que constituyen el equipo electrico, se ha considerado
elegir una hoja que contiene un marcador cuadrado en blanco y negro que lleva en el centro
un patron definido por determinado simbolo. La forma del patron no sera el mismo para
que funcione el marcador, tambien puede ser cambiado por otro marcador que contenga
otro tipo de patron, siempre y cuando se cargue el archivo que contiene la informacion
del patron en la implementacion por software. El tipico marcador cuadrado usado en
aplicaciones de RA, se observa en la Figura 3.10.
3.4 Plataforma de ensamble 45
(a) (b) (c)
(d)
Figura 3.9: Modelos 3D: a) Led. b) Resistencia. c) Potenciometro. d) Display LCD.
Figura 3.10: Ejemplo de marcador cuadrado.
46 Estructura del Simulador de Ensamble de Dispositivos Electronicos
3.5. Modelo de interaccion entre la mano del usuario
y los modelos 3D
La funcionalidad del simulador de ensamble de dispositivos electronicos por medio de
RA, se basa en que el usuario use su mano como elemento de interaccion natural para
manipular los modelos tridimensionales que constituyen el equipo electrico que se desea
ensamblar.
La plataforma de ensamble que se requiere para llevar a cabo dicha tarea, es una hoja que
lleva impreso un marcador en blanco y negro que contiene un patron predefinido para ser
reconocido por el algoritmo usado por la herramienta ARToolKit. Dicho marcador nos
permite conocer las coordenadas (x, y) de su centro. Esta coordenada sera usada como el
punto de referencia para anclar los modelos virtuales que se desean ensamblar.
Como primer paso para realizar la tarea de ensamble de cada uno de los modelos de las
piezas que conforman el equipo electrico, se seleccionan los modelos virtuales de la lista
desplegable de dispositivos electronicos en la interfaz grafica de usuario del simulador de
ensamble. Dicho modelo tridimensional del dispositivo electronico se despliega en el centro
de la plataforma de ensamble. Para llevar a cabo dicha tarea se debe implementar una
subrutina basica, que permita que el modelo principal del equipo electrico se ancle ini-
cialmente al centro de la plataforma de ensamble (marcador blanco y negro, Figura 3.10).
Posteriormente se realiza la secuencia de ensamble de los modelos de las piezas restantes
usando la mano del usuario.
Una vez inicializada la captura de imagenes por medio del sensor Kinect, se detecta la
mano del usuario realizando un gesto de “click” con la mano extendida frente al sen-
sor Kinect a una distancia mayor de 1 m entre la palma de la mano del usuario y la
parte frontal del sensor Kinect. Cuando se detecta la mano del usuario como elemento
de interaccion natural, la aplicacion se encuentra en modo de ensamble. Para ensamblar
3.6 Interfaz de usuario para el sistema de ensamble 47
cada uno de los elementos virtuales que se van seleccionando de la biblioteca de modelos
virtuales de los dispositivos electronicos en la interfaz grafica, se mueve el modelo virtual
dentro de la escena de video, usando las coordenadas (x, y, z) del centro de la mano y
para anclar el modelo manipulado en determinada posicion de la escena, se realiza un
gesto de “ondeo” por medio de la mano, lo cual hace que el modelo manipulado se ancle
en la ultima posicion detectada del centro de la mano. De forma consecutiva se continua
con dicho proceso hasta ensamblar todos los modelos y obtener el dispositivo final.
3.6. Interfaz de usuario para el sistema de ensamble
La interfaz grafica que representa el simulador de ensamble de dispositivos electronicos
se disena por medio de las librerıas OpenGL Utility Toolkit (GLUT) y OpenGL, que
permiten la creacion de ventanas, botones, etc.
Un esquema inicial de la interfaz grafica del simulador de ensamble se observa en la Fi-
gura 3.11. La interfaz grafica se divide en tres subventanas, donde la subventana superior
izquierda se encarga de proyectar el modelo tridimensional del dispositivo electronico, la
subventana superior derecha contiene controles para habilitar y deshabilitar otros contro-
les integrados en la interfaz grafica. Tambien contiene una lista de los diferentes disposi-
tivos que se pueden utilizar en el proceso de ensamble, cambiar el tamano de los mismos,
mostrar el eje de referencia tridimensional del modelo y ocultar el modelo que se despliega
en la subventana superior izquierda, mientras que la subventana de abajo contiene contro-
les para manipular movimientos de rotacion, traslacion y profundidad, tanto del modelo
proyectado en la interfaz de usuario y el modelo proyectado en la escena de video. En una
ventana anexa a la interfaz grafica que contiene los controles del simulador, se realiza la
captura de video por medio del sensor Kinect, para visualizar en pantalla el proceso de
ensamble en tiempo real de los modelos tridimensionales, como se observa en la Figura
3.12.
48 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Figura 3.11: Interfaz grafica del simulador de ensamble de equipos electricos.
Figura 3.12: Captura de video anexa a los controles del simulador de ensamble.
3.6 Interfaz de usuario para el sistema de ensamble 49
A continuacion se hace una breve explicacion de cada uno de los controles que componen
la interfaz grafica del simulador de ensamble.
Controles del modelo
Modelo: Se usa para rotar el modelo del dispositivo electronico que se despliega en
la ventana.
Iluminacion: Es el encargado de cambiar la posicion de la fuente de iluminacion
sobre el modelo tridimensional.
Modelo XY : Se usa para hacer desplazamientos simultaneos de los modelos en los
ejes X-Y.
Modelo X : Se usa para realizar solo movimientos horizontales de los modelos.
Modelo Y : Este control se usa para hacer unicamente movimientos verticales de los
modelos.
Modelo Z : Se usa para aumentar y disminuir el tamano del modelo que se visualiza
en el ventana.
Controles del simulador
Modelo XZ video: Se usa para mover el modelo tridimensional del dispositivo de
forma horizontal y tambien darle el aspecto de profundidad.
Modelo video: Se usa para rotar el modelo del dispositivo electronico que se despliega
en tiempo real en pantalla donde se realiza el proceso de ensamble.
Movimiento Y : Este control se emplea para realizar el movimiento vertical del mo-
delo del dispositivo en la escena de video.
50 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Controles de la subventana derecha de la interfaz grafica
Dibujar Modelo: Cuando se usa este control, activando o desactivando la casilla,
se observa como se oculta o aparece el modelo tridimensional dentro de la interfaz
grafica.
Dibujar ejes : Si se activa o desactiva esta casilla se muestra los ejes de coordenadas
tridimensional, como punto de referencia del centro del modelo que se ha proyectado.
Dispositivos electronicos : Es la lista que despliega los dispositivos electronicos que
se usan para realizar el proceso de ensamble.
Escalar Modelo: Este control se usa para cambiar el tamano de los modelos de cada
dispositivo que se proyecta en la escena de video.
Numero de dispositivos : Este control se usa para limitar el numero de dispositivos
que se desean ensamblar.
Deshabilitar controles : El uso de este control deshabilita los controles del modelo y
los controles del simulador.
Habilitar controles : Se usa para habilitar los controles del modelo y los controles del
simulador.
Ocultar controles : Este control oculta la subventana que contiene los controles del
modelo y del simulador.
Mostrar controles : Activando este control se visualiza la subventana que contiene
los controles del modelo y del simulador.
Salir : Este boton permite salir completamente del simulador de ensamble de equipos
electricos.
3.7 Proceso de ensamble de los dispositivos electronicos 51
3.7. Proceso de ensamble de los dispositivos electroni-
cos
Cuando se ejecuta el simulador de ensamble de dispositivos electronicos, se despliegan en
la pantalla de la computadora personal, la interfaz grafica del simulador y la ventana de
video para observar en tiempo real el proceso de ensamble de cada uno de los dispositivos.
A continuacion se muestra un ejemplo de como se desarrolla el proceso de ensamble de 4
dispositivos, los cuales son: Tarjeta de circuito impreso, Potenciometro, Bobina y un Led.
Se usa como plataforma de ensamble el marcador en blanco y negro que se observa en el
video.
El primer paso despues de ejecutar el simulador de ensamble es hacer que el marcador
sea reconocido por la aplicacion, por lo que se busca ubicar el marcador dentro de un
angulo adecuado en el campo de vision del sensor Kinect y una distacia mayor a 50 cm
del mismo, de igual forma se desea que la iluminacion del marcador sea indirecta para que
este sea reconocido en todo momento. El reconocimiento del marcador se realiza cuando
se puede observar un modelo de un dispositivo electronico que se encuentra en turno en
la lista de dispositivos.
Posteriormente, se busca reconocer y seguir la mano del usuario para la manipulacion de
los modelos en tiempo real. Esto se logra por medio de un gesto de la mano abierta en
forma de ’click’ frente al sensor kinect a una distancia mayor a 150 cm de este. Cuando
se pueden mover los modelos virtuales por medio de la mano, es el momento de empezar
a realizar el proceso de ensamble de los dispositivos seleccionados.
Por medio de la interfaz grafica se puede ir seleccionado el dispositivo que se desea ver en el
video, cambiar su tamano y limitar el numero de dispositivos que se quieran ensamblar. Se
puede hacer uso de los controles de traslacion en los ejes X,Y y Z, tambien movimientos de
52 Estructura del Simulador de Ensamble de Dispositivos Electronicos
rotacion de los modelos virtuales tanto en la interfaz grafica como en video en tiempo real.
Para realizar el proceso ensamble de cada uno de los dispositivos como se observa en
las Figuras [3.13, 3.14, 3.15, 3.16], se usa el gesto de ’ondeo’ con la mano abierta frente
al sensor Kinect. Cuando este gesto es detectado por la aplicacion el modelo virtual del
dispositivo electronico se ensambla en la ultima posicion del centro de la mano realizando
dicho gesto.
Figura 3.13: Tarjeta de circuito impreso para el ensamble de dispositivos electronicos.
Figura 3.14: Ensamble del potenciometro.
3.8 Metodo de evaluacion del simulador de ensamble de dispositivoselectronicos 53
Figura 3.15: Ensamble de la bobina.
Figura 3.16: Ensamble del led.
3.8. Metodo de evaluacion del simulador de ensamble
de dispositivos electronicos
El metodo de evaluacion del simulador se realizo de forma subjetiva. El experimento
fue hecho con diferentes personas, bajo condiciones controladas de iluminacion en un
recinto cerrado. Las variables dependientes, incluye el tiempo que lleva en ensamblar
cierto numero de dispositivos electronicos, posibles fuentes de error y el trabajo mental
que demanda cada individuo en el proceso de emsamble, haciendo uso de la interfaz grafica
del simulador de ensamble.
54 Estructura del Simulador de Ensamble de Dispositivos Electronicos
Participantes
10 participantes del INAOE se prestaron como voluntarios para la evaluacion subjeti-
va del simulador de ensamble de dispositivos electronicos. Estos participantes no han
tenido algun tipo de experiencia en aplicaciones en un ambiente de RA. Antes que los
participantes realizaran las pruebas con el simulador de ensamble, se les brindo instruc-
ciones acerca de cada uno de los controles que componen la interfaz grafica de usuario y
la manera como se debe interactuar naturalmente por medio de la mano para realizar el
ensamble de cada uno de los dispositivos electronicos.
Mediciones
Dos tipos de mediciones fueron escogidas para la evaluacion subjetiva del simulador de
ensamble: Rendimiento de la tarea de ensamble y la carga de trabajo mental percibido.
El rendimiento de la tarea es definido como el tiempo que tarda el participante en en-
samblar cierto numero de dispositivos electronicos. La carga de trabajo mental percibido
por los participantes es medido usando la herramienta de valoracion de trabajo subjetivo
conocida como NASA Task Load Index (NASA TLX) [38]. NASA-TLX permite realizar
evaluaciones subjetivas sobre la carga de trabajo mental del usuario que trabaja con siste-
mas hombre-maquina. NASA-TLX es un procedimiento de clasificacion multidimensional
que deriva una puntuacion global de carga de trabajo basado en una media ponderada de
las calificaciones en seis subescalas. Este fue desarrollado por el Grupo de Rendimiento
Humano en el Centro de Investigacion Ames de la NASA, con una duracion de desarrollo
de 3 anos que incluye mas de 40 simulaciones en laboratorio.
Estas subescalas incluyen demanda mental, demanda fısica, demanda temporal, desem-
peno propio, esfuerzo y frustracion, basado en la experiencia de la prueba usando una
escala de 0 a 20 puntos para la calificacion de cada una de las subescalas, en donde 0 es
la calificacion mas baja y 20 es la calificacion mas alta. Dicha herramienta de valoracion
se usa para evaluar la carga de trabajo en diversos ambientes hombre-maquina tales co-
3.8 Metodo de evaluacion del simulador de ensamble de dispositivoselectronicos 55
mo: Cabinas de aviones, comando, control, comunicacion y estaciones de trabajo (C3);
ambientes de control de proceso y supervision, simulaciones y pruebas de laboratorio.
Procedimiento
Los participantes fueron familiarizados con el simulador de ensamble, explicandoles la
dinamica de la prueba de simulacion y algunas recomendaciones para evitar errores. Se
les enseno la funcionalidad de cada uno de los controles que integran la interfaz grafica
de usuario, tambien los elementos externos que componen la prueba tales como el sensor
Kinect, la plataforma de ensamble(marcador), la computadora personal como dispositivo
de procesamiento de informacion y visualizacion del proceso de ensamble en tiempo real.
Tambien se les indico como inicializar el simulador de ensamble por medio de un gesto
especifico para el reconocimiento y seguimiento de la mano y el otro gesto usado para el
ensamblaje de cada uno de los dispositivos electronicos.
Los participantes despues de recibir una serie de instrucciones acerca de la prueba de
ensamble oficial, realizaron pruebas previas con el simulador de ensamble. Los errores que
se presentaron en dichas pruebas fueron explicados a los participantes. Posteriormente, se
les pregunto si se sintieron comodos en la realizacion de la prueba y si querian repetir la
prueba previa para sentirse mas familiarizados con el ambiente del simulador. Cuando los
participantes se sintieron comodos con los resultados de ensamble de las pruebas previas,
ellos procedieron a realizar la prueba oficial y completaron la prueba de ensamble. Una
vez se finalizo la prueba, los participantes completaron el cuestionario que se emplea en la
herramienta de valoracion subjetiva NASA TLX. El cuestinario que acompana a cada una
de las subescalas de la herramienta de valoracion NASA TLX, para que los participantes
puedan calificar de manera subjetiva el simulador de ensamble de dispositivos electronicos
es el siguiente:
1. Demanda Mental(DM): ¿ Cuanta demanda mental exigio la tarea?
2. Demanda Fısica(DF): ¿ Cuanta demanda fısica exigio la tarea?
56 Estructura del Simulador de Ensamble de Dispositivos Electronicos
3. Demanda Temporal(DT): ¿ Que tan apresurado o acelerado estuvo el ritmo de
la tarea?
4. Desempeno Propio(DP): ¿ Que tanto exito tuviste en el cumplimiento de la
tarea que te pidieron hacer?
5. Esfuerzo(E): ¿ Que tan duro tuviste que trabajar para cumplir tu nivel de desem-
peno?
6. Frustracion(F): ¿ Que tan inseguro, desanimado, irritado, estresado y enfadado
estabas?
En este capıtulo se menciona la estructura del simulador de ensamble de dispositivos
electronicos. Tambien se hace una breve explicacion de los componentes del sensor Ki-
nect, sus caracterısticas y especifıcaciones tecnicas.
Capıtulo 4
Resultados
En los resultados preliminares del simulador de ensamble de equipos electricos, se observa
que a partir del movimiento de la mano del usuario se obtienen movimientos lineales de
un modelo virtual en los ejes(x, y e z) sobre el plano de referencia que es definido por
el marcador( punto de referencia de la plataforma de ensamble ). En la Figura 4.1 se
muestra un ejemplo de la manipulacion de un modelo 3D( modelo virtual primitivo ) por
medio de la mano.
La trayectoria de la mano en un determinado instante de tiempo en el espacio tridimen-
sional, se puede observar en la Figura 4.2.
Las coordenadas (x, y) de la grafica en el espacio tridimensional observada en la Figura
4.2, representan las posiciones de los pixeles a lo largo y ancho de las imagenes con una
resolucion de 640 × 480 pixeles, capturadas en video en tiempo real y la coordenada z
representa la profundidad del centro de la mano con respecto a la ubicacion de la camara.
Las coordenada z se representa en metros.
Se realizo la toma de datos de la trayectoria del centro de la mano para ser graficada.
Lo que se queria comprobar con el experimento, es si hacemos un movimiento lineal y
horizontal frente al sensor Kinect, el resultado de la trayectoria graficada muestra un
58 Resultados
Figura 4.1: Movimiento del modelo 3D con la mano.
comportamiento parecido al que realizamos. A continuacion se observa la trayectoria de
la mano de la toma de datos hecha con el sensor kinect.
En la Figura 4.3, se observa la trayectoria de la mano realizada frente al kinect en el plano
imagen x− y. El movimiento de la mano empieza de derecha a izquierda y al finalizar el
movimiento se observa un cambio brusco en la trayectoria, esto se debe a que el punto del
centro de la mano se pierde dentro la captura y dicho punto se traslada a otra ubicacion.
Por medio del comando smooth de Matlab y usando el metodo Moving Average se obtiene
una mejor respuesta de la trayectoria de la mano. En la Figura 4.4 se observa el resultado
de la operacion de suavizado.
El reconocimiento de la mano se puede realizar de dos formas. La primera es simulando el
efecto de hacer un click con la mano, si se produce un cambio significativo en profundidad
Resultados 59
100 200 300 400 500 600
0
100
2000.5
1
1.5
2
xy
z[m
]
Figura 4.2: Trayectoria de la mano en el espacio tridimensional.
hacia adelante y atras de la mano, se inicia el reconocimiento y seguimiento de la misma.
La segunda forma es por medio de un gesto de ondeo. El movimiento de la mano debe
hacerse con la palma de la mano completamente abierta y los dedos separados para que
el reconocimiento sea efectivo. El movimiento de ondeo debe realizarse como mınimo 5
veces moviendo la mano de izquierda a derecha y viceversa hasta lograr su reconocimiento.
El otro experimento llevado a cabo, fue formar una fila y una columna de cubos virtuales
usando como seleccionador de los modelos el centro de la mano.
Se usa la mano para manipular una serie de cubos tridimensionales de diferentes dimensio-
nes. La idea principal es proyectar cada uno de los cubos sobre el marcador predeterminado
como plataforma de ensamble de los modelos virtuales. Cuando el primer cubo es super-
puesto sobre el marcador y se hace el respectivo reconocimiento de la mano, el modelo
virtual se puede llevar a cierta ubicacion en la escena de video. Esta ubicacion depende
60 Resultados
0 50 100 150 200 250 300 350 400 450260
240
220
200
180
160
140
120
100
80
Píxeles en X
Píx
eles
en
Y
Figura 4.3: Trayectoria de la mano.
de las coordenadas del centro de la mano. Para poder reconocer la mano del usuario en
la escena de video se debe realizar un gesto de cambio de profundidad o click frente al
Kinect. Una vez se pueda mover el modelo en la escena, debemos anclar dicho modelo
en cierta ubicacion por medio de un comando o gesto. El gesto usado para dicha tarea
es un ondeo de la mano, el cual activara una bandera que indica que se produjo dicho
gesto y eventualmente se ubica el modelo en la ultima coordenada de la mano que fue
detectada con ese movimiento. Partiendo de la idea de ubicar un modelo en determinada
ubicacion por medio del gesto de ondeo, se puede realizar un arreglo en fila de modelos
tridimensionales, como se observa a continuacion en la Figura 4.5.
De la misma manera como se formo una fila de cubos virtuales, se hace un apilamiento
de cubos tridimensionales sobre el marcador como se observa en la Figura 4.6.
Basandonos en el mismo principio con el que se llevo a cabo el ensamble de los modelos
Resultados 61
0 50 100 150 200 250 300 350 400 450260
240
220
200
180
160
40
120
100
80
Píxeles en X
Píx
eles
en
Y
Figura 4.4: Trayectoria de la mano con suavizado.
Figura 4.5: Arreglo en fila de tres cubos virtuales.
primitivos, se realizo el ensamble de una tarjeta de circuito impreso con diferentes dispo-
sitivos electricos (Capacitor, Led, Resistencia). El resultado del ensamble se aprecia en la
62 Resultados
Figura 4.6: Apilamiento de tres cubos virtuales.
Figura 4.7.
Figura 4.7: Tarjeta de circuito impreso ensamblada.
Los resultados que se obtuvieron por medio de la herramienta de evaluacion subjetiva
Resultados 63
NASA TLX realizada con 10 participantes, se muestra en la Tabla 4.1.
Participante DM DF DT DP E F Tiempo de ensamble1 5 2 15 18 4 6 2′30”2 5 5 10 20 10 8 1′30”3 1 1 14 10 5 1 2′10”4 5 2 16 15 10 2 1′50”5 3 1 17 20 5 1 2′
6 3 1 10 20 2 2 2′45”7 4 4 10 12 5 8 3′41”8 3 3 10 13 5 7 4′”9 5 3 7 15 10 5 2′30”10 1 3 5 18 3 2 3′20”
Tabla 4.1: Resultado con la herramienta de evaluacion subjetiva NASA TLX.
Promediando cada una de las calificaciones de las subescalas de la herramienta de evalua-
cion subjetiva NASA TLX, se realizo la siguiente grafica con los respectivos promedios,
ver Figura 4.15. El tiempo promedio de ensamble determinado del experimento realizado
con los 10 participantes fue de 158 segundos.
En este capıtulo se muestran los resultados del ensamble de modelos primitivos y disposi-
tivos electronicos con el simulador de ensamble. Tambien los resultados obtenidos usando
la herramienta de evaluacion subjetiva NASA TLX, realizando la prueba de ensamblar
cuatro dispositivos electronicos por medio de diez usuarios.
64 Resultados
Figura 4.8: Evaluacion Demanda Mental.
Figura 4.9: Evaluacion Demanda Fısica.
Resultados 65
Figura 4.10: Evaluacion Demanda Temporal.
Figura 4.11: Evaluacion Desempeno Propio.
66 Resultados
Figura 4.12: Evaluacion de Esfuerzo.
Figura 4.13: Evaluacion de Frustacion.
Resultados 67
Figura 4.14: Tiempo de Ensamble.
Figura 4.15: Promedio de las subescalas de evaluacion.
68 Resultados
Figura 4.16: Desviacion estandar de las subescalas de evaluacion.
Capıtulo 5
Conclusiones y Perspectivas
Se incursiono en el desarrollo de un simulador en ambiente de realidad aumentada por
interaccion natural para ensamble de dispositivos electronicos. Actualmente en la indus-
tria de diseno de circuitos electronicos no se ha implementando una aplicacion con el
mismo enfoque, tampoco usando interaccion natural. Por lo tanto se realizo la propuesta
y finalmente se llevo a cabo la tesis de maestrıa en este topico.
El reconocimiento de la mano se puede realizar de dos formas distintas, ya sea simulando
el efecto de hacer un ‘click’ o un ‘ondeo’ manteniendo la palma de la mano completamente
abierta y los dedos separados para que el reconocimiento sea efectivo.
A partir del movimiento de la mano podemos obtener movimientos lineales de un objeto
virtual en los ejes de coordenadas (X, Y y Z) sobre el plano de referencia definido por el
marcador.
Al promediar las calificaciones de las subescalas de evaluacion subjetiva, una vez realiza-
das las pruebas de ensamble de cuatro dispositivos electronicos virtuales por cada uno de
los 10 participantes, se observo que las subescalas de evaluacion como lo son: Demanda
Mental, Demanda Fısica, Esfuerzo y Frustacion, tuvieron una calificacion promedio por
debajo de 6 puntos en la escala de 0 a 20, lo cual es positivo. Mientras que en la subescala
70 Conclusiones y Perspectivas
de Desempeno Propio se obtuvo una calificacion alta, siendo positivo para el usuario.
Las limitaciones del simulador de ensamble de dispositivos electronicos son:
Los dispositivos electronicos deben ser seleccionados por medio del raton o teclado,
estos no seleccionan usando la mano del usuario.
Se usan los controles de traslacion y rotacion de los modelos atraves de la interfaz
grafica del simulador de ensamble para manipular los modelos de una forma alterna
al uso de la mano. No se puede realizar rotacion de los modelos por medio de la
mano.
Como trabajo a futuro se puede implementar el simulador de ensamble de dispositivos
electronicos, usando comandos de voz, gestos corporales para seleccionar los modelos que
se desean ensamblar y realizar transformaciones geometricas sobre los modelos virtuales.
Como resultado del simulador de ensamble de dispositivos electronicos, se pueden derivar
otras aplicaciones en diferentes areas de la industria. Tambien incursionar en el desarrollo
de proyectos en la ensananza de nuevas tecnologıas con realidad aumentada en el sistema
de educacion mexicano.
Desarrollar un simulador de ensamble de dispositivos electronicos con un sistema de con-
trol con las manos de elevada precision. Esto se puede implementar usando dos sensores
Kinect para ganar precision, ademas comparar la posicion de las manos con una base de
datos pre-renderizada de forma que los gestos sean ejecutados con muy poco retraso. De
esta forma se busca tener un control total en un entorno 3D y en una posicion para el
usuario completamente natural.
Implementar un simulador de ensamble de dispositivos electronicos, teniendo presentes los
problemas de oclusion entre los elementos virtuales y los objetos reales dentro la escena
Conclusiones y Perspectivas 71
de vıdeo. Tambien realizar pruebas funcionales a los dispositivos ensamblados.
Con el resultado de este trabajo de maestrıa, se pretende realizar un articulo para ser
publicado en una revista internacional.
Bibliografıa
[1] OpenNI. Estructura para multiples plataformas que define APIs (Application
Programming Interfaces) para escribir aplicaciones utilizando interaccion natural.
[Internet]. Visite: http://openni.org
[2] OpenGL. Librerıas de renderizado y modelado en 2d y 3d. [Internet]. Visite:
http://www.opengl.org
[3] ARToolKit. Librerıa para la deteccion y seguimiento de marcadores 2d. [Internet].
Visite: http://www.hitl.washington.edu/artoolkit
[4] A. Aguilar, C. Urdiales Garcıa, J. F. Ruiz, and F. Sandoval Hernandez, “Ideacion
arquitectonica asistida mediante realidad aumentada,” noviembre 2004 XIV Jornadas
Telecom I+D, Madrid.
[5] Z. Wang, Y. Shen, S. K. Ong, and A. Y.-C. Nee, “Assembly Design and Evalua-
tion Based on Bare-Hand Interaction in an Augmented Reality Environment,” 2009
International Conference on CyberWorlds, pp. 21–28, 2009.
[6] X. Yin, D. Guo, and M. Xie, “Hand image segmentation using color and RCE neural
network,” Robotics and Autonomous Systems, vol. 34, no. March 2000, pp. 235–250,
2001.
[7] J. Smisek, M. Jancosek, and T. Pajdla, “3D with Kinect,” in Computer Vision Works-
hops (ICCV Workshops), 2011 IEEE International Conference on, nov. 2011, pp.
1154 –1160.
BIBLIOGRAFIA 73
[8] Esquire augmented reality issue. [Internet]. Visite: http://www.esquire.com/
the-side/augmented-reality
[9] D. Wagner, T. Langlotz, and D. Schmalstieg, “Robust and unobtrusive marker trac-
king on mobile phones,” in Mixed and Augmented Reality, 2008. ISMAR 2008. 7th
IEEE/ACM International Symposium on, sept. 2008, pp. 121 –124.
[10] R. Azuma, Y. Baillot, R. Behringer, S. Feiner, S. Julier, and B. MacIntyre, “Recent
Advances in Augmented Reality,” IEEE Comput. Graph. Appl., vol. 21, no. 6, pp.
34–47, Nov. 2001. [Internet]. Visite: http://dx.doi.org/10.1109/38.963459
[11] M. B. Dieter Schmalstieg, Tobias Langlotz, Augmented Reality 2.0 In: Virtual
Realities, Dagstuhl seminar proceedings (eds. Sabine Coquillart, Guido Brunnett,
Greg Welch), pp. 13-38. Springer, 2011. [Internet]. Visite: http://books.google.
com.mx/books?id=YREwmfLR5MYC
[12] H. Kato and M. Billinghurst, “Marker tracking and HMD calibration for a video-
based augmented reality conferencing system,” Proceedings 2nd IEEE and ACM In-
ternational Workshop on Augmented Reality (IWAR’99), pp. 85–94.
[13] Vallino, J.R., Interactive Augmented Reality. University of Rochester. Department
of Computer Science, 1998.
[14] G. Boothroyd, “Product design for manufacture and assembly,” Computer-Aided
Design, vol. 26, no. 7, pp. 505 – 520, 1994.
[15] W. Barfield and T. Caudell, Fundamentals of Wearable Computers and Augumented
Reality. Lawrence Erlbaum Associates, 2001.
[16] D. Reiners, D. Stricker, G. Klinker, and S. Muller, “Augmented Reality for Cons-
truction Tasks: Doorlock Assembly,” in IN PROC. IEEE AND ACM IWAR’98 (1.
INTERNATIONAL WORKSHOP ON AUGMENTED REALITY. AK Peters, 1998,
pp. 31–46.
74 BIBLIOGRAFIA
[17] W. Friedrich, “ARVIKA-augmented reality for development, production and service,”
in Mixed and Augmented Reality, 2002. ISMAR 2002. Proceedings. International
Symposium on, 2002, pp. 3 – 4.
[18] V. Halttunen and T. Tuikka, “Augmenting virtual prototyping with physical ob-
jects,” in Proceedings of the working conference on Advanced visual interfaces. New
York, NY, USA: ACM, 2000, pp. 305–306.
[19] S. Balcisoy, M. Kallmann, P. Fua, and D. Thalmann, “A framework for rapid evalua-
tion of prototypes with augmented reality,” in Proceedings of the ACM symposium
on Virtual reality software and technology. New York, NY, USA: ACM, 2000, pp.
61–66.
[20] B. Schwald, B. D. Laval, T. O. Sa, and R. Guynemer, “An Augmented Reality
System for Training and Assistance to Maintenance in the Industrial Context,” in
In The 11th International Conference in Central Europe on Computer Graphics,
Visualization and Computer Vision 2003, Plzen, Czech Republic, 2003, pp. 425–432.
[21] G. Klinker, O. Creighton, A. Dutoit, R. Kobylinski, C. Vilsmeier, and B. Brugge,
“Augmented maintenance of powerplants: a prototyping case study of a mobile AR
system,” in Augmented Reality, 2001. Proceedings. IEEE and ACM International
Symposium on, 2001, pp. 124 –133.
[22] G. Klinker, A. H. Dutoit, M. Bauer, J. Bayer, V. Novak, and D. Matzke, “Fata
Morgana .A Presentation System for Product Design,” in Proceedings of the 1st In-
ternational Symposium on Mixed and Augmented Reality. Washington, DC, USA:
IEEE Computer Society, 2002, pp. 76–.
[23] J. Fruend, C. Matysczok, and R. Radkowski, “AR-based product design in automobile
industry,” in Augmented Reality Toolkit, The First IEEE International Workshop,
2002, p. pp. 2.
BIBLIOGRAFIA 75
[24] S. Jayaram, Y. Wang, U. Jayaram, K. Lyons, and P. Hart, “VADE: A Virtual As-
sembly Design Environment,” IEEE Computer Graphics and Applications, pp. 44–50,
1999.
[25] B. Jung, M. Hoffhenke, and I. Wachsmuth, “Virtual Assembly With Construction
Kits,” 1997.
[26] A. G. de Sa and G. Zachmann, “Integrating Virtual Reality for Virtual Prototyping,”
1998.
[27] G. Zachmann, “Virtual Reality in Assembly Simulation – Collision Detection, Si-
mulation Algorithms, and Interaction Techniques,” Ph.D. dissertation, Darmstadt
University of Technology, Germany, May 2000.
[28] N. Ye, P. Banerjee, A. Banerjee, and F. Dech, “A comparative study of assembly
planning in traditional and virtual environments,” Systems, Man, and Cybernetics,
Part C: Applications and Reviews, IEEE Transactions on, vol. 29, no. 4, pp. 546
–555, nov 1999.
[29] W. Ma, Y. Zhong, S.-K. Tso, and T. Zhou, “A hierarchically structured and
constraint-based data model for intuitive and precise solid modeling in a virtual
reality environment,” Computer-Aided Design, vol. 36, no. 10, pp. 903 – 928, 2004.
[30] B. Frohlich, J. Deisinger, and H. Bullinger, Immersive Projection Technology and
Virtual Environments 2001: Proceedings of the Eurographics Workshop in Stuttgart,
Germany, May 16-18, 2001, ser. Springer computer science. Springer, 2001.
[31] Y. Cui and J. J. Weng, “Hand Segmentation Using Learning-Based Prediction and
Verification for Hand Sign Recognition,” Organization.
[32] T. Heap and F. Samaria, “Real-Time Hand Tracking and Gesture Recognition Using
Smart Snakes,” Distribution, pp. 1–13, 1995.
[33] K. Konolige and P. Mihelich. (2011) Technical description of kinect calibration.
[Internet]. Visite: http://www.ros.org/wiki/kinect calibration/technical
76 BIBLIOGRAFIA
[34] J. Y. Bouguet. (2010) Camera calibration toolbox. [Internet]. Visite: http:
//www.vision.caltech.edu/bouguetj/calib doc/
[35] R. I. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, 2nd ed.
Cambridge University Press, ISBN: 0521540518, 2004.
[36] A. Zisserman. Matlab functions for multiple view geometry. [Internet]. Visite:
http://www.robots.ox.ac.uk/∼vgg/hzbook/code/
[37] Primesense. [Internet]. Visite: http://primesense.com
[38] Nasa tlx: Task load index. [Internet]. Visite: http://humansystems.arc.nasa.gov/
groups/TLX/