Alfombra Multisensorial Autor: Fecha
Transcript of Alfombra Multisensorial Autor: Fecha
1
Título: Alfombra Multisensorial Autor: Roberto López García Fecha: 15-01-2013 Director: Josep Fernández Ruzafa Departamento: Ing. Sistemas, Automática i Informática Industrial Codirector: Marc Iñiguez Institución: Fundació Maresme Ing. Técnica de Sistemes 22,5 Cr.
Centro: Facultat d'Informàtica de Barcelona (FIB)
Universidad: Universitat Politècnica de Catalunya (UPC) BarcelonaTech
2
Tribunal Director: Jose Fernàndez Ruzafa Codirector: Marc Iñiguez Presidente: Alicia Casals Gelpi Vocal: Juan Luis Esteban Ángeles Secretario: Jose Fernàndez Ruzafa
3
Agradecimientos
A mis padres, por la paciencia que han tenido conmigo y por darme el futuro que tengo, y tendré. A mis compañeros de universidad, con los que he aprendido todo lo que sé hasta ahora. A Laura, por su ayuda y constante apoyo durante el desarrollo del proyecto y estar a mi lado cuando más lo he necesitado. A Josep, por la libertad que me ha brindado al planificar y desarrollar mi proyecto. A la Fundación Maresme y a todas aquellas personas que hay detrás, por el gran trabajo y labor que están realizando en la Fundació y el entusiasmo con el que lo hacen. A todas aquellas personas que alguna vez utilizaran este proyecto para aprender o divertirse. Y por último y más importante, A todas aquellas personas que debido a la mala gestión del gobierno, están sufriendo y han sufrido despidos, brutales recortes en ayudas, presupuestos o incluso eliminación de su ayuda por dependencia.
4
Tabla de contenido
1. Introducción ______________________________________________________ 6
Descripción _________________________________________________________________ 7
Origen del proyecto – La Fundació Maresme ______________________________________ 8
Organización de la memoria.__________________________________________________ 10
2. Antecedentes - Kinect ______________________________________________ 11
Kinect ____________________________________________________________________ 12
Alternativa - Asus Xtion Pro Live ___________________________________________________ 14
¿Cómo funciona? _______________________________________________________________ 15
Reconocimiento de imágenes ___________________________________________________ 15
Skeletal Tracking _____________________________________________________________ 16
Sistema de micrófonos ________________________________________________________ 18
Motor de inclinación __________________________________________________________ 19
Primer contacto – Developer Toolkit ___________________________________________ 20
Color Basics ___________________________________________________________________ 21
Audio Basics ___________________________________________________________________ 21
Kinect Shape Game _____________________________________________________________ 22
Speech Basics __________________________________________________________________ 22
Kinect Explorer _________________________________________________________________ 23
Investigación y Kinect _______________________________________________________ 24
Recomendaciones de uso ____________________________________________________ 26
Kinect – Kit de desarrollo (SDK) _______________________________________________ 27
Requerimientos del sistema_______________________________________________________ 29
3. Análisis _________________________________________________________ 30
Planificación _______________________________________________________________ 30
Requerimientos y objetivos ___________________________________________________ 32
Casos de uso _______________________________________________________________ 41
Caso de uso. Instalación: _________________________________________________________ 42
Caso de uso. Calibración: _________________________________________________________ 43
Caso de uso. Crear Actividad:______________________________________________________ 43
Caso de uso. Cargar Actividad _____________________________________________________ 43
Caso de uso. Supervisar Actividad __________________________________________________ 44
Caso de uso. Realizar Actividad ____________________________________________________ 44
4. Diseño __________________________________________________________ 45
Calibración ________________________________________________________________ 45
Zona de interacción _________________________________________________________ 46
Diseño interfaz usuario ______________________________________________________ 49
Calibración ____________________________________________________________________ 51
5
Configuración __________________________________________________________________ 53
Iniciar Actividad ________________________________________________________________ 55
5. Implementación __________________________________________________ 57
Windows Presentation Foundation (WPF) _______________________________________ 57
eXtensible Application Markup Language – XAML ________________________________ 57
Lenguaje de programación – C# _______________________________________________ 58
Visual Studio – Entorno de Desarrollo __________________________________________ 59
Crear un proyecto con Visual Studio y Kinect _________________________________________ 60
Alfombra Multisensorial _____________________________________________________ 63
6. Manuales de Uso _________________________________________________ 65
Manual 1 - Instalación SDK y Drivers ___________________________________________ 65
Manual 2 – Instalación de la aplicación _________________________________________ 67
Manual 3 - Creación de actividades ____________________________________________ 69
Actividad Acción-Reacción ________________________________________________________ 69
Actividad Estimulo-Respuesta _____________________________________________________ 72
Actividad Piano Musical __________________________________________________________ 73
Actividad Música Corporal ________________________________________________________ 75
Manual 4 – Calibración de Kinect ______________________________________________ 76
7. Pruebas _________________________________________________________ 78
Residencia y centro de atención especializada. Llar Santa María. ____________________ 78
Centro de terapia ocupacional Pere Parera ______________________________________ 83
Resultados ________________________________________________________________ 88
8. Opinión _________________________________________________________ 90
9. Conclusión _______________________________________________________ 91
Conclusión general __________________________________________________________ 91
Opinión personal ___________________________________________________________ 91
10. Bibliografía ____________________________________________________ 93
6
1. Introducción
La aparición del sensor Kinect para videoconsolas Xbox de Microsoft ha
supuesto un cambio en la forma de concebir los videojuegos, ya que éste
permite interaccionar con los jugadores sin ningún dispositivo físico,
ofreciendo así una experiencia muy gratificante al interaccionar con tu
propio movimiento corporal. Pero este hecho, también ha sido una
revelación para un buen número de empresas e investigadores que tratan
de encontrar mil y una aplicaciones en distintos campos, como la
medicina, la educación o la rehabilitación.
Este proyecto se centrará en desarrollar una aplicación adaptada para
persones afectadas por alguna discapacidad física, psíquica o sensorial que
dificulta su desarrollo personal o integración social, educativa o social. La
tecnología adaptativa puede llegar a reducir el impacto de la discapacidad
y satisfacer el derecho de la calidad de vida de las personas con
necesidades especiales.
La propuesta presentada en este proyecto es la utilización del sensor de
videojuegos Kinect para crear una aplicación que permita diseñar
actividades de estimulación auditiva, visual y cognitiva con la finalidad de
estimular a la persona que la utiliza a realizar un movimiento o acción
cognitiva con una respuesta atractiva y enriquecedora.
7
Descripción
El objetivo del proyecto es desarrollar una aplicación utilizando las
funcionalidades que nos ofrece el sensor Kinect, que permita la creación y
ejecución de actividades lúdicas y/o educativas dirigidas a persones
afectadas por alguna discapacidad física, psíquica o sensorial.
Estas actividades serán pequeños juegos que estarán adaptados
totalmente a la persona que la realiza, ofreciendo estímulos como
recompensa a ciertas acciones, como por ejemplo, tocar una determinada
zona, buscar un objeto o mover alguna parte del cuerpo con la finalidad
de estimular a la persona a realizar un movimiento o acción con una
respuesta enriquecedora y estimulante.
La aplicación dispondrá de unas actividades base, que mediante la
aplicación Alfombra Multisensorial se podrán incorporar fácilmente
interacción visual y auditiva con el usuario, posibilitando así la creación de
un sinfín de actividades de estimulación y aprendizaje relacionadas con
temas distintos, y estimulando partes del cuerpo diferentes.
8
Origen del proyecto – La Fundació Maresme
Este proyecto nace en el Departamento de Innovación de la Fundación
privada El Maresme pro personas con disminución psíquica.
La Fundación es una entidad de iniciativa social sin ánimo de lucro que
promueve e impulsa la integración social y la mejora de la calidad de vida
de las personas con discapacidad intelectual de la comarca del Maresme y
de sus familias, procurando dar respuesta a las necesidades y demandas
de este colectivo, disponiendo de una compleja red de servicios y centros
que ofrecen una atención continua.
Los valores que promueve son:
Compromiso con las necesidades de las personas con discapacidad
intelectual y sus familias.
Compromiso con la inclusión social i la participación comunitaria.
Compromiso de dar una atención adecuada, ofreciendo una
formación continuada a sus profesionales.
Compromiso con la transparencia en la gestión, con la calidad de la
prestación de sus servicios y la ética de sus actuaciones.
Apuesta constante por la innovación y la mejora continua.
El Departamento de Innovación de esta fundación, gestiona y desarrolla
proyectos innovadores relacionados con la aplicación de las Tecnologías
de la Información y el Conocimiento (TIC) al bienestar, el aprendizaje, la
comunicación y la calidad de vida de las personas con discapacidad. Sus
proyectos se centran en mejorar la comunicación entre personas con
dificultades de lecto-escritura, expresión y/o movimiento con ejercicios
para evitar el deterioro cognitivo y funcional a través de actividades para
ejercitar la memoria, potenciar el razonamiento y realizar aprendizaje o
mantener conocimientos.
9
Algunos ejemplos son:
Messenger Visual:
Servicio de mensajería instantánea basado en iconos donde las
palabras y conceptos son representados por pictogramas y dibujos,
con el objetivo de mejorar la comunicación entre personas con
discapacidad o que tienen dificultades de lecto-escritura, expresión
y/o movimiento.
Figura 1. Messenger Visual
El casal digital:
Aplicación web que pretende evitar el deterioro cognitivo y
funcional a través de ofrecer actividades para ejercitar la memoria,
potenciar el razonamiento y realizar aprendizaje. Se trabajan
aspectos como los objetos cuotidianos, vestuario, estados de
ánimo, salud, etc.
Figura 2.El Casal Digital
10
Organización de la memoria. La memoria está organizada en varias partes totalmente diferenciadas:
1. En la primera parte se verá una breve descripción del proyecto y su
origen, sirviendo de pequeña introducción.
2. En la segunda parte veremos Kinect como un dispositivo de
reconocimiento de personas, veremos su funcionamiento detallado,
haremos una primera toma de contacto con el tipo de aplicaciones
de Kinect, y como nos puede ayudar en nuestro proyecto.
3. En la tercera parte, correspondiente al análisis, veremos como se ha
planificado el proyecto y los objetivos a cubrir durante su
desarrollo.
4. En la parte de diseño, veremos el diseño tanto de los diferentes
componentes como de la interfaz gráfica.
5. En la parte de implementación, veremos a grandes rasgos todas las
tecnologías implicadas para el desarrollo de la aplicación
6. El capítulo 6 nos proporcionará los conocimientos necesarios para
instalar, configurar y utilizar la aplicación correctamente.
7. En los últimos capítulos veremos los resultados de las pruebas
realizadas en los centros de la Fundació Maresme, la opinión de las
especialistas y una conclusión final.
11
2. Antecedentes - Kinect
Kinect es un dispositivo de control por movimiento creado originalmente
para jugar a los videojuegos de la videoconsola Xbox360. Kinect permite a
los usuarios controlar e interactuar con la consola sin necesidad de tener
contacto físico como un controlador de videojuegos tradicional, mediante
una interfaz natural de usuario que reconoce gestos, comandos de voz, y
objetos e imágenes.
Dadas las características de este sensor, es adecuada su aplicación en el
proyecto, ya que será el encargado de transmitir información del usuario a
la aplicación de manera transparente al usuario.
La ventaja principal del uso de este dispositivo de control es que evitamos
utilizar un soporte físico hardware como podría ser una alfombra con
sensores conectados a un micro-controlador, ya que esta sería más
robusta, no ofrecería mucha flexibilidad en cuanto a tamaño y disposición
de las zonas donde interactúa y tendríamos un desgaste importante con el
uso habitual.
En este capítulo se describe el dispositivo de control Kinect como
elemento físico, detallando las diferentes partes que componen este
dispositivo, las funcionalidades que nos aporta al proyecto y cómo
podemos hacer una aplicación utilizando el kit de desarrollo de software
(SDK) de Microsoft.
12
Kinect Kinect es una barra horizontal de aproximadamente 23 cm conectada a
una pequeña base circular con un eje de articulación de rotula, y está
diseñado para ser colocado longitudinalmente por encima o por debajo
del televisor.
Debido a sus características Kinect compite directamente con otros
sistemas como Wiimote o PlayStation Move de Nintendo y Sony
respectivamente.
Figura 3. Dispositivo de control Kinect
Figura 4. Wiimote Figura 5. Playstation Move
Durante la primera mitad del 2011 numerosos desarrolladores,
instituciones como el MIT, empezaron a investigar y programar nuevas
aplicaciones que pudieran aprovechar las características del Kinect para
darle un uso que vaya más allá de los videojuegos.
Debido a este éxito y con el objetivo de canalizarlo, Microsoft publicó la
primera beta de su SDK oficial compatible con Windows 7 el 16 de junio
de 2011. Actualmente cuenta con la versión 1.6 con soporte para
Windows 8 y más facilidad de uso y programación.
13
Kinect se compone principalmente de:
Una cámara RGB de video con una resolución de 640x480 a 30 fps
(frames per second)
Un emisor de infrarrojos.
Una cámara de infrarrojos.
Micrófono Multi-array, conjunto de cuatro micrófonos que se
monta como un solo micrófono. 4 Micrófonos (16bit sampling rate:
16Hz).
Un motor que permite ajustar la cámara hacia arriba o hacia abajo
hasta 27º.
Y aunque no visibles a simple vista, Kinect también posee:
Memoria RAM de 512 Mb
Acelerómetro, para estabilizar la imagen cuando se mueve.
Ventilador, no está encendido continuamente para no interferir con
los micrófonos.
Figura 6. Componentes de Kinect
1. Sistema de micrófonos.
2. Emisor Infrarrojos.
3. Cámara profundidad o analizador de infrarrojos.
4. Motor de inclinación.
14
5. Cable USB para conexión al PC.
6. Cámara a color.
Alternativa - Asus Xtion Pro Live Asus Xtion es un dispositivo muy parecido a Kinect que la marca Asus
lanzó después de ver el éxito de éste. Sus componentes son iguales:
cámara de color y profundidad, un par de micrófonos y un procesador,
incluso sus características son parecidas (distancia efectiva, resolución de
cámaras, sonido, etc…). Utiliza los controladores de código abierto
OpenNI.
Figura 7. Asus Xtion Pro
No ha sido elegido ya que Microsoft, a fecha de inicio del proyecto, ofrecía
la versión 1.5 para su Kit de desarrollo de software (SDK) ofreciendo
mejores características frente OpenNI, muy adecuadas para el proyecto
que detallaré en el capítulo para Kinect SDK.
15
¿Cómo funciona? En este apartado se describe brevemente el funcionamiento de los
elementos que componen Kinect.
Se puede dividir el funcionamiento de Kinect en tres partes:
Reconocimiento de imágenes.
Reconocimiento de voz.
El motor
Reconocimiento de imágenes
Kinect utiliza una cámara RGB que obtiene imágenes en color y 2 cámaras
de infrarrojos para medir la distancia a la que se encuentran los elementos
que están en el campo de visión.
La cámara de imágenes a color simplemente nos proporciona imágenes en
color de la cámara RGB, como podemos ver en la figura siguiente:
Figura 8. Cámara RGB
Las cámaras infrarrojas las podemos dividir en dos partes principales, el
proyector y la cámara de infrarrojos VGA. El rebote de los haces de laser
por todo el campo de juego es lo que permite que la cámara capte al
profundidad de los diferentes objetos. En la siguiente figura podemos ver
estos haces de láser, con una cámara infrarroja.
16
Figura 9. Cámara infrarroja
Skeletal Tracking
Una de las funcionalidades más interesantes de Kinect utilizando estas
cámaras consiste en el seguimiento de cuerpos humanos, denominado
“Skeletal Tracking” en inglés.
Con los datos de la cámara, Kinect ejecuta una serie de filtros con la
intención de calcular que es una persona y que no lo es. El sistema
utilizará directrices como “una persona tiene una cabeza, dos piernas y
dos brazos” para diferenciarla del sofá o de algún otro elemento que
pueda haber en el campo de juego.
Figura 10. Detección del esqueleto
17
A partir de la información del sensor, se ordena y convierte la
identificación de las partes del cuerpo en un esqueleto.
Kinect tiene precargadas más de 200 posiciones comunes del ser humano
por lo que en caso de que alguna acción tape alguna parte del esqueleto a
la cámara o se pierda el seguimiento, Kinect llenará el vacío
automáticamente basándose en la experiencia.
El sistema hace todo esto continuamente a una velocidad de 30fps y hay
que estar a una distancia de unos dos metros para poder ser reconocido.
En la siguiente figura podemos ver las partes del cuerpo que identifica,
ordena y realiza el seguimiento:
Figura 11. Partes del cuerpo identificadas por Kinect
18
Sistema de micrófonos
El sistema de micrófonos es un conjunto de cuatro micrófonos colocados en la parte inferior, uno a la izquierda y tres a la derecha. De hecho, esta distribución específica es la única razón por la que Kinect es tan ancho (28 cm). Se utiliza tanto para el reconocimiento de voz como para identificar el origen y direccionalidad de la fuente de sonido.
Figura 12. Distribución de los micrófonos
El mayor problema durante el diseño del sistema de micrófonos era que tenía que ser sensible a voces de hasta cinco metros de distancia además de ignorar los ruidos ambientales y cualquier otro sonido. Para solucionarlo Microsoft puso en hasta doscientas cincuenta viviendas dieciséis micrófonos para tomar una serie de grabaciones con el objetivo de determinar cuál es el mejor posicionamiento del sistema de micrófonos.
La distribución es óptima para recoger las voces desde la distancia, el ruido asociado es cancelado por la unidad de procesamiento y utiliza un sistema software para calcular de donde viene el sonido y así crear un burbuja de sonido alrededor del usuario, de esta manera se identifica el sonido de la voz, y se hace caso omiso a las otras personas que se encuentren alrededor de los jugadores. Al igual que el reconocimiento de imágenes, el reconocimiento de sonido está funcionando continuamente.
19
Figura 13. Identificación del ángulo de la voz de un usuario
Motor de inclinación
Tras investigaciones para ver las diferentes configuraciones de espacios de vida en toda América, Europa y Asia, Microsoft llegó a la conclusión de que era necesario dotar la cámara con posibilidad de moverse hacia arriba o hacia abajo con el objetivo de calibrar cada espacio concreto. El motor de inclinación se encuentra en la base de Kinect y es el encargado
de mover arriba y abajo 27 grados la parte donde se encuentran las
cámaras para así poder calibrar el espacio de detección con más precisión.
El espacio de visión del sensor es de 43 grados.
Figura 14. Motor de inclinación.
20
Primer contacto – Developer Toolkit Con el objetivo de familiarizarse con las funcionalidades del sensor Kinect,
mostraré algunas aplicaciones que servirán de ejemplo para ver las
posibilidades del dispositivo.
Estas aplicaciones forman parte del conjunto de tutoriales y códigos de
ejemplo que proporciona Microsoft con Kinect for Windows Developer
ToolKit 1.5 incluido en el SDK, utilizando la tecnología Windows
Presentation Foundation (WPF).
Figura 15. Deleveloper ToolKit
El código de todas las aplicaciones que veremos a continuación lo
podemos instalar en nuestro PC para ver códigos de ejemplo que serán
útiles para el desarrollo final de nuestra aplicación. No entraré en detalles
de código ni lenguaje, ya que durante el desarrollo de la aplicación se
darán más detalles.
21
Color Basics Este programa muestra en una imagen los frames capturados por la
cámara de color y nos permite hacer un “pantallazo” de la cámara. Nos
proporciona la información necesaria para inicializar el sensor y obtener
datos de la cámara de color.
Figura 16. Color Basics
Audio Basics Este programa nos permite identificar la procedencia del audio de las
diferentes fuentes de sonido. Nos proporciona la información necesaria
para localizar la procedencia de la voz.
Figura 17. Audio Basics
22
Kinect Shape Game Este programa nos permite jugar utilizando nuestro propio cuerpo. El
jugador recibe puntos cuando colisiona con los diferentes objetos que van
apareciendo sobre él. Las funcionalidades del dispositivo que se utilizan en
este programa son:
Cámara de color para vernos y colocarnos correctamente delante
del sensor.
Seguimiento del esqueleto.
Comandos de voz para cambiar el tamaño y color de los objetos.
Figura 18. Shape Game
Speech Basics Este programa nos permite mover la tortuga de la imagen hacia las 4
direcciones mediante comandos de voz simples. La funcionalidad del
dispositivo que utiliza el programa es el reconocimiento de voz y nos
proporciona la información necesaria para crear comandos de voz y su
correcto reconocimiento.
23
Figura 19. Speech Basics
Kinect Explorer Esta aplicación nos proporciona imagen a color e imagen de profundidad
de las diferentes cámaras, seguimiento del esqueleto, movimiento del
motor de inclinación e identificación de la fuente de sonido.
Nos proporciona información acerca de las características más utilizadas
de este dispositivo.
Figura 20. Kinect Explorer
24
Investigación y Kinect Muchas instituciones han incorporado Kinect para facilitar las
comunicaciones, los negocios, la salud, el aprendizaje y muchos otros
aspectos de nuestra vida cuotidiana.
A continuación podemos ver algunos ejemplos gráficos de las aplicaciones
que las personas, dada la necesidad de mejora, han desarrollado para
mejorar aspectos muy diferentes y dispares con un magnífico resultado.
Creación de videojuegos:
Figura 21. Videojuegos
Violín Virtual:
Figura 22. Música
25
Presentaciones y docencia:
Figura 23. Educación
Visualización de radiografías sin necesidad de contacto:
Figura 24. Medicina
Rehabilitación y fisioterapia:
Figura 25. Rehabilitación
26
Usos militares:
Figura 26. Desactivación de bombas
Recomendaciones de uso
Es necesario conectar el dispositivo a una fuente de alimentación
externa, ya que sino su funcionalidad será limitada.
El sistema está protegido frente al sobrecalentamiento, a partir de
90º se apaga automáticamente, no hay ninguna interfaz que
permita regular el ventilador. La temperatura ambiente adecuada
está entre 5º y 35º
El motor de inclinación no está preparado para usarse
frecuentemente, no es recomendable más de un cambio al segundo
o más de quince cambios en un periodo de 20 segundos, esta
limitación viene dada con el objetivo de proteger el hardware, si
una aplicación intenta usar frecuentemente el motor el sistema
primero bloqueará la aplicación y si sigue así devolverá un código de
error.
No colocar nunca Kinect enfrente de un altavoz o sobre una
superficie que vibre.
27
No colocar nunca Kinect en el exterior o directamente a la luz del
sol.
No colocar nunca cerca de una fuente de calor.
No conectar Kinect en un hub que es usado por otros dispositivos.
Evitar el uso de otro software o drivers beta que puedan interactuar
con el SDK beta de Kinect.
Kinect – Kit de desarrollo (SDK)
El Kit de Desarrollo de Software (SDK) para Windows es un conjunto de
herramientas que permiten al programador crear aplicaciones capaces de
interactuar con el dispositivo.
Tras la salida al mercado de Kinect no pasó mucho tiempo hasta que
empezaron a hackear Kinect y apareciesen distribuciones libres como por
ejemplo PrimeSense OpenNi. Este éxito provocó que Microsoft decidiese
publicar la SDK oficial de Kinect.
El SDK ha estado orientado a la investigación académica principalmente
aunque también a programadores particulares con el objetivo que
experimenten con la creación de interfaces naturales de usuario.
Actualmente, Microsoft ha lanzado una licencia comercial para
desarrolladores.
La versión de SDK utilizada en este proyecto ha sido la versión 1.5 que nos
proporciona las siguientes funcionalidades:
Kinect Studio, una nueva herramienta que permite a los grabar y
reproducir una secuencia de acciones frente al sensor. Fundamental
para evitar tener que apararte y realizar una prueba unitaria
humana cada vez que cambias algo en una aplicación.
28
Guía de buenas prácticas para desarrollar interfaces de usuario.
Reconocimiento y seguimiento automático de hasta 20
articulaciones del cuerpo humano.
Seguimiento de elementos hasta 40 cm del sensor.
Capacidad de conocer la orientación de las articulaciones.
Capacidades de reconocimiento facial.
Reconocimiento del esqueleto “sentado”, que proporciona la
capacidad de seguir la cabeza, cuello y brazos de un usuario que
esté sentado o en silla de ruedas.
Localización de la fuente de sonido, que permite la determinación de la localización espacial de un sonido, mejora de fiabilidad cuando se integra con la API de reconocimiento de voz.
Reconocimiento de voz en Inglés, Francés, Alemán, Japonés, Italiano
y Español.
Códigos de ejemplo que explotan las funcionalidades de kinect con
la finalidad de facilitar el trabajo a los desarrolladores.
Mejora de resolución a 640x480 a 30 fps con mejora en ambientes
con poca luz.
29
Requerimientos del sistema Para ejecutar las aplicaciones desarrolladas con el SDK de Kinect será necesario utilizar un entorno nativo de Windows, esto quiere decir que no es posible ejecutar las aplicaciones en una máquina virtual ya que tanto los drivers de Kinect como el SDK deben estar instalados en la computadora donde está corriendo la aplicación.
Los requisitos mínimos de nuestro sistema para desarrollar la aplicación son:
Sistema operativo: Windows 7 (32 o 64 bits).
Drivers de Kinect.
Requerimientos hardware:
o Ordenador con un procesador dual-core 2.66 GHz.
o Tarjeta gráfica compatible con Windows 7 y que soporte
Microsoft DirectX 9.0c.
o 2Gb de memoria RAM mínimo (4 Gb recomendados)
o USB 2.0 Dedicado al dispositivo
o Dispositivo Kinect.
Requerimientos software:
o Microsoft Visual Studio 2010 o posterior (Express o cualquier
otra edición).
o Microsoft .NET Framework 4 (instalado con Visual Studio).
o Microsoft Speech Platform – Server Runtime, versión 10.2
(para x86).
o Microsoft Speech Platform- Software Development Kit,
versión 10.2 (para x86).
o Kinect for Windows Runtime Language Pack, versión 0.9 o
superior.
30
3. Análisis En este capítulo se analizará la aplicación a desarrollar y se cubrirán los
siguientes puntos:
1. Identificación y planificación de las fases del proyecto.
2. Análisis de objetivos y requisitos de la aplicación Alfombra
Multisensorial y todo el sistema que le rodea.
3. Casos de uso de la aplicación.
Planificación
He identificado y planificado las siguientes fases del proyecto:
1. Investigación de diferentes dispositivos sensoriales.
2. Investigación del entorno de desarrollo.
3. Primer contacto con aplicaciones para kinect
4. Diseño y desarrollo del programa Alfombra Multisensorial.
5. Pruebas
6. Documentación
Durante las tres primeras fases, más orientadas a la investigación del
sensor Kinect y al aprendizaje, he aprendido como funciona internamente
el sensor y como utilizar las funcionalidades del sensor para crear una
aplicación utilizando el Kit de desarrollo (SDK).
La cuarta y quinta fase se centran en el desarrollo del programa Alfombra
Multisensorial y su posterior puesta a prueba con diferentes tipos de
usuarios y actividades para validar su funcionamiento.
La fase de documentación se ha ido desarrollando durante todo el
proyecto e intenta reflejar todo el trabajo realizado.
31
Podemos ver la planificación temporal en un gráfico más visual, en el
siguiente diagrama de Gantt:
Figura 27. Planificación del proyecto
32
Requerimientos y objetivos Para analizar los requisitos y objetivos de la aplicación veremos un
pequeño esquema de los elementos que la forman y se detallarán los
requisitos de cada uno de los componentes.
Figura 28. Esquema del sistema
33
Dentro de este sistema, encontraremos los siguientes elementos:
1. Espacio de interacción
Es el espacio definido de juego donde se desarrollan las actividades.
Este espacio de interacción deberá cumplir los siguientes requisitos:
i. Deberá ofrecer diferentes zonas de interacción que se podrán
configurar a través del programa Alfombra Multisensorial,
incorporando sonidos e imágenes como reacción a la
interacción del usuario con cada zona.
ii. Deberá posibilitar la colocación de diferentes texturas encima
de las diferentes zonas de interacción, provocando así un
mayor grado de interacción sensorial.
Figura 29. Ejemplos de espacios de interacción
Gracias a la utilización de Kinect, este espacio de interacción podrá ser
cualquier superficie, sin necesidad de ningún cable que conecte este
espacio con el ordenador ya que el dispositivo nos proporciona datos de la
posición del usuario. Esto nos ofrece las siguientes características y
ventajas:
34
Ligero y flexible. Podemos utilizar una sábana extendida en el
suelo, una moqueta o simplemente pintar líneas en el suelo. Esto
nos aporta una máxima comodidad en transporte e instalación.
Económico. Como he comentado en el punto anterior, la
flexibilidad que nos ofrece el soporte físico nos permite adaptarnos
económicamente a nuestras necesidades y requisitos para ciertas
actividades.
La superficie posibilita la colocación de diferentes texturas
encima de las diferentes zonas de interacción, provocando así un
mayor grado de interacción sensorial.
2. Sensor Kinect
Figura 30. Sensor Kinect
Es el sensor encargado de transmitir la información de la posición del
usuario al software e ira conectado al PC mediante un cable USB.
Nos permite conocer la posición de múltiples partes del cuerpo humano,
su postura y gestos corporales, así como reconocer comandos de voz
simples.
35
3. Programa Alfombra Multisensorial
El programa deberá permitir la creación de actividades de estimulación
auditiva y visual con facilidad y su correcta ejecución. Irá conectado
mediante USB al sensor Kinect y recibirá y procesará los datos del usuario
situado en la zona de interacción para obtener información sobre la
posición de las diferentes partes de su cuerpo.
Deberá cumplir los siguientes requisitos:
i. Debe permitir ajustar el espacio de interacción a diferentes
tamaños con la finalidad de adecuarse a la realización de diferentes
actividades y espacios. Algunas actividades necesitaran más espacio
que otras y el tamaño deberá ser diferente, y en otras ocasiones
necesitaremos un espacio más reducido debido a la limitación por
muebles u otros objetos.
ii. Debe permitir subdividir el espacio de interacción en diferentes
tipos de distribución y numero de zonas de interacción.
iii. Para la creación de las actividades a realizar, el programa deberá
incluir algunas actividades como base que ofrecerán variedad en el
tipo de actividad o juego a realizar y la parte del cuerpo que se
ejercitará.
iv. Estas actividades base se podrán personalizar incluyendo las
imágenes y sonidos correspondientes al tipo de actividad que se
vaya a llevar a cabo.
v. La aplicación debe permitir definir el espacio de interacción de una
manera fácil e intuitiva, evitando tener que definirlo o configurarlo
cada vez que se empiece una actividad.
36
4. Proyector y altavoces
Nos permitirá interaccionar tanto auditiva como visualmente con el
usuario, proyectando imágenes y reproduciendo sonidos diferentes a
través del programa.
5. Actividades
Las actividades que ofrecerá el programa son:
1. Actividades Acción-Reacción.
El usuario podrá interaccionar con su cuerpo con las diferentes zonas de
interacción. Cuando una de estas zonas reciba una acción del usuario, se
activará y reproducirá la imagen y el sonido correspondiente a esa zona.
Estas zonas podrán ser configuradas previamente con el estímulo visual y
auditivo que corresponda. En la siguiente figura podemos ver un ejemplo
de actividad Acción-Reacción relacionada con los animales:
Figura 31. Actividad Acción-Reacción
37
En la figura 31, disponemos de un espacio de interacción definido de 4x2
casillas, con un animal definido en cada zona de interacción. Cuando el
usuario se sitúa encima de la zona de interacción del caballo, se
proyectará la imagen del animal y se reproducirá la interacción auditiva
correspondiente al sonido del caballo.
Este tipo de actividades tiene como objetivo:
Mejorar la atención visual.
Asociación de pares (imagen – sonido)
Estimulación auditiva.
Reforzar o estimular el movimiento de alguna parte concreta del
cuerpo, como por ejemplo manos, pies o cabeza.
2. Actividades Estimulo-Respuesta.
El usuario recibirá un estímulo auditivo, ya sea un sonido o una melodía, y
deberá interaccionar con la zona correspondiente a dicho estimulo.
Cuando el usuario interaccione con la zona correcta, se reproducirá un
sonido estimulante.
En la figura 32 podemos ver que se reproduce el estímulo auditivo y visual,
y el usuario deberá interaccionar con la zona correspondiente, asociando
el sonido y la imagen con la zona de interacción correspondiente, en este
caso el pez.
38
Figura 32. Actividad Estimulo-Respuesta
Cuando el usuario interaccione correctamente con la zona, se reproducirá
un sonido estimulante indicando que ha acertado.
Figura 33. Actividad Estimulo-Respuesta II
39
Este tipo de actividades tiene como objetivo:
Mejorar la atención visual.
Asociación de pares (imagen – sonido).
Estimulación auditiva.
Mantenimiento de conocimientos.
Reforzar o estimular el movimiento de alguna parte concreta del
cuerpo, como por ejemplo manos, pies o cabeza.
3. Actividad Piano Musical.
El usuario podrá interaccionar libremente con las diferentes zonas de
interacción, recibiendo un estímulo auditivo cuando interaccione con cada
una de ellas.
A diferencia de las actividades de Acción-Reacción la división de zonas
será semejante a la de un piano y los estímulos auditivos serán notas
musicales de algún instrumento, permitiendo al usuario hacer música con
el movimiento de su cuerpo.
Podemos ver un ejemplo en la figura siguiente:
Figura 34. Actividad Piano
40
En el ejemplo de la figura anterior, cada zona tiene asociando el sonido de
una nota musical con un piano, permitiendo al usuario hacer música con el
movimiento de su cuerpo.
Este tipo de actividades tiene como objetivo:
Estimulación auditiva.
Estimular el movimiento de alguna parte concreta del cuerpo.
4. Actividad Música Corporal.
Este tipo de actividad permitirá al usuario hacer sonar diferentes notas
musicales con el movimiento de su cuerpo, como podrían ser los brazos o
las piernas. Podemos ver un ejemplo ilustrado en la figura siguiente:
Figura 35. Actividad Música Corporal
En el ejemplo de la figura anterior, cuando el usuario mueve sus brazos
arriba y abajo, hace sonar diferentes notas musicales.
Este tipo de actividades tiene como objetivo:
Estimulación auditiva.
Estimular el movimiento de alguna parte concreta del cuerpo.
41
Casos de uso En la ingeniera del software, un caso de uso es una lista de pasos
definiendo interacciones entre un actor o rol, y un sistema, para conseguir
un objetivo. Se utilizan para describir como los usuarios realizan diferentes
funciones utilizando el sistema.
En la figura siguiente podemos ver los casos de uso de la aplicación:
Figura 36. Casos de uso
Los roles que utilizarán el sistema serán:
1. Administrador:
Es el encargado de instalar la aplicación en el PC cumpliendo con los
requisitos de software y hardware indicados, solo deberá realizarse
la primera vez que utilicemos la aplicación.
42
Cada vez que arranquemos la aplicación se encargará de calibrar el
espacio de detección y de seleccionar una actividad a realizar.
2. Creador de Actividades:
Es el encargado de diseñar y crear las actividades utilizando la
aplicación. Deberá conocer que tipos de personas que la van a
utilizar, el grado de dificultad que tiene, si es educativa o lúdica,
etc...
3. Supervisor
Es el encargado de ofrecer soporte al usuario que realiza la
actividad dando soporte motriz, ayuda o instrucciones de los pasos
a seguir.
4. Usuario
Es la persona que realiza la actividad y generará eventos en el
sistema. Podrá interaccionar con las diferentes zonas de interacción
y recibirá estímulos visuales y auditivos como recompensa a ciertas
acciones.
Una persona normalmente desempeñará más de un rol. Con el uso
habitual de la aplicación, una misma persona podría hacer el rol de
administrador, creador de actividades y supervisor, ya que instalaría la
cámara, realizaría la calibración e iniciaría la actividad en menos de 3
minutos.
Caso de uso. Instalación: Actor: Administrador
El administrador podrá instalar la aplicación en el PC la primera vez que
vaya a ser utilizada cumpliendo con los requisitos de software y hardware
indicados
43
Caso de uso. Calibración: Actor: Administrador
El administrador podrá calibrar el espacio de interacción para realizar las
actividades. Se mostrará una ventana y el especialista deberá seleccionar
con que parte del cuerpo quiere realizar la calibración.
En la ventana se podrán ver imágenes de la cámara RGB y una imagen con
la posición del esqueleto. Mediante comandos de voz se podrá definir los
límites del espacio de interacción.
Caso de uso. Crear Actividad: Actor: Creador de Actividades
Se podrá crear una nueva actividad. Se mostrará una ventana donde se
podrá:
Seleccionar número de zonas de interacción dentro del espacio
definido.
Seleccionar el tipo de actividad a realizar.
Incorporar imágenes y sonidos a estas zonas.
Añadir una descripción.
Añadir otras opciones más concretas para ciertas actividades.
Caso de uso. Cargar Actividad Actor: Administrador
Se mostrará una ventana donde podrá seleccionar la actividad que quiere
empezar a realizar, entre todas las actividades ya creadas anteriormente.
44
Caso de uso. Supervisar Actividad Actor: Supervisor
Precondición: Se debe haber cargado una actividad y calibrado el espacio
de interacción.
Se mostrará una ventana donde podrá seleccionar la parte del cuerpo que
el usuario debe utilizar para interaccionar con el sistema. También
dispondrá de información de la cámara RGB y de información del estado
del seguimiento del usuario.
Caso de uso. Realizar Actividad Actor: Usuario
Precondición: Se debe haber cargado una actividad y calibrado el espacio
de interacción.
El usuario podrá interaccionar con las diferentes zonas de interacción, y
dependiendo de la configuración del juego, recibirá estímulos visuales y
auditivos como recompensa a ciertas acciones.
45
4. Diseño En este capítulo trataré el diseño de la aplicación y de la interfaz de
usuario.
Calibración La calibración permite a la persona responsable definir el espacio de
interacción que dispondrá el usuario para realizar la actividad.
La calibración se realizará por comandos de voz, enumerando las
diferentes esquinas del espacio de interacción que queramos definir.
Figura 37. Calibración
Como podemos ver en la figura anterior los puntos 1 y 2 serán los más
cercanos a la cámara, de izquierda a derecha, y los puntos 3 y 4 los más
lejanos, de izquierda a derecha.
Estos datos se almacenarán en un fichero de configuración para no tener
que calibrar el espacio de interacción cada vez que abramos la aplicación y
no cambiemos la posición de la cámara.
46
Zona de interacción Una vez definido el espacio de interacción, el diseño que ofrecerán las
diferentes zonas de interacción dentro de este espacio es el siguiente:
Para actividades de Acción-Reacción y Estimulo-Respuesta:
4 Zonas de interacción:
División de 2x2 del espacio de interacción:
Figura 38. 4 Zonas de interacción
6 Zonas de interacción:
División de 3x2 del espacio de interacción:
Figura 39. 6 Zonas de interacción.
47
9 Zonas de interacción:
División de 3x3 del espacio de interacción:
Figura 40. 9 Zonas de interacción.
12 zonas de interacción:
División de 3x4 del espacio de interacción:
Figura 41. 12 Zonas de interacción.
48
Para las actividades de Piano Musical podremos añadir el número de notas
musicales que queramos entre 1 y 12, y automáticamente se dividirá en
partes iguales en forma vertical, podemos ver un ejemplo con 8 notas en
la figura siguiente:
Figura 42. Piano Musical
Para las actividades de Música corporal también podremos añadir el
número de notas musicales que queramos entre 1 y 12, y
automáticamente se reproducirán según el movimiento de la parte del
cuerpo seleccionada para la actividad.
49
Diseño interfaz usuario La interfaz de usuario son una serie de ventanas que permitirán al usuario
hacer uso de la aplicación. En la figura siguiente podemos ver un esquema
de la interfaz de usuario diseñada para la aplicación:
Figura 43. Diseño interfaz gráfica
Disponemos de una ventana principal dónde podremos seleccionar las
siguientes opciones:
1. Calibración:
En la opción de calibración, dispondremos de una ventana donde la
persona responsable de la actividad podrá calibrar el espacio de
interacción.
2. Configuración:
Esta opción es la parte de configuración de nuestra aplicación
dónde podremos crear y cargas las actividades. En la opción de
configuración, dispondremos de dos opciones:
i. Crear actividad:
Dispondremos de una ventana dónde podremos seleccionar
el tipo de actividad a realizar e incorporar interacciones
visuales y auditivas a cada zona de interacción.
50
ii. Cargar actividad:
Dispondremos de una ventana dónde podremos seleccionar
la actividad que queremos cargar al sistema. Estas actividades
han sido creadas con anterioridad.
3. Iniciar Actividad:
Esta opción inicia una actividad previamente cargada y mostrará
dos ventanas:
i. Soporte:
Se mostrarán datos de la cámara RGB y del seguimiento
corporal para ofrecer soporte a la persona responsable.
También ofrecerá opciones de interacción del usuario con el
sistema.
ii. Interacción:
Esta ventana se mostrará por el proyector y mostrará las
imágenes correspondientes a la interacción de cada zona.
Figura 44. Menú Principal
51
Calibración La ventana de calibración permite:
Seleccionar el ángulo de inclinación de la cámara para poder ajustar
el espacio de interacción deseado dentro del ángulo de visión.
Seleccionar la parte del cuerpo con la queremos realizar la
calibración (Manos o pies).
Ejecutar los comandos de voz para realizar la calibración de las
esquinas del espacio de interacción.
Figura 45. Ventana de calibración
52
Figura 46. Ejemplo de calibración.
En la figura 46, podemos ver un ejemplo de calibración del espacio de
interacción. En la imagen de color se muestra el espacio de interacción
definido por cinta y en la imagen del seguimiento corporal se muestran los
puntos de las esquinas ya calibradas.
Una vez realizada correctamente podemos pulsar el botón guardar para
almacenar esta información.
53
Configuración Esta ventana muestra opciones para crear y cargar actividades. En la
opción para crear una nueva actividad podemos ver la ventana siguiente:
Figura 47. Ventana Configuración
En la opción cargar actividad, se muestra un listado con las actividades ya
creadas anteriormente y permite seleccionar la actividad que queremos
realizar.
Figura 48. Cargar actividad
54
En la opción crear actividad, se muestra una ventana donde la persona
que ha diseñado la actividad podrá crearla definiendo:
Un nombre.
Tipo de actividad:
o Acción-Reacción
o Estimulo-Respuesta
o Piano Musical
o Música Corporal
Numero de zonas.
Imágenes y sonidos correspondientes a la interacción de cada zona.
Descripción
Podemos ver un ejemplo en la figura siguiente:
Figura 49. Creación Actividad.
55
Iniciar Actividad Cuando una actividad ha sido cargada al sistema, se puede empezar
pulsando la opción Iniciar actividad y dispondremos de dos ventanas.
Ventana de soporte:
Se muestran datos de la cámara RGB, del seguimiento corporal y permite
a la persona responsable seleccionar con que parte del cuerpo debe
interaccionar el usuario.
Figura 50. Ventana de soporte
56
Ventana de interacción:
Ventana donde se mostrarán las diferentes interacciones visuales de las
actividades. Esta ventana se muestra en el proyector.
Figura asdasda
Figura 51.Ejemplo de ventana de interacción
57
5. Implementación
En este capítulo analizaré la implementación de la aplicación, describiendo
las tecnologías y el entorno de programación utilizado.
Para la realización del proyecto he optado por crear la aplicación
mediante un proyecto de Windows Presentation Foundation (WPF)
utilizando el entorno de desarrollo Visual Studio 2010 Express Edition.
La interfaz de usuario ha sido diseñada utilizando la tecnología XAML
destinada al diseño de interfaces de usuario para aplicaciones Windows.
Windows Presentation Foundation (WPF)
Windows Presentation Foundation es una tecnología Microsoft, presentada inicialmente como parte de Windows que permite el desarrollo de interfaces de interacción para aplicaciones Windows. WPF ofrece una amplia infraestructura y potencia gráfica con la que es posible desarrollar aplicaciones visualmente atractivas, con facilidades de integración que incluyen animación, video, audio, documentos, navegación o gráficos 3D. Cabe destacar que separa con el lenguaje declarativo XAML y los lenguajes de programación .NET, la interfaz visual de la lógica del negocio, propiciando una arquitectura Modelo Vista Controlador. WPF se incluye con Windows 7, Windows Vista y Windows Server 2008 aunque también está disponible para Windows XP SP2 o posterior y Windows Server 2003.
eXtensible Application Markup Language – XAML WPF introduce un nuevo lenguaje conocido como lenguaje extensible de marcado de aplicaciones, XAML, basado en XML. Su objetivo es dar un método eficaz para describir gráficamente interfaces de usuarios visuales ricas desde el punto de vista gráfico.
58
Su gran ventaja es que es un lenguaje completamente declarativo, de manera que el desarrollador puede describir el comportamiento y la integración de los componentes sin utilizar la programación procedural. Su utilización para desarrollar interfaces de usuario permite también la separación entre modelo y vista, lo que es un buen principio de arquitectura. Hay que destacar que el uso de XAML en el desarrollo de aplicaciones no es estrictamente necesario, es posible cargar todos los elementos de WPF mediante código. Sin embargo XAML es más rápido, más fácil de implementar y de localizar y significan una elección mejor que cualquier código equivalente.
Lenguaje de programación – C#
C# es el nuevo lenguaje de propósito general diseñado por Microsoft para
su plataforma .NET. La sintaxis y estructuración de C# es muy parecida a
la de C++ o Java, puesto que la intención de Microsoft es facilitar la
migración de códigos escritos en estos lenguajes a C#.
C# es un lenguaje de programación que toma las mejores características
de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en
uno solo.
59
Visual Studio – Entorno de Desarrollo
Es un entorno de desarrollo integrado (IDE) para sistemas operativos
Windows, soporta lenguajes de programación tales como Visual C++,
Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se
han desarrollado las extensiones para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y
aplicaciones Web, así como servicios web en cualquier entorno que
soporte plataforma .NET. De esta forma se pueden crear aplicaciones que
se comuniquen entre dispositivos móviles, estaciones de trabajo y sitios
web.
La versión más reciente de este IDE es la versión 2012, que vio la luz el 24
de mayo 2012, su mayor logro ha sido incluir las herramientas para el
desarrollo de aplicaciones para Windows 8.
Para el desarrollo del proyecto utilizaré Visual Studio 2010, concretamente
la versión Express para C# ya que recordemos que la licencia de Visual
Studio es licencia propietaria, aunque Microsoft ofrece gratuitamente las
Express Editions, que son varias ediciones básicas separadas por lenguajes
de programación o plataforma enfocadas para novatos y entusiastas. Estas
ediciones son iguales al entorno de desarrollo comercial pero sin
características avanzadas.
Podemos descargar Visual Studio 2010 Express de la web de Microsoft:
http://www.microsoft.com/visualstudio/esn/downloads
60
Crear un proyecto con Visual Studio y Kinect Para comenzar un proyecto con Microsoft Visual C# 2010 Express Edition se empezará creando un nuevo proyecto WPF. En la figura siguiente podemos ver las diferentes ventanas que nos ofrece nuestro entorno de desarrollo:
Figura 52. Visual Studio 2010 C# Express
1. Ventana de solución Muestra todas las clases, ventanas, propiedades y referencias del proyecto. Al crear el proyecto podemos ver 2 ficheros:
MainWindow.xaml, en este fichero de diseño será donde se declare y trabaje con la interfaz de usuario de la aplicación utilizando el lenguaje XAML.
MainWindow.xaml.cs, en esta parte se encontrará la lógica de negocio de la aplicación, programada utilizando el lenguaje de programación C#.
61
2. Propiedades Muestra las propiedades de cada vista o clase del proyecto. Se pueden definir las propiedades de los diferentes elementos y manejar los eventos.
3. Vista de desarrollo En esta ventana podemos ver el contenido de los diferentes archivos de nuestro proyecto, ya sea código o interfaz gráfica.
4. Ventana de diseño En esta ventana podemos ver el código XAML que hay detrás de cada pantalla de la interfaz gráfica. Si este código de modifica, los cambios de mostraran inmediatamente en la ventana 3, pudiendo así visualizar los cambios con rapidez y sin necesidad de compilar y ejecutar nuestra aplicación.
5. Toolbox. Esta ToolBox nos proporciona las herramientas necesarias para desarrollar nuestra interfaz gráfica de usuario. Nos permite arrastrar y soltar cualquier elemento para incorporarlo fácilmente a nuestra interfaz.
Una vez creado o abierto un proyecto por primera vez se debe agregar la referencia al SDK de Kinect, que nos permitirá la comunicación con el dispositivo. Para ello, en la ventana de solución, hacemos clic encima de “References” y seleccionamos “Add reference” y buscamos “Microsoft.Kinect.dll” dentro de nuestro SDK como ver en la figura siguiente:
62
Figura 53. Añadir referencia a librería de Kinect
63
Alfombra Multisensorial
En esta sección veremos algunos detalles del proyecto con Visual Studio. Como hemos visto en la sección anterior cada ventana WPF tiene asociado dos archivos, un archivo con extensión .xaml donde se declaran los diferentes elementos de la interfaz de usuario, y un archivo con extensión .xaml.cs que es donde encontramos la lógica de la aplicación programada utilizando C#. En la figura siguiente podemos ver los componentes y ventanas que forman el programa:
Figura 54. Proyecto
64
Figura 55. Esquema de ventanas
Estas ventanas corresponden a las diferentes acciones que nos permite la aplicación:
Calibrar el espacio de interacción.
Cargar o crear alguna actividad.
Empezar a realizar la actividad
65
6. Manuales de Uso
Manual 1 - Instalación SDK y Drivers Una vez se tiene el ordenador con Windows 7 actualizado y Visual Studio 2010 instalado se procederá a la descarga e instalación del SDK. Es muy importante tener en cuenta dos cosas:
Que el Kinect esté desenchufado.
Que Visual Studio esté cerrado.
Que no haya ningún otro driver para Kinect instalado (incluyendo versiones más antiguas).
Se descargará el paquete correspondiente a la versión 1.5 (32bits o 64 bits) de la página web www.kinectforwindows.org.
Se siguen los pasos del instalador.
Figura 56. Instalación SDK
Una vez instalado el SDK, se conectará Kinect a la corriente y al ordenador (por USB), el sistema operativo reconocerá el nuevo hardware y se
66
dispondrá a instalarlo automáticamente. Si se hace clic en más información se mostrará el siguiente estado al acabar la instalación:
Figura 57. Instalación correcta de drivers
Esta instalación deberá hacerse en cada equipo en donde se quiera usar Kinect, para el desarrollo de aplicaciones así que como para la ejecución de aplicaciones que lo usan. Para comprobar si se han instalado los drivers de Kinect correctamente, basta con ir a “Panel de control ->Sonido y Hardware ->Administrador de dispositivos” y ahí aparece el sensor instalado:
Figura 58. Drivers
67
Manual 2 – Instalación de la aplicación
En este manual se hará una breve descripción de como instalar la
aplicación en nuestro PC.
Los requisitos de nuestro PC serán:
Windows 7.
Drivers de Kinect correctamente instalados.
Ordenador con un procesador dual-core 2.66 GHz.
Tarjeta gráfica compatible con Windows 7 y que soporte Microsoft
DirectX 9.0c.
2Gb de memoria RAM mínimo (4 Gb recomendados).
USB 2.0 dedicado al dispositivo.
Si nuestro PC cumple con los requisitos de software y hardware para el
soporte de Kinect, podremos instalar la aplicación haciendo doble clic en
el instalador y siguiendo los pasos que nos indica.
Figura 59. Instalación de la aplicación (I).
68
Figura 60. Instalación de la aplicación ( II).
Figura 61. Instalación de la aplicación (III).
Una vez cargada la barra de proceso hacemos clic en “cerrar” y ya estará
lista para ser utilizada.
69
Manual 3 - Creación de actividades
En este manual utilizaré la aplicación para crear algunas actividades,
utilizando las actividades base propuestas en la aplicación, que servirán de
primer paso para crear otras actividades con diseños e interacciones
diferentes.
Aprenderemos a crear una actividad de cada tipo con la finalidad de dar
una idea del tipo de actividades que podemos crear, cuál debe ser su
diseño y cómo podemos crearlas fácilmente.
Actividad Acción-Reacción El usuario podrá interaccionar con su cuerpo con las diferentes zonas de
interacción. Cuando una de estas zonas reciba una acción del usuario, se
activará y reproducirá la imagen y el sonido correspondiente a esa zona.
Para crear nuestra primera actividad primero debemos diseñarla, el
diseño para esta actividad será el siguiente:
Nombre: Animales A-R
Tipo: Acción-Reacción
Numero de zonas: 6
o Zona 1: Vaca
o Zona 2: Caballo
o Zona 3: Elefante
o Zona 4: Perro
o Zona 5: Delfín
o Zona 6: León
Disponer de las imágenes y sonidos correspondientes a cada zona
de interacción.
Abrimos la aplicación y pulsamos sobre Configuración/Crear Actividad.
Primeramente rellenamos los datos del nombre, estilo de juego y las
zonas de interacción, como podemos ver en la figura siguiente:
70
Figura 62. Creación de actividad A-R. Primeros Pasos
Más tarde debemos ir añadiendo las interacciones de cada zona,
indicando el número de zona, y el sonido e imagen correspondientes,
como podemos ver en la figura siguiente. Por último debemos escribir una
descripción y pulsar sobre el botón de finalizar.
Figura 63. Creación de actividad A-R.
71
Un esquema final de la actividad sería el siguiente:
Figura 64. Esquema de la actividad Acción-Reacción
72
Actividad Estimulo-Respuesta
El usuario recibirá un estímulo auditivo, ya sea un sonido, una melodía o
una orden grabada, y deberá interaccionar con la zona correspondiente a
dicho estimulo. Cuando el usuario interaccione con la zona correcta, se
reproducirá un sonido estimulante totalmente configurable.
Diseño de la actividad:
Nombre: Animales E-R
Tipo: Estimulo-Respuesta
Numero de zonas: 6
o Zona 1: Vaca
o Zona 2: Caballo
o Zona 3: Elefante
o Zona 4: Perro
o Zona 5: Delfín
o Zona 6: León
Disponer de las imágenes y sonidos correspondientes a cada zona
de interacción.
Disponer de la imagen y el sonido que se mostrarán cuando el
usuario interaccione con la zona correcta.
Diseñar un camino, este camino es el que el usuario deberá seguir
durante la actividad. Por ejemplo: Zona 1 – Zona 3 -- Zona 2 - Zona 6
– Zona 4 – Zona 5.
Abrimos la aplicación y pulsamos sobre Configuración/Crear Actividad.
Rellenamos los datos del nombre, estilo de juego y las zonas de
interacción. En segundo lugar añadimos las interacciones visuales y
auditivas según el diseño de la actividad y el número de zonas. Por último,
añadimos el orden de las zonas que el usuario deberá seguir y el sonido
que se reproducirá cuando éste interaccione con la zona correcta.
73
Figura 65. Actividad Estimulo-Respuesta
Actividad Piano Musical A diferencia de las actividades de Acción-Reacción la división de zonas es
semejante a la de un piano, es decir, las divisiones serán verticales, como
podemos ver en la figura siguiente:
Figura 66. Piano
74
Como estímulos auditivos utilizaré notas musicales de un piano,
permitiendo al usuario hacer música con el movimiento de su cuerpo.
Diseño de la actividad:
Nombre: Piano
Tipo: Piano Musical
Numero de notas: 8 (Do – Re - Mi – Fa – Sol – La – Si – Do )
Disponer de la imagen del instrumento.
Disponer de las 8 notas del piano.
Figura 67. Piano Musical
75
Actividad Música Corporal
Este tipo de actividad permite al usuario hacer sonar diferentes notas
musicales con el movimiento de su cuerpo. Como estímulos auditivos
utilizaré notas musicales de un piano, permitiendo al usuario hacer música
con el movimiento de su cuerpo.
Diseño de la actividad:
Nombre: MusicaCorporal
Tipo: Música Corporal
Numero de notas: 5 (Do – Re - Mi – Fa – Sol)
Disponer de la imagen del instrumento.
Disponer de las 5 notas del piano.
Figura 68. Música Corporal
76
Manual 4 – Calibración de Kinect
La calibración permite a la persona responsable definir el espacio de
interacción que dispondrá el usuario para realizar la actividad. La
calibración se realizará por comandos de voz, enumerando las diferentes
esquinas del espacio de interacción que queramos definir.
Abrimos la aplicación y seleccionamos la opción de calibración.
Figura 69. Calibración
Para realizar la calibración debemos situarnos en las esquinas de espacio
de interacción que hayamos definido, si éstas no están dentro del rango
del dispositivo podremos moverlo utilizando la opción de grados de
inclinación de la cámara. Si moviendo el ángulo no podemos ver el espacio
de interacción entero, deberemos hacerlo más pequeño y ajustarlo a las
limitaciones del dispositivo.
77
Cuando en el campo de visión de la cámara tengamos fijado el espacio de
interacción, deberemos comunicarle al sistema mediante la voz en que
numero de esquina estamos situados para que guarde esta información.
Los comandos de voz validos serán: “uno”, “dos”, “tres” y “cuatro”.
Figura 70. Calibración
Como podemos ver en la figura anterior los puntos 1 y 2 serán los más
cercanos a la cámara, de izquierda a derecha, y los puntos 3 y 4 los más
lejanos, de izquierda a derecha.
Una vez calibrados los 4 puntos, hacemos clic en “Guardar”.
NOTA: La calibración debe hacerse cuando coloquemos la cámara o en
caso de que se mueva durante la realización de una actividad, por lo que
se recomienda que se sitúe en un sitio firme y fijo.
78
7. Pruebas
Las pruebas de la aplicación han sido realizadas en dos de los centros de la
Fundació Maresme: Llar Santa María y STO Pere Parera.
Estos dos centros se diferencian por el tipo de personas que atiende. La
Llar Santa María atiende a personas con discapacidades profundas y
graves que necesitan una atención continua las 24 horas, a diferencia del
STO Pere Parera que atiende a personas con un menor grado de
discapacidad.
Residencia y centro de atención especializada. Llar Santa
María.
La “Llar Santa María” es un centro asistencial que atiende a personas en
edad adulta con discapacidad intelectual profunda, con graves
disfunciones y con una necesidad de soporte extenso y generalizado. Estas
discapacidades van acompañadas normalmente de déficit motriz y
sensorial, así como también importantes problemas de salud.
El centro contempla una atención interdisciplinaria para cubrir de manera
integral las necesidades individuales de asistencia educativa y emocional.
A la vez que proporciona un seguimiento a nivel médico y rehabilitador.
El centro ofrece:
Orientación a las personas atendidas y sus familias.
Curas y seguridad personal
Tratamiento rehabilitador y terapéutico ajustador a las necesidades
individuales.
Realización de actividades de ocio que favorece la interacción,
comunicación y relaciones personales.
Trabajo de los hábitos y la autonomía.
Estimulación cognitiva y sensorial.
Trabajo de los hábitos y autonomía.
Integración social y comunitaria.
79
En conclusión, los usuarios de este centro son personas con altos niveles
de discapacidad intelectual, motriz o comunicativa que necesitan cuidados
las 24 horas del día.
Las pruebas realizadas en este centro han sido bastante satisfactorias. La
dificultad era elevada ya que el grado de discapacidad intelectual y/o
motriz es muy grave.
Las pruebas han sido realizadas con dos usuarias diferentes para
comprobar el buen funcionamiento de la aplicación:
La usuaria 1 con movilidad totalmente independiente, aunque
reducida, y con habilidades comunicativas suficientes como para
entender las actividades más simples.
La usuaria 2 con movilidad totalmente dependiente, en silla de
ruedas y habilidades comunicativas muy reducidas
Figura 71. Usuaria 1. Actividad animales
80
Figura 72. Usuaria 1. Actividad Acierta
81
Figura 73. Usuaria 2. Actividad Piano con manos
82
Figura 74. Usuaria 2.
83
Centro de terapia ocupacional Pere Parera
Los centros ocupacionales para personas con disminución psíquica son la
alternativa desde el ámbito de los servicios sociales a la integración de
aquellas personas que no pueden incorporarse al sistema de trabajo y de
mercado ordinario, ni en un centro especial de trabajo, por no llegar a un
determinado nivel de capacidad productiva.
La ocupación terapéutica ofrece actividades que favorecen el desarrollo
personal y social, mejorando el ámbito de la autonomía, fomentando las
relaciones interpersonales, la comunicación y el deporte. También ofrece
actividades de socialización, celebrando fiestas tradicionales y populares
con otras entidades.
Los objetivos generales del servicio ocupacional son:
Conseguir un funcionamiento independiente del individuo, tanto
personal como socialmente, ofreciendo un amplio abanico de
actividades a elegir.
Potenciar las capacidades y habilidades para adquirir autonomía.
En conclusión, los usuarios de este centro, a diferencia de “Llar Santa
María” son personas con mucha más autonomía y conocimientos, y la
mayoría tienen buena motricidad y habilidad cognitiva.
84
Figura 75. Preparación de las actividades
85
Figura 76. Actividad ¿De qué color es?
86
Figura 77. Actividad Explora los animales
87
Figura 78. Piano Musical
88
Resultados En esta sección veremos los cambios, modificaciones o ideas que han ido
surgiendo al realizar las pruebas y como se han tratado:
Algunas personas que utilizaron la aplicación tenían una movilidad muy
reducida, aunque podían estar en pie, debían ir acompañados de una
persona que les diera soporte motriz y de refuerzo auditivo.
En un primer momento se pensó en hacer el seguimiento corporal de las 2
personas en escena y hacer caso omiso al acompañante, no pudiendo este
afectar sobre el sistema. Pero surgió una pregunta, ¿Quién es el
acompañante?, ¿El Primero que entra?, entonces se decidió que fuese la
persona más activa, es decir, la persona con más movimiento y cercanía a
la cámara, solo pudiendo esta afectar con el sistema. En motivo a esta
solución, la persona acompañante se debe situar lo más oculta a la cámara
posible.
Resueltos los problemas con personas de movilidad reducida, surgió la
pregunta, ¿Cómo interaccionaran las personas en una silla de ruedas con
el sistema? , ¿Se quedarán fuera del conjunto de personas que se
beneficien de la aplicación?, la respuesta claramente era no.
Como solución se propuso la realización de las actividades de música
corporal, que en un inicio no era una actividad base propuesta. Estas
actividades permiten que personas en silla de ruedas y sin trabajar desde
el suelo, puedan hacer música con el movimiento de sus brazos o cabeza.
Por último, el mayor problema encontrado ha sido la detección por parte
del dispositivo Kinect de las personas que interactuaban desde el suelo,
concretamente si la posición del cuerpo no era “natural”, es decir,
tumbado en el suelo o en posición de rodillas y con un movimiento
reducido, el dispositivo tenía dificultades para reconocer e identificar las
partes del cuerpo. Podemos ver un ejemplo en la figura 3453.
En muchos casos este problema se soluciona con la realización por parte
del usuario de algún movimiento de su cuerpo como levantar los brazos o
intentar levantar un poco la cabeza y la espalda para hacer una primera
identificación del cuerpo y facilitar el seguimiento posterior. Aunque una
89
vez identificado el cuerpo, la interacción con el sistema puede fallar en
algunos casos, ya que la precisión del lugar donde se encuentra cada una
de las articulaciones dada la postura no es muy exacta.
Este problema no tendrá solución ya que viene dado por las limitaciones
del sensor, que internamente procesa los datos de la cámara para
identificar las partes del cuerpo, comprensible ya que no olvidemos que
está diseñado para jugar con una videoconsola o PC, de pie o sentado en
una silla o sofá.
Los resultados de las pruebas han sido muy satisfactorios en todos los
casos y han aportado muchas ideas y mejoras al proyecto.
90
8. Opinión En esta sección citaré la opinión de Sandra Delgado, especialista de la
Fundació Maresme:
“A nivel pedagógico, la Alfombra Multisensorial permite trabajar las
acciones intelectuales con la finalidad de promover el mantenimiento
cognitivo y facilitar la autonomía de las personas que la utilizan en su día a
día.
La amplia flexibilidad de la aplicación en la creación de un sinfín de
actividades diferentes, permite ejercitar la memoria para prevenir su
perdida, potenciar el razonamiento, agilizar la capacidad de aprendizaje y
mantener conocimientos con la ventaja de estar jugando a un videojuego
adaptado a las necesidades de cada persona.
A nivel fisioterapéutico, la Alfombra Multisensorial es una herramienta
útil para nosotras ya que facilita a las personas con graves problemas
motrices, que puedan participar en la realización de actividades junto al
resto de compañeros, y complementa muy bien el trabajo que debemos
realizar a nivel sensorial gracias a los estímulos auditivos y visuales.
También podemos decir que es una herramienta motora muy buena, ya
que los participantes ejercitaran su cuerpo mientras realizan las
actividades, pudiendo trabajar con las extremidades superiores como
inferiores.
En conclusión, podemos decir que es una herramienta útil y divertida, que
nos permite trabajar con un abanico muy amplio de persones afectadas
por alguna discapacidad, ofreciendo soporte educativo y cognitivo.”
91
9. Conclusión
En este capítulo se exponen las conclusiones finales del proyecto. Primero
se analizan los objetivos conseguidos y después una valoración personal
sobre el trabajo realizado.
Conclusión general El objetivo del proyecto era desarrollar una aplicación utilizando las
funcionalidades que nos ofrece el sensor Kinect, que permita la creación y
ejecución de actividades lúdicas y/o educativas dirigidas a persones
afectadas por alguna discapacidad física, psíquica o sensorial.
Como resultado final se ha obtenido una aplicación totalmente flexible
que intenta cubrir las necesidades de todas las personas con discapacidad
que utilizarán la aplicación, ofreciendo 4 tipos de actividades base que se
pueden complementar con diferentes sonidos e imágenes para crear un
sinfín de actividades de estimulación diferentes.
Tras las primeras pruebas se llegó a la conclusión de que sí que era posible el uso de esta herramienta para propósitos educativos y lúdicos, los usuarios mostraron un gran interés por la herramienta y la forma de interacción que se planteaba. Tras las pruebas con los usuarios se pudo mejorar la aplicación, habiendo en ellos una gran motivación por realizar la actividad.
Opinión personal La realización de este proyecto me ha gustado mucho, en especial la
satisfacción de haber podido ayudar a personas con discapacidad a
participar en juegos que incorporan tecnología de una manera divertida, y
a la vez educativa y rehabilitadora.
Durante la primera fase del proyecto, he tenido que investigar sobre el
dispositivo Kinect y como desarrollar una aplicación. Creo que me ha sido
muy útil e interesante, ya que he podido evaluar mi base de
conocimientos adquiridos durante la carrera y mi capacidad para adquirir
nuevos por mi cuenta.
92
El resultado del proyecto ha sido muy bueno, tanto en funcionalidades
como en la opinión personal de las personal que la han utilizado hasta
ahora.
93
10. Bibliografía
www.xbox.com/es-ES/kinect
www.primesense.com
http://www.edogaru.net/2011/11/14/kinect-primeros-pasos
http://elrincon-delgamer.blogspot.com.es/2010/08/caracteristicas-y-
funcionamiento-de.html
http://channel9.msdn.com/coding4fun/kinect
http://es.wikipedia.org/wiki/Modelo_de_color_RGB http://www.kinecteducation.com/blog/tag/programming-for-kinect/ http://www.microsoft.com/en-
us/kinectforwindows/develop/resources.aspx
http://www.microsoft.com/es-es/download/details.aspx?id=17851
http://www.microsoft.com/visualstudio/es-es
http://esencialbit.com/analisis/como-funciona-kinect http://es.wikipedia.org/wiki/Wiimote http://es.wikipedia.org/wiki/PlayStation_Move
http://msdn.microsoft.com/es-es/library/ms748948.aspx
http://wpftutorial.net
http://stackoverflow.com/questions/227140/c-sharp-speech-recognition-
is-this-what-the-user-said
http://blog.kinectfordevelopers.com
https://skydrive.live.com/?cid=bef06dffdb192125&resid=BEF06DFFDB192
125!4275&id=BEF06DFFDB192125!4275