
Continuando con los desarrollos relacionados con reacTIVision, el siguiente paso es realizar pruebas utilizando una camara web y la aplicacion reacTIVision, pero para poder hacer esto debemos primero imprimir los marcadores que vamos a utilizar.
Existen tres diferentes tipos de marcadores o fiducials que pueden ser utilizados con el software reacTIVision, el amoeba, el classic y el dtouch, cada tipo posee un conjunto de elementos finito y de diferentes caracteristicas de forma y construccion; por ejemplo el conjunto dtouch utiliza un conjunto de cuatro zonas en la cuales estan marcados puntos y lineas, mientras el classic utiliza seis zonas y el amoeba tiene una construccion mas natural utilizando circulos.
Conjunto de Simbolos :
Estos simbolos se pueden encontrar en el directorio symbols de la distribucion de reacTIVision, en nuestro caso utilizaremos los marcadores de amoeba, que son muy llamativos por su forma y son los mas utilizados, para ello abrimos el PDF que contiene los simbolos e imprimimos una o mas pagina, recortamos los simbolos y estamos listos para comenzar a probar. Si se quieren que los marcadores tengan mas duracion y resistan un uso continuo se puede utilizar carton para fijarlos, contact transparente para forralos o fijarlos a fichas, objetos, entre otros. Por el momento utilizaremos las hojas. En proximas pruebas se utilizaran diferentes tamaños de marcador para identificar posibles tamaños de los objetos a utilizar dentro de los proyectos.
Nota :
Es importante identificar el id del marcador el cual esta a un lado de este cuando lo imprimimos, este identificador es que se utiliza para realizar el seguimiento desde la aplicacion.
Enlaces :
Siguiendo con los desarrollos para los metaversos, llega la primera version de la superficie para mundos virtuales MMetaverseSurface que permite controlar uno a mas avatars y objetos desde una superficie interactiva en la cual se colocan marcadores que representan dichos elementos.
Esta primera version es una prueba de concepto que busca identificar los elementos necesarios para crear este tipo de aplicaciones, por ejemplo para la creacion de la superficie se utilizara la aplicacion reacTIVision que permite capturar la posicion y angulo de marcadores, los cuales representaran los objetos y avatars; esta aplicacion utiliza una camara de video con soporte de firewire o una camara USB para capturar la imagen de la superficie e identificar cada uno de los marcadores, enviando la informacion de posicion y angulo de cada uno de estos. Para la comunicacion con los mundos virtuales se utiliza LibOpenMetaverse que permite interactuar con mundos virtuales como Second Life y OpenSimulator, esta libreria esta desarrollada en C# lo que hace necesario utilizar un cliente de reacTIVision para dicha plataforma, como tambien hacer el desarrollo de la aplicacion MMetaverseSurface es esta plataforma. Adicionalmente para el desarrollo se utiliza una plataforma Ubuntu Linux con la version de codigo abierto de la plataforma .NET llamada Mono y utilizando la herramienta NAnt para automatizar la construccion del software.
Actualmente la version 0.1 de la aplicacion permite controlar uno o mas avatars a los cuales se les ha asignado un marcador y que permite utilizando el simulador o el reacTIVision controlar el avatar dentro de la region en la que se encuentra, permitiendo cambiar la posicion y angulo en el que mira el avatar. Actualmente existen algunos problemas con el movimiento que hacen que el avatar no se quede estatico en una posicion, si no que opsilar entre dos posiciones.
Para las pruebas iniciales se utilizo como servidor OpenSimulator instalado en la misma maquina que la aplicacion lo que permite tener una respuesta muy rapida de los movimientos del avatar, tambien se utilizo el simulador de reacTIVision para tener el control preciso sobre la aplicacion.
Requerimientos :
Instalacion :
Ejecutar :
Enlaces :
Para comenzar hacer pruebas con reacTIVision y Processing, decidi crear un pequeño sketch que visualizara los objetos sobre la tabla como cuadrados los cuales tuvieran las mismas propiedades de posicion y rotacion. Para esto se debe instalar la libreria de soporte para TUIO en Processing y crear un pequeño sketch.
Instalar la libreria de TUIO en Processing :
Crear Sketch de Prueba :
// Importar Libreria y declarar cliente import tuio.*; TuioClient tuioClient; // Iniciar el sketch cambiando de tamaño y creando el cliente void setup() { size(320,240); rectMode(CENTER); tuioClient = new TuioClient(this); } // Pintar los objetos void draw() { background(200); // Limpiar la pantalla // Obtener los objetos TuioObject[] objects = tuioClient.getTuioObjects(); // Pintar cada objeto con su propa transformacion for (int i=0;i<objects.length;i++) { TuioObject obj = objects[i]; pushMatrix(); translate(obj.getScreenX(width),obj.getScreenY(height)); rotate(obj.getAngle()); rect(0,0,40,40); popMatrix(); } }
Abrir el Simulador de TUIO o el reacTIVIsion :
Enlaces :
Hace algunos dias compile la version de reacTIVision 1.4 pre2 para Ubuntu Linux, pero desafortunadamente no pude hacer que mi camara web USB con los drivers Video4Linux2 funcionara correctamente. Con la version 1.3 de reacTIVision fui capaz de utilizar mi camara pero las velocidades de captura no pasaban de los 2 FPS lo que no permite tener una buena respuesta para hacer el seguimiento adecuado de los objetos. Con la version 1.4 pre 2 la aplicacion simplemente muestra un cuadro negro y nunca la imagen de la camara. Por estos motivos y para poder crear una aplicacion cliente que utilice la informacion enviada por reacTIVision es bueno contar con un simulador que emule el comportamiento de una superficie y envie los mensajes a un cliente producidos por esta a una aplicacion que recibe los mensajes y realiza acciones de acuerdo a los eventos enviados.
Requisitos :
Instalacion TUIO Simulator :
Comandos :

La aplicacion reacTIVision es una aplicacion multiplataforma de codigo abierto para el reconocimiento y seguimiento de marcadores visuales colocados en objetos fisicos, como tambien provee seguimiento y reconocimiento para crear superficies multitouch. Fue diseñada como un set de herramientas para la creacion rapida de superficies que implementen interfaces de usuario tangibles, como mutitouch. El proyecto ha sido desarrollado por Martin Kaltenbrunner y Ross Bencina dentro del grupo de Tecnologia Musical en la Universidad de Pompeu Fabra en Barcelona, España. Como parte integral de proyecto de la reacTable, instrumento musical que utiliza estos marcadores para crear sonidos y patrones musicales sintetizados.
En terminos mas terrenales, el reacTIVision permite identificar la posicion y rotacion de patrones bidimensionales sobre una superficie que permiten interactuar con aplicaciones que usan dichos marcadores como elemento de interaccion permitiendo al usuario enviar ordenes y comandos a las aplicaciones. El software es parte del proyecto de reacTable pero el software que produce la interface visual y la sintesis de sonido no esta disponible al publico.
El software puede ejecutarse como una aplicacion wl cual envia mensaje OSC (OpenSound Control) via UDP a traves del puerto 3333 a cualquier cliente que este escuchando en dicho puerto. Implementa el protocolo TUIO el cual ha sido diseñado para transmitir el estado de objetos tangibles y eventos multitouch en una superficie. El software incluye algunos clientes de ejemplo gratuitos basicos para el desarrollo de aplicaciones. Adicionalmente reacTIVision es capaz de enviar mensajes MIDI.
Actualmente reacTIVision esta siendo utilizado por infinidad de proyectos para la creacion de superficies multitouch e interaccion fisica a traves de estos marcadores.
Enlaces :