Está en la página 1de 286

INTERFACES GESTUALES

Y
REALIDAD AUMENTADA

Autores: Díaz, Gastón; Leschevich, Germán

Director de tesina: Mg. Biaggio, Alejandro

Tesina presentada a la Facultad de Ingeniería de la Universidad Nacional de la


Patagonia San Juan Bosco como parte de los requisitos para la obtención del título
de Licenciado en Informática

Trelew, Diciembre de 2014


Facultad de Ingeniería – Sede Trelew
Universidad Nacional de la Patagonia San Juan Bosco
Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

AGRADECIMIENTOS
Queremos dedicar esta tesina a nuestras familias, amigos y amigas que nos apoyaron y
acompañaron a lo largo de la carrera, y sobre todo nos motivaron incansablemente durante la
realización del presente documento. Por otra parte, queremos agradecer a todos los profesores por
ayudarnos a crecer como futuros profesionales, y en especial a nuestro tutor Alejandro y al
jurado, que dedicaron su tiempo y esfuerzo para ayudarnos a concluir este trabajo de la mejor
manera.

Diaz Gastón, Leschevich Germán I


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

RESUMEN
El objetivo de la presente tesina, es estudiar los conceptos de Interfaces Gestuales y de
Realidad Aumentada, como por ejemplo su evolución e historia, definiciones, componentes,
fundamentos y casos de aplicación de cada uno de ellos.

En cuanto a las Interfaces Gestuales se definirán los conceptos de interacción entre


persona – computadora, y los conceptos y disciplinas a tener en cuenta a la hora de diseñarlas.
Además se analizará el concepto de gesto, diseño, atributos y clasificación de los mismos.

Con relación a la Realidad Aumentada se estudiará su definición, sus fundamentos y sus


casos de aplicación, como también las técnicas para aplicarla y sus diferencias con la Realidad
Virtual.

Además, se estudiarán las distintas técnicas y dispositivos que permiten la detección y el


reconocimiento de gestos, y algunas de las herramientas más populares que permiten la
programación de aplicaciones para dichos dispositivos, realizando finalmente, una comparación
entre los mismos.

Por último, se propone desarrollar una aplicación utilizando las características del
dispositivo de detección de gestos Kinect (las cuales serán investigadas y explayadas en el
presente documento), que permita detectar y reconocer gestos, e incorporar conceptos de la
Realidad Aumentada, y cuyo objetivo es ayudar a la rehabilitación de las personas que han
sufrido ACV (Accidentes Cerebro Vasculares) mediante la grabación de gestos personalizados
para dicha persona, por parte de su médico.

Diaz Gastón, Leschevich Germán II


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

ABSTRACT
The aim of this dissertation is to study the concepts of Gestural Interfaces and
Augmented Reality, including for example their history, definitions, components, foundations
and application cases of each of them.

As regards Gestural Interfaces, the concepts of person – computer interaction, and the
concepts and disciplines to consider when designing them will be defined. Moreover, the
concepts of gesture, design, attributes and their classification will be analyzed.

As regards Augmented Reality, not only its definition, foundations and application
cases, but also the techniques to implement it and the differences with Virtual Reality will be
studied.

Moreover, different techniques and devices which allow the detection and recognition of
gestures will be studied. Furthermore, some of the most popular tools which allow the
programming of applications for such devices will be studied too, making at the end a
comparison between them.

Finally, it is intended to develop an application using the characteristics of the gesture


detector device Kinetic (such characteristics will be investigated and enlarged in the present
document), which enables to detect and recognize gestures and incorporate concepts of
Augmented Reality, and whose objective is to help the rehabilitation of people who have suffered
a CVA (cerebrovascular accident) by means of the recording of gestures customized by doctors
for patients.

Diaz Gastón, Leschevich Germán III


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

ORGANIZACIÓN DE LOS CONTENIDOS


Capítulo 1. Introducción

En este capítulo se describen los objetivos, motivación, el marco teórico, y el desarrollo


propuesto para la presente tesina.

Capítulo 2. Interfaces Gestuales

Se describen los conceptos introductorios de las interfaces, tales como la definición del
concepto de interacción persona – computadora, su diseño y modos de implementación. También
se describe el concepto de gesto, sus atributos, clasificación e implementación de interfaces
basadas en gestos.

Capítulo 3. Realidad Aumentada

Este capítulo tiene como objetivo definir el concepto de Realidad Aumentada, analizar
los distintos campos de aplicación, sus características, sus fundamentos teóricos y sus diferencias
con respecto a la Realidad Virtual.

Capítulo 4. Dispositivos y técnicas de detección y reconocimiento de gestos

En este capítulo se describen las técnicas de detección y reconocimiento de gestos, su


evolución y modo de implementación, y por último, se describen algunos dispositivos modernos
de detección de gestos y sus características principales.

Capítulo 5. Kinect

Aquí se describen las características del dispositivo Kinect detalladas, tanto sus
componentes hardware, como software y las distintas maneras de programar aplicaciones que
utilizan dicho sensor. Por último se justifica la elección del mismo para el desarrollo propuesto.

Capítulo 6. Introducción al desarrollo

Diaz Gastón, Leschevich Germán IV


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En este capítulo se realiza una introducción de la manera en que se comunica el


dispositivo con la aplicación y se analizan las herramientas investigadas para el caso de
aplicación que se propone, con sus ventajas, desventajas para luego justificar la elección de cada
una de ellas.

Capítulo 7. Caso de aplicación

Este capítulo tiene como finalidad explicar el desarrollo que se propone, el campo de
aplicación del mismo, funcionalidades, arquitectura, requerimientos, sus objetivos, y la lógica
utilizada para lograrlo. Por último se detallará la manera en que se debe utilizar dicha aplicación
y sus diferentes funcionalidades.

Capítulo 8. Conclusiones y líneas futuras

En este capítulo se definen las conclusiones de la investigación que se realizó en la


presente tesina y se explica el futuro de los temas que fueron tratados en la misma.

Diaz Gastón, Leschevich Germán V


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

ÍNDICE GENERAL
1 INTRODUCCIÓN ................................................................................................................................... 1

1.1 OBJETIVOS ............................................................................................................................................. 1


1.2 MOTIVACIÓN .......................................................................................................................................... 1
1.3 MARCO TEÓRICO..................................................................................................................................... 2
1.4 DESARROLLOS PROPUESTOS ....................................................................................................................... 4
1.5 RESULTADOS ESPERADOS........................................................................................................................... 4
1.6 CRONOGRAMA DE ACTIVIDADES.................................................................................................................. 4

2 INTERFACES GESTUALES ...................................................................................................................... 6

2.1 LA INTERACCIÓN PERSONA-COMPUTADORA.................................................................................................. 7


2.1.1 Historia ....................................................................................................................................... 8
2.1.2 Estructura de la Interacción Persona - Computadora ................................................................. 9
2.1.3 Disciplinas que comprende la Interacción Persona - Computadora (HCI) ................................. 11
2.1.4 El diseño de un sistema interactivo centrado en el usuario ...................................................... 18
2.1.5 Usabilidad ................................................................................................................................. 22
2.2 GESTOS ............................................................................................................................................... 28
2.2.1 Grados de libertad .................................................................................................................... 29
2.2.2 Gestos en la vida cotidiana ....................................................................................................... 31
2.2.3 Otra clasificación de gestos ...................................................................................................... 35
2.2.4 Clasificación de los gestos según el dispositivo de entrada ...................................................... 39
2.2.5 Diseño de los gestos .................................................................................................................. 40
2.2.6 Atributos de los gestos .............................................................................................................. 43
2.2.7 Determinar el gesto apropiado ................................................................................................. 45
2.2.8 Asignar el gesto a un comportamiento..................................................................................... 46
2.3 INTERFACES BASADAS EN GESTOS .............................................................................................................. 47
2.3.1 Interfaces basadas en gestos naturales (NUI) .......................................................................... 47
2.3.2 Pautas para el diseño de Interfaces Naturales ......................................................................... 49
2.3.3 Características de una buena interfaz natural .......................................................................... 50
2.3.4 El contexto en una Interfaz Natural de Usuario ........................................................................ 53

3 REALIDAD AUMENTADA .................................................................................................................... 56

Diaz Gastón, Leschevich Germán VI


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.1 INTRODUCCIÓN ..................................................................................................................................... 57


3.1.1 ¿Qué es Realidad Virtual? ......................................................................................................... 57
3.1.2 Qué es Realidad Aumentada .................................................................................................... 62
3.2 REALIDAD AUMENTADA Y REALIDAD VIRTUAL ............................................................................................. 74
3.2.1 Realidad Mixta .......................................................................................................................... 74
3.2.2 Diferencia entre RA y RV ........................................................................................................... 76
3.3 CARACTERÍSTICAS Y DISPOSITIVOS ............................................................................................................. 76
3.3.1 Características Generales ......................................................................................................... 76
3.3.2 Componentes de un sistema de Realidad Aumentada ............................................................. 78
3.4 FUNDAMENTOS TEÓRICOS ....................................................................................................................... 97
3.4.1 Diagrama de una aplicación de RA ........................................................................................... 98
3.4.2 Generación de la imagen aumentada..................................................................................... 101
3.4.3 Tracking .................................................................................................................................. 104
3.5 REALIDAD AUMENTADA EN DISPOSITIVOS MÓVILES ..................................................................................... 114
3.5.1 Características de hardware y software ................................................................................. 114
3.6 APLICACIONES ..................................................................................................................................... 114
3.6.1 Campos de aplicación ............................................................................................................. 115
3.7 ALTERNATIVAS TECNOLÓGICAS ............................................................................................................... 116

4 DISPOSITIVOS Y TÉCNICAS DE DETECCIÓN Y RECONOCIMIENTO DE GESTOS ....................................117

4.1 PRIMEROS DISPOSITIVOS Y TÉCNICAS DE DETECCIÓN DE GESTOS..................................................................... 118


4.1.1 El lápiz ..................................................................................................................................... 118
4.1.2 Pantallas táctiles ..................................................................................................................... 120
4.1.3 Sistemas multitáctiles ............................................................................................................. 121
4.1.4 Sensores electrónicos - En el cuerpo o ropa ............................................................................ 139
4.1.5 Sensores electrónicos - Objetos con sensores e interfaces tangibles ...................................... 142
4.1.6 Sensores electrónicos – Dispositivos infrarrojos ..................................................................... 143
4.1.7 Visión por computadora o visión artificial .............................................................................. 143
4.1.8 Sensores remotos .................................................................................................................... 146
4.2 DISPOSITIVOS DE DETECCIÓN DE GESTOS MODERNOS .................................................................................. 147
4.2.1 Wii Remote – Wii Motion Plus ................................................................................................ 147
4.2.2 PlayStation Move .................................................................................................................... 152
4.2.3 Microsoft Kinect ...................................................................................................................... 157
4.2.4 Leap Motion ............................................................................................................................ 160

Diaz Gastón, Leschevich Germán VII


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.2.5 Comparación entre los dispositivos ........................................................................................ 164


4.3 ELECCIÓN DEL DISPOSITIVO .................................................................................................................... 169

5 KINECT .............................................................................................................................................170

5.1 HISTORIA ........................................................................................................................................... 171


5.2 HARDWARE ........................................................................................................................................ 171
5.2.1 Emisor infrarrojo y cámara de profundidad ........................................................................... 171
5.2.2 Cámara RGB ............................................................................................................................ 174
5.2.3 Motor de inclinación y acelerómetro de tres direcciones ....................................................... 176
5.2.4 Arreglo de micrófonos ............................................................................................................ 176
5.2.5 Reconocimiento de usuarios con Kinect .................................................................................. 178
5.3 HERRAMIENTAS PARA DESARROLLO CON KINECT ........................................................................................ 179
5.3.1 SDK Kinect para sistema operativo Windows ......................................................................... 180
5.3.2 Comunidad Open Kinect ......................................................................................................... 192
5.4 PROYECTOS CON KINECT ....................................................................................................................... 193
5.4.1 TedCas – Ayuda en el quirófano ............................................................................................. 193
5.4.2 Topshop – Ar Door .................................................................................................................. 195
5.4.3 Kinect en la educación ............................................................................................................ 196
5.5 KINECT V2 – EL NUEVO KINECT .............................................................................................................. 197
5.5.1 SDK 2.0 – Características y beneficios ..................................................................................... 197

6 INTRODUCCIÓN AL DESARROLLO .....................................................................................................200

6.1 INTRODUCCIÓN ................................................................................................................................... 201


6.2 LIBRERÍAS GRÁFICAS Y TOOLKITS.............................................................................................................. 202
6.3 APLICACIÓN BASADA EN GESTOS CON RA ................................................................................................. 203
6.4 WRAPPERS ......................................................................................................................................... 203
6.4.1 SimpleOpenNI ......................................................................................................................... 203
6.4.2 PiKynect .................................................................................................................................. 204
6.4.3 Kinect Toolbox......................................................................................................................... 205
6.5 FRAMEWORK ...................................................................................................................................... 206
6.5.1 OpenNI y NITE ......................................................................................................................... 206
6.5.2 Microsoft Kinect SDK............................................................................................................... 209
6.6 DRIVERS ............................................................................................................................................ 231
6.7 ELECCIÓN DE LAS HERRAMIENTAS ............................................................................................................ 231

Diaz Gastón, Leschevich Germán VIII


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7 CASO DE APLICACIÓN .......................................................................................................................234

7.1 PROBLEMA A RESOLVER ........................................................................................................................ 235


7.1.1 Objetivo .................................................................................................................................. 235
7.1.2 Resumen ................................................................................................................................. 235
7.1.3 Campo de aplicación ............................................................................................................... 236
7.2 ANÁLISIS DE REQUERIMIENTOS ............................................................................................................... 238
7.2.1 Requerimientos funcionales .................................................................................................... 238
7.2.2 Requerimientos no funcionales ............................................................................................... 239
7.3 DISEÑO.............................................................................................................................................. 240
7.3.1 Arquitectura ............................................................................................................................ 240
7.3.2 Lógica y estructura de la aplicación ........................................................................................ 243
7.4 DETECCIÓN Y GRABACIÓN DE GESTOS ....................................................................................................... 250
7.4.1 Definir un gesto simple con un algoritmo ............................................................................... 250
7.4.2 Detectar gestos complejos por coincidencia de patrones (pattern matching) ....................... 251
7.5 GRABACIÓN Y REPRODUCCIÓN DE SESIONES .............................................................................................. 254
7.6 PRODUCTO FINAL................................................................................................................................. 257
7.6.1 Menú principal ........................................................................................................................ 257
7.6.2 Configuración .......................................................................................................................... 258
7.6.3 Médico .................................................................................................................................... 259
7.6.4 Paciente .................................................................................................................................. 263

8 CONCLUSIONES Y LÍNEAS FUTURAS ..................................................................................................267

8.1 CONCLUSIONES ................................................................................................................................... 268


8.2 LÍNEAS FUTURAS ................................................................................................................................. 269

BIBLIOGRAFÍA .....................................................................................................................................271

Diaz Gastón, Leschevich Germán IX


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 1

1 INTRODUCCIÓN

1.1 OBJETIVOS
El objetivo de la presente tesina, es estudiar el mundo de las Interfaces Gestuales y de la
Realidad Aumentada, exponer sus conceptos generales y analizar los casos en donde las mismas
se pueden utilizar de forma conjunta aumentando sus campos de aplicación. Por último,
desarrollar una aplicación utilizando un dispositivo de detección de gestos que englobe todos los
conceptos antes nombrados.

 Investigar sobre las Interfaces Gestuales, los distintos contextos donde se utilizan
y los aspectos a tener en cuenta a la hora de diseñarlas.

 Adquirir mayor conocimiento y definir conceptos sobre Realidad Aumentada.

 Desarrollar una aplicación utilizando un dispositivo de detección y


reconocimiento de gestos, analizando las distintas características que posee,
como así también las distintas funcionalidades que se pueden explotar del mismo
y su integración con la Realidad Aumentada.

1.2 MOTIVACIÓN
Si a la computadora se le otorga el sentido de la vista, por ejemplo a través de una
cámara, esta podrá utilizar este medio como entrada de información de interacción. Esta nueva
tecnología, permitirá implementar soluciones en distintos contextos de uso, como por ejemplo, en

Diaz Gastón, Leschevich Germán 1


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

ambientes industriales, ampliando la integración de personas con capacidades diferentes, creando


nuevas formas de interacciones hombre-máquina, y así brindar la posibilidad de desarrollar una
amplia gama de nuevos productos y aplicaciones.

Actualmente, las cámaras con suficiente resolución, se encuentran en casi todos los
dispositivos informáticos, dado su bajo costo y reducido tamaño. Además, el uso de estas
cámaras como entrada de información hacia los sistemas, está presente en las TUI (Tangible User
Interface - Interfaces de Usuario Tangibles), realidad virtual y aumentada.

Para las personas, la información visual forma parte de la comunicación y de la


interacción entre las mismas. Dentro de un contexto, señalar un objeto con el dedo, puede
significar tanto o más que describirlo. Al ver una persona, sin que la misma diga nada oralmente,
se puede intuir por medio de su expresión facial, su estado anímico. Por ejemplo si vemos una
persona con el ceño fruncido, probablemente se encuentra fastidiada.

La información que reciben los dispositivos informáticos por medio de las interfaces de
visión, tacto o sonido, se conoce como gesto. Un gesto, en términos de la informática, es
cualquier movimiento físico que el sistema de un dispositivo puede detectar y responder al
mismo, sin la ayuda de un mecanismo externo de señalización tradicional como un mouse.

La principal motivación de este trabajo radica en el interés por investigar las interfaces
gestuales, el cual es un tema innovador dentro del ámbito académico. Las mismas se encuentran
aún en desarrollo, por lo tanto todavía no se han fijado sus fronteras ni sus conceptos de manera
estandarizada, y existen pocos estudios académicos sobre sus características, y su diseño.

1.3 MARCO TEÓRICO


Diariamente, y de forma continua, se trabaja e interactúa con sistemas informáticos, ya
sean dispositivos móviles, computadoras, tablets, etc. La manera de interactuar con ellos ha ido
evolucionando a lo largo del tiempo.

Diaz Gastón, Leschevich Germán 2


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Desde la aparición de las primeras computadoras, la comunicación entre éstas y las


personas ha sido un tema de investigación que fomentó la evolución de los dispositivos, desde las
tarjetas perforadas hasta las intuitivas Interfaces de Usuario Naturales (NUI). Las primeras
comunicaciones persona-computadora eran poco amigables, poco intuitivas y difíciles de utilizar.

En los 70, aparecieron los sistemas basados en línea de comandos, primero a través de
terminales y luego con teclados electrónicos y monitores basados en texto. La computadora
recibía órdenes de forma directa a través de teclas de función, caracteres, abreviaturas o palabras.
Fue el primer estilo de interacción que se masificó y que aún hoy en día se sigue utilizando.

En los 80, surgieron las interfaces gráficas de usuario (GUI – Graphical User Interface)
junto con las WIMP (Ventanas, Menús y Dispositivos de puntero). Las GUI se basan en “la
manipulación directa del objeto de interés”. Se tiene una representación del objeto y el usuario lo
manipula en forma directa, causando un efecto visible sobre el mismo.

A pesar de que hoy en día las GUI más utilizadas se basan en WIMP, siendo este el
paradigma de escritorio más popular y extendido, existen otros paradigmas de interacción que
comienzan a utilizarse en la vida diaria como la realidad virtual y la realidad aumentada.

Las tecnologías desarrolladas en base a los gestos, son actualmente accesibles y


convergieron con tecnologías populares tales como la televisión, las computadoras, los celulares
inteligentes y los videojuegos. El uso de estas tecnologías, además, abrió nuevas puertas y
oportunidades para la gente discapacitada y de edad avanzada.

Actualmente, las interfaces gestuales se encuentran en pleno apogeo, y se han convertido


en algo habitual en la sociedad, algo que hace unos años era impensado e inaccesible para el
hombre común. El desarrollo de esta tecnología está aún en curso, y las limitaciones de
aplicación de la misma todavía no se pueden establecer.

Diaz Gastón, Leschevich Germán 3


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

1.4 DESARROLLOS PROPUESTOS


Se propone desarrollar una aplicación que demuestre el funcionamiento y las
características de un dispositivo de reconocimiento de gestos. Integrando en la misma la
tecnología de Realidad Aumentada y definiendo los gestos que el dispositivo deberá reconocer
para cumplir con una determinada funcionalidad.

Para poder cumplir con el desarrollo anteriormente descripto se utilizará un framework


(Move Framework, OpenCV, Simple Nintendo WiiMote, Kinesis, OpenNi, Microsoft SDK
Kinect, etc.) que será el nexo entre el dispositivo de reconocimiento de gestos y las librerías
(Kinect Toolkit, WiiMoteLib, Nite, 3D Hand Tracking, LibMove, etc.), las cuales harán las
veces de conectores para que la aplicación pueda utilizar las distintas funcionalidades que posee
tal dispositivo. Además, en base a todo lo nombrado con antelación, se deberá definir el lenguaje
de programación adecuado para desarrollar la aplicación (C#, C++, Java, Python, Processing,
etc.).

1.5 RESULTADOS ESPERADOS


El resultado esperado para la presente tesina, es mostrar el potencial de las interfaces
gestuales y su integración con la realidad aumentada utilizando para ello un dispositivo de
reconocimiento de gestos.

1.6 CRONOGRAMA DE ACTIVIDADES


1. Investigación

a. Interfaces Gestuales (definición, conceptos, diseño e implementación).

b. Dispositivos de reconocimiento de gestos (características, funcionalidades,


comparación entre los mismos)

c. Realidad Aumentada (definición, conceptos, utilidad, implementación y


complemento con dispositivos de reconocimiento de gestos).

Diaz Gastón, Leschevich Germán 4


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

2. Desarrollo de la solución o aplicación propuesta

a. Definición de la aplicación a desarrollar y de tecnologías a utilizar para la


implementación de la misma (dispositivo, frameworks, lenguaje, entorno de
desarrollo, etc.)

b. Definición y diseño de los gestos a reconocer e implementación del


reconocimiento de los mismos.

c. Aplicación de la Realidad Aumentada en la implementación.

d. Pruebas e implementación final.

3. Análisis de los resultados obtenidos y conclusiones.

Diaz Gastón, Leschevich Germán 5


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 2

2 INTERFACES GESTUALES
Este capítulo tiene como fin introducir los conceptos básicos referentes a las Interfaces
Gestuales, su evolución e historia, qué son, cómo se miden y ejemplos de las mismas, definir el
concepto de interacción persona – computadora, a qué se considera gesto, qué es una interfaz
natural de usuario, tecnologías y técnicas de reconocimiento de gestos.

Diaz Gastón, Leschevich Germán 6


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

2.1 LA INTERACCIÓN PERSONA-COMPUTADORA


Las personas diariamente en su vida cotidiana, interactúan con un sinfín de objetos, los
cuales poseen características muy evidentes a los sentidos humanos (visión, sonido, tacto, etc.)
para su manipulación y utilización. Uno de los objetos utilizados masivamente por los seres
humanos hoy en día, son las computadoras. Las mismas, son manipuladas por un amplio abanico
de personas para todo tipo de objetivos. Algunos sistemas informáticos funcionan con poca
intervención humana, pero la mayor parte son interactivos, y necesitan de la interacción con
personas o usuarios que están involucrados en la resolución de tareas. En estos casos la interfaz
persona-computadora, conocida como HCI (Human-Computer Interaction), que también es
denominada interfaz de usuario, es normalmente un factor muy importante del éxito o del fracaso
de un sistema interactivo. En la siguiente figura se visualiza este concepto.

Figura 2-1 - HCI

Hablando estrictamente, la interfaz la componen los dispositivos de entrada y salida y


los programas que la hacen funcionar, pero desde un punto de vista más general, comprende todo
lo que tiene que ver con la experiencia de un usuario y la computadora, como el entorno de
trabajo, la organización en la que trabaja, el entrenamiento que ha tenido, la ayuda que recibe,
etc.

Diaz Gastón, Leschevich Germán 7


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

¿Por qué es tan importante estudiar la interfaz de usuario? Porque tal como hemos dicho
antes es una parte importante del éxito de una aplicación interactiva. Estudios realizados
informan que alrededor de un 48% del código de una aplicación está dedicado a la interfaz. A
pesar de su importancia la interacción persona-computadora es una de las disciplinas con menos
dedicación en los estudios de informática y, muchas veces, poco pensadas al momento de hacer la
documentación de un proyecto, dejándose a menudo para el final.

2.1.1 HISTORIA

Toda la Interacción Persona-Computadora sucede dentro de un contexto organizacional


y social. Se requieren distintos tipos de aplicaciones para diferentes propósitos.

A finales de los años 1970 y principios de los 80, los psicólogos empiezan a interesarse
en los aspectos de procesamiento de la información del diseño de sistemas de información.
Comienzan a aparecer áreas de estudio y conceptos como el de diseño de menús, que utilizan
tópicos, por ejemplo, los nombres de menús o profundidad versus anchura. A mediados de los 80,
la usabilidad de los sistemas monousuario empieza a hacerse un hueco, como respuesta a la
explosión de la PC. Hacia finales de los 80 y en los 90, la tendencia se centra en las potentes
estaciones de trabajo (workstations) multiusuario y en las PC más potentes. Se hace hincapié en
las comunicaciones más avanzadas, en las aplicaciones multimedia, en las computadoras
multitarea y en la realidad virtual. Asimismo, la comunidad HCI siempre se ha mostrado de
acuerdo en que, aunque es importante entender la interacción de un usuario con una máquina
mediante una interfaz, también es necesario que se consideren otros tópicos para aprovechar al
máximo las nuevas tecnologías. Estos tópicos que se deben estudiar son: trabajo en grupo,
integración e interacción de medios y el impacto de estas tecnologías en el lugar de trabajo, en la
casa y en la sociedad en general.

Diaz Gastón, Leschevich Germán 8


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 2-2 - A la izquierda la primera computadora de Apple y a la derecha la primera computadora, la Xerox Alto.

La HCI surgió como un campo entrecruzado de disciplinas: gráficos por computadora,


sistemas operativos, factores humanos, factores ergonómicos, ingeniería industrial, psicología
cognitiva, y por supuesto la ingeniería informática.

2.1.2 ESTRUCTURA DE LA INTERACCIÓN PERSONA - COMPUTADORA

El concepto de Interacción Persona–Computadora (HCI), nació como una ciencia que


estudia el diseño, la evaluación e implementación de los sistemas computacionales para el uso
humano. La HCI está compuesta por tres elementos: la persona o usuario, la computadora y la
interacción. El primero de ellos (la persona) es el o los usuarios que interactúan con el sistema, de
ellas se deben conocer las capacidades físicas, habilidades perceptuales y cognitivas, edad,
diferencias culturales y de personalidad, así como también las tareas que tienen que realizar y su
contexto de uso. La computadora es cualquier sistema o dispositivo que cumple con determinadas
características, tales como su movilidad, plataforma, capacidades de entrada y salida, o su sistema
operativo. En tercer y último lugar se encuentra la interacción, que se puede definir como el
intercambio que realizan entre sí la/s persona/s (o usuario/s) y la computadora.

Diaz Gastón, Leschevich Germán 9


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Uno de los objetivos de este tipo de interacciones es mejorar la utilidad, eficiencia y


usabilidad de la comunicación entre las personas, los sistemas y dispositivos que incluyan una
computadora.

Como ya se mencionó anteriormente, estas interacciones dependen de estudios que se


realizan tanto en lo referente a las personas como a nivel informático, por lo tanto las mismas
deben estar reguladas por profesionales de distintos campos (informática, psicología, sociología,
etc.). Es importante entender que las personas no cambian radicalmente su manera de ser, sino
que los sistemas son lo que tienen que ser diseñados para satisfacer los requisitos del usuario.

En la siguiente imagen se visualizan los distintos componentes de una HCI, y cómo


interactúan entre sí. Se ve como la interacción nace del pensamiento humano, luego es trasmitido
mediante algún lenguaje y dispositivo definido, interpretado y procesado del lado de la
computadora, para luego dar un resultado al usuario.

Figura 2-3 - Estructura de una HCI

Diaz Gastón, Leschevich Germán 10


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

2.1.3 DISCIPLINAS QUE COMPRENDE LA INTERACCIÓN PERSONA -


COMPUTADORA (HCI)

Como ya se mencionó anteriormente, para diseñar una interfaz de usuario se tienen en


cuenta muchos factores y disciplinas que trascienden la informática, como es la psicología del
usuario, la ergonomía del equipo, los aspectos sociales y culturales, etc. Todo esto hace suponer
que a la hora de desarrollar un sistema interactivo complejo, se debe contar con un equipo
interdisciplinario. No obstante, cuando el equipo de trabajo sea reducido, las mismas personas
deben tratar de cubrir estos papeles por sí mismos.

Sociología Programación

Inteligencia
Diseño
IPO Artificial

Ingeniería
Psicología
del Software

Ergonomía

Figura 2-4 - Disciplinas que implica la HCI

En la figura anterior, se presentan los diferentes aspectos y disciplinas que pueden


contribuir al diseño de interfaces. Seguidamente se describirá brevemente cada una. Para más
información se puede consultar la bibliografía de referencia (Abascal, Aedo, Cañas, & otros,
2001).

2.1.3.1 Psicología

Es la ciencia que estudia el comportamiento y los estados de las personas. Se pueden


distinguir entre 2 tipos:

Diaz Gastón, Leschevich Germán 11


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Psicología Cognitiva. Trata de comprender el comportamiento humano.

 Psicología Social. Trata de estudiar el origen y las causas del comportamiento


humano en un contexto social.

El modo de contribuir al diseño de interfaces de la psicología es (como su definición lo


indica) mediante conocimientos y teorías sobre el comportamiento de las personas, cómo
procesan la información, cómo actúan en grupos y organizaciones. Además, otorga metodologías
y herramientas para evaluar la satisfacción del usuario con el diseño de la interfaz, permitiendo
comprobar así si las interfaces que se diseñaron son efectivas.

2.1.3.2 Etnografía – Sociología

Es la ciencia que estudia las costumbres y tradiciones de los pueblos. Las grandes
empresas contratan antropólogos para comprender mejor a sus clientes y trabajadores. Además, la
utilizan para diseñar productos que reflejen correctamente las tendencias culturales del momento.
Estas empresas están convencidas que las técnicas que utiliza la sociología, pueden responder a
cuestiones sobre organizaciones y mercados que otros métodos no pueden.

Un ejemplo de ello, es la empresa IGNEOMA (IGNEOMA, 2011), dedicada al análisis,


diseño y desarrollo de este tipo de interfaces, la cual posee especialistas y técnicas especiales para
conocer a los usuarios y sus comportamientos, y aplica los objetivos de negocio de sus clientes y
las necesidades de los usuarios para realizar el diseño de la interacción. Con ello, logra objetivos
como la creación de interfaces intuitivas y fáciles de usar, logrando que los usuarios tengan una
experiencia positiva y disminuye los costos de desarrollo.

2.1.3.3 Ergonomía o factores humanos

Su propósito es definir y diseñar herramientas y técnicas para diferentes tipos de


ambientes. Su objetivo es incrementar la seguridad, la eficiencia y la fiabilidad para simplificar
las tareas e incrementar la sensación de confort y satisfacción.

Diaz Gastón, Leschevich Germán 12


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La ergonomía se focaliza en el estudio de las características físicas de la interacción, por


ejemplo el entorno físico donde se produce y la forma y características físicas de la pantalla.

A continuación se ejemplifican algunos aspectos que se podrían considerar:

 Organización de los controles y pantallas. Como ya se refirió anteriormente,


los aspectos físicos de cómo están organizados los controles y las pantallas son
significativos, ya que el usuario tiene que poder acceder de manera sencilla a
todos los controles y ver la información que se le presenta sin mover
excesivamente el cuerpo.

 La información más importante ha de estar situada a la altura de los ojos.


Los controles se tienen que colocar espaciados, para que el usuario se pueda
acomodar perfectamente, además es importante que se prevengan los reflejos de
luz.

 Aspectos de Salud. Si bien el uso de computadoras no es una actividad


arriesgada, se deben tener en cuenta algunos aspectos de salud que afectan
directamente la interacción y las prestaciones del usuario, la posición física, la
temperatura, la luz, el ruido, el tiempo que permanece delante de la computadora,
etc.

 Uso de los colores. Los colores utilizados para visualizar deben ser diferentes y
distinguirse bien ante los cambios de contraste.

2.1.3.4 Diseño

Es la actividad destinada a conseguir la producción en serie de objetos útiles.


Actualmente pretende actuar sobre el entorno físico del hombre para mejorarlo en su conjunto.
En el caso de las HCI, está disciplina es vital para conseguir programas usables.

Algunos principios definidos y fundamentales para el diseño de las interfaces son:

Diaz Gastón, Leschevich Germán 13


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Simplicidad. El programa debe ser de manejo fácil (buena usabilidad). Esto no


debe implicar la pérdida de funcionalidad.

 Apoyo. El control del programa recae sobre el usuario. El sistema debe ofrecerle
ayuda para facilitarle la labor.

 Familiaridad. Se debe diseñar la interfaz teniendo en cuenta los conocimientos


previos del usuario.

 Evidencia. Se deben diseñar los controles y otros objetos visibles e intuitivos,


por ejemplo, usando representaciones del mundo real.

 Estímulo. Las acciones de los usuarios deben producir los resultados que ellos
esperan, es decir, ser previsibles. También se deberían poder deshacer, ser
reversibles.

 Satisfacción. El usuario debería sentir que está progresando y haciendo avances,


debe haber retroalimentación de parte de la interfaz.

 Disponibilidad. Hacer que todos los objetos estén disponibles para que el
usuario los use en cualquier momento.

 Seguridad en el uso. Se refiere a evitar errores del usuario. Para ello la interfaz
puede ofrecerle ayuda de forma automática o si el usuario la solicita.

 Versatilidad. El sistema debe soportar diferentes formas de interacción para que


el usuario pueda elegir el método más adecuado a su situación.

 Personalización. La interfaz debe ser personalizable para que el usuario la


adapte según sus necesidades.

 Afinidad. Permitir que a través de un buen diseño visual los objetos sean afines a
otros de la realidad cotidiana, esto contribuye a la familiarización del usuario con
la interfaz.

Diaz Gastón, Leschevich Germán 14


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

2.1.3.5 Programación

Una computadora por sí misma no es capaz de hacer nada, solo puede hacer lo que se le
ha ordenado, o en términos más específicos, programado. Esta herramienta permite decirle a la
computadora qué debe hacer.

Todo lo que una computadora realiza cuando un usuario interactúa con ella son órdenes
programadas. El programador, es el encargado de diseñar soluciones a determinados problemas y
escribirlos como programas para la computadora.

Un programa debe cumplir determinados parámetros fundamentales, como por ejemplo,


debe funcionar correctamente, no debe tener dificultades, ni errores, es decir, tiene que ser
robusto. Además debe estar bien documentado para la corrección de futuros errores o la
implementación de mejoras, y ser eficiente, de rápida respuesta.

Dentro de la programación se pueden englobar tanto los propios lenguajes de


programación (Java, C, C ++, C#, Ruby, Python, etc.) como las herramientas de diseño y
programación que permiten el desarrollo de interfaces. Algunos ejemplos de este tipo de
herramientas son Qt, una herramienta de código abierto para el desarrollo de interfaces disponible
para múltiples lenguajes, Blender para el lenguaje C#, la librería Swing para Java, etc.

2.1.3.6 Inteligencia Artificial

La Inteligencia Artificial (IA) trata de diseñar programas inteligentes que puedan


simular los distintos aspectos del comportamiento humano.

La IA ha sido utilizada en el diseño de patrones y sistemas expertos en interfaces


inteligentes y en el diseño de interfaces utilizando la voz. Actualmente se están desarrollando
agentes inteligentes para la ayuda de los usuarios en la navegación y reducir las tareas más
normales.

En resumen, el uso de la IA dentro de las interfaces humano-computadora ha dado lugar


a que se defina el concepto de interfaz de usuario inteligente.

Diaz Gastón, Leschevich Germán 15


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En la educación, por ejemplo, se implementó un sistema de Agente Pedagógico


Inteligente. Un Agente Pedagógico es un agente que toma decisiones acerca de cómo maximizar
el aprendizaje de un alumno, y el "entorno" que observa es un estudiante en su proceso de
aprendizaje; para cumplir con sus metas, un Agente Pedagógico puede actuar como un tutor
virtual, como un estudiante virtual, o como un compañero de aprendizaje que ayuda al estudiante
en su proceso de aprendizaje.

Un área de aplicación especialmente relevante de los Agentes Pedagógicos Virtuales


Inteligentes, es el entrenamiento de equipos de trabajo. Esta aplicación plantea retos interesantes,
como son el hecho de tener que tutelar simultáneamente a más de un estudiante, o el hecho de
tener que manejar simultáneamente conocimiento "espacial" acerca del entorno y conocimiento
"procedimental" acerca de las operaciones que pueden ser realizadas en el mismo.

Figura 2-5 – Agente Pedagógico Virtual Inteligente

2.1.3.7 Ingeniería de Software

Esta disciplina estudia técnicas de diseño y desarrollo de software. Para realizar


diferentes aplicaciones se tienen que utilizar procedimientos propios de ingeniería. Sólo

Diaz Gastón, Leschevich Germán 16


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

utilizando estas herramientas y técnicas que provee la Ingeniería de Software se obtiene un


software de calidad.

Algunos conceptos de calidad que afectan al usuario y que son definidas por normas ISO
(Usability) son:

 Funcionalidad.

 Usabilidad (será descripta más adelante).

 Eficiencia.

 Mantenibilidad.

 Portabilidad.

Por otro lado, dichas normas describen más específicamente los atributos de una
interfaz:

 Presentación de la información. La forma de representar la información en


pantalla.

 Ayuda al usuario. Se refiere a la retroalimentación, manejo de errores, ayuda


on-line, etc.

 Diseño de los Menús. Navegación de menú, estructuras de los mismos,


presentación (incluyendo botones, paneles, campos, etc.)

2.1.3.8 Resistencia del usuario a implementación de sistemas

A la hora de involucrar al usuario en la implementación de un sistema, se encuentra la


dificultad de que el usuario o los usuarios de una empresa se nieguen a colaborar. Según estudios,
esta posición negativa de algunos usuarios es porque el ser humano es poco adaptable a los
cambios drásticos. Esto quiere decir, de alguna manera, que el usuario final de la aplicación, le
teme al nuevo sistema, así como también a los cambios organizacionales que la empresa puede

Diaz Gastón, Leschevich Germán 17


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

llegar a realizar, a qué tanto reduce el sistema el trabajo que debe realizar el empleado y como
consecuencia de ello se anticipen las jubilaciones o se despida personal, etc.

Toda esta serie de puntos negativos que se han enumerado son algunos de los que se
pueden encontrar. Por lo tanto, es necesario tenerlos presentes siempre en el diseño de una
interfaz.

2.1.4 EL DISEÑO DE UN SISTEMA INTERACTIVO CENTRADO EN EL USUARIO

Como ya se ha apuntado y, asimismo, lo destacan varios autores, el diseño de un sistema


interactivo implica pensar en el usuario, centrar el sistema de desarrollo en él e involucrarlo en la
medida en que se pueda. Incluso se puede pensar en incluir a los usuarios en el equipo que se
encargará del diseño del sistema. Hoy en día esta práctica es muy común, es decir, es fácil
encontrar sistemas en cuyos equipos de diseño hay involucrados usuarios. Un ejemplo de ello,
son los sistemas ERP (Enterprise Resource Planning – Sistemas de Planificación de Recursos
Empresariales), en los cuales, cuando se deben adaptar a una empresa, se necesita la interacción
con los usuarios que utilizarán esa aplicación.

Ya realizada la especificación, teniendo la propuesta del diseño y un código ya


implantado, es dificultoso cambiar las características de la interacción y la forma en que se
presenta la información. Por consiguiente, se deberá contar desde un principio con la idea clara
de cómo se quiere la interfaz y las interacciones con el usuario para luego ampliar las
especificaciones funcionales que guiarán el diseño posterior.

Durante el desarrollo de un sistema interactivo se deben tener en cuenta todos los actores
intervinientes en él: el primero de ellos es el usuario, que es quien tiene la capacidad de elección
y actuación, luego aparece la computadora, que ofrece un programa y mecanismos para el acceso
al sistema y por último el diseñador, que es quien se encarga de predecir las posibles acciones
que realice el usuario y plasmarlas en un programa.

Diaz Gastón, Leschevich Germán 18


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Diseñador

IU

Usuario Computadora

Figura 2-6 - Relación Usuario - Computadora - Diseñador

La tendencia de hacer interfaces de usuarios fáciles de usar hace que su diseño sea cada
vez más difícil. La Interfaz de Usuario (IU) es el medio de comunicación entre la persona y la
computadora, sus características son su apariencia (presentación) y la capacidad de gestionar ese
diálogo que se produce entre ambos. Existen muchas herramientas y productos que permiten
generar automáticamente la apariencia de una aplicación utilizando botones, menús, herramientas
visuales, toolkits, etc. Pero el uso de estas, no brinda la ayuda suficiente para analizar el
comportamiento dinámico de la interfaz y tampoco aseguran que la misma sea correcta. Existen
normas ISO para diseñar un sistema interactivo y evaluar su calidad, algunas las cuales fueron
descriptas en la sección “ingeniería de software”.

2.1.4.1 Análisis centrado en el usuario

El diseño del sistema interactivo debe dejar satisfechas las demandas de los usuarios.
Para obtener buen diseño se debe partir de analizar el contexto donde se desarrolla el trabajo o la
actividad que realizará la computadora. Para lograr esto, se analizan las características de los
usuarios, sus actividades y el escenario donde éste realiza su actividad. Los factores nombrados
permiten recopilar los requisitos que el diseño del sistema debe satisfacer.

Usuarios

Al momento de diseñar cualquier sistema, se deben tener en cuenta las características de


los que serán usuarios del mismo. La razón de incorporar al usuario como factor humano en el
diseño, se da por el reconocimiento de un mal diseño que se ha hecho en muchas aplicaciones, y

Diaz Gastón, Leschevich Germán 19


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

además, por la búsqueda de que se cumpla el objetivo de que el producto ayude al usuario.
Asimismo, los factores humanos pueden llegar a limitar el tiempo de aprendizaje, rendimiento, la
frecuencia de errores, etc.

El diseño de una aplicación puede estar orientado a un encargo directo (un cliente
específico) o dirigido a un grupo de potenciales usuarios (como pueden ser adolescentes, niños,
estudiantes, etc.).

Para realizar este análisis centrado en el usuario, se deben conocer varios aspectos:

 Habilidades físicas. Estas determinan fundamentalmente, cómo se adaptará el


entorno de trabajo a las características del usuario (tamaños de botones, tipos de
dispositivos, etc.). Hay casos donde el diseño debe ser ergonómico por tener el
usuario limitaciones de movimiento (discapacidad, daltonismo, etc.).

 Habilidades cognitivas. En estas habilidades influye el nivel de experiencia que


tiene el usuario de su trabajo y además, del uso de la computadora. Se pueden
encontrar una variada gama de usuarios, desde expertos hasta novatos, usuarios
motivados o no motivados, etc.

 Diferencias de personalidad. Las diferencias de personalidad pueden incitar a


que haya alteraciones en la comunicación. De esta manera, las personas que son
tímidas tendrán un comportamiento cauteloso y prudente ante la computadora,
mucho más que alguien que es extrovertido o nervioso.

 Diferencias culturales. Estas diferencias se encuentran motivadas por el ámbito


socio-cultural donde se encuentra el usuario, esto afecta el lenguaje, las
expresiones, la terminología, los gestos, etc.

Este conjunto de particularidades de los usuarios serán de gran ayuda luego del diseño.
Para recopilar las mismas, se puede partir de una tabla donde figuren los distintos tipos de
usuarios que se tendrán y sus características (nivel de experiencia, grado de utilización del
sistema, etc.)

Diaz Gastón, Leschevich Germán 20


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Tareas

Otro de los puntos importantes que se deben tener en cuenta a la hora de diseñar un
sistema interactivo, son las tareas que realizan los usuarios. La forma de actuar de las personas
está dirigida por objetivos, para lograr esos objetivos, se deben desarrollar una serie de tareas
sobre objetos. Por ejemplo, si el objetivo es comer, se debe llevar a cabo la tarea de encender
(actividad/tarea) el microondas (objeto). Cuando estas tareas se realizan mediante un sistema
interactivo se debe tener en presente que sean familiares para el usuario, esto es, la forma en que
el usuario las llevará a cabo, la secuencia de acciones y su representación debe ser símil a la que
ejecuta en el entorno real. De lo contrario, el usuario deberá hacer un esfuerzo extra para
comprender las tareas que realiza cotidianamente.

Escenario

Los humanos no trabajan en forma aislada, siempre existe el condicionamiento del


escenario donde desempeña dicho trabajo. Los puntos más relevantes que se deben tener
presentes son:

 Entorno físico. Se debe prestar atención a las características físicas del entorno
como pueden ser el tipo de ubicación, la iluminación, el espacio, etc. así como
también otros factores del mismo como el ruido, la polución, la temperatura, etc.

 Entorno social. Este entorno implica trabajar en un grupo que rige bajo normas
de comportamiento. Hay determinadas situaciones donde puede haber
cooperación para el trabajo, se comparten recursos y datos, etc.

Estas características pueden condicionar el diseño del sistema, porque un trabajo en


equipo con mucha cooperación y compartición de datos necesitará una aplicación que facilite el
trabajo en grupo.

Diaz Gastón, Leschevich Germán 21


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

2.1.5 USABILIDAD

Un sistema interactivo que cumpla con sus objetivos, tiene que lograr ser usable y
accesible por la mayor parte de la población.

La usabilidad se puede definir como la medida en la que un producto se puede usar por
determinados usuarios con efectividad, eficiencia y satisfacción para cumplir objetivos
específicos en un contexto dado.

Se han establecido algunos principios de diseño en ingeniería basados en la usabilidad,


con los cuales se ha comprobado una reducción en los costos de producción, mantenimiento,
apoyo, uso y una mejor calidad del producto.

Existen normas ISO (ISO 9241-11) (Usability) que explican cómo identificar la
información necesaria para tomar en cuenta a la hora de especificar o evaluar la usabilidad
midiendo la performance y la satisfacción del usuario. También da una guía con respecto a
describir el contexto de uso del producto y las medidas de usabilidad en un sentido explícito.
Incluye también una explicación de cómo la usabilidad de un producto puede ser especificada y
evaluada como una parte de un sistema de calidad. Además, brinda explicaciones de cómo las
medidas de performance y satisfacción de usuario pueden ser usadas para medir cómo cualquier
componente de un sistema puede afectar la calidad de todo el sistema.

.Entonces, ¿por qué las cosas son difíciles de usar?: El problema está en el desarrollo del
producto, se hace énfasis en la tecnología en vez de focalizarse en el usuario que, en definitiva, es
el que utilizará el dispositivo.

Por usabilidad se puede entender como la característica que hace que el software sea
fácil de utilizar y fácil de aprender. Pero la pregunta es, ¿Cuándo un software es fácil de utilizar y
fácil de aprender?, ¿Cómo se miden estos factores? Un software es fácil de usar si realiza la tarea
para la que se lo utiliza de manera fácil, eficiente e intuitiva. Por otro lado, su facilidad de
aprendizaje se mide por la rapidez en que el usuario realiza una tarea, cuantos errores se cometen
y la satisfacción de la persona que lo utiliza.

Diaz Gastón, Leschevich Germán 22


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Otro aspecto a tener en cuenta es que sea seguro (protección de datos personales), y que
tenga un costo adecuado. Por otra parte un software es usable si permite que el usuario se
concentre en su tarea y no en la aplicación.

2.1.5.1 Principios generales de usabilidad

A continuación se mencionarán algunos principios que se pueden aplicar a un sistema


interactivo con el fin de mejorar su usabilidad:

Facilidad de aprendizaje

 Minimizar el tiempo necesario que se necesita desde el desconocimiento de la


aplicación hasta su uso productivo.

 Reducir el tiempo que se necesita para ayudar en las sesiones de aprendizaje de


la aplicación.

 Ayudar a los usuarios de nivel intermedio para que aprendan a utilizar


inicialmente el sistema interactivo, y a partir de esto, puedan llegar a un máximo
nivel de comprensión y uso del sistema.

Dos pautas que debe cumplir un sistema para que sea fácil de aprender es que el mismo
sea sintetizable, es decir que el usuario tiene que poder evaluar el efecto de las operaciones
anteriormente efectuadas, en el estado actual. Por lo tanto, cuando se realiza una operación que
cambia el estado anterior, este cambio debe ser captado por el usuario.

La otra pauta que se debe cumplir tiene que ver con la familiaridad del sistema, esto se
refiere a la correlación que existe entre los conocimientos que tienen los nuevos usuarios (dada
una vasta experiencia interactiva con otros sistemas) y los conocimientos que se requieren para la
interacción con el nuevo sistema.

Consistencia

Un sistema es consistente si todos los mecanismos que se utilizan son usados de la


misma manera siempre, sin importar el momento en el que sea utilizado.

Diaz Gastón, Leschevich Germán 23


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

El gran problema es que, cuando se termina una aplicación, el mercado obliga a hacer
una nueva, con nuevos comportamientos y objetos. Esto dificulta la consistencia entre versiones,
pero se debe tratar de mantener la máxima consistencia posible y que el usuario pueda usar las
nuevas características, sin perder las que ya conocía.

Pautas para diseñar sistemas consistentes:

 Seguir patrones de estilo (en la medida de lo posible).

 Aplicar un diseño en común.

 No modificar nada si no es necesario.

 Sumar técnicas nuevas al conjunto existente previamente, en vez de cambiar las


que ya se conocen.

Flexibilidad

Esta característica, esta avocada a las múltiples maneras en que el usuario y el sistema
pueden intercambiar información.

Hay algunos parámetros que se tienen en cuenta para medir la flexibilidad que serán
detallados brevemente a continuación:

Control del usuario

 Permite a los usuarios controlar la interacción.

 Permite no forzar a los usuarios a trabajar para la aplicación.

 Potencia la inteligencia de los usuarios, para que sea obvio el proceder.

Para lograr que el control esté en poder del usuario, se les debe dar a los mismos la
posibilidad de deshacer. Además del control para empezar y terminar las operaciones siempre
que esto sea posible. Cuando este proceso no se pueda interrumpir, hay que advertirle a los
usuarios y permitir ver mensajes apropiados durante el proceso.

Diaz Gastón, Leschevich Germán 24


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Migración de tareas

Este parámetro está relacionado con la transferencia del control usuario - sistema.
Ambos tienen que tener el poder de pasar de una tarea a la otra, de manera que esta pueda ser
interna o compartida entre los dos. Un ejemplo de ello, podría ser el corrector ortográfico que
puede ser utilizado por el usuario, por el sistema, o ambos.

Capacidad de substitución

Esta capacidad, es la que posibilita que valores equivalentes puedan ser reemplazados
unos por otros. Por ejemplo, para determinar el margen de una carta, se puede especificar en
centímetros o pulgadas explícitamente, calcularlo según los valores que se especificaron (anchura
de carta, por ejemplo) o decidirlo visualmente.

De esta manera, sin dejar cálculos en manos del usuario, se minimizan los errores.

Adaptabilidad

Esta pauta es la adecuación automática de la interfaz al sistema. Las decisiones para


poder realizar esta adecuación automática, se pueden basar tanto en la experiencia del propio
usuario como en observar la repetición de ciertas secuencias de tareas.

Un ejemplo de ello puede ser preparar un sistema que reconozca cómo se comporta un
usuario experto o uno novato para, de esta manera, ajustar de forma automática el control del
diálogo o el sistema de ayuda, y de esta manera adaptar los mismos al nivel de usuario que
actualmente esté usando el sistema.

Robustez

Esta característica se refiere al nivel de apoyo al usuario para que el mismo pueda
cumplir con los objetivos y está relacionada con la capacidad de observación del usuario, de
recuperación de información y de ajuste de la tarea del mismo, es decir, que pueda aprender de
sus errores.

Diaz Gastón, Leschevich Germán 25


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Posibilidad de recuperación

La posibilidad de recuperación de un sistema, es el nivel de facilidad que una aplicación


le permite al usuario para corregir una acción una vez reconocido un error.

Tiempo de respuesta

Es el tiempo que necesita el sistema para formular los cambios de estado del usuario.
Por supuesto que estos tiempos de respuesta deben ser llevaderos para el usuario.

Adecuación de las tareas

Es el nivel en que los servicios del sistema permiten al usuario realizar todas las tareas
que el usuario pretende hacer y de la forma en que las quiere hacer. Esto se relaciona
directamente con el nivel de satisfacción que tendrá el usuario al usar el sistema.

2.1.5.2 ¿Cómo se mide la usabilidad?

A menudo se mide la usabilidad a fin de entender mejor las necesidades y


requerimientos de los usuarios, como así también para mejorar su experiencia. Para calificar un
producto como aceptable, se debe recabar información acerca de los atributos anteriormente
mencionados. Se los debe medir y decidir si los resultados son lo suficientemente buenos o no.
Para obtener dicha información, los usuarios finales deben usar el sistema y realizar una lista de
tareas. Luego, se analizan y registran todos los problemas que se observen: por ejemplo, qué les
resultó fácil o difícil a los usuarios cuando utilizaron el sistema, cómo lo usaron, que tan rápido
lo usaron, que tan rápido lo aprendieron a usar y demás aspectos relacionados con el uso del
sistema.

Lo ideal es contar con un equipo experto en diferentes áreas como la informática,


diseñadores de usabilidad o interfaces, para poder recolectar toda la información posible y
aplicarla a fin de desarrollar un producto o sistema más eficiente.

Es importante fijar objetivos cuantitativos y cualitativos para el sistema a través de todo


el proceso para evaluar la usabilidad y para ayudar en el proceso de la toma de decisiones de

Diaz Gastón, Leschevich Germán 26


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

diseño. La usabilidad no puede ser medida directamente, pero se pueden encontrar aspectos de la
usabilidad que sí pueden medirse. Dos tipos de métricas de usabilidad pueden ser recolectados en
la prueba de usabilidad que se realice. Estas métricas son las informaciones objetivas y
subjetivas:

 Información de performance. información objetiva que puede ser capturada en


la fase de prueba de usabilidad y esta puede representar qué ha pasado. Esta
información es cuantitativa, por ejemplo: tiempo en que se finalizó una tarea,
tiempo en que tardó en recuperarse de errores, promedio de tareas realizadas
correctamente o promedio de errores

 Información Subjetiva. datos subjetivos sobre qué fue lo qué pensó el usuario y
cómo se sintió mientras utilizaba la aplicación y su interfaz. La información
subjetiva puede ser cualitativa o cuantitativa, como por ejemplo podemos
presentar una escala definida y se le pregunta al usuario que califique que tan
fácil o difícil fue utilizar el sistema de acuerdo a dicha escala, así se obtendrá un
veredicto subjetivo en una respuesta cuantitativa. Para medir esta información se
pueden controlar los promedios de qué tan fácil fue instalar el producto, qué tan
fácil fue aprender a usar el sistema, preferencias del sistema o comentarios que
surgen de manera espontánea

2.1.5.3 Críticas a la usabilidad

 Los usuarios no necesitan mejores interfaces, sino un mejor entrenamiento.

 La usabilidad no se pude medir.

 El diseño de la IU está implícito en el diseño del software. No se tiene que


planificar expresamente y valorar su costo.

 Si el diseñador está familiarizado con patrones y principios de diseño, hará


buenas interfaces.

 El diseño de la interfaz de usuario no es necesario hasta el diseño detallado.

Diaz Gastón, Leschevich Germán 27


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 La usabilidad aumenta los costos y el tamaño del ciclo de desarrollo.

2.2 GESTOS
Gestos y reconocimiento de gestos son términos que se usan a menudo en las
discusiones sobre la interacción humano-computadora. Para la mayoría de las personas, el
término incorpora reconocimiento de caracteres, reconocimiento de los correctores de símbolos, y
varios tipos de interacción. De hecho, toda acción física involucra un gesto para que esta sea
llevada a cabo. Asimismo, la naturaleza de ese gesto es un importante componente que establece
la sensación que le queremos dar a la acción.

Antes de dar una definición formal de qué es un gesto, se debe hablar de la


comunicación no verbal, que es, básicamente, comunicar sin palabras a través de múltiples
canales de comunicación. Las expresiones no verbales son las acciones diferentes al habla que se
realizan durante una comunicación, esto se puede interpretar como una aproximación a la
definición de gesto.

Si involucramos en la definición de gesto a un sistema interactivo, podemos decir que un


gesto es cualquier movimiento físico que un sistema interactivo detecta y el cual genera una
respuesta del mismo, como se muestra en la siguiente imagen.

Figura 2-7 - Ejemplo de un gesto en un sistema interactivo

En (Gord Kurtenbach, 1990) dan una interesante definición de gesto “un gesto es un
movimiento del cuerpo que contiene información. Sacudir la mano para despedirse es un gesto.

Diaz Gastón, Leschevich Germán 28


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Presionar una tecla en un teclado no es un gesto porque el movimiento de un dedo para tocar una
tecla no es significante. Todo lo que importa es qué tecla se presiona”.

Por supuesto que, si analizamos esta definición, no es difícil de darse cuenta que para el
uso de gestos se requiera de dispositivos de entrada. Los gestos involucran un gran número de
grados de libertad (se explica en 2.2.1 “Grados de libertad”) y restricciones para con el usuario.
Por ejemplo, si hacemos un reconocimiento de gestos utilizando un mouse, o un láser, o algún
otro dispositivo puntero, restringe al usuario en los gestos que puede realizar. Es decir, la
comunicación con la aplicación será posible, pero el conjunto de gestos que el mismo podrá
realizar será muy reducido.

Lo primero que se debe hacer si se quiere construir una interacción basada en gestos con
computadoras, es entender el rol que cumple el gesto en la comunicación entre personas. Para eso
se debe analizar desde la psicología y la antropología los tipos de gestos que comúnmente usan
las personas, y especificar los atributos de cada uno.

2.2.1 GRADOS DE LIBERTAD

Los grados de libertad en el cuerpo humano, están determinados por los ejes de
movimiento que posee una articulación y a su vez estos estarán condicionados por la forma
anatómica de dicha articulación. Al realizar un mismo movimiento que involucra una articulación
determinada, por ejemplo el hombro, existen ejercicios que darán un grado de libertad porque
utiliza solo uno de los ejes de movimiento del hombro y los demás son anulados, esto sucedería,
por ejemplo, con una máquina.

Diaz Gastón, Leschevich Germán 29


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 2-8 - Rotaciones y trasladaciones en los tres ejes posibles.

Seis grados de libertad (6DOF) se refiere al movimiento en un espacio tridimensional,


es decir, la capacidad de moverse hacia delante/atrás, arriba/abajo, izquierda/derecha (traslación
en tres ejes perpendiculares), combinados con la rotación sobre tres ejes perpendiculares. El
movimiento a lo largo de cada uno de los ejes es independiente de los otros, y cada uno es
independiente de la rotación sobre cualquiera de los ejes, el movimiento de hecho tiene seis
grados de libertad.

Figura 2-9 - 6DOF

Diaz Gastón, Leschevich Germán 30


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Tres grados de libertad (3DOF) significa solo el movimiento en tres dimensiones, pero
no incluye la rotación.

Tanto los términos 3DOF como 6DOF serán muy utilizados en el presente documento.

2.2.2 GESTOS EN LA VIDA COTIDIANA

Si se analizan los gestos fuera del mundo de la informática y sólo se considera los que
se hacen día a día en las “conversaciones” entre otras personas, se verá que se usa una enorme
cantidad de gestos en la comunicación. Los gestos que se utilizan varían dependiendo del
contexto y la cultura, dos cuestiones que se encuentran íntimamente relacionadas con la
comunicación. Esto se puede comprobar simplemente observando una persona conversando por
celular, seguramente realizará gestos como si estuviera hablando con alguien cara a cara.

Los gestos existen de forma aislada o involucran objetos externos. Si no se involucra


ningún objeto, se puede saludar, acercar, alejar, y en mayor o menor grado, utilizar lenguajes de
señas más formales. Si se involucran objetos externos, se tiene un largo rango de gestos que son
casi universales, incluyendo apuntar, mover o tocar objetos, etc.

2.2.2.1 Clasificación

Estos gestos se pueden clasificar dependiendo de su función:

 Semióticos. comunican la información significativa y los resultados de la


experiencia cultural compartida.

 Ergóticos. capacidad de manipular objetos en el mundo real.

 Epistémicos. permiten aprender del entorno a través de la experiencia táctil.

Diaz Gastón, Leschevich Germán 31


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 2-10 - Clasificación

Figura 2-11 - Gesto Ergótico Figura 2-12 - Gesto Ergótico

Diaz Gastón, Leschevich Germán 32


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 2-13 - Gesto Epistémico Figura 2-14 - Gesto Semiótico

Figura 2-15 - Gestos Semiótico

Los gestos semióticos con uso de las manos, se pueden clasificar asimismo de acuerdo a
su funcionalidad.

 Simbólicos. Son gestos que dentro de cada cultura tienen un único significado.
Por ejemplo, el gesto de OK con el dedo pulgar levantado

 Icónico. Gestos que representan el tamaño, forma u orientación de un objeto


concreto o un evento, y tienen una relación formal cercana al contenido
semántico de la palabra. Acompañan al habla. Por ejemplo “El avión volaba así”.

 Tiempo. Gestos que reflejan la estructura de lo que se está diciendo, marcan


palabras que tienen un significado relevante en el discurso. Por ejemplo,
“¡Hacelo ahora!”.

Diaz Gastón, Leschevich Germán 33


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Deíctico. Son gestos apuntadores es decir que apuntan a algo o alguien ya sea
concreto o abstracto o atraen la atención hacia cierto punto. Por ejemplo, “Ese
señor” o “Poné eso ahí”.

 Pantomímico. Son gestos que se utilizan para mostrar el uso de una herramienta
u objetos invisibles en la mano del interlocutor. Por ejemplo, “Gire el volante a
la izquierda”.

 Metafórico. Son gestos similares a los icónicos, pero describen entidades


abstractas y no físicas. Por ejemplo, “Formaban un grupo”.

A esta clasificación (McNeill, 2006) le adicionó los tipos de gestos que se relacionan
con el proceso de comunicación, los gestos de batido y los gestos cohesivos. Los gestos de batido
son llamados así porque la mano se mueve hacia arriba y hacia abajo al ritmo de la conversación.
Los cohesivos en cambio, son una variación de los icónicos, pantomímicos o deícticos que se
utilizan para unir porciones de la conversación temporalmente separadas pero temáticamente
relacionadas.

Como ya se mencionó, los gestos están fuertemente relacionados al discurso que se está
diciendo, tanto para la relevancia de lo que se está hablando como para su interpretación. Sólo los
gestos simbólicos se pueden interpretar sin la información del contexto del discurso. Sin
embargo, este contexto tiene que ser acompañado secuencialmente por otro gesto o acción. Estos
tipos de gestos que se mencionaron anteriormente, se pueden clasificar de acuerdo a su relación
con el discurso:

 Representan la expresión verbal. Simbólico, Icónico.

 Acompañan el proceso conversacional. Tiempo.

 Evocan la expresión verbal. Deíctico, pantomímico, metafórico.

Existe otra clasificación dependiente de la necesidad del habla para la interpretación del
gesto, esta es: Gesticulación (Batido y Cohesivo), Dependientes del lenguaje (Icónicos),
Pantomímicos (pantomímicos), Emblemas (Deíctico), lenguaje de signos (Simbólico). Estos van

Diaz Gastón, Leschevich Germán 34


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

desde el que más necesita del habla (Gesticulación) al que menos lo necesita (Simbólico). Por
ejemplo, el lenguaje de signos ya tiene características semánticas y sintácticas parecidas al habla,
que no requieren del habla para su interpretación. Por otra parte, el lenguaje de gestos icónico no
puede ser entendido sin el discurso que los acompaña.

Figura 2-16 - Clasificación

A pesar de tener estas diferentes clasificaciones y variedades de gesticulaciones, hoy en


día la interacción con computadoras está casi libre de gestos. En contraste, para los demás
dispositivos, el paradigma de vanguardia, en este caso, es la manipulación directa, que se define
como la capacidad de manipular objetos digitales sobre una pantalla sin el uso de la línea de
comandos. Sin embargo, las interfaces gestuales cambian un poco el significado de esta, ya que el
usuario toca el objeto para manipularlo o bien utiliza directamente el cuerpo para controlar el
espacio digital. Pero, qué tan directas son estas manipulaciones cuando las mismas restringen
considerablemente los gestos cotidianos. Esta deficiencia está visiblemente marcada si tenemos
en cuenta qué tan eficientes son las personas usando gestos cotidianamente y luego consideramos
cómo algunos de esos gestos se pueden utilizar en la interacción con la computadora, y cuánto

Diaz Gastón, Leschevich Germán 35


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

tiempo les tomará aprender los gestos que las computadoras pueden entender. Incluso las
interfaces gestuales más avanzadas comúnmente implementan sólo reconocimiento de gestos
deícticos o simbólicos, pero esto no tiene por qué ser siempre así.

2.2.3 OTRA CLASIFICACIÓN DE GESTOS

Uno de los principales problemas en la investigación de gestos es la carencia de


terminología en común para describir las interacciones. Por ejemplo, las gesticulaciones
generalmente se refieren a los gestos verbales, pantomímicos y naturales, mientras el término de
gestos naturales también se refiere a los gestos donde se utilizan las manos. Además, los gestos
simbólicos también son descriptos como icónicos o táctiles. En definitiva, existen varias
clasificaciones de gestos incluyendo las de (Wexelblat, 1998), (Brereton, 2003),

En la siguiente sección se describirá la clasificación de (Quek, y otros, 2002) quien,


además de repetir algunos de los tipos de gestos mencionados anteriormente (como los deícticos),
definió una clasificación de gestos a más alto nivel.

2.2.3.1 Gestos de manipulación

Son los gestos cuyo objetivo es controlar una entidad donde existe una estrecha relación
entre los movimientos de una parte del cuerpo humano y la entidad que se quiere manipular.

Quek, los define como: “aplicar una fuerte relación entre los movimientos actuales del
gesto realizado con la mano/brazo y la entidad que está siendo manipulada.” (Quek, y otros,
2002)

Mientras una manipulación puede incluir, por ejemplo, arrastrar y soltar utilizando un
mouse, un gesto de manipulación puede involucrar interacciones más complicadas requiriendo
que se interprete por un sistema de computadora, como las manipulaciones utilizando un lápiz
táctil para realizar los movimientos en un objeto en pantalla. Las manipulaciones pueden incluir
movimientos en dos dimensiones (2D), a través de un eje x, y (como el mouse), o movimientos
multidimensionales en el espacio, detectando movimientos más complejos.

Diaz Gastón, Leschevich Germán 36


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Manipulación 2D. Gestos que se utilizan para manipular una entidad digital en
un display.

Figura 2-17 - Manipulación 2D

 Manipulación 3D. Gestos que manipulan objetos virtuales pero a su vez


involucran las variables de presión, velocidad, etc. que son recogidos a través de
otros sensores.

Figura 2-18 - Manipulación 3D

 Gestos tangibles y objetos digitales. Gestos que manipulan objetos físicos para
representar objetos digitales. La manipulación se hace sobre el objeto físico, y el
resultado de esa manipulación se lo considera una salida (por ejemplo en un
monitor o T.V.).

Diaz Gastón, Leschevich Germán 37


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 2-19 - Gestos tangibles y objetos digitales

 Gestos y objetos físicos. Son gestos que se realizan para controlar los
movimientos de objetos reales, por ejemplo robots, sillas de rueda, T.V., etc.

Figura 2-20 - Gestos y objetos físicos

2.2.3.2 Gestos semafóricos

Son los que se utilizan en un diccionario de gestos dinámicos o estáticos de manos o


brazos.

En (Quek, y otros, 2002) se los define como: “Los semáforos son sistemas de
señalización donde se pueden utilizar banderas, luces o incluso los brazos. Por extensión, se
define un gesto semafórico a cualquier sistema de gestos que emplee un diccionario estilizado de
gestos estáticos o dinámicos con la mano o el brazo. El enfoque semafórico se puede definir

Diaz Gastón, Leschevich Germán 38


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

como “comunicativo” ya que los gestos se interpretan como un “universo de símbolos” que se
utiliza para comunicarse con la máquina”.

Los gestos semafóricos están tipificados por la aplicación y se compara un gesto


generado con un conjunto de gestos predefinidos:

 Gestos dinámicos vs. Estáticos. Los gestos semafóricos pueden ser estáticos y
pueden ser realizados a través del cuerpo o a través de controladores.

 Gestos de pincelada. Los gestos de pincelada son aquellas marcas o pinceladas


que son hechas con un mouse para controlar comandos de una interfaz, ya sea
pasar de pantalla, mover el cursor, escribir, etc.

Figura 2-21 - Gestos de pincelada

2.2.4 CLASIFICACIÓN DE LOS GESTOS SEGÚN EL DISPOSITIVO DE ENTRADA

 Entrada no perceptiva. Consiste en la utilización de dispositivos u objetos para


la entrada de gestos que requieren contacto físico para transmitir información
sobre la situación espacial o temporal a la computadora.

 Entrada perceptiva. Permite el reconocimiento de gestos sin ningún objeto ni


contacto físico con dispositivos intermedios.

 Entrada de audio. Consiste en detectar la posición a partir del origen del sonido
que se detecta del usuario. Los sensores de audio no son comúnmente utilizados

Diaz Gastón, Leschevich Germán 39


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

como una entrada de un gesto, es considerada como una alternativa a la visión o


a la táctil.

2.2.4.1 Ejemplos de entradas no perceptivas

 Mouse y lápiz óptico.

 Entradas táctiles.

 Sensores electrónicos - en el cuerpo o ropa.

 Sensores electrónicos – Guantes.

 Sensores electrónicos - Objetos con sensores e interfaces tangibles.

 Sensores electrónicos – Dispositivos infrarrojos.

2.2.4.2 Ejemplos de entradas perceptivas

 Visión por computadora.

 Sensores remotos.

Estos dispositivos se verán con más detalle en el Capítulo 4 “Dispositivos y técnicas de


detección y reconocimiento de gestos”.

2.2.5 DISEÑO DE LOS GESTOS

Así como en el diseño de cualquier producto, el diseño de los gestos interactivos


también se debe empezar con las necesidades de quien lo va a utilizar, en este caso el usuario o
los usuarios, regulado por las restricciones del entorno, la tecnología, recursos y metas
organizacionales, así como también los objetivos de negocio. Las necesidades de los usuarios
pueden ser desde simples a muy complejas. De todas maneras, por más interesante, novedoso,
natural o innovador que sea el gesto, si las necesidades del usuario no están satisfechas, el diseño
será un fracaso.

Diaz Gastón, Leschevich Germán 40


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Antes de comenzar, quien se encuentre diseñando una interfaz gestual se debe plantear
la siguiente pregunta: ¿Es apropiado un sistema de gestos? Solo porque las interfaces gestuales
son novedosas, no significa que son apropiadas para cualquier situación. Entonces, se verá
cuándo no es apropiado utilizar gestos:

Cuando hay mucha entrada de datos. Por más que algunos usuarios se adapten a los
teclados táctiles fácilmente, un teclado físico, es muchísimo más rápido y fácil de utilizar para la
gran mayoría de la gente cuando tienen que escribir texto o números.

Cuando existe mucha dependencia sobre lo visual. Muchas interfaces gestuales usan
una respuesta o retroalimentación (feedback) visual para indicar que una acción se ha realizado
(por ejemplo, cuando se ha presionado un botón). Además, la mayoría de las interfaces táctiles y
muchos sistemas gestuales, en general, dependen íntegramente de pantallas visuales con poco o
ninguna respuesta háptica. Por otra parte, usualmente no existe una sensación física que haga
sentir que un botón ha sido presionado, en este caso, si el usuario tiene limitaciones visuales (la
mayoría de los adultos que superan una determinada edad la tienen) una interfaz gestual puede no
ser apropiada.

Cuando existe mucha dependencia sobre lo físico. Las interfaces gestuales son, por
supuesto, mucho más demandantes físicamente que una pantalla o un teclado. Mientras más
amplio y físico es el gesto (por ejemplo, una patada), menos probable será que algunas personas
lo puedan realizar, ya sea debido a su edad, enfermedades, o incluso condiciones del entorno. Por
ejemplo, presionar los botones en un teclado táctil es difícil con guantes de invierno puestos. La
inversa también es cierta, ya que mientras más acotado y pequeño sea el movimiento, menos
gente será capaz de lograrlo. El teclado en el iPhone, por ejemplo, es muy pequeño y delicado
para que sea utilizado por una persona con dedos grandes o lentos.

Cuando el contexto no es apropiado. El contexto puede ser una traba para una interfaz
gestual en muchas situaciones, o por razones de privacidad o simplemente para evitar avergonzar
los usuarios del sistema. Los diseñadores deben tener en cuenta el contexto donde será utilizado
el sistema y determinar qué tipo de gesto será apropiado para ese contexto.

Diaz Gastón, Leschevich Germán 41


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por supuesto que hay muchas razones por las cuales sí utilizar una interfaz gestual. Para
todo lo que un gesto no interactivo puede ser usado (comunicación, manipular objetos, utilizar
una herramienta, componer música, etc.) también puede ser hecho utilizando un gesto interactivo.
Es particularmente bueno usar las interfaces gestuales para:

 Interacciones más naturales. A los seres humanos, por naturaleza, les gusta
interactuar directamente con los objetos. Los gestos interactivos permiten a los
usuarios interactuar de una manera natural con objetos digitales por un medio
físico, como lo hacen con los objetos físicos en sí.

 Menos hardware visible y engorroso. Con uno o varios sistemas basados en


gestos, el típico hardware de mouse y teclado no sería necesario, una pantalla
táctil u otros sensores permiten a los usuarios ejecutar acciones sin el hardware
mencionado. Estos beneficios permiten implementar sistemas basados en
interfaces gestuales en lugares donde la instalación de una computadora
tradicional no sería apropiada o quedaría fuera de lugar, tales como museos,
aeropuertos u otros espacios públicos.

 Más flexibilidad. A diferencia de los tradicionales botones físicos, el teclado en


una pantalla táctil, puede cambiar a voluntad (por ejemplo girándolo),
permitiendo así, diferentes configuraciones del teclado dependiendo de los
requerimientos funcionales. Por ende, una pantalla muy pequeña también puede
cambiar sus botones dependiendo de la necesidad. Esto puede traer problemas de
usabilidad, pero la característica de poder tener muchos controles en un espacio
pequeño puede ser una gran ventaja para los diseñadores.

 Más matices. Si bien los teclados, mouse, trackballs, y otros dispositivos de


entrada son excelentes para varias situaciones, no son capaces de percibir los
gestos sutiles del cuerpo humano. Una ceja levantada, un dedo doblado, o los
brazos cruzados pueden dar mucho significado además de controlar una
herramienta. Los sistemas gestuales aún no han comenzado a aprovechar
completamente la paleta emocional que los humanos brindan, aunque es probable
que con el tiempo esto se explote.

Diaz Gastón, Leschevich Germán 42


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Más diversión. Se pueden diseñar juegos donde el usuario presiona un botón y


esto hace que un avatar en la pantalla mueva una raqueta de tenis. Pero por
supuesto que es mucho más entretenido (para observadores y jugadores) hacer la
mímica de mover la raqueta físicamente con los brazos y manos y ver la acción
ejecutarse en la pantalla. Los sistemas digitales fomentan el juego y la
exploración de un sistema proveyendo una experiencia “manos a la obra”.

2.2.6 ATRIBUTOS DE LOS GESTOS

A pesar de que las interfaces gestuales pueden diferir de las interfaces no táctiles o
“libres”, la mayoría de los gestos tienen similares características que se deben tener en cuenta a la
hora del diseño. Mientras más sofisticada sea una interfaz (y más sensores o dispositivos utilice),
más varían los atributos mencionados a continuación:

 Presencia. Es el atributo más básico. Algo debe estar presente para hacer que un
gesto genere una interacción o un evento. Para algunos sistemas, la presencia de
una persona es suficiente para causar una acción. Para una interfaz táctil, la
presencia de la punta del dedo crea un evento.

 Duración. Todo gesto tiene una duración a lo largo del tiempo y puede ser hecho
rápidamente o lentamente. ¿El usuario se encuentra tocando un botón o
manteniéndolo apretado por un período largo? Para algunas interfaces,
especialmente aquellas que son simples, la duración no es tan importante. En
cambio, las interfaces que usan sensores de proximidad, se interesan poco por la
duración y solo si un ser humano se encuentra en el área. Pero para los
videojuegos y otros tipos de interfaces, la capacidad de determinar la duración es
crucial. La duración se mide calculando el tiempo del primer movimiento
perteneciente al gesto, hasta el tiempo en que termina el gesto.

 Posición. Este atributo se refiere a la posición donde se está realizando el gesto.


Desde el punto de vista del desarrollo, la posición generalmente se determina
estableciendo un punto en un eje x, y (que ocupa la pantalla entera) y luego

Diaz Gastón, Leschevich Germán 43


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

calculando los cambios de posición en dichos ejes. Algunos gestos también


implementan el eje z para la profundidad. Esto es para tener en cuenta que las
personas varían en su altura, la posición puede ser relativa (relacionada al tamaño
de la persona) o exacta (ajustando los parámetros de la sala o habitación). Por
ejemplo, un diseñador puede definir la posición de algunos gestos en algún punto
alto en el ambiente, para que los niños no puedan realizarlo.

 Movimiento. El movimiento está relacionado a si el usuario se mueve de un


lugar a otro o si se encuentra realizando una pose en un lugar fijo, o bien
moviéndose de arriba abajo o de lado a lado. Para algunos sistemas, cualquier
movimiento es suficiente para disparar un evento y la posición no es necesaria de
determinar.

 Tamaño. El ancho y el largo también se pueden combinar para medir el tamaño.


Por ejemplo, en un sistema táctil las pantallas pueden determinar si el usuario se
encuentra usando un lápiz o el dedo de acuerdo al tamaño (por supuesto que el
lápiz es más fino), y así el sistema se ajustará de acuerdo a ello.

 Orientación. Está determinada por la dirección a la que el usuario (o el


dispositivo) se encuentra mirando cuando está realizando el gesto. Para los
videojuegos, este atributo es muy importante. La orientación tiene que estar
determinada utilizando puntos fijos (tales como el ángulo del usuario que forma
con el objeto en sí).

 Incluye o no objetos. Algunas interfaces gestuales permiten a los usuarios


emplear objetos físicos para mejorarlos o incluirlos en el sistema. Los sistemas
simples tratan estos objetos como una extensión del cuerpo humano, pero los
más sofisticados los reconocen y permiten que el usuario interactúe con ellos.
Por ejemplo, un sistema puede ver un pedazo de papel que un usuario tiene en la
mano como parte de su mano, mientras que en otros sistemas (más complejos),
se verá como un pedazo de papel que puede tener textos o imágenes proyectadas
en él.

Diaz Gastón, Leschevich Germán 44


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Secuencia. Los gestos interactivos no necesariamente tienen que ser singulares.


Un gesto de una ola (ondear la mano) seguida con un puñetazo puede generar
una acción diferente que ambos gestos hechos por separado. En este caso se
estaría hablando de un sistema sofisticado que tiene la capacidad de recordar
estados. Esto también es un poco más dificultoso de aprender para los usuarios.

 Número de participantes. Puede llegar a ser muy útil para algunos dispositivos
detectar múltiples usuarios. Por ejemplo, dos personas utilizando un sistema con
una mano puede ser muy distinto de una persona manipulando el sistema con
ambas manos.

En resumen, cuando se diseña un gesto interactivo, estos atributos, más el rango en que
se puede mover el usuario, deben ser considerados. Por supuesto que las interfaces gestuales más
simples, tales como las táctiles, usarán solo algunos de estos atributos, y los diseñadores y
desarrolladores seguramente no necesitarán perder tiempo en mirar estos atributos pero sí hacer
hincapié en la ergonomía y la facilidad de uso de los gestos interactivos.

2.2.7 DETERMINAR EL GESTO APROPIADO

Una vez que se ha decidido cuál es la interfaz gestual apropiada para los usuarios y el
ambiente en el que se va a implementar, se necesitan definir los gestos apropiados para las tareas
y objetivos que los usuarios deben realizar. Esto requiere una combinación de tres elementos: los
sensores o dispositivos de entrada que se utilizaran, los pasos que requiere cada tarea, y la
fisiología del cuerpo humano. Los sensores son los que determinan qué detectará el sistema y
cómo. Los pasos en cada tarea permiten definir las acciones que deben realizarse y las decisiones
que se deben tomar. La fisiología del cuerpo humano determinará las limitaciones físicas de los
gestos a realizar.

Las tareas simples, generalmente, tienen gestos simples asignados para realizarlas, en
cambio las tareas más complicadas tienen estipulados gestos más complejos.

Si se lleva esto como ejemplo a tareas cotidianas que realizan los seres humanos, se
puede tomar el caso de encender la luz. Si se quiere encender la luz en una habitación un gesto

Diaz Gastón, Leschevich Germán 45


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

simple en la pared debería ser suficiente para concretar la tarea, por ejemplo, golpear la pared o
aplaudir. Sin embargo, si se quiere atenuar la luz (una acción un poco más compleja) requiere un
poco más de esfuerzo, como mantener la mano hacia arriba y bajarla lentamente. Para atenuar las
luces de toda la casa de una vez (una tarea aún más sofisticada) se necesitará un gesto combinado
o una combinación de gestos, como por ejemplo aplaudir tres veces, y luego bajar el brazo. Como
esta acción se realiza muy rara vez y es conceptualmente complicada, puede tener asociada un
movimiento complejo.

Esto no quiere decir que todos los comportamientos complejos necesitan o deben ser
asociados a gestos complejos, sino que las acciones simples no deberían depender de gestos
complejos. De hecho, los mejores gestos interactivos son aquellos que convierten lo complejo en
algo simple y elegante.

La manera de lograr esto, especialmente en los dispositivos táctiles, es hacer accesibles


todas las características con gestos simples, como por ejemplo un toque, y luego definir gestos
alternativos que son más sofisticados para los usuarios más avanzados. De esa manera, un solo
gesto puede hacer las veces de acceso directo a una determinada característica, tal cual lo hacen
los comandos del teclado en un sistema operativo de escritorio.

2.2.8 ASIGNAR EL GESTO A UN COMPORTAMIENTO

El diseñador japonés Naoto Fukasawa ha observado que los mejores diseños son
aquellos que logran “disolver el comportamiento”, lo cual significa que los productos pasan
desapercibidos sin importar lo que el usuario esté haciendo. De esta manera la utilización del
producto se toma de manera más natural por el usuario y realiza los actos para cumplir las tareas
que requiere el producto de manera casi subconsciente.

Adam Greenfield, habló sobre este tipo de interacciones naturales en una entrevista:

“Se ve esto, por ejemplo, en Hong Kong donde las mujeres dejan su RFID
(identificación por radio frecuencia, sistema que contiene datos personales) en sus carteras y
simplemente mueven las mismas a través de los lectores mientras pasan a través de los

Diaz Gastón, Leschevich Germán 46


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

molinetes. Pero esto no fue diseñado. Simplemente surgió; la gente entendió como hacerlo por sí
misma, sin ningún diseñador que los tenga que instruir… Mientras más se pueda adaptar y no
imponer, más exitosos serán nuestros diseños”. (Greenfield, 2006).

Entonces, los mejores y más naturales diseños, son los que logran asociar el
comportamiento del sistema interactivo a los gestos que los humanos ya realizan para concretar
tal comportamiento o tarea. Se puede tomar el ejemplo ya dado de encender la luz o, más general
aún, presionar un botón para apagar o encender algo, girar hacia la izquierda para hacer que el
“avatar” que representa al usuario gire hacia la izquierda también, poner las manos debajo del
lavatorio para que salga el agua, etc. En dichas acciones, el diseño se disuelve en el
comportamiento.

2.3 INTERFACES BASADAS EN GESTOS


Los interfaces basadas únicamente en gestos son las equivalentes a la manipulación
directa, las mismas pueden ir desde interfaces que reconocen algunos gestos simbólicos a
aquellas que interpretan enteramente un lenguaje de signos completo. De la misma manera, las
interfaces pueden reconocer una posición de las manos estática, el movimiento de las manos
dinámicamente, o una combinación de ambos. Pero en cualquiera de estos casos cada gesto tiene
un sólo significado semántico (no ambiguo) asociado que puede ser utilizado en la interfaz.
Existen varias tecnologías que se han utilizado para capturar un gesto, las cuales se verán en el
Capítulo 4 “Dispositivos y técnicas de detección y reconocimiento de gestos”.

2.3.1 INTERFACES BASADAS EN GESTOS NATURALES (NUI)

El término natural es usualmente relacionado con el “mundo real”. Pero, expresándolo


en términos técnicos, se puede interpretar también como una filosofía de diseño y una fuente de
métricas que permiten un proceso iterativo para la creación de un producto. Estas líneas de diseño
se pueden incluso tomar como referencia para diseñar productos como el mouse, el teclado,
gestos en el aire, etc. La tecnología de hoy en día permite crear una gran variedad de interfaces
naturales para el usuario, utilizando diferentes dispositivos de entrada/salida. Por supuesto que

Diaz Gastón, Leschevich Germán 47


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

esto debe estar acompañado de un buen diseño y una buena explotación de esa tecnología
empleada, para copiar de la mejor manera las capacidades humanas, aplicarlas adecuadamente al
contexto dado y satisfacer y completar las tareas que se necesitan.

Cuando se dice que una interfaz es “natural” se está refiriendo a la forma en la que
interactúa un usuario y a cómo se siente con respecto al producto, más específicamente, qué
hacen y cómo se sienten cuando lo utilizan.

¿Qué hace y cómo se siente un jugador de fútbol cuando se dispone a patear una pelota?
Pone la pelota en el piso, toma carrera y patea la pelota con naturalidad, como si esta fuera parte
de su cuerpo. Evidentemente se siente cómodo al hacerlo.

Esto es exactamente lo que buscan los productos que utilizan interfaces naturales en sus
usuarios. Se deben copiar sus capacidades, conocer sus necesidades y contentar sus tareas y
demandas del contexto.

Entonces, se entiende por Interfaz de Usuario Natural (NUI) a aquella interfaz de


usuario convencional que, cumpliendo con todos los aspectos y funcionalidades típicas de una
interfaz de usuario convencional, ofrece una interacción humano-computadora basada en
elementos y/o movimientos naturales del ser humano. (Saffer, 2009)

La palabra natural es utilizada porque la gran mayoría de las interfaces usan dispositivos
de control artificiales, como pueden ser un teclado o un ratón; dispositivos que requieren por
parte del usuario, realizar un aprendizaje previo en el funcionamiento de los mismos. Por tanto,
se define como natural al término u objetivo que se debe alcanzar con el desarrollo de la interfaz
de usuario para que éste considere el control del dispositivo como algo natural, esto es, que se
pueda aprender su funcionamiento de forma intuitiva.

Los dispositivos directos denominados multi-touch, mantienen la modalidad de utilizar


una entrada natural. Los muchos años de trabajo en el tema, han demostrado que el sistema de
direct-touch proporciona un mejor manejo de espacio en memoria, y el multi-touch tiene un
mejor y más fácil manejo del ancho de banda generado por la entrada que genera usuario.

Diaz Gastón, Leschevich Germán 48


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Todas estas nuevas interfaces deben ser diseñadas con nuevas e innovadoras formas de
interactuar, es decir, con un nuevo paradigma.

Un dispositivo que el usuario realmente pueda sentir su uso como natural significa que
aprovecha al máximo las entradas que le otorga el usuario. Como ya se apuntó más arriba
diseñando y desarrollando interfaces naturales de usuarios, tomando ventajas de la tecnología
moderna de hoy día, se abren las puertas hacia una nueva era, donde la tecnología se puede
integrar completamente en la vida de las personas.

2.3.2 PAUTAS PARA EL DISEÑO DE INTERFACES NATURALES

Si bien existen varios caminos alternativos que se pueden seguir para el diseño de una
Interfaz Natural de Usuario, lo primero que se debe entender es que el objetivo es lograr que la
experiencia para el usuario sea natural, en vez de que, de alguna manera sea intrínsecamente
natural.

La interfaz natural debe:

 Crear una experiencia que, para usuarios expertos, se pueda sentir como una
extensión de su cuerpo.

 Crear una experiencia que sea tan natural para el usuario novato como para el
usuario experto.

 Crear una experiencia que sea autentica para el medio. No empezar tratando de
simular la mímica del mundo real o algo parecido.

 Construir una interfaz de usuario que tenga en cuenta el contexto, incluyendo las
metáforas correctas, indicaciones visuales, retroalimentación, y métodos
adecuados de entrada/salida para el contexto.

 Evitar copiar paradigmas ya existentes de interfaces de usuario.

Debería:

Diaz Gastón, Leschevich Germán 49


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Olvidarse de lo que se entiende por natural.

Podría:

 Aprovechar los talentos innatos y aprendidos previamente. Hacer interfaces


sobre otras experiencias donde el usuario ya es un experto no es la única técnica
para lograr la naturalidad.

El desafío en sí será llevar a los usuarios de un rendimiento de novato consciente y


torpe, a un rendimiento que resulte cómodo, cumpla su cometido y sea fluido. Las interfaces
naturales logran esto empezando con acciones evidentes, como por ejemplo, definiendo las
maneras de impulsar una pelota (empujándola o tirándola) usando solo el cuerpo y formando
estas acciones rápida y continuamente en el marco de una performance calificada por personal
profesional.

Una interfaz de usuario natural no es una que responde mágicamente a cualquier acción,
de alguna manera adivinando correctamente la intención del usuario. Por el contrario, la interfaz
natural fomenta el desarrollo de una conducta hábil y genera un sentimiento de dominio mediante
la obtención de las medidas adecuadas de las acciones de los usuarios y las transforman en
acciones que son fluidas, eficaces y divertidas.

2.3.3 CARACTERÍSTICAS DE UNA BUENA INTERFAZ NATURAL

Aunque los aspectos particulares de un sistema gestual requieren más y diferentes tipos
de consideración, las características de una buena interfaz natural no difieren mucho de las
características de cualquier otro sistema interactivo bien diseñado (usualmente se dice que deben
ser usable, útil, deseable e intuitivo). Por lo tanto, las interfaces naturales además deben ser:

 Descubribles. Significa que se tiene que saber que allí existe “algo” (dispositivo,
objeto, etc.) con lo que se puede interactuar. Esto puede ser un gran problema
para las interfaces naturales. ¿Cómo se puede decir si una pantalla es tocable o
tangible?, ¿Cómo se puede determinar si un entorno es interactivo? Antes de
poder interactuar con un sistema gestual, se tiene que saber que está ahí y cómo

Diaz Gastón, Leschevich Germán 50


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

comenzar a interactuar con él. Aquí es donde entran en juego una o múltiples
propiedades de un objeto que dan indicaciones sobre cómo interactuar con él o
una función de ese objeto. Un botón, por su forma, tiene la característica o
función de apretarse.

 Confiables. Para que los usuarios se sientan identificados con un dispositivo, la


interfaz tiene que verse confiable. La interfaz se debe ver competente y segura, y
debe respetar la privacidad del usuario (no utilizar datos ni fotos personales, etc.)

 De rápida respuesta. El ser humano está acostumbrada a la reacción inmediata a


la manipulación física de los objetos. Es que no está acostumbrado a tocar cosas
que no tienen un microprocesador y/o un sensor que deben procesar y averiguar
qué está pasando. Por estas razones es que la velocidad de respuesta es
sumamente importante. Cuando los usuarios se involucran con una interfaz
natural, debe ir acompañada de una respuesta lo más rápida que se pueda. (con
un tiempo de respuesta de 100 milisegundos o menos, se logrará la sensación de
instantáneo). Lograr esto es difícil, ya que la capacidad de respuesta del sistema
estará ligada directamente a la capacidad de respuesta que posea la tecnología
que usa el sensor o dispositivo que se utilice. Incluso, los sensores demasiado
sensibles, pueden resultar aburridos, por lo tanto hay que encontrar el equilibrio
y utilizar los recursos de la manera más eficaz. Si el usuario no obtiene una
rápida respuesta, a menudo repiten la acción que acaban de realizar. Por supuesto
que esto puede causar problemas, por ejemplo, en la compra de un artículo esto
ocasionaría que el usuario compre el mismo artículo dos veces. Si la respuesta a
una acción se tomará un tiempo considerable (más de un segundo), entonces
requerirá alguna manera de retroalimentación en la que se informe al usuario
saber que se está procesando su petición y que el sistema está haciendo algo al
respecto (por ejemplo, las barras de progreso).

 Apropiadas. Como todo sistema, los sistemas basados en gestos también deben
ser adecuados a la cultura, la situación y el contexto en el que serán
implementados. Ciertos gestos son ofensivos en algunas culturas. Un gesto “ok”,

Diaz Gastón, Leschevich Germán 51


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

algo que es común en Norteamérica y Europa, es insultante en Grecia, Turquía y


Medio Oriente. Por otra parte, un sistema gestual que involucre gestos
complicados, por ejemplo, agitando los brazos y bailando en algún lugar público,
es poco probable que sea adecuado para cualquier ambiente, a menos que este
sea un bar, un teatro o un club nocturno.

 Significativas. Los gestos interactivos, más allá de lo estético, deben tener un


significado para la persona que lo realiza, de lo contrario es vacío de contenido;
es decir, a menos que el sistema gestual satisfaga las necesidades de aquellos que
lo usen, no es un buen sistema.

 Inteligentes. Los dispositivos y sistemas que se utilizan habitualmente deben


hacer por los seres humanos cosas que por lo general le cuestan a este (realizar
rápidamente un cálculo, tener una memoria infalible, detectar un patrón
complicado, etc.) Tienen que recordar y hacer el trabajo que no podemos hacer
solos. Es decir, deben ser inteligentes.

 Hábiles. De la misma manera, los mejores productos predicen las necesidades de


sus usuarios y cumplen esas necesidades de manera inesperada y agradable para
el usuario. Los objetivos adaptativos son una manera de hacer esto con interfaces
naturales. Otra, es a través de gestos o acciones interactivas inteligentes que
responden adecuadamente a la acción que el usuario trata de realizar.

 Jugables. Un área en donde los gestos interactivos deben sobresalir es en ser


“jugables” o divertidas. A través del juego, los usuarios no solo empezaran a
interactuar y a acoplarse con la interfaz, sino que también descubrirán nuevas
características y las variaciones en cada uno de sus gestos. Los usuarios deben
sentirse relajados y confiados cuando utilizan la interface.

 Agradables. Las interfaces gestuales deben ser gustosas estéticamente y


funcionalmente hablando. Las partes del sistema (la interfaz visual, los
dispositivos de entrada, la retroalimentación) deben ser agradables a los sentidos

Diaz Gastón, Leschevich Germán 52


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

de los seres humanos. Esto ocasionará una mejor sensación en el usuario cuando
lo utilice.

2.3.4 EL CONTEXTO EN UNA INTERFAZ NATURAL DE USUARIO

Ahora se verá qué papel juega el contexto y entorno creando una interfaz natural. El
equipo que está creando la interfaz se debe preguntar 3 cosas básicas:

 ¿Cuáles son las características de los contextos donde las interfaces naturales
táctiles probablemente resulten exitosas?

 ¿Qué pasa con eso que el entorno favorece la formulación de acciones que serán
al principio exitosas y luego pueden ser moldeadas y extendidas para satisfacer
las nuevas exigencias que presentan, favoreciendo la rapidez, el sentido de
dominio y la diversión del usuario?

 ¿Cómo se verán las acciones fluidas y entrenadas en un contexto dado?

De esto se desprende, que se le debe dar importancia al contexto y el entorno ya que


provocan que la acción del usuario sea coherente, siendo esta la clave para que esa Interfaz
Natural de Usuario tenga éxito para lograr la aceptación inicial, la promoción de un aprendizaje
rápido y un rendimiento experto.

Si se observan los contextos donde las interfaces táctiles han obtenido resultados
prometedores, todos tienen algunas características en común. En primer lugar, son contextos
sociales y entornos de ocio, donde las personas se reúnen para interactuar, entornos de venta
minorista, donde las personas se reúnen a realizar transacciones comerciales, entornos de
demostración, donde el usuario utiliza tecnología para actuar antes de una audiencia, y entornos
públicos, donde las personas son atraídas a caminar y explorar la tecnología. Estos últimos son
una especie de arte público interactivo. La interfaz aumenta esas interacciones. Es así que estas
interfaces son eficaces para tareas estrechamente unidas, donde varias personas están trabajando
en forma conjunta y acoplada hacia un objetivo en común. Jugando videojuegos, compartiendo
experiencias y realizar una compleja transacción son algunos ejemplos de lo dicho. Algunos de

Diaz Gastón, Leschevich Germán 53


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

estos, son contextos sociales donde los grupos se juntan y se expresan espontáneamente. Otros
son contextos donde las personas se reúnen para completar una tarea compartida que involucra
información compleja y múltiples resultados posible (por ejemplo, comprar un producto que tiene
muchas alternativas). Normalmente estos toman espacio en lugares públicos. El uso intermitente
e indeterminado de estos sistemas necesita una introducción fácil y un rápido ascenso hacia el uso
experto.

El hecho de que sean la mayoría voluntarios significa que la interacción debe ser
entretenida y reconfortante para todos. En gran parte de los casos la tecnología ofrece mejores
capacidades que hacen que la interacción se disfrute más. Otra característica de estos entornos es
que los usuarios están concentrados en el contenido (por ejemplo, representación de las piezas de
un juego, la compartición de fotos u otro contenido, o la evaluación o configuración de
productos).

Además de estas características ya mencionadas de las áreas donde la tecnología táctil


parece marcar tendencia, hay más aspectos sutiles de los contextos donde las Interfaces Naturales
de Usuario son efectivas. Esto es, el contexto de interacción es una relación entre las partes en la
que la interfaz actúa como moderador no sólo para el resultado de la transacción, sino también
para la relación entre los actores.

Estos contextos contrastan claramente con el dominio en donde la tradicional GUI


(Graphical User Interface - Interfaz Gráfica de Usuario) ha sido exitosa. El entorno típico de una
GUI es uno donde los usuarios trabajan aislados, con sus interacciones trabajando en tiempo no
real (ni ahora, ni aquí). Por ejemplo, mandar un mail a otro o interactuar mediante mensajería
instantánea.

A esta altura se debe revisar la definición de una Interfaz Natural de Usuario en relación
a este contexto de discusión. La NUI está definida por 3 elementos:

 Divertida

 Se debe conducir hacia la práctica experta.

 Apropiada para el contexto.

Diaz Gastón, Leschevich Germán 54


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Estos elementos deben estar relacionados o unificados. Una NUI debe tener todos estos
elementos en distintos grados. Los videojuegos son divertidos, pero para algunos no son
aplicables las NUI. Algunos sistemas de entrenamiento conducen hacia la práctica experta, pero
no son NUI.

Hasta aquí se ha considerado la relación entre el entorno contextual y una NUI basada en
gestos. Se describieron las características de los entornos donde una NUI debería ser exitosa, así
como también se ha considerado el entorno dentro de la aplicación. Si se quiere ahondar en las
interfaces basadas en gestos se puede consultar la siguiente bibliografía que se referencia
(Wigdor & Wixon, 2011); (Saffer, 2009); (Más, Yee, & Larrea, 2012)

Diaz Gastón, Leschevich Germán 55


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 3

3 REALIDAD AUMENTADA
La Realidad Aumentada (RA) es una variación de Realidad Virtual (RV). Las
tecnologías de Realidad Virtual sumergen a la persona dentro de un entorno completamente
sintético (virtual), sin tener consciencia del mundo real que lo rodea. Por el contrario, la Realidad
Aumentada permite a la persona ver el mundo real, en el que se superponen objetos virtuales.
Así, la Realidad Aumentada no sustituye la realidad, sino que la complementa, integrando el
mundo real al virtual.

En este capítulo se pretende introducir en el mundo de la Realidad Aumentada, sus


orígenes, sus fundamentos y sus innumerables casos de aplicación. La Realidad Aumentada
ofrece diversas posibilidades de interacción que pueden ser explotadas en diferentes ámbitos de
aplicación. También se analizarán las diferencias con la Realidad Virtual y el concepto de
Realidad Mixta.

Diaz Gastón, Leschevich Germán 56


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.1 INTRODUCCIÓN

3.1.1 ¿QUÉ ES REALIDAD VIRTUAL?

Por definición, la Realidad Virtual (RV) es el conjunto de experiencias sensoriales


sintéticas que comunican componentes físicos y abstractos a un operador.

La mayoría de las aplicaciones de realidad virtual son experiencias visuales donde el


participante se ve inmerso e interactúa en un ambiente o escena virtual (también conocido como
mundo virtual). La escena virtual se ve mediante algún dispositivo de visualización, en algunos
1
casos utilizando visualización estereoscópica la cual brinda la sensación del ambiente
tridimensional.

Una aplicación de RV tiene cuatro características:

 Mundo Virtual.

 Inmersión (mental y física). Introducirse en el mundo virtual.

 Retroalimentación sensorial.

 Interactividad.

La retroalimentación sensorial puede aludir a los diferentes sentidos, comúnmente la


vista (objetos virtuales animados), pero también al oído (sonidos) y el tacto o háptica2.

1
Técnica de grabación de la información visual tridimensional o a la creación de la ilusión de profundidad en una
imagen. La ilusión de profundidad en una fotografía, película, u otra imagen bidimensional son creados presentando
una imagen ligeramente diferente a cada ojo.
2
El término “háptico” o “háptica” es la traducción al castellano del inglés “Haptics”, que se refiere a la ciencia que
estudia todo lo relativo al tacto y sus sensaciones como medio de control e interacción con máquinas y ordenadores.

Diaz Gastón, Leschevich Germán 57


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.1.1.1 Aplicaciones

Uno de los primeros simuladores conocidos que utilizaron realidad virtual es el


denominado “Sensorama” realizado en 1962 por Morton Heilig, un simulador de moto con
imágenes, sonidos, vibraciones e incluso olores.

Figura 3-1 - Primer sistema de RV

En el año 1965 Ivan Sutherland escribe el artículo “The ultimate display” donde
introduce por primera vez el concepto de realidad virtual y describe un dispositivo de
visualización, el cual es un casco que se coloca en la cabeza (en inglés, “Head-Mounted Display”
(HMD)).

Una de las principales aplicaciones actuales de RV son los simuladores de


entrenamiento. El uso de simuladores para entrenar operarios es una práctica que existe
anteriormente al concepto de realidad virtual (ver Figura 3-2). De hecho se puede decir que la
disciplina que primero impulsó el desarrollo de los modelos de visualización en tres dimensiones,
lo cual después dio origen a la realidad virtual, fueron los simuladores de vuelo que requerían las
Fuerzas Armadas Americanas.

En general estos simuladores son instalaciones bastante costosas, que utilizan hardware
específico y modelos de comportamiento muy precisos. Este concepto, sin embargo, ha estado

Diaz Gastón, Leschevich Germán 58


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

cambiando y en la actualidad se ve la utilización de los mismos en todo tipo de áreas y con


herramientas de mucho menor costo.

Figura 3-2 - Simulador de vuelo de un avión Boeing 737

Los sistemas de RV más habituales, según los dispositivos de visualización más


utilizados en la actualidad, son:

 Los cascos o HMD (ver Figura 3-3).

 Las cuevas o cave (ver Figura 3-4).

 Las icon, que son pantallas gigantes (ver Figura 3-5).

 Los WorkBench (ver Figura 3-6).

 El monitor.

Diaz Gastón, Leschevich Germán 59


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-3 - Casco HMD

Figura 3-4 – Cave

Diaz Gastón, Leschevich Germán 60


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-5- Icon

Figura 3-6 - WorkBeach

En todo momento se debe mostrar el mundo virtual de una manera coherente y


consistente de acuerdo al punto de vista que tenga el participante. Por esto se necesita saber en
todo momento la posición y orientación del participante en el mundo virtual. El proceso de

Diaz Gastón, Leschevich Germán 61


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

conocer en cada instante la posición y orientación de un cierto objeto se denomina seguimiento,


en inglés “tracking” (ver la sección 3.4.3 más adelante).

Existen varios libros de RV, como por ejemplo (Burdea & Philippe Coiffet, 2003)
(Craig, Sherman, & Will, 2009) (Gutierrez, M.; Vexo, F.; Thalmann, D., Stepping into Virtual
Reality) (Kim, 2005) (Sherman, 2003).

3.1.2 QUÉ ES REALIDAD AUMENTADA

Según la definición que aparece en una de las primeras publicaciones relevantes sobre
realidad aumentada, la cual debe ser de las más citadas, dice que “una aplicación de realidad
aumentada es una aplicación interactiva que combina la realidad con imágenes sintéticas 3D
registradas en tiempo real” (Azuma R. , 1997).

De acuerdo a esta definición se pueden citar ejemplos de lo que no se consideraría


realidad aumentada:

 Los efectos especiales en películas (ya que no se calculan en tiempo real).

 Una imagen fija aumentada con imágenes sintéticas (ya que no es interactiva).

Desde un punto de vista más amplio, la realidad aumentada es una aplicación


interactiva que combina la realidad con información sintética (tales como imágenes 3D, sonidos,
videos, texto, sensaciones táctiles) en tiempo real y de acuerdo al punto de vista del usuario.

Según el tipo de aplicación, tendrá un dispositivo de visualización adecuado a la misma.


En particular las aplicaciones de realidad aumentada pueden utilizar diferentes dispositivos de
visualización según sea el tipo de aplicación: monitor, proyector, dispositivos de visualización
específicos de realidad aumentada como son las lentes de video “see-through”3 y las lentes de
óptical “see-through” (ver "Sistemas ópticos vs Sistemas de video” más adelante), o dispositivos

3
La traducción de “see-through” significa “ver a través”, ya que las lentes dejan ver la realidad a diferencia de los
dispositivos de realidad virtual.

Diaz Gastón, Leschevich Germán 62


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

hand-held. Los dispositivos hand-held son los dispositivos de manos que incluyen a los actuales
smartphones, Tablet, etc.

Figura 3-7 - Lentes "see through"

Figura 3-8 - Lentes "Google Glasses"

La RA ha experimentado un creciente interés en estos últimos años. En Septiembre de


2009, The Economist aseguró que “intentar imaginar cómo se utilizará la Realidad Aumentada
es como intentar predecir el futuro de la web en 1994”. Según la consultora Juniper Research, la
RA en dispositivos móviles, generará más de 1273 millones de dólares en 2014.

Diaz Gastón, Leschevich Germán 63


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La informática gráfica es un área en continuo desarrollo motivado, entre otros factores,


por los grandes intereses comerciales que la impulsan desde el ámbito de los videojuegos, el cine
y la televisión, las aplicaciones médicas e industriales, simulación, etc... En algunos entornos
puede ser necesario integrar la representación de imagen sintética con imágenes del mundo real.

3.1.2.1 Historia

El primer sistema de Realidad Aumentada fue creado por Ivan Sutherland en 1968,
empleando un casco de visión que permitía ver sencillos objetos 3D renderizados en tiempo real.
Empleaba dos sistemas de tracking para calcular el registro de la cámara; uno mecánico y otro
basado en ultrasonidos (como se ve en la figura a continuación). El mismo se encuentra explicado
en (Sutherland, 1968).

Figura 3-9 - Primer Sistema de Realidad Aumentada de Iván Sutherland en 1968

En el año 1992, los ingenieros Tom Caudell y David Mizell crean el término Realidad
Aumentada (RA) para describir una pantalla que usarían los técnicos electricistas de Boeing que
mezclaba gráficos virtuales con la realidad física, este sistema les permitiría aumentar la
eficiencia de las tareas realizadas por operarios humanos asociadas a la fabricación de aviones
(ver figura siguiente).

Diaz Gastón, Leschevich Germán 64


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-10 - Idea de anteojos "see through" creada por Caudell y Mizell

En 1997, investigadores de la Universidad de Columbia presentan The Touring


Machine, el primer sistema de realidad aumentada móvil (MARS, ver Figura 3-11). Utilizan un
sistema de visión de tipo “see-through” que combina directamente la imagen real con gráficos 2D
y 3D proyectados en una pantalla transparente. (Feiner, MacIntyre, Hollerer, & Anthony, 1997)

Figura 3-11 - Sistema MARS ilustrado a la izquierda, y su resultado a la derecha.

En 1998, el ingeniero de Sony Jun Rekimoto (Rekimoto, 1998) crea un método para
calcular completamente el tracking visual de la cámara (con 6 grados de libertad, este concepto se

Diaz Gastón, Leschevich Germán 65


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

explica en la sección 3.3.2.2 “Dispositivos de tracking”) empleando marcas 2D matriciales


(códigos de barras cuadrados). Esta técnica sería la precursora de otros métodos de tracking
visuales en los próximos años.

Figura 3-12 - Matriz de código (izquierda: original, derecha: reconocida por la cámara)

Figura 3-13 - Método de Rekimoto

En la imagen anterior, se ve el flujo de información del sistema diseñado por Rekimoto.


“La matriz 2D utilizado como patrón, es un código de barras en forma de cuadrado que puede
identificar 216 objetos diferentes. Podemos crear y adjuntar los códigos en un gran número de
objetos del mundo real virtualmente sin costo, ya que los códigos pueden ser impresos por
impresoras láser hogareñas. El sistema de RA reconoce los códigos capturados por la cámara.
Mediante el análisis de la distorsión de la forma rectangular de la trama de código de la matriz,
el sistema calcula la posición y orientación de la cámara de vídeo. Esta información se utiliza

Diaz Gastón, Leschevich Germán 66


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

para agregar nueva información en la imagen capturada por la cámara.” (Rekimoto, 1998). En
las imágenes a continuación se visualiza el resultado del método de Rekimoto.

Figura 3-14 - Patrón de marcas 2D Figura 3-15 - Patrón 2D con Realidad Aumentada

Un año más tarde en 1999, Kato y Billinghurst presentan ARToolKit (Kato &
Billinghurst, 1999), una librería de tracking visual de 6 grados de libertad que reconoce marcas
cuadradas mediante patrones de reconocimiento. Debido a su liberación bajo licencia GPL se
hace muy popular y es ampliamente utilizada en el ámbito de la Realidad Aumentada (ver figura
siguiente.

Figura 3-16 - Cubo generado con ARToolKit

En 2000, un grupo de investigadores de la University of South Australia (Close,


Donoghue, Squires, De Bondi, & Morris, 2000) presentan una extensión de Quake que permite

Diaz Gastón, Leschevich Germán 67


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

jugar en primera persona en escenarios reales. El registro se realizaba empleando una brújula
digital, un receptor de GPS y métodos de visión basados en marcas. Los jugadores debían llevar
un sistema de cómputo portátil en una mochila, un casco de visión estereoscópica y un mando de
dos botones.

Figura 3-17 - AR-Quake

En 2001 se presenta Archeoguide (Vlahakis, y otros, 2001), un sistema financiado por la


Unión Europea para la creación de guías turísticas electrónicas basadas en Realidad Aumentada
(como se ve en la imagen precedente). El sistema proporciona información personalizada basada
en el contexto, y muestra reconstrucciones de edificios y objetos mediante una base de datos
multimedia adaptada al problema. La comunicación se realiza mediante Wifi, y el sistema es
altamente escalable permitiendo diferentes dispositivos de visualización (portátiles, PDA4, etc).

4
PDA, del inglés personal digital assistant, asistente digital personal, es una computadora de bolsillo, organizador
personal o agenda electrónica de bolsillo que luego fueron sustituidos por los actuales dispositivos móviles
“smartphones”.

Diaz Gastón, Leschevich Germán 68


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-18 - Archeoguide

En el 2003, Siemens lanza al mercado Mozzies, el primer juego de Realidad Aumentada


para teléfonos móviles (ver figura anterior). El juego superpone mosquitos a la visión obtenida
del mundo mediante una cámara integrada en el teléfono. Este juego fue premiado como el mejor
videojuego para teléfonos móviles en dicho año.

Figura 3-19 - Mozzies

En 2004 investigadores de la Universidad Nacional de Singapur presentan Human


Pacman (Cheok, y otros, 2004), un juego que emplea GPS y sistemas inerciales para registrar la
posición de los jugadores (ver imagen anterior). El PacMan y los fantasmas son en realidad
jugadores humanos que corren por la ciudad portando computadoras y sistemas de visión.

Diaz Gastón, Leschevich Germán 69


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-20 - Human Pacman

También en el 2004, la Universidad Técnica de Viena presenta el proyecto “Invisible


Train” (como se ve en la figura precedente), el primer juego multiusuario para PDA. Esta
aplicación se ejecutaba totalmente en las PDA, sin necesidad de servidores adicionales para
realizar procesamiento auxiliar. Los jugadores controlan trenes virtuales y deben intentar evitar
que colisione con los trenes de otros jugadores. El proyecto utiliza la biblioteca Studierstube
desarrollada en la misma universidad.

Figura 3-21 - Invisible Train

Diaz Gastón, Leschevich Germán 70


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En 2005 A. Henrysson adapta la biblioteca ARToolKit para poder funcionar en Symbia5,


y crea un juego de Tenis (ver imagen precedente) que gana un premio internacional el mismo
año.

Figura 3-22 - Juego desarrollado por Henrysson

En 2007, Klein y Murray presentan en ISMAR (uno de los principales congresos de


Realidad Aumentada) el algoritmo PTAM (Klein & Murray, 2007); es una adaptación del
SLAM 6 que separa el tracking y el mapping 7 en dos hilos independientes, consiguiendo en
tiempo real unos resultados muy robustos. Con este trabajo consiguieron el premio al mejor
artículo del congreso.

En 2008, Mobilizy crea Wikitude (la cual se ve en la figura anterior), una aplicación que
aumenta la información del mundo real con datos obtenidos de entradas de Wikipedia.
Originalmente sólo estaba disponible para teléfonos Android 8 , aunque actualmente puede
descargarse para otras plataformas (como iPhone entre otras).

5
Symbian es un sistema operativo propiedad de Nokia, que estaba en los dispositivos móviles de dicha marca
6
algoritmo que “deduce la estructura del ambiente y al mismo tiempo establece una correlación de la misma con la
posición y orientación de la cámara”, (Klein & Murray, 2007).
7
El mapeado de texturas establece cómo se sitúa la textura sobre el objeto al momento de proyectarse.
8
Es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con
pantalla táctil, como teléfonos inteligentes o tabletas, y también para relojes inteligentes, televisores y automóviles,

Diaz Gastón, Leschevich Germán 71


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-23 - Wikitude

En 2009, SPRXmobile lanza al mercado una variante de Wikitude llamada Layar, que
utiliza el mismo mecanismo de registro que Wikitude (GPS más Brújula electrónica). Layar
define un sistema de capas que permite representar datos de diversas fuentes globales (como
Wikipedia o Twitter) además de servicios locales (como tiendas, estaciones de transporte público
o guías turísticas). En la actualidad Layar cuenta con más de 100 capas distintas de contenido.

El mismo año se presenta ARhrrrr! (ver imagen precedente), el primer juego con
contenido de alta calidad para smartphone con cámara. El teléfono utiliza la metáfora de ventana
virtual para mostrar un mapa 3D donde disparar a zombies y facilitar la salida a los humanos que
están atrapados en él. El videojuego emplea de forma intensiva la GPU 9 del teléfono delegando
en la tarjeta todos los cálculos salvo el tracking basado en características naturales, que se realiza
en la CPU.

inicialmente desarrollado por Android Inc., que Google respaldó económicamente y más tarde compró esta empresa
en 2005.
9
La unidad de procesamiento gráfico es un coprocesador dedicado al procesamiento de gráficos para aligerar la
carga de trabajo del procesador central en aplicaciones como los videojuegos o aplicaciones 3D interactivas.

Diaz Gastón, Leschevich Germán 72


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-24 - ARhrrrr!

El videojuego de PSP10 Invizimals (el cual se muestra en la figura precedente), creado


por el estudio español Novorama en 2009, alcanza una distribución en Europa en el primer
trimestre de 2010 superior a las 350.000 copias, y más de 8 millones de copias a nivel mundial,
situándose en lo más alto del ránking de ventas. Este juego emplea marcas para registrar la
posición de la cámara empleando tracking visual.

Figura 3-25 - Invizimals

10
Es una consola de videojuegos portátil de Sony.

Diaz Gastón, Leschevich Germán 73


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

A principios de 2010 Adidas lanza al mercado un juego de cinco zapatillas originales de


Realidad Aumentada. Los propietarios de estos modelos podrán enseñar la lengüeta de la
zapatilla a una cámara y aparecerá un mundo 3D de la marca, con posibilidad de jugar a
contenido exclusivo y obtener premios especiales (a modo de objetos 3D).

Actualmente hay innumerables proyectos enfocados en la Realidad Aumentada, al final


del capítulo se visualizaran algunos de ellos y cuál será su futuro.

3.2 REALIDAD AUMENTADA Y REALIDAD VIRTUAL


Los conceptos de realidad aumentada y realidad virtual se relacionan en lo que Paul
Milgram llama la realidad mixta, Milgram creó un nuevo concepto llamado Continuo
Realidad-Virtualidad, (Milgram & Kishino, 1994), explicado más adelante.

3.2.1 REALIDAD MIXTA

La Realidad Aumentada se encarga de estudiar las técnicas que permiten integrar en


tiempo real contenido digital con el mundo real. Según la taxonomía descrita por (Milgram &
Kishino, 1994), los entornos de Realidad Mixta son aquellos en los que “se presentan objetos del
mundo real y objetos virtuales de forma conjunta en una única pantalla”. Esto abre un abanico
de definiciones en la que se sitúan las aplicaciones de Realidad Aumentada.

A diferencia de la RV donde el usuario interactúa en un mundo totalmente virtual, la RA


se ocupa de generar capas de información virtual que deben ser correctamente alternadas con la
imagen del mundo real para lograr una sensación de correcta integración.

El continuo realidad-virtualidad, es una escala que va de lo completamente virtual a


lo completamente real, y que contiene en alguna parte dentro del rango, todas las variaciones
posibles de realidades virtuales, aumentadas, etc.

Diaz Gastón, Leschevich Germán 74


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La virtualidad aumentada se puede describir como el equivalente a la realidad


aumentada para un mundo virtual. Dicho de otra manera; aumentar un mundo virtual con
información real.

Figura 3-26 RA -Taxonomía de realidad mixta

Así, la RA se sitúa entre medio de los entornos reales y los virtuales, encargándose de
construir y alinear objetos virtuales que se integran en un escenario real.

El principal problema con el que deben tratar los sistemas de RA es el denominado


Tracking, que consiste en calcular la posición relativa de la cámara real respecto de la escena
para poder generar imágenes virtuales correctamente alineadas con esa imagen real. Este
registro debe ser preciso (errores de muy pocos milímetros son muy sensibles en determinadas
aplicaciones, como en medicina o en soporte a las aplicaciones industriales) y robusto (debe
funcionar correctamente en todo momento). En la sección 3.4.3 “Tracking” se explica este tema
en detalle.

Diaz Gastón, Leschevich Germán 75


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.2.2 DIFERENCIA ENTRE RA Y RV

La diferencia principal entre Realidad Virtual y Realidad Aumentada es que por una
parte la RV implica inmersión del participante en un mundo totalmente virtual y por otra parte la
RA implica mantenerse en el mundo real con agregados virtuales.

La RV es ideal para:

 Reemplazar al mundo real.

 Simulación, entrenamiento, juegos, etc.

La RA es ideal para:

 Mejorar al mundo real (agregando nueva información).

 Interacciones sofisticadas en el mundo real.

3.3 CARACTERÍSTICAS Y DISPOSITIVOS


Hasta este punto del documento, se definió qué es la Realidad Aumentada y su relación
con la Realidad Virtual. A continuación se describirá con más detalle la Realidad Aumentada.

3.3.1 CARACTERÍSTICAS GENERALES

Como se nombró anteriormente en la definición de (Azuma R. , 1997) y (Azuma, y


otros, 2001), un sistema de RA tiene 3 requerimientos:

 Combina la realidad con información sintética.

 Los objetos virtuales están registrados en el mundo real.

 Es interactivo en tiempo real.

Diaz Gastón, Leschevich Germán 76


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La información virtual tiene que estar vinculada espacialmente al mundo real de manera
coherente, lo que se denomina registro de imágenes. Por esto, se necesita saber en todo momento
la posición del usuario, tracking, con respecto al mundo real.

La combinación de las tres características nombradas precedentemente, hacen que la


Realidad Aumentada sea muy interesante para el usuario ya que complementa y mejora su visión
e interacción del mundo real con información que puede resultarle extremadamente útil a la hora
de realizar ciertas tareas. De hecho, la Realidad Aumentada es considerada como una forma de
“amplificación de la inteligencia” que emplea la computadora para facilitar el trabajo al usuario.

A diferencia de las aplicaciones de RV, las aplicaciones de RA generalmente necesitan


la movilidad del usuario, incluso hacia ambientes externos. En dichas aplicaciones de realidad
aumentada puede ser necesaria conocer la posición global del participante utilizando dispositivos
como GPS y brújulas digitales.

Dependiendo del dispositivo de visualización usado, las aplicaciones de realidad


aumentada pueden basarse en:

 Lentes de video see-through.

 Lentes de optical see-through.

 Proyector.

 Monitor.

 Dispositivos móviles o Hand-Held11.

3.3.1.1 Oclusión

La oclusión es una de las características más importante en los sistemas de RA, la cual
se conoce con el nombre oclusión ambiental, siendo la exposición de los objetos sintéticos

11
La traducción de “hand-held” significa “sostenido con la mano”.

Diaz Gastón, Leschevich Germán 77


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

generados por la computadora a la luz ambiental. La misma se resuelve con una técnica de
renderizado que sirve para calcular cuán expuesto se encuentra cada punto de un objeto sintético
en escena dada a la iluminación ambiental.

Las caras internas de un modelo complejo suelen tener una oclusión mayor, por lo cual
se ven más oscuras que las externas (cuanto mayor es la oclusión, más oscura serán). El valor de
la oclusión ambiental se calcula de manera diferente según el tipo de escena: en los paisajes
naturales, se estima qué porcentaje del cielo puede percibir cada punto; en escenarios interiores,
sólo los objetos que se encuentren a un cierto radio se toman en cuenta, y el origen de la luz
ambiental son las paredes.

Más adelante se hablará de los dispositivos oclusivos, los cuales resuelven el problema
de la oclusión, logrando que los objetos sintéticos generados por la computadora sean lo más real
posible.

3.3.2 COMPONENTES DE UN SISTEMA DE REALIDAD AUMENTADA

Un sistema de RA pueden dividirse en las siguientes partes:

 Dispositivos de entrada.

o Para tracking.

o Mecanismos de entrada de comandos y datos.

 Dispositivos de salida.

o Salida visual.

o Salida auditiva.

o Salida táctil o háptica.

 Aplicación en tiempo real.

o Visualización del mundo virtual (en RV) o mixto (en RA) de acuerdo a la
posición y orientación del participante.

Diaz Gastón, Leschevich Germán 78


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

o Interactividad.

A continuación se detallarán los dispositivos de entrada de comandos, los dispositivos de


tracking y por último los dispositivos de salida.

3.3.2.1 Dispositivos de entrada

Con respecto a los mecanismos de entrada de comandos pueden utilizarse:

 Controles físicos.

 Control del habla.

 Control por gestos.

Las aplicaciones de RA que requieren más movilidad utilizan otro tipo de mecanismos
de entrada. Por ejemplo, las aplicaciones de RA basadas en dispositivos móviles como PDA o
teléfonos celulares suelen utilizan la pantalla táctil o el lápiz para dar entrada a comandos.

El control del habla es un método natural de comunicar la información. No es adecuado


si se necesita una respuesta inmediata, pero resulta muy adecuado si se tienen las manos
ocupadas.

El control por gestos es un método natural de comunicar la información en el que se


basan nuevas metáforas de interacción. Requiere de dispositivos especiales para el tracking o en
su lugar de la aplicación de técnicas de visión por computadora. En la sección 3.4.3.2 “Tracking
videométrico o basado en visión” se explicará más en detalle este tema.

Las interfaces multimodales, es decir, las que combinan diferentes formas de dar entrada
a comandos, suelen ser las más utilizadas actualmente. En (Kölsch, Bane, Höllerer, & Turk,
2006) se analizan qué tipo de control o combinación de ellos (mediante dispositivos, mediante
habla y/o mediante gestos) resulta más adecuado según los parámetros que requiera el tipo de
tarea que se quiera realizar. Los mismos concluyen que en su aplicación:

Diaz Gastón, Leschevich Germán 79


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Aquellas tareas que requieren parámetros adimensionales, es decir, en las cuales


no se debe indicar nada en el espacio, pueden indicarse adecuadamente mediante
el habla.

 Las tareas que requieren parámetros espaciales de una dimensión, como un


desplazamiento en un eje (por ejemplo, indicar un zoom), pueden indicarse
adecuadamente mediante un dispositivo como un trackball unidireccional12.

 Las tareas que requieren parámetros espaciales de dos dimensiones y tres


dimensiones (posicionamiento, escalado y orientación de objetos en el mundo
virtual) requieren utilizar diferentes tipos de entrada combinando gestos,
movimientos de cabeza y trackball unidireccional.

3.3.2.2 Dispositivos de tracking

En aplicaciones de RA se debe realizar el seguimiento o tracking del participante, para


determinar su posición y orientación en el mundo virtual (en aplicaciones de realidad virtual) o en
el mundo real (en el caso de aplicaciones de realidad aumentada).

El movimiento de un usuario u objeto se describe mediante 6 parámetros o grados de


libertad (Degree Of Freedom o DOF):

 3 grados dan la posición (x, y, z) en un sistema de coordenadas de referencia (ver


la sección 3.4.2.1 “Sistema de coordenadas”).

 3 grados dan la rotación (Rx, Ry, Rz) con respecto a los 3 ejes principales X, Y,
Z de un sistema de referencia.

En resumen, si un objeto se puede trasladar y rotar sobre cada uno de los ejes X, Y, Z
ese movimiento es denominado 6 DOF. Si un objeto solo se puede trasladar sobre los ejes X, Y, Z

12
Un trackball es un dispositivo apuntador estacionario compuesto por una bola incrustada en un receptáculo que
contiene sensores que detectan la rotación de la bola en uno o dos ejes. Se explicará más en detalle este dispositivo
en el capítulo 3.

Diaz Gastón, Leschevich Germán 80


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

entonces son 3 DOF, lo mismo pasa en el caso de que el objeto solo puede rotar sobre dichos
ejes.

Para realizar el seguimiento del usuario pueden usarse dispositivos específicos o puede
analizarse una imagen capturada de la realidad para deducir la posición del usuario en base a
elementos del entorno, lo que se denomina tracking basado en visión.

Generalmente, en aplicaciones de realidad virtual y algunas aplicaciones de realidad


aumentada se realiza el tracking de la cabeza para realizar la visualización del mundo virtual o
mixto de acuerdo al punto de vista del participante.

Según la aplicación, el tracking puede realizarse de distintas partes del cuerpo, las cuales
son:

 Cabeza.

 Ojos.

 Mano y dedos.

 Un objeto.

Dependiendo del tipo de aplicación será la precisión que se necesite para determinar la
posición del usuario y, en consecuencia, el tipo de tracking que se realice. Por ejemplo, en
aplicaciones de medicina el tracking puede resultar crítico y por tanto debe ser muy preciso.

En el tracking de la cabeza puede necesitarse conocer solamente su posición o también


su orientación.

EL tracking de ojos, “eye tracking” o seguimiento del ojo permite saber dónde dirige su
mirada una persona y la altura de los ojos.

El tracking de la mano y dedos es necesario para proporcionar al usuario un


mecanismo de interacción con el mundo. DataGlove utiliza un sensor de posición. Tiene sensores
para detectar la flexión de los dedos (5 DOF de resolución).

Diaz Gastón, Leschevich Germán 81


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-27 - DataGlove

En el tracking de objetos algunos de los mismos pueden servir como indicación de la


posición del usuario (por ejemplo, girar un volante indica la posición de las manos) y otros
objetos necesitan un tracking independiente (por ejemplo, una aplicación de RA de entrenamiento
médico que utiliza un bisturí).

En algunas aplicaciones de RA denominadas gravimétricas (Gravimetric AR, ver


imagen siguiente) es necesario conocer la posición y orientación global (latitud, longitud, altitud
y orientación con respecto al Norte).

El tracking nos provee posición y orientación relativa a un cierto sistema de


coordenadas, por ejemplo:

 En una aplicación de RA con marcadores, cuál es la posición y orientación de un


cierto marcador en relación a la cámara que captura la escena.

 En un video de vigilancia, cuál es la posición relativa de una cierta persona en


relación a su posición anterior.

Diaz Gastón, Leschevich Germán 82


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-28 - Gravimetric AR

Tipos de sistemas

Considerando que existirá por una parte un cierto sensor capaz de recolectar datos (por
ejemplo una cámara) y, por otra parte, una fuente emisora de los datos (por ejemplo un patrón),
pueden distinguirse tres tipos de sistemas de tracking según dónde se localicen las fuentes y
sensores:

 Inside-out. Cuando los sensores están ubicados en el objeto en movimiento y las


fuentes están en el ambiente. Un ejemplo de este tipo de sistemas sería cuando la
cámara este ubicada en la cabeza del participante y el patrón en el ambiente
visualizado.

 Outside-in. Cuando los sensores están ubicados en el ambiente y las fuentes


están en el objeto en movimiento. Un ejemplo de este tipo de sistemas sería
cuando la cámara esta fija ubicada en algún lugar del ambiente, y los patrones
están pegados en el participante

 Inside-in. Tanto los sensores como las fuentes están ubicados en el objeto en
movimiento.

Diaz Gastón, Leschevich Germán 83


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Ventajas y desventajas de los principales tipos de tracking

Los dispositivos de tracking posen algún tipo de sensor para realizar el seguimiento del
objeto o participante. En la siguiente tabla se visualizan los principales tipos de sensores, como
así también las ventajas y desventajas entre ellos.

Tabla 3-1 - Tipos de sensores que se encuentran en los dispositivos de tracking

Sensor Tipo de sistema Ventaja Desventajas

Electromagnético Inside-out, ya que los sensores se Se tiene una línea de Normalmente


localizan en el cuerpo del visión directa del funciona con cables.
participante que se mueve en un participante. Si se Los metales pueden
campo electromagnético exterior, colocan múltiples crear interferencias.
que actúa como fuente. sensores se puede El espacio de trabajo
realizar el seguimiento de es reducido.
diferentes articulaciones.

Óptico Outside-in, ya que los sensores Utiliza cámaras de video Necesita visión
externos, por ejemplo las u otros sensores de luz. directa y buena
cámaras, se posicionan en el No necesita cables. Con iluminación.
ambiente exterior para recolectar varias cámaras se puede
datos de fuentes localizadas en el obtener la posición 3D.
cuerpo (puntos reflectantes, por
ejemplo un patrón).

Videométrico Inside-out, ya que se sitúa una Es económico. Necesita elementos de


cámara sobre el participante y se cálculos adicionales o
utilizan puntos de referencia en cableados.
el mundo real para determinar la
posición del mismo.

Diaz Gastón, Leschevich Germán 84


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Ultrasónico A través de múltiples fuentes de No es recomendable


sonidos de alta frecuencia y en ambientes
micrófonos se puede medir el ruidosos. Necesita
tiempo que tarda el sonido para visión directa.
ir de un lugar al otro, y
determinar la posición de cada
micrófono por triangulación.

Inercial Utiliza instrumentos que pueden Son baratos. No precisan Pierden precisión a lo
detectar y medir cambios de punto de referencia. largo del tiempo.
fuerzas giroscópicas (aceleración Funcionan bien
e inclinación). combinados con otros
sistemas.

3.3.2.3 Dispositivos de salida

Los sistemas de realidad aumentada han de proporcionar información del mundo virtual
con respuestas:

 Visuales.

 Auditivas.

 Táctiles.

Para cada una de las diferentes salidas se pueden clasificar en:

 Los medios de interacción.

 Sus propiedades.

 Sus cualidades logísticas.

Diaz Gastón, Leschevich Germán 85


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Salidas visuales

Clasificación por medios de interacción

Según los medios de interacción de los dispositivos de visualización se clasifican en:

 Estacionarios o estáticos. Son aquellos dispositivos que se encuentras estáticos


en un lugar, como por ejemplo el monitor o el proyector.

 Móviles oclusivos. Son aquellos dispositivos que se pueden trasladar con el


participante y que resuelven el problema de la oclusión, como por ejemplo el
casco HMD o las lentes video “see-through” (el término oclusión se explicó en la
sección 3.3.1.1 “Oclusión”).

 Móviles no oclusivos. Son del mismo tipo que los anteriores, pero no resuelven
el problema de la oclusión, como por ejemplo los dispositivos Hand-Held y las
lentes optical “see-through”.

Características

Los dispositivos de visualización se diferencian según las siguientes propiedades:

 Resolución, color, contraste, brillo.

 Número de canales. Los canales capturan ciertos datos del dispositivo, por
ejemplo una cámara de video a color posee tres canales, uno para cada color
primario.

 Distancia focal. La distancia focal del lente en estos dispositivos, es la distancia


entre el centro óptico de la lente y el foco (o punto focal). En este caso el punto
focal pueden ser el objeto en movimiento, algún patrón, o características del
ambiente.

 Campo de visión y campo de mirada. El campo de visión mide la amplitud y la


altura angular de la visión del usuario, y se mide en porcentaje o ángulos. La
visión humana es de 200 grados en total, con 130 grados de solapamiento; la

Diaz Gastón, Leschevich Germán 86


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

visión túnel es de 60 grados o menos; y los cascos de RV suelen cubrir 100


grados, con 60 de solapamiento.

 Opacidad. La opacidad es el nivel de aislamiento visual del mundo real.

 Latencia y velocidad de refresco. Son en conjunto el tiempo de respuesta del


dispositivo para procesar cada frame.

Clasificación por cualidades

Los dispositivos de visualización también se diferencian según las siguientes cualidades


logísticas:

 Movilidad del usuario.

 Interfaz con el tracking.

 Requisitos del entorno.

 Portabilidad.

 Seguridad.

 Costo.

La movilidad del usuario tiene un gran efecto en la inmersión mental y en la utilidad del
sistema. Los requisitos del entorno son las condiciones necesarias para una buena experiencia de
RV. Las imágenes proyectadas requieren que haya poca luz; las grandes pantallas estáticas
necesitan mucho espacio; y los dispositivos móviles trabajan mejor en lugares pequeños.

Diaz Gastón, Leschevich Germán 87


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Tabla 3-2 - Dispositivos de visualización

Dispositivo de visualización Aplicación Descripción

Cave RV Estáticos. Costo elevado.


Campos de visión y de mirada
amplios. Inmersivos. Mayor
resolución. Mayor campo de
visión. Mayor tiempo de
inmersión. Más seguridad.
Mejor para grupos.

Monitor RA y RV Estáticos. Pocos


componentes/bajo costo. Fácil
instalación. Dispositivos de
interacción disponibles.
Campos de visión y de mirada
limitados. Poco inmersivos.

HMD Video see-through RA y RV Oclusivos. Pantallas pequeñas


y transportables. La inmersión
fundamental se basa en la
orientación de la cabeza. El
campo de mirada es del 100%.
Tiene un importante rango de
resoluciones. Normalmente, le
falta campo de visión. Fatiga
visual.

HMD Optical see-trough RA No oclusivos. Simplicidad.


Alta seguridad. El tracking
debe estar bien sincronizado.
Difícil tratamiento de las
oclusiones.

Diaz Gastón, Leschevich Germán 88


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Proyector RA y RV Estáticos. Pocos


componentes/alto costo. Difícil
instalación. Dispositivos de
interacción disponibles.
Campo de mirada limitado.
Poco inmersivos.

HandHeld RA No oclusivos. Menor costo.


Campo de mirada del 100%.
Más portabilidad. Menos
espacio. Pueden ocultar el
mundo real. No importa la
iluminación.

Monitor

Figura 3-29 - Esquema del monitor

Diaz Gastón, Leschevich Germán 89


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Hand-Held

Figura 3-30 - Esquema de Hand-Held, similar al del monitor

Lentes o Lentes “optical see-through”

Figura 3-31 – Lentes optical “see through"

Diaz Gastón, Leschevich Germán 90


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-32 - Esquema de los lentes optical “see through"

Lentes o Lentes “video see-through”

Figura 3-33 - Lentes video “see-through”

Diaz Gastón, Leschevich Germán 91


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-34 -Esquema de los lentes video “see-through”

Sistemas ópticos vs Sistemas de video

(Azuma R. , 1997) Resume las diferentes ventajas y desventajas entre los dispositivos
optical “see-through” (ópticos o sistemas ópticos) y video “see-through” (video o sistemas de
video). Por un lado, los dispositivos de video presentan la gran ventaja de la flexibilidad en la
composición o mezcla (blending13) del video real con el sintético. Un problema básico de los
sistemas ópticos es que los objetos virtuales no tapan completamente los objetos reales, esto
ocurre por la forma en que funcionan los combinadores ópticos que permiten luz del mundo real
y del virtual. Hacer un sistema óptico que selectivamente apague la luz del mundo real, aumenta
la complejidad del diseño. Los objetos virtuales aparecen semitransparentes y esto puede dañar la
ilusión de realidad, si se requiere. En contrastes, el sistema de video es más flexible en cómo
mezcla el mundo real y el virtual, ya que ambos están disponibles en forma digital. Se puede
componer pixel a pixel tomando o bien el mundo real o el virtual, o mezclándolos si se quiere
sensación de transparencia.

13
Se refiere a la mezcla o composición de los stream del video real con el video sintético.

Diaz Gastón, Leschevich Germán 92


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Los sistemas ópticos ofrecen una vista instantánea del mundo real, pero una vista
retrasada del mundo virtual, y esta incoherencia temporal puede causar problemas. Otra de las
ventajas de los sistemas de video es que es posible retrasar el video del mundo real para coincidir
con el retraso del stream del mundo virtual.

En los sistemas ópticos, la única información acerca de la ubicación de la cabeza del


usuario viene del dispositivo de tracking de cabeza. Por otra parte, en los sistemas de video, se
tiene otra fuente de información: la imagen digitalizada del mundo real, con lo cual pueden
usarse técnicas de visión para el registro de imágenes, cuestión que no estaría disponible en los
sistemas ópticos,

Los sistemas de video limitan la resolución de lo que el usuario ve, tanto real como
virtual, a la resolución del dispositivo. Por otra parte, los sistemas ópticos también muestran los
gráficos con la resolución del dispositivo, pero el usuario ve la realidad sin degradarse.

Con respecto a la seguridad, los sistemas de video usados en RA son cascos HMD de
RV modificados. Si se corta la electricidad, el participante estará ciego y esta es una cuestión
concerniente a la seguridad en algunas aplicaciones. En contraste, utilizando un sistema óptico el
usuario tiene la vista del mundo real y por esto se considera más seguro.

Ambas tecnologías, óptica y video, tienen sus roles y la elección depende de los
requerimientos de la aplicación. En aplicaciones de reparación se usan generalmente los sistemas
ópticos, posiblemente por cuestiones de seguridad. Por otra parte, en aplicaciones médicas suelen
usarse los sistemas de video, probablemente por la flexibilidad en la mezcla del mundo real y
virtual y por las estrategias adicionales de registro de imágenes.

Salidas auditivas

Los dispositivos de salida auditiva se clasifican según los medios de interacción:

 Estacionarios o estáticos (altavoces).

 Móviles (auriculares).

Diaz Gastón, Leschevich Germán 93


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Las propiedades de los dispositivos de salida auditiva son: el número de canales, el


entorno de sonido, la localización, la oclusión y la amplificación.

Con respecto al número de canales, si se tienen diferentes sonidos en cada oído se tiene
información sobre la procedencia del sonido. Se denomina sonido monofónico si se tiene la
misma señal en cada oído, mientras que sonido estereofónico implica diferentes señales para cada
oído.

El concepto de entorno del sonido hace alusión a la fuente de donde parece originarse el
sonido. La localización es la habilidad del cerebro para determinar la procedencia del sonido. La
espacialización es la habilidad tecnológica para hacer que el sonido parezca venir de un punto
determinado del espacio.

En relación a la oclusión puede decirse que los altavoces no pueden ocultar de una
manera efectiva los sonidos del mundo real, mientras que los auriculares cerrados son el mejor
mecanismo para experiencias en las que el participante únicamente debe oír sonidos del mundo
virtual.

Las cualidades logísticas de los dispositivos de salida auditiva son: la contaminación por
ruido, la movilidad del usuario, los requisitos del entorno, la portabilidad, la seguridad y el costo.

En cuanto a los requisitos del entorno, las salas cuadradas pueden ser un problema para
los altavoces. Los campos magnéticos de los altavoces y los auriculares pueden causar
interferencias con los sensores. Los sonidos altos pueden interferir con los dispositivos de
tracking de ultrasonidos.

Entre las ventajas de los altavoces se pueden señalar las siguientes:

 Trabajan bien con los visualizadores estacionarios.

 No requieren el procesado del sonido para crear sonidos referenciados al mundo


(estables en el mundo virtual).

 Permiten más movilidad al usuario (cables).

Diaz Gastón, Leschevich Germán 94


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Algunas de las ventajas de los auriculares son:

 Trabajan bien con los visualizadores dinámicos.

 La implementación de sonidos referenciados a la cabeza es más fácil de


implementar.

 Es más sencillo eliminar los ruidos de la habitación.

 Son más portables.

 Privados.

Salidas táctiles

Según los medios de interacción de los dispositivos de salida táctil se clasifican en:

 Percepción kinestética. La percepción kinestética es la capacidad de saber


dónde está ubicada cada parte del cuerpo en relación a su propio eje y al espacio
inmediato vinculado con los objetos que lo rodean, permitiendo realizar los
movimientos necesarios para una actividad.

 Percepción táctil.

Las propiedades de los dispositivos de salida táctil son: pistas kinestéticas, pistas
táctiles, fidelidad, latencia, contacto, resolución, grados de libertad, refresco, forma y tamaño.

Las pistas kinestéticas se relacionan con los ángulos de las articulaciones, los músculos,
la tensión y resistencia. Las mismas ayudan a determinar la solidez, forma aproximada y fuerzas
físicas. Las pistas táctiles son receptores sensoriales en la piel: Existen mecanoreceptores (forma
y textura), termoreceptores (transferencia calor), electroreceptores (flujo de corriente) y
nociceptores (daño en los tejidos).

Con respecto al contacto, hay que indicar que los sensores de fuerza y resistencia
necesitan un punto de contacto. Pueden limitar tanto el movimiento del propio cuerpo del
participante, como el movimiento del participante respecto al mundo. Los grados de libertad

Diaz Gastón, Leschevich Germán 95


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

están asociados al tipo de movimiento que permiten: 6 DOF si el movimiento no está limitado; 1
DOF si permite abrir o cerrar un dedo; 2 DOF igual que el anterior más giro permitido; 3 DOF si
nos da la posición (x, y, z) de la punta del dedo.

Las cualidades logísticas de los dispositivos de salida táctil son: la movilidad del
usuario, los requisitos del entorno, la portabilidad, la seguridad y el costo.

Figura 3-35 - Ejemplos de salidas táctiles

Como requisitos del entorno, a veces, para dispositivos hidráulicos o de aire


comprimido, es necesario usar habitaciones especiales. Los dispositivos más pequeños pueden
funcionar sobre escritorios o incluso en la mano del mismo participante.

En cuanto a la seguridad, los dispositivos de temperatura son peligrosos y suelen


incorporar interruptores de seguridad.

Si se habla del costo de los dispositivos, hay que señalar que generalmente son muy
costosos. Existen excepciones que son los dispositivos utilizados para juegos como volantes con
fuerza, joysticks y controladores de juegos, los cuales pueden adquirirse a precios razonables.

Diaz Gastón, Leschevich Germán 96


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.4 FUNDAMENTOS TEÓRICOS


Como se mencionó anteriormente, la primer definición de realidad aumentada fue
realizada por Azuma, “Una aplicación de realidad aumentada es una aplicación interactiva que
combina la realidad con imágenes sintéticas 3D registradas en tiempo real…” (Azuma R. , 1997).
Luego, con el paso de los años, esta definición fue refinándose hasta lo que se conoce
actualmente como Realidad Aumentada.

La realidad aumentada es una aplicación interactiva que combina la realidad con


información sintética (tal como imágenes 3D, sonidos, videos, texto, sensaciones táctiles) en
tiempo real y de acuerdo al punto de vista del usuario.

La aparición de la librería de código abierto ARToolkit en el año 1999 dio lugar a un


gran crecimiento en el desarrollo de aplicaciones de realidad aumentada.

En los últimos años, aparecieron una serie de nuevas aplicaciones que brindan
información al usuario de acuerdo a su posición geográfica obtenida vía GPS. Recientemente los
servicios basados en la localización se vincularon con el campo de realidad aumentada dando
lugar a la denominada realidad aumentada gravimétrica (Gravimetric AR). Utilizan tanto el GPS
y los sensores integrados para la localización de usuario, como también algoritmos de visión para
el tracking, reconocimiento y visualización de información sobre los objetos reales.

Otro gran avance en Realidad Aumentada esta ejemplificado en la aplicación Google


Goggles14, la cual permite capturar un objeto y, en base a la imagen capturada, se realiza una
búsqueda en la base de datos de Google para visualizar información sobre el mismo.

14
http://www.google.com/mobile/goggles.

Diaz Gastón, Leschevich Germán 97


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.4.1 DIAGRAMA DE UNA APLICACIÓN DE RA

Una aplicación de realidad aumentada tiene tres partes principales que son:

 Tracking.

 Recuperación de información.

 Salida de información.

En adelante se hará referencia al tipo de aplicación de realidad aumentada donde las


salidas son visuales.

La
Figura 3-36 muestra un diagrama de las diferentes partes involucradas en una aplicación de
realidad aumentada visual:

 Captura de la escena real. La escena real es capturada mediante la cámara. El


video capturado puede utilizarse para tracking basado en visión, es decir basado
en el análisis de la imagen mediante algoritmos de visión. También es necesaria
la captura, si la visualización se realiza de forma indirecta en dispositivos de
video “see-trough”, monitor o dispositivos “Hand-Held”.

 Tracking del participante. Puede realizarse mediante dispositivos específicos o


puede realizarse tracking basado en visión para lo cual es necesaria la captura de
la escena real.

 Generador de la escena virtual. Se tiene un mundo virtual, con la información


de la posición y orientación del participante se genera una vista acorde del
mismo.

 Combinación del mundo virtual y la escena real. En los casos en los que
existe una visión directa del mundo real, la combinación se realiza directamente
en el ojo del participante. En otro caso, se realiza un video resultado de la escena
capturada y la escena sintética proyectada.

Diaz Gastón, Leschevich Germán 98


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-36- Diagrama de las partes de una aplicación de realidad aumentada

Los dispositivos de visualización influyen de cierta manera en las distintas partes de una
aplicación de realidad aumentada, lo cual se muestra a continuación:

Tabla 3-3 - Dispositivos de visualización en las aplicaciones de RA

Dispositivo Captura Tracking Generador escena Combinador

Dispositivos Visión directa Cabeza mediante Software para PC. Proyección de la


ópticos “see- sensores escena sintética en
through” (generalmente las lentes
electromagnéticos). transparentes.
Combinación la
realiza el ojo.

Diaz Gastón, Leschevich Germán 99


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Dispositivos de Cámara captura el Cabeza o cámara Software para PC. Generación y


video “see- video real. mediante sensores visualización de
through” o basado en visión. video combinando
la captura y la
proyección de la
escena sintética.

Proyector Visión directa. Opcional según la Software para PC. Proyección de la


Captura si se usa aplicación. escena sintética
Tracking basado sobre la escena
en visión. real, Combinación
la realiza el ojo.

Monitor Cámara captura el Tracking de la Software para PC. Generación y


video real. cámara. visualización de
Generalmente video combinando
basado en visión. la captura y la
proyección de la
escena sintética.

Hand-held Cámara captura el Tracking de la Software para Generación y


video real. cámara. Basado en móviles. visualización de
visión o mediante video combinando
sensores (GPS y la captura y la
brújula digital; proyección de la
sensores inerciales escena sintética.
como
acelerómetros 15 y
giroscopios16).

15
Se denomina acelerómetro a cualquier instrumento destinado a medir aceleraciones.

Diaz Gastón, Leschevich Germán 100


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.4.2 GENERACIÓN DE LA IMAGEN AUMENTADA

Para la formación de imágenes se distinguen los siguientes procesos:

 Sistemas de referencia.

 Transformaciones geométricas.

 Transformación de proyección.

 Proceso de formación de imágenes.

Para generar una imagen 2D a partir de un objeto 3D, convierte cada punto 3D del
objeto en un píxel de la imagen 2D. Este proceso puede expresarse matemáticamente.

Figura 3-37 - Proceso de la formación de imágenes

El mundo 3D está compuesto por objetos situados en ciertas posiciones y orientaciones.


Puede ser real o sintético.

16
El giroscopio, es un dispositivo mecánico que sirve para medir, mantener o cambiar la orientación en el espacio
de algún aparato o vehículo.

Diaz Gastón, Leschevich Germán 101


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La cámara, captura la escena desde una cierta posición y orientación. Puede ser una
cámara real en caso de estar sacando una foto o puede ser una cámara sintética en caso de estar
visualizando un modelo virtual.

La imagen formada es el resultado de una proyección que realiza la cámara. La imagen


se forma en el plano de proyección. En una cámara real, la imagen formada en el plano de
proyección está “invertida”.

En imágenes sintéticas se elige tener en cuenta la imagen que se forma en un plano


situado delante de la cámara.

3.4.2.1 Sistema de coordenadas

En el proceso de formación de imágenes, reales o sintéticas, existe:

 Una escena compuesta por diversos objetos (en diferentes posiciones y


orientaciones).

 Una cámara, con una cierta posición y orientación en la escena.

 Una imagen resultante de proyectar la escena de acuerdo a la cámara.

Anteriormente, se dijo que el mundo 3D está compuesto por objetos situados en


diferentes posiciones y orientaciones. También la cámara está situada en cierta posición y
orientación. Cuando se habla de posiciones y orientaciones es necesario establecer en relación a
que nos referimos, para lo cual se necesita un sistema de referencia.

Cuando se habla de posición y orientación de un objeto o de una cámara, deber existir un


sistema de referencia en base al cual se expresan. En realidad aumentada, hablar de imágenes
registradas significa que tanto las imágenes sintéticas como el mundo real se encuentran en
referencia al mismo sistema de coordenadas (ver imagen siguiente).

Diaz Gastón, Leschevich Germán 102


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-38 - Proceso del sistema de coordenadas

La posición y orientación de los objetos reales o sintéticos suele expresarse en relación a


un sistema de coordenadas 3D situado en algún lugar del mundo.

El sistema de coordenadas cámara 3D tiene el origen en el centro óptico y el eje Z


alineado con el eje de proyección.

Los puntos de la imagen se expresan en relación a un sistema de coordenadas 2D con


los ejes alineados con los bordes de la imagen y el centro en una esquina o en el centro de la
imagen.

3.4.2.2 Transformaciones geométricas y de proyección

Las imágenes se forman mediante una proyección que transforma un punto 3D del
mundo a un punto 2D de la imagen. Cada punto Pn expresado en el sistema de coordenadas, se
proyecta según el modelo de la cámara y tiene su correspondiente en la imagen proyectada 2D.
Para más información sobre las transformaciones geométricas y de proyección, consultar la
siguiente bibliografía (Haller, Billinghurst, & Thomas, 2006).

Diaz Gastón, Leschevich Germán 103


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.4.2.3 Formación de la imagen aumentada

Conocidas las matrices, se aplica el proceso descripto para computación gráfica para
generar la imagen sintética que se combinará con la escena real.

Este proceso se realiza en cada instante ya que la posición y orientación del usuario
pueden cambiar continuamente.

3.4.3 TRACKING

Como se definió anteriormente, el tracking es el proceso de seguimiento de un objeto en


movimiento, es decir, la estimación de la posición y orientación del mismo en cada instante.

En una aplicación de realidad aumentada, se necesita el tracking del participante para


conocer la matriz de transformaciones geométricas y así realizar el registro de imágenes sintéticas
y reales.

En la mayoría de las aplicaciones de realidad aumentada se trata de realizar un tracking


de la cámara que captura la escena. Aunque también puede tratarse del tracking de la cabeza del
usuario o de algún objeto manipulado por este.

El tracking completo estima los 6 DOF, 3 DOF para las translaciones y 3 DOF para las
rotaciones sobre los ejes X, Y, Z.

Según la el tipo de aplicación, es interesante conocer:

 La posición y orientación de la cámara en un sistema de coordenadas global.

 La posición y orientación de la cámara en relación a un objeto de la escena real


en cuestión.

 La posición y orientación de la cámara en relación a la posición y orientación del


cuadro de video anterior.

El Tracking puede clasificarse según la tecnología con la que se realice:

Diaz Gastón, Leschevich Germán 104


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Tracking basado en dispositivos.

 Tracking basado en visión.

 Tracking híbrido.

3.4.3.1 Tracking basado en dispositivos

Los dispositivos que tracking que existen son:

 Electromagnético.

 Mecánico.

 Óptico.

 Ultrasónico.

 Neuromuscular.

 Inercial.

 GPS

Sistema Electromagnético

Denominado Inside-out, ya que los sensores están en el cuerpo (inside) y recolectan


datos de fuentes externas (out). Los sensores del cuerpo se mueven en un campo
electromagnético exterior. Generalmente es utilizado en algunas aplicaciones de realidad virtual
de ambiente controlado.

Posee una relación entre un gran transmisor y un pequeño receptor, además no es


necesaria una línea de visión directa. Múltiples receptores permiten el seguimiento de diferentes
articulaciones, y normalmente funciona con cables. A la hora de utilizarlos, hay que tener en
cuenta que los metales pueden crear interferencias, y que el espacio de trabajo es reducido.

Diaz Gastón, Leschevich Germán 105


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 3-39 - Tracking Electromagnético

Sistema Mecánico

Denominado Inside-in, ya que tanto los sensores como las fuentes están localizados en el
cuerpo. Trajes electromecánicos: los sensores son potenciómetros y las fuentes son las
articulaciones reales del cuerpo que presionan sobre ellos. Utilizado en algunas aplicaciones de
realidad virtual de ambiente controlado.

Es muy rápido y preciso, pero a la vez incómodo para el usuario y sus movimientos son
limitados.

Figura 3-40 - Tracking Mecánico

Diaz Gastón, Leschevich Germán 106


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Sistema Óptico

Los sistemas ópticos son llamados Outside-in: sensores externos (outside) para
recolectar datos de fuentes localizadas en el cuerpo (in). Sistemas basados en cámaras: las
cámaras son los sensores que capturan los marcadores reflectivos que actúan como fuentes. Se
usan para captura de movimiento para realizar animaciones.

Utiliza cámaras de video u otros sensores de luz para determinar la posición del usuario.
No necesita cables. Con varias cámaras se puede obtener la posición 3D. Necesita visión directa y
buena iluminación (ver Figura 3-41).

Figura 3-41 - Tracking óptico

Sistema Ultrasónico

Utiliza sonidos de alta frecuencia. A través de fuentes localizadas en el sujeto en


movimiento y receptores localizados en el ambiente se puede estimar la posición del participante
midiendo el tiempo de retardo del sonido recibido en los diferentes receptores. No es efectivo
utilizarlo en ambientes ruidosos, suele implementarse en interiores.

Diaz Gastón, Leschevich Germán 107


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Sistema Inercial

Los acelerómetros y giroscopios permiten conocer aceleración y velocidad de rotación, a


partir de las cuales puede conocerse los 6 DOF de la pose. Las ventajas de este tipo de
dispositivos radican en su rapidez y su buena respuesta a cambios bruscos. Sin embargo, su
principal desventaja suele ser la acumulación de errores debido al ruido, y por esto cada cierto
tiempo deben recalibrase.

Sistema por GPS

GPS (Global Positional System), nos da la latitud y longitud en el sistema de


coordenadas global que puede usarse para consultar un Sistema de Información Geográfica
(SIG). El GPS brinda los 3 DOF de la traslación. Para mejorar la exactitud del valor que brinda
puede usarse lo que se denomina GPS diferencial, donde una estación base de la cual se conoce
su localización con exactitud, computa y transmite el error introducido el cual es utilizado por el
receptor GPS para corregir su posición. Para obtener los 6 DOF se necesita combinarlo con otro
dispositivo que brinde los 3 DOF de la rotación como una brújula.

Sistema por brújula digital

Brújula digital: al igual que una brújula convencional brinda la orientación en un sistema
global (3 DOF). Las brújulas que se encuentran en los teléfonos móviles son denominadas
brújulas de estado sólido, generalmente construidas mediante sensores de campo magnético que
envían señales a un microprocesador.

Generalmente se combina con el GPS para obtener los 6 DOF del movimiento del
dispositivo. La ventaja con respecto al uso de sensores inerciales es que brindan un resultado con
error constante, el cual puede precalibrarse durante la instalación del sistema.

3.4.3.2 Tracking videométrico o basado en visión

En lugar de utilizar dispositivos físicos específicos para tracking, la posición y


orientación de la cámara en la escena real, puede estimarse analizando el video capturado por una

Diaz Gastón, Leschevich Germán 108


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

cámara utilizando técnicas de visión por computadora. Se trata de buscar en la imagen elementos
de la escena real que permitan deducir la posición y orientación de la cámara en relación a una
cierta referencia (o de forma equivalente la posición y orientación de los objetos en relación a la
cámara). Según la aplicación, puede tratarse de una cámara integrada al participante en
movimiento, o de una cámara fija en una escena con objetos en movimiento.

En resumen, la cámara captura video de la escena real, el cual es analizado cuadro a


cuadro por medio de algoritmos de visión por computadora, para localizar características
(elementos de referencia en el mundo real) que ayuden a deducir el cambio de posición y
orientación de la cámara en cada instante.

Flujo de trabajo

El flujo de trabajo de una aplicación de RA con tracking basado en visión es:

Carga de la Definir matriz de


escena virtual proyección

Pre-Procesamiento

Inicializaciones

Calibración de la Modelado de la
cámara escena virtual Procesamiento

Visualización de la
Procesamiento de
escena aumentada
cada cuadro

Estimación de la posición
y orientación de la Captura de cuadro de

cámara video

Figura 3-42 - Flujo de trabajo de una aplicación de RA con tracking basado en visión

Diaz Gastón, Leschevich Germán 109


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La etapa de preprocesamiento se realiza “fuera de línea” y consiste en dos partes bien


diferenciadas e independientes: por un lado la calibración de la cámara y por otra el modelado de
la escena virtual.

El proceso de calibración permite estimar los parámetros intrínsecos de la cámara que


captura la escena.

Conocidos ciertos parámetros (como la distancia focal, la relación de aspecto del píxel,
el centro de la imagen) puede definirse la matriz de proyección a utilizar para la formación de la
imagen aumentada, de forma que la cámara virtual tenga las mismas características que la cámara
real. Además, mediante la calibración, puede conocerse la distorsión que realiza la cámara en las
imágenes y de esta forma poder realizar un procedimiento de anulación de la distorsión si así se
desea.

Dado que se quiere aumentar la escena real con objetos virtuales, se debe modelar
previamente una escena 2D o 3D utilizando algún editor gráfico 2D o 3D.

El proceso de la aplicación en tiempo real es un ciclo donde se capturan cuadros de


video, se analiza para estimar la posición y orientación de la cámara con respecto a la escena
real y se visualiza la escena aumentada.

En definitiva, el tracking basado en visión es la estimación de la posición y orientación


de la cámara, o la estimación de la posición y orientación de los objetos de la escena en relación
a la cámara. Como resultado de esta estimación, se define la matriz de transformaciones
geométricas que se aplicará a la escena virtual en la visualización.

Clasificación de los tracking basados en visión

Existen diferentes estrategias usadas para tracking basado en visión, las cuales son:

 Tracking de marcadores. También denominado “Tracking basado en patrones”.

 Tracking de una imagen. También conocido como “Tracking basado en


características naturales con conocimiento de la escena”.

Diaz Gastón, Leschevich Germán 110


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Tracking sin conocer la escena real. También conocido como “Tracking


basado en características naturales sin conocimiento de la escena”.

El tracking de marcadores fue la primera estrategia utilizada y consiste en introducir uno


o más marcadores conocidos en la escena real para superponer objetos virtuales o utilizarlos
como interfaz tangible. Dado que puede resultar molesto o indeseable el agregar marcadores
visibles a la escena, recientemente la investigación se derivó a encontrar otros algoritmos de
tracking basado en visión que exploren la presencia de características naturales en la misma
(puntos, líneas, bordes, texturas) evitando la introducción de marcadores.

Tracking de marcadores

Un marcador o patrón es una imagen 2D impresa con un formato específico conocido


por la aplicación de tracking.

A continuación en la imagen se pueden ver diferentes tipos de marcadores. Los


marcadores son muy conocidos dado que son los utilizados por la librería de realidad aumentada
ARToolkit, que fue la primera librería que popularizó las aplicaciones de realidad aumentada. El
formato es un cuadrado negro y dentro un cuadrado blanco que tiene dentro una imagen
asimétrica en negro. Es posible crear nuevos marcadores respetando este formato y entrenando
previamente a la aplicación para incorporar el marcador a la base de datos de marcadores
conocidos.

Figura 3-43 - Tipos de marcadores en función de la librería utilizada

Diaz Gastón, Leschevich Germán 111


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Tracking basados en características naturales con conocimiento de la escena

Con el objetivo de evitar invadir una escena con marcadores, surgieron las técnicas de
tracking basado en características naturales, las cuales se basan en la localización de
características naturales de la escena como puntos, líneas, bordes o texturas.

Tracking basados en características naturales sin conocimiento de la escena

Las técnicas descriptas anteriormente están basadas en el conocimiento de la escena.


Actualmente un problema recurrente en aplicaciones de realidad aumentada es realizar el tracking
en escenas desconocidas (total o parcialmente). En este caso, no solo debe estimarse la posición
de la cámara sino que también debe realizarse un mapa del ambiente desconocido. En la
actualidad, existen varios algoritmos que resuelven el problema mencionado, los cuales se basan
en el algoritmo de SLAM (“Simultaneous Localisation and Mapping”, “Localización y Mapeo
Simultaneo”). “Deduce la estructura del ambiente y al mismo tiempo establece una correlación
de la misma con la posición y orientación de la cámara” (Klein & Murray, 2007). Para más
información sobre dichos de algoritmos, consulte la bibliografía mencionada.

3.4.3.3 Tracking híbrido

Tanto el tracking basado en dispositivos físicos como el tracking basado en visión tienen
sus ventajas y desventajas:

 El tracking basado en visión es lento y por ende falla en movimientos rápidos. Su


ventaja es su estabilidad a largo plazo.

 El tracking inercial es rápido pero puede tener acumulación de errores a largo


plazo.

Para aprovechar las ventajas de ambos, algunas técnicas combinan la salida de


dispositivos físicos y el análisis de video.

Diaz Gastón, Leschevich Germán 112


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.4.3.4 Resumen de las técnicas de tracking

A continuación, se presenta una tabla resumen con las diferentes alternativas de tracking
en aplicaciones de realidad aumentada.

Figura 3-44 - Alternativas de tracking en aplicaciones de realidad aumentada

Diaz Gastón, Leschevich Germán 113


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.5 REALIDAD AUMENTADA EN DISPOSITIVOS MÓVILES


En la introducción del presente capítulo se nombró algunos proyectos realizados para
dispositivos móviles con realidad aumentada.

Las aplicaciones de realidad aumentada móvil siguen el modelo de dispositivo sostenido


Hand-Held. Estos dispositivos cuentan con cámara integrada y opcionalmente dispositivos para
tracking integrados como GPS, acelerómetro, giroscopio, brújula.

3.5.1 CARACTERÍSTICAS DE HARDWARE Y SOFTWARE

En los últimos años la tecnología en los dispositivos Hand-Held ha crecido


exponencialmente, en los cuales se puede encontrar equipos con CPU de 4 y 8 núcleos, Memoria
RAM de más de 2GB, GPU integrada, Memorias SD de más de 64GB, etc. Con estas
especificaciones técnicas, los problemas que presentaba el hardware de estos dispositivos para
generar aplicaciones con RA, fueron solucionados.

Este gran crecimiento tecnológico y las mejores capacidades del nuevo hardware, le
permitió a la industria idealizar similitudes de capacidad de procesamiento de dichos dispositivos
con respecto al de las computadoras, con lo cual se empezaron a ver los dispositivos hand-held
como si fueran computadoras. Con esta nueva realidad, surgieron nuevas plataformas móviles,
como es el caso de Android, Windows Phone y IOS. Debido a esto, actualmente existen muchas
empresas generando contenido para dichas plataformas, dentro de las cuales se incluyeron
aplicaciones con RA, casi sin limitaciones en cuanto al hardware.

3.6 APLICACIONES
La importancia de la Realidad Aumentada queda patente con el enorme interés que ha
generado en los últimos años. Un indicador que puede ser significativo es la tendencia de
búsqueda en la web. Desde Junio de 2009 la búsqueda por “Augmented Reality” supera el
número de búsquedas realizadas con la cadena “Virtual Reality”.

Diaz Gastón, Leschevich Germán 114


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Una de las principales causas del crecimiento del uso de la Realidad Aumentada es
debido a al avance tecnológico en el hardware de los distintos dispositivos analizados.

3.6.1 CAMPOS DE APLICACIÓN

Existen múltiples ámbitos de aplicación para la realidad aumentada. En su revisión del


estado del arte de 1997 (Azuma R. , 1997), Azuma ya identificaba diversos campos donde era
aplicable la Realidad Aumentada. A continuación se mencionarán los ámbitos más importantes
donde se puede implementar un sistema con Realidad Aumentada, aunque prácticamente en
cualquier área de trabajo puede tener sentido desarrollar aplicaciones de Realidad Aumentada:

 Medicina. La medicina puede beneficiarse del uso de la Realidad Aumentada en


quirófanos y entrenamiento de doctores. Actualmente es posible obtener datos
3D en tiempo real mediante resonancias magnéticas o tomografías que pueden
superponerse en la imagen real del paciente, dando una visión de rayos X al
especialista.

 Fabricación. Otro uso de la Realidad Aumentada es en el ámbito de la


fabricación, mantenimiento y reparación de maquinaria compleja. Los pasos a
seguir en la reparación son mucho más intuitivos y fáciles de seguir si aparecen
directamente superpuestos sobre la imagen real.

 Entretenimiento. La industria del ocio ya ha comenzado a sacar partido del


enorme potencial de interacción que ofrece la Realidad Aumentada (como Sony,
Ubisoft o SixFlags).

 Publicidad. Cada vez más empresas utilizan la Realidad Aumentada como


reclamo publicitario. Desde 2008, empresas como Adidas, Ford, BMW, Lego,
FOX, Paramount, Doritos, Ray Ban y Mac- Donalds forman parte de una
larguísima lista de entidades que han utilizado estas técnicas, definiendo una
curva creciente exponencialmente.

Diaz Gastón, Leschevich Germán 115


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

3.7 ALTERNATIVAS TECNOLÓGICAS


En el ámbito de la Realidad Aumentada existen varias herramientas de software que
facilitan la construcción de aplicaciones. Sin embargo, para sacar el máximo partido a la
tecnología, es necesario dominar ciertos conceptos teóricos y de representación gráfica. La
mayoría de estos sistemas están destinados a programadores con experiencia en desarrollo
gráfico. A continuación se mencionarán algunas de las bibliotecas más populares:

 ARToolKit. Es la biblioteca más popular de Realidad Aumentada. Con interfaz


en C y licencia libre permite desarrollar fácilmente aplicaciones de Realidad
Aumentada. Se basa en marcadores cuadrados de color negro.

 ARTag. Es otra biblioteca con interfaz en C. Está inspirado en ARToolKit. El


proyecto se dejó de desarrollar en el 2008, aunque es posible todavía hacerse con
el código fuente. El sistema de detección de marcas es mucho más robusto que el
de ARToolKit.

 OSGART. Biblioteca en C++ que permite utilizar varias librerías de tracking


(como ARToolKit, SSTT o Bazar).

 FLARToolKit. Implementación para Web (basada en Flash y ActionScript) del


ARToolKit portado a Java NyARToolKit.

 Otros ports de ARToolKit. Existen muchas de versiones de ARToolKit


portados en diferentes plataformas, como AndAR (para teléfonos Android),
SLARToolkit, etc.

Diaz Gastón, Leschevich Germán 116


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 4

4 DISPOSITIVOS Y TÉCNICAS DE DETECCIÓN


Y RECONOCIMIENTO DE GESTOS

Existen actualmente múltiples técnicas y dispositivos que permiten la detección y el


reconocimiento de gestos, los cuales en un principio fueron desarrollados en su mayoría para
utilizarlos en videojuegos pero que actualmente han expandido sus áreas de aplicación a
múltiples ámbitos como la educación, la medicina, el comercio y otros. En este capítulo se hará
una descripción y una comparación de los más relevantes.

Diaz Gastón, Leschevich Germán 117


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.1 PRIMEROS DISPOSITIVOS Y TÉCNICAS DE DETECCIÓN DE


GESTOS

4.1.1 EL LÁPIZ

Este dispositivo consiste en un objeto punzante que se conecta a la PC. Principalmente


se utiliza para seleccionar objetos en la pantalla o para realizar algún trazado. En un extremo
suele tener un botón para realizar la selección del objeto. Son más intuitivos que los ratones
(mouse), su ámbito de aplicación es también más reducido.

El lápiz tiene un fotodetector en la punta el cual que detecta la luz emitida desde el píxel
donde se posiciona sobre la pantalla. Al pulsar un botón, como está conectado al circuito de
barrido de la pantalla, se puede determinar las coordenadas de la pantalla sobre las que está
apoyado el lápiz cuando se detecta el refresco del píxel.

Figura 4-1 – Ejemplo de lápiz óptico

La primera ventaja del lápiz no es su habilidad para escribir, sino su habilidad para
apuntar, para manipular la interfaz sin necesidad de una superficie donde poner el dispositivo. El

Diaz Gastón, Leschevich Germán 118


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

lápiz permite movilidad y ésta abre nuevas perspectivas a la interacción con los ordenadores.
Cualquier usuario que recoge información mientras camina, por ejemplo, es un candidato para el
uso de ordenadores con lápiz. Lápiz, ratón, teclado y voz coexistirán en la computadora sin el
predominio de ninguno. El dispositivo se seleccionará basado en aplicaciones y preferencias
personales.

Un digitalizador es una reja plana, capaz de generar coordenadas x, y cuando un lápiz se


sitúa encima o muy cerca. Un lápiz está cerca cuando el digitalizador es capaz de detectarlo.

El lápiz produce una interrupción y la tinta digital aparecerá en el caso en que una región
en que una aplicación acepta le escritura, tal como un campo de datos, los drivers del dispositivo
de vídeo hacen aparecer la tinta digital en la pantalla. Por el contrario, si el lápiz toca un control
como un botón, que no espera escritura o comandos de gestos, no se genera tinta. En este caso la
aplicación reconoce al lápiz como un dispositivo apuntador.

Uno de los primeros ejemplos surgió en 1963, cuando se presentó por parte de
Sutherland su trabajo PhD en SketchPad. El mismo consistía en un lápiz luminoso (un
predecesor del mouse) que controla los objetos en la pantalla y, tal como lo hace el mouse, los
comandos de entrada eran mediante toques. Estos toques también usaban como entrada el lápiz
para utilizar comandos de acceso rápido, siendo este uno de los estilos de gestos más antiguo y
comúnmente usado.

Figura 4-2 - SketchPad (1963)

Diaz Gastón, Leschevich Germán 119


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.1.2 PANTALLAS TÁCTILES

Las pantallas táctiles pueden imitar interacciones similares a las del ya conocido mouse
y el lápiz mencionado anteriormente, pero sumaron algunos beneficios al permitir dichas
interacciones utilizando las manos y los dedos.

En la actualidad, los sensores táctiles se encuentran en las tablets y smartphones, y es la


principal forma de interacción que se tiene con ellos.

Los gestos típicos de este tipo de entradas, involucran movimiento de las manos o toques
para manipular objetos o ejecutar comandos.

Las pantallas táctiles permiten al usuario apuntar y seleccionar objetos en la pantalla


utilizando el dedo, y por tanto son mucho más directas que el ratón (son, a la vez, entrada y
salida).

Figura 4-3 - Interacción por medio de pantalla táctil

Las hay de diferentes tipos, con matrices de haz de luz que el dedo interrumpe, por
cambios en las capacidades de una reja superpuesta en la pantalla o por reflexiones ultrasónicas.
El usuario indica exactamente el ítem que quiere apuntando con el dedo, por esto es un
dispositivo directo que no requiere una asociación para relacionarlos.

Diaz Gastón, Leschevich Germán 120


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La pantalla táctil es especialmente interesante porque no precisa de un dispositivo


apuntador y por tanto es muy intuitiva. Una de las aplicaciones más importantes es para
terminales de uso para gran público (llamados Kiosk, los cuales se detallarán más adelante).

Las ventajas de las pantallas táctiles son, su gran facilidad de aprendizaje, el hecho de
que no requieran espacio adicional, y son durables.

Con respecto a sus desventajas, se aprecia que usar el dedo puede dejar marcas en la
pantalla, pero quizá el principal problema sea la poca precisión en determinadas tareas como el
dibujo.

Ejemplo de uso de las pantallas táctiles:

 Kiosk. Denominadas terminales de autoconsulta. Son pantallas táctiles colocadas


en lugares públicos para proveer determinada información o conexión a internet
pública. Por ejemplo, en los aeropuertos dicha pantalla provee información sobre
el estado de los vuelos.

 Aplicaciones donde es conveniente que el usuario no interactúe con otros


dispositivos de entrada/salida. Por ejempl,o en el control de tráfico aéreo que el
operador no tenga necesidad de apartar la mirada de la pantalla

A continuación se verá la tecnología multitáctil, la cual incluye la posibilidad de que


múltiples usuarios interactúen con el sistema.

4.1.3 SISTEMAS MULTITÁCTILES

Los sistemas multitáctiles son un conjunto de técnicas de interacción que permiten a uno
o más usuarios controlar aplicaciones gráficas con varios dedos/manos simultáneamente. Los
dispositivos multitáctiles permiten que la interacción con el usuario sea natural, intuitiva y
contextual, ya que con ellos se interactúa como se lo hace diariamente: con gestos.

Para que estos sistemas funcionen se necesita un hardware apropiado, que posea las
adecuadas características tecnológicas, físicas y de procesamiento de modo que permita la

Diaz Gastón, Leschevich Germán 121


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

detección simultánea de diferentes puntos de contacto, así como también, un software adecuado
para detectar y reconocer los gestos.

Actualmente, hay diferentes tecnologías (algunas ya nombradas y otras que se


describirán a continuación) que permiten la construcción de un sistema multitáctil estable, como
por ejemplo los dispositivos capacitivos, resistivos, de ondas acústicas, laser y los dispositivos
basados en técnicas ópticas y visión artificial (las mismas se verán más adelante en el presente
capítulo).

La interacción natural con el usuario basada en técnicas multitáctiles es un mecanismo


muy adecuado para diseñar una interfaz gestual, ya que se basa en objetos y por lo tanto no
necesita la abstracción entre el mundo real y la aplicación, tal como sucede con los sistemas
WIMP (Windows, Icons, Menu and Pointer device). Un buen ejemplo son los gestos populares
para escalar, rotar y trasladar imágenes con dos dedos.

Si hablamos de hardware, hoy en día las tablets y los teléfonos inteligentes con pantalla
multitáctil son los dispositivos que han difundido enormemente la utilización de estas
tecnologías.

Figura 4-4 – Tablet multitáctil

4.1.3.1 Pantallas capacitivas

Por su tecnología, las pantallas capacitivas necesitan ser manejadas mediante el dedo o
un objeto que disponga de capacitancia. Por otro lado, pueden detectar varias pulsaciones

Diaz Gastón, Leschevich Germán 122


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

simultáneas o gestos, lo que permite diversas formas de actuar con ellas, aumentando su
capacidad para ser controladas. Las pulsaciones o gestos no requieren presión, basta con deslizar
el dedo para controlar la pantalla del dispositivo. Al ser utilizadas directamente con el dedo, sin
objetos intermedios, y no ser necesario ejercer ninguna presión, la experiencia para el usuario al
manejar este tipo de pantallas es más natural. La impresión es de rapidez, de inmediatez, siempre
que el sistema operativo y el programa que estemos manejando estén bien diseñados. También
tienen sus limitaciones. Tener que usar los dedos y no detectar la presión limitan las posibilidades
del software.

En definitiva, son durables y resistentes, de respuesta rápida, poseen un buen brillo y


funcionan con los dedos (Xataka Movil, 2009).

Figura 4-5 - Estructura de pantalla capacitiva

Diaz Gastón, Leschevich Germán 123


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-6 - Ejemplo funcionamiento del multitactil del iPod

4.1.3.2 Pantallas resistivas

Las pantallas resistivas están formadas por varias capas. Cuando presionamos sobre la
pantalla, hay dos capas que entran en contacto, se produce un cambio en la corriente eléctrica y se
detecta la pulsación. Además de su precio, la mejor resistencia al polvo o al agua ha contribuido a
su popularidad. Sin embargo, el uso de múltiples capas hace que su brillo se reduzca en,
aproximadamente, un 25 por ciento. Pueden usarse con los dedos, y los objetos afilados pueden
rayarlas.

La necesidad de ejercer presión en una pantalla resistiva implica una experiencia de


usuario diferente. Debido a ello, la respuesta del móvil parece menos intuitiva, más lenta, y por lo
tanto, menos natural. Si además el software no está creado para usarse con el dedo, tener que
utilizar un objeto intermedio nos distancia aún más del dispositivo. En realidad esto es sólo
aparente. Uno de los problemas de diseño del Nokia 5800 fue establecer el tiempo necesario para
considerar que se había pulsado sobre la pantalla resistiva. Finalmente se fijó en 0,45 segundos.
Se puede hacer un programa que establezca un tiempo menor, pero se corre el riesgo de que la
respuesta sea demasiado rápida para ser usado (Xataka Movil, 2009).

Diaz Gastón, Leschevich Germán 124


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Las pantallas resistivas son de bajo costo, se activan con cualquier objeto por presión y
son mucho menos claras (brillosas) que las capacitivas.

Figura 4-7 - Estructura de la pantalla resistiva

4.1.3.3 Dispositivos de ondas acústicas (SAW)

Los dispositivos SAW se usan en componentes electrónicos para proporcionar una serie
de funciones diferentes, incluyendo líneas de retardo, filtros, y convertidores AC a DC.

Los dispositivos electrónicos que emplean SAW, utilizan normalmente uno o más
traductores interdigitales (micrófonos y parlantes) para convertir ondas acústicas en señales
eléctricas y viceversa mediante la explotación del efecto piezoeléctrico (polarización de cargas en
la superficie del material, producida por tensiones mecánicas) de ciertos materiales. Estos
dispositivos se fabrican mediante fotolitografía, el proceso utilizado en la fabricación de circuitos
integrados de silicio.

Diaz Gastón, Leschevich Germán 125


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Los Filtros SAW son ahora utilizados en los teléfonos móviles, y ofrecen ventajas
significativas en el rendimiento, costo y tamaño sobre otras tecnologías de filtración, como
cristales de cuarzo, filtros LC, y los filtros de guía de ondas.

Muchas investigaciones se han hecho en los últimos 20 años en el área de los sensores
de ondas acústicas de superficie. La aplicación de estos sensores incluyen todas las áreas de
detección, los sensores SAW han tenido un éxito comercial relativamente modesto hasta la fecha,
pero son comúnmente disponibles en el mercado para algunas aplicaciones como las pantallas
táctiles (Centro de Artigo, 2012).

Estos dispositivos son durables, tienen una claridad óptica máxima, un alto costo y
pueden ser activadas con guantes, dedos u objetos suaves.

Figura 4-8 – Diagrama de Dispositivo de Ondas Acústicas (SAW)

Diaz Gastón, Leschevich Germán 126


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.1.3.4 Técnicas Ópticas para sistemas multitáctiles


Como ya se ha visto precedentemente, existen muchas maneras de crear una superficie
multitáctil. En esta sección se explicarán las técnicas ópticas, las cuales son las más económicas y
fáciles de implementar.

Las técnicas ópticas siguen un circuito de dos o más sensores situados alrededor de una
pantalla (habitualmente en las esquinas). Cuando el usuario toca sobre la pantalla, la sombra que
se provoca es captada por los sensores, los cuales triangulan la posición para reconocer las
coordenadas y de esta manera el usuario interactúa con dicha pantalla.

Las mismas se valen de un sensor óptico (habitualmente una cámara), fuentes de luz
infrarroja y un feedback (retroalimentación) visual con LCD o proyectores, para lograr su
objetivo.

Los infrarrojos (IR) son una parte del espectro de luz justo por encima de las longitudes
de onda visibles para los ojos, pero menores que las microondas (entre 700 y 1000 nanómetros).

La luz infrarroja permite ver los dedos y los objetos que se sitúan encima de la pantalla
sin que afecte a la proyección de las imágenes. Se necesita una fuente de luz infrarroja para
iluminar los objetos (por ejemplo LEDs infrarrojos). Las cámaras infrarrojas son costosas, pero
pueden utilizarse webcams si se elimina el filtro que incorporan.

La resolución de la cámara puede ser de 320x240 (pixels) si la superficie es pequeña, si


no deberá ser mayor, aunque es más importante tener un valor elevado de imágenes por segundo
(fps – Trames por segundo) que permita captar movimientos rápidos. La interfaz de conexión
puede ser USB o IEEE 1394 (Freire).

El ejemplo de uso más claro de este tipo de técnicas son las mesas multitáctiles, la cuales
consisten en una mesa, con una pantalla (generalmente LCD) interactiva en su superficie y un
procesador y proyector debajo. El usuario con sus movimientos, puede interactuar con los objetos
en la pantalla y así realizar múltiples tareas, como ver y editar fotos, navegar por internet,
proyectar videos, etc.

Diaz Gastón, Leschevich Germán 127


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-9 – Mesa multitáctil

A continuación se describirán las tecnologías que se pueden utilizar para aplicar estas
técnicas.

FTIR (Frutation Total Internal Reflection – Reflexión Interna Total Frustrada)

La reflexión interna total es un fenómeno que ocurre cuando la luz entra en un material,
procedente de otro, con un índice de refracción mayor, y a un ángulo de incidencia adecuado
(dependiendo de los índices de refracción de los dos materiales, el cual puede calcularse según la
ley de Snell). Cuando este fenómeno ocurre, no hay refracción y la luz se refleja en su totalidad.

La reflexión interna total frustrada se utiliza, además, en las fibras ópticas para conducir
la luz a través de la fibra sin pérdidas de energía. En una fibra óptica, el material interno tiene un
índice de refracción más grande que el material que lo rodea. El ángulo de la incidencia de la luz
es crítico para la base y su revestimiento, y es allí donde se produce una reflexión interna total
que preserva la energía transportada por la fibra.

Diaz Gastón, Leschevich Germán 128


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-10 – Detección de interacción con FTIR

Figura 4-11 – Reflexión Interna Total Frustrada

DI (Diffused Illumination, Rear or Frontal – Iluminación Difusa, Trasera o


Frontal)

La iluminación difusa puede ser frontal o trasera. Ambas técnicas se basan en los
mismos principios básicos: el contraste entre la imagen y los dedos que tocan la superficie. En la
frontal, la luz procede del ambiente y se coloca un difusor sobre la superficie. Cuando un objeto
la toca se crea una sombra que la cámara puede detectar.

Diaz Gastón, Leschevich Germán 129


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En la trasera, una luz infrarroja se utiliza para iluminar la pantalla. Cuando un objeto toca la
superficie esta refleja más luz que el difusor, y la cámara detecta esa luz adicional. En este caso,
el principal problema es conseguir una iluminación homogénea en toda la superficie.

Figura 4-12 – Detección de interacción con DI Frontal

Figura 4-13 – Detección de interacción con DI Trasera

Figura 4-14 - ID – Iluminación trasera

Diaz Gastón, Leschevich Germán 130


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-15 - ID – Iluminación frontal

LLP (Laser Light Plan – Plano de Luz Láser)

En esta técnica se ilumina la parte superior de la superficie con un láser (de 1 mm de


espesor) y cuando el dedo se acerca, se registra la iluminación del mismo y es detectado por la
cámara infrarroja debajo de la superficie. Debe tenerse en cuenta la seguridad puesto que los láser
son dañinos para la vista. Los láser visibles pueden detectarse y evitarse pero los de infrarrojos no
se ven y pueden resultar mucho más dañinos.

Diaz Gastón, Leschevich Germán 131


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-16 - Detección de interacción con Láser LP

Figura 4-17 – Plano de luz laser

LED – LP (LED Light Plane – Plano de Luz con LED)

Esta técnica es similar a la anteriormente descripta, ya que también se crea un plano de


luz sobre la superficie, solo que en vez de lásers (como en Láser LP), se usan LEDs. Los LEDs
son posicionados sobre la superficie táctil para crear un plano de luz. Cuando el dedo toca el
plano de luz creado, se ilumina y son detectados por la cámara debajo de la superficie. Es
únicamente recomendable en caso de utilizarse con una pantalla LCD.

Diaz Gastón, Leschevich Germán 132


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-18 - Detección de interacción con LED LP

Figura 4-19 - Plano de luz con LED

DSI (Diffused Surface Illumination – Iluminación Difusa de la Superficie)

La técnica DSI es parecida a la técnica FTIR ya que una luz infrarroja se ubica un panel
de acrílico dirigido hacia adentro. Es un acrílico especial con pequeñas partículas dentro, que
actúan como muchos espejos pequeños, y se usan para distribuir la luz infrarroja. Cuando un
dedo toca el difusor, se ilumina por la luz infrarroja, y es detectado por una cámara infrarroja
ubicada debajo de la superficie.

Diaz Gastón, Leschevich Germán 133


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-20 - Detección de interacción con DSI

Figura 4-21 - Iluminación Difusa de la Superficie

Comparación de las técnicas ópticas

A continuación se muestra una tabla comparativa entre las distintas técnicas ópticas que
se pueden utilizar para construir superficies multitáctiles, dando a conocer las ventajas y
desventajas de cada una de ellas.

Diaz Gastón, Leschevich Germán 134


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Tabla 4-1 - Tabla donde se analizan ventajas y desventajas de cada una de las técnicas ópticas

Técnica Ventajas Desventajas


óptica

FTIR No necesita una caja cerrada. Precisa una superficie “especial” para
garantizar el contacto.
(Reflexión Se puede controlar la presión.
Interna Total No puede reconocer objetos.
Con una superficie de silicona pueden
Frustrada
usarse punteros.

Iluminación No necesita una superficie especial. La iluminación homogénea es difícil de


Difusa conseguir.
Puede utilizarse cualquier material
Frontal
transparente. No puede detectar objetos ni fiduciales
(marcas que tienen las plaquetas de
No se necesita una malla de LEDs.
circuitos eléctricos en las esquinas).

Sencillo de implementar.
Tiene más posibilidades de detectar falsos

No necesita caja. contactos.

Depende de la iluminación ambiental.

Iluminación No necesita una superficie especial. La iluminación homogénea es difícil de


Difusa conseguir.
Puede utilizarse cualquier material
Trasera
transparente. Los blobs tienen poco contraste.

No necesita una matriz de LED. Puede haber falsas detecciones.

Puede detectar cualquier objeto. Necesita una caja cerrada.

Diaz Gastón, Leschevich Germán 135


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Láser LP No necesita una superficie especial. No puede detectar objetos.


(Plano de
Puede usarse cualquier material No pueden detectarse cambios en la
Luz Láser)
transparente. presión.

No se necesita una matriz de LEDs. Los dedos pueden taparse entre sí.

Fácil de implementar.

No necesita caja.

LED LP No necesita una superficie especial. Pueden detectarse objetos cuando se


(Plano de acercan.
No necesita marco para los LEDs.
Luz LED)
No detecta objetos en la superficie.
No necesita caja.
Necesita matriz de LEDs.
Barato.

DSI No necesita una superficie especial Superficies especiales más costosas y


(Iluminación flexibles
Puede detectar objetos
Difusa de la
Menor contraste
Superficie Sensitivo a la presión
Limitación de las dimensiones
iluminación homogénea

4.1.3.5 Técnicas de visualización

Para la retroalimentación visual lo más habitual es la utilización de proyectores, aunque


cualquier dispositivo de visualización puede funcionar (OLED – diodo orgánico de emisión de
luz -, LCD, etc.). Los proyectores son los que proporcionan las imágenes más grandes a menor
costo. Hay dos grandes tipos de proyectores: LCD y DLP.

Diaz Gastón, Leschevich Germán 136


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Proyectores LCD

Los proyectores LCD (Liquid Crystal Display), son una matriz de puntos que se activan
y desactivan con la misma tecnología que una pantalla plana. Tienen tres paneles LCD separados
(RGB, a color) y la luz pasa por los paneles a través de los píxeles activados.

Ventajas

 Son más eficientes (con los mismos vatios se obtienen imágenes más brillantes).

 Muestran los colores más saturados (una imagen LCD es de mayor calidad).

 Imágenes más enfocadas.

Inconvenientes

 Imágenes más pixeladas.

 Más voluminosos.

 Pueden aparecer píxeles muertos.

 Tienen más circuitería y por lo tanto son más propensos a fallos.

Figura 4-22 - Estructura de un proyector LCD

Diaz Gastón, Leschevich Germán 137


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Proyector DLP

Los proyectores DLP (Digital Light Processing) utilizan un semiconductor óptico o


DMD (Digital Micromirror Device - microespejos). Los microespejos pueden orientarse (+-12º)
para ajustar el nivel de gris.

Ventajas

 Los píxeles están mucho más cercanos, menos pixelación e imágenes más suaves
para el video.

 Se puede conseguir un mejor contraste (el mejor negro).

 Menos componentes.

 Mayor duración.

Inconvenientes

 Menor saturación del color.

 Efecto “arcoíris”, flash momentáneo con los objetos brillantes que algunas
personas pueden ver (se ha pasado de 4 segmentos a 6 en la rueda de colores para
reducir este efecto).

 Efecto “halo” o banda gris alrededor de la imagen.

Figura 4-23 - Estructura de proyector DLP

Diaz Gastón, Leschevich Germán 138


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-24 - Comparación imagen de proyectores

4.1.4 Sensores electrónicos - En el cuerpo o ropa


En este acápite se analizarán los dispositivos de detección de gestos que han hecho uso
de tecnología electrónica o electromagnética para lograr tal cometido. Dicha tecnología consiste
en sensores colocados sobre el cuerpo de la persona o sobre prendas de vestir (por ejemplo
guantes), los cuales, por las reacciones electrónicas provocadas por el movimiento de las partes
del cuerpo, logran detectar dichos movimientos e interpretarlos como gestos.

Bolt en el año 1980, utilizó por primera vez sensores electrónicos como uno de los
primeros métodos para reconocer gestos con las manos y los brazos detectando el espacio, la
posición y orientación a través de sensores electromagnéticos. Estos sensores se colocaban en la
muñeca del usuario para detectar las coordenadas x, y, z del brazo mientras este se movía por el
espacio, de esa manera se detectaba un gesto para interactuar con una pantalla.

Más recientemente, Roy en 1994 y Osawa en el 2000, utilizaron sensores para detectar
movimientos en interfaces adaptativas, y así el usuario podía navegar a través de entornos
virtuales. Estos sensores son también utilizados en dispositivos que se pueden usar en el cuerpo,
tales como cascos, guantes, etc. Sin embargo, son caros, incómodos para usar y difíciles de
implementar para el uso diario.

Diaz Gastón, Leschevich Germán 139


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.1.4.1 Sensores electrónicos - Guantes

Las interfaces que utilizan sólo gestos con las manos, con una sintaxis amplia de ellos
(es decir, que existe una fuerte conexión entre varios gestos que afectan el sentido general de lo
que se quiere transmitir), requieren un seguimiento preciso de la posición en la que se encuentran
las manos. Una de las técnicas más comunes es utilizar un guante que cuenta con varios sensores
que detectan y brindan la información de la posición en la cual se encuentra la mano, la
orientación de la misma y la posición de los dedos.

El primer guante con estas características que se lanzó al mercado fue el DataGlove, el
cual utilizaba cables de fibra óptica detrás de cada mano, cada cable tenía una pequeña grieta.
Entonces, la luz iluminaba el cable de manera tal que cuando los dedos estaban doblados la luz
salía a través de las grietas. De esta forma, midiendo la pérdida de luz, daba una lectura acertada
de la posición de la mano. La precisión del DataGlove podía medir cada curva con precisión de 5
a 10 grados, pero no así los movimientos hacia los costados de los dedos (sólo su flexión).

El Cyberglove fue otro de los guantes con similares características, sólo que utilizaba
medidores de tensión ubicados entre cada uno de los dedos, para medir la abducción de los
mismos (movimientos hacia los costados) y su flexión con mayor precisión.

Desde la aparición de estos dos guantes, se han diseñado varios dispositivos de entrada
basados en dichos guantes los cuales no serán descriptos en la presente.

Lo que anteriormente se señaló, es la manera en que un dispositivo (en este caso el


guante) captura los datos de la posición de las manos, pero eso no significa que se ha detectado
un gesto. Una vez que dichos datos fueron capturados, los gestos pueden ser reconocidos
utilizando diferentes técnicas. Dos métodos utilizados comúnmente para estos fines son las Redes
Neuronales o el análisis de plantillas estadísticas, las cuales alcanzan una precisión de más del
95%. Las Redes Neuronales Dependientes del Tiempo también se pueden utilizar para el
reconocimiento de gestos dinámicos, aunque para esto, el enfoque más usado es el de los
modelos ocultos de Markov. Este método también se puede utilizar para segmentar de forma
interactiva los gestos que detecta el guante, en gestos individuales para el aprendizaje (lo que se

Diaz Gastón, Leschevich Germán 140


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

llama entrenamiento) en línea de nuevos gestos. En estos casos los gestos son reconocidos
usando plantillas pre entrenadas, pero los guantes también pueden ser utilizados para identificar
gestos naturales o no entrenados (o sea, sin previo aprendizaje).

Si bien los guantes que se han implementado y que ya se han nombrado anteriormente
son muy precisos, son caros y molestos para el usuario cuando se utilizan por un largo período de
tiempo, por ende, en esos casos, pueden utilizarse las técnicas de visión por computadora (técnica
que se describirá más adelante) para el reconocimiento de gestos y superar dichas limitaciones.
Asimismo, los sistemas basados en visión resultan más naturales que los guantes, y son capaces
de lograr un excelente seguimiento del cuerpo y las manos, pero pierden precisión a la hora de
determinar su posición. Por supuesto que estos factores dependen del tipo de aplicación que se
pretende implementar.

A modo de ejemplo, se pueden puntualizar algunas limitaciones para el seguimiento


visual basado en imágenes con respecto al seguimiento de las manos:

 Los 30 o 60 marcos por segundo de la tecnología convencional de video no son


suficientes para capturar un movimiento rápido de las manos.

 Los dedos son difíciles de seguir cuando se ocultan unos a otros, o bien cuando
son ocultados por la mano.

Hay dos maneras diferentes de implementar el reconocimiento de gestos basado en


visión, una es el modelo basado en las técnicas que intentan crear un modelo de tres dimensiones
de la mano del usuario y utilizan ese modelo para el reconocimiento del gesto, y otra es la técnica
basada en imágenes, la cual utiliza una imagen de la mano y genera funciones de reconocimiento
directamente sobre ella.

Existen múltiples de estos dispositivos en el mercado, como por ejemplo los Z-Glove y
los DataGlove, y fueron uno de los primeros en implementar gestos. Estos guantes introdujeron
una detección detallada de cada dedo de manera individual y movimientos de la mano para
permitir gestos más complejos. El Z-Glove, por ejemplo, consiste en un guante de algodón el cual

Diaz Gastón, Leschevich Germán 141


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

posee sensores que pueden detectar la posición y orientación de los dedos, utilizando un
mecanismo de vibración para dar al usuario una retroalimentación táctil.

Figura 4-25 - DataGlove

4.1.5 SENSORES ELECTRÓNICOS - OBJETOS CON SENSORES E INTERFACES


TANGIBLES

Los objetos son manipulables por los usuarios y tienen algún tipo de sensor que
permiten convertir su manipulación en gestos o acciones.

La manipulación de objetos mediante sensores es considerada como gestual, esto es, una
interfaz tangible donde los gestos son interpretados a través de la manipulación física de estos
objetos. Algunos investigadores consideran la manipulación de objetos como una entrada de un
gesto.

Diaz Gastón, Leschevich Germán 142


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-26 – Reactable: Instrumento musical electrónico dotado de una interfaz tangible e inspirado en los
sintetizadores modulares de los años 60.

4.1.6 SENSORES ELECTRÓNICOS – DISPOSITIVOS INFRARROJOS

La entrada de gestos también se puede detectar utilizando dispositivos infrarrojos. Los


rayos infrarrojos son detectados por dispositivos de tracking (seguimiento) y sus movimientos
convertidos en gestos. Se necesitan emisores y receptores. El haz de luz infrarrojo permite un
seguimiento más preciso de una cámara, lo que permite un reconocimiento más confiable del
gesto. Algunas de las aplicaciones adicionales para el seguimiento de gestos a través de rayos
infrarrojos, incluyen interacciones con habitaciones inteligentes para identificar y controlar
electrodomésticos y otros dispositivos, mediante gestos que realizan funciones similares a las de
un control remoto.

4.1.7 VISIÓN POR COMPUTADORA O VISIÓN ARTIFICIAL

En la visión por computadora (o visión artificial), la interacción se basa en la obtención


de imágenes del usuario (fijas o continuas) a partir de una o varias cámaras y su posterior análisis
y reconocimiento de los gestos.

Diaz Gastón, Leschevich Germán 143


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Se puede definir la visión artificial, como un campo de la “Inteligencia Artificial” que,


mediante la utilización de las técnicas adecuadas, permite la obtención, el procesamiento y
análisis de cualquier tipo de información especial obtenida a través de imágenes digitales.

La visión artificial o visión por computadora la componen un conjunto de procesos


destinados a realizar el análisis de imágenes. Estos procesos son: captación de imágenes,
memorización de la información e interpretación de los resultados.

Figura 4-27 - Diagrama de un sistema de visión artificial

 Módulo de digitalización. Convierte la señal analógica proporcionada por la


cámara a una señal digital (para su posterior procesamiento).

 Memoria de imagen. Almacena la señal procedente del módulo de


digitalización.

 Módulo de visualización. Convierte la señal digital residente en memoria, en


señal de vídeo analógica para poder ser visualizada en el monitor.

Diaz Gastón, Leschevich Germán 144


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Procesador de imagen. Procesa e interpreta las imágenes captadas por la


cámara.

 Módulo de entradas/salidas. Gestiona la entrada de sincronismo de captación


de imagen y las salidas de control que actúan sobre dispositivos externos, en
función del resultado de la inspección.

 Comunicaciones. Vía I/O, Ethernet, RS232 (la más estándar). (ETI Tudela)

Uno de los primeros ejemplos de visión artificial es el VideoPlace (1985), el cual


utilizaba un proyector para representar la imagen del usuario en una pantalla en la pared junto
con un entorno de realidad virtual, este mismo método de superponer la imagen del usuario
también la utilizó el sistema FaceSpace (2004).

Como la visión por computadora no es una técnica de entrada directa, no posee un gran
nivel de precisión cuando se quiere detectar movimientos complejos u objetos. Los objetos
pasivos se representan con un color más brilloso, y se utilizan para incrementar la visión, de todas
maneras, este problema de precisión es uno de los que se encuentran primeros en la lista de
investigación en el ámbito de la visión por computadora.

Figura 4-28 - Estructura del VideoPlace

Diaz Gastón, Leschevich Germán 145


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.1.8 SENSORES REMOTOS

Son utilizados para la detección de presencia, movimiento y presión. Existe una amplia
variedad de dispositivos con sensores remotos que permiten la transmisión de campos eléctricos a
través de la habitación para la interpretación de los gestos. Pueden situarse en las pantallas para
captar el movimiento de los dedos.

Para más información acerca de las técnicas y dispositivos anteriormente detallados se


puede consultar: (Más, Yee, & Larrea, 2012); (Abascal, Aedo, Cañas, & otros, 2001).

Figura 4-29 - Manera en la que el campo eléctrico detecta al usuario.

La figura anterior, muestra un campo bipolar creado entre un electrodo y un campo


receptor virtual es interceptado por la mano. El desplazamiento de la corriente a tierra (IR) se
decrementa cuando la mano se acerca al campo bipolar.

Diaz Gastón, Leschevich Germán 146


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.2 DISPOSITIVOS DE DETECCIÓN DE GESTOS MODERNOS

4.2.1 WII REMOTE – WII MOTION PLUS

En el año 2006 la compañía de videojuegos Nintendo lanzó al mercado la consola


Nintendo Wii, la cual introdujo una nueva forma de concebir los videojuegos, ya que no sólo se
juega con el control (joystick), si no con el cuerpo y realizando movimientos naturales del ser
humano.

Su principal componente es su control (Wii Remote o Wiimote), el cual será el


encargado de detectar los movimientos que el usuario realiza con su mano, para que luego estos
sean reproducidos en los videojuegos.

Dicho control es una combinación de tecnología de sensibilidad al movimiento con un


sistema para apuntar, que implementa un nivel de interacción que antes era inexistente.

El control también cuenta con un parlante y un amplificador de audio, los cuales


permiten escuchar el audio del juego desde el control. Además cuenta con una memoria de
almacenamiento de hasta 60 Kilobytes de información, posee acelerómetros que graban la
dirección y la fuerza que se aplica al Wii Remote, la señal se transforma de analógica a digital y
se envía por Bluetooth a la consola, este protocolo de comunicación inalámbrico es de corto
alcance que utiliza una banda de 2.4GHz. Tiene un ancho de banda relativamente bajo si se lo
compara con otros protocolos inalámbricos como por ejemplo, Wi-Fi.

También posee un sensor infrarrojo que se utiliza para detectar y convertir las señales
enviadas por la barra de sensores infrarrojos la cual está constituida por dos filas de 5 leds
infrarrojos que el Wii Remote usa para triangular la posición en pantalla.

Diaz Gastón, Leschevich Germán 147


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-30 – Wiimote utiliza la triangulación infrarroja (utilizando la barra de sensores y el sensor en el Wii
Remote) para determinar la posición y la transmite via Bluetooth

Los tres acelerómetros con los que viene equipado el control pueden detectar las
aceleraciones con respecto a los ejes de referencia. Además, posee sensores adicionales que le
permiten conocer los movimientos de rotación. A partir de la información obtenida, puede
calcularse la velocidad integrando las aceleraciones y la distancia recorrida por un nuevo proceso
de integración.

Figura 4-31 – Se captura la aceleración en seis grados de libertad

Diaz Gastón, Leschevich Germán 148


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Al principio su sensibilidad al movimiento no era tan eficaz. Luego de la introducción


del Wii Motion Plus, que es un accesorio que agrega al Wii Remote un giroscopio (dispositivo
mecánico que sirve para medir, mantener o cambiar la orientación en el espacio de algún
dispositivo) para complementar al acelerómetro, la detección del movimiento mejoró en gran
medida. Finalmente, Nintendo sacó a la venta el Wii Remote Plus, que no es nada menos que el
Wii Remote con la tecnología del Remote Plus incorporada, lo que permitió no tener que adquirir
el accesorio por separado. Aun así, hoy día es el dispositivo con menor precisión de detección del
movimiento de los que se mencionan en la presente.

En resumen, el Wii Motion Plus es una expansión del Wii Remote original del Wii que
permite capturar movimientos complejos con una mayor precisión. El sensor del Wii Motion Plus
mejora las capacidades de capturar el movimiento del control Wii Remote, permitiendo que las
acciones se reflejen en la pantalla en un tiempo aproximado al real.

Figura 4-32 – Wii Remote + Wii Motion Plus. Accesorio con giroscopio agregado al Wii Remote.

4.2.1.1 Proyectos con Wii Remote

Si bien el Wii Remote se puede conectar a la PC vía Bluetooth (siempre que la PC posea
dicha tecnología), Nintendo no ha lanzado un kit de desarrollo para que los programadores

Diaz Gastón, Leschevich Germán 149


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

puedan crear aplicaciones utilizando el Wii Remote. Sin embargo se han realizado proyectos
utilizando la tecnología Bluetooth e infrarrojo que posee, además de algunos frameworks no
oficiales.

Pizarras interactivas multitáctil de bajo costo

Este proyecto está desarrollado por Johnny Chung Lee, en el cual se utiliza el Wii
Remote para rastrear lapiceras que tienen un LED infrarrojo en la punta (ya que el Wii Remote
puede rastrear las fuentes de rayos infrarrojos). Apuntando un Wiimote a una pantalla de
proyección o a la pantalla LCD, se puede crear pizarras interactivas de muy bajo costo. El Wii
Remote puede rastrear hasta 4 puntos, por lo cual puede reconocer hasta 4 lapiceras.

Figura 4-33 - Ilustración de funcionamiento de la pizarra

Silla de ruedas motorizada

Investigadores de la Universidad de Málaga en España desarrollan un software que


permite utilizar el control de la Wii para desplazar una silla de ruedas motorizada, con ruedas

Diaz Gastón, Leschevich Germán 150


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

omnidireccionales, es decir, que permiten el desplazamiento horizontal. Este proyecto está


diseñado para personas con movilidad reducida, el control simplifica el sistema, porque hay
usuarios que tienen reducción de movimiento en un brazo, o su postura no le permite utilizar el
joystick de la silla. El sistema se compone de una silla motorizada que lleva incorporada una
notebook pequeña. Por medio un protocolo, la notebook se encarga de pasar los comandos a la
plataforma de los motores de la silla. El control se conecta con la notebook por medio de
bluetooth. Se han captado tres movimientos porque el Wii Remote tiene tres ejes, se logró el
desplazamiento hacia delante o hacia atrás, giros a izquierda o derecha, y el movimiento
característico de esta silla, el horizontal. En cuanto al uso de los botones, uno de ellos es para
frenar la silla lo que denominan el botón del pánico, ya que al ser un mecanismo nuevo las
personas pueden asustarse. El control, normalmente, recoge los valores de desplazamiento en
todo momento, aunque en este caso esa prestación está limitada para que el movimiento no se
confunda con temblores o pequeños ataques de los pacientes. El sistema programado también
filtra estos temblores para que no se noten ya que se trata de hacer la vida más fácil. Los
pacientes lo único que deben hacer es encenderlo, conectar el control y moverlo, es muy sencillo
y cualquier persona puede usarlo, según dicen sus creadores. (Durán Rosas, 2009)

Figura 4-34 - Silla de ruedas motorizada

Diaz Gastón, Leschevich Germán 151


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.2.1.2 Conclusión sobre Nintendo Wii

El lanzamiento de este dispositivo fue una gran revolución no sólo en el mundo de las
consolas y videojuegos, sino en la tecnología y en la forma de interacción usuario/maquina, ya
que logró impulsar el desarrollo de tecnologías que permitan al usuario interactuar naturalmente
mediante gestos con las máquinas. Hay que mencionar, al margen de ello, que es el dispositivo
que tiene la mayor cantidad de juegos soportados, ya que todos los juegos lanzados para la
consola se juegan con gestos.

Por otro lado, amplió la visión de los desarrolladores, diseñadores y empresarios al ver
que no se estaba tan lejos de lograr este tipo de interacción y ello fue clave para el lanzamiento de
dispositivos que mejoraron en gran medida lo que la Wii había logrado.

4.2.2 PLAYSTATION MOVE

Ante la salida al mercado de la Nintendo Wii y el Kinect de Microsoft, Sony, para


competir con dichos dispositivos, lanzó el Move, un sistema de control mediante sensores para su
consola PlayStation 3. Para lograr ello, se vale de un control principal con sensores de
movimiento y una esfera en su extremo que se ilumina para que la cámara (PS Eye) pueda
detectar los movimientos del usuario. Cuando varios controles Move se usan simultáneamente,
cuatro como máximo, se los distingue por el color de su esfera.

Para determinar qué movimientos realiza el usuario, el Move posee distintos tipos de
sensores inerciales. Los acelerómetros son utilizados para realizar un seguimiento de la posición,
la rotación y el cabeceo del control. A diferencia del Wiimote, el Move tiene un giroscopio para
determinar la orientación del mismo y un magnetómetro empleado para determinar el ángulo de
guiño (yaw).

Diaz Gastón, Leschevich Germán 152


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-35 – Acelerómetro, giroscopio y magnetómetro incorporados en Move

4.2.2.1 Componentes del PlayStation Move

Los controles del PlayStation Move utilizan una conexión inalámbrica vía Bluetooth, al
igual que sus anteriores controladores convencionales, y una batería que se carga mediante un
puerto Mini – USB. Se pueden utilizar hasta cuatro joystick de PlayStation Move al mismo
tiempo, los cuales cuentan con tres componentes:

Motion controller

Es el control principal del PlayStation Move. Como ya se dijo tiene forma alargada, una
esfera que se ilumina de diferentes colores en su extremo y la cámara PlayStation Eye que detecta
la posición de la esfera en el espacio. Además de ello combina un giroscopio, un acelerómetro y
un sensor magnético (una especie de compas que usa el magnetismo para determinar la
orientación del control) para el seguimiento del control en tres dimensiones.

Figura 4-36 - Motion Controller

Diaz Gastón, Leschevich Germán 153


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Navigation controller

Es el controlador que complementa al Motion controller en algunos juegos. Tiene las


funciones principales que tienen en el lado izquierdo los controles inalámbricos de la PlayStation,
como los botones L1, L2 y L3.

Figura 4-37 - Mitad Izquierda del Joystick de PlayStation + Navigation Controller

PlayStation Eye

Es la cámara mediante la cual se reconocen los controles del PlayStation Move, se


detecta el color del joystick y lee los movimientos de este para que luego se representen en el
juego. Además de esto la cámara es la que se encarga de mostrar al jugador en pantalla. De esa
manera, entra en juego otro factor importante que está haciendo ruido en la industria de los
videojuegos y la tecnología, la realidad aumentada, un concepto que suma a la diversión y la
creatividad. A pesar de ello, la resolución de la cámara es baja (640x480 a 60 Hz o 320x240 a
120Hz) y, si bien no afecta el juego y detecta bien los controles, reduce la calidad de la realidad
aumentada y la calidad en que el jugador se ve en la pantalla.

Diaz Gastón, Leschevich Germán 154


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-38 - PlayStation Eye

Con la combinación de estos tres elementos el PlayStation Move se transforma en un


dispositivo con una gran precisión de seguimiento del movimiento en tres dimensiones.

La esfera luminosa en la punta del control, en conjunto con la cámara permite calcular la
posición en el espacio. La cámara busca la iluminación en la punta del joystick, y así obtiene la
posición de los ejes X e Y; luego, con el tamaño de la bola luminosa, puede deducir a qué
distancia está el control de la cámara, y de esta manera se obtiene el eje Z. Por supuesto que la
cámara necesita que dicha esfera lumínica esté frente a ella siempre. Si se aleja el control de la
misma por un lapso, necesitará una re calibración.

Figura 4-39 – Detección de Move: La cámara detecta, mediante la iluminación emitida por la esfera, la posición de
los ejes X e Y, y mediante el tamaño de la esfera respecto de la cámara la posición en el eje Z (mientras más chica,
más lejos está). Todos estos datos se envían a la consola PlayStation 3 mediante bluetooth

Diaz Gastón, Leschevich Germán 155


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

De esta manera, el PlayStation Move determina la posición absoluta del jugador,


además, se vale del resto de las tecnologías para calcular casi a la perfección los movimientos que
el usuario realice.

Hay que aclarar que también depende de la implementación y la manera en que esté
desarrollado el juego, en algunos la detección es menos precisa que en otros.

4.2.2.2 Proyectos con PlayStation Move

PlayStation Move no tiene un SDK oficial (Software Development Kit) para desarrollar
aplicaciones para PC. Pero existen frameworks, librerías y drivers que permiten obtener y
manipular los datos que genera la detección del Move.

PS Move API

Es una librería open source para Linux, Mac OS X y Windows para acceder al control
del Move vía Bluetooth y USB directamente desde la PC. Permite realizar aplicaciones para
utilizar el control como mouse o teclado de la computadora, apuntar la cámara hacia la pantalla y
utilizarla como un pizarrón interactivo, entre otras.

MoveFramework

Es un framework desarrollado para utilizar la información de detección en tiempo real,


además permite integrar todas las posibilidades de detección de movimiento en las aplicaciones y
juegos. Si no es utilizado por un programador, también se puede instalar la aplicación joyEmu
para utilizar el Move en los videojuegos. Está desarrollado en C++ pero existen SDK para
programadores especialistas en C#.

4.2.2.3 Conclusión sobre PlayStation Move

En resumen, el PlayStation Move, no es ninguna revolución, sino que es una mejora del
desarrollo que lanzó Nintendo con la Wii, por supuesto que el Move está mucho mejor trabajado
y diseñado por haber salido 4 años más tarde.

Diaz Gastón, Leschevich Germán 156


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Una de las contras del PlayStation Move, además de las ya mencionadas, es que no
exista un kit de desarrollo oficial para que los programadores puedan utilizar la tecnología de este
dispositivo en sus aplicaciones o proyectos que involucren interfaces gestuales.

4.2.3 MICROSOFT KINECT

En el marco del mercado inaugurado por Nintendo con la Wii, Microsoft lanzó
oficialmente el 4 de noviembre de 2010, su dispositivo de detección y reconocimiento de gestos
para los videojuegos de su consola Xbox 360 llamado Kinect.

Luego de su lanzamiento oficial, Kinect resultó ser una enorme revolución en el mundo
tecnológico, ya que, como se verá más adelante, no necesita de ningún control o joystick para el
reconocimiento. Además, es capaz de reconocer múltiples partes del cuerpo, la voz e incluso la
cara.

Figura 2.3.1: Microsoft Kinect

4.2.3.1 Componentes de Kinect

El dispositivo en sí es una barra de 23 centímetros con una pequeña base circular que
gira sobre sí misma, y fue diseñado para colocarse por encima o por debajo de la televisión o de
la pantalla donde se proyecte el video.

Kinect posee una cámara RGB (es decir, a color, con calidad VGA), un sensor de
profundidad (que consta de un proyector infrarrojo que ilumina al usuario y una cámara infrarroja
que detecta dicha iluminación), un micrófono de múltiples matrices y un procesador
personalizado que será el encargado de ejecutar el software patentado que es el que proporciona

Diaz Gastón, Leschevich Germán 157


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

la captura de movimiento de todo el cuerpo en 3D (junto con el sensor de profundidad), el


reconocimiento facial y de voz. Este dispositivo permite reconocer el cuerpo completo de hasta 4
personas.

Por otro lado, Microsoft lanzó un kit de desarrollo más un toolkit con herramientas que
posee ejemplos de código abierto para los desarrolladores. Eso provocó que el ámbito de Kinect
no solo se limite a ser un dispositivo para videojuegos, sino que su potencial se utilice en
medicina, deportes, educación, etc.

Tanto la tecnología hardware como software que posee Kinect se desarrollarán con
mayor profundidad y detalle en el siguiente capítulo.

Figura 4-40 - Partes del Kinect

4.2.3.2 Algunos proyectos con Kinect

DepthJS

Es una extensión para el navegador Chrome que permite utilizar el Kinect en lugar del
mouse para navegar entre las pestañas, realizar scrolling o hacer click en enlaces.

Diaz Gastón, Leschevich Germán 158


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Kinect Vestidor Virtual

Permite a los usuarios parase frente a un probador de ropa virtual, seleccionar la ropa y
ver virtualmente cómo le queda la prenda.

Figura 2.3.3: Vestidor Virtual con Kinect

Cirugía Remota

Un robot (llamado Da Vinci) de alta precisión permite que el médico pueda controlarlo
de una manera más intuitiva, sin perder precisión y con la posibilidad de hacerlo remotamente.

Figura 4-41 - Prueba de cirugía remota. En la imagen superior derecha se muestra el médico moviendo sus manos
frente a Kinect para manipular el robot.

Diaz Gastón, Leschevich Germán 159


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.2.3.3 Conclusiones sobre Kinect

Hay que decir que probablemente Kinect sea el dispositivo más novedoso que existe en
el mercado de la detección de movimiento, sobre todo porque es capaz de detectar múltiples
partes del cuerpo sin la ayuda de ningún control (como sí lo necesitan la Wii y el PlayStation
Move). La tecnología de que la aplicación detecte el movimiento del cuerpo y reproduzca el
mismo a la perfección, Kinect la hace realidad.

La posibilidad para los programadores de contar con un kit de desarrollo gratuito, y un


conjunto de herramientas y ejemplos de código visible oficiales, también es algo que posibilitó el
crecimiento de este dispositivo y su popularidad entre los programadores, diseñadores y otros
especialistas en distintos ámbitos.

Por supuesto que existen puntos negativos como la necesidad de un espacio


medianamente amplio para un correcto funcionamiento del sensor y la imposibilidad de detección
de los dedos individuales de la mano (aunque existen proyectos afines de esto). Otros puntos
fuertes y débiles de Kinect se ampliaran en el capítulo siguiente.

4.2.4 LEAP MOTION

Leap Motion es un sensor que permite controlar la computadora a base de gestos


realizados en el aire. Dichos gestos se pueden realizar tanto con los dedos como con las manos
completas. La tecnología de Leap Motion se comenzó a desarrollar en el año 2008. Luego, en el
año 2010 se anunció el Leap Motion bajo el nombre de “The Leap”, en octubre del 2012 se lanzó
un software de desarrollo, el cual fue distribuido a 12.000 desarrolladores interesados en crear
aplicaciones para el dispositivo (en mayo de 2014 se lanzó una segunda versión de dicho
software). Finalmente, el dispositivo salió oficialmente a la venta en marzo del año 2014.

Diaz Gastón, Leschevich Germán 160


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-42 - Leap Motion

4.2.4.1 Componentes del Leap Motion

El Leap Motion es un dispositivo periférico con conectividad USB que está diseñado
para ser ubicado en un escritorio mirando hacia arriba. Utilizando dos cámaras infrarrojas y tres
leds, observa un amplia área a una distancia de aproximadamente un metro. Los leds generan un
patrón de puntos en 3D de luz infrarroja y las cámaras generan casi 300 frames por segundos de
datos, los cuales se transmiten a través del cable USB hacia la computadora, donde se analizan
por el software controlador de Leap Motion (el cual necesariamente debe estar instalado en la
PC) usando matemáticas complejas (no reveladas por la compañía desarrolladora) y se sintetiza la
posición en datos 3D comparando los frames en 2D que generaron las dos cámaras.

Diaz Gastón, Leschevich Germán 161


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 4-43 - Estructura del Leap

Figura 4-44 - Leap por dentro

Como se dijera anteriormente, el Leap Motion necesita de una aplicación controladora


instalada en la computadora para que el mismo pueda funcionar, la misma tiene los drivers y una
plataforma llamada “Airspace” que permite adquirir las aplicaciones para utilizar con el Leap.
Esta plataforma trae, además, unas aplicaciones preinstaladas y aunque existen muchas gratuitas,
la mayoría de ellas son pagas.

Existe una variedad amplia de aplicaciones en el “Airspace” de Leap, como por ejemplo
editores de imágenes, editores de video, programas para realizar modelos en 3D, videojuegos

Diaz Gastón, Leschevich Germán 162


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

(desde el famoso Fruit Ninja, hasta el poder jugar una partida de ajedrez contra un robot), una
bandeja de DJ e incluso el diario New York Times y la cadena Weather Channel tienen su
aplicación. Es decir que Leap Motion pueda abarcar y adaptarse a muchos ámbitos, por supuesto
que en algunos de ellos, y dependiendo de la aplicación, lo hará mejor que en otros.

4.2.4.2 Proyectos con Leap Motion

Leap Axlr8r

Es un programa diseñado para desarrolladores, diseñadores y empresarios interesados en


revolucionar la industria utilizando tecnologías basadas en gestos. Este programa está orientado a
brindar ayuda de diseño, acceso a la industria experta en el tema y a ingenieros expertos en el
software y hardware de LEAP, para ayudar a los diseñadores y desarrolladores a transformar e
introducir su producto o idea en un negocio popular a nivel mundial. Estará disponible la
inscripción al mismo a partir de octubre de 2014.

Lotus

Creado por Eddie Lee, Lotus consiste en un conjunto de herramientas musicales


interactivas que permiten al usuario, aprovechando el poder de Leap Motion y de las ya
nombradas herramientas, crear música utilizando gestos. Está desarrollado en C/C++, con
gráficos OpenGL.

Figura 4-45 - Lotus

Diaz Gastón, Leschevich Germán 163


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4.2.4.3 Conclusión sobre Leap Motion

Hoy en día el Leap Motion viene incorporado en varios modelos de notebooks y


netbooks, por lo tanto al ser un dispositivo lanzado al mercado hace meses, dada su alta
tecnología y el lanzamiento de una nueva versión del kit de desarrollo, su popularidad está en
alza y aún puede crecer mucho más.

Sin embargo, hay que resaltar que el dispositivo solo se limita a reconocer la totalidad
del movimiento con las manos o cada uno de los dedos, es decir que sólo detectará los
movimientos que hagamos con dichas extremidades.

Para ahondar conocimientos acerca de los dispositivos mencionados anteriormente, se


puede ver la bibliografía (Mercado Gomez, 2013); (Más, Yee, & Larrea, 2012); (LeapMotion,
2013).

4.2.5 COMPARACIÓN ENTRE LOS DISPOSITIVOS

Ya se ha hecho una descripción de las características, componentes y tecnologías que


poseen de cada uno de los dispositivos de detección de gestos más populares en el mercado. A
continuación, se realizará una comparación entre algunos de ellos, destacando sus puntos fuertes
y débiles.

4.2.5.1 Detección de gestos

En lo que respecta a la detección de gestos, la Nintendo Wii detecta el movimiento del


Wii Remote, por lo que solo detecta el movimiento de la mano, tiene como fuerte la detección de
la aceleración de la mano, no así la capacidad de reacción desde que se hace el gesto hasta que se
ejecuta en el videojuego.

Esta cuestión la mejoró notablemente el PlayStation Move, que tiene una detección del
movimiento de la mano muy precisa y de rápida respuesta, como ya se dijo, es una versión muy
mejorada de la Wii.

Diaz Gastón, Leschevich Germán 164


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por otra parte, el Leap Motion detecta el movimiento de la mano e incluso de los dedos
de forma individual, un agregado que el resto de los dispositivos ya descriptos no posee. Además,
tiene una velocidad de respuesta a los movimientos excelente y no requiere tener en la mano
ningún control adicional (como si lo requieren la Wii y el Move).

El Kinect de Microsoft, por su lado, es el único dispositivo capaz de detectar los


movimientos de la persona de cuerpo completo, es decir si realizamos un movimiento con el pie,
mano, muñeca, rodilla, cabeza, entre otros, el Kinect lo reproducirá con un tiempo de respuesta
muy bueno. Además, no requiere que el usuario tenga nada en su mano, sólo requiere que se
tenga un amplio espacio para que pueda detectar correctamente la posición del cuerpo, lo cual se
puede considerar un punto en contra. Al igual que la Wii y el Move, no distingue los dedos de la
mano de manera individual y no permite calcular la aceleración con la que se realiza el
movimiento.

Podemos concluir que en lo que respecta a la detección de las partes del cuerpo y del
movimiento, la Wii y el Move son muy similares, por una cuestión de tiempo de lanzamiento, el
Move saca ventaja en su rendimiento. El caso del Leap Motion hay que analizarlo desde otro
plano, ya que este dispositivo no surgió específicamente para ser utilizados en videojuegos, sino
que es más versátil, puede ser utilizado en aplicaciones interactivas de distinta índole o bien en el
manejo gestual de un sistema operativo. El Kinect por su lado, es el único que detecta
movimientos del cuerpo entero, y los reproduce casi a la perfección.

4.2.5.2 Componentes tecnológicos

La tecnología que compone los dispositivos tiene mucho que ver con su precisión al
detectar el movimiento y tiempo de respuesta, es decir, con su rendimiento en general.

La Wii posee una tecnología de comunicación entre el control y la consola por


bluetooth, mientras que la detección del gesto lo realiza por infrarrojo, una tecnología casi en
desuso, pero dado el año de su lanzamiento, sus mejoras posteriores y la revolución que provocó
no se pueden juzgar hoy día su anticuada tecnología. Por otra parte, posee un acelerómetro para
detectar la aceleración del movimiento.

Diaz Gastón, Leschevich Germán 165


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

El Move posee una tecnología mejorada y distinta a la Wii, ya que se vale de un


giroscopio, un acelerómetro y magnetismo para detectar el movimiento y reproducirlo de manera
más precisa. Por otra parte, incorpora una cámara para que el usuario se pueda ver en pantalla
pero esa cámara es de muy mala calidad lo cual hace que sea un punto negativo en la tecnología
incorporada al dispositivo.

Por su lado, el Kinect, posee una cámara RGB (de calidad VGA), un motor en su base
que permite a la cámara realizar movimientos verticales de acuerdo a la necesidad, y un emisor
de luz infrarrojo con su respectiva cámara, que serán el que irradie de luz infrarroja al usuario y el
que se encarga de detectarlo, respectivamente. Hay que agregar que posee un arreglo de
micrófonos que permite el reconocimiento de voz.

El Leap Motion además de poseer una tecnología más moderna (dado que es el de más
reciente lanzamiento de los dispositivos analizados) compuesta por dos cámaras infrarrojas y tres
leds, posee un potente software detrás que permite que, con esos elementos tecnológicos más
complejos y algoritmos matemáticos, se puedan detectar y reproducir los movimientos de las
manos y los dedos con gran precisión y rendimiento.

En resumen, cada dispositivo ha incorporado distintas tecnologías acordes a la época en


que fueron diseñados y de acuerdo con el objetivo de detección que se quiere cumplir con cada
uno de ellos y, seguramente, aprendiendo de los errores o aciertos de sus antecesores.

Tabla 4-2 - Tabla comparativa que menciona los componentes tecnológicos que posee cada dispositivo

Dispositivos/ Nintendo Wii PlayStation Move Microsoft Kinect Leap Motion

Componentes

Cámara IR Si No Si Si

Cámara Color No Si (640x480) Si (1280x960) No

Acelerómetro Si Si Si No

Diaz Gastón, Leschevich Germán 166


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Giroscopio No (si con Plus) Si No No

Conexión Bluetooth Bluetooth Usb Usb

4.2.5.3 Capacidad de expansión y soporte para el desarrollo de


aplicaciones

Cuando se habla de capacidad de expansión y soporte para el desarrollo de aplicaciones,


se podría decir que ambos conceptos van de la mano. Si bien varios de los dispositivos que se
analizaron anteriormente se crearon originariamente para darle mayor interacción al usuario con
los videojuegos, algunos de ellos dieron un soporte software (un kit de desarrollo) oficial para
que los diseñadores y desarrolladores puedan crear aplicaciones y librerías para expandir su
funcionalidad y su alcance, más allá del ambiente de los videojuegos.

En este aspecto, Kinect y Leap Motion sacan una luz de ventaja con respecto al
PlayStation Move y a la Wii, ya que ambos poseen un kit de desarrollo (más conocido por sus
siglas en inglés SDK) oficial, lo que permite acceder a los datos que otorgan estos dispositivos, e
incluso brindan a la comunidad de desarrolladores ejemplos de cómo utilizarlos.

A partir de estos kit de desarrollo se amplió el ámbito donde se aplicaron estos


dispositivos, sobre todo de Kinect que, originalmente, fue creado para videojuegos de la consola
Xbox 360 de Microsoft. Hoy día, como ya se dijo, se encuentran implementados y en desarrollo
múltiples proyectos que involucran a Kinect, ya sea en medicina, educación, entretenimiento,
marketing, entre otros. En cuanto a Leap Motion su kit de desarrollo permitió que se desarrollen
aplicaciones que se incluyeron en su tienda, como por ejemplo aplicaciones para diseño en 3
dimensiones, para componer música, para editar fotografías, editar videos, etc. Además, el Leap
Motion ya viene incluido en varios modelos de notebooks que hay en el mercado (sobre todo en
la marca HP), sin la necesidad de comprarlo como accesorio.

Por su parte, ni Nintendo en el caso de la Wii, ni Sony en el caso de PlayStation Move,


han lanzado kits de desarrollo oficiales, pero la comunidad de desarrolladores se las ingenió para
lanzar frameworks o librerías que obtienen los datos de dicho dispositivo para poder

Diaz Gastón, Leschevich Germán 167


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

manipularlos a nivel de aplicación, aunque quizá hubiera sido mayor el crecimiento y


popularidad de estos dispositivos si alguna de las dos empresas habría lanzado un SDK de
manera oficial.

Tabla 4-3 – Tabla comparativa entre los dispositivos

Dispositivos Nintendo Wii PlayStation Move Microsoft Kinect Leap Motion

Detección de Si en 2 Si – En las 3 Si – Por sensores Si – Por


movimiento dimensiones con dimensiones en 3D sensores
sensor IR

Botones y Si Si No No
controles

Cámara No Si Si No

Soporta No Si Si No
Realidad
Aumentada

Reconocimiento No Si Si No
de voz

Detección de Si Si Si Si
Manos

Detección de No No No Si
Dedos

Detección de No No Si No
resto del cuerpo

SDK oficial No No Si Si

Diaz Gastón, Leschevich Germán 168


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Resolución 480p Blu-ray HD 1080p HD 1080p HD 1080p


soportada

4.3 ELECCIÓN DEL DISPOSITIVO


En el presente capítulo se analizaron, además de las técnicas de detección y
reconocimiento de gestos, los distintos dispositivos que cumplen esa misma función. Una vez
efectuada la investigación de cada uno de ellos, se ha llegado a la conclusión de que el
dispositivo Kinect, es el adecuado para lograr los objetivos planteados.

Una de las razones de ello, es que su la cámara RGB, permite la implementación de la


Realidad Aumentada en las aplicaciones, integrando elementos virtuales a la imagen creada a
partir de la misma. Además, es el único dispositivo que otorga una detección del esqueleto
humano y sus diferentes partes, por ende, se pueden crear interfaces gestuales de una manera
más simple.

En lo que respecta al software, de los dispositivos analizados, es uno de los pocos que
contiene una librería y un kit de desarrollo oficial bien documentado, e incluso ejemplificado.

Por ello en el siguiente capítulo se analizará en profundidad el dispositivo Kinect, con


todas sus características detalladas.

Diaz Gastón, Leschevich Germán 169


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 5

5 KINECT
Este capítulo tiene como objetivo conocer y analizar la tecnología subyacente detrás del
dispositivo Kinect desarrollado por la empresa Microsoft y cuyos componentes permiten integrar
tanto gestos como Realidad Aumentada en sus aplicaciones. Se investigará acerca del
funcionamiento de las cámaras, tanto la infrarroja utilizada como sensor de profundidad, como la
cámara a color (RGB). También se describirá el arreglo de micrófonos para el reconocimiento de
voz que posee y se explicarán diferentes librerías disponibles a nivel de software que son
utilizadas para desarrollar aplicaciones con Kinect.

Diaz Gastón, Leschevich Germán 170


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.1 HISTORIA
La empresa Microsoft, mediante su departamento de investigaciones llamado Microsoft
Research, afirmó que la tecnología del dispositivo Kinect costó unos veinte años de desarrollo.
Kinect se anunció por primera vez en la EEE (Electronic Entertainment Expo) en el año 2009
bajo el nombre “Project Natal” (Proyecto Natal), incluso se pudo ver un video promocional
donde se veía cómo los usuarios interactuaban con los videojuegos sin la necesidad de ningún
control, joystick o accesorio adicional.

Al año siguiente se lanzó el dispositivo Kinect. El mismo se comercializó en forma


conjunta con la versión de la consola Xbox 360 slim, la cual es más pequeña que la original. En el
desarrollo de esta tecnología también colaboró, en conjunto con Microsoft, la empresa Israelí
PrimeSense, la cual se especializaba en sensores 3D.

5.2 HARDWARE
Como ya se señaló en el capítulo anterior, Kinect permite reconocer hasta cuatro
usuarios ubicados frente al sensor de cuerpo entero y reproducir sus movimientos en un
videojuego o aplicación. Para esto utiliza sensores de profundidad y una cámara RGB. Además
posee cuatro micrófonos conectados en línea, que permiten reconocer la voz y ejecutar órdenes
que envía el usuario al hablar.

Antes de describir los componentes anteriormente mencionados, hay que agregar que el
sensor Kinect posee un conector USB para su interacción con la consola Xbox 360 o bien con la
computadora.

5.2.1 EMISOR INFRARROJO Y CÁMARA DE PROFUNDIDAD

Se comenzará analizando el sistema de sensores de profundidad de Kinect, el cual está


formado por dos elementos: un emisor láser infrarrojo y la cámara infrarroja. El emisor IR
(infrarrojo) es el dispositivo que Kinect utiliza para proyectar rayos IR los cuales se usan para

Diaz Gastón, Leschevich Germán 171


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

capturar los datos de profundidad. Este proyector, es un emisor laser que proyecta un patrón
estructurado de puntos infrarrojos en una onda de alrededor de 830 nanómetros (patentado por
Prime Sense Ltd., empresa que colaboró con Microsoft en el desarrollo de Kinect). El haz de luz
es invisible al ojo humano, en el emisor sólo se puede ver una luz roja en el centro.

El emisor proyecta un patrón infrarrojo, este patrón está compuesto por subpatrones de
3x3 de 211x165 puntos (un total de 633 x 495 puntos). En cada uno de estos patrones un
cuadrado es más brilloso que el resto.

Cuando este cuadrado brilloso queda encima de un objeto, el patrón se distorsiona, esta
distorsión es analizada por la cámara de profundidad para lograr estimar la distancia entre el
sensor y dicho objeto.

Figura 5-1 - Patrón IR

La cámara de profundidad, es decir, la que detecta los patrones antes mencionados, es


una cámara monocromática que tiene un filtro infrarrojo (el cual bloquea la luz). Esta cámara de
profundidad es la que Kinect utiliza para capturar los datos de profundidad.

Los datos de profundidad que devuelve esta cámara son las coordenadas en 3D (ejes x,
y, z) de la escena en forma de stream (flujo de datos). El sensor captura la luz estructurada

Diaz Gastón, Leschevich Germán 172


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

emitida por el emisor IR y la luz reflejada de los objetos en la escena. Todos estos datos son
convertidos en un flujo de datos de frames (cuadros). Cada frame es procesado por un chip que es
el que produce la salida del flujo de frames. La resolución de dicha salida es de 640 x 480 pixeles
y cada pixel, de 11 bits, puede representar 2048 niveles de profundidad.

Figura 5-2 - Imagen que genera la cámara de profundidad

En otras palabras, la forma en que Kinect logra generar un mapa de profundidad es: en
primer lugar, el proyector infrarrojo transmite un patrón de rayos IR invisibles convirtiendo todo
en pequeños puntos infrarrojos invisibles. Este patrón es percibido por la cámara infrarroja luego
de iluminar los objetos y/o personas que se encuentran en la escena. A causa de dicha
iluminación el patrón se modifica.

Dado que el mencionado patrón de rayos infrarrojos es conocido, y que, además la


cámara y el proyector están calibrados también de una manera conocida, se puede asociar cada
punto emitido con el recibido.

Diaz Gastón, Leschevich Germán 173


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

A partir de las distorsiones percibidas es que Kinect calcula la distancia del sensor a los
objetos y genera la imagen de profundidad.

La técnica descripta es conocida como “luz estructurada” y se basa en estudiar la


deformación que sufre un patrón de luz al ser interceptado por cualquier objeto. Posteriormente,
mediante la cámara RGB se genera el mapa de color.

Figura 5-3 – Diagrama de la técnica “luz estructurada”

Asimismo, para un correcto funcionamiento y un mejor rendimiento del sensor de


profundidad, se debe contar con un espacio razonable ya que el usuario y/o los objetos que se
pretende que estén dentro del campo de visión del Kinect, deben colocarse a entre 80 cm y 2.4
metros de distancia.

5.2.2 CÁMARA RGB

La cámara a color (RGB) de Kinect, es similar a una cámara web a color, pero, a
diferencia de una webcam común, esta no posee un filtro que bloquea los rayos infrarrojos. Dicha
cámara admite una resolución de 1280x960 pixeles con una velocidad de 12 imágenes por

Diaz Gastón, Leschevich Germán 174


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

segundo. Puede alcanzar un promedio de 30 imágenes por segundo a una resolución de 640x480.
Además, reduce el parpadeo de colores, realiza operaciones de saturación del color, y el balanceo
de blancos automático. Estos datos son utilizados para obtener los detalles de las personas y
objetos que se encuentran en la escena.

Figura 5-4 - Imagen RGB generada por Kinect

Una función primordial de esta cámara, es permitir el uso de la realidad aumentada, ya


que permite al usuario verse a sí mismo. La sensación de realidad aumentada se magnifica con
esta información donde el usuario puede verse en un contexto digital, por ejemplo, utilizando un
sable luminoso, cambiar el fondo de la imagen de video y verse en una playa del caribe, o bien
interactuar con objetos que se pueden agregar a su contexto.

De esta forma, y con la cámara de profundidad ya descripta anteriormente, todo el


entorno es almacenado en dos mapas, uno de color y otro de profundidad. Sumado a ello, Kinect

Diaz Gastón, Leschevich Germán 175


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

cuenta con algoritmos para sacar el mejor provecho de la información que recibe, para así poder
renderizar en tiempo real las imágenes generadas en tres dimensiones.

5.2.3 MOTOR DE INCLINACIÓN Y ACELERÓMETRO DE TRES DIRECCIONES

Las cámaras del Kinect tienen un campo de visión horizontal de 57,5 grados y un campo
de visión vertical de 43,5 grados. Es posible incrementar el espacio de interacción ajustando la
inclinación vertical del sensor en + 27 o -27 grados. El motor puede cambiar el ángulo de la parte
superior del Kinect moviéndolo hacia arriba o hacia abajo.

Además, Kinect posee un acelerómetro de tres direcciones configurado para un rango de


2g (g, es el valor de aceleración en relación a la fuerza de gravedad) con un grado de precisión de
1 a 3. Gracias al acelerómetro y a los datos que éste brinda, es posible saber la orientación del
dispositivo con respecto a la gravedad.

Figura 5-5 - Grados de inclinación de Kinect

5.2.4 ARREGLO DE MICRÓFONOS

El arreglo de micrófonos que posee Kinect, consiste en cuatro micrófonos que están
ubicados en línea en la parte inferior del dispositivo junto con un conversor analógico digital
(ADC). El audio capturado es codificado usando modulación por impulsos codificados (MIC)
con un rango de 16 KHz y una profundidad de 16-bit. La mayor ventaja de la configuración que

Diaz Gastón, Leschevich Germán 176


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

poseen los micrófonos es la supresión del ruido, una cancelación del eco acústico (AEC), y la
capacidad de determinar la localización y la dirección de la fuente del audio.

Figura 5-6 - Arreglo de micrófonos conectados en línea

El dispositivo utiliza los micrófonos para determinar de qué lado de la habitación viene
una voz en particular.

Cuando se le habla al sensor, la voz llega a cada micrófono en tiempos diferentes,


porque cada micrófono está ubicado a una distancia diferente del lugar desde donde se le habló.
Entonces, el software puede extraer la onda de la voz de la señal de sonido producida por cada
micrófono y (usando la información del tiempo) calcular dónde se encuentra la fuente de ese
sonido en la habitación. Entonces, si hay varias personas en la habitación donde se encuentra el
dispositivo, puede determinar qué persona está hablando calculando la dirección desde donde
viene su voz, y entonces puede direccionar los micrófonos hacia ese lugar, suprimiendo, además,
los sonidos no deseados para hacer más fácil la captura de lo que se habla.

Desde el punto de vista del control a nivel de aplicación, cuando se sabe de qué lugar
viene la voz (utilizando el sensor de distancia) se pueden dirigir los micrófonos hacia ese lugar, y
sobre todo crear una versión en software de los micrófonos direccionales que están físicamente
apuntando hacia los usuarios para grabar sus voces cuando, por ejemplo, se filma un video.

Si se quiere profundizar en el aprendizaje sobre el hardware detrás de Kinect se puede


consultar la siguiente bibliografía (Giorio & Fascinari, 2013) y (Jana, 2012).

Diaz Gastón, Leschevich Germán 177


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.2.5 RECONOCIMIENTO DE USUARIOS CON KINECT

Uno de las características más llamativas de Kinect, es su capacidad de reconocer y


detectar los usuarios (seres humanos) que se encuentran frente al sensor. Dicho dispositivo en sí
no reconoce humanos, simplemente envía la imagen de profundidad al dispositivo principal (la
Xbox o una computadora). El software (drivers) que se encuentra corriendo en el dispositivo
principal (host) contiene la lógica para decodificar la información que envía el sensor y reconocer
elementos en la imagen con características del esqueleto humano. Dicho software está
“entrenado” con una variedad de siluetas humanas, y utiliza el alineamiento de varias partes del
cuerpo humano, sumado a la manera en que se mueve, para identificarlos y seguirlos.

El software también puede reconocer la altura y las proporciones de una persona en


particular. Esta característica permite, por ejemplo, a los usuarios de Xbox “entrenarla” para que
reconozca a un usuario específico cuando entra a la sala.

Como ya se mencionó anteriormente, el usuario debe colocarse a 2.4 metros para un


óptimo funcionamiento.

Figura 5-7 - Silueta que forma el software de Kinect

Diaz Gastón, Leschevich Germán 178


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En (Shotton, y otros, 2011) el equipo de Microsoft Research explica detalladamente los


algoritmos detrás del reconocimiento de personas de Kinect.

Para explicarlo resumidamente se podría decir que lo que el equipo investigativo de


Microsoft (llamado Microsoft Research) hizo fue crear una base de datos con 500.000 frames
(cuadros) de distintas poses que una persona puede llegar a realizar mientras juega. Como los
cambios entre una pose y otra, entre cuadros, son casi imperceptibles, se reducen las muestras a
100.000, tomando solo aquellos cuadros donde la distancia entre una pose y la otra sea mayor a 5
centímetros. En base a esas muestras, se generó un modelo para inferir la posición del cuerpo.

Mientras transcurre el juego, para reconocer en tiempo real la posición del cuerpo del
usuario (o los usuarios), el algoritmo identifica las partes del cuerpo con pixeles de colores (esto
es lo que le llaman etiquetar las partes del cuerpo o labels). En tiempo real, utilizando solamente
tres imágenes, se interpolan esos puntos marcados y se elabora la posible posición del cuerpo en
base al modelo generado anteriormente. Lo sorprendente es que la GPU (Unidad de
Procesamiento Gráfico) de la consola Xbox 360 puede ejecutar este algoritmo a una velocidad de
200 frames por segundo para determinar la posición del cuerpo.

Es claro que Kinect posee una tecnología a nivel de hardware muy completa y de varios
elementos útiles, pero como se ha dejado en evidencia en el punto anterior, debe tener un potente
motor de software debajo para poder controlar todas las funciones novedosas que permiten los
distintos dispositivos físicos que se han mencionado y que forman parte del hardware de Kinect.

Por eso, a continuación, se detallarán algunas de las librerías de software que existen
para programar con Kinect, incluyendo el SDK oficial que lanzó Microsoft para poder usar y
desarrollar aplicaciones para Kinect en Windows.

5.3 HERRAMIENTAS PARA DESARROLLO CON KINECT


Ya se ha analizado la tecnología física que posee Kinect, a continuación se explicará de
qué manera se relaciona la parte física del dispositivo (hardware) con la lógica (software),

Diaz Gastón, Leschevich Germán 179


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

explicando algunas herramientas y kits de desarrollo que permiten programar aplicaciones para
Kinect. Algunos de ellos se explicarán con más detalle en el capítulo siguiente.

5.3.1 SDK KINECT PARA SISTEMA OPERATIVO WINDOWS

En este apartado se explicará la arquitectura del software de Kinect, definiendo su SDK


(Software Development Kit – Kit de Desarrollo Software) oficial. El SDK se compone de varias
librerías software y herramientas que ayudan al desarrollador para usar Kinect como una interfaz
natural de usuario. El dispositivo y las librerías software interactúan con la aplicación por medio
de las librerías NUI (Natural User Interface – Interfaz Natural de Usuario).

Figura 5-8 - Arquitectura y componentes del SDK de Kinect para Windows

Diaz Gastón, Leschevich Germán 180


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

La arquitectura software de Kinect está formada por:

 El sensor de Kinect. Los componentes físicos que se han explicado con


anterioridad en este capítulo y el conector USB a través del cual el Kinect se
conecta a la computadora.

 Los drivers de Kinect. Los drivers para el sistema operativo Windows para el
dispositivo, los cuales vienen incluidos junto con el SDK.

 Los componentes de audio y video. Están definidos por aplicaciones NUI para
la detección del esqueleto, audio e imágenes de profundidad y a color.

 DirectX Media Object (DMO). Para las funciones del arreglo de micrófonos.

5.3.1.1 Requerimientos de Hardware

 Computadora con procesador doble núcleo, 2.66 GHz o superior.

 Placa de video compatible con Windows 7 que soporte Microsoft DirectX 9.0.

 2 GB de RAM (recomendados 4 GB).

 Sensor Kinect (para Xbox 360).

 Adaptador USB de energía para Kinect.

Para programar con el SDK de Kinect para Windows se recomienda utilizar Visual
Studio 2010 Express o superior, u otras versiones de Visual Studio (no anteriores al 2010). Se
necesitará tener DirectX 9.0 (o superior) instalado, las versiones anteriores no son compatibles.
Además, por supuesto, se debe instalar el SDK de Kinect para Windows (ahora en su versión
1.8), el cual también se encargará de instalar los drivers para Kinect y el Microsoft Kinect
Toolkit, el cual, entre otras herramientas, contiene códigos de ejemplo. Las características de este
Toolkit se analizarán más adelante en este capítulo. Cabe destacar que dicho SDK permite
programar en los lenguajes C++, C# y Visual Basic (la suite de .Net).

Diaz Gastón, Leschevich Germán 181


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.3.1.2 Requerimientos de Software

 Microsoft Visual Studio 2010 Express u otra versión de Visual Studio 2010 o
superior.

 Microsoft .NET Framework 4.0 o superior.

Para programar en C++ además se requiere:

 Kit de desarrollo de DirectX, 2010 o superior.

 Instalador Web de DirectX End – User Runtime.

Si se quieren explotar las capacidades del audio de Kinect se necesita, además, el


software de reconocimiento de voz de Microsoft: la aplicación de la plataforma para hablar, el
SDK de la plataforma, y el pack de lenguaje para Kinect. De todas formas, el SDK
automáticamente instala estos componentes. El resto de las funcionalidades de Kinect
(excluyendo el audio) se podrán utilizar por completo sin estos componentes.

5.3.1.3 Flujo de datos de video

El flujo de datos (stream) de la imagen a color es manejado por la librería


Microsoft.Kinect.ColorImageFrame. Un frame está compuesto por datos de la imagen a color.
Estos datos están disponibles en diferentes resoluciones y formatos. Solo se puede utilizar una
resolución y un formato a la vez.

Con el SDK se pueden personalizar las opciones de la cámara para optimizar y adaptar
la misma dependiendo del entorno (cuando se necesita trabajar con poca o mucha luz, adaptar el
contraste, etc). Para manejar esto se utiliza la clase Microsoft.Kinect.ColorCameraSettings.

Diaz Gastón, Leschevich Germán 182


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-9 - Resoluciones disponibles para stream de video

Para aumentar la calibración de la cámara se puede usar el flujo de datos IR (de


profundidad), para observar el patrón observado de la cámara RGB y la IR. Esto permite tener un
mejor mapeo de las coordenadas del espacio que generan ambas cámaras.

5.3.1.4 Flujo de datos de la cámara de profundidad

Los datos proporcionados por el flujo de profundidad son útiles tanto para computar el
movimiento de la persona y la persona en sí, como también para identificar los objetos que se
deben ignorar.

El flujo de datos Microsoft.Kinect.DepthImageStream se encuentra dentro de la clase


Microsoft.DepthImageFrame y tiene dos tipos de datos:

 Datos de profundidad calculados en milímetros. Están contenidos en la


estructura Microsoft.Kinect.DepthImagePixel.

 Datos segmentados del jugador. Estos datos están dados por la propiedad
Microsoft.Kinect.DepthImagePixel.PlayerIndex, que identifica al jugador
detectado en la escena.

Kinect procesa en tiempo real los datos de profundidad para identificar las figuras
humanas en un mapa segmentado. El mapa segmentado es un mapa de bits de

Diaz Gastón, Leschevich Germán 183


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Microsoft.Kinect.DepthImagePixel, donde la propiedad PlayerIndex identifica la persona más


cercana dentro del campo de visión de la cámara. Para obtener los datos de segmentación del
jugador, se debe activar el stream del seguimiento del esqueleto.

5.3.1.5 Flujo de datos de audio

Gracias a su arreglo de micrófonos, Kinect genera un flujo de datos de audio que se


puede controlar y manejar a nivel de aplicación para reconocimiento de voz, capturar audio, etc.

Por defecto, Kinect detecta la entrada de audio de mayor volumen. Dicho esto, se puede
configurar el arreglo de micrófonos desde la programación (dirigirlos hacia una dirección
específica, que se direccionen hacia un esqueleto que se ha detectado, etc.)

El componente principal usado por Kinect para procesar el flujo de audio es el DirectX
Media Object (DMO).

La clase Microsoft.KinectAudioSource es el componente principal de la arquitectura del


software en lo concerniente al flujo de audio. La clase Microsoft.Kinect.INativeAudioWrapper
contiene el DMO ya mencionado, que es un componente común de Windows para un micrófono
de un canal. Esto permite que se puedan usar los micrófonos de Kinect como un micrófono para
las aplicaciones del estilo Skype o similares tal como si fuera un micrófono común, esto es, de un
solo canal.

5.3.1.6 Esqueleto

Además de los datos que proporciona el flujo de datos de profundidad, adicionalmente


se pueden usar los que proporciona el seguimiento del esqueleto para aumentar la capacidad de
computar el movimiento y el control de las aplicaciones a fin de reconocer al usuario, además de
reproducir y seguir sus movimientos y acciones.

Se define un esqueleto como un conjunto de puntos colocados estratégicamente. Un


esqueleto detallado contiene 20 de estos puntos en modo normal y unos 10 puntos en un llamado

Diaz Gastón, Leschevich Germán 184


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

“modo sentado”, en el cual se utiliza solo la mitad superior del cuerpo. Cada uno de los puntos
en ambos modos representa una articulación o parte del cuerpo humano.

Gracias a la cámara IR (de profundidad), Kinect puede reconocer hasta seis personas en
su campo de visión. De todas ellas, solo cuatro pueden ser detectadas en detalle (es decir, con 20
puntos del cuerpo humano).

El flujo de datos del esqueleto es llevado a cabo por las clases


Microsoft.Kinect.SkeletonStream y Microsoft.Kinect.SkeletonFrame. La estructura
Microsoft.Kinect.SkeletonPoint brinda los datos del esqueleto dando cada punto del mismo en el
espacio en 3D. En cada frame que maneja el flujo de datos del esqueleto, se pueden manipular
hasta seis esqueletos utilizando un arreglo de la clase Microsoft.Kinect.Skeleton.

Figura 5-10 - Partes del cuerpo que Kinect puede detectar

5.3.1.7 Kinect Toolkit - Herramientas de Kinect

Esta herramienta se recomienda descargarla e instalarla junto con el SDK de Kinect para
Windows, ya que posee códigos a modo de ejemplo actualizados con la versión del SDK actual
(para esto, cuando sale una versión nueva del SDK también es lanzada una nueva del Toolkit con
nuevos ejemplos). Entre algunos códigos de ejemplo que se pueden ver, incluyen aplicaciones
que reconocen y graban la voz, retiran el fondo del usuario causando el efecto de “pantalla verde”
utilizado en el cine, generan avatares en 3D, galerías multimedia interactivas, etc.

Diaz Gastón, Leschevich Germán 185


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Además, tiene algunas aplicaciones y librerías que pueden ser de gran utilidad para el
desarrollador, en este caso, se analizarán las más relevantes tales como el Kinect Studio y el SDK
para el “Face Tracking” (detección de caras).

Requerimientos mínimos del sistema

 Procesador de 32-bit (x86) o 64-bit (x64).

 Procesador dual-core 2.66-GHz o mayor.

 USB 2.0.

 2 GB de memoria RAM.

 Sensor Kinect.

 Windows 7, Windows 8, Windows 8.1, Windows 7 Estándar Embebido.

 SDK para Kinect para Windows (la versión que coincida con la del Toolkit).

Figura 5-11 - Ejemplo de la aplicación que retira el fondo del usuario

Diaz Gastón, Leschevich Germán 186


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Kinect Studio

Kinect Studio es una herramienta que ayuda al usuario a grabar y luego reproducir los
flujos de datos de color y de profundidad generados por Kinect. Se utiliza esta herramienta para
leer y reproducir los flujos de datos y, de esta manera, permitir al desarrollador corregir errores
de funcionalidad (debug) en una aplicación, crear escenarios repetidos para realizar pruebas y
analizar el rendimiento de la misma.

En resumen, Kinect Studio brinda la posibilidad de pararse frente a la cámara o poner


objetos enfrente de él y grabar los datos de video a color y de profundidad, para luego utilizarlos
en su aplicación a fin de, por ejemplo, realizar pruebas. A modo de ejemplo, se puede describir la
situación en donde el programador está realizando pruebas sobre su aplicación y éste, cuando
desea probarla, debe pararse frente al sensor y realizar determinada acción o gesto. Con el Kinect
Studio, el programador puede grabar dicha escena haciendo el gesto o realizando una acción una
sola vez, y reproducirla las veces que quiera. De esta manera, su aplicación interpretará esos
datos de entrada, que no son más que los flujos de video y de profundidad, y éste puede probar su
aplicación sin la necesidad de tener que realizar los movimientos repetidas veces.

Para que Kinect Studio reciba datos desde Kinect, se debe estar utilizando una
aplicación de Kinect para Windows que inicialice el sensor. Esto permite a Kinect Studio recibir
los flujos de datos de color y de profundidad. Solo una instancia de Kinect Studio puede estar
conectada a una aplicación corriendo a la vez. Cuando se ejecuta, se muestra una ventana de
conexión y se selecciona a qué aplicación de Kinect se quiere conectar.

La aplicación en sí es bastante intuitiva de utilizar como se muestra en la siguiente


imagen.

Diaz Gastón, Leschevich Germán 187


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-12 - Kinect Studio

Face Tracking SDK – Librería para la detección de caras

El Kit de Desarrollo (SDK) para la detección de caras de Microsoft para Kinect, junto
con el SDK, permite al desarrollador crear aplicaciones que pueden detectar caras humanas en
tiempo real. Esta librería se encuentra en el Toolkit de Microsoft descripto precedentemente,
incluso en dicho Toolkit hay códigos de ejemplo para utilizar este Kit.

El motor del SDK para la detección de caras analiza la entrada de la cámara de Kinect,
deduce la posición de la cabeza y las expresiones faciales, y ambas informaciones están
disponibles para que el programador las utilice en una aplicación en tiempo real. Por ejemplo,
esta información puede ser usada para renderizar la cabeza de una persona detectada, y su
expresión facial para crear un avatar en un videojuego o en una aplicación de comunicación o
bien para controlar una interfaz natural de usuario (NUI).

Diaz Gastón, Leschevich Germán 188


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-13 - Ejes de coordenadas del sensor y máscara computada en 3D

Imágenes de entrada: Este SDK acepta las imágenes de las cámaras RGB y de
profundidad del Kinect como entrada. La calidad de la detección puede verse afectada por la
calidad de los frames de entrada (esto es, los cuadros más oscuros o difusos se detectarán peor
que los cuadros brillosos o claros).

Salidas arrojadas por la detección de caras: A continuación se describen las salidas


del motor de detección de caras. Cada vez que se llama a determinadas funciones (incluidas en la
librería) dentro de la aplicación, se actualiza la siguiente información sobre el usuario detectado:

 Estado del seguimiento.

 Puntos en 2D.

 Posición de la cabeza en 3D.

 Unidades de animación.

Malla y puntos en 2D: El SDK para detección de caras detecta 87 puntos en 2


dimensiones, sumándole otros 13 puntos que no son mostrados en la siguiente figura.

Diaz Gastón, Leschevich Germán 189


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-14 - Puntos en 2D detectados por el SDK

Estos puntos son retornados en un arreglo, y son definidos en el espacio de coordenadas


de la imagen RGB (en una resolución de 640x480) que devuelve el sensor Kinect.

Los 13 puntos que no son incluidos en la figura son:

 El centro del ojo, las esquinas de la boca y el centro de la nariz.

 Una caja (circulo) alrededor de la cabeza.

Posición de la cabeza en 3D: La posición de la cabeza del usuario en los ejes X, Y, Z


son devueltos en base al sistema de coordenadas de “mano derecha” (con el punto de origen en el
sensor, el eje Z apuntado para el usuario y el eje Y apuntando hacia arriba – es el mismo sistema
que utiliza el Kinect en el cuadro de coordenadas para el esqueleto). Las traslaciones son medidas
en metros.

La posición de la cabeza del usuario es capturada en tres ángulos: cabeceo (pitch),


balanceo (roll) y guiño (yaw).

Diaz Gastón, Leschevich Germán 190


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-15 - Ángulos de detección de la cabeza del usuario

Figura 5-16 - Aplicación de demostración incluida en el Toolkit. Muestra modelado de la cara y las expresiones en
3D

Diaz Gastón, Leschevich Germán 191


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.3.1.8 Comentarios y conclusiones

Ya explicados los flujos de datos más importantes que otorga Kinect al desarrollador y
las clases y propiedades del SDK que permiten manipularlos e integrarlos en aplicaciones, se
puede decir que el SDK y los drivers incluidos en él, son los que permiten utilizar Kinect en su
máximo esplendor. Por supuesto que este fue lanzado por Microsoft que es la empresa
desarrolladora de Kinect, por ende tiene coherencia que sea el que mejor aprovecha las
cualidades del mismo.

Además de este kit, junto con los drivers, se puede descargar y utilizar de manera
gratuita (algo poco común en productos o aplicaciones lanzadas por Microsoft) un Toolkit que
brinda distintas aplicaciones sencillas de utilizar para visualizar y probar todas las posibilidades y
explotar el potencial de Kinect, tales como el reconocimiento de voz, la cámara de profundidad,
el reconocimiento del esqueleto, entre otras. Pero lo mejor de estas herramientas es que, en varias
de ellas, se puede acceder a su código y ejemplos, lo que permite al desarrollador familiarizarse
de una manera más práctica y gráfica con la programación de aplicaciones para Kinect.

Para profundizar el tema se puede consultar la bibliografía (Microsoft, 2012) y (Catuhe,


2012)

5.3.2 COMUNIDAD OPEN KINECT

OpenKinect es una comunidad abierta para personas interesadas en utilizar el Kinect con
la PC u otros dispositivos. Allí se trabaja en librerías de código abierto, las cuales son
compatibles con los sistemas operativos Windows, Linux y Mac.

La comunidad OpenKinect consta con más de 2000 miembros que aportan sus
conocimientos para el proyecto. El proyecto principal en que se trabaja allí es el software
libfreenect.

Este software consiste en drivers para Kinect que sirven para Linux, Mac y Windows, y
soporta las opciones de hardware del Kinect, tanto como los datos de las cámaras RBG y de
profundidad, motores, acelerómetro, LED y audio.

Diaz Gastón, Leschevich Germán 192


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Además, posee compatibilidad para varios lenguajes mediante algunas librerías (también
llamadas wrappers), entre los más importantes se encuentran C, C++, C#, Python, Ruby, java,
etc.

5.4 PROYECTOS CON KINECT


Microsoft investigó y construyó Kinect para revolucionar la manera de jugar a los
videojuegos y la experiencia del usuario en el entretenimiento. Pero a lo largo de ese camino, los
usuarios utilizan Kinect en ámbitos inimaginables. Desde ayudar en la rehabilitación de los
chicos con autismo, hasta asistir a los médicos en la sala de operaciones, se está llevando a Kinect
más allá del ámbito de los videojuegos. A eso, Microsoft, le llama “Efecto Kinect”.

A modo ilustrativo, se describirán brevemente algunos de los proyectos más interesantes


de Kinect en distintos ámbitos fuera de los juegos.

5.4.1 TEDCAS – AYUDA EN EL QUIRÓFANO

El TedCas que tiene el objetivo de ayudar a los médicos nada más y nada menos que en
el quirófano.

Los doctores del Hospital Sunnybrook de Canadá, utilizan Kinect en la sala de cirugía
(junto con una pantalla o proyector) como controlador libre de manos para manipular radiografías
e imágenes, en lugar de tener que salir del área estéril que rodea al paciente para ponerlas
manualmente en un monitor o atril donde se puedan observar con claridad.

Aunque esto no parezca significativo, el proceso de esterilización del doctor puede durar
20 minutos antes de que éste pueda volver junto al paciente; a menudo, las cirugías pueden durar
una hora más que lo necesario por esta situación. En suma, el cirujano debe retener esos datos
que le dio la imagen cada vez que vuelve junto al paciente.

Diaz Gastón, Leschevich Germán 193


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Con esta aplicación, los doctores simplemente pueden utilizar los gestos de sus manos
para hacer zoom sobre la radiografía, tomografía o imagen similar, o pasar a través de varias de
estas imágenes (TedCas, 2013)

Figura 5-17 - Cirujano utilizando gestos para manipular la radiografía

Figura 5-18 - Cirujano navegando entre imágenes usando gestos

Diaz Gastón, Leschevich Germán 194


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 5-19 - Cirujano analizando la radiografía para guiarse en la cirugía

5.4.2 TOPSHOP – AR DOOR

Este proyecto es un probador de ropa con Kinect y Realidad Aumentada, el cual ya está
implementado, y consiste en no tener que ir al probador en un local de ropa cada vez que se
quiere probar una prenda. La tienda de moda Topshop instaló un sensor Kinect con una pantalla
que simula un espejo, pero con el agregado de que posee realidad aumentada, la cual, combinada
con la tecnología y funciones de Kinect, permite al usuario probarse prendas disponibles en el
local.

Figura 5-20 - Cliente de Topshop interactuando con la aplicación.

Diaz Gastón, Leschevich Germán 195


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.4.3 KINECT EN LA EDUCACIÓN

El aprendizaje interactivo es clave para motivar y comprometer a los estudiantes en un


mundo tecnológicamente tan avanzado. Debido a la naturaleza digital de la vida de los
estudiantes, que incluye su interés en los videojuegos, cada vez más educadores utilizan enfoques
de aprendizaje inmersivos y basados en juegos para ayudar a los estudiantes a desarrollar
habilidades críticas para el siglo 21.

En las aulas de alrededor del mundo, los docentes que incorporan Kinect en sus planes
de estudios reportan mejoras tangibles en el compromiso y aprendizaje de sus alumnos.

En las escuelas públicas del Condado de Loudon, los profesores utilizan el videojuego
“Kinect Sports” como una ayuda para enseñar conceptos matemáticos como patrones aleatorios,
probabilidad y ángulos a través de los bolos.

Los alumnos de tercer año, utilizan el gadget de “Kinect Fun Labs Kinect Googley Eyes”
para dar una presentación de la lección aprendida, y los de cuarto año utilizan “Avatar Kinect”
para producir programas de televisión y comerciales para fortalecer sus habilidades literarias.

En el Distrito Escolar de Los Ángeles, los profesores de cuarto grado en “Middleton


Elementary” utilizan “Body and Brain Connection” de NAMCO BANDAI Games America Inc.
de Kinect para Xbox 360, para enseñar lecciones matemáticas sobre ángulos, probabilidad y
matemática. Los líderes escolares son testigos de las mejoras en el comportamiento de sus
estudiantes, y el aumento en su atención y compromiso cuando utilizan Kinect.

Figura 5-21 - Videojuego Body and Brain Connection (Namco Bandai)

Diaz Gastón, Leschevich Germán 196


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

5.5 KINECT V2 – EL NUEVO KINECT


Junto con el lanzamiento de su nueva consola Xbox One, Microsoft incluyó Kinect v2,
la nueva versión del Kinect, ambos fueron lanzados al mercado el 22 de noviembre de 2013. En
particular, este primer lanzamiento incluyó ambos dispositivos juntos. Pero casi un año más
tarde, el 07 de octubre de 2014, Microsoft presentó el Kinect v2 para Windows, incluyendo
también el lanzamiento de la versión 2.0 del Kit de Desarrollo (SDK).

En particular, el Kinect v2 cumplirá las mismas funciones que su predecesor, pero con
tecnología mejorada, y ya sabiendo Microsoft que su dispositivo se utiliza para “algo más” que
videojuegos como se vio en el punto anterior.

El sensor Kinect v2, posee una cámara RGB que permite una resolución full HD
(1080p), y su fidelidad en los datos de profundidad ha mejorado considerablemente respecto de
su predecesor, evidenciando avances significativos en visualizar pequeños objetos de una manera
más clara.

5.5.1 SDK 2.0 – CARACTERÍSTICAS Y BENEFICIOS

Tabla 5-1 - Tabla que detalla características, beneficios y potenciales aplicaciones de ellos, del SDK 2.0 de Kinect

Característica Beneficio Potenciales aplicaciones

Soporte para Unity Pro Para más que solo juegos, Construir y publicar
Unity Pro ofrece prototipado aplicaciones utilizando
multiplataforma herramientas ya conocidas a
través de múltiples
plataformas.

Diaz Gastón, Leschevich Germán 197


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Orientación del cuerpo, la Con la habilidad de detectar Nuevos y mejores escenarios


mano y las articulaciones hasta seis personas y 25 partes en fitness, salud, educación,
mejorado del cuerpo por persona, y la entrenamiento,
mejor interpretación de la entretenimiento, juegos,
posición del cuerpo, se películas y comunicaciones.
obtienen posiciones más
anatómicamente correctas para
mejores interacciones, realizar
avatares más precisos y
parecidos a la vida real.

Soporte para Windows Store Ahora se pueden crear Se pueden ver y vender las
(tienda de aplicaciones para aplicaciones para Windows aplicaciones realizadas para
dispositivos Microsoft) Store usando herramientas ya Kinect v2 en Windows Store.
conocidas, y ofrecerlas a una
mayor cantidad de
consumidores

Herramientas poderosas Kinect Studio otorga una Desarrollar sobre la marcha sin
grabación y reproducción la necesidad de tener el sensor
mejorada, y el constructor de Kinect. Crear gestos
gestos visuales permite a los personalizados que
desarrolladores construir sus decrementan el tiempo de
propios gestos que el sistema prototipado y pruebas.
reconoce y utiliza para escribir
el código utilizando la máquina
de aprendizaje, incrementando
la eficiencia de costo y
productividad.

Diaz Gastón, Leschevich Germán 198


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Detección facial avanzada La resolución es 20 veces más Construir avatares que son más
grandes, permitiendo a la parecidos a la vida real.
aplicación crear una malla de
más de 1000 puntos para una
representación más precisa de
la cara de una persona

Soporte para aplicaciones El mejorado soporte para Por ejemplo, permitir que una
simultáneas múltiples aplicaciones permite aplicación de venta minorista y
acceder al mismo sensor de que una aplicación de
manera simultánea inteligencia de negocios
accedan al mismo tiempo al
sensor, podría lograr tener una
inteligencia de negocios en
tiempo real en el negocio
minorista.

Para más información acerca de Kinect v2, se puede consultar (Microsoft, 2014).

Diaz Gastón, Leschevich Germán 199


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 6

6 INTRODUCCIÓN AL DESARROLLO
En este capítulo se describirán, con más detalle, las herramientas que permiten
desarrollar aplicaciones con Kinect, como así también los entornos de desarrollo que se
complementan con las mismas, y librerías que son de utilidad para la programación con el
dispositivo. Por último, se especificará la justificación de la elección de algunas de ellas para el
desarrollo del caso de aplicación.

Diaz Gastón, Leschevich Germán 200


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

6.1 INTRODUCCIÓN
La computación basada en gestos, permite participar en actividades virtuales con el
movimiento y con gestos similares a los que se utilizarían en el mundo real, manipulando los
contenidos de manera intuitiva.

Las aplicaciones basadas en gestos mantienen en casi todos los casos una arquitectura en
común, la cual se muestra en el siguiente diagrama.

Frameworks y librerías gráficas

Aplicación

Wrapper

Framework

Drivers

Figura 6-1 - Arquitectura de una aplicación basada en gestos

Las librerías gráficas y toolkits (herramientas) de programación de propósito


general, brindan a los programadores facilidades relacionadas a los aspectos gráficos de la
aplicación, como por ejemplo, menús, botones o cualquier otro componente visual que se quiera
agregar a nivel de interfaz de usuario. Adicionalmente proveen ciertas características de propósito

Diaz Gastón, Leschevich Germán 201


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

general, como manejo de audio y video, gestión de memoria, hilos, entre otras. También le
permiten a los desarrolladores producir gráficos 2D y 3D.

La aplicación es el código fuente generado por el programador, utilizando los toolkits y


librerías gráficas, como así también interactuando con el framework por medio del wrapper.

El wrapper en este tipo de aplicaciones sirve para facilitar el uso de las funcionalidades
que brinda el framework, simplificando su uso para el programador.

El framework es la parte indispensable y más importante, ya que se encarga de definir


las API para escribir aplicaciones que utilizan interacción natural. Su propósito principal, es
formar una API estándar que permite la comunicación con:

 Sensores de audio y video. Dispositivos que “ven” y “escuchan” las figuras y


sus alrededores.

 Middleware de visión y percepción de audio. Es el software que analiza el


audio y los datos visuales registrados, y los comprende.

El driver se encarga de comunicar el framework con el dispositivo de detección de


gestos.

A continuación se explicarán las librerías que fueron analizadas en cada una de las capas
de la arquitectura, para luego determinar y justificar la elección de cada una de ellas.

6.2 LIBRERÍAS GRÁFICAS Y TOOLKITS


Las alternativas a utilizar como toolkits de programación de propósito general y
frameworks gráficos son:

 WPF (Windows Presentation Foundation). Es un marco de trabajo de interfaz


de usuario para crear aplicaciones interactivas. La plataforma de desarrollo de
WPF admite un amplio conjunto de características de desarrollo de aplicaciones,
que incluye un modelo de aplicaciones, recursos, controles, gráficos, diseño,

Diaz Gastón, Leschevich Germán 202


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

enlace de datos y documentos. Es un subconjunto de .NET Framework. WPF


utiliza el lenguaje XAML para proporcionar un modelo declarativo para la
programación de aplicaciones.

 Cinder. Es una librería en C++ que brinda manejos avanzados con los objetos de
las interfaces gráficas de usuario.

 Vvvv. Es un entorno de programación grafica para desarrollo y prototipado


rápido. Está diseñado para facilitar el manejo de ambientes multimedia a gran
escala con interfaces físicas, diseño gráfico en tiempo real, y audio y video con el
que se puede interactuar simultáneamente con multitud de usuarios.

 Unity. Es un motor de videojuego multiplataforma creado por Unity


Technologies. Está disponible como plataforma de desarrollo para Microsoft
Windows y OS X, y permite crear juegos para Windows, OS X, Linux, Xbox
360, PlayStation 3, Playstation Vita, Wii, Wii U, iPad, iPhone, Android y
Windows Phone. Gracias al plugin web de Unity, también se pueden desarrollar
videojuegos de navegador para Windows y Mac.

6.3 APLICACIÓN BASADA EN GESTOS CON RA


En esta capa de la arquitectura de una aplicación basada en dispositivos de detección de
gestos, se encuentra el código fuente generado por los programadores, utilizando tanto las
librerías gráficas como los wrappers y framework. El próximo capítulo, tendrá como uno de sus
objetivos, diseñar, desarrollar e implementar esta capa de la arquitectura.

6.4 WRAPPERS

6.4.1 SIMPLEOPENNI

SimpleOpenNI es un proyecto nacido en 2011 que otorga a los desarrolladores un


wrapper (envoltorio) de OpenNI y NITE para Processing (OpenNI y NITE se explicarán en la

Diaz Gastón, Leschevich Germán 203


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

sección 6.5.1 “OpenNI y NITE”). De todas maneras, no todas las funciones de OpenNI son
soportadas por SimpleOpenNI, está más orientado a otorgar un acceso más simple a las
funcionalidades de esta librería.

En otras palabras, lo que proporciona SimpleOpenNI son capacidades de OpenNI en


Processing, permitiendo así escribir código que permita recoger las ventajas que proporciona
dicho framework. Por esto es que se debe tener instalado NITE y OpenNI, cuando se accede
desde el Processing al código para manejar un dispositivo, lo complicado lo hace el código de
OpenNI debajo de SimpleOpenNI. La última versión es la 1.96, la cual soporta la versión de
OpenNI 2.

Hay que indicar que soporta los sistemas operativos Windows (32 y 64 bit), OSX (32 y
64 bit) y Linux64, y que es un proyecto open source. El aspecto negativo de este proyecto, es que
no existe mucha documentación sobre el mismo, si bien se pueden encontrar las funciones
existentes, pero sin demasiadas especificaciones. (SimpleOpenNI, 2013)

Figura 6-2 – Ejemplo de imagen de profundidad con SimpleOpenNI

6.4.2 PIKYNECT

PyKinect es un wrapper para crear aplicaciones escritas en Python mediante PTVS


(Python Tool for Visual Studio, Herramientas de Python para Visual Studio). Dicha herramienta
se integra al entorno de desarrollo Visual Studio, con la cual se puede utilizar el dispositivo

Diaz Gastón, Leschevich Germán 204


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Kinect. Una de sus características más destacadas, es la de poder utilizarlo en conjunto con
PyGame (librería para desarrollar juegos en Python), para crear videojuegos o interfaces de
manera sencilla y rápida. Al integrarse con Visual Studio, se pueden explotar todas las funciones
de SDK de Kinect, logrando, en teoría, los mismos resultados que con C# y C++.

Figura 6-3 - Demo con PyKinect

6.4.3 KINECT TOOLBOX

Es una librería de código abierto que provee herramientas para el desarrollo de


aplicaciones con el SDK de Kinect para Windows. La misma incluye herramientas de ayuda para
detección de gestos, posturas, grabación/reproducción de video, entre otras. Actualmente es
soportada la versión 1.7 del SDK oficial de Kinect.

Diaz Gastón, Leschevich Germán 205


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Kinect Toolbox otorga una herramienta para el reconocimiento de gestos y posturas


predefinidas, como por ejemplo el gesto de “deslizar la mano de izquierda a derecha” o la postura
de “saludar manteniendo la mano arriba a la altura de la cabeza”. (KinectToolbox, 2011)

Figura 6-4 - Gesto de deslizar la mano de izquierda a derecha

6.5 FRAMEWORK

6.5.1 OPENNI Y NITE

La empresa PrimeSense, junto con Microsoft, fueron las desarrolladoras de Kinect.


Luego, PrimeSense junto con Willow Garage y Side Kick, lanzaron un framework de código
abierto llamado OpenNI. El mismo se encarga de implementar el motor de percepción, tomando
como entrada los datos espaciales de la escena obtenidos por el sensor Kinect y analizándolos
para brindar información de mayor nivel de abstracción, como por ejemplo, reconocimiento de
gestos, reconocimiento de personas, tracking del esqueleto, etc.

OpenNI, permite comunicarse con los sensores de video y de profundidad, mientras que
proporciona un middleware llamado NITE, que sirve de puente entre el hardware del dispositivo
y las aplicaciones e interfaces del sistema operativo de la PC. La idea de la utilización de estas
herramientas, es facilitar el desarrollo de aplicaciones que funcionen con una interfaz natural,
utilizando gestos y movimientos corporales. Además de funcionar como middleware, NITE es el
encargado de los algoritmos de la detección de movimiento.

Diaz Gastón, Leschevich Germán 206


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Con respecto a NITE, se puede decir que es el encargado de analizar y comprender los
datos obtenidos de la escena. Por ejemplo, recibe datos visuales como una imagen y retorna la
posición de la palma de la mano detectada en dicha imagen, o identifica ciertos gestos
predefinidos y alerta a la aplicación cuando los detecta.

6.5.1.1 ¿Es realmente Multiplataforma?

Actualmente OpenNI se encuentra en su versión 2.2, cabe recordar que es compatible


tanto con Windows, como con Linux y MacOS. En este punto se genera una controversia, ya que
desde la versión 2, OpenNI solo es compatible “oficialmente” con los drivers que brinda
Microsoft para comunicarse con Kinect, lo cuales, solo funcionan bajo Windows. Los
desarrolladores de las demás plataformas se ven obligados a probar con drivers “no oficiales”, los
cuales son menos estables, y no explotan por completo las funcionalidades de Kinect.

6.5.1.2 Arquitectura

Figura 6-5 - Arquitectura del Framework OpenNi.

Como se ve en la figura anterior, OpenNI junto con NITE otorga a los desarrolladores
una opción más para el desarrollo de aplicaciones con distintos dispositivos de detección de
gestos.

Diaz Gastón, Leschevich Germán 207


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

6.5.1.3 Características

Las características principales que OpenNI brinda son:

 Análisis completo y seguimiento del esqueleto.

 Análisis de la posición.

 Seguimiento de las manos o reconocimiento de gestos.

Uno de los componentes middleware comúnmente utilizados, es NITE, cuyo motor de


percepción se encarga, entre otras cosas, del seguimiento del esqueleto y de la mano, el
reconocimiento de varios gestos predefinidos o la identificación de usuarios, y la determinación
de cuál de ellos tiene el control en cada momento.

Figura 6-6 - Algunas de las funcionalidades implementadas por NITE. (Izquierda: Full Body Tracking. derecha:
Hand detection and Tracking)

Resumiendo, OpenNI permite interactuar básicamente con dos componentes. Por un


lado, con componentes hardware como por ejemplo sensores 3D y cámaras RGB que proveen
datos crudos obtenidos a partir de la escena actual, y por otro, componentes middleware como el
ya mencionado NITE, que se encargan de procesar y comprender esos datos crudos para brindar
información de mayor nivel de abstracción, los cuales son, en definitiva, el cerebro del sistema
que puede ver la escena y analizarla. Los sensores observan el entorno y el middleware hace las
veces de motor de percepción para comprender la interacción del usuario con ese entorno.

Diaz Gastón, Leschevich Germán 208


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

OpenNI se puede complementar o utilizar de manera más sencilla con SimpleOpenNI


como se mencionó anteriormente. Además, SimpleOpenNI también se puede utilizar con
Processing, que es un entorno de desarrollo (programado en Java) de código abierto, creado para
realizar aplicaciones interactivas que hacen énfasis en la parte gráfica, también nombrado en la
sección anterior.

6.5.2 MICROSOFT KINECT SDK

El Kit de Desarrollo de Software (SDK) de Kinect para Windows, está formado por un
conjunto de librerías que permiten programar aplicaciones en distintas plataformas de Microsoft
utilizando como dispositivo de entrada el sensor Kinect. Gracias al SDK se pueden desarrollar
aplicaciones en C#, Visual Basic o C++, utilizando el entorno de programación Visual Studio
2010 o superior, en un sistema operativo Windows 7 o Windows 8.

El SKD es, en definitiva, una interfaz para interactuar con Kinect por medio de los
drivers del sistema, dicha librería incluye los drivers que son los que interactúan con el
dispositivo, mientras que el sistema operativo y la aplicación se comunican con el dispositivo
mediante el programa.

Como ya se mencionara en el capítulo anterior, el instalador del SDK trae consigo una
aplicación (llamada Windows Developer Toolkit) que contiene herramientas tales como el SDK
Face Tracking, que permite detectar la cara del usuario, y el Kinect Studio para grabar y
reproducir los flujos de datos de profundidad y color. Además brinda códigos de ejemplo para
ayudar de una manera más práctica al desarrollador.

6.5.2.1 Algunas características del SDK

La librería del SDK permite al desarrollador interactuar directamente con las cámaras, el
arreglo de micrófonos y el motor de Kinect. También se pueden desarrollar aplicaciones que
funcionan con reconocimiento de gestos y de voz. Algunas de las características más importantes
que permite el SDK son:

Diaz Gastón, Leschevich Germán 209


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Capturar y procesar los flujos de datos de profundidad y color.

 Detección del esqueleto humano y movimientos del mismo.

 Capturar el flujo de datos de audio.

 Ajustar el ángulo del sensor.

6.5.2.2 Clasificación de las librerías del SDK

Para entender las funcionalidades de las diferentes librerías y saber cómo utilizarlas, se
pueden clasificar las mismas en dos categorías:

 Las que controlan el acceso a los sensores de Kinect

 Las que acceden a los micrófonos y controlan el audio

La primera categoría es la que se encarga de los sensores capturando datos de color,


datos de profundidad, detectando el esqueleto e inicializando el dispositivo. Un conjunto amplio
de librerías en esta categoría, interactúan directamente con el hardware del sensor, mientras que
otras librerías se encargan de aplicar los datos capturados del mismo.

Figura 6-7 – Estructura de librerías del SDK

Diaz Gastón, Leschevich Germán 210


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por otro lado, las librerías de audio controlan el arreglo de micrófonos de Kinect y
ayudan a capturar el flujo de datos de audio, controlando la fuente del sonido, permitiendo el
reconocimiento de voz, etc.

6.5.2.3 Desarrollar aplicaciones con Kinect SDK

Luego de la instalación de los componentes y de haber conectado satisfactoriamente


Kinect a la PC, el siguiente paso es configurar el entorno de desarrollo (Visual Studio en este
caso) para poder desarrollar las aplicaciones para Kinect. Cabe aclarar que los ejemplos de
código y de configuración del entorno dados en esta sección, son para el lenguaje C# y que los
ejemplos de programación abarcarán principalmente el manejo de los flujos de datos de las
imágenes que otorga Kinect, para más información se puede consultar la bibliografía de
referencia citada al final del capítulo. (Jana, 2012)

Crear el proyecto e importar la librería de Kinect en la aplicación

Para empezar a codificar en VS, lo primero que se debe hacer es crear el proyecto y
añadir las sentencias using para poder permitir importar las librerías necesarias, en este caso, la
referencia anteriormente agregada al SDK. Entonces, se abre el archivo
MainWindow.xaml.cs desde el explorador de soluciones y se escribe la siguiente línea de
código en la parte superior del programa:

using Microsoft.Kinect;

La clase KinectSensor es parte de las librerías del SDK, y es la responsable de la


mayoría de las operaciones con el sensor Kinect. Se debe crear una instancia de esta clase y luego
utilizar dicha instancia para el control del dispositivo y para leer la información del mismo.

En una aplicación para Kinect, cada dispositivo debe estar representado como una
instancia de la clase KinectSensor, ya que esta representará la tubería de datos completa del
sensor en tiempo de ejecución.

Diaz Gastón, Leschevich Germán 211


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En el siguiente diagrama, se muestra la utilización del sensor Kinect mientras dure la


aplicación. En el mismo se observa una fase de inicialización, una fase de operación y una fase de
baja del sensor. Estas tres fases son las que generalmente se deben hacer en una aplicación para
Kinect.

Figura 6-8 – Fases de la instancia del sensor dentro de una aplicación

El objeto del sensor se define como cualquier otro objeto. Dicho objeto definido, solo
entrará en acción cuando se inicializa alguna de las operaciones específicas de Kinect, como el
flujo de datos de profundidad o color. Para definir dicho objeto, entonces, se procede de la
siguiente manera:

KinectSensor sensor;

El objeto (en este caso llamado sensor) necesita una referencia al dispositivo de Kinect
para poder utilizarse y ser instanciado, ya que este no posee un constructor público. El SDK
inicializa los objetos KinectSensor cuando detecta un dispositivo Kinect ligado al sistema.

La clase KinectSensor tiene una propiedad estática del tipo


KinectSensorCollection, cuyo nombre es KinectSensors, la cual consiste en el
conjunto de sensores que están conectados al sistema. La colección
KinectSensor.KinectSensors, entonces, retorna el conjunto de dispositivos Kinect
conectados a la PC.

Diaz Gastón, Leschevich Germán 212


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Entonces, si se tienen dos sensores conectados, el índice


KinectSensor.KinectSensor[0], representará el primer dispositivo Kinect y el índice
[1] representará al segundo.

Para obtener la referencia al sensor conectado, se debe realizar la siguiente operación:

this.sensor = KinectSensor.KinectSensors[0];

Una vez que se tiene el objeto para el Kinect, se debe invocar al método
KinectSensor.Start(), para encenderlo, en este caso sería:

this.sensor.Start();

Cuando se ha finalizado el trabajo con el sensor, se debería llamar al método Stop() para
inhabilitar la instancia del sensor. Por ejemplo:

this.sensor.Stop();

Activar los flujos de datos

La clase KinectSensor tiene eventos específicos que permiten conectarse con los
flujos de datos de imagen a color, de profundidad y del esqueleto, como así también activar los
mismos.

En el SDK, los flujos de datos de color, de profundidad y del esqueleto están


representados por los tipos ColorImageStream, DepthImageStream y
SkeletonStream, respectivamente. Cada uno con un método llamado Enable() para abrir
el flujo a través de la tubería entre el dispositivo y el SDK.

Hay que aclarar que se puede habilitar el flujo de datos sólo después de haber encendido
el sensor mediante el método Start() como se muestra a continuación:

this.sensor = KinectSensor.KinectSensors[0];
this.StartSensor();
this.sensor.ColorStream.Enable();

Diaz Gastón, Leschevich Germán 213


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

this.sensor.DepthStream.Enable();
this.sensor.SkeletonStream.Enable();
El flujo de datos de imágenes de Kinect

Un flujo de datos, no es más que una sucesión de frames. Kinect puede obtener esos
frames con un promedio de entre 12 a 30 frames por segundo (fps). El fps varía según la
resolución y el tipo.

Los diferentes flujos son transferidos en diferentes tuberías, las cuales se deben activar
como se mostró anteriormente. El SDK soporta dos formatos de flujos de datos de imágenes:
flujo de datos de color (RGB) y de profundidad (Depth).

La librería ofrece una clase base llamada ImageStream que es una clase abstracta, y
la implementan tanto la clase de flujo de imagen a color, como la de profundidad.

El flujo de datos de la imagen a color (Color o RGB Stream)

Antes de especificar algunas características y las clases que se deben utilizar para
obtener los frames provenientes del flujo de datos de la imagen a color (Color o RGB Stream),
hay que señalar que Kinect permite obtener imágenes de 32 bits y 16 bits por pixel, en el flujo de
datos RGB, con los siguientes rangos de fps y resoluciones:

Imagen a color 32 bits:

 640x480 (30 frames por segundo).

 1280x960 (a 12 frames por segundo).

Imagen a color 16 bits:

 640x480 (30 frames por segundo).

Diaz Gastón, Leschevich Germán 214


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Obtener de los frames a color

Los frames de la imagen a color son del tipo ColorImageFrame. Para obtenerlos, se
debe asociar el objeto a un manejador de eventos o solicitarle al sensor que envíe un frame, es
decir, existen dos formas de adquirir el frame de color, por eventos o por polling.

Modelo por eventos

Utilizando este modelo, el sensor envía el frame a la aplicación cada vez que un frame
nuevo es capturado por el sensor. Para hacerlo, se necesita usar un manejador de eventos en el
lugar del código donde se quieren procesar los frames que se obtienen. Antes de asociar el
evento, se debe configurar el tipo de color y la resolución de los frames de entrada, una vez hecho
esto y asociado el evento, el sensor enviará los datos continuamente hasta que se desactive dicho
envío de datos, o se detenga el dispositivo.

Figura 6-9 – Esquema ilustrativo del modelo por eventos

Modelo por polling

El modelo por polling es conocido por ser un modelo bajo demanda, donde se necesita
enviar la solicitud al sensor si se necesita obtener un frame. Para este modelo, se debe definir el
intervalo de tiempo que transcurrirá entre cada obtención de frame.

Diaz Gastón, Leschevich Germán 215


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 6-10 – Esquema ilustrativo del modelo por polling

Capturar la imagen a color de la cámara de Kinect

Capturar los frames de la imagen a color y mostrarlo en la aplicación, puede implicar los
siguientes pasos:

1. Habilitar el flujo de datos de la imagen a color.

2. Asociar dicho flujo con el manejador de eventos.

3. Procesar los frames entrantes.

4. Renderizar los frames en la aplicación.

5. Iniciar el sensor antes de empezar a transmitir los frames y detenerlo después.

A continuación, se describe cómo proceder a nivel de código en algunos de estos pasos.

Habilitar el flujo de datos de las imágenes a color

La clase KinectSensor, anteriormente descripta, tiene la propiedad ColorStream


del tipo ColorImageStream, que es la encargada de manejar todo lo que se requiere para
capturar la imagen a color generada por la cámara del dispositivo.

Lo primero que se debe hacer es iniciar el sensor con el método start(), y habilitar el
flujo de datos a color con el método Enable() perteneciente a la clase ColorImageStream,
esto se logra de la siguiente manera:

this.sensor.ColorStream.Enable()

Diaz Gastón, Leschevich Germán 216


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Cuando el sensor se encuentre iniciado y el flujo de datos habilitado, Kinect generará el


stream de las imágenes de la cámara a color. El paso siguiente es “hacerle saber” al sensor, qué
hacer cuando se captura un nuevo frame de este tipo. Para lograrlo, se asocia un manejador de
evento al canal o tubería de Kinect por donde pasa el flujo de datos mencionado, lo cual se
ejemplificará más adelante.

Elegir formato de la imagen

Por defecto la función Enable() no acepta argumentos y habilita el flujo de datos con
una resolución RgbResolution640x480Fps30, la cual es una de las opciones de resolución
en el tipo ColorImageFormat.

ColorImageFormat se encuentra definido en la librería Microsoft.Kinect. Se


puede especificar mediante dicho tipo, el formato y la resolución de la imagen con las siguientes
opciones:

 RgbResolution640x480Fps30.

 RgbResolution1280x960Fps12.

 YuvResolution640x480Fps15.

 RawYuvResolution640x480Fps15.

 InfraredResolution640x480Fps30.

 RawBayerResolution640x480Fps30.

 RawBayerResolution1280x960Fps12.

 Undefined.

Asociar el manejador de eventos

La clase KinectSensor tiene un evento llamado ColorFrameReady, el cual es


invocado cuando hay un nuevo frame enviado por el sensor. Entonces, para asociar el evento a un
manejador, se debe proceder de la siguiente manera:

Diaz Gastón, Leschevich Germán 217


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

this.sensor.ColorFrameReady += sensor_ColorFrameReady;

Asimismo, se define el manejador como:

void sensor_ColorFrameReady(object sender,


ColorImageFrameReadyEventsArgs e)
{
}

La asociación anteriormente descripta, se debe hacer luego de la inicialización del


sensor. Una vez que se han completado estos pasos, se deben procesar los frames entrantes, esto
se realiza en el manejador de eventos que se ha definido (sensor_ColorFrameReady).

Procesar los frames entrantes

Cuando el manejador descripto en la sección anterior es llamado, significa que un nuevo


frame ha sido enviado por el sensor y que el mismo ya se puede procesar. Los argumentos del
evento, esto es, ColorImageFrameReadyEventsArgs, poseen un método llamado
OpenColorImageFrame() que retorna un frame de la imagen del tipo
ColorImageFrame. A continuación, se podrá observar un ejemplo del formato del manejador
del evento para procesar un frame:

void sensor_ColorFrameReady(object sender,ColorImageFrameReadyEventArgs


e)
{
using (ColorImageFrame RGBframe = e.OpenColorImageFrame())
{
// Si el frame es nulo se ignora
if (RGBframe == null)
{
return;
}
else
{
// Obtener los datos de los pixeles en un arreglo de bytes
this.datosPixel = new byte[RGBframe.PixelDataLength];
// Se copian los datos de los pixel en datosPixel
RGBframe.CopyPixelDataTo(this.datosPixel);
// Se calcula el segmento (stride)

Diaz Gastón, Leschevich Germán 218


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

int stride = RGBframe.Width * RGBframe.BytesPerPixel;


//Se asigna el mapa de bits (Bitmap) al control de la
interfaz de la //aplicacion para mostrar la imagen
this.VideoControl.Source = BitmapSource.Create(
RGBframe.Width, RGBframe.Height, 96, 96,PixelFormats.Bgr32,
null, pixelData, stride);
}
}

Cada vez que Kinect envía un nuevo frame, se invoca el manejador, y en el primer paso,
se lee el ColorImageFrame, que retorna el frame del tipo devuelto por el método
OpenColorImageFrame().

Acto seguido, se verifica que el frame recibido contenga información y se calcula el


tamaño del frame en el arreglo byte[]. La propiedad PixeDataLength es de solo lectura y
retorna el tamaño de los datos del pixel. Internamente es una propiedad abstracta de la clase
ImageFrame y es sobrescrita por la clase ColorImageFrame. Dicha propiedad otorga el
tamaño de los datos del pixel en formato de número entero (int).

Se copia el arreglo de los datos de los pixeles en el frame invocando al método


CopyPixelDataTo().

Por último, se crea una fuente de imagen en formato de mapa de bits (Bitmap) con la
imagen del frame y se asigna el mismo al control de la imagen.

El método BitmapSource.Create() crea un BitmapSource desde un arreglo


de pixeles. La información del pixel se encuentra almacenada en las variables RGBframe y
datosPixel. El único parámetro que se necesitará saber es el ancho (en bytes) de un segmento
de datos del pixel incluyendo el relleno (esto se encuentra asignado a la variable stride).

En la siguiente figura, se muestra que el ancho total de las filas de la imagen es el


segmento donde los datos del pixel representan el ancho actual de la imagen, y un pixel extra es
agregado para el relleno.

Diaz Gastón, Leschevich Germán 219


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 6-11 – Formato del Bitmap

En esta sección se describió el procesamiento de un solo frame de la imagen, pero una


sucesión similar de operaciones sobre los demás frames, produce el flujo de datos de video
completo. Es decir, se debe proceder de la misma manera (o de manera similar) para procesar los
demás frames y poder reproducir la imagen de la cámara a color de Kinect en la aplicación.

El flujo de datos de la imagen de profundidad (depth stream)

Kinect devuelve el stream de datos de profundidad como una sucesión de frames de


profundidad. Pero en realidad, no solo es eso, por detrás Kinect utiliza una serie de algoritmos en
los datos capturados que dan al desarrollador más que una imagen, le otorga al mismo la
información de qué tan lejos está cada pixel contenido en el frame. El pixel de profundidad
contiene la información de la distancia entre el dispositivo y los objetos frente a él en milímetros.
El formato de dichos datos está basado en las coordenadas X e Y del sensor. Así, por ejemplo, si
las coordenadas de un pixel son 200x300, los datos de profundidad de ese pixel contiene la
distancia en milímetros del mismo a Kinect, como se muestra en la siguiente imagen.

Diaz Gastón, Leschevich Germán 220


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 6-12 – Esquema que grafica la representación de los datos de un pixel de profundidad

Las resoluciones soportadas para el flujo de datos de profundidad a 30 frames por


segundo (fps) son:

 640x480.

 320x240.

 80x60.

En el capítulo anterior se describió la manera en que Kinect logra capturar estos datos e
informaciones sobre la profundidad de la escena. Por lo tanto, a continuación, y al igual que
como se lo hizo en la sección anterior con el flujo de datos a color, se describirá a nivel de código
la manera de capturar y procesar el flujo de datos de profundidad.

Capturar y procesar los datos de profundidad

Los pasos a seguir para capturar y procesar los datos de profundidad, son similares a los
que se enumeraron en la obtención de los datos a color:

1. Habilitar el flujo de datos de profundidad y su formato.

2. Asociar a dicho flujo de datos, un manejador de eventos.

3. Procesar los frames de profundidad entrantes.

Diaz Gastón, Leschevich Germán 221


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

4. Renderizar los frames en la aplicación.

Habilitar el flujo de datos de profundidad y elegir el formato de la imagen

Al igual que el flujo de datos de color, la clase KinectSensor también posee la


propiedad DepthStream y ésta, a su vez, tiene el método Enable() para habilitar el canal de
flujo de datos de profundidad.

this.sensor.DepthStream.Enable();

La clase ImageStream tiene un método sobrecargado para Enable(). Por defecto, el


sensor habilita el flujo de datos con una resolución Resolution640x480Fps30. Si se quiere
inicializar con otro formato de imagen, se utiliza el método Enable() con el argumento de tipo
DepthImageFormat como se muestra a continuación:

this.sensor.DepthStream.Enable(DepthImageFormat.Resolution320x24
0Fps30);

Asociar el manejador de eventos

Una vez que se ha habilitado el flujo de datos de profundidad, se debe asociar el


manejador de eventos DepthFrameReady al evento que se ejecuta cada vez que se recibe un
nuevo frame de profundidad, de la siguiente manera:

Sensor.DepthFrameReady+=newEventHandler
<DepthImageFrameReadyEventArgs> (sensor_DepthFrameReady);

Procesar los frames de profundidad

El manejador de eventos DepthFrameReady invoca con los argumentos


DepthImageFrameReadyEventArgs que poseen el método OpenDepthImageFrame() para
retornar el frame de la imagen de profundidad enviado por el sensor.

La definición del método DepthFrameReady debería ser:

Diaz Gastón, Leschevich Germán 222


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

void sensor_DepthFrameReady

(object sender, DepthImageFrameReadyEventArgs e){}

Para obtener el frame de profundidad, se deben seguir pasos similares a los vistos
precedentemente en la recuperación de los frames a color. A continuación se ejemplifica cómo
debería quedar el contenido del manejador de eventos:

using (DepthImageFrame depthimageFrame = e.OpenDepthImageFrame())


{
if (depthimageFrame == null)
{
return;
}
short[]datosPixel = new short[depthFrame.PixelDataLength];
int stride = depthFrame.Width * 2;
depthFrame.CopyPixelDataTo(datosPixel);
depthUI.Source = BitmapSource.Create(depthFrame.
Width, depthFrame.Height, 96, 96, PixelFormats.Gray16, null,
datosPixel, stride );

En primer lugar, se obtuvo el frame utilizando el método


OpenDepthImageFrame(), el cual retorna los datos de profundidad crudos desde el sensor.
datosPixel crea un buffer del tamaño del frame de profundidad entrante (es del tipo short[]
porque son datos en formato 16-bits).

Al igual que los frames a color, los frames de profundidad tienen similares propiedades
para copiar los datos de los pixeles en el buffer, por ejemplo, CopyPixelDataTo() se utiliza
para copiar desde el arreglo de datos de un pixel al nuevo buffer. Antes de copiar dichos datos, se
calcula el tamaño del buffer utilizando la propiedad DepthImageFrame. Como el frame de
profundidad es una imagen de 16 bits en escala de grises, se debe especificar el PixelFormats
como Gray16, además de crear el mapeo de bits para el control de la imagen de profundidad
(Bitmap).

Diaz Gastón, Leschevich Germán 223


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por último, se crea el objeto BitmapSource y se asigna al control de la imagen


depthUI, el cual está definido en la interfaz de la aplicación para mostrar en pantalla el stream
de datos, esto se logra definiendo en el archivo de interfaz (XAML) la imagen de la siguiente
manera:

<Image Name= "depthUI" Strech= "Fill" />

Detectar el esqueleto

En el capítulo anterior se vieron los algoritmos y la tecnología que utiliza Kinect para
detectar el esqueleto humano.

Figura 6-13 – Los puntos del cuerpo humano que detecta Kinect

Diaz Gastón, Leschevich Germán 224


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por lo tanto, en esta sección, se darán a conocer los conceptos básicos para manejar los
datos que genera el dispositivo y que el SDK brinda al desarrollador para crear aplicaciones
utilizando esta funcionalidad. Hay que recordar que puede detectar hasta 20 puntos o
articulaciones del cuerpo.

El SDK también soporta la detección (o tracking) de un esqueleto “sentado”. Esto


significa que se puede detectar una persona que se encuentra sentada, y su esqueleto se
representará con 10 puntos o articulaciones.

Figura 6-14 – Esqueleto en modo sentado

Detección de los puntos o articulaciones (joints) del cuerpo humano

Los datos del esqueleto son devueltos por Kinect en la clase SkeletonStream. Para
configurar si la detección es la estándar (20 puntos del cuerpo) o en modo sentado, se utiliza
SkeletonTrackingMode cuando se inicializa el flujo de datos del esqueleto. El proceso de
obtener los datos del esqueleto, sigue la misma modalidad que en los flujos de datos a color y de
profundidad. El objeto KinectSensor tiene un evento llamado SkeletonFrameReady, el
cual se lanzará cada vez que los nuevos datos del esqueleto enviados por el sensor estén
disponibles. En este caso, cada frame del SkeletonStream produce un conjunto de objetos de la
clase Skeleton. Cada uno de estos objetos contiene, a su vez, los datos de una serie de puntos
(o articulaciones) Joint los cuales son agrupados en el objeto JointCollection.

Diaz Gastón, Leschevich Germán 225


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Para una mayor simplicidad y practicidad, se ejemplificará la detección y seguimiento de


la mano derecha del esqueleto.

Asignar un lugar a la mano en la interfaz de la aplicación

Lo primero que se debería hacer es representar la mano (o cualquier punto del cuerpo)
en la interfaz de la aplicación. Para esto, en el archivo XAML de la aplicación, se debe
reemplazar la sentencia Grid, que está definida por defecto, por la sentencia Canvas, y añadir
un control llamado Ellipse, y por último ponerle un nombre al mismo, en este caso,
manoDerecha. El archivo debe quedar de la siguiente manera:

<Canvas>

<Ellipse Canvas.Left="0" Canvas.Top="0" Fill="Blue" Height="15"


Name="manoDerecha" Width="15" />

</Canvas>

Canvas será la vista general, donde ellipse representará el punto de la articulación,


en este caso, la mano derecha.

Instanciar y habilitar la detección del esqueleto

Por supuesto que se da por sentado que debe existir la instancia del sensor (explicada
más arriba) de la clase KinectSensor, e iniciar el mismo (método start()). Una vez que se
tiene la referencia al sensor, se debe habilitar el flujo de datos del esqueleto mediante la
propiedad SkeletonStream, con el método Enable(). Luego se debe asociar el evento para
dicho flujo de datos, el cual invocará al método sensor_SkeletonFrameReady()
automáticamente siempre que el dispositivo genere un nuevo frame del esqueleto, dichas líneas
de código se ejemplifican a continuación:

this.sensor.SkeletonStream.Enable();
this.sensor.SkeletonFrameReady += sensor_SkeletonFrameReady;

Diaz Gastón, Leschevich Germán 226


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Cabe destacar que el procesamiento de los datos del esqueleto consume muchos recursos
y por eso es una buena práctica deshabilitarlo. Esto se logra utilizando el método Disable().

Procesar los frames del esqueleto

Como se dijo anteriormente, siempre que el sensor genere un frame del esqueleto, el
método sensor_SkeletonFrameReady() se invocará con el evento registrado
SkeletonFrameReady. Cuando dicho método sea invocado, el argumento del mismo será del tipo
SkeletonFrameReadyEventArgs, el cual tiene un método llamado
OpenSkeletonFrame() que lee el objeto SkeletonFrame del sensor.

Entonces, la definición estándar del método que manejará el evento


SkeletonFrameReady será:

void sensor_SkeletonFrameReady(object sender,


SkeletonFrameReadyEventArgs e)
{
}

Los pasos para obtener el frame son similares a los anteriormente vistos para los otros
flujos de datos (color y profundidad). El bloque de código del método debería quedar de la
siguiente manera:

void sensor_SkeletonFrameReady(object sender,


SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame esqueletoFrame = e.OpenSkeletonFrame())
{
if (esqueletoFrame == null)
{
return;
}
esqueletoFrame.CopySkeletonDataTo(totalEsqueletos);
Skeleton primerEsqueleto = (from trackskeleton in
totalEsqueletos
where trackskeleton.TrackingState ==
SkeletonTrackingState.Tracked
select trackskeleton).FirstOrDefault();

Diaz Gastón, Leschevich Germán 227


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

if (primerEsqueleto == null)
{
return;
}
if ( primerEsqueleto.Joints[JointType.HandRight].TrackingState
==
JointTrackingState.Tracked)
{
this.MapearElementoEnUI(primerEsqueleto);
}
}

El primer paso es obtener el frame utilizando el método OpenSkeletonFrame(), y


guardarlo en el objeto esqueletoFrame. Una vez que se tiene dicha información, se copia el
conjunto de datos completo al arreglo totalEsqueletos utilizando el método
CoySkeletonDataTo(). La definición del arreglo totalEsqueletos (el cual es un arreglo a
nivel de clase) debería ser:

Skeleton[] totalEsqueletos = new Skeleton [6];

Hay que aclarar que el tamaño (seis), es para poder almacenar hasta seis esqueletos, tal
cual lo permite el sensor.

Para una mayor simplicidad, se considerarán los datos de un solo esqueleto. El método
busca los esqueletos que se han detectado (Tracked) y finalmente selecciona el primero del
arreglo. La variable primerEsqueleto almacenará los puntos de tal esqueleto.

El siguiente paso es mapear los puntos del esqueleto en la interfaz de la aplicación. Esto
es así porque permitirá, utilizando la información de cada frame, obtener el movimiento de dicho
punto del cuerpo (en este caso la mano derecha). Para hacerlo, se invoca el método
MapearElementoEnUI() desde el método sensor_SkeletonFrameReady().

this.MapearElementoEnUI(primerEsqueleto);

Diaz Gastón, Leschevich Germán 228


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Mapear los puntos del esqueleto con elementos de la aplicación

Otro aspecto de la detección del esqueleto es el mapeo y escalado del mismo para
representarlo en pantalla. El método MapearElementoEnUI() recibe los detalles del
esqueleto, esto es, la posición de los puntos del mismo en el espacio. En el siguiente ejemplo, se
mapea la elipse (definida anteriormente) y los puntos del esqueleto. Como ya se aclaró, se usará
como ejemplo la mano derecha, entonces, para este caso, se utilizará el punto
JointType.Handright:

private void MapearElementoEnUI(Skeleton skeleton)


{
Point puntoMapeado = this.ScalePosition(skeleton.Joints[JointType.
HandRight].Position);
Canvas.SetLeft(righthand, puntoMapeado.X);
Canvas.SetTop(righthand, puntoMapeado.Y);
}

La representación del esqueleto en un espacio, se la conoce como “espacio del


esqueleto”. En definitiva, cada posición está representada con coordenadas x, y, z. El método
EscalarPosicion(), que se muestra a continuación, convierte un SkeletonPoint en un
DepthImagePoints, los cuales se usan para mapear las coordenadas para los elementos de la
interfaz de la aplicación (en este caso la elipse):

private Point EscalarPosicion (SkeletonPoint puntoEsqueleto)


{
DepthImagePoint puntoDepth = this.sensor.CoordinateMapper.
MapSkeletonPointToDepthPoint(puntoEsqueleto,
DepthImageFormat.Resolution640x480Fps30);
return new Point(puntoDepth.X, puntoDepth.Y);

La variable puntoDepth retorna los puntos X e Y correspondientes a los puntos del


esqueleto. La conversión para el mapeo la realiza internamente el SDK de Kinect.

Para profundizar la programación con el SDK, se recomienda la bibliografía (Giorio &


Fascinari, 2013) y (Jana, 2012).

Diaz Gastón, Leschevich Germán 229


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

6.5.2.4 ¿Usar OpenNI o SDK de Kinect para Windows?

Actualmente, tanto OpenNI (junto a Processing y SimpleOpenNI) como el SDK de


Kinect para Windows, son las dos herramientas más populares para desarrollar aplicaciones para
Kinect. A continuación un se encuentra un grafico comparativo.

Figura 6-15 – Comparación SDK – OpenNI

Diaz Gastón, Leschevich Germán 230


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

En función de la imagen anterior, que evidenciado que las dos son igualmente útiles y
potentes, solo que depende de las necesidades del programador el usar una o la otra:

6.6 DRIVERS
Como ya se mencionó en el presente capítulo, existen los drivers oficiales de Kinect
brindados por Microsoft, y los no oficiales generados por las distintas comunidades que
desarrollan aplicaciones con Kinect.

Entre los no oficiales, podemos destacar principalmente el desarrollado por la


comunidad OpenKinect, denominado "libfreenect", el cual brinda la posibilidad a los
programadores de comunicarse con el dispositivo tanto en Linux como en Mac, utilizando como
framework OpenNI.

6.7 ELECCIÓN DE LAS HERRAMIENTAS


Para concluir el capítulo, se puede decir que se han probado la mayoría de las
herramientas y librerías aquí nombradas, y que, si bien tienen sus diferencias entre sí, la manera
de desarrollar aplicaciones para Kinect es similar en todas. Se tienen los tres flujos de datos
(color, profundidad, esqueleto) y por cada uno existe una tubería entre Kinect y la aplicación que
pasa frame por frame, debiendo la aplicación procesar los mismos y realizar allí la lógica
necesaria para cumplir sus objetivos, siendo esa la estructura básica para programar aplicaciones
usando Kinect.

De todas maneras, se han encontrado algunos inconvenientes a la hora de la elección de


las herramientas para desarrollar la aplicación y cumplir los objetivos planteados. Uno de ellos
fue la diferencia entre el aprovechamiento de las funcionalidades de Kinect, esto es, algunas de
ellas admiten utilizar funcionalidades de Kinect que otras no lo hacen. Por ejemplo, la función de
reconocimiento de voz, si se quiere usar OpenNI, no es soportada. Pero por otro lado, OpenNI
dentro de su librería facilita el reconocimiento de los dedos, lo cual incluso agrega una nueva
funcionalidad a Kinect.

Diaz Gastón, Leschevich Germán 231


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Otro aspecto a tener en cuenta, es la documentación de cada una de las herramientas.


Algunas de ellas están muy bien documentadas y respaldadas hasta la actualidad e incluso siguen
desarrollándose nuevas versiones, como es el caso del SDK de Kinect para Windows, y otras, si
bien se han desarrollado nuevas versiones, no han sido bien documentadas como es el caso de
SimpleOpenNI.

En cuanto a los lenguajes de programación y las plataformas, se puede decir que existen
diversas opciones de lenguajes para programar en Kinect. En ese aspecto depende de la experticia
del programador en cada uno de ellos. Con respecto a las plataformas soportadas, se analizó la
viabilidad de realizar el “caso de aplicación” en Linux, descartando Mac ya que no se dispone
con el hardware necesario. Sobre Linux se probó el driver no oficial “libfreenect” en conjunto
con OpenNI, NITE y Processing. Se lograron las siguientes funcionalidades:

 Comunicarse con el Kinect.

 Inicializar y configurar el Kinect.

 Detectar y obtener el esqueleto.

 Generar gestos predefinidos mediante un algoritmo. Esto significa que el gesto es


creado mediante estructuras de código previamente programadas, lo que
comúnmente se denomina hardcode.

 Detectar gestos y posturas predefinidas.

Por otro lado, no se lograron ciertas funcionalidades:

 Detección de voz.

 Grabación de gestos no predefinidos en un archivo.

 Detección de gestos no predefinidos almacenados en un archivo.

Las principales funcionalidades que se plantearon al principio de la tesina, no se


pudieron realizar bajo la plataforma Linux. Cabe destacar, que al utilizar drivers no oficiales el
rendimiento de las aplicaciones es menor que al utilizar drivers oficiales.

Diaz Gastón, Leschevich Germán 232


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Por otro lado, el costo/beneficio de realizar la aplicación en esta plataforma es muy


elevado, ya que ciertas funcionalidades son muy complejas de realizar, y otras no se lograron con
las herramientas analizadas, para lo cual se deberían investigar y utilizar herramientas adicionales
para suplir dichas funcionalidades.

Como último detalle de las pruebas realizadas sobre Linux, la instalación, configuración
y uso de todas las herramientas analizadas, no están casi documentadas, lo cual contrasta con lo
que esta plataforma otorga a su comunidad de desarrolladores, como así también, muchas de ellas
están en versiones beta. Esto seguramente se debe a que es una tecnología bastante nueva, para lo
cual la comunidad de Linux necesita tiempo para generar dichos contenidos.

Todas las pruebas también se realizaron con el SDK de Kinect, bajo la plataforma
Windows, las cuales fueron exitosas.

En definitiva, cuando se analizaron las herramientas y relacionando cada una de ellas


con el caso de aplicación que se pretendía desarrollar, se optó por utilizar el SDK de Kinect para
Windows (en su versión 1.8), incluyendo la librería Kinect Toolbox y usando como entorno de
desarrollo Visual Studio Express 2012. El SDK mencionado, permite el reconocimiento de voz,
aspecto fundamental de una aplicación como la que se pretende desarrollar (y que se explicará en
el capítulo siguiente), y la librería Kinect Toolbox tiene funcionalidades que sirven de ayuda para
la detección de gestos, los cuales son la base de la aplicación mencionada.

Por otro lado, la documentación y las actualizaciones que poseen estas tres herramientas
(sobre todo el SDK) son de gran utilidad, permiten de un rápido aprendizaje y se dispone de un
lugar específico para evacuar dudas a la hora del desarrollo. Además, la librería Kinect Toolbox
al ser de código abierto, permite modificaciones para adaptarla a los requerimientos de la
aplicación e integrarla con nuevas versiones del SDK (por ejemplo, la 1.8).

Así pues, en el capítulo siguiente, se describirá el caso de aplicación que fue


desarrollado con las herramientas ya mencionadas y descriptas en esta sección.

Diaz Gastón, Leschevich Germán 233


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 7

7 CASO DE APLICACIÓN
En el presente capítulo se describirá el caso de aplicación propuesto, la manera en la
cual fue desarrollado, los objetivos y la lógica del mismo. Como así también su arquitectura y la
manera en que debe ser utilizada la aplicación.

Diaz Gastón, Leschevich Germán 234


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.1 PROBLEMA A RESOLVER

7.1.1 OBJETIVO

Como se planteó al principio de la tesina, uno de los objetivos era:

“Desarrollar una aplicación utilizando un dispositivo de detección y reconocimiento de


gestos, analizando las distintas características que posee, como así también las distintas
funcionalidades que se pueden explotar del mismo y su integración con la Realidad Aumentada”.

Dicho objetivo fue propuesto como una idea general, el cual, luego de la investigación
realizada para el desarrollo de la tesina, se puede replantear como:

“Desarrollar una aplicación interactiva que permita la detección, grabación y


almacenamiento de gestos dinámicos utilizando el dispositivo de reconocimientos de gestos
‘Kinect’, la aplicación mencionada puede ser controlada mediante comandos de voz y elementos
de Realidad Aumentada”.

7.1.2 RESUMEN

La aplicación pretende ser utilizada en el tratamiento de rehabilitación de aquellas


personas que sufrieron un ACV (Ataque Cerebro Vascular). Un médico puede generar un plan de
ejercicios de rehabilitación mediante la aplicación. Esto quiere decir que el médico puede
diagramar una serie de ejercicios y grabarlos, indicando la cantidad de repeticiones de los
mismos, para que luego el paciente realice los ejercicios mediante el uso de la aplicación. Este
plan de rehabilitación es específico para cada paciente. Además, la aplicación puede ser
controlada mediante gestos, comandos de voz y elementos de Realidad Aumentada.

El medico graba una sesión que corresponde a una serie de ejercicios que el paciente
debe realizar diariamente. Antes de iniciar la grabación del ejercicio, el médico debe selecciona
con que parte del cuerpo va a realizar el mismo, las cuales pueden ser:

Diaz Gastón, Leschevich Germán 235


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Cabeza.

 Mano derecha o izquierda.

 Rodilla derecha o izquierda.

Cuando se está grabando un ejercicio, se graban tanto los datos propios del gesto como
así también el video capturado por la cámara. El médico ingresa en la aplicación la cantidad de
repeticiones que el paciente debe realizar del gesto mencionado. Luego, el paciente visualiza en
la aplicación el video demostrativo de cómo tiene que hacer el ejercicio, para finalmente intentar
realizarlo. Cada vez que realice un ejercicio correctamente, la aplicación le dirá si debe repetir el
gesto (ejercicio) en el caso de que el médico así lo haya indicado, o si no la aplicación continuará
con el siguiente ejercicio. Una vez que el paciente realizó correctamente todos los ejercicios,
finaliza la sesión.

7.1.3 CAMPO DE APLICACIÓN

Se analizaron numerosos campos de aplicación, los cuales se nombraron a lo largo de la


tesina, seleccionando el de la medicina.

Se entrevistaron dos médicos clínicos para relevar información específica del campo de
aplicación y así poder plantear el problema a resolver. Considerando dichas entrevistas, junto con
la investigación realizada, se concluyó desarrollar lo siguiente:

“El presente caso de aplicación tiene como objetivo permitir a las personas que han
sufrido ACV (Accidentes Cerebro Vasculares) rehabilitarse en su casa de una manera
interactiva, pero conservando las pautas dadas por un especialista. Ello se logrará mediante una
aplicación la cual se compone de los conceptos ya vistos en la presente tesina, esto es, Interfaces
Gestuales, Realidad Aumentada y el dispositivo Kinect”.

Diaz Gastón, Leschevich Germán 236


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.1.3.1 ¿Qué son los ACV?

El Accidente Cerebrovascular puede producir la pérdida de movimiento de una mitad


del cuerpo, completa (hemiplejia) o parcial (hemiparesia), lo cual puede ser generado por una
lesión de una parte del cerebro que se debe a:

 Una hemorragia por ruptura de una arteria del cerebro.

 Un coagulo sanguíneo que impide la circulación en una arteria cerebral.

7.1.3.2 Tratamiento

Para enfrentarse con esta patología, junto con el tratamiento médico, la rehabilitación ha
demostrado ser una parte importante para ayudar a la recuperación del paciente. Aunque puede
ocurrir que al finalizar el periodo de rehabilitación, los enfermos permanezcan estabilizados con
algunos déficit. Pudiendo, de esta manera, persistir una pérdida de fuerza en un miembro
superior, que puede dificultar la movilidad y manipulación con el mismo; o afectar al miembro
inferior, o incluso quedar paralizado, dificultándole o impidiéndole caminar normalmente. El
paciente y su familia deben afrontar esta situación en su domicilio para reintegrarse dentro de sus
posibilidades a una vida activa. En otras palabras, el paciente debe “volver a aprender a manejar
su cuerpo”, en especial los miembros que fueron afectados. (Cáceres, 2007)

Por otra parte, los ejercicios recomendados para lograr este objetivo, deben ser suaves y
repetitivos, en algunos pacientes se requiere de la ayuda de una persona, que generalmente, es un
especialista.

7.1.3.3 Fundamentación

Hay que destacar que dichos tratamientos y la visita que los especialistas realizan a los
hogares con el fin de rehabilitar al paciente, son pagos (y caros), y en la mayoría de los casos las
obras sociales no suelen cubrir estos gastos.

Como ya se mencionó, el objetivo es brindar una herramienta para que los pacientes
tengan una rehabilitación interactiva y que dependan en menor medida de dichos especialistas.

Diaz Gastón, Leschevich Germán 237


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Para lograrlo, se utilizará el dispositivo Kinect que reúne las características requeridas
para cumplir dicho objetivo. Además, la aplicación otorgará al médico la posibilidad de grabar
una sesión de ejercicios específicos para que un determinado paciente pueda repetirlos en su
domicilio con el seguimiento de un especialista, y mediante la combinación de la aplicación y el
sensor mencionado, se le indicará cuántas veces debe realizar un determinado ejercicio, si se ha
realizado correctamente, o bien, si todos los ejercicios de la sesión fueron realizados con éxito.

La aplicación tiene como objetivo motivar al paciente a realizar los ejercicios, mediante
su novedosa capacidad de interacción mediante gestos, movimientos del brazo, y la utilización de
palabras como comandos de voz.

Además, esta aplicación cumple con el requisito fundamental que indica el tratamiento:

“Los ejercicios recomendados en el tratamiento del ACV, deben ser suaves y repetitivos,
indicados y monitoreados por un especialista”.

El hecho de que su propio médico pueda determinar los ejercicios que debe realizar y la
cantidad de veces que debe repetir cada uno de ellos, da una mayor seguridad al paciente de que
es capaz de completar la sesión de ejercicios que éste le otorgo de manera personal. Esto es
porque el médico conoce las capacidades motrices de su paciente, y sabe el grado de afectación
que le provocó el ACV.

7.2 ANÁLISIS DE REQUERIMIENTOS

7.2.1 REQUERIMIENTOS FUNCIONALES

La aplicación a desarrollar debe cumplir con las siguientes funcionalidades:

 Grabar una serie de ejercicios. La aplicación debe ser capaz de dar la


posibilidad de grabar una lista de ejercicios, e ingresar la cantidad de repeticiones
para cada uno de ellos.

Diaz Gastón, Leschevich Germán 238


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Seleccionar la parte del cuerpo con la cual se debe realizar el ejercicio. Se


debe poder seleccionar la parte del cuerpo con la cual se grabará el ejercicio y,
por ende, con la cual se deberá realizar el mismo.

 Almacenar la lista de ejercicios. La lista de ejercicios grabada, junto con las


repeticiones y la parte del cuerpo con la cual realizarlo, deben ser almacenados
para que dichos datos sean transportables.

 Visualizar la demostración de cada uno de los ejercicios. Se debe poder


visualizar una demostración del ejercicio cuantas veces sea necesario, y debe
saber con qué parte del cuerpo se debe realizar.

 Detectar si se realizó bien el ejercicio. Se debe detectar e informar si se ha


realizado correctamente el ejercicio, además de saber cuántas repeticiones
quedan por realizar del mismo o si ya se puede pasar al siguiente ejercicio en la
lista.

 Controlar la aplicación mediante comandos de voz y elementos de Realidad


Aumentada. Se debe permitir la interacción con la aplicación y lograr la
retroalimentación visual mediante elementos de la Realidad Aumentada.
Asimismo, se tiene que permitir realizar ciertas acciones mediante comandos de
voz.

7.2.2 REQUERIMIENTOS NO FUNCIONALES

 Debe garantizar la persistencia de los gestos y su video demostrativo en archivos


del sistema.

 Debe contar con una ayuda interactiva.

 Debe tener una interfaz moderna, interactiva, sencilla e intuitiva.

 Se debe emplear un controlador de versiones. En este caso, se empleó el


controlador de versiones GIT para el desarrollo de la aplicación.

 Debe responder rápidamente a las interacciones realizadas por los usuarios.

Diaz Gastón, Leschevich Germán 239


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Debe ser capaz de responder adecuadamente frente a errores ocurridos en su


ejecución.

7.3 DISEÑO

7.3.1 ARQUITECTURA

Para lograr mediante un dispositivo Kinect llegar a una aplicación que detecte y grabe
gestos, sea controlada por comandos de voz y elementos de Realidad Aumentada entre otras
cosas, son necesarias muchas herramientas y componentes en el medio.

Figura 7-1 - Como llegar desde el Kinect a una aplicación

De acuerdo a la arquitectura definida en el capítulo anterior, las siguientes herramientas


fueron las seleccionadas:

Tabla 7-1 - Herramientas utilizadas

Capas Herramientas

Frameworks y librerías gráficas WPF

Aplicación Visual Studio .Net y C#

Wrapper Kinect Toolbox, Microsoft.Speech.Recognition

Diaz Gastón, Leschevich Germán 240


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Framework SDK de Microsoft versión 1.8

Drivers Drivers oficiales de Kinect

7.3.1.1 Drivers

Los drivers utilizados para comunicar Kinect con el sistema operativo y el framework
que se explicará a continuación, son los drivers oficiales lanzados por Microsoft. Ello así porque
permiten una completa compatibilidad con las herramientas seleccionadas en el resto de las capas
de la arquitectura, y una inmejorable utilización de todas las capacidades de Kinect.

Figura 7-2 – Drivers oficiales de Kinect instalados en Windows

7.3.1.2 Framework

El framework es la de las capa más importante de la arquitectura, ya que define las API
para escribir las aplicaciones. Para el desarrollo del caso de aplicación, se optó por utilizar el
SDK de Microsoft (en su versión 1.8), el cual, entre otras funciones, permite utilizar comandos de
voz para interactuar con la aplicación.

Diaz Gastón, Leschevich Germán 241


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.3.1.3 Wrapper

Para facilitar el uso de las funcionalidades que brinda el SDK antes mencionado, se
utilizó Kinect Toolbox, el cual simplifica la utilización de varias funciones que provee dicho
framework.. Además, el hecho de que sea de código abierto, permite adecuar el mismo a los
requerimientos de la aplicación.

Para la parte de reconocimiento los comandos de voz, se utilizó la librería de Windows


“Microsoft Speech Recognition” junto con la librería de reconocimiento de comandos de Kinect
“Kinect Speech” y con el paquete de idioma para español latino.

7.3.1.4 Aplicación

La lógica de la aplicación será explicada más adelante, pero hay que destacar que, dadas
las herramientas seleccionadas en las capas precedentes, se tuvo que optar por lenguajes de
programación y entornos de desarrollo compatibles con las mismas. Entre ellos, se encuentran el
IDE Visual Studio (en su versión 2012 Express) y el lenguaje C#, este último es, de las restantes
opciones (C++ y Visual Basic) el que se encuentra mejor documentado en lo referido a la
programación de aplicaciones para Kinect.

Figura 7-3 – Realidad Aumentada e Interfaces Gestuales con Kinect

7.3.1.5 Librerías gráficas y Toolkits

Como herramienta para el aspecto visual de la aplicación se optó por Windows


Presentation Foundation (WPF), ya que es compatible con el lenguaje y con el entorno de
desarrollo elegido, y mediante su modelo de gráficos declarativo, definido por el lenguaje
XAML, permite diseñar la apariencia de la interfaz de usuario.

Diaz Gastón, Leschevich Germán 242


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.3.2 LÓGICA Y ESTRUCTURA DE LA APLICACIÓN

En la presente sección se describirá la lógica de la aplicación, esto es, la manera en que


se resolvieron los distintos requisitos descriptos anteriormente.

7.3.2.1 Estructura del código fuente

La estructura del código de la aplicación y su modularización está definida de la


siguiente manera:

Figura 7-4 - Estructura del código de la aplicación

Como se ve en la figura anterior, la aplicación (“solución” denominada por Visual


Studio) está divida en tres proyectos, los cuales se explican brevemente a continuación:

 ARGIK. Contiene la lógica de grabación y detección de gestos, del médico, del


paciente, y la gestión del Kinect y las ventanas.

 Kinect.Toolbox y Kinect.Toolbox.Voice. Estas librerías brindan ciertas


funcionalidades para facilitar la comunicación entre la aplicación y el SDK de
Kinect. Por otro lado, dichas funcionalidades son en algunos casos muy limitadas
y en otros no cumplen con los requerimientos del desarrollo. En consecuencia se
incorporaron las librerías como proyectos, se analizaron y se modificaron para
satisfacer los requerimientos.

Kinect Toolbox

Como ya se mencionó, esta librería se utilizó para facilitar la comunicación de la


aplicación con el SDK de Kinect. Brinda funcionalidades que “agrupan” varias funciones del

Diaz Gastón, Leschevich Germán 243


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

SDK mencionado, lo cual reduce en gran medida el esfuerzo que debe realizar el programador.
Cabe recordar, que dado los requerimientos de la aplicación, se tuvo que modificar la mayoría de
sus clases, las cuales se detallan a continuación:

 LearningMachine. Esta clase se encarga de analizar el gesto actual (es decir,


el gesto realizado por el participante), compararlo con los gestos cargados
dinamicamente y determinar si son iguales. Dicha igualdad está definida por
varios parametros que determinan el nivel de precisión con el cual la
LearningMachine compara los gestos. Esta clase se modificó
completamente, ya que, como se mencionó en el capítulo anterior,
KinectToolbox solo permite “la detección de gestos predefinidos mediante
bloques de código”, y el caso de aplicación planteado, debe reconocer gestos
creados dinámicamente.

 KinectRecorder. Es la clase que permite grabar la sesión de Kinect, esto se


refiere a almacenar los flujos de datos otorgados por las cámaras en un archivo
del sistema, para luego ser reproducido. Esta clase tuvo pequeñas modificaciones
para lograr la compatibilidad con la aplicación.

 GestureDetector. Esta clase se encarga de la definición y detección de los


gestos realizados por el participante. Originalmente, solo ofrecía la funcionalidad
de definir gestos mediante bloques de código y detectar dichos gestos
predefinidos. Por esto, dicha clase, fue refactorizada totalmente para cumplir con
el requerimiento ya mencionado.

7.3.2.2 Lógica de la aplicación

La aplicación se divide en tres grandes módulos, como lo ilustra la siguiente figura:

Diaz Gastón, Leschevich Germán 244


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

MEDICO PACIENTE

MENU
PRINCIPAL

Figura 7-5 - Diagrama de ARGIK

El control de la aplicación al iniciarse lo posee el Menu Principal, el cual interactúa


tanto con el módulo Medico, como con el módulo Paciente. A continuación se explicarán
en detalle cada uno de ellos.

Menu principal

Este módulo se encarga de tomar el control de la aplicación cuando la misma inicia su


ejecución. Tiene como principal objetivo, interactuar con los módulos Medico y Paciente.

Inicializar la Inicializar Detectar


ventana Kinect Gestos

Pasar el control al módulo Liberar los


Medico o Paciente según recursos de Kinect

Figura 7-6 - Diagrama de flujo de ARGIK

Diaz Gastón, Leschevich Germán 245


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Como primer paso se inicializa la ventana, lo cual instancia la misma y configura todos
sus elementos y controles correspondientes.

A continuación se inicializa el sensor Kinect, en donde se inicializan los flujos de datos


necesarios del mismo y se configuran todas sus propiedades. Este proceso es casi idéntico en los
tres módulos, por lo cual será explicado más en detalle en la siguiente sección (Medico).

Luego de inicializar y configurar la ventana y Kinect, la aplicación ingresa en el proceso


de Detección de Gestos. Básicamente consiste en analizar cuadro a cuadro el flujo de datos
generado por Kinect, para detectar si el participante hizo click sobre alguno de los botones de la
ventana. También en este proceso, la aplicación analiza y procesa los datos brindados por el set
de micrófonos de Kinect, para identificar si el participante “le indicó alguna orden” al sistema.

Finalmente, cuando se detectó el gesto, la aplicación libera los recursos sobre Kinect y
pasa su control al módulo correspondiente.

Medico

Este módulo implementa la lógica del médico, la cual se puede visualizar en la siguiente
figura.

Inicializar la Inicializar Procesar los


ventana Kinect cuadros (frame)

Pasar el control al módulo Liberar los recursos Grabar


MenuPrincipal de Kinect Gestos

Figura 7-7 - Diagrama del módulo Medico

Diaz Gastón, Leschevich Germán 246


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Inicializar la ventana

Inicializa todos los componentes de la ventana.

 Se inicializa los componentes (menús, botones, controles) de la ventana como así


también los botones de Realidad Aumentada.

 Se verifica si existe algún dispositivo Kinect conectado y genera el evento


correspondiente.

Inicializar Kinect

Inicializa y configura el Kinect.

 Se instancia el Kinect y configura sus flujos de datos ColorStream,


DepthStream y SkeletonStream.

 Se inicia el Kinect y habilita la ayuda interactiva.

 Se carga la detección de gestos y comandos de voz.

Procesar los cuadros (frame)

Analiza cuadro a cuadro la información brindada por los flujos de datos de Kinect.

 Se recupera la articulación seleccionada.

 Se verifica que exista al menos un esqueleto analizando el flujo de datos


SkeletonStream.

 Se analiza el esqueleto y se verifica si el mismo es válido.

 Se analiza la articulación seleccionada en caso de que esté activa la grabación de


gestos, de lo contrario se analiza la mano derecha para los botones de Realidad
Aumentada.

 Se dibuja el esqueleto dentro de la ventana que muestra los datos de la cámara


RGB de Kinect.

Diaz Gastón, Leschevich Germán 247


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Grabación de Gestos

Gestiona la grabación de la sesión del médico, que incluye la grabación de los gestos, la
cantidad de repeticiones y el video demostrativo de los mismos. Este proceso se inicia cuando el
participante lo indica mediante el botón de Realidad Aumentada o por un comando de voz.

 Se inicia la grabación de la sesión y se crea el archivo de configuración de la


misma. Este proceso se dispara por medio de un comando de voz o por el botón
de Realidad Aumentada.

 Se inicia la grabación del gesto de la misma forma que el anterior.

 Se realiza la grabación el gesto, con lo cual se graba el video de la cámara RGB


y los datos del gesto realizado. También se almacena la cantidad de repeticiones.
Este proceso se repite según la cantidad de ejercicios que el médico requiera.

 Se finaliza la grabación de la sesión por medio de un comando de voz o por el


botón de Realidad Aumentada.

Paciente

Inicializar la Inicializar Procesar los


ventana Kinect cuadros (frame)

Pasar el control al módulo Liberar los recursos Detectar


MenuPrincipal de Kinect Gestos

Figura 7-8 - Diagrama del módulo Paciente

Diaz Gastón, Leschevich Germán 248


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

El módulo Paciente es muy similar con respecto al módulo Medico y solo difieren
en el proceso de Grabación de Gestos, lo cual es su lugar se realiza un proceso de Detección de
Gestos.

Detección de Gestos

Utiliza la sesión grabada por el médico, la cual incluye los gestos grabados, la cantidad
de repeticiones y el video demostrativo. Este proceso se inicia cuando el participante lo indica
mediante el botón de Realidad Aumentada o por un comando de voz.

 Se inicia la reproducción de la sesión y se crea carga la configuración desde el


archivo. Este proceso se dispara por medio de un comando de voz o por el botón
de Realidad Aumentada.

 Se inicia la detección del gesto, se carga el video demostrativo en pantalla y la


cantidad de repeticiones.

 Durante el proceso de detección de gestos, la LearningMachine analiza y


procesa el gesto actual realizado, dentro de un intervalo de tiempo de definido, y
lo compara por medio de un algoritmo matemático con el gesto almacenado para
determinar si son semejantes, en función de ciertos parámetros preestablecidos.
Este proceso se explicará en detalle en la siguiente sección.

 Cuando un gesto es detectado, es decir, la LearningMachine determino que


son semejantes, se le avisa al usuario que realizó correctamente el gesto y la
aplicación le indica que repita el gesto o pase al siguiente según corresponda.

 Se finaliza la reproducción de la sesión cuando el paciente realizó correctamente


todos los gestos, o se puede terminar en cualquier momento por medio de un
comando de voz o por el botón de Realidad Aumentada.

Diaz Gastón, Leschevich Germán 249


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.4 DETECCIÓN Y GRABACIÓN DE GESTOS


Antes de introducirse en el análisis y el diseño de la aplicación, se debe explicar cómo se
realiza la detección y grabación gestos, como así también la grabación y reproducción de
sesiones.

Como ya se dijo en reiteradas ocasiones, los gestos pueden ser predefinidos como por
ejemplo “el deslizar una mano de izquierda a derecha” y otros pueden ser almacenados
dinámicamente en una especie de máquina de aprendizaje para luego, mediante un algoritmo, ser
detectados.

7.4.1 DEFINIR UN GESTO SIMPLE CON UN ALGORITMO

El gesto es básicamente un movimiento, entonces, detectar un gesto puede ser definido


como el proceso de detectar un movimiento dado. El principio general de capturar el gesto es
capturar las n últimas posiciones de una parte del cuerpo y aplicarles a las mismas un algoritmo
para detectar un potencial gesto.

Se define una clase llamada GestureDetector, la cual tiene propiedades y métodos


relacionados con la detección del gesto. También define un evento que será llamado cada vez que
un gesto sea detectado.

Heredando de la clase anteriormente mencionada, existe una clase que recorrerá las
posiciones gravadas para determinar si dichos puntos siguen el patrón grabado. Por ejemplo, para
detectar un deslizamiento hacia la izquierda se deberían seguir los siguientes pasos:

 Verificar que todos los puntos se encuentran viajando hacia la derecha (eje X)

 Verificar que todos los puntos no estén muy lejos uno del otro con respecto a los
ejes Y y Z.

 Chequear que haya una buena distancia entre el primer punto y el último.

Diaz Gastón, Leschevich Germán 250


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Verificar que el primer y último punto del patrón fueran creados dentro de un
determinado período de tiempo.

La clase que realiza todas estas tareas es la clase SwipeGestureDetector, la cual


posee una serie de métodos matemáticos para llevar a cabo la detección de los gestos de deslizar
a izquierda y deslizar a derecha. Cabe aclarar que estos son gestos predefinidos, por ende los
algoritmos y cálculos utilizados en dicha clase sirven para detectar sólo ese tipo de gestos.

7.4.2 DETECTAR GESTOS COMPLEJOS POR COINCIDENCIA DE PATRONES


(PATTERN MATCHING )

El concepto de pattern matching en este caso involucra una base de datos de imágenes
grabadas producidas por gestos. Utilizando dicha base de datos, se puede comparar el patrón que
se está realizando en tiempo real, y los que se encuentran en la base de datos (llamadas
plantillas).

Se provee la posibilidad de generar estas plantillas y guardarlas en archivos que harán


las veces de base de datos de gestos. La clase learningMachine, se encarga de comparar el
patrón del gesto en ejecución con los restantes almacenados en la base de datos.

Un gesto en materia de programación se puede considerar con “una secuencia de


puntos ubicados sobre los ejes cartesianos”. Para facilitar la tarea de búsqueda y comparación, se
“normaliza” los puntos obtenidos de los gestos, antes de compararlos. Para lograr esto utiliza el
siguiente método:

 Empieza desde un gesto completo. Un gesto es considerado completo cuando


contiene una determinada cantidad de puntos.

Diaz Gastón, Leschevich Germán 251


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-9 – Crea un gesto inicial (el cual comienza en el punto violeta)

 Genera un nuevo gesto con un número definido de puntos

Figura 7-10 – Normaliza el gesto para que contenga un número de puntos definido

 Rotar el gesto para que el primer punto esté a 0 grados

Figura 7-11 – Se rota el patrón para que el primer punto esté a 0 grados (coincida con en el eje horizontal)

 Escala el gesto a una graduación de referencia de 1 x 1

Diaz Gastón, Leschevich Germán 252


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-12 – Re escala del gesto a una graduación de referencia de 1 x 1

 Centra el gesto con el origen

Figura 7-13 – Centra el gesto con el origen

Además de normalizar el gesto, se utiliza el algoritmo de la clase LearningMachine


para realizar la comparación entre el gesto actual y todos los gestos guardados en su base de datos
de gestos. El algoritmo debe ser rápido y preciso, porque se lo debe llamar muchas veces por
segundo. Por lo tanto, se utilizó un algoritmo de búsqueda llamado “Golden Section” (Gerald &
Wheatley, 2003), el cual compara rápida y precisamente dos patrones normalizados como los que
se vieron anteriormente.

Por último, como clase importante, se menciona la clase


TemplatedGestureDetector, la cual es la encargada de llamar al método que
internamente realiza el algoritmo de búsqueda y comparación, y si el valor computado de
coincidencia es inferior que un valor dado (por ejemplo 80%) se lanzará el método
RaiseGestureDetected que indica la detección del gesto.

Diaz Gastón, Leschevich Germán 253


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Para añadir un nuevo gesto, es decir, un nuevo patrón a la máquina de aprendizaje se


debe llamar primero al método StartRecordTemplate(), el cual se encuentra en la clase
TemplatedGestureDetector, y para finalizar, empaquetar e integrar el gesto grabado a la
máquina de aprendizaje se debe llamar al método EndRecordTemplate(), también definido
en la clase antes mencionada.

En resumen, con estas clases se puede guardar los gestos normalizados como un patrón
conformado por varios puntos, almacenarlos en archivos en el disco para luego poder cargarlos y
poder reconocerlos.

7.5 GRABACIÓN Y REPRODUCCIÓN DE SESIONES


Se definieron clases que permiten grabar y reproducir dicha grabación de lo que se llama
una sesión de Kinect. Es decir un video de lo que se hizo frente al sensor, pero la particularidad
es que además de guardar el video a color, graba también los datos de la cámara de profundidad y
del esqueleto. Seguidamente se describirá la manera en la que se realiza esta tarea, como así
también las clases más importantes para llevarla a cabo.

7.5.1.1 Grabación de sesiones de Kinect

Para grabar los datos de Kinect, se define una clase llamada KinectRecorder que
maneja los tres tipos de datos (color, de profundidad y del esqueleto). Esta clase es la encargada
de grabar las estructuras de datos de Kinect y luego reproducirlos de manera precisa. Genera un
solo archivo de salida que contiene todos los datos para reproducirse.

KinectRecorder posee tres clases, una para cada tipo de datos:

 ColorRecorder.

 DepthRecorder.

 SkeletonRecorder.

Diaz Gastón, Leschevich Germán 254


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Cada una de ellas, agrega sus propios datos en el stream principal (flujo de datos),
agregando solo una cabecera con un número fijo para identificación de los datos, es decir, para
saber a qué clase pertenecen los datos que siguen para leer en el stream.

Para grabar los datos del flujo de datos de color, forma un stream de datos a escribir,
añadiéndole cierta información como la resolución (el ancho y el largo del frame), tamaño de la
información de los pixels, etc.

La clase DepthRecorder que es la encargada de grabar los datos del flujo de


profundidad, es similar a la de los datos de color, la única diferencia es que utiliza tipos de datos
en 16-bits en vez de 32-bits como el flujo de datos de color, por lo que solo difieren en el tipo de
dato que se guarda.

Almacenar los datos del esqueleto para su posterior reproducción es más complejo
porque los datos estructurados se deben serializar. De hecho, en un rango específico
(generalmente 30 veces por segundo), Kinect produce un frame del esqueleto que está compuesto
por:

 Un número de frame.

 Un plano del piso que define las coordenadas x, y, z, w, del vector que es usado
internamente para definir donde está parado el esqueleto.

 Un arreglo de objetos de tipo Skeleton.

La clase Skeleton es serializable, entonces la clase SkeletonRecorder añade


información extra para dicha serialización, tal como la diferencia entre la hora actual y la hora en
que se tomó el frame procesado.

Como ya se mencionó, la clase KinectRecorder, agrega las tres clases para proveer
al programador un único punto de entrada. Contiene una referencia a cada una de las clases de
grabación como un stream. Dependiendo del identificador de flujo que detecte (esto fue
explicado más arriba) creará un objeto de la clase ColorRecorder, DepthRecorder o

Diaz Gastón, Leschevich Germán 255


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

SkeletonRecorder. Además otorga un método para grabar los frames (cuadros) específicos,
ya sea el frame del esqueleto, de color o de profundidad.

7.5.1.2 Reproducción sesiones de Kinect

Para reproducir lo guardado anteriormente se tiene una clase llamada KinectReplay,


que es la responsable de manejar el sistema de replay para proveer a la aplicación de una sesión
grabada. Reproducir los frames de color, profundidad o del esqueleto es muy similar a la
grabación.

El sistema de repetición está basado en tareas para manejar el tiempo entre los frames.
Esta tarea causa que el sistema quede en esperando por un tiempo dado, luego del cual la tarea
lanza un evento a la clase KinectReader para avisarle que hay un nuevo frame disponible.
Posee un método interno llamado AddFrame para permitir a la clase llenarlo con los frames
grabados.

La clase para repetir la parte de la sesión de los datos de color, se llama


ReplayColorImageFrame.

Como en el caso de la grabación, la clase de reproducción de la sesión de los datos de


profundidad es ReplayDepthImageFrame, la cual es similar a la de color con la salvedad del
tamaño de los datos (16 bits).

La clase ReplaySkeletonFrame, es la encargada de repetir los datos del esqueleto,


su definición es similar a las anteriores, incluso más simple ya que se debe deserealizar el
esqueleto que por defecto Kinect serializa.

Por último, la clase que junta las tres anteriormente mencionadas es la clase
KinectReplay. Esta clase hace las veces de la mencionada precedentemente
KinectRecorder solo que en la parte de reproducción. Provee métodos para iniciar la
reproducción, detenerla, sincronizarla, liberar recursos, etc. Con esta clase se puede, entonces,
repetir una sesión previamente grabada de Kinect.

Diaz Gastón, Leschevich Germán 256


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7.6 PRODUCTO FINAL


En esta sección se explicará el uso de la aplicación desarrollada, explorando cada una de
sus funcionalidades y la manera en que éstas se deben llevar a cabo tanto por el médico, como
por el paciente.

7.6.1 MENÚ PRINCIPAL

Al ejecutar la aplicación, se presentará en pantalla el menú principal con el cual se puede


interactuar mediante gestos o el mouse. Para interactuar mediante gestos, el usuario debe estar
colocado frente a Kinect con cualquiera de sus brazos extendidos hacia el sensor, para que la
aplicación detecte una de sus manos (detectará la más cercana al sensor). De esta manera la
misma mostrará el puntero, que es el encargado de seguir la posición de la mano del usuario para
interactuar con las distintas opciones presentadas en pantalla. Para seleccionar una opción se debe
mantener dicho puntero en el botón correspondiente, hasta que se complete el círculo que rodea
dicho puntero (3 segundos aproximadamente).

Figura 7-14 – Puntero que sigue la mano más cercana al sensor del usuario

Las opciones que presenta el menú principal son:

 Médico

 Paciente

 Configuración

 Salir de la aplicación

Las opciones; médico, paciente y configuración se explicarán a continuación.

Diaz Gastón, Leschevich Germán 257


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-15 - Menú Principal

7.6.2 CONFIGURACIÓN

En esta ventana se presentan las opciones de configuración para el uso de la aplicación


tanto para el médico, como para el paciente. En la misma se muestra la imagen a color de la
escena generada por Kinect, de modo que el usuario pueda configurar de la manera más óptima el
sensor y adaptarlo al espacio en el cual se utilizará el mismo.

Además de la ya mencionada imagen de la cámara, se presenta una barra del tipo slider
para mover el motor vertical de Kinect y adecuarlo a las necesidades del usuario y del ambiente.
También se puede modificar el modo en que se detecta el esqueleto, pudiendo hacerlo en el modo
sentado (visto en el capítulo anterior) o en el modo completo. Para regresar al menú principal, se
debe hacer click en el botón atrás situado en la parte superior izquierda de la pantalla.

Diaz Gastón, Leschevich Germán 258


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-16 - Ventana de configuración

7.6.3 MÉDICO

Figura 7-17 - Imagen del médico antes de iniciar la grabación de la sesión

Diaz Gastón, Leschevich Germán 259


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Una vez seleccionada la opción médico del menú principal, se presenta al usuario la
ventana de la figura anterior. En la misma, se muestra la imagen a color de la cámara, además, si
el usuario se encuentra dentro del rango de visión del sensor, se mostrará el dibujo del esqueleto
del mismo (ya sea en modo sentado o completo), y, si esto último sucede, se verán también los
botones para las distintas opciones que se permiten realizar en la parte derecha de la imagen.

7.6.3.1 Botones

Como ya se mencionó, cuando el usuario se encuentre dentro del rango de detección de


Kinect, se podrán utilizar los botones en la parte derecha de la pantalla. Para hacerlo, se debe
posicionar la mano derecha en el botón que se desea activar, y mantenerla hasta que se complete
el círculo que rodea el botón (3 segundos aproximadamente).

A continuación se describe la funcionalidad de cada uno de los botones:

 Inicio/Fin. Inicia/Finaliza la sesión de grabación de gestos. Cuando se inicia, se


habilita la utilización del comando de voz “grabar” (el cual se describirá más
adelante) para comenzar la grabación del gesto, y el comando de voz “detener”
para detener la grabación del mismo. Además, permitirá seleccionar la
articulación con la cual grabar el gesto.

 Art. Una vez iniciada la sesión de grabación con el botón anteriormente


descripto, se puede activar este botón para seleccionar la articulación con la cual
se desea grabar el gesto. Más adelante se describirá el funcionamiento de la
ventana de selección de articulaciones, pero la misma no difiere de lo ya visto
anteriormente para el menú principal.

 Ayuda. Se activa/desactiva la ayuda tanto de los botones presentes en la pantalla,


como de los comandos de voz disponibles.

7.6.3.2 Comandos de voz

Con respecto a los comandos de voz disponibles, se debe tener en cuenta que el
comando “ayuda” se puede utilizar en cualquier momento. Para el resto de los comandos, se debe

Diaz Gastón, Leschevich Germán 260


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

estar en determinado estado para poder usarlos. Acto seguido, se describe cada una de las
palabras (comandos de voz) que se pueden utilizar:

 Grabar. Este comando activa la grabación del gesto y sólo está disponible
cuando está iniciada la sesión de grabación (es decir, cuando el botón “inicio”
está activado).

 Detener. Detiene la grabación del gesto. Por supuesto que se puede utilizar sólo
cuando el comando “grabar” fue activado, esto es, cuando se está grabando un
gesto.

 Ayuda. Cumple la misma función que el botón “ayuda” descripto anteriormente.


Habilita la ayuda de los botones y los comandos de voz.

 Salir. Vuelve al menú principal. Misma función que el botón atrás situado en la
esquina superior izquierda.

7.6.3.3 Selección de articulación

Tal como se mencionó precedentemente, una vez iniciada la sesión de grabación, se


puede seleccionar la articulación con la cual se grabará el gesto, por defecto se define la mano
derecha, pero si se desea cambiar, se debe activar el botón “Art.”.

Cuando se selecciona dicho botón, se muestran las articulaciones disponibles para grabar
el gesto. El manejo de la interfaz de la ventana es idéntico a la del menú principal. El usuario
dispondrá de un cursor que seguirá los movimientos de la mano que se encuentre más cercana al
sensor. Para seleccionar la articulación deseada, se debe mantener dicho cursor en el botón
correspondiente hasta que se complete el círculo (aproximadamente 3 segundos). Una vez hecho
esto, el siguiente o los siguientes gestos se grabarán con la articulación seleccionada.

Diaz Gastón, Leschevich Germán 261


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-18 - Ventana de selección de articulación

7.6.3.4 Modo grabar

Cuando la sesión de grabación se encuentra iniciada, el comando de voz “grabar”


iniciará la grabación del gesto con la articulación por defecto (mano derecha) o con la que se ha
seleccionado en el menú anteriormente descripto.

Si el comando de voz fue detectado por Kinect, se verá el mensaje correspondiente en


pantalla indicando que la grabación de gesto ha comenzado. Además, se podrá ver el patrón que
forma el gesto que el médico está realizando para tener una mejor referencia del mismo.

Si se desea finalizar con la grabación, se utiliza la palabra “detener”. Una vez detenida la
grabación, la aplicación solicitará que se ingrese el número de repeticiones de dicho gesto que
debe realizar el paciente, esto es, la cantidad de veces que debe realizar el gesto correctamente.
Una vez hecho esto, se puede proceder a finalizar la sesión de grabación para ese paciente, o bien
grabar otro gesto con la misma articulación o seleccionar una diferente del modo antes indicado.

Diaz Gastón, Leschevich Germán 262


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Figura 7-19 - Imagen del médico grabando una sesión

7.6.4 PACIENTE

Figura

Diaz Gastón, Leschevich Germán 263


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

7-20 - Imagen del paciente antes de iniciar la reproducción de la sesión

Luego de elegir la opción paciente en el menú principal, se presenta la ventana anterior.


Dicha ventana, es muy similar a la descripta anteriormente en el médico. Es decir, muestra al
paciente la imagen a color de la cámara de Kinect, y si la persona se encuentra dentro del rango
del sensor, se podrá ver el esqueleto de la misma y los botones con las opciones disponibles.

7.6.4.1 Botones

La manera de activar los botones que se encuentran en la imagen a color es idéntica a la


ya descripta en la sección “Médico”. A continuación se describe la funcionalidad de cada uno de
ellos:

 Inicio/Fin. Se inicia/finaliza la sesión de reproducción de gestos para el paciente.


Cuando se activa su inicio, se reproducirá la demostración de los gestos que
fueron grabados por el médico y se mostrará la cantidad de veces que el paciente
debe realizarlo. Cuando se desea finalizar la sesión, se presiona el mismo
nuevamente.

 Repetir. Repite la demostración del gesto que se debe realizar. Solo está
disponible cuando la sesión de reproducción está iniciada.

 Ayuda. se activa/desactiva la ayuda para los botones y los comandos de voz.


Misma función que en la ventana “médico”.

7.6.4.2 Comandos de voz

A continuación se describen los comandos de voz disponibles para el paciente:

 Reproducir. Se inicia la reproducción de la sesión de gestos que debe realizar el


paciente. Cumple la misma función que el botón “inicio”.

 Detener. Si se está en medio de una sesión de gestos, se detiene la misma. Se


podrá volver a comenzar con el botón “inicio” o con el comando de voz
anteriormente descripto.

Diaz Gastón, Leschevich Germán 264


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

 Repetir. Si se está en medio de una sesión de gestos, este comando repite la


demostración del gesto que actualmente se debe realizar. Cumple la misma
función que el botón repetir.

 Ayuda. activa/desactiva la ayuda para los botones y los comandos de voz. Se


puede utilizar en cualquier momento.

 Salir. Retorna al menú principal.

7.6.4.3 Modo reproducción de sesión de gestos

Cuando se dice que se está dentro de una sesión de reproducción de gestos, se hace
referencia a que el paciente inició la reproducción de los gestos que debe realizar.

Figura 7-21 - Imagen del paciente realizando un gesto

Una vez que el mismo activa tal reproducción ya sea mediante el botón o mediante el
comando de voz, se comienza con la reproducción de la demostración del primer gesto que este
debe realizar, incluyendo el nombre de la articulación con la cual se debe concretar el mismo.

Diaz Gastón, Leschevich Germán 265


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Cuando ella termina, se muestra la cantidad de repeticiones del gesto que el paciente debe
realizar. Descontándose en uno cuando dicha persona lo realiza de manera correcta (o muy
similar), o bien no descontando las repeticiones cuando lo hace incorrectamente. Una vez que el
paciente ha completado la cantidad de repeticiones requeridas para ese gesto en particular,
automáticamente se reproducirá la demostración del segundo gesto a realizar, y se repetirá el
mismo proceso descripto hasta llegar al último de los gestos o bien hasta que el paciente decida
terminar la sesión.

Además, cuando se está en la reproducción de los gestos, específicamente cuando el


paciente debe realizar los mismos, se muestra el patrón del gesto que este está realizando a fin de
facilitar su conclusión.

Una vez que el paciente finaliza la realización de toda la sesión de gestos grabados por
el médico, se mostrará la leyenda “bien hecha” para que la persona sepa que ha finalizado. Una
vez hecho esto, se puede finalizar la sesión y salir o bien recomenzarla mediante el comando, o el
botón destinado para ello.

Diaz Gastón, Leschevich Germán 266


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Capítulo 8

8 CONCLUSIONES Y LÍNEAS FUTURAS


Este capítulo tiene como finalidad dar a conocer las conclusiones de la investigación
realizada para la elaboración del presente documento, como también para el desarrollo del caso
de aplicación. Además, se definen las posibles líneas futuras que podrían seguir los temas aquí
tratados y las posibilidades de crecimiento de la aplicación desarrollada.

Diaz Gastón, Leschevich Germán 267


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

8.1 CONCLUSIONES
En la presente tesina, se ha investigado en profundidad acerca de las Interfaces
Gestuales y la Realidad Aumentada, entre otros temas. Para ello fue necesario definir y estudiar
varios conceptos, tales como las pautas a tener en cuenta para el diseño de una interfaz de
usuario, definir el concepto de gesto, sus clasificaciones, atributos, y cuándo es realmente útil
diseñar e implementar una interfaz basada en gestos. La investigación respecto de la Realidad
Aumentada permitió conocer su definición, las técnicas para aplicarla, los distintos campos donde
la misma puede ser utilizada y la brecha que la separa de la Realidad Virtual.

Por otra parte, al estudiar las distintas características del sensor Kinect, se aprendió en
detalle su funcionamiento a nivel de hardware y software, lo que permitió, a la hora de desarrollar
una aplicación destinada a manejarse con dicho sensor, una mayor facilidad para programar y
abarcar las diferentes posibilidades que el dispositivo otorga.

En cuanto al caso de aplicación propuesto y desarrollado puede señalarse que se cumplió


con el objetivo de integrar los elementos planteados en un principio, estos son, las Interfaces
Gestuales, la Realidad Aumentada, y un dispositivo de detección de gestos (en este caso, Kinect).
Además, se optó por un campo de aplicación interesante como es la medicina, y la posibilidad de
ayudar al paciente ante una afectación tan grave como lo son los Accidentes Cerebro Vasculares,
hace que resulte aún más atrayente el desarrollo de una aplicación que utilice los conceptos
previamente investigados.

Si bien dicho caso de aplicación fue desarrollado para demostrar e integrar los temas
aquí tratados, se necesitan incorporar algunas funcionalidades o detalles que sólo la ayuda de un
médico puede llegar a aportar, no obstante lo cual, consideramos que el mismo sirve como una
buena base para el desarrollo de una aplicación más detallada en un futuro no muy lejano.

Para concluir, se puede decir que los objetivos planteados en un comienzo tanto los
referidos al aprendizaje de los temas tratados, como los planteados para el desarrollo del caso de
aplicación, fueron cumplidos satisfactoriamente.

Diaz Gastón, Leschevich Germán 268


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

8.2 LÍNEAS FUTURAS


Como trabajos futuros en materia de la aplicación, se podría considerar, incorporar un
médico al equipo de trabajo a efectos de pulir detalles que le competen al mismo. Ello puede
incorporar la generación de reportes, o informaciones que éste considere útiles para la
rehabilitación satisfactoria de un paciente.

En lo que respecta a las líneas futuras de los temas investigados, se puede decir que las
Interfaces Gestuales se encuentran ya instaladas en la sociedad, sobre todo cuando se trata de las
interfaces táctiles. Algo que resta saber, es si en un futuro se podrán imponer (tal como pasó con
las interfaces táctiles) las tecnologías que no requieren del tacto, sino del reconocimiento del
gesto por medio de cámaras y algoritmos. Hay que destacar que en la actualidad también faltan
definiciones de estándares a seguir en lo que respecta a las Interfaces Gestuales, y que en un
futuro no muy lejano seguramente estos van a ser definidos dado el crecimiento e
implementación de las mismas hoy en día.

La investigación de la Realidad Aumentada realizada, permitió conocer que no sólo se


posee un enorme campo de aplicación para la misma, sino que también existen muchas formas de
aplicarla, lo cual abre un variado abanico de posibilidades para su implementación.

En la actualidad, la Realidad Aumentada se encuentra en pleno crecimiento y se están


dando a conocer aplicaciones y dispositivos que la utilizan, tales como las aplicaciones de
información turística, o de recolección de estadísticas en tiempo real para deportistas, o los ya
conocidos (y mencionados) Google Glass. Como consecuencia de ello, no se puede determinar
su techo aún y, a partir de la investigación y los conceptos analizados en la presente tesina, se
pueden desarrollar múltiples investigaciones y aplicaciones en el futuro.

Cabe destacar que el campo de mayor proyección de la RA son los escenarios en donde
las aplicaciones no poseen ningún tipo de referencia, en donde las mismas deben incorporar
mecanismos para poder en primer lugar identificar características o patrones de la escena, para
luego sí poder generar elementos de Realidad Aumentada. Este será sin ninguna duda el futuro de
la RA, sin la necesidad de patrones ni escenas conocidas, en donde dicha tecnología hará un

Diaz Gastón, Leschevich Germán 269


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

quiebre fundamental, que ampliará aún más sus campos de aplicación y por ende extenderá su
mercado.

Sumado al crecimiento de los temas mencionados, se puede destacar que las mejoras que
incorpora el dispositivo Kinect v2 y su kit de desarrollo SDK 2.0, permiten que la calidad y la
utilidad del caso de aplicación desarrollado se eleven en el futuro. Como también el desarrollo de
nuevas aplicaciones e investigaciones que utilicen las Interfaces Gestuales, la Realidad
Aumentada y el dispositivo Kinect v2.

Diaz Gastón, Leschevich Germán 270


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

BIBLIOGRAFÍA
Abascal, J., Aedo, I., Cañas, J., & otros, y. (2001). La interacción persona-ordenador. Jesús
Lorés.

Ahlberg, J. (2012). Linköping University. Obtenido de CANDIDE:


http://www.icg.isy.liu.se/candide/

Animus. (6 de Mayo de 2012). Animus . Obtenido de Animus a Natural - Interactive Multitouch


Surface: http://animusproject.wix.com/web/apps/blog/una-interfaz-diferente-1

Azuma, R. (1997). A Survey of Augmented Reality. Presence: Teleoperators and Virtual


Environments.

Azuma, R., Baillot, Y., Behringer, R., Feiner, S., Julier, S., & MacIntyre, B. (2001). Recent
Advances in Augmented Reality. IEEE Computer Graphics and Applications.

Bimber, O., & Raskar, R. (2005). Spatial Augmented Reality. Wellesley: A. K. Peters Ltd.

Bolt, R. A. (1980). Put that there-Voice and gesture at the graphics interface. 7th annual
conference on Computer graphics and interactive techniques (págs. 262-270). New York:
ACM Press.

Brereton. (2003). Work at Hand: An Exploration of gesture in the context of work and everyday
life to inform the design of gestural input devices. South Australia: Australian Computer
Society Inc.

Burdea, G., & Philippe Coiffet, P. (2003). Virtual Reality. Hoboken, New Jersey: John Wiley &
Son.

Cáceres, A. D. (2007). Terapia Ocupacional. Obtenido de Terapia Ocupacional: Hospital


Universitario de Gran Canaria:

Diaz Gastón, Leschevich Germán 271


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

http://terapiaocupacional50.files.wordpress.com/2007/12/ejercicios-para-realizar-en-casa-
despues-de-un-acv.pdf

Catuhe, D. (2012). Programming with the Kinect for Windows SDK. Washington: Microsoft
Press.

Centro de Artigo. (2012). Obtenido de e-centro: http://centrodeartigo.com/articulos-


educativos/article_17969.html

Centro de Artigo. (2012). Obtenido de e-centro: http://centrodeartigo.com/articulos-noticias-


consejos/article_138686.html

Cheok, A. D., Goh, K. H., Liu, W., Farbiz, F., Teo, S. L., Teo, H. S., . . . Yang, X. (2004).
Human pacman: a mobile wide-area entertainment system based on physical, social, and
ubiquitous computing. ACE ’04:ACM SIGCHI Interna International Conference on
Advances in computer entertainment technology.

Close, B., Donoghue, J., Squires, J., De Bondi, P., & Morris, M. (2000). Arquake: An outdoor-
indoor augmented reality first person application. 4th International Symposium on
Wearable Computers.

Craig, A., Sherman, W., & Will, J. (2009). Developing Virtual Reality Applications: Foundations
of Effective Design. Burligton: Morgan Kaufmann.

Durán Rosas, L. (18 de 11 de 2009). Universidad de Málaga. Obtenido de Universidad de


Málaga - Escuela Técnica Superior de Ingeniería de Telecomunicaciones (ETSIT):
http://www.diariosur.es/20091118/sociedad/hacia-mayor-autonomia-20091118.html

España, M. (Noviembre de 2011). Microsoft. Obtenido de Microsoft España - Prensa:


http://www.microsoft.com/spain/prensa/noticia.aspx?infoid=/2011/11/n022-Microsoft-
primer-encuentro-aplicaciones

Diaz Gastón, Leschevich Germán 272


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

ETI Tudela. (s.f.). ETI Tudela - Formacion profesional de calidad. Obtenido de ETI Tudela -
Formacion profesional de calidad:
www.etitudela.com/celula/downloads/visionartificial.pdf

Feiner, S., MacIntyre, B., Hollerer, T., & Anthony. (1997). A touring machine: Prototyping 3d
mobile augmented reality systems for exploring the urban environment. IEEE
International Symposium. Wearable Computers.

Gerald, C. F., & Wheatley, P. O. (2003). MCS 471: Numerical Analisis. Obtenido de MCS 471:
Numerical Analisis: http://homepages.math.uic.edu/~jan/mcs471/Lec9/lec9.html

Giorio, C., & Fascinari, M. (2013). Kinect in Motion - Audio and Visual Tracking by Example.
Birmingham: Packt Publishing.

Gord Kurtenbach, E. H. (1990). Gestures in Human-Computer Communication. Brenda Laurel.

Greenfield, A. (2006). “Without a Trace”. Dwell.

Gutierrez, M.; Vexo, F.; Thalmann, D. (Stepping into Virtual Reality). Lausana, Francia:
Springer.

Hainich, R. (2009). The End of Hardware, 3rd Edition: Augmented. BookSourge Publishing.

Haller, M., Billinghurst, M., & Thomas, B. (2006). Emerging Technologies of Augmented
Reality. Interfaces and Design. Idea.

IGNEOMA. (2011). IGNEOMA. Obtenido de IGNEOMA - Laboratorio Tecnológico:


http://www.igneoma.com/

Jana, A. (2012). Kinect For Windows SDK Programming Guide. Birmingham: PACKT .

Karam, M. (2006). A framework for research and design of gesture-based human computer
interactions. Southampton: University of Southampton.

Diaz Gastón, Leschevich Germán 273


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Kato, H., & Billinghurst, M. (1999). Marker tracking and hmd calibration for a video-based
augmented reality conferencing system. International Workshop on.

Kim, G. (2005). Designing Virtual Reality Systems: The Structured Approach. Springer-Verlag.

Kinect, O. (2012). Open Kinect. Obtenido de Open Kinect: http://openkinect.org/wiki/Main_Page

KinectToolbox. (2011). Kinect Toolbox. Obtenido de Codeplex:


https://kinecttoolbox.codeplex.com/

Klein, G., & Murray, D. (2007). Parallel tracking and mapping for small ar workspaces. Mixed
and Augmented Reality, IEEE / ACM International Symposium.

Kölsch, M., Bane, R., Höllerer, T., & Turk, M. (2006). Multimodal Interaction with a Wearable
Augmented Reality. IEEE Computer Graphics and Applications.

LeapMotion. (2013). Leap. Obtenido de LeapMotion: https://www.leapmotion.com/

Linares i Pellicer, J. (s.f.). Escuela Politécnica Superior de Alcoi. Obtenido de Escuela


Politécnica Superior de Alcoi:
http://users.dsic.upv.es/~jlinares/grafics/processing_spa_1.pdf

Más, R., Yee, C., & Larrea, M. (2012). Interfaces Gestuales. Congreso Argentino de Ciencias de
la Computación (CACIC), (págs. 1-101). Bahia Blanca.

McNeill, D. (2006). McNeill lab for gesture and speech research. Electronic Resource. Chicago:
Website: University of Chicago.

Mercado Gomez, G. (2013). Trabajo Practico de TAI II: Wii - Microsoft Kinect - PlayStation
Move. Asuncion: Universidad Católica Nuestra Señora de la Asunción.

Microsoft. (2012). Obtenido de http://msdn.microsoft.com/en-us/library/jj130970.aspx#ID4E1

Microsoft. (2014). Obtenido de http://www.microsoft.com/en-


us/kinectforwindows/meetkinect/features.aspx

Diaz Gastón, Leschevich Germán 274


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

Microsoft. (s.f.). Microsoft Visual Studio. Obtenido de Microsoft Visual Studio:


http://www.visualstudio.com/es-es/get-started/overview-of-get-started-tasks-vs

Milgram, & Kishino. (1994). A taxonomy of mixed reality visual displays. In IEICE Trans.
Information Systems.

OpenFrameworks. (2012). OpenFrameworks. Obtenido de http://www.openframeworks.cc/

Quek, F., McNeill, D., Bryll, R., Duncan, S., Ma, X.-F., Kirbas, C., . . . Ansari, R. (2002).
Multimodal human discourse: gesture and speech. Computer-Human Interact (págs. 171-
193). ACM Trans.

Rekimoto, J. (1998). Matrix: A realtime object identification and registration method for
augmented reality. Asia-Pacific Computer and.

Saffer, D. (2009). Designing Natural Interfaces. Canada: O'Reilly.

Sherman, W. a. (2003). Understanding Virtual Reality: Interface, Application, and Design. The
Morgan Kaufmann Series in Computer Graphics.

Shotton, J., Fitzgibbon, A., Cook, M., Sharp, T., Finocchio, M., Moore, R., . . . Blake, A. (Junio
de 2011). Real-Time Human Pose Recognition in Parts from a Single Depth Image.
Microsoft Research. Obtenido de Microsoft Research:
http://research.microsoft.com/apps/pubs/?id=145347

SimpleOpenNI. (2013). SimpleOpenNI. Obtenido de Google Code: SimpleOpenNI:


https://code.google.com/p/simple-openni/

Structure. (2014). Structure. Obtenido de Structure SDK:


http://com.occipital.openni.s3.amazonaws.com/OpenNI_Programmers_Guide.pdf

Sutherland, I. (1968). A head-mounted three dimensional display. AFIPS ’68. New York.

Diaz Gastón, Leschevich Germán 275


Tesina de Grado – Interfaces Gestuales y Realidad Aumentada - UNPSJB

TechNet. (8 de Marzo de 2012). TechNet. Obtenido de TN - Technet News:


http://blogs.technet.com/b/microsoftlatam/archive/2012/03/08/no-mas-clases-aburridas-
gracias-a-kinect.aspx

TedCas. (2013). TedCas: Interfaces de Interacción Natural para la Salud. Obtenido de


http://www.tedcas.com/es

Usability. (s.f.). Usability.org. Obtenido de Usability.Org - ISO:


http://www.usabilitynet.org/tools/r_international.htm#9126-1

Vertegaal, R. (25 de Abril de 2012). HML. Obtenido de HML - Human Media Lab:
http://www.hml.queensu.ca/telehuman

Vlahakis, V., Karigiannis, J., Tsotros, M., Gounaris, M., Almeida, L., Stricker, D., . . . Ioannidis,
N. (2001). Archeoguide: first results of an augmented reality, mobile computing system in
cultural heritage sites. VAST ’01: Virtual reality, archeology, and cultural heritage.

Wexelblat. (1998). Research Challenges in Gesture: Open Issues and Unsolved Problems.
Wachsmuth & Froelich.

Wigdor, D., & Wixon, D. (2011). Brave NUI World - Designing Natural User Interfaces For
Touch and Gesture. USA: Morgan-Kaufmann.

Xataka Movil. (20 de Febrero de 2009). Obtenido de


http://www.xatakamovil.com/desarrollo/pantallas-tactiles-capacitivas-vs-resistivas

Yee, C. M., Abásolo, M. J., Sansó, R. M., & Vénere, M. (2011). Realidad virtual y realidad
aumentada. Interfaces Avanzadas. Editorial de la Universidad de La Plata.

Diaz Gastón, Leschevich Germán 276

También podría gustarte