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.

Description

Title: Desarrollo e implementación de middleware entre Blender, Kinect y otros dispositivos
Author/s:
  • Gómez-Martinho González, Ignacio
Contributor/s:
  • Eckert, Martina
Item Type: Final Project
Degree: Grado en Ingeniería de Sonido e Imagen
Date: 22 July 2016
Subjects:
Freetext Keywords: Videojuegos de rehabilitación Personas con discapacidad Blexer
Faculty: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Department: Teoría de la Señal y Comunicaciones
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

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].

More information

Item ID: 44709
DC Identifier: http://oa.upm.es/44709/
OAI Identifier: oai:oa.upm.es:44709
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 17 Feb 2017 08:46
Last Modified: 22 Feb 2019 13:29
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM