Capítulo 4. Implementación del lenguaje multitáctil

Documentos relacionados
CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPÍTULO 3 Servidor de Modelo de Usuario

Microsoft Access proporciona dos métodos para crear una Base de datos.

IV. Implantación del sistema.

Análisis y diseño del sistema CAPÍTULO 3

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

Capítulo 5. Cliente-Servidor.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

comunidades de práctica

Ingeniería de Software. Pruebas

Capitulo 3. Desarrollo del Software

Guía de uso del Cloud Datacenter de acens

Capítulo 6. Desarrollo del Software

Operación de Microsoft Word

Sección de Introducción.

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Capitulo VII. Editor de Mapa de Tareas. Como hemos hablado en los capítulos anteriores, sabemos que parte del éxito

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Manual de uso. Manual de uso - citanet 1

Operación Microsoft Access 97

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

SISTEMA DE APARTADO DE SALAS PARA EVENTOS

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Trabajar con diapositivas

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Aplicación para la gestión de prácticas en empresas. Memoria

Reporte inicial. Metodología

Capitulo III. Diseño del Sistema.

App para realizar consultas al Sistema de Información Estadística de Castilla y León

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Introducción a los sitios de SharePoint en Office 365

Arquitectura de sistema de alta disponibilidad

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Capítulo V. Implementación

Manual de usuario administrador. Correo Exchange Administrado

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Gestión de la Configuración

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

Capítulo 4 Análisis y diseño del software de los Robots

Capitulo 5. Implementación del sistema MDM

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Arquitectura de Aplicaciones

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

LiLa Portal Guía para profesores

Guía Práctica para el Uso del Servicio de Software Zoho CRM

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

Visión General de GXportal. Última actualización: 2009

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

SUPERINTENDENCIA DE INDUSTRIA Y COMERCIO DELEGATURA DE PROPIEDAD INDUSTRIAL DIVISIÓN DE SIGNOS DISTINTIVOS

Capítulo 3. Análisis y Diseño

Guía Práctica para el Uso del Servicio de Software Zoho CRM

CRM para ipad Manual para Usuario

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

UNIVERSIDAD TECNICA DEL NORTE

Revendedor administrado en el portal de incentivos del socio. Cómo comenzar: Administración de usuarios

Reglas de Uso del PACE

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

Desarrolladores: Christian David Merino Cruz. Bryan Alexis Peraza Navas. Erik Alberto Renderos Morales.

Introducción a la Firma Electrónica en MIDAS

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

Sistema de detección de incendios. Sergio Menéndez Muñiz Consultor: Jordi Bécares Ferrés Fecha: Junio 2012

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Módulo II - PowerPoint

Acronis License Server. Guía del usuario

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Base de datos en Excel

2 EL DOCUMENTO DE ESPECIFICACIONES

E-learning: E-learning:

Contenido. cursos.cl / Teléfono:

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Prototipo de un sistema. interactivo de soporte y ayuda a los compradores de un centro. comercial de equipamiento del hogar

CRM para ipad Manual para Usuario

DISEÑO DE FUNCIONES (TRATAMIENTOS)

Academias Nacionales De Docentes. Usuario

Este proyecto propone la investigación referente al modelado y desarrollo de agentes para

Figura 4.6: Prototipo de la pantalla de inicio.

Capítulo III. Diseño del sistema. Dentro de este capítulo veremos a detalle el diseño del sistema, que como se había

Elementos requeridos para crearlos (ejemplo: el compilador)

UNIVERSIDAD DE SALAMANCA

Gastos Reales Web Manual de Usuario

Estimado usuario. Tabla de Contenidos

MANUAL DE USUARIO DE CUENTAS DE CORREO

RELACIÓN DE PRÁCTICAS DEL TEMA 2

SISTEMA DE GESTIÓN ACADÉMICA.

PROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Practica A. Crear y Administrar Grupos

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Transcripción:

Capítulo 4. Implementación del lenguaje multitáctil En este capítulo se presenta como fue diseñado y desarrollado el servicio de ademanes multitáctiles. Se presentan la arquitectura general del sistema, las tecnologías utilizadas para su desarrollo, se muestra una interfaz gráfica donde se presenta la funcionalidad del servicio y por último la integración con otro módulo de la plataforma de Neuerung llamado Vozze. 4.1 Arquitectura de InnovaTouch InnovaTouch se concibió como un servicio para agilizar la manipulación de objetos directamente sobre una pantalla multitáctil de manera eficiente. Para lograr esto, se diseñó la arquitectura del servicio, la cual trabaja sobre la arquitectura del framework TUIO. En seguida se muestra la arquitectura de cómo funciona este framework. Figura 4.1. Arquitectura general del framework TUIO (se incluye imagen con permiso del autor). 38

El framework TUIO realiza el rastreo de los objetos que observa la cámara, en el caso específico de InnovaTouch solo se realiza el rastreo de dedos y no de objetos. El rastreador TUIO crea objetos manipulables para cualquier lenguaje de programación, los cuales se utilizaran para realizar el reconocimiento de los ademanes. Estos objetos son enviados por un puerto de red a través del protocolo de comunicación OSC (Open Sound Control). Una vez que la aplicación cliente recibe los objetos por medio del puerto, se procesan estos objetos para poder realizar el reconocimiento de los ademanes multitáctiles o de los objetos que se encuentran sobre la superficie. La aplicación realiza las operaciones necesarias y muestra los cambios en la interfaz de usuario. En este caso InnovaTouch equivale a la aplicación cliente de TUIO. Para desarrollar InnovaTouch se creó un diagrama que muestra cómo se realizan las acciones internas y la interacción que existe entre el protocolo TUIO y el servicio de InnovaTouch. En la Figura 4.2 se muestra la arquitectura interna del servicio de InnovaTouch. Figura 4.2. Arquitectura general de InnovaTouch. 39

El protocolo TUIO proporciona información al sistema para poder procesarla y realizar las acciones necesarias para el reconocimiento de ademanes. La interfaz de notificación recibe información de cuando se agregan, modifican o eliminan cursores TUIO de la superficie interactiva; también recibe el reconocimiento de los gestos y realiza las operaciones necesarias dependiendo de cuantos cursores estén activos en un determinado momento y de la trayectoria que estos sigan. El módulo de reconocimiento de ademanes contiene todos los algoritmos que son necesarios para saber que ademán se desea realizar y hacer las operaciones pertinentes. Después de haber realizado el reconocimiento de los ademanes a través del módulo de notificación de TUIO, se realiza asignaciones hacia otros módulos sobre las acciones se deben de ejecutar. Por último se debe mostrar en la interfaz gráfica las modificaciones que hayan llevado a cabo. 4.2 Modelo de programación del servicio multitáctil En esta sección se da a conocer como se desarrolló el servicio de ademanes multitáctiles. Para la implementación del servicio multitáctil se utilizó el lenguaje de programación Java junto con el framework TUIO, se escogieron estos recursos ya que el objetivo de este proyecto fue crear un servicio gratuito y de código abierto para que posteriormente pueda ser modificado y mejorado sin restricciones. Otro punto a favor de estos recursos es que son tecnologías multiplataforma, lo que nos permite ejecutar este en diferentes sistemas operativos. Se adoptó el modelo MVC (Modelo Vista Controlador) para la implementación del servicio de InnovaTouch; se hizo de esta manera para que el sistema esté modulado y ayudar a que 40

en versiones futuras el código sea entendible y fácil de mantener. A continuación se da una descripción del contenido que cada elemento del modelo posee. 4.2.1 Modelo En el modelo se encuentran los algoritmos necesarios para realizar el reconocimiento multitáctil, así como las librerías del framework TUIO. El modelo es utilizado por el controlador para procesar los algoritmos del reconocimiento multitáctil. Algunos algoritmos de reconocimiento de ademanes están implementados por medio del manejo de coordenadas en pantalla. No se realizó ningún modelo de entrenamiento del sistema ya que durante el desarrollo del software no se contó con el hardware necesario; esto impidió emplear alguna técnica como los modelos ocultos de Markov. 4.2.2 Controlador El controlador es el medio de procesamiento entre el modelo y la vista; se encarga de recibir datos de la vista y de llamar al modelo para realizar el procesamiento correcto de los ademanes multitáctiles, así como las acciones necesarias hacia la vista o hacia otros módulos externos al servicio. 4.2.3 Vista La vista muestra una interfaz gráfica de usuario, con la cual los usuarios pueden interactuar y realizar acciones sobre ella. La vista manda los datos de la interacción que existe en la interfaz hacia el controlador y recibe retroalimentación acerca de lo que sucede en el controlador. En el apéndice A se muestran los diagramas UML que se realizaron durante el diseño del servicio de InnovaTouch. 41

4.3 Descripción detallada de la implementación de cada ademán Selección de un objeto. Para la implementación de este ademán se toma en cuenta que exista un solo punto de contacto dentro el objeto y que este punto no realice un movimiento de deslizamiento. El reconocimiento de este ademán se ejecuta cuando el framework TUIO detecta que el punto de contacto es removido de la superficie multitáctil. Desplazamiento de un objeto. Para este ademán se obtienen las coordenadas (x, y) del punto de contacto y el objeto es desplazado dependiendo del número de pixeles que recorre el punto de contacto. Este ademán se ejecuta cuando el framework TUIO detecta que el punto de contacto está realizando un recorrido por la superficie interactiva. Edición de un objeto. Este ademan funciona de la misma manera que cuando se hace la selección de un objeto. La única diferencia es que en este caso el sistema detecta que el primer y segundo punto de contacto se haya realizado aproximadamente en la misma coordenada (x, y) y que el tiempo entre cada contacto sea menor a quinientos milisegundos. Este ademán es semejante a realizar un doble clic con un ratón. Cambio de tamaño de un objeto. Este ademán es ejecutado cuando se detectan dos puntos de contacto sobre un mismo objeto, se mide la separación que existe entre los dos puntos cuando el framework TUIO los detecta y conforme se alejan o acercan los puntos, el objeto cambia de tamaño. Rotación de un objeto. La implementación de este ademán toma en cuenta que se hayan detectado dos puntos de contacto sobre el mismo objeto. Con la distancia que existe entre el primer punto y el segundo se crea un vector; con el cambio de coordenadas de cualquiera de los dos puntos se crea otro vector. Con estos dos vectores que se forman, obtenemos el 42

ángulo en grados que hay entre ellos y se aplica una rotación al objeto con el ángulo resultante. Para saber en qué dirección se debe de rotar el objeto se realiza una operación de punto cruz entre los dos vectores y se multiplica el ángulo resultante por menos uno si es necesario. Este ademán puede ser ejecutado al mismo tiempo que se realiza el cambio de tamaño si es que los puntos de contacto se deslizan en forma circular. Propiedades de un objeto. Para este ademán son necesarios dos puntos de contacto que terminen su recorrido dentro de un mismo objeto. Se calcula que estos dos puntos de contacto se hayan detectado aproximadamente al mismo tiempo (diferencia no mayor a quinientos milisegundos) y que la distancia entre ellos sea menor a treinta pixeles durante todo el recorrido de cada punto de contacto. Cada punto de contacto debe de realizar un recorrido en Y mayor a treinta pixeles. El reconocimiento de este ademán se ejecuta cuando el framework TUIO detecta que dos puntos de contacto son removidos de la superficie multitáctil en un tiempo no mayor a quinientos milisegundos. Asociación de tarjetas. La asociación de tarjetas se puede realizar de dos maneras, la primera es cuando quiere ir de un objeto hacia otra tarjeta y la segunda cuando se necesita regresar de una tarjeta. En los dos casos el ademán se realiza de la misma manera, solo que en el primer caso se realiza sobre el objeto que queremos asociar y en el segundo se realiza sobre un área en blanco de la tarjeta. Para ejecutar este ademán, el sistema necesita detectar que se hayan hecho dos toques consecutivamente (tiempo no mayor a quinientos milisegundos) con dos puntos de contacto al mismo tiempo y con una distancia entre los puntos de no más de setenta pixeles. El algoritmo también se asegura de que los puntos de contacto no hayan realizado un movimiento de desplazamiento. El reconocimiento de este ademan se realiza cuando se remueven los puntos de contacto de la superficie. 43

Borrado de un objeto. Este ademán tiene una implementación muy parecida a la asociación de tarjetas. La única diferencia es que este ademán se realiza con tres puntos de contacto sobre el objeto que se requiere borrar. Deshacer y rehacer acciones. Para este ademán son necesarios tres puntos de contacto que terminen su recorrido dentro de un mismo objeto. El algoritmo calcula que estos tres puntos de contacto se hayan detectado aproximadamente al mismo tiempo (diferencia no mayor a quinientos milisegundos) y que la distancia entre ellos sea menor a treinta pixeles durante todo el recorrido de cada punto de contacto. Cada punto de contacto debe de realizar un recorrido en X mayor a treinta pixeles. El reconocimiento de este ademán se ejecuta cuando el framework TUIO detecta que tres puntos de contacto son removidos de la superficie multitáctil en un tiempo no mayor a quinientos milisegundos. Selección de varios objetos. Para ejecutar este ademán, el sistema necesita detectar que se realice un toque con tres puntos de contacto al mismo tiempo y con una distancia entre cada punto de no más de setenta pixeles. Se crea una lista de los objetos a los que se les ha ejecutado este ademán para saber cuáles son los objetos a seleccionar. El algoritmo también se asegura de que los puntos de contacto no hayan realizado un movimiento de desplazamiento y el reconocimiento de este ademan se realiza cuando se remueven los puntos de contacto de la superficie. Copiar y pegar objetos. Este ademán se ejecuta cuando se detectan cuatro puntos de contacto sobre un mismo objeto. El algoritmo se asegura de que el toque de los cuatro puntos se haya realizado en un tiempo no mayor a quinientos milisegundos y de que no se 44

hayan deslizado los puntos. Esto se detecta cuando se eliminan los puntos de contacto de la superficie. 4.4 Creación de una interfaz gráfica para la realización de pruebas Se desarrolló una interfaz gráfica con el objetivo de realizar pruebas del funcionamiento del lenguaje multitáctil, de manera que se pueda comprobar que los ademanes tengan un funcionamiento adecuado. La implementación de esta interfaz gráfica se decidió realizar en Java FX, para efectos de estética y simplicidad de código. La Figura 4.3 muestra una imagen con la interfaz gráfica que se hizo para la realización de pruebas. Figura 4.3. Pantalla principal de la interfaz de usuario de pruebas. 45

La figura muestra la pantalla de inicio de la interfaz gráfica, donde un usuario puede comenzar a explorar y realizar cualquiera de los ademanes que se propusieron para este trabajo. Por medio de los ademanes propuestos, se puede realizar la manipulación de los objetos que se muestran sobre una superficie multitáctil. 4.5 Dispositivos utilizados para el desarrollo de InnovaTouch Durante la etapa de desarrollo de InnovaTouch se utilizaron diferentes dispositivos para realizar pruebas del funcionamiento del lenguaje implementado. Al inicio del desarrollo se implementó la técnica del control remoto de wii para simular una superficie multitáctil, se construyeron varios lápices con LED s infrarrojos para que el control de wii los detectara como puntos de contacto y enviara información a través del protocolo TUIO. Sin embargo, el uso de esta técnica resulto ser incómoda para ejecutar los ademanes y la configuración consumía mucho tiempo, de manera que se buscó otra alternativa para poder evaluar de manera rápida que la implementación de los ademanes marchaba en el camino correcto. Fue así que se optó por una herramienta llamada TUIO Simulator, la cual permite simular una superficie multitáctil por medio del uso del ratón. Esta opción fue una gran alternativa que ayudo a verificar el comportamiento de los ademanes durante el desarrollo de estos. Por último, para poder realizar pruebas de usabilidad y verificar de manera real el desempeño de los ademanes, se utilizó una mesa multitáctil utilizando la técnica de iluminación difusa. Por medio de este último dispositivo se pudieron corregir varios errores que no se habían podido detectar por medio del simulador, lo que mejoró la forma en que los ademanes fueron implementados. 46

4.6 Cómo integrar InnovaTouch con otro software Debido a la modularidad con la que está desarrollado InnovaTouch, este servicio de reconocimiento de ademanes multitáctiles es capaz de integrarse con otro software para ofrecer la opción de ser manipulado por medio de acciones multitáctiles. Para poder realizar la integración con otro software, este necesita tener desarrollada su interfaz de usuario en Java FX, ya que InnovaTouch maneja objetos abstractos de este lenguaje de programación llamados nodos. Así, InnovaTouch puede realizar operaciones por medio de los nodos sin la necesidad de saber si el objeto es una imagen, una etiqueta o un rectángulo. Para realizar la implementación del servicio, el software necesita crear una instancia de la clase TuioClient y definir un puerto de red que se utilizara para que el framework TUIO haga el rastreo de los puntos de contacto. El siguiente paso es agregar la clase TuioComponent que efectúa la detección y el manejo de los puntos de contacto a la instancia de TuioClient. Por último, se hace la conexión para que el software pueda empezar a escuchar los mensajes del protocolo TUIO a través del puerto configurado. En la Figura 4.4 se muestra el código para realizar la integración. Figura 4.4. Código para realizar la conexión con el InnovaTouch en una aplicación. De esta manera InnovaTouch puede empezar a realizar la detección de ademanes por medio del software integrado y el siguiente paso solo es mapear estos a las acciones que se requiera que el software realice. Para asignar las acciones de la aplicación a los ademanes 47

de InnovaTouch es necesario tomar los métodos que ejecutan las acciones y dentro de estos métodos implementar las acciones que la aplicación necesite realizar. La Figura 4.5 muestra los métodos necesarios para realizar la asignación de acciones. Figura 4.5. Métodos necesarios para la asignación de acciones. Llevando a cabo los pasos anteriores es posible que InnovaTouch se comunique con aplicaciones externas para que puedan ser utilizadas por medio de superficies multitáctiles. 4.7 Integración con la plataforma Neuerung Uno de los objetivos iniciales de esta tesis fue integrar InnovaTouch con Neuerung, plataforma que está pensada para poder tener múltiples servicios de software y que puedan ser utilizados por medio de ademanes multitáctiles sobre superficies interactivas. Específicamente, InnovaTouch se integró con Vozze [Huerta 2010], que es uno de los servicios que integra la plataforma Neuerung. Vozze es un software que adopta el concepto de ligado de tarjetas para mejorar la organización de información y se apoya del reconocimiento de voz para agilizar la captura de ideas. El objetivo principal de este software es que se mejore el trabajo realizado en ambientes colaborativos, ingresando texto por medio de voz y organizando la información por medio del concepto de ligado de tarjetas. 48

El objetivo principal de integrar estos dos servicios es el de mejorar la experiencia de uso del software colaborativo en donde se utilizan pantallas interactivas de gran tamaño. Esto permite que los usuarios se enfoquen en sus ideas y trabajen directamente sobre una superficie multitáctil, lo que hace innecesario el uso de un ratón y un teclado. La Figura 4.6 muestra la interfaz principal de Vozze integrado con InnovaTouch. Figura 4.6. Vozze integrado con InnovaTouch. Por medio de la integración de estos servicios, InnovaTouch tiene la capacidad de dar soporte a la mayoría de acciones que realiza Vozze, con opción a poder ampliar las funciones en ambos servicios, ya sea agregando acciones en Vozze o implementando nuevos ademanes en InnovaTouch. Es importante mencionar que no todos los ademanes de InnovaTouch fueron integrados al servicio Vozze, debido básicamente a que Vozze no implementa ciertas acciones que InnovaTouch es capaz de realizar (como por ejemplo, deshacer y rehacer) y a que también 49

hubo acciones de Vozze que no se podían realizar por medio del reconocimiento de gestos de InnovaTouch (como por ejemplo cambiar el formato de letra en Vozze). Aun así, si se pudieron integrar la mayoría de las acciones para que este software fuera funcional y de fácil utilización para los usuarios. La Figura 4.7 muestra un diagrama con la relación entre Vozze e InnovaTouch. Figura 4.7. Diagrama de interacción entre Vozze e InnovaTouch. Se planea que todos los servicios de la plataforma Neuerung tengan la capacidad de adaptarse para ser manipulados por medio de ademanes multitáctiles, apoyándose del servicio de reconocimiento multitáctil de InnovaTouch. En el siguiente capítulo se muestran las evaluaciones realizadas a varias personas con el objetivo de saber si el servicio de InnovaTouch es fácil de utilizar y si su uso mejora la interacción colaborativa. 50