Resistance is Futile

Imprimiendo Marcadores para reacTIVision

amoeba_01

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.

Amoeba Fiducials Amoeba Fiducials

Conjunto de Simbolos :

  • Amoeba
    90 marcadores blaco sobre negro o negro sobre blanco
  • Classic
    120 marcadores
  • dtouch
    24 marcadores

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 :

  • La licencia de uso de los simbolos esta permitida solo si se utiliza con el software reacTIVision, si es utilizado por otras aplicaciones se debe solicitar una licencia de uso diferente.

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 :


MMetaverseSurface 0.1

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 :

  • Windows : Microsoft .NET Framework 2.0 (v2.0.50727 or later)
  • Linux : mono 1.9 - http://www.mono-project.com/

Instalacion :

  • Descargar el archivo con la distribucion de la aplicacion
  • Descomprimir
  • Editar el archivo mmetaversesurface/bin/MMetaverseSurface.exe.config y cambiar la url de autenticacion del mundo virtual.
    • Para Second Life utilice : https://login.agni.lindenlab.com
    • Para OpenSimulator utilice : http://192.168.1.4:9000 (cambiar la IP y el puerto a los de suservidor)
  • Editar el archivo mmetaversesurface/bin/avatars.txt
    Modificar la linea suministrando la informacion del avatar a controlar
    Id del Marcador, Nombre, Apellido, Clave
    El id del marcador es un numero que representa el marcador a utilizar dentro de reacTIVision

Ejecutar :

  • Ejecutar el TUIO Simulator o ejecutar la aplicacion reacTIVision
  • Ejecutar el MMetaverseSurface.exe
  • Conectarse al mundo virtual utilizando un avatar diferente al utilizado en la aplicacion
  • Teletransportarse a sitio donde se encuentra el avatar a ser controlado
  • Controlar el avatar utilizando los marcadores

Enlaces :


Hola Mundo con reacTIVision

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 :

  • Abrir una consola
  • Ir al sitio de reacTIVision
    http://mtg.upf.edu/reactable/?software
  • Descargar la libreria para TUIO__Processing.zip, por ejemplo :
    wget http://superb-east.dl.sourceforge.net/sourceforge/reactivision/TUIO_Processing-1.4pre2.zip
  • Descomprimir la libreria
    unzip TUIO_Processing-1.4pre2.zip
  • Cambiar el directorio
    cd TUIO_Processing
  • Copiar el directorio de tuio al directorio de librerias de Processing, por ejemplo
    cp -R tuio <ruta>/processing-1.0.1/libraries

Crear Sketch de Prueba :

  • Ejecutar Processing
    cd <ruta>/processing-1.0.1
    ./processing
  • Escribir el siguiente sketch :
    // 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&lt;objects.length;i++) {
         TuioObject obj = objects[i];
         pushMatrix();
         translate(obj.getScreenX(width),obj.getScreenY(height));
         rotate(obj.getAngle());
         rect(0,0,40,40);
         popMatrix();
       }
     }
  • Ejecutar el programa.

Abrir el Simulador de TUIO o el reacTIVIsion :

  • Ir al diectorio de TUIO Simulator
    cd <ruta>/TUIO_SIMULATOR
    ./run.sh
  • o Ir al diectorio de reacTIVision
    cd <ruta>/reacTIVision
    ./reacTIVision

Enlaces :


TUIO Simulator en Ubuntu 8.10

tuio_simulatorHace 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 :

  • Tener Java instalado, si no lo tiene se puede instalar rapidamente asi :
  • Abrir una consola, ejecutar
    sudo apt-get install sun-java6-jdk
  • Verificar que el Java6 sea la alternativa por defecto
    sudo update-alternatives --config java

Instalacion TUIO Simulator :

  • Abrir una consola
  • Descargar la ultima version del simulador del sitio
    http://mtg.upf.edu/reactable/?software
  • Buscar el enlace al TUIO Simulator y descargar
  • En este caso descargaremos la version 1.4 pre 2
    wget http://superb-east.dl.sourceforge.net/sourceforge/reactivision/TUIO_Simulator-1.4pre2.zip
  • Descomprimimos el archivo
    unzip TUIO_Simulator-1.4pre2.zip
  • Nos cambiamos al directorio del TUIO
    cd cd TUIO_Simulator
  • Ejecutamos la aplicacion
    ./run.sh
  • Se abre una ventana que simula un ambiente con una gran cantidad  de marcadores

Comandos :

  • Sobre los Objetos :
    • Click Izq - Arrastrar : Mueve el objeto sobre la superficie
    • Click Der - Arrastrar : Rota el objeto sobre la superficie
    • Shift - Click Izq - Arrastrar : Levanta y mueve el objeto de la superfice
    • Shift - Click Der - Arrastrar : Cambia la cara del objeto
    • Ctrl - Mouse : Visualiza el identificador del objeto
  • Sobre la superficie :
    • Click Izq - Arrastrar : Crea eventos de cursor
    • Shift - Click Izq - Arrastrar : Evento persistente
    • Al mover el punto gris el evento continua
    • Shift - Click : Remueve el evento

Que es reacTIVision ?

reactivision

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 :


Page 2 of 3123
Powered by WordPress | Designed by Elegant Themes