Proyecto de investigación: “SISTEMA INMERSIVO DE...

32
1 Proyecto de investigación: “SISTEMA INMERSIVO DE REALIDAD VIRTUAL BASADO EN CABINA Y CAMINO SIN FIN” Registro asignado por la CGPI: 20070051. Director: M. en C. Mauricio Olguín Carbajal. Profesor Participante: M. en C. Juan Carlos Herrera Lozada Profesor Participante: M. en C. Israel Rivera Zárate. Profesor Participante: Ing. Adauto Israel Ortiz Profesor Participante: Ing. Carlos Aquino Ruiz. Participante PIFI: Oliver Pozas Quiterio. Participante PIFI: Roberto Carlos Ibañes Mejía. Participante Tesista: Noemí Ramírez García. Participante Tesista: Rodrigo Morales Alvarado Objetivos Realizar la segunda parte del desarrollo de un sistema inmersivo basado en cabina multipersonal, para su uso en la clase de diseño de sistemas de Realidad Virtual. Obtener la habilidad para mezclar imágenes y elementos virtuales y dispositivos reales (por ejemplo el desplazamiento y la mano del usuario) La necesidad de guiar y enseñar a otros de una forma razonable en mundos artificiales. El deseo de unir la supercomputación y fuentes de datos para su mutuo crecimiento.

Transcript of Proyecto de investigación: “SISTEMA INMERSIVO DE...

Page 1: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

1

Proyecto de investigación:

“SISTEMA INMERSIVO DE REALIDAD VIRTUAL

BASADO EN CABINA Y CAMINO SIN FIN”

Registro asignado por la CGPI: 20070051.

Director: M. en C. Mauricio Olguín Carbajal. Profesor Participante: M. en C. Juan Carlos Herrera Lozada Profesor Participante: M. en C. Israel Rivera Zárate. Profesor Participante: Ing. Adauto Israel Ortiz Profesor Participante: Ing. Carlos Aquino Ruiz. Participante PIFI: Oliver Pozas Quiterio. Participante PIFI: Roberto Carlos Ibañes Mejía. Participante Tesista: Noemí Ramírez García. Participante Tesista: Rodrigo Morales Alvarado

Objetivos • Realizar la segunda parte del desarrollo de un sistema inmersivo

basado en cabina multipersonal, para su uso en la clase de diseño de sistemas de Realidad Virtual.

• Obtener la habilidad para mezclar imágenes y elementos virtuales y dispositivos reales (por ejemplo el desplazamiento y la mano del usuario)

• La necesidad de guiar y enseñar a otros de una forma razonable en mundos artificiales.

• El deseo de unir la supercomputación y fuentes de datos para su mutuo crecimiento.

Page 2: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

2

ÍNDICE

1. Resumen Pág. 3 2. Introducción. Pág. 4 Sistemas de despliegue Pág. 4 Sistemas de proyección Pág. 4 Sistemas inmersívos Pág. 5 Uso de la cámara Pág. 6 3. Métodos y materiales. Pág. 7 Materiales Pág. 8 Desarrollo Pág. 9 Construcción Pág. 12 4. Resultados. Pág. 16 Resultados y conclusiones Pág. 16 Productos obtenidos Pág. 17 5. Bibliografía. Pág. 18 ANEXOS. Pág. 19

Page 3: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

3

1. RESUMEN

El presente trabajo reporta los avances de la segunda etapa del desarrollo de un sistema inmersivo basado en cabina multipersonal de Realidad Virtual en el CIDETEC del IPN. El objetivo principal es generar un sistema de realidad virtual para el desarrollo de proyectos de realidad virtual de parte de estudiantes así como de profesores.

Se han realizado avances notables en esta segunda etapa, entre ellos se concluyo la

construcción física de la cabina y se han realizado pruebas de visualización así como pruebas con el motor de realidad virtual, y pruebas de la caminadora ya en la cabina de inmersión.

Adicionalmente se probaron tres escenarios virtuales desarrollados por los

estudiantes de la materia de RV y los becarios PIFI. El proyecto genero toda una serie de ponencias (6) para congresos internacionales las cuales se incluyeron en las memorias de dichos congresos.

Page 4: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

4

2 INTRODUCCIÓN.

Una forma de simulación sin precedentes es la Realidad Virtual, en ella la simulación toma una nueva dimensión, ya que no son solo cálculos de números, ni simulaciones planas de datos, ni imágenes estáticas o video preempacado (como es el caso de la multimedia). Son simulaciones de audio, y video en tiempo real. Realidad Virtual es la simulación de un ambiente real o imaginario que puede ser experimentado visualmente en tres dimensiones, y puede proporcionar una completa experiencia interactiva en tiempo real con video, sonido e incluso retroalimentación táctil.

Un sistema de cómputo típico de realidad virtual, como se puede apreciar en la figura 1, consta de diferentes dispositivos de entrada y salida que un sistema típico de computo.

Figura 1. Elementos de un sistema típico de realidad virtual Las similitudes son obvias, pero las diferencias son las que importan. En lugar de teclado, ratón y control de juegos, se encuentran dispositivos tales como guantes, sistemas de rastreo y de retroalimentación haptica. En lugar de un monitor y bocinas se encuentra un casco. Este es el punto importante: lo que convierte una computadora en un sistema de RV son los periféricos que se adicionan y el software que ejecuta. Obviamente es necesario usar un procesador rápido (con un acelerador de gráficos 3D), pero son los dispositivos de entrada y salida los que realmente cuentan. 2.1 Sistemas de Despliegue

En la realidad virtual la computadora necesita ser capaz de mostrar el mundo virtual ya que el proceso de inmersión es altamente visual. Existen tres tipos básicos de sistema de despliegue: “Ventana del mundo”, Dispositivos colocados en la cabeza (HMD- Head Mounted Display) y sistemas basados en proyección. Estos últimos son los que nos interesan debido al nivel de inmersión y al poco estrés visual al que someten al usuario comparado con los otros sistemas.

2.1.1 Sistema de proyección.

Un sistema de proyección sencillo solo coloca la visión de un mundo virtual en una pantalla de proyección. El tamaño de la pantalla sirve para incrementar la sensación de inmersión, tal y como lo hace el cine. Un sistema de proyección con cabina o “Caverna” involucra el uso de múltiples proyectores, y pantallas que rodean al usuario en tres o cuatro lados. Existe un proyector por cada pantalla, de forma tal que el usuario se sienta rodeado por el mundo.

Los sistemas de cabina son muy útiles para pequeños grupos de usuarios, ya que cada uno puede

ver al mundo de forma simultanea. Sin embargo tienen ciertas desventajas: requieren múltiples sistemas de proyección y muy grandes cantidades de poder de cómputo para generar todas esas imágenes al mismo tiempo, así como mucho espacio de suelo para el sistema en general. Estas limitaciones hacen poco practicas a las cabinas para el uso casero, pero para museos, escuelas, industria y otros lugares son ideales.

Page 5: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

5

2.2 SISTEMAS INMERSIVOS:

Un sistema inmersivo logra que el usuario se sienta dentro del mundo virtual, en el caso de las cabinas de inmersión se pueden tener básicamente dos tipos de cabinas, las unipersonales y las multipersonales. Entre las cabinas unipersonales mas usadas se encuentran las que simulan vehículos de conducción, como pueden ser simuladores de automotores, de aviones, naves espaciales o de barcos o submarinos. Estas cabinas generalmente sustituyen las ventanas del vehiculo por pantallas de computadora de alta resolución, de forma que se cubra todo el ángulo visual del usuario. Generalmente estos sistemas usan una sola computadora para calcular todas las vistas del entorno virtual.

A principios de los 80, el científico Thomas A. Furness de la fuerza aérea norteamericana, comenzó a desarrollar una cabina individual para entrenar a los pilitos de la base Wright-Patterson en Ohio. La cabina contaba con un ángulo de visión de 120 grados lo cual proporciono una sensación de inmersión sin precedentes, ya que los sistemas existentes hasta ese momento solo contaban con 60 grados de campo de visión. Thomas A. Furnes dirige el Laboratorio de Tecnología de Interfaz Humana [1].

Actualmente dicha tecnología es básica para el entrenamiento de los pilotos de las fuerzas aéreas norteamericanas, así como para una gran parte de pilotos civiles en todo el mundo.

En las cabinas de inmersión multipersonales, se usan pantallas de proyección de gran tamaño, para una mayor sensación de inmersión, y proyectores posteriores para presentar las imágenes en las pantallas.

En 1992 la Universidad de Chicago demostró la Caverna (CAVE, Automatic Virtual

Environment), en la conferencia SIGGRAPH. La Caverna es un sistema de proyección de realidad virtual multipersonal basado en cabina de inmersión desarrollado por el Laboratorio de Visualización Electrónica (Electronic Visualization Lab)[2].

Aquí en México la Universidad Autónoma de México Cuenta con una sala inmersiva de realidad

virtual basada en una pantalla curva y en proyección para la Realidad Virtual. [3] El desarrollo que se propone en el presente trabajo es un sistema de inmersión multipersonal

basado en cabina pero con un camino sin fin el cual debe proporcionar al usuario de la cabina una sensación de inmersión aun más grande que desarrollos anteriores.

Un sistema de proyección sencillo solo coloca la visión de un mundo virtual en una pantalla de

proyección. El tamaño de la pantalla sirve para incrementar la sensación de inmersión, tal y como lo hace el cine.Un sistema de proyección con cabina o “Caverna” involucra el uso de múltiples proyectores y pantallas que rodean al usuario en tres o cuatro lados, figura 2.

Figura 2. Sistema de cabina

Page 6: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

6

Existe un proyector por cada pantalla, de forma que el usuario se sienta rodeado por el mundo. Los

sistemas de cabina son muy útiles para pequeños grupos de usuarios ya que cada uno puede ver al mundo de forma simultanea, sin embargo tienen ciertas desventajas: requieren múltiples sistemas de proyección y muy grandes cantidades de poder de cómputo para generar todas esas imágenes al mismo tiempo, así como mucho espacio de suelo para el sistema en general. Estas limitaciones hacen poco practicas a las cabinas para el uso casero, pero para museos, escuelas, industria y otros lugares son ideales. Las cabinas son estereoscópicas por medio del uso de lentes para visión estereoscópica.

• Una cabina de inmersión es un ambiente multipersonal, del tamaño de un cuarto, de alta

resolución, con audio y video en tres dimensiones. • En la configuración propuesta las graficas son proyectadas en formato estereoscopio en las tres

paredes y en el piso y vistas con lentes estereo.

2.2.1 Uso de la cámara de inmersión. Los usos se pueden dar en cualquier campo, pero especialmente en la capacitación y la

investigación, por ejemplo los sistemas de realidad virtual basados en cabinas se usan para entrenar a pilotos y astronautas.

Es posible usar un sistema de cabina para capacitación de técnicos o usuarios en herramienta y

equipo especializado como sistemas de bombeo de presas, los cuales no pueden ser desplazados de su lugar y con los cuales no se pueden estar haciendo pruebas mientras el nuevo usuario aprende.

En la investigación un sistema de cabina tiene múltiples usos desde la investigación en física

atómica, en biología celular, hasta la arquitectura y el diseño, pasando por la electrónica, las matemáticas, la informática, etc. Realmente todas las disciplinas que usan simulaciones son susceptibles de tener y desarrollar aplicaciones para un sistema como este.

• Una cabina de inmersión es un ambiente multipersonal, del tamaño de un cuarto, de alta resolución, con audio y video en tres dimensiones.

• En la configuración propuesta las graficas son proyectadas en formato estereoscopio en las tres

paredes y en el piso y vistas con lentes estereo.

Page 7: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

7

3 Métodos y materiales.

3.1 Motivación. ¿Por que construir una cabina?

La cabina se propone como una herramienta para la visualización científica. Objetivos • Desarrollar un sistema inmersivo de RV de bajo costo para un uso multidisciplinario dentro del

Instituto. • Crear un sistema de despliegue para la RV para el desarrollo de aplicaciones novedosas en un

ambiente inmersivo. • Llamar la atención de los estudiantes y profesores para que usen la RV en sus investigaciones y

desarrollos.

3.1.2 ¿Como es una cabina? Una cabina de inmersión es un ambiente multipersonal, del tamaño de un cuarto, con imágenes de alta resolución, con audio y video en tres dimensiones. En la configuración propuesta las graficas son proyectadas en formato estereoscopio en las tres paredes y vistas con lentes para una visualización estereoscópica.

En el diseño se incluye un camino sin fin, compuesto por una banda sin fin. De forma que el

usuario pueda caminar dentro del mundo virtual y al tiempo que avanza el mundo se mueva y se tenga una sensación de inmersión aun mayor. La propuesta de distribución de la cabina se muestra en la figura 4,

El camino sin fin es una propuesta del presente proyecto de investigación, y tiene el fin de solucionar algunos problemas de inmersión dentro de la cabina, uno de ellos es la movilidad del usuario y como al desplazarse pueden producir accidentes, tales como que al usuario se le “olvide” que esta dentro de un recinto cerrado y trate de caminar a través del mundo virtual rompiendo alguna de las pantallas de la cabina o, peor aun, causándose a si mismo un daño. Se tiene la hipótesis de que al permitirle al usuario “caminar” dentro del mundo virtual la sensación de inmersión será aun mayor pero sin riesgo para él o el equipo.

3.1.3 Características

Las proyecciones estereo y la correcta perspectiva del ambiente serán calculadas y actualizadas por un motor de realidad virtual formado por un cluster de computadoras. Las imágenes se moverán de forma sincronizada rodeando al usuario proyectando imágenes estereo de modelos 3D. Para el observador portando los lentes las pantallas de proyección se vuelven transparentes y la imagen 3D parece extenderse hasta el infinito.

3.1.4 Funcionamiento

En la cabina es posible simular, por ejemplo, un patrón de losetas que sean proyectadas en el suelo

y paredes de tal forma que parezca un piso que se extiende al infinito, fuera de los límites del cuarto de proyección, al caminar sobre el suelo se desplaza acorde con el desplazamiento del usuario en el camino sin fin. Objetos tridimensionales como mesas y sillas que aparenten presentarse dentro y fuera del cuarto de proyección. Para el observador estos objetos están ahí para el, mientras no intente tocarlos. Los sistemas basados en proyección, a diferencia de los de cascos, son ideales para presentaciones multipersonales, el único equipo adicional necesario son lentes estereo para cada usuario. Los participantes pueden compartir la experiencia virtual, mantener contacto visual, y comunicarse entre ellos de forma natural. Aunque solo un usuario controla la cabina.

3.1.5 Elementos • Se propone una cabina de 3x3x2.7 metros con pantallas translucidas, ver figura 2. • Tres proyectores con una resolución de 1024 x 768 píxeles, los cuales proporcionaran la imagen

periférica compuesta.

Page 8: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

8

• Lentes estereo serán usados para separar las imágenes para cada ojo de forma alternativa. • Un cluster de computadoras conforma un sistema de procesamiento distribuido es usado para calcular

las imágenes proyectadas y para el sistema de rastreo así como la sincronización de todos los elementos.

3.1.6 Motor.

El motor se puede desarrollar de dos formas básicamente: 1) Una sola computadora con mucho poder de cálculo y a una gran velocidad, con tres tarjetas de video, una para cada vista. 2) Un grupo de computadoras de capacidad media, encargada cada una de ellas de calcular la vista de una sola pantalla, sincronizadas todas por una cuarta computadora servidor, conectadas entre ellas por medio de una red local.

Se eligió la segunda opción para el presente desarrollo por dos motivos: Realizar una cabina de bajo presupuesto y usar equipo ya en existencia.

El motor consta de 4 computadoras Pentium: • A 2.8Mhz • Con memoria de RAM de 512 Mb • Disco Duro de 20 Gb • Tarjeta de video compatible con sistema OpenGL • Tarjeta de sonido • Tarjeta de red Ethernet 10/100 • Sistema java 3D Tres computadoras son clientes del servidor de sincronización. Cada uno de los clientes se encarga

de calcular una imagen de manera independiente, el servidor de sincronización se tiene la responsabilidad de informarle a cada cliente las características de cada imagen, de forma que todas tengan continuidad entre si. Los clientes y el servidor están conectadas en una red dedicada independiente. Materiales usados. Cantidad Descripción Uso. Fecha de

adquisición. Observaciones

3 Hoja de acrilico blanco humo de

3mm de 1.80 x 2.40

Pantallas para retroproyección.

24/09/2007 Las dimensiones de las pantallas tinen un formato de 4:3 el cual es el mismo

de salida del cañón de proyección.

2 Vinil 143-15 Respaldo blanco

Para fijar las pantallas a los

marcos.

16/10/2007

2 Esquinero bolsa de 3 m Para soporte vertical de la estructura.

16/10/2007

6 Bolsa de 3 pulgadas Para la construcción del

resto de la estructura.

16/10/2007 Soportes horizontales superiores e inferiores.

1 Escalonado 3 acuarela blanco

Para mejor acabado del

marco.

16/10/2007

2 Tapa bolsa de 3 pulgadas Para soporte a la estructura.

16/10/2007

1 Junquillo acuarela blanco Para el acabado de la estructura.

16/10/2007

Page 9: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

9

3.2 DESARROLLO DEL SISTEMA PROPUESTO El sistema es una cabina de 3 X 3 X 2.7 metros cúbicos con paredes formadas por pantallas translucidas a las cuales se les proyectan imágenes sincronizadas desde la parte posterior por medio de proyectores sincronizados por un conjunto de maquinas trabajando en un sistema de procesamiento distribuido. El sistema recibe entrada de datos desde diferentes fuentes como son un camino sin fin, un guante, la red, etc. Y proporciona información a través de las pantallas y el sistema de sonido. La distribución del sistema inmersivo basado en cabina es el siguiente.

Como se puede apreciar en el grafico anterior, se tienen 3 paredes de proyección con pantallas translucidas, las cuales reciben las imágenes de la retroproyección de 3 espejos que a su vez la reciben de los proyectores conectados al motor de realidad virtual. Las paredes son la frontal, izquierda y derecha. Cada pantalla tiene 3 metros de longitud por 2.7 de alto (medidas correspondientes a una relación de aspecto de 4:3). El camino sin fin es una banda sin fin que se coloca al centro de la cabina y la cual proporciona información de la localización del usuario a través de una interfaz serie tipo PS2 (usando como base la interfaz de un ratón de computadora). 3.2.1 ELEMENTOS DE LA CABINA:

1.- Pantallas, espejos, proyectores y estructura para soporte. 2.- Motor de realidad virtual 3.- Camino sin fin 4.- Guante 5.- Aplicaciones

Page 10: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

10

3.3 DESCRIPCIÓN DE CADA ELEMENTO 1.- Pantallas.- Deben ser pantallas translucidas con un tamaño de 3 X 2.7 metros Espejos – de aproximadamente 1 x 0.8 metros

Figura 3, Esquema e cabina de inmersión. Proyectores – infocus de 2000 lumens con un tamaño máximo de imagen de 3 X 2.7 metros

Figura 4, Proyector Infocus.

Estructura de soporte de madera con forma cúbica.

Figura 5, Estructura de soporte de las pantallas

2.- Motor de realidad virtual. Es el encargado de :

a) Realizar el calculo de las imágenes 3D b) Sincronizar las imágenes de las 3 pantallas c) Dar seguimiento a la posición del usuario a través del camino sin fin

Page 11: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

11

d) Dar seguimiento a la mano del usuario a través del guante e) Administrar las aplicaciones en el mundo virtual

Por lo anterior el motor de realidad virtual debe cumplir con algunas características específicas como son:

a) Capacidad de procesamiento de varias imágenes con diferentes puntos de vista de un mismo escenario al mismo tiempo.

b) Administración de los mundos virtuales c) Entrada de datos para las interfaces del camino sin fin y del guante rv.

Debido a estos requerimientos la arquitectura del motor debe tener características especificas, las propuestas para solucionar estos requerimientos son:

A) Una sola maquina de gran capacidad de procesamiento y almacenamiento B) Un arreglo de maquinas de capacidad media en una configuración de computo paralelo o

distribuido. Se opto por la opción B (Un arreglo de maquinas de capacidad media) en una configuración de procesamiento distribuido, de la siguiente forma. 4 computadoras PC

1 PC servidor – encargada de recibir la información de las interfaces y de sincronizar el procesamiento de cada una de las imágenes, así como dar seguimiento al usuario en el mundo 3 PC encargadas cada una del calculo de las imágenes frontal, izquierda y derecha respectivamente.

Las 4 PCs conectadas a través de una rede LAN dedicada para brindarles la comunicación, a través de un switch ethernet 10/100. Software de comunicación desarrollado específicamente para el motor RV. En esquema cliente servidor se ve de la siguiente forma.

Page 12: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

12

3.4 CONSTRUCCION DE LA ESTRUCTURA Y COLOCACION DE L AS PANTALLAS

El motaje de la cabina se llevo a cabo en el laboratorio de proyectos del Centro de Innovación y desarrollo tecnológico en cómputo. La estructura de la cabina se realizo con aluminio de 2 pulgadas. Los elementos usados fueron: Esquinero con bolsa fig. 7, tapa con bolsa fig 8 y Soporte con bolsa fig 9.

Figura 7, vista superior de un esquinero con bolsa de aluminio

Figura 8, vista superior de un soporte con bolsa de aluminio

Figura 9, vista superior de una tapa con bolsa de aluminio Con estos elementos los alumnos PIFI (Oliver y Roberto), el personal de apoyo del Cidetec (Joel

y el señor Alfonso) y el director del proyecto comenzamos el armado de la estructura de la cabina de inmersión y la colocación de las pantallas translucidas de Acrílico de alto impacto fig 10, 11, 12 y 13.

Page 13: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

13

Como se puede apreciar en la

imagen, para cada pared se hizo un marco de aluminio formado por dos soportes de tipo esquinero, y dos soportes lisos para la parte inferior y superior.

La lámina de acrílico de 1.80 x

2.40 se coloco en el marco y posteriormente se fijo con vinil de respaldo blanco.

Figura 10, pared lateral de la cabina de inmersión.

Figura 11. Corte y ensamblado de los soportes de la cabina.

Figura 12. Montaje de la segunda pared de la cabina.

Page 14: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

14

Figura 13. Las tres paredes de la cabina finalmente montadas.

La estructura y las pantallas finalmente montadas se pueden apreciar en la figura 13, aunque el acrílico de alto impacto todavía tenia la protección plástica, la cual posteriormente fue removida, fig 14.

Figura 14. Estructura y pantallas sin protección plástica.

Una vez montada la cabina se procedio a realizar pruebas de visualización con retroproyección colocando un proyector en la parte externa de la cabina, fig 15.

Figura 15. Proyector apuntando a un espejo de prueba.

Page 15: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

15

Con esto se logro observar en el interior de una cabina, la imagen de un diseño de avatar realizado por los alumnos de la materia de Realidad virtual, fig 16 y 17.

Figura 16. Imagen proyectada en el interior de la cabina.

Figura 17. Imagen proyectada al interior de la cabina donde se aprecia una parte de la caminadora. Posteriormente se monto la caminadora y se realizaron pruebas de visibilidad para verificar que la altura a la que el usuario subido en la caminadora se coloca cubren de forma adecuada su campo de visión, fig 18, pero solo fue una prueba, aun faltan pruebas mejor estructuradas.

Figura 18. Un profesor investigador descendiendo del camino sin fin.

Page 16: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

16

5 RESULTADOS Y CONCLUSIONES. Proyecto de investigación. La cabina de inmersión es un proyecto de investigación con las siguientes características: • Titulo: Sistema inmersivo de realidad virtual basado en cabina y camino sin fin. • Registro asignado por la CGPI: 20070051 • Clasificación CONACYT: – Sector: Sector Educación – Subsector: Infraestructura

Se construyo de manera exitosa la estructura principal de soporte de pantallas de la cabina de

inmersión, asimismo se coloco el camino sin fin dentro de la cabina de inmersión y se realizaron pruebas de visualización dentro de la cabina las cuales fueron alentadoras ya que las imágenes que se pudieron apreciar fueron buenas con condiciones de iluminación desfavorables, ya que las pruebas se realizaron al medio día y con las ventanas del área de proyectos descubiertas.

Se están desarrollando 4 tesis de Maestría que serán probadas en la cámara de inmersión. Una de

ellas es una aplicación de aprendizaje matemático del cálculo diferencial (Alumna Bestabe Adalia Contreras), otra es para lograr una visión estereoscópica dentro de la cabina (Iris Noemí Ramírez García), una más para generar un sistema de rastreo de posición dentro de la cabina (Oliver Pozas Quiterio) y finalmente un ambiente virtual para probar los sistemas de la cabina (Roberto Carlos Ibáñez Mejía).

Se ha probado de forma exitosa el sistema del camino sin fin en un monitor de computadora y

ahora falta realizar pruebas dentro de la cabina de inmersión. El sistema de proyección se probo con materiales opacos y translucidos y los mejores resultados

los dieron loa materiales translucidos, en este caso las pruebas con el acrílico blanco translucido demostró formar una imagen agradable y nítida. Por lo cual las paredes de la cabina se montaron en este material. Pruebas posteriores mostraron que el acrílico fue una decisión acertada.

Actualmente se han desarrollado algunos mundos a modos de prueba por investigadores

participantes en el proyecto, un sistema solar y un estacionamiento y edificio de graduados de UPIICSA, que posteriormente servirán para las primeras pruebas.

El presente proyecto pretende sentar las bases en la investigación y desarrollo de herramientas para

la realidad virtual en el CIDETEC, como parte de la materia y la línea de investigación de de RV. Hasta el momento los avances son alentadores y se espera que muy pronto se tenga la cabina armada en su totalidad para impartir clases apoyándonos en ella, así como desarrollos en investigaciones tanto propias como de otros investigadores y de alumnos.

Investigaciones como esta se deben apoyar de una manera mas intensa debido a los grandes

beneficios que puede aportar y que de hecho ya esta aportando por los recursos materiales, intelectuales y humanos que ha generado.

Page 17: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

17

5.1 PRODUCTOS OBTENIDOS

Como productos obtenidos se tuvieron muy buenos resultados, ya que se generaron: • Una tesis de Maestría del alumno Rodrigo Morales Alvarado. (Grado

obtenido). • 4 tesis de maestría en proceso.

o Betsabe Adalia Contreras (Fecha tentativa de examen de grado 29 de febrero de 2008).

o Iris Noemí Ramírez García (Fecha tentativa de examen de grado 11 de abril de 2008).

o Oliver Pozas Quiteria (Avance de tesis estimado en un 40%). o Roberto Carlos Ibáñez Mejía. (Avance de tesis estimado en un 35%).

• Tres ambientes virtuales. o 1 Laberinto. o 1 Fondo del mar. o 1 Paisaje de fantasía.

• Dos alumnos PIFI (Oliver Pozas Quiterio, Roberto Carlos Ibáñez Mejía). • 3 prototipos consistentes en:

o Una caminadora con interacción en los escenarios virtuales. o La estructura el sistema de pantallas de la cabina de inmersión (tres

pantallas). o Guante de control basado en un guante comercial.

• 2 Artículos de divulgación en la revista Polibits. • 1 Ponencia en congreso internacional (ESIQUIE-CIDETEC). • 4 Ponencias en congreso internacional (CIDETEC- tendencias

tecnológicas). • Se desarrollaron dos artículos para su publicación en la revista polibits

correspondientes a 2 tesis basadas en el proyecto. (Anexo A y B).

Page 18: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

18

5 Referencias.

• Burdea Grigore, Coiffet Philippe. “Virtual reality tecnology 2nd edition”, Wiley-Interscience, E.U.A., 2003.

• VRML 97 and related specifications, Web3D Consortium. http://www.web3d.org/x3d/specifications/vrml/

• Java 3D, Sun Microsystems. http://java.sun.com/products/java-media/3D/index.html • DirectX, Microsoft. http:// www.microsoft.com/windows/directx. • 3Ds Max, Autodesk.

http://mexico.autodesk.com/adsk/servlet/index?siteID=1002155&id=9978871. • Maya, Autodesk.

http://mexico.autodesk.com/adsk/servlet/home?siteID=1002155&id=7659874. • Morales Alvarado Rodrigo, “Interfaz para el aprendizaje de la realidad virtual

haciendo uso de un guante de datos”, IPN CIDETEC, México, 2007. • P5 Glove Wikia, http://scratchpad.wikia.com/wiki/P5_Glove. • Andreas Dengel, Stefan Agne, Bertin Klein, Achim Ebert, Et al, “Human-centered

interaction with documents”, knowledge Management Lab, Intelligent Visualization Lab, DFKI GmbH, HCM, Alemania, 2006.

• Java SE development kit, Sun Microsystems. http://java.sun.com/javase/downloads/?intcmp=1281.

• Davison Andrew, “Pro Java 6 3D game development”, Apress, E.U.A., 2007. • Dual mode Driver, Kenner Carl. • Juan C. Parra Márquez, Rodrigo Garcia Alvarado e Iván Santelices Malfani,

Introducción a la práctica de Realidad Virtual, Ediciones U. Bío-Bío, 2001. • A. Susperregui E. Carrasco M.T. Linaza A. Stork I. Macía, L. Mahalic. Aplicación de

nuevas interfaces en entornos museográficos: Informe técnico, Institute Fraunhofer IGD, Darmstad, Germany, 2006.

• W.Kresse D.Reiners and C. KnÄop°e. Color consiste ncy for digital multiprojector stereo display systems: the heyewall and the digital cave. In Proceedings of the workshop on Virtual environments, pag 271-279, Zurich, Switzerland, 2003. ACM Press.

• Simon Stegmaier, Thomas Ertl, Dirc Rose. A case study on the applications of ageneric library for low-cost polychromatic passive stereo. In Proceedings of the conference on Visualization, pag 557-560, Boston, Massachusetts, 2002. IEEE Com-puter Society.

• Leonardo C. Botega, Ana Claudia M.T.G. Oliveira, Larissa Pavarini, Fátima .S.Ñunes, Implementación de módulo de estereoscopia utilizando anaglifos para herramientas de realidad virtual para treinamento médico. 2005.

• Ana Claudia M.T.G. Oliveira, Fátima L.S. Ñunes, Larissa Pavarini, Virtual reality framework for medical training: implementation of a deformation class using java. In Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications, pages 347-351, Hong Kong, China, 2006. ACM Press.

• Emilio Camahort Miguel Escrivá, M.José Vicent. Dispositivos de visualización espacial. Informe técnico, Universidad Politécnica de Valencia, Valencia, España, Marzo 2006.

• Joan J. Pratdepadua. Programación en 3D con Java3D. Alfaomega, México D.F.,Noviembre 2005.

Page 19: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

19

ANEXO B.

Articulo basado en la tesis de Maestría del alumno Rodrigo Morales Alvarado Titulada:

“Interfaz Para el aprendizaje de la realidad virtual haciendo uso de un guante de datos” (Terminada).

Resumen Esta tesis trata sobre la Realidad Virtual como una herramienta para facilitar la comprensión y la realización de tareas complicadas y aburridas, a través de entornos de programación y el uso de guantes de datos. Se explican las características de un guante comercial, los lenguajes de programación disponibles y se proporciona una guía para desarrollar una aplicación que permite establecer la comunicación con el dispositivo, así como la presentación de los datos obtenidos, en pantalla, para su posterior análisis e interpretación en una interfaz especifica

Introducción La realidad virtual es una interfaz de computadora que comprende simulación e interacciones a través de diversos canales sensoriales en tiempo real, los cuales pueden ser visuales, auditivos, táctiles, olfativos y gustativos [1]. En la actualidad, la realidad virtual ha adquirido un gran auge debido a que gracias al uso de simulaciones realistas por medio de dispositivos especializados como los guantes de datos, los cascos (Head Mounted Display), sistemas de rastreo, y sistemas de retroalimentación, se han facilitado muchas tareas como: el análisis de la información, la simulación de ambientes reales ó ficticios, la simulación de prototipos en las diferentes áreas de conocimiento, la teleoperación de dispositivos remotos, y todo esto de una manera amigable y atractiva. Los altos precios que caracterizan a los dispositivos de realidad virtual, ha provocado la búsqueda de alternativas menos sofisticadas como la simulación por medio de dispositivos de cómputo convencional como el teclado, el ratón, y el monitor. Esto se conoce como realidad virtual de escritorio y dentro de los principales programas cómputo se puede mencionar VRML (Virtual Reality Modeling Language) [2], Java 3D [3], Direct X [4], 3Ds Max [5], Maya [6], etc. La limitante de dichos programas es que la interacción es complicada para el usuario ya que el navegar en un ambiente de tres dimensiones se vuelve una tarea complicada, pues se deben combinar las funciones del ratón y teclado para poder efectuar movimientos más complejos como caminar hacia delante y girar, o girar y levantarse. La implementación de un guante de datos como dispositivo de entrada a los ambientes virtuales de escritorio, eleva la sensación de inmersión en el usuario y le permite comprenderla mejor desde dentro para el desarrollo de mejores ambientes virtuales [7] .

Guantes de datos Los guantes de datos son uno de los dispositivos de rastreo y manipulación de ambientes virtuales más populares hoy en día. El usuario se coloca un guante el cual posee sensores para detectar la flexión de los dedos, así como la posición, rotación y traslación de la mano. Dicha información es enviada a la computadora para ser convertida en instrucciones que afecten un ambiente virtual por medio de una interfaz de software.

Page 20: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

20

El seleccionar un guante de datos para una aplicación no es una tarea sencilla. Algunos factores que deben ser considerados son: costo, tipo de conexión, modo de alimentación y herramientas de desarrollo disponibles [7]. La Tabla 1 presenta una relación de algunos guantes de datos, una breve descripción y su precio.

IMAGEN NOMBRE Y DESCRIPCIÓN PRECIO

5DT Data Glove 5 Ultra

Ideal para animación realística en tiempo real

995 dólares.

5DT Data Glove Ultra Wireless Kit

Kit tipo Plug-and.play para el

guante 5DT Ultra. Con compatibilidad Bluetooth

1495 dólares.

DG5-VHand

Guante de datos profesional multipropósito.

495.00 dólares.

P5 Glove

Guante de datos muy económico y versátil.

59.00 dólares.

Pinch Glove

Soporta una gran variedad de gestos con las yemas de los dedos

1899 dólares

Tabla 1: Guantes de datos comerciales Para la aplicación de este artículo se utilizara el guante P5 debido a su bajo costo, su conexión USB(Universal Serial Bus) que supera al puerto serie RS-232 de los guantes Pinch Glove y DG5-VHand; en cuanto al modulo de alimentación el P5 obtiene la energía del mismo puerto; esta provisto de 3 botones programables, uno de encendido/apagado, y a diferencia de los demás puede ser programado por diferentes lenguajes de programación entre ellos Visual Basic, Java, Delphi, y C++.

Guante P5 El guante P5 [8] es un dispositivo de realidad virtual para computadoras personales, económico e ideal para manipular ambientes en tres dimensiones y en general en cualquier ambiente que pueda ser controlado con la naturalidad con la que se usa la mano en el mundo real para manipular cualquier objeto

Page 21: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

21

o herramienta [9]. En la Figura 1 se puede observar una fotografía del guante y la torre de recepción en acción.

Figura 1: Guante P5 y torre de recepción

Una de las características relevantes del guante, es que está provisto de dos interfaces físicas que funcionan al mismo tiempo la cuales son: comportarse como un ratón USB y funcionar como un guante virtual. No obstante, la mayoría de los programadores desactivan la función de ratón USB, para que no interfiera en sus aplicaciones. El modo de operación del guante es muy sencillo. El usuario mueve su mano frente a la torre receptora, la cual constantemente esta sensando una serie de emisores infrarrojos, visibles o no, que se encuentran en la palma del guante y convierte esas señales en coordenadas para los ejes X, Y, y Z; así como la orientación en grados para dichos ejes.

Software para programar el guante P5 Para programar el guante P5 existen diversos kits de desarrollo de los cuales destacan los siguientes: SDK (Software Development Kit) oficial de Essential Reality para Visual C++ 6.0, la versión beta del controlador Dual de Kenner [11] basado en el código liberado de Essential Reality, y desarrollar un controlador especial para implementar el guante en algún ambiente de desarrollo en 3D como VRML. De las opciones mencionadas anteriormente, el controlador Dual es la más atractiva ya que posee las características del SDK oficial y añade mecanismos de filtrado que mejoran los datos que reporta el guante, así como permite programar en diferentes plataformas como Java, Delphi, y C/C++ [7].

Programación del guante P5 La programación del guante P5 se llevó acabo en el lenguaje Java [10] sobre la plataforma Windows. Para ello se obtuvo de Internet la versión 3 del controlador dual de Kenner [11] el cuál está compuesto de los siguientes archivos: P5DLL.dll y CP5DLL.java. La biblioteca P5DLL.dll es el controlador de Windows para el guante, mientras que CP5DLL provee las rutinas necesarias para comunicar Java con dicha biblioteca. Aunque es recomendable copiar la biblioteca P5DLL.dll dentro del directorio donde se va a correr la aplicación, para este articulo se copió en: <Directorio de

Page 22: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

22

Windows>\system32, de modo que sea cargada cada vez que se inicia el sistema operativo. Se sugiere hacer una copia de seguridad de la biblioteca original que viene con el guante y que se almacena en dicho directorio. En cuanto al archivo CP5DLL.java, se debe compilar y empaquetar primero antes de poder llamar a las diferentes rutinas del mismo. Es importante mencionar que antes de programar el guante usando el controlador dual, se requiere tener instalado Java SE development kit. Para compilar se escribe: javac -d . CP5DLL.java Una vez compilado, se procede a empaquetarlo con la siguiente instrucción: jar cvf CP5DLL.jar com De ahí, se procede a copiar el archivo resultante en: <Directorio de java>\jre\lib\ext y <directorio de la maquina virtual de java>\lib\ext

Contenido del paquete CP5DLL La clase CP5DLL [11] consta de varias constantes, variables, métodos y de tres clases Internas: P5Data, P5Info y P5State; la clase P5Data solo se conserva con fines de compatibilidad con versiones anteriores del controlador. En la Figura 2 se presenta un diagrama jerárquico del paquete CP5DLL.

Los 40 métodos públicos de CP5DLL son usados para inicializar y configurar el ó los guantes conectados a la computadora (se recuerda que se puede conectar más de un guante a la vez). Por ejemplo, es posible ajustar el nivel de filtro de los datos que se reciben del guante. Por su parte, las 40 variables en P5State proveen información acerca de la posición del guante, rotación, estado de los botones, de los LEDS, etc. Existe un método llamado update() el cual se debe llamar para actualizar dichos valores. Finalmente, las 25 variables públicas de la clase P5Info poseen información acerca de los detalles del guante, como el nombre del fabricante, el número del vendedor, numero de serie, etc.

Desarrollo de una clase demostrativa del guante A continuación se desarrollara una clase llamada PruebaDatos para desplegar la información que reporta el guante en modo consola de texto. De este modo es más fácil concentrarse en la programación del guante que en los detalles de la interfaz presentada al usuario. Esta clase esta compuesta por un Menú de opciones el cual permite seleccionar por medio del teclado, los datos que se presentan al usuario, acerca de la posición y orientación del guante y de las tiras que miden la flexión de los dedos. Se hará uso del

CP5DLL

40 métodos

P5Data (25 variables)

Obsoleto. El objetivo de esta clase es guardar compatibilidad con versiones anteriores.

P5Info Provee información del vendedor, numero de producto, y versión.

P5State (40 variables)

Provee Información acerca de la posición, rotación, botones, dedos, etc.

Figura 2: Estructura jerárquica de la clase CP5DLL

Page 23: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

23

teclado en el menú de aplicación, y de los botones del guante para actualizar los datos. La Tabla 2 presenta el pseudocódigo de la aplicación, y en la Tabla 3 se puede observar el código. INICIO Instanciar las clases CP5DLL y CP5DLL.P5State Establecer el intervalo de muestreo del guante (n ) Comprobar la comunicación con el guante Si la comunicación falló Se notifica al usuario Se termina la aplicación Se configura el eje Z+ hacia el usuario Se desactiva el modo ratón USB Se llama al método P5_GetCount() para determinar el numero de guantes Si el número de guantes es mayor a 1 Desplegar que se detectaron muchos guantes Terminar la aplicación Se referencia el estado del guante 0 Mientras el usuario no desee salir Desplegar Menu Esperar que el usuario seleccione una opción Caso de seleccionar opción 1: Desplegar instrucciones Actualizar el estado del guante Mientras el usuario no oprima el botón A del guante Actualizar el estado del guante Si se oprime B Desplegar la posición en X, Y, Z Si se oprime C Desplegar rotación en X, Y, Z Esperar n milisegundos para volver a sensar el guante Caso de seleccionar opción 2: Desplegar instrucciones Actualizar estado del guante Mientras el usuario no oprima el botón A del guante Actualizar el estado del guante Si se oprime B Desplegar la flexión de los dedos Esperar n milisegundos para volver a sensar e l guante Caso de seleccionar la opción 3: Terminar la aplicación Cualquier otra opción seleccionada Desplegar opción incorrecta Restaurar el modo ratón USB Cerrar la conexión del guante FIN.

Tabla 2: Pseudocódigo de la clase PruebaDatos

import com.essentialreality.*;//importar el control ador dual de Kenner import java.io.*; public class PruebaDatos { //se declaran las clases necesarias para trabajar el guante private CP5DLL gloves; private CP5DLL.P5State gloveState; //tiempo de poleo o sensado en milisegundos del guante private static final int GLOVE_DELAY=100; public PruebaDatos(){

Page 24: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

24

//Se instancia la clase CP5DLL gloves=new CP5DLL(); //Si falla la inicialización del guante... if(!gloves.P5_Init()) { System.out.println("Fallo la inicialización del guante"); System.exit(1); } gloves.P5_SetForwardZ(-1);//Eje Z positivo hacia el usuario gloves.P5_SetMouseState(-1,false);//desactivar el modo mouse //Asegurarse que sólo se ha conectado un guante int numGuantes=gloves.P5_GetCount(); if(numGuantes>1){ System.out.println("Muchos guantes detectados :" +numGuantes); System.exit(1); } gloveState=gloves.state[0];//referencia al edo. d el guante int res=1; while (res==1) { System.out.println("Programa para desplegar los datos que reporta el"); System.out.print("guante P5"); System.out.println("Menu de opciones"); System.out.println("1: Posicion y rotacion del guante modo absoluto"); System.out.println("2: Flexiones de los dedos") ; System.out.println("3: Salir"); System.out.println("Teclee un numero"); System.out.print(" ?: "); try{ char opcion=(char) System.in.read(); System.in.skip(System.in.available()); switch(opcion) { case '1': System.out.println("Imprimir posicion y rotac ion del guante"); System.out.println("Oprima el boton B d el guante"); System.out.print("para posicion"); System.out.println("Oprima el boton C d el guante"); System.out.print("para rotacion"); System.out.println("Oprima el boton A d el guante para salir"); gloveState.update(); while(!gloveState.button[0]){ //salida del programa con botón A gloveState.update(); //Si se oprime B desplegar posicion x,y,z if (gloveState.button[1]) { System.out.println(); System.out.print("Posicion filtrada x:"); System.out.print(gloveState.filterP os[0]); System.out.print(" y:"+gloveState.f ilterPos[1]); System.out.print(" z:"+gloveState.f ilterPos[2]);} //Si se oprime C desplegar rotacion x,y,z if (gloveState.button[2]) { System.out.println(); System.out.print("Rotacion filtrada x:"); System.out.print(gloveState.filterP itch); System.out.print(" y:"+gloveState.f ilterYaw); System.out.print(" z:"+gloveState.f ilterRoll);} try {Thread.sleep(GLOVE_DELAY);} catch (InterruptedException e){ } }//fin del while for(int i=0;i<20;i++) System.out.println("");//Se da espaci o vertical break; case '2': System.out.println("Imprimir las flexion es de los dedos"); System.out.println("Oprima el boton B de l guante"); System.out.print(" para actualizar");

Page 25: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

25

System.out.println("Oprima el boton A de l guante para salir"); gloveState.update(); while(!gloveState.button[0]){ //salida del programa con botón A gloveState.update(); //Si se oprime B desplegar flexion de los de dos if (gloveState.button[1]) { System.out.println(); System.out.print("Dedo "); System.out.print("pulgar: "+gloveSta te.fingerAbsolute[0]); System.out.print(" indice: "+gloveSt ate.fingerAbsolute[1]); System.out.print(" medio: "+gloveSta te.fingerAbsolute[2]); System.out.print(" anular: "+gloveSt ate.fingerAbsolute[3]); System.out.print(" meñique: "+gloveS tate.fingerAbsolute[4]); } try { //Esperamos n milisegundos para volver a sensa r el guante Thread.sleep(GLOVE_DELAY); } catch (InterruptedException e){ } }//fin del while for(int i=0;i<20;i++) System.out.println(""); break; case '3': res=0; break; default: System.out.println("Opción Incorrecta"); break; }//fin del switch }//fin del try del menú catch (IOException i){} }// fin del while del menu //Restauramos el modo ratón USB gloves.P5_RestoreMouse(-1); //Cerramos la conexión con el guate gloves.P5_Close(); } public static void main(String[] args) { new PruebaDatos(); } }//fin de la clase PruebaDatos()

Tabla 3: Código de la clase PruebaDatos

Resultados En las Figuras 3, 4 y 5 se puede observar pantallas de la aplicación en tiempo de ejecución.

Page 26: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

26

Figura 3: Menú principal clase PruebaDatos

Los valores desplegados por la aplicación son reportados por el guante al momento de oprimir el botón B y C del guante.

Figura 4: Posición y rotación del guante

Dentro de la posición, rotación del guante y la flexión de los dedos, se observó que los valores más estables son los últimos y que la rotación presenta varias fluctuaciones aunque se mantenga la mano inmóvil por periodos prolongados.

Figura 5: Flexión de los dedos

Es importante mencionar que los datos reportados por el guante P5 sobre la posición están expresados en P5 Units y que equivale a 0.0488 centímetros. Las unidades de la rotación y la flexión de los dedos también son internas del guante y se desconoce su valor con exactitud.

Resultados obtenidos En el presente trabajo se analizaron las características más relevantes del guante P5, y se demostró por medio de una clase programada en Java, la forma de obtener y desplegar los datos que reporta el guante a través del controlador dual. De éste modo, el usuario puede valerse de esta aplicación para comprender la naturaleza de los datos mencionados y darles la interpretación necesaria para futuros desarrollos.

Conclusiones La realidad virtual es una técnica que facilita la realización de tareas complicadas, difíciles de comprender y aburridas, ya que por medio de la simulación y la interacción con lo sentidos humanos, es posible trabajar de una manera más sencilla y amigable y con nivel de retroalimentación mayor. Los guantes de datos son dispositivos muy socorridos en esta área del conocimiento, debido a que hacen uso de la mano evitando el uso de memorizar combinaciones de teclas y aprovechando una parte esencial del cuerpo.

Page 27: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

27

Existen hoy en día diversos guantes comerciales los cuales ofrecen diversas prestaciones de rendimiento, precisión de los datos, así como diferentes técnicas de rastreo y la decisión del usuario depende directamente del uso que se le dará y la plataforma en la que desea trabajar. El guante P5 es un dispositivo económico y sencillo de utilizar el cual puede ser implementado a ambientes virtuales de escritorio con el fin de mejorar la interacción con la computadora. Por esta razón es importante conocer las características de este dispositivo, herramientas de programación disponibles y las plataformas en que éstas trabajan. Una vez que se establece la comunicación con el guante y se conoce la naturaleza de los datos que se reciben, es posible implementar interfaces dirigidas a un problema particular, con todos los beneficios que se adquieren en la parte de la interacción con el usuario. La aplicación PruebaDatos desarrollada en éste articulo, permite a los desarrolladores conocer los datos devueltos por el guante en tiempo real y proporciona una base para familiarizarlos con la plataforma Java, de modo que se puedan aprovechar las diversas tecnologías existentes como redes, programación web, entre otras. Finalmente, se hace hincapié en la necesidad de desarrollar ambientes virtuales accesibles al usuario común, con herramientas gratuitas y dispositivos económicos.

Referencias

[1] Burdea Grigore, Coiffet Philippe. “Virtual reality tecnology 2nd edition”, Wiley-Interscience, E.U.A., 2003.

[2] VRML 97 and related specifications, Web3D Consortium. http://www.web3d.org/x3d/specifications/vrml/

[3] Java 3D, Sun Microsystems. http://java.sun.com/products/java-media/3D/index.html [4] DirectX, Microsoft. http:// www.microsoft.com/windows/directx. [5] 3Ds Max, Autodesk.

http://mexico.autodesk.com/adsk/servlet/index?siteID=1002155&id=9978871. [6] Maya, Autodesk. http://mexico.autodesk.com/adsk/servlet/home?siteID=1002155&id=7659874. [7] Morales Alvarado Rodrigo, “Interfaz para el aprendizaje de la realidad virtual haciendo uso de

un guante de datos”, IPN CIDETEC, México, 2007. [8] P5 Glove Wikia, http://scratchpad.wikia.com/wiki/P5_Glove. [9] Andreas Dengel, Stefan Agne, Bertin Klein, Achim Ebert, Et al, “Human-centered interaction

with documents”, knowledge Management Lab, Intelligent Visualization Lab, DFKI GmbH, HCM, Alemania, 2006.

[10] Java SE development kit, Sun Microsystems. http://java.sun.com/javase/downloads/?intcmp=1281.

[11] Davison Andrew, “Pro Java 6 3D game development”, Apress, E.U.A., 2007. [12] Dual mode Driver, Kenner Carl. http://www.geocities.com/carl_a_kenner/p5glove.html.

Page 28: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

28

ANEXO B. Tesis de Maestría de la alumna Iris Noemí Ramírez García, titulo tentativo:

“Desarrollo de un sistema de visión estereoscópica basado en anaglifo para aplicaciones de la realidad virtual”. (En proceso)

3.4.1 Introducción

Uno de los conceptos que caracteriza a la realidad virtual es la “tridimensionalidad”. La

sensación 3D se consigue mediante la proyección de gráficos estereoscópicos, es decir, se generan una imagen ligeramente diferente para el ojo izquierdo y otra para el ojo derecho del usuario.

Existen fundamentalmente dos tipos de sistemas estereoscópicos cuyo objetivo principal es proporcionar al usuario sensaciones de profundidad: sistemas estéreo activo y sistemas estéreo pasivo[2].

En ambos métodos, el usuario debe llevar puestas unas gafas especiales. En el primero de los casos, las gafas incluyen componentes electrónicos, cosa que no ocurre en el segundo caso.

Los sistemas de estéreo activo son los que ofrecen una mayor calidad y generalmente, tienen también un costo superior. Son sistemas secuenciales, en los que las imágenes correspondientes al ojo izquierdo y derecho se alternan en rápida sucesión (típicamente 120 Hz.). En este tipo de sistemas se utilizan gafas con obturadores LCD (shutters glasses).

Los sistemas de estéreo pasivo más comunes utilizan proyectores. Las gafas no disponen de componente electrónico alguno, sino que llevan incorporados unos filtros análogos a los que se colocan en los proyectores. Los gráficos pueden ser generados por una sola computadora o con dos computadoras sincronizadas.

Para la visualización de modelos en tres dimensiones se han utilizado técnicas de visualización estereoscópicos entre las que destacan: Polarización, Conmutación y Anaglifo. Estos métodos permiten la separación de las imágenes para el ojo izquierdo y derecho cuya finalidad es proporcionar un efecto estereoscópico, es decir, un efecto tridimensional, en donde el usuario percibe profundidad cuando esta observando una escena.

3.4.1.Estereoscopía La estereoscopía consiste en visualizar dos imágenes, una para el ojo izquierdo y otra para el ojo

derecho con la ayuda de gafas especiales. 3.4.2 Estereopsis Es el mecanismo mediante el cual el cerebro procesa dos imágenes diferentes y las interpreta de

forma que percibimos una sensación de profundad de los objetos que nos rodean. A las pequeñas diferencias que existen entre cada una de las imágenes se les denomina disparidad. Este mecanismo se puede apreciar en la Fig. 1.

Page 29: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

29

Fig 1. El cerebro recibe dos imágenes ligeramente diferentes y las interpreta como una sola imagen.

La visión estereoscópica es un aspecto clave en aplicaciones de Realidad Virtual. La idea es calcular diversas imágenes una para el ojo izquierdo y otra para el ojo derecho y presentarlas al usuario de modo que él vea la imagen correcta para cada ojo dado. Para poder llevar a cabo esto se necesita de hardware especial para bloquear la imagen correspondiente al ojo izquierdo y derecho. Se puede realizar esto de dos formas diferentes: visión estéreo activa y visión estéreo pasiva.

En ambos métodos, el usuario debe llevar puestas unas gafas especiales. En el primero de los casos, las gafas incluyen componentes electrónicos, cosa que no ocurre en el segundo caso.

3.4.3 Técnicas de visión estéreo Existen varias técnicas de visión estéreo las técnicas pasivas mas utilizadas hasta la fecha son:

anaglifo y polarización y en cuanto a la visión estéreo activa destaca el método de conmutación. A continuación se hace una breve explicación de cada una de ellas:

3.4.3.1 Técnica anaglifo Esta técnica utiliza gafas con filtros de colores rojo-azul u otra combinación para realizar la

separación de las dos imágenes una en color azul y otra en roja ver figura 4. Cuando se observa una imagen a través de un filtro rojo el color azul aparece en negro y viceversa cuando se observa a través del filtro azul el rojo parece negro. A través de este principio se pueden mezclar dos imágenes y obtener el efecto estereoscópico. La técnica anaglifo es muy económica de implementar, el inconveniente de esta técnica es que no permite una representación correcta de color.

Fig. 4 Gafas con filtros de colores. 3.4.3.2 Técnica de polarización Esta técnica funciona en base a un fenómeno de la física llamado polarización de la luz. En esta

técnica se proyectan dos imágenes una polarizada en un sentido y otra a 90 grados así cada ojo ve una imagen distinta debido al bloqueo de luz y en consecuencia se obtiene la ilusión 3D ver Figura.2.

La desventaja de utilizar esta técnica es que requiere de proyectores y pantallas especiales que no despolaricen la luz.

Page 30: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

30

Fig. 2. Polarización de la luz una en un sentido y otra a 90 ª respecto a la posición del filtro. 3.4.3.3 Técnica de conmutación Esta técnica es la mas costosa de las presentadas anteriormente ya que se requiere de gafas de

conmutación de material de LCD (Shuttergalsses) ver figura 3. Estas gafas son capaces de oscurecerse totalmente y no dejar pasar la luz, esto lo hacen mediante una rápida apertura y cierre del LCD. Con este mecanismo y mediante la proyección de imágenes de manera sincronizada permite que el usuario observe una imagen diferente para cada ojo y así perciba profundidad.

Fig 3. Lentes de LCD (Shutterglasses) 3.4.4. DESARROLLO Motivación Este trabajo ha sido motivado a desarrollarse debido a que actualmente existen sistemas de

realidad virtual que emplean la visión estereoscópica para proporcionar un alto nivel de inmersión del usuario mediante la proyección de gráficos 3D, lamentablemente son sistemas demasiado costosos en los cuales el usuario tiene que llevar equipo de visualización especializado y sobre todo costoso. También se han empleado granjas de computadoras para procesar una sola imagen, obvio se tiene una buena representación de imagen pero desafortunadamente esta al alcance de unos cuantos. La idea es realizar un sistema en donde se pueda apreciar visión estereoscópica pero con recursos propios y de fácil construcción como lo son las gafas de filtros de colores. Además de que se pretende que este trabajo sea de gran utilidad para la enseñanza de la materia de realidad virtual que actualmente se imparte a los alumnos del centro de investigación.

Actualmente en el CIDETEC, no se tiene conocimiento sobre este campo, y como se explico

anteriormente la visión estereoscópica es muy útil en aplicaciones de realidad virtual.

Objetivos • Generar una salida estereoscópica, es decir una imagen para cada ojo basada en la técnica

anaglifo. • Diseñar y desarrollar la funcionalidad estereoscópica en java 3D • Construcción de de las gafas de visualización.

Para desarrollar este sistema se propone utilizar el API de Java 3D como herramienta de desarrollo del software y la técnica de visualización anaglifo, ambas nos permitirán obtener la salida estereoscópica que se necesita.

Técnica de visualización estereoscópica Anaglifo

Page 31: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

31

Después de haber hecho una investigación con respecto a las técnicas de visualización estereoscópica se determinó que la técnica Anaglifo, es una técnica bastante económica de implementar, ya que no se requieren de lentes costosos, tan solo se requieren de filtros de colores rojo-azul u otra combinación para construir las gafas de separación cromática. Tampoco se requiere de pantallas especiales para hacer la proyección de las imágenes. El único inconveniente encontrado en esta técnica es la pérdida de color, la cual puede ser corregida variando los atributos de apariencia como color, brillo, etc. del objeto a visualizar mediante la herramienta de programación.

El API de Java 3D como herramienta para generar la salida estéreo. En base a un estudio previo en cuanto a herramientas de programación 3D, se determinó que

Java posee características y ventajas deseables al momento de programar sistemas de realidad virtual. La ventaja más importante de Java es que es un lenguaje de programación independiente de plataforma, es decir el software a desarrollar puede ser ejecutado desde cualquier maquina no importando en donde haya sido creado. Como se menciono anteriormente se pretende realizar una aplicación en donde los recursos empleados no requieran de mucha inversión económica, Java es un lenguaje de programación de usos libre, por lo que no se requiere adquirir licencia alguna, es de fácil acceso.

Java es un lenguaje de programación de escenarios 3D a bajo nivel, lo que permite mejor control de aspectos de visualización y capacidades del escenario[8].

Aparte de Java existen otras herramientas que permiten generar objetos 3D, como lo son VRML,

la principal desventaja que tiene VRML con respecto a Java, es que depende de programas visualizadores, además la implementación de dispositivos es limitada.

Otra ventaja importante es que el cuando se tiene el dominio de VRML, el paso de Java a VRML

es de manera natural, ya que Java posee métodos que en cuanto a sintaxis y funcionalidad son muy parecidos a VRML. Esto no ocurre con C o C++. Debido a que la forma de programación es muy diferente.

Resultados esperados En base a la investigación previa se espera obtener en un futuro un sistema con las características:

• Un sistema de visión estereoscópica que emplee un sistema óptico sencillo y fácil de confeccionar, con filtros de colores que posteriormente se determinaran.

• Un software que permita obtener una salida estereoscópica la cual podrá ser proyectada de dos

maneras diferentes:

� Salida a un monitor de computadora

� Salida a las pantallas de proyección de una cabina de inmersión.

• Obtención de un artículo en donde se reporte los avances de esta investigación. Conclusiones

Hoy en día existe una cantidad de trabajos que intentan simular la visión humana, algunos de

estos enfocados a medicina, astronomía, geociencia, educación etc. En su gran mayoría se han obtenidos resultados satisfactorias en cuanto a calidad de imagen e inmersión del usuario, para lograr esto se ha requerido de hardware especializado y en consecuencia mayor inversión económica. Es por ello que se propone el desarrollo de un sistema de visión estereoscópica basado en la técnica anaglifo, esta técnica fue elegida debido a que de las expuestas anteriormente se encontró que es la técnica más económica de implantar y no requiere de hardware especial. En cuanto a la herramienta de programación se elige Java

Page 32: Proyecto de investigación: “SISTEMA INMERSIVO DE …sappi.ipn.mx/cgpi/archivos_anexo/20070051_4732.pdf · Existe un proyector por cada pantalla, de forma que el usuario se sienta

32

por poseer características convenientes para el desarrollo del sistema como lo son independencia de plataforma, código de uso libre y es un lenguaje de programación de escenarios a bajo nivel. REFERENCIAS. [1] Juan C. Parra Márquez, Rodrigo Garcia Alvarado e Iván Santelices Malfani, Introducción a la práctica de Realidad Virtual, Ediciones U. Bío-Bío, 2001. [2] A. Susperregui E. Carrasco M.T. Linaza A. Stork I. Macía, L. Mahalic. Aplicación de nuevas interfaces en entornos museográficos: Informe técnico, Institute Fraunhofer IGD, Darmstad, Germany, 2006. [3] W.Kresse D.Reiners and C. KnÄop°e. Color consistency for digital multiprojector stereo display systems: the heyewall and the digital cave. In Proceedings of the workshop on Virtual environments, pag 271-279, Zurich, Switzerland, 2003. ACM Press. [4]. Simon Stegmaier, Thomas Ertl, Dirc Rose. A case study on the applications of a generic library for low-cost polychromatic passive stereo. In Proceedings of the conference on Visualization, pag 557-560, Boston, Massachusetts, 2002. IEEE Com- puter Society. [5] Leonardo C. Botega, Ana Claudia M.T.G. Oliveira, Larissa Pavarini, Fátima L.S.Ñunes, Implementación de módulo de estereoscopia utilizando anaglifos para herramientas de realidad virtual para treinamento médico. 2005. [6] Ana Claudia M.T.G. Oliveira, Fátima L.S. Ñunes, Larissa Pavarini, Virtual reality framework for medical training: implementation of a deformation class using java. In Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications, pages 347-351, Hong Kong, China, 2006. ACM Press. [7] Emilio Camahort Miguel Escrivá, M.José Vicent. Dispositivos de visualización espacial. Informe técnico, Universidad Politécnica de Valencia, Valencia, España, Marzo 2006. [8] Joan J. Pratdepadua. Programación en 3D con Java3D. Alfaomega, México D.F., Noviembre 2005.