lunes, 23 de junio de 2008

Probando ARToolKitPlus




Aunque hasta ahora he trabajado con ARTK, me comentaron el otro día que existe una variante, el ArtoolkitPlus [1], que minimiza la necesidad de procesamiento (lo cual es bastante interesante para el limitado procesador del robot). Pero esta versión de la libreria se encuentra con los siguientes grandes problemas:


  • Carece practicamente de DOCUMENTACIÓN. En teoría y según ellos la documentación de ARTK debería ser suficiente, pero se supone que previamente has debido trabajar con esta.

  • Apenas hay ejemplos solo incluye dos que son muy simples.

  • ARTK+ no dispone de librerias de acceso a camaras (ARTK si dispone de ellas). Si queremos utilzar esta funcionalidad en ARTK+ debemos fabricarnos nuestras propias librerias de acceso.

  • Por último los creadores de ARTK+ han dejado su desarrollo paralizado su desarrollo y lo han dejado de lado. Actualmente estan trabajando en un nuevo proyeto que realizaría estas funcionalidades de una forma más optimizada. Su nombre es STUDIERSTUBE TRACKER. Pero también aqui tenemos otro problema, puesto que este proyecto no se distribuye bajo el mismo tipo de licencia que los anteriores y si deseas obtenerlo debes ponerte en contacto con su creador y solicitarselo.
Por tanto ante estos problemas, según se vea la experiencia con esta librería se hará uso de ella o no.

[1] http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php

viernes, 13 de junio de 2008

Diseñando la implementación

Buenas,

ya despues de todos los exámenes superados con éxito :D, retomo el desarrollo del proyecto y ahora ya toca ir trabajando la implementación.

Como buen analista, el primer paso consta en analizar el problema y esbozar un diagrama que refleje el funcionamineto. Para eso he diseñado el siguiente diagrama de clases, que aunque es un prototipo muy temprano, da una idea de la estructura y el funcionamiendo del proyecto:


El fucionamiento un poco por encima sería el siguiente:

-El servidor (o clase principal) se crea un objeto contexto con la información que le pasa el cliente al establecer la conexión.
-Posteriormente se crea un objeto de "control robot" al que le pasa como parametro el objeto "contexto" (ya que lo van a modificar) y que contiene dos objetos: "control camara" y "control Movimiento".
-Se crea un objeto "Estimacion Posición mediante Artoolkit" que es la parte que accede a la capturadora de vídeo para tomar un fotograma y calcular su posición respecto al fotograma, aparte de poder devolver vídeo frame a frame.
-Todos los objetos creados son pasados como parámetros a un objeto "Strategy" según el tipo de estrategia que decida utilizar el usuario y estas pueden ser:

1) Contol manual del robot y la cámara,
2) Funcionamiento autónomo buscando las marcas cercanas a la ruta para calibrarse
3) Funcionamiento autónomo sin buscar las marcas pero teniéndolas en cuenta si se encuentra con alguna de forma casual.

De momento voy a ver como empiezo a implementar todo esto porque son muchas cosas y ya iré comentando como va la cosa.

Saludos!!