Desarrollo e implementación de middleware entre Blender, Kinect y otros dispositivos

Gómez-Martinho González, Ignacio (2016). Desarrollo e implementación de middleware entre Blender, Kinect y otros dispositivos. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. y Sistemas de Telecomunicación (UPM), Madrid.

Descripción

Título: Desarrollo e implementación de middleware entre Blender, Kinect y otros dispositivos
Autor/es:
  • Gómez-Martinho González, Ignacio
Director/es:
  • Eckert, Martina
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería de Sonido e Imagen
Fecha: 22 Julio 2016
Materias:
Escuela: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Departamento: Teoría de la Señal y Comunicaciones
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB) | Vista Previa

Resumen

El objetivo de este proyecto es desarrollar un programa que sirva de intermediario (middleware) entre una cámara de captura de movimiento y un entorno de desarrollo de videojuegos, permitiendo la creación de juegos controlados por movimientos corporales, o exergames. El objetivo a largo plazo es el desarrollo de juegos adaptativos destinados a usuarios con movilidad reducida, especialmente a niños y adolescentes, que combinen el entretenimiento con el ejercicio físico necesario para la rehabilitación de pacientes. El sistema no sólo debe leer los movimientos corporales del jugador y trasladarlos a los controles del videojuego, sino también reconocer las limitaciones físicas de cada usuario particular, adaptando los movimientos requeridos por el juego a las necesidades del paciente. Este proyecto se basa en el uso de la cámara de control de movimiento Kinect, desarrollada por Microsoft. Este sensor permite reconocer la posición en el espacio y la orientación de hasta veinte puntos, o articulaciones, del cuerpo del usuario. Utilizando esta información, es posible reconstruir en un entorno 3D una simulación esquematizada del esqueleto del jugador, que imitará todos sus movimientos en tiempo real. El software elegido para el desarrollo de los videojuegos es el Blender, una solución gratuita de código abierto que permite el modelado y programación de juegos en tres dimensiones, con cualquier grado de complejidad. Para poder integrar en Blender los movimientos registrados por la cámara, el sistema está dividido en dos componentes: el principal es una aplicación autónoma que accede regularmente a la interfaz de la Kinect y obtiene los datos de posición del usuario. Mediante su propio protocolo de comunicación, la aplicación transmite esos datos al segundo componente: un receptor, cuyo código se incorpora y ejecuta en las aplicaciones desarrolladas con Blender. Este receptor interpreta los datos recibidos y reconstruye el esqueleto del jugador en tiempo real, permitiendo su incorporación al sistema de control del juego. Los movimientos del jugador pueden utilizarse de dos formas: por una parte, haciendo que el personaje protagonista los imite, y por la otra, midiendo la velocidad de los movimientos o la distancia entre determinados puntos del cuerpo, y activando determinados comandos en función de los valores obtenidos. El receptor, además, puede guardar en la memoria permanente del ordenador la anatomía y la capacidad de movimiento de cada usuario, y utilizar estos datos para amplificar los movimientos del esqueleto. Esto permite que ligeros gestos, realizados por jugadores con movilidad reducida, sean interpretados por el juego como movimientos tan amplios como los que pueda realizar cualquiera. El middleware entre Blender y Kinect se ha integrado en un programa contenedor, el Chiro, con capacidad para agrupar una serie de middlewares que comuniquen Blender con distintos dispositivos de interfaz natural. Se han implementado uno para smartphones y otro para cascos de realidad virtual, así como las herramientas necesarias para desarrollar otros similares en el futuro. En la última fase del proyecto se ha iniciado el diseño de un juego de aventuras 3D con funciones de rehabilitación, al que se ha dado el nombre provisional de “Blexer” (Blender Exergames). De los que en el futuro formarán parte de él, se han implementado cinco ejercicios o minijuegos, en colaboración entre el autor y estudiantes en prácticas. Estos juegos han sido el centro de unas pruebas realizadas con dos grupos de personas, con y sin limitaciones motoras, con el objetivo de mostrar la utilidad y la funcionalidad del sistema. Los resultados han sido muy positivos. En total, este trabajo dio lugar a dos publicaciones en conferencias: la ISCE 2015 en Madrid [1] y el ICCE 2016 en Berlín [2]. ABSTRACT. The goal of this project is to develop a program that works as a middleware between a motion capture camera and a videogame development environment, allowing the development of videogames controlled by corporal movements, called exergames. The overall goal is the development of adaptable games targeted towards physically handicapped users, especially children and teenagers, combining entertainment with the physical exercise necessary for the patient’s rehabilitation. The system must not only capture the player’s body motion and use it as input for videogames, but also recognize the physical limitations for every individual user, adapting the required movements in the game to the patient’s needs. This project is based on the use of the motion control camera named Kinect, developed by Microsoft. This sensor allows to read the spatial location and the orientation of up to twenty points, or joints, in the user’s body. Using this information, it is possible to rebuild a schematized simulation of the player’s skeleton in a 3D environment, which will mimic his/her every move in real time. The software chosen for the development of the games is Blender, a free and open-source solution that allows the modeling and programming for tri-dimensional games with any level of complexity. In order to integrate the movements registered by the camera into Blender, the system is divided into two components: the main one is a standalone application that accesses to the Kinect interface at regular intervals, and reads the user’s position data. Using its own communication system, the application passes the data on to the second component: a receiver, which code is integrated and executed from the applications developed on Blender. This receiver reads into the received data and rebuilds the player’s skeleton in real time, allowing its incorporation to the game’s control system. The user’s movements can be used in two ways: on one side, making the protagonist character mimic them, and on the other one, measuring the speed of the motion or the distance between determined points in the body, and activating certain body joints to activate game commands in function of the resulting values. The receiver can also store in the computer’s permanent memory each user’s anatomy and ability for movement, and it can use these data to amplify the skeleton’s motion. This allows for slight gestures, performed by handicapped users, to be read by the game as movements as wide as anyone’s. The middleware between Blender and Kinect has been integrated within a container program, named Chiro, with the ability to group an array of different middlewares communicating Blender with different Natural User Interface devices. A middleware for smartphones has been implemented, and another one for a virtual reality headgear, as well tools allowing the future development of other similar applications. In the last phase of the project, design has been initiated on a 3D adventure game with exercises for rehabilitation, which has been given the working name of “Blexer” (Blender exergames). From among the ones that will be a part of it, five exercises or minigames have been implemented, in a collaboration between the author and students in practices. These games have been the center of a series of tests performed with two groups of people, with and without motion handicaps, with the goal of proving the usefulness and functionality of the system. The results have been very positive. Overall, this work gave rise to the following two conference publications: at ISCE 2015 in Madrid [1] and at ICCE 2016 in Berlin [2].

Más información

ID de Registro: 44709
Identificador DC: http://oa.upm.es/44709/
Identificador OAI: oai:oa.upm.es:44709
Depositado por: Biblioteca Universitaria Campus Sur
Depositado el: 17 Feb 2017 08:46
Ultima Modificación: 17 Feb 2017 08:46
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM