Proyecto Fin de Carrera

Robótica, software y telecomunicaciones.

Cómo integrar OSRGart en RoboComp

Anteriormente os había hablado sobre OSGArt y algunos truquillos que nos costó mucho esfuerzo dar con ellos. Por ahora tengo el componente moleComp para estudiarlo e integrar OSGArt en Camimic.

Damos por hecho que tememos OSGArt correctamente instalado en nuestro sistema, si no fuera el caso lo explico en esta entrada.

Necesitamos, para no partir de cero, lo siguiente:

  • La clase de OSGArt creada por Luiky (que se llama precisamente OSGArt) que se compone de los archivos osgArt.h y osgArt.cpp
  • Los patrones de las marcas, para que ARToolKit pueda comparar la imagen a procesar con los patrones, y localizar y hacer tracking de las marcas. Estos patrones tienen el formato patt.* donde el asterisco es el nombre de la marca(patt.hiro, patt.play…), por decirlo de aún modo, estos archivos tienen la extensión patt. a la izquierda del nombre de archivo. Todos estos archivos deben ir en una carpeta de nombre Data en la carpeta de los ejecutables de tu componente …micomponenteComp/bin/ junto al binario micomponenteComp.
  • Modificar el CMakeLists.txt para indicarle que use los archivos osgArt.cpp y osgArt.h durante la compilación.
  • Declararnos un objeto de tipo OSGArt en nuestro worker.h, inicializar el objeto en el constructor de worker.cpp, y dentro del compute() de worker.cpp llamar a la función mienbro updateArt(image) del objeto creado.
  • Las marcas impresas y en soporte rígido para interactuar con la parte de OSGArt de nuestro compoente.

En el final de la entrada adjunto mi CMakeLists.txt para que veáis las modificaciones necesarias en ese archivo. Aunque en realidad podéis mirar cualquier CMakeLists.txt de los componentes que usan OSGArt como pueden ser sevillaComp o armtrackerComp.

El código necesario para declarar el objeto en el worker.h es el siguiente:

    OsgArt *myOsgArtObject;

La línea para inicializar dicho componente en el contructor (Worker::Worker(…){}) del worker.cpp es esta:

    myOsgArtObject = new OsgArt(myQframeToShow);

*ATENCIÓN: La línea anterior es necesario escribirla entre el setupUi(this) y el show(), como se explica en esta entrada.

Por último, necesitamos escribir lo siguiente en el método compute(){} del worker.cpp, donde img es una imagen de tipo RoboComp (imgType) :

    myOsgArtObject->updateART(img);

Ahora, para dibujar a nuestro antojo sólo tendríamos que editar osgArt.h y osgArt.cpp, pero eso lo explicaremos en otra entrada.

CMakeLists con OSGArt en RoboComp

Anuncios

11 mayo 2011 Posted by | all | , , , , | Deja un comentario

Usando OSGArt en RoboComp

Ayer Luiky me creó un componente “en blanco” llamado moleComp el cual sería el punto de partida para integrar OSGArt en Camimic.

OSGArt es una integración de Open Scene Graph (OSG) con ARToolKit (la librería más popular para Realidad Aumentada), de forma que ARToolKit detecta y sigue las marcas de Realidad Aumentada, así como sus tranformaciones en el espacio, y OSG toma estos valores como referencia para construir todo un mundo en tres dimensiones sobre la marca.

La idea es usar OSGArt para crear un juego que se base en el tracking de una marca pero que cuando tenga el tracking del color/dedos pueda sustituir a la marca sin mucha complicación, lo más importante es que OSG necesita una referencia.

Ayer fue un día duro en el que después de muchas horas, todos los problemas se solucionaron en unos 30 minutos. En parte tengo la suerte de que el ordenador que uso en Sala Beta ya tenía OSGArt instalado correctamente, aunque la parte negativa es que no puedo contar como se instala OSGArt porque no lo he hecho.

Resumo las soluciones que tanto nos costó encontrar ayer en 2 notas importantes:

Nota Importante 1:  en nuestro caso (con RoboComp) es importante configurar OSGArt para que capture el vídeo por GStreamer en lugar de con V4L, sino podremos obtener un invalid pilex format que nos consuma toda la tarde.

Nota Importante 2:  inicializar los objetos de OSGArt entre el setupUi y el show, como en las siguientes líneas.

 setupUi(this);
 osgArt = new OsgArt(frameOsgArt );
 show();

Gracias a Luiky por toda su ayuda.

10 mayo 2011 Posted by | all | , , , , , , | 1 comentario

Página estática del Proyecto Camimic

Gracias a que he dado de alta el proyecto Camimic en la forja de Redirirs, tenemos una serie de herramientas muy útiles, entre otras, un dominio y alojamiento de páginas web en el que crearé una página estática a modo de presentación del proyecto. De momento he hecho algo muy simple, espero tener tiempo para mejorar su apariencia, aunque no es un objetivo prioritario.

CAMIMIC WEB

Además aprovecho esta entrada para presentar el prototipo de icono para la aplicación:

CAMIMIC -- La Pizarra Virtual

Es un icono muy simple pero que muesta las dos partes esenciales del proyecto, una webcam y una pizarra. La web cam la he tomado del icono original de la aplicación Cheese, y la pizarra la he tomado de OpenClipArt.org, ambas imágenes libres.

Otros proyectos del concurso solicitan ayuda para sus iconos, yo me sumo a esta petición, pero tampoco es un objetivo prioritario pues de momento me vale con este prototipo.

11 noviembre 2010 Posted by | all | , | Deja un comentario

CAMIMIC en el V Concurso Universitario de Software Libre

Hace apenas unos días que he inscrito mi Proyecto Fin de Carrera (CAMIMIC) en el V Concurso Universitario de Software Libre, participando en la categoría de Software de Educación.

Hasta el momento los otros proyectos con los que compite Camimic en esta categoría son:

  • JavadiKt: es un diccionario de caracteres chinos o kanji que permite búsquedas avanzadas por multitud de criterios usando una interfaz gráfica y que contiene además diversos recursos para ayudar en el estudio de la lengua japonesa.
  • DJAD – Asistente de programación para diversos lenguajes, con el podrás acceder de forma rápida y sencilla al código resultante para ejecutar una gran variedad de acciones.
  • IberOgre: es una wiki sobre programación de videojuegos en 3D usando Ogre3D. Sion Tower: es la puesta en práctica del contenido de IberOgre. Es un “tower defense” en el que controlamos a un mago que debe defender su torre de una invasión.
  • Matrizmática: es un programa escrito en Java para el cálculo matemático de matrices, determinantes, representación de funciones y demás aspectos de la asignatura Matemáticas II de bachillerato.

Desde aquí les deseo mucha suerte a todos, pues todos me parecen proyectos muy interesantes y seguro que los usuarios del software serán los que saldrán ganando.

22 octubre 2010 Posted by | all | , , , , , , , | Deja un comentario

El proyecto ya tiene nombre: CAMIMIC

Por fin le pongo un nombre al proyecto “Virtual Blackboard based on human motion tracking” de forma que sea más fácil de recordar, y además se pueda usar para instalar en sistemas GNU/Linux como “Nombre UNIX”.

El nombre del proyecto es CAMIMIC, y los motivos por los que he elegido este nombre son los siguientes:

  • Debe ser fácil de pronunciar.
  • Debe tener algo de relación con el proyecto.
  • Debe cumplir los dos puntos anteriores tanto en Inglés como en Español (Castellano).
  • No puede ser muy largo, ni tener espacios.
  • El nombre surge del diminutivo CAM (en Inglés Camera y en Castellano Cámara ) y del adjetivo Inglés MIMIC (en Castellano Mímico).
  • CAM está relacionado con el proyecto porque es indispensable una WEBCAM, que será lo que utilizemos para dibujar en nuestra pizarra.
  • MIMIC está relacionado con la mímica, es decir el arte de hacer gestos en el aire de forma que el espectador se imagine el resto, en nuestro caso el usuario deberá hacer movimientos y gestos al aire que la WEBCAM captará y nuestro programa interpretará.
  • Dudé entre usar CAMMIMIC y CAMIMIC, pero finalmente me decanté por el último debido a que era fácil olvidarse de una de las M.

21 octubre 2010 Posted by | all | , , | Deja un comentario

   

A %d blogueros les gusta esto: