Módulo adaptador universal para Simulación Inmersiva 1
1,2
Alejandro Arroyo Arzubi; 1,2 Carlos Federico Blanc; 1 Francisco Brandolini; Damián Alejandro Camarasa; 2,3 Antonio Castro Lechtaler; 2 César Daniel Cicerchia; 1,2 Enrique Jorge Matías Luzuriaga; 1 Alexis Gabriel Polak 1
1
CIDESO - Centro de Investigación y Desarrollo de Software, DIGID; 2 Escuela Superior Técnica Facultad de Ingeniería del Ejército, IUE - Cabildo 15, Ciudad Autónoma de Buenos Aires, C1426; 3 Universidad Nacional de Chilecito - 9 de julio 22, Chilecito, La Rioja, F5360
[email protected],
[email protected],
[email protected],
[email protected],
[email protected];
[email protected],
[email protected],
[email protected] Resumen
La industria de los videojuegos siempre intentó mejorar su negocio, elevando la calidad de los gráficos y del sonido, así como la manera en la que se utiliza un juego. InmerSim es un proyecto que se desarrolla con la finalidad de alcanzar una mayor ventaja competitiva, incorporando tecnologías de realidad virtual para optimizar la experiencia del juego, e integrando software libre y de código abierto, así como hardware de diseño público, para disponer de independencia tecnológica a bajo costo.
1. Introducción El proyecto InmerSim1 [1] [2] [3] busca desarrollar componentes de software de simulación “inmersiva” para el usuario de juegos o simuladores “en primera persona”2. Una de las técnicas para lograr un escenario de simulación con elevado realismo es la que se ha denominado “inmersiva”. Este método utiliza una computadora para crear un ambiente tridimensional y producir una realidad virtual con la cual el jugador interactúa por medio de guantes, cascos u otros dispositivos. Mediante estos sensores se capturan la posición y los movimientos de diferentes partes del cuerpo humano, que producen “entradas” en el ambiente virtual y lo modifican; o también, reciben “respuestas” que se perciben por los sentidos del jugador.
1
Financiado y ejecutado por la Escuela Superior Técnica - Facultad de Ingeniería del Ejército – Grl Div Manuel N. Savio 2 Esta técnica utiliza una vista desde la cual el mundo simulado se muestra desde la perspectiva del protagonista. Es de uso frecuente en juegos de disparo o de aventuras.
Existen diversos periféricos que asisten a tener una simulación más inmersiva [4] [5]. Entre ellos podemos destacar a los dispositivos de video como los proyectores 3D, los anteojos de realidad virtual3 y los elementos de detección de movimiento, como son el Kinect de Xbox de la empresa Microsoft®, el PS Move de Sony® Playstation o el Wiimote de Nintendo®, entre otros. Desde nuestro punto de vista, estos últimos periféricos tienen dos problemas importantes: Los controles son propietarios de la empresa que las fabricó y sólo funcionan para una consola específica. Los juegos/simuladores deben estar específicamente desarrollados para este tipo de dispositivos. Por otra parte, el bajo costo de la tecnología de sensores y de las placas con micro-controladores, como Arduino, BeagleBone, Raspberry Pi y PCDuino entre otros, permite la incorporación de la tecnología de realidad virtual a la industria de los videojuegos, de una manera económica, simple y empleando hardware denominado “libre4”. El proyecto InmerSim creará un prototipo que soluciona estos problemas, mediante la construcción de un módulo - hardware más software - que es independiente de la consola utilizada, y además, puede ser adaptado a cualquier juego o simulador ya existente.
2. Objetivo del prototipo El objetivo del trabajo es construir un prototipo compuesto de un módulo adaptador universal para
3
Por ejemplo, se puede mencionar Oculus Rift de la empresa Oculus VR® (adquirida por Facebook®). 4 Por similitud al software libre, sus especificaciones y modelos de diseño son públicos, disponibles totalmente gratis o mediante un pago de menor valor.
simulación inmersiva que permita mejorar la experiencia del juego/simulador. Dicho módulo estará compuesto por una plaqueta embebida que brindará una interfaz para adaptar cualquier juego de consola5 o de una PC a un ambiente inmersivo, mejorando la experiencia del usuario. Para el prototipo, se utilizará una consola Xbox 360 desde la cual correrá el juego deseado (en esta etapa no se desarrollará ningún simulador y se empleará un videojuego comercial). Este deberá aceptar juegos tanto de la consola Xbox 360 como de la PC. En este último caso, se necesitará un receptor joystick6.
interpretará los comandos de la PC y emulará cualquiera de los 8 botones del control o el movimiento de alguno de sus 3 joysticks (2 de ellos son analógicos y uno es digital). La PC tendrá una interfaz USB con la cual se conectará al controlador Kinect y según las acciones detectadas se le ordenará a la placa Arduino para que accione los comandos correspondientes del control. Debe tenerse en cuenta que el software que interpretará los movimientos del Kinect será desarrollado especialmente para este prototipo, así como también el firmware de la placa Arduino y el software de interfaz con la misma, instalado en la PC. Además, se utilizará el control de la consola Wii, el cual posee una cámara infrarroja (IR), y servirá para detectar la posición de un LED IR ubicado en el cañón del dispositivo para juego que tendrá el usuario [6]. En la Figura 1, se puede observar la arquitectura que guiará el desarrollo.
3. Placa controladora La placa controladora será la encargada de controlar el joystick, haciendo de interfaz entre la PC y dicho control. Luego, la PC interpretará los datos de los distintos sensores7 y enviará los datos a la placa controladora para que la misma actúe sobre el mando de la Xbox en este caso. Para simular la acción sobre los botones digitales del mando, se utilizó un transistor actuando al corte y a la saturación, logrando así un interruptor o switch, ya que cuando el transistor está en corte se puede comparar con un interruptor abierto y cuando está en saturación es equivalente a un interruptor cerrado. La Figura 2 muestra la similitud existente entre un transistor y un interruptor.
Figura 1. Arquitectura del prototipo Para interactuar con el juego se utilizará un control inalámbrico, el cual será modificado para que pueda ser controlado por una placa Arduino, en este caso la Arduino Mega 2560 Rev3. La placa controladora 5
Por ejemplo: Xbox, PlayStation, Wii, etc. Se ha elegido por su facilidad de obtención en el mercado local un receptor Microsoft Xbox 360 inalámbrico para PC.
Figura 2. Similitud entre el transistor y un interruptor
4. Control de movimiento Para este prototipo se hará uso de un controlador Kinect, que permite a los usuarios controlar e interactuar
6
7
Kinect, Wiimote, etc.
con la consola sin necesidad de tener contacto físico con un controlador de videojuegos tradicional, mediante una interfaz natural de usuario que reconoce gestos, comandos de voz, objetos e imágenes [7] [8]. Un problema que tiene el controlador, y que el prototipo intenta solucionar es que los juegos que utilizan el Kinect son especialmente desarrollados para dicho periférico. En este caso, lo que se pretende es que cualquier juego (o simulador) pueda hacer uso de las facilidades que el controlador ofrece. Para que el juego o simulador sea independiente del controlador Kinect, se utilizará una PC, la cual interpretará los gestos que produzca el usuario y se lo transmitirá a la placa controladora, en este caso la interfaz Arduino, conectada al joystick de la Xbox. El prototipo se desarrollará de manera evolutiva, incrementando las funcionalidades en sucesivas versiones. Para esta primera versión, se controlará el movimiento de una persona, detectando si está de pie, en cuclillas o con el cuerpo en tierra. En el futuro se extenderá a poder dar órdenes gestuales y por voz, reconocimiento facial para la identificación automática de los usuarios, etc.
Para lograr esto, se tienen dos mecanismos principales: polarización y side-by-side.
Figura 3. Wiimote
5. Control del dispositivo para juego El dispositivo para juego tendrá en su cañón un LED IR, que emitirá luz IR8 en un foco colocado al extremo de éste, de forma que dependiendo de cómo ve el mando la posición de este punto podrá calcular dónde se ubica el dispositivo para juego. Este control, requerirá de una calibración previa. La Figura 3 muestra los componentes del mando de la consola Wii [6].
En el mecanismo de polarización se utilizan gafas estereoscópicas cuyo comportamiento se asemeja al de un sistema de monitores duales, donde se transmiten a las gafas ambas imágenes por ciclo, que son entrelazadas en una única imagen, tal como lo muestra la Figura 4.
6. Gafas Existen métodos adicionales para incrementar el realismo, además de los aspectos meramente físicos. Uno de ellos es el desarrollo de la visión subjetiva, caracterizada por: Ilusión de profundidad (estereoscopía). Ilusión de orientación. Para ello se utilizan unas gafas estereoscópicas y un sensor de posición y orientación (giróscopo). La ilusión de profundidad se crea suministrando a cada ojo la información que, por su posición, debería ver. La conciencia debe recibir datos que le permitan armar la profundidad necesaria. Si los datos son suficientes, se configura una percepción que completa lo que no hay entre las dos imágenes planas que llegan a los ojos, y se obtiene la ilusión de una tercera dimensión. 8
En una frecuencia de onda no visible para el ojo humano con la que trabaja el mando de la Wii para saber la posición del puntero.
Figura 4. Imágenes entrelazadas Luego, las gafas decodifican la imagen enviada y dibujan la imagen correspondiente para cada ojo. Por ej., si se tienen 1080 pixeles en el sentido vertical de la imagen, cada línea de pixeles se verán con
diferentes lados de los lentes y si enumeramos los pixeles de arriba hacia abajo del 1 al 1080 veremos que, con el lado derecho de los lentes se ven solamente los pixeles 1, 3, 5, 7, 9, etc. y con el lado izquierdo se verán los pixeles 2, 4, 6, 8, etc. Las desventajas son que la resolución de la imagen disminuye en un 50% y que requiere que se dibuje dos veces la escena para cada instante, pero en contraparte, da la sensación de profundidad y respuesta a los movimientos del usuario y la representación del entorno no es muy costosa en tiempo de CPU con relación al cálculo dinámico. Además, al ser un método de 3D pasivo (en contraparte las gafas activas, usan batería y parpadean muy rápidamente casi imperceptible) no marean al usuario y como no utiliza pilas ni sincronizador son mucho más económicos. Utilizando el método side-by-side, la pantalla se divide para mostrar dos imágenes al mismo tiempo. Cuando el observador se concentra produce la fusión de las imágenes creando la ilusión de profundidad. La Figura 5 muestra un esquema de este método.
utilizará para la entrada de los datos de vídeo y la otra será la salida de los datos de la IMU a la placa controladora Arduino, que interpretará los datos para ser transmitidos al juego o simulador. En el futuro el proyecto desarrollará comunicaciones wireless que reemplazarán a las cableadas.
7. Feedback Para obtener más realismo, se incorporará un feedback desde el juego o simulador hacia el usuario. Para ello, en una primera instancia se hará uso de los motores de vibración que ya tiene el mando de la Xbox y los mismos serán adaptados para que el usuario lo lleve puesto, por ejemplo en formato brazalete o cinturón. Además, se agregará sonido envolvente completamente en 3D, de forma de seguir adicionando factores que sumen a la inmersión del usuario a la simulación.
8. Resultados Obtenidos Actualmente, ya se han confeccionado prototipos que han funcionado correctamente, respecto a los siguientes módulos
8.1. Gafas
Figura 5. Imágenes side-by-side Tomando el mismo ejemplo que el descripto en el método anterior, en este caso se utilizarán los 1080 píxeles para ambas imágenes, pero la imagen izquierda ocupará la primera mitad horizontal de la pantalla entera, mientras que la derecha ocupará la mitad restante. El sensor de posición y orientación es una IMU9 que consta de un giróscopo y un acelerómetro, ambos de 3 ejes, los cuales sensan el movimiento de la cabeza del usuario. En este caso, es fundamental tener en cuenta el tiempo de refresco de píxeles del panel, para poder reducir la latencia y el desenfoque de movimiento al girar la cabeza de una forma rápida. Debe tenerse en cuenta que es fundamental cubrir casi todo el campo visual del usuario, para crear un fuerte sentido de la inmersión. Las gafas tendrán dos interfaces, las cuales en principio serán cableadas. Una interfaz HDMI, la cual se 9
Del inglés Unidad Inercial de Movimiento
Se construyó un prototipo inicial consistente en elementos de hardware con su correspondiente software embebido. Respecto al hardware, se determinó la necesidad de utilizar una pantalla con buena resolución, alta densidad de píxeles y, además, lentes asféricas de mayor calidad. El hardware utilizado tiene las siguientes características: Teléfono celular Smartphone con Android 4.4.2 y con un procesador Qualcomm Snapdragon S4 Pro MSM8960 de doble núcleo funcionando a 1.7 GHz, un procesador gráfico Adreno 320, 2Gb de memoria RAM y una pantalla de 4,7 pulgadas con resolución de 720x1028 y con una densidad de pixeles de 316 ppi10. Además posee un giróscopo que es utilizado para capturar el movimiento rotacional de la cabeza. Gafas de Realidad Virtual creadas para que puedan utilizarse con el efecto side-by-side 3D. Para ello se utilizó un armazón que sostuviera dos lentes (preferentemente asféricas) de 2.5 cm de diámetro y aumento de 10x, separadas por aproximadamente 1.5 cm. Las lentes actuales son genéricas, de plástico, sacados de unos binoculares genéricos, por lo que no se garantiza un aumento de 10x. Cabe destacar que escogió este método frente al 10
Del inglés Píxeles por Pulgada
de polarización, ya que éste requiere anteojos polarizados o con filtro y del doble de fps11 que se desea, es decir, si el simulador es de 60 fps, la frecuencia de las pantallas debe ser del doble, en este caso 120. Además el método de polarización hubiera sido más difícil de implementar que el Side-by-side. Un joystick DualShock 412 para el movimiento de traslación de la cámara. Las Figuras 6 y 7, muestran algunas imágenes del prototipo creado.
El software se divide en dos capas, la primera está destinada a generar los objetos que van a participar de la misma, lo que en Unity se conoce como “Scene” o escena; para este proyecto se ubicaron dos cámaras, cada una separada levemente de la otra y apuntando a un punto en común, para poder generar el efecto de 3D. La segunda parte son los scripts o programas que vamos a utilizar; en particular, se usaron para el giróscopo del smartphone y para moverse por la escena utilizando un control de la Playstation 3 (todos ellos se desarrollaron en C#). La Figura 8 muestra una sección del script utilizado para controlar el giróscopo del dispositivo.
Figura 6. Hardware del prototipo gafas
Figura 7. Software con Unity 3D del prototipo gafas. Con respecto al software, al utilizar la técnica side-byside, es necesario contar con dos imágenes que estén levemente desfasadas, esto se logra con técnicas especiales de cámara. El software utilizado tiene las siguientes características: Es un desarrollo propio, realizado especialmente para demostrar el funcionamiento de las gafas, creado con el motor gráfico Unity3D 4.3.413 con scripts propios. El mismo posee dos grandes ventajas: es gratuito y además deja exportar los proyectos que realices para que los ejecutes desde casi cualquier dispositivo, ya sea PC, iOS o Android como en este caso. Entorno SDK de Android para poder crear la interfaz .APK que se instala en el Smartphone con el fin de acceder a los dispositivos del teléfono, como ser el acelerómetro. El funcionamiento correcto de las gafas de realidad virtual se logra creando una distorsión en las imágenes al usuario, mezclando ambas en una sola, y como éstas muestran lo mismo pero de distinto ángulo, se genera una tercera imagen central con el efecto de tres dimensiones.
11
Del inglés Cuadros por Segundos Podría utilizarse otro modelo equivalente. 13 Unity es un motor de renderizado gratuito, integrado con un conjunto de herramientas para crear contenido 3D interactivo. http://unity3d.com 12
Figura 8. Sección del script utilizado para controlar el giróscopo del smartphone Además, se realizaron pruebas sobre el sensor de movimiento de 9 ejes (giróscopo, acelerómetro y brújula) MPU-9150, el cual es ideal para diseños de tecnología wearable debido a su poco consumo, poco costo y alto rendimiento. Dicho sensor fue controlado utilizando una placa Arduino Uno [9]. A continuación, en la Figura 9, se muestra un esquemático de la conexión utilizada. Las mejoras que se tendrán en cuenta para un próximo prototipo serán las siguientes: Calidad de los lentes: ◦ aumento 10x asegurado. ◦ lentes asféricas. ◦ lentes de vidrio o algún material que no se raye fácilmente. ◦ lentes de mayor diámetro
encuentra en posición cuerpo a tierra y además tendrá la capacidad de detectar gestos, como por ej.: el lanzamiento de granadas.
8.4. Control del dispositivo para juego
Figura 9. Modelo esquemático de la conexión de la placa Arduino con el sensor MPU-9150 Calidad de la carcasa: ◦ modelo de la carcasa impreso en 3D. ◦ mejor diseño para que se adapte al rostro, balancee el peso y no deje entrar luz externa. Calidad de la pantalla: ◦ Se pueden utilizar smartphone con pantallas que tengan mayor resolución o mayor densidad de píxeles. ◦ Se puede utilizar una pantalla conectada a una computadora o consola por HDMI. En este caso, se debería incluir un giróscopo para la captura de la rotación.
Para esta sección del prototipo, se replicaron dos proyectos publicados por Johnny Chung Lee17 donde se conecta el mando de la Wii a la PC utilizando la conexión bluetooth y aprovechando la cámara IR que posee el mando se reconoce la emisión de un LED IR. Para la conexión bluetooth, se utilizó como driver la aplicación Bluesoleil18. El primero de los proyectos que se realizó es el de Head-Tracking [12] [13], mediante el cual se puede simular una imagen 3D moviendo la cámara de la imagen (se entiende que la cámara es el objeto de software que está mostrando lo que el usuario percibe) solidario al movimiento de la cabeza del usuario. Cuando una persona mira la imagen en una pantalla y se mueve hacia un costado, la imagen que percibe es exactamente la misma pero en otro ángulo, pero esta imagen podría modificarse, si se cambia el ángulo de la cámara, simulando así una imagen 3D. En la Figura 10, la (a) muestra como el usuario percibe la misma imagen a pesar de su movimiento, pero la (b) muestra la nueva imagen que debería percibir al sensar su desplazamiento.
8.2. Placa controladora Para este prototipo en particular se utilizó la placa Arduino Mega 2560 Rev. 3. Esta es una placa electrónica basada en la Atmega2560. Cuenta con: 54 pines de entradas/salidas digitales (de los cuales 14 se pueden utilizar como salidas PWM14 y 16 entradas analógicas, 4 UARTs15, un oscilador de cristal de 16 MHz y un puerto de conexión USB, lo que lo hace ideal para el proyecto planteado Para la simulación de los botones digitales se utilizaron transistores BC337.
8.3. Control de movimiento Se realizó un prototipo utilizando el sensor Kinect utilizando el SDK16. Mediante el mismo actualmente se logra reconocer la figura humana y si la misma se encuentra de pie o agachado [7] [10] [11]. En el futuro se le agregará la capacidad de detectar si el mismo se
Figura 10. Imágenes a percibir por movimiento tangencial Lo mismo ocurre cuando el usuario se acerca o se aleja de la pantalla, tal como lo muestra la Figura 11. Luego, se entiende por head-tracking al hecho de cambiar la perspectiva de lo que se muestra en pantalla dependiendo de donde tengamos la cabeza. Es decir, en un entorno 3D se obtiene una perspectiva mucho más real, con vistas distintas dependiendo desde donde se esté mirando a la pantalla.
14
del inglés Modulación por Ancho de Pulso. Universal Asynchronous Receiver-Transmitter - puertos de hardware de serie 16 El mismo ha sido publicado por Microsoft en su sitio de la Red http://www.microsoft.com/en-us/download/details.aspx?id=43661 15
17 18
http://johnnylee.net/ http://www.bluesoleil.com/bssoftware/BSoftware.aspx.
Figura 11. Imágenes a percibir por movimiento radial. Para ello, se dota al usuario de un par de lentes con 2 (dos) LEDs emisores de IR, cada uno ubicado al costado de la cabeza. Cabe recordar que se utiliza al mando de la Wii como cámara IR. La Figura 12 muestra un esquema de lo detallado anteriormente.
Figura 13. Cálculo para determinar la posición de la cabeza del usuario basado en la distancia y orientación con respecto al Wiimote El otro proyecto replicado es el de pizarra, mediante el cual se simula una pizarra digital. Dado que el Wiimote puede rastrear fuentes de luz infrarroja, se pueden hacer punteros con LEDs infrarrojos y usarlos para manejar una interfaz. Apuntando el Wiimote a una pantalla proyectada o a un monitor LCD se pueden crear pizarras interactivas por muy poco dinero. También funciona con retroproyectores. La Figura 14 muestra el esquema utilizado.
Figura 12. Esquema Head-Tracking Luego midiendo la distancia entre ambas fuentes de luz se puede determinar si la persona se aleja o se acerca de la cámara. Y además se puede sensar si la persona se mueve hacia un lado o el otro, midiendo con respecto al centro de la cámara. La Figura 13 muestra los cálculos, tanto para la posición horizontal como para la vertical. De esta forma, se puede obtener la localización y orientación de la cabeza y representar en pantalla, por lo tanto, la vista que se desee. El resultado es una forma de convertir una simple pantalla en un portal a un entorno virtual. La escena en la pantalla reacciona a los movimientos de la cabeza como si se tratara de una ventana real, creando una ilusión bastante realista de profundidad y espacio.
Figura 14. Esquema Whiteboard
El marcador IR utilizado es como el que se detalla en la Figura 15, el cual consta de un LED IR, una batería y un pulsador, para indicar cuándo se está escribiendo en la pantalla.
OLED19, ya que algunas de ellas tienen la capacidad de tener una estructura flexible, lo que ya ha dado lugar a desarrollar pantallas plegables o enrollables. Kinect y Wii para reconocimiento en 360º. Actualmente el sensado de ambos dispositivos solo cubre el ángulo propio de cada uno, pero se desarrollará una plataforma o se agregarán más sensores para poder cubrir los 360º completos. Controles inalámbricos en vez de cableado. Tanto para el dispositivo para juego, como para la IMU y el video de las gafas. Reacción del simulador hacia el usuario. En una primera instancia se utilizarán los motores de vibración que ya vienen incorporado en el control de la Xbox. Reconocimiento facial para la identificación automática de los usuarios. Se le incorporará a las gafas una cámara externa, para que las mismas puedan ser utilizadas con tecnología de Realidad Aumentada, definiendo una visión, directa o indirecta, de un entorno físico del mundo real, cuyos elementos se combinan con elementos virtuales para la creación de una realidad mixta en tiempo real.
10. Referencias [1] Figura 15. Marcador infrarrojo
9. Futuras versiones El equipo de trabajo está planificando las futuras versiones del producto. En las mismas se tendrán en cuenta las siguientes nuevas funcionalidades: Control por gestos [14] y por voz. Sistema para que el usuario pueda moverse en el espacio con su propio esfuerzo físico, caminando, e incluso corriendo. La idea es que el usuario pueda moverse en todas las direcciones libremente sobre una superficie, y que el sistema reconozca sus movimientos y los interprete en el juego. Generación de imágenes 3D partiendo de una 2D, utilizando procesamiento de imágenes. Seguimiento del iris para visión periférica. Para ello se le incorporará a las gafas la posibilidad de poder sensar el movimiento del iris y de esta forma poder mostrar la nueva visión del usuario, la cual se logra sin el movimiento de la cabeza. Esta funcionalidad, se piensa lograr con la incorporación de una cámara IR - Infra-Roja y un procesamiento de imágenes para poder sensar el movimiento de los ojos. Cabe destacar que se deberá tener una pantalla más grande para poder cubrir todo el campo de visión del usuario. Para ello, se investigarán las pantallas
[2]
[3]
[4]
19
D. A. Camarasa y O. M. Bianchi, Desarrollo de Software de Simulación Inmersiva para Fracciones Heterogéneas, Presentado en WICC 2012. http://sedici.unlp.edu.ar/bitstream/handle/10915/19 214/Documento_completo.pdf?sequence=1, 2012. J. N. Templeman, L. E. Sibert and R. C. Page, Immersive Simulation to Train Urban Infantry Combat, Washington, DC: Naval Research Laboratory. http://www.researchgate.net/publication/228727384 _Immersive_simulation_to_train_urban_infantry_c ombat/file/32bfe50fd612966169.pdf. W. Wilkerson, D. Avstreih, L. Gruppen, K. P. Beier and J. Woolliscroft, Using immersive simulation for training first responders for mass casualty incidents, Academic emergency medicine official journal of the Society for Academic. http://www.academypublisher.com/ijrte/vol01/no01 /ijrte0101529531.pdf. I. Hernández Gutiérrez, Wii-immersion: Aprovechando las capacidades del Wiimote para la mejora de la sensación de inmersión, Universitat Pompeu Fabra. https://repositori.upf.edu/bitstream/handle/10230/11 314/PFC%20Wiiimmersion_Hern%C3%A1ndez.pdf?sequence=1,
Del inglés Diodo Orgánico de Emisión de Luz
2010. [5] P. Toharia, Realidad Virtual e Interacción. Dispositivos Entrada/Salida, Universidad Rey Juan Carlos. http://dac.escet.urjc.es/rvmaster/rvmaster/asignatura s/rvi/TemaIII.Dispositivos_de_ES__1314.pdf. [6] J. C. Lee, Hacking the Nintendo Wii remote, Carnegie Mellon. https://www.cs.cmu.edu/~15821/CDROM/PAPERS/lee2008.pdf, 2008. [7] J. Han, L. Shao, D. Xu and J. Shotton, Enhanced Computer Vision with Microsoft Kinect Sensor: A Review, IEEE Transactions on Cybernetics, Vol. 43, No. 5, October 2013. [8] Y. Chow, A Cost-Effective 3D Interaction Approach for Immersive Virtual Reality, Wollong, Australia: School of Computer Science and Software Engineering, University of Wollongong. http://www.academypublisher.com/ijrte/vol01/no01 /ijrte0101529531.pdf, 2009. [9] O. González, Sistema de medición inercial con Arduino y Processing., http://blog.bricogeek.com/noticias/arduino/sistemade-medicion-inercial-con-arduino-y-processing/, 2009. [10] J. Shotton, A. Fitzgibbon, M. Cook, T. Sharp, M. Finocchio, R. Moore, A. Kipman and A. Blake, Real-Time Human Pose Recognition in Parts from Single Depth Images., Microsoft Research Cambridge & Xbox Incubation. http://research.microsoft.com/pubs/145347/bodypar trecognition.pdf, 2011.
[11] K. Abhishek, Skeletal Tracking using Microsoft Kinect, Department of Computer Science and Engineering, IIT Kanpur. http://www.cs.berkeley.edu/~akar/cs397/Skeletal% 20Tracking%20Using%20Microsoft%20Kinect.pdf [12] K. Hejnkhejn and J. P. Rosenkvist, Headtracking using a Wiimote., http://image.diku.dk/projects/media/rosenkvist.hejn. 08.pdf, 2008. [13] M. J. Ubilla Carvajal y D. Mery, Head Tracking en el espectro infrarrojo utilizando el Nintendo Wii Remote., http://web.ing.puc.cl/~dmery/Prints/SupervisedTheses/2009-MScMUbilla.pdf, 2009. [14] T. Schlomer, B. Poppinga, N. Henze and S. Boll, Gesture Recognition with a Wii Controller, University of Oldenburg & OFFIS Institute for Information Technology. http://www.wiigee.org/download_files/gesture_reco gnition_with_a_wii_controllerschloemer_poppinga_henze_boll.pdf.