Preparación – Lluvia Interactiva v1: Conexión PD y Processing+Box2D a través de OSC

La primera prueba que se ha realizado de Tracking Video ha sido utilizando Pure Data y openCV, Processing, Box2D y OSC.

Se realizó la conexión en OSC entre PD y  Processing. De el primer blob que se detectaba en PD, se enviaban las coordenadas x, y, alto y ancho a Processing.

Este primer blob con forma cuadrada, se recoje por OSC en Processing y se transforma en un elemento fijo, al igual que la casa anterior, en el cual van chocando las partículas.

El blob va cambiando de posición y forma en cada Step de Box2D, por lo que se necesita borrar el blob en cada paso y crearlo.

Conexión PD y Processing+Box2D a través de OSC from Miriam Esteve on Vimeo.

En este código destacaría la conexión en OSC de Processing:

  oscP5 = new OscP5(this,12000);
  myRemoteLocation = new NetAddress("127.0.0.1",12000);

Donde se conecta por el puerto 12000 que es al que se  envía desde PD los datos. Y además se añade que estaremos en la propia maquina, por esto la IP de localhost (127.0.0.1).

Y la obtención de datos provenientes de PD:

  void oscEvent(OscMessage theOscMessage) {
  if(theOscMessage.checkTypetag("i") && theOscMessage.get(0)!=null) {
  if(theOscMessage.checkAddrPattern("/first")) {
      primerValor_x = theOscMessage.get(0).intValue();
  } 
...

En el cual se recogen los valores de PD que se van enviando, por ejemplo, cuando se reciba  “/first”, este es el valor correspondiente a X del blob. se guarda para poder generar así el cuerpo (body) en Box2D en esa posición x.

Dificultades encontradas:

Con PD:

Se observó que PD pasaba a menudo datos negativos, por lo que se filtró cualquier numero menor que 0, y se inicializó a 1.

También se observó que el blob iba desapareciendo a pesar de las buenas condiciones lumínicas y no hacía una detección demasiado fina, aparte que esto se vería incrementado en la oscuridad de una escena.

Esto se podría solucionar incluyendo una cámara e iluminación de infrarrojos, o hacer unos manualmente. El coste de una cámara infrarroja y una iluminación es elevado y el filtrado manualmente no es una de las mejores soluciones.

Con Box2D:

El blob detectado por PD, para que pueda servir en Box2D, debería ser formado por formas básicas, algo que no se ha podido conseguir con exactitud con el blob detectado con OpenCV, por lo se ha barajado la posibilidad de usar la cámara Kinect, pero de ella ya hablaré en la próxima entrada.

Etiquetas: , , , , , ,

About Miriam Esteve

Ingeniera & creativa. Amiga de mis amigos. Me gustan las cosas bonitas, el diseño, el video y la fotografía, cocinar, reír y disfrutar de la vida! Spain&Germany www.control-art.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: