jueves, 8 de noviembre de 2007

Bajando desde ARToolKitPlus hasta ARToolKit

Continuando con la investigación que veniamos realizando dias atras hemos profundizado mas recabando mas información que detallaremos a continuación.

Como publicabamos en el artículo anterior, habíamos conseguido ejecutar 2 'samples' que utilizaban ARTK+ (a.k.a ARToolKitPlus). Estos ejemplos se limitaban a analizar una imagen .raw y mostrar una matriz si se habia detectado algun patron coincidente.


Hasta el momento ARTK+ tiene varios problemas asociados para nosotos:
  • Carece practicamente de DOCUMENTACIÓN. ARTK+ es una versión ampliada y basada en ARTK (a.k.a ARToolKit) con soporte optimizado para dispositivos móviles. Sus creadores entienden que la gente que desarrolla con esta librería previamente lo hizo con su antecesora, y por tanto son conocedores de sus funcionalidades. 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.

  • Por otro lado apenas hay ejemplos (o hasta el momento no los hemos encontrado). Además lo poco que hemos encontrado (ejemplos del artículo anterior) 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 el momento no hemos recibido respuesta de éste].

Tras todas estas conclusiones hemos decidido bajar pues un escalon y comenzar a investigar la tecnologia ARToolKit.
Es aquí donde hemos encontrado un gran filón de ejemplos, código, foros, etc...

Mostramos a continuación varias imágenes de las ejecuciones de ejemplo conseguidos de ARTK:

Ejemplo SIMPLE:





Ejemplo que dibuja una primitiva en openGL y calcula la posición:




Ejemplo MULTITEXT que dibuja cubos, esferas, toroides, conos...


Ejemplo de LA TETERA:




Ejemplos y vieo con VRML:




Video ARToolKit con VRML:



Durante los próximos dias continuaremos realizando pruebas e intentaremos llegar al objetivo de ejecutar algún ejemplo (aunque sean las versiones del artículo anterior) en un dispositivo móvil.

14 comentarios:

Carlos Tejo dijo...

Enhorabuena por el trabajo realizado por ahora.

Una pregunta de un neofito en la materia: ¿que son y que ofrecen las librerias de acceso a camaras?

Alberto Corrales Garcia dijo...

Buenas, yo este año tambien voy a tener que trabajar con Artoolkit para mi PFC, solo que en mi caso lo tendré que aplicar al campo de la robótica. Si me pudieras orientar un poco por donde empezar, que necesito y demás cosilas con las que todos los que empezamos no tenemos que topar estaría muy agradecido.

Lo de hacer un blog de seguimiento me parece muy interesante, yo tengo uno técnico, pero tal vez haga uno exclusivo para hablar del tema.

saludos,
Alberto
thinkill@gmail.com

Alberto Corrales Garcia dijo...

Hola, soy yo otra vez! estoy intentando instalar el artoolkit pero al ejecutar me tirar errores de que le faltan librerias. A ver si me puedes echar una mano contandome como lo has configurado para ejecutar los ejemplos que vienen!

muchas gracias de antemano

Luis Angel Prieto dijo...

Para Tejo:

ARToolKit contiene implementadas diversas funciones de acceso a webcams para que no tengas que realizar nada tuya.

Con ARToolKitPlus (el cual esta mas orientado a dispositivos móviles) no vienen implementadas estas funcionalidades, lo unico que hace es analizar imágenes raw y construir una matriz si encuentra un patrón.
Para acceder a webcams con esta libreria y analizar las imagenes provenientes de estas, pues hay que consturir tus propias funciones que lo realicen.

----------------

Para Alberto Corrales:

Lo mejor que puedes hacer es comenzar a analizar código e intentar ejecutar los ejemplos.

¿Que librerias no te encuentra... ?
En la pagina oficial (studierstube.org) hay una aplicacion llamada Studierstube 4.2. En este caso no te vale para nada, pro probablemente te añada al C:\Windows\ las librerias necesarias y todo te funcionara.

Ojo, si es que los tiros van por ahí y es como me imagino, que no tiene por que ser así.


Un saludo!
Luisan

Alberto Corrales Garcia dijo...

muchas gracias, voy a probar y te cuento los resultados!

saludetes!

Alberto Corrales Garcia dijo...

buenas, ya he probado lo que me recomendabas y sigo teniendo problemas. Cuando intento lanzar el ejemplo simpleTest me sale, el error que pongo abajo. Tienes tu instaladas esas librerias? El caso esque los exe de ejemplos que vienen me van de maravilla!

A ver si me puedes echar un cable, gracias de antemano.

'simpleTestd.exe': se cargó 'C:\Documents and Settings\thinkill\Escritorio\ARToolKit\bin\simpleTestd.exe', Símbolos cargados.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\ntdll.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\kernel32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Documents and Settings\thinkill\Escritorio\ARToolKit\bin\libARvideod.dll', Símbolos cargados.
'simpleTestd.exe': se cargó 'C:\Documents and Settings\thinkill\Escritorio\ARToolKit\bin\DSVLd.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\quartz.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\advapi32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\rpcrt4.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\gdi32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\user32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msvcrt.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\ole32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\oleaut32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\shell32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\SHLWAPI.DLL', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\winmm.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Documents and Settings\thinkill\Escritorio\ARToolKit\bin\msvcp71d.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msvcr71d.dll', Símbolos cargados.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\opengl32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\glu32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\ddraw.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\dciman32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system\glut32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\shimeng.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\AppPatch\acgenral.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msacm32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\version.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\userenv.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\uxtheme.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\imm32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\comctl32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msctf.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\clbcatq.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\comres.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\apphelp.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msctfime.ime', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\xpsp2res.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\qcap.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msvfw32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\qedit.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\comdlg32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\devenum.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\setupapi.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\wintrust.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\crypt32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msasn1.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\imagehlp.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\msdmo.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\avicap32.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se descargó 'C:\WINDOWS\system32\avicap32.dll'
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\ksproxy.ax', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\ksuser.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system\CamExL20.ax', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Documents and Settings\thinkill\Escritorio\ARToolKit\bin\msvcr71.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\kswdmcap.ax', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\mfc42.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\mfc42loc.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Archivos de programa\Codec Pack de ELISOFT\ffdshow\ffdshow.ax', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\WINDOWS\system32\dinput.dll', No se pueden cargar símbolos.
Constructor
Join filter graph
CheckInputType
FORMAT_VideoInfo: width:320, height:240, AvgTimePerFrame:333333
, 320, 240
Removed from filter graph
Destructor
'simpleTestd.exe': se cargó 'C:\Archivos de programa\Codec Pack de ELISOFT\picvideo\pvwv220.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Archivos de programa\Codec Pack de ELISOFT\picvideo\pvmjpg21.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Archivos de programa\Codec Pack de ELISOFT\picvideo\pvljpg20.dll', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Archivos de programa\Codec Pack de ELISOFT\aware\ICMW_32.DLL', No se pueden cargar símbolos.
'simpleTestd.exe': se cargó 'C:\Archivos de programa\CyberLink\PowerDVD\NavFilter\clm4splt.ax', No se pueden cargar símbolos.
El subproceso 'Subproceso Win32' (0xdf4) terminó con código 0 (0x0).
El subproceso 'Subproceso Win32' (0xfac) terminó con código 0 (0x0).
El subproceso 'Subproceso Win32' (0x864) terminó con código 0 (0x0).
El subproceso 'Subproceso Win32' (0xf20) terminó con código 0 (0x0).
El subproceso 'Subproceso Win32' (0x404) terminó con código 0 (0x0).
El programa '[3692] simpleTestd.exe: Nativo' terminó con código 0 (0x0).

Luis Angel Prieto dijo...

Pues si, esas librerías que pones ahí yo si que las tengo en los directorios correspondientes.

De ahí que te dijera que instalases el StudierstubeES. Yo en su dia no añadi ninguna dll, pero "sospecho" que fue esta aplicación quien las metió ahí.

De todos modos no es seguro. Saludos

Alberto Corrales Garcia dijo...

muchas gracias por tu respuestas!
tras buscar las dll, si que tengo todas en su sitio, es más, he visto que esos errores no son errores, son información de depuración, lo cual me desorienta más!! ¿donde estará el fallo?.
un par de preguntas:
¿que usas con artoolkit c++ 6.0 o vs2003.net?
¿cuando cargas los ejemplos, lo haces ejecutando los .exe de la carpeta /bin o compilandolos?
A ver si puedo sacar la clave porque ya tengo ganas de hacer alguna cosilla! :D

1saludo y muchas gracias!!

Alberto Corrales Garcia dijo...

Bueno, son casi las 2 de la mañana pero ya he resuelto el problema!! :D

esos mensajes solo son de depuración, el programa se cerraba porque no tenia el archivo de configuración de la cámara dentro de cada proyecto de prueba y como se cerraba la consola no daba tiempo a ver el mensaje de error de parámetros! en fin se cumple la regla de simon: en tiempo que inviertes en reparar un error es directamente proporcional a lo absurdo que es!

1saludo y muchas gracias!

Luis Angel Prieto dijo...

Bueno, pues un placer compañero. Me alegro de que todo se solucionara.


Un saludo.

Hector A.S. dijo...

Hola, que tal, mira este es mi segundo día tras descubrir la realidad aumentada, comenzare por contarles a que me dedico. Soy diseñador gráfico y me especializo en desarrollo de sistemas interactivos y CGI 3D, por ahora estoy desarrollando sistemas interactivos en VIRTOOLS, pero debo decir que au sigo maravillado tras este encuentro con AR, y bueno tras un día entero de inducción por la web, llegue a este foro, les comento que muchos de mis proyectos enfocan hacia tecnología aplicada en entornos 3D. La cuestión es que me recomiendan inicialmente para comenzar a estudiar y a ejercitar estos sistemas, considerando que no soy informático ni programador, por lo cual desconozco bastante C++, pero si manejo bastante los mundos 3D. En realidad pretendo agotar mis recursos de tiempo para comprender técnicamente el funcionamiento del sistema. Bueno, por ahora solo me gustaría ver un poco mas aya de mi horizonte.

Saludos y espero poder iniciarme rapidamente y poner en práctica algunas de mis ideas.

Saludos.
HAS.

www.indigocg.blogspot.com
indigobm@hotmail.com

Alberto Corrales Garcia dijo...

mucha suerte hector con tus proyectos Hector, para aprender c++ como habrás visto hay una exageración de información por la red y también de artoolkit, en cualquier caso tanto en mi blog como en el de Luis iremos contando nuestras experiencias con la RA. He visto tu blog y parecen buenos tus diseños, ya quisieramos tener ese manejo de las artes gráficas los programadores para nuestros desarrollos :D

freestylej69 dijo...

Hola. Tengo problemas con Artoolkitplus. No consigo posicionar un objeto sobre la marca.

Cuando consiguo detectar una marca, mediante la funcion tracker->getModelViewMatrix() obtengo la matrix 4x4 de transformacion. Si no me equivoco, la posicion 12,13 y 14 corresponden a la x,y,z, y la submatriz superior izquierda 3x3 corresponde a la matriz de rotacion( las posiciones 0-2 4-6 8-10). Si esto es correcto, no consiguo colocar, por ejemplo, un cubo sobre la marca.

He usado la libreria opencv para capturar imagenes, y se las paso a opengl, con lo que intento dibujar.

Gracias de antemano.

Unknown dijo...

Hola que tal, muy interesane del Proy, yo tb estoy empezando con esto de AR... mir tego un problema... proble los ejempls LOS .exe y peus funcionan de maravilla, pero entro a los exmaples habro el simple test, lo ejecuto y pues me sale el siguiente error:

C:\Archivos de programa\CodeBlocks\MinGW\bin\ld.exe: cannot find -lAR

Como te daras de cuentas estoy usando CodeBlocks.

Si me puedes ayudar te estare muy agradecido