7/11/10

ARTollKit 2.71 + Ubuntu 10.04 = Funciona!

(Notas de instalación de ARToolKit en Ubuntu)

El año pasado he publicado un artículo acerca de la instalación de ARToolKit en Ubuntu, y recientemente he recibido varias consultas porque algunos usuarios no han logrado instalarlo en nuevas versiones de Ubuntu. Comentaré el paso a paso para lograr su instalación.

ARTOOLKIT
Esta herramienta se ha convertido en la base de numerosos proyectos de realidad aumentada y ha sido portado a diferentes plataformas. Se puede encontrar más información en el sitio oficial y en wikipedia.

SISTEMA
He instalado ARToolKit en un netbook HP Mini con Ubuntu UNE (Ubuntu Netbook Edition). Para ser más preciso:
  • Procesador Intel® Atom™ N455 1,66 GHz, FSB de 667 MHz
  • Memoria: 1GB
  • Webcam incorporada

RECURSOS
Se puede conocer más y solucionar los inconvenientes que puedan aparecer utilizando la documentación oficial y el foro.

INSTALACIÓN
El kit se puede descargar de la página oficial. Actualmente está disponible la versión 2.72.1.
Luego de descomprimirlo en un subdirectorio, es necesario configurarlo y compilarlo. Por ello se necesita resolver las dependencias de paquetes, que pueden ser instalados por medio de synaptic, ya que están disponibles en los repositorios oficiales. Como siempre, conviene actualizar el sistema a la última versión de los paquetes ya instalados.
Los paquetes a instalar son los siguientes:
  • build-essential
  • freegult3
  • freegult3-dev
  • libxi-dev
  • libxmu-dev
  • libv4l-dev
  • libgstreamer0.10-dev
Sin éstos paquetes, se pueden presentar los siguientes errores durante la instalación:
  • error: GL/glut.h: No existe el archivo o directorio
  • cannot find -lXi
  • cannot find -lXmu
  • ccvt_i386.S:32:27: error: linux/linkage.h: No existe el archivo o directorio
Los próximos comandos se realizan en una terminal / consola.
La configuración anterior a la compilación se realiza con el comando:
$ ./Configure
Las opciones a seleccionar son las siguientes: 5yy
Ésto significa:
Select a video capture driver.
1: Video4Linux
2: Video4Linux+JPEG Decompression (EyeToy)
3: Digital Video Camcoder through IEEE 1394 (DV Format)
4: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format)
5: GStreamer Media Framework

Enter : 5

Do you want to create debug symbols? (y or n)

Enter : y

Build gsub libraries with texture rectangle support? (y or n) GL_NV_texture_rectangle is supported on most NVidia graphics cards and on ATi Radeon and better graphics cards

Enter : y
El próximo paso es compilarlo con el siguiente comando:
$ make

PRUEBA DE VIDEO
Varios de los problemas que se presentan al tratar de arrancar las aplicaciones de ARToolKit se deben a incompatibilidades en el video, desde el ingreso desde la cámara hasta el ingreso a ARToolKit. Por ejemplo, muchas cámaras entregan un video en YUV y artoolkit necesita el video en RGB.

El primer paso es verificar que gstreamer procesa correctamente el video. El siguiente comando debería mostrar el video desde la cámara:
$ gst-launch-0.10 v4l2src ! xvimagesink
Aquí se puede ver algunos de los cambios en gsreamer. Antes, el comando para lanzar gstreamer era simplemente 'gst-launch'.

Si la prueba anterior ha sido satisfactoria, se puede verificar con todos los parámetros que necesita artoolkit, y se debería ver una ventana con el video final, utilizando el siguiente comando:
$ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! xvimagesink
Este comando me devolvió un error con las opción 'capsfilter', por lo que la eliminé y volví a verificar:
$ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink
Al verificar que el video funciona correctamente, se consigue el comando a exportar para que artoolkit sepa cómo tratar la fuente de video. Éste requisito es indispensable para el funcionamiento de artoolkit y debe realizarse cada vez que se vaya a utilizar. Una buena idea es incorporar este comando en la variables del sistema, agregándolas al archivo /etc/enviroment.
$ export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
IMPORTANTE: Notar que se cambia 'xvimagesink' por 'fakesink'. Ésto es para cambiar la salida de video desde la pantalla hacia un destino nulo.

Si existiera algún problema con la conexión de video desde gstreamer a artoolkit, seguramente aparecerá un error como el siguiente:
libARvideo: GStreamer 0.10.28
(:3477): GStreamer-CRITICAL **: gst_parse_launch_full: assertion `pipeline_description != NULL' failed
Fallo de segmentación
También es bueno realizar una prueba de video desde artoolkit con la siguiente aplicación:
$ ./bin/videoTest

UTILIZANDO ARTOOLKIT
Para utilizar el sistema es necesario imprimir alguno de los patrones (patterns) que se encuentran en ése subdirectorio. Por ejemplo, se puede utilizar 'attSample1.pdf'.

Se puede realizar una prueba rápida con algunos de las siguientes aplicaciones incluídas en el subdirectorio /bin de artoolkit:
$ ./simpleLite
$ ./simpleTest
$ ./simpleTest2

Con esta simple guía se podrá poner en funcionamiento este sistema que tiene muchísimas aplicaciones.

Se pueden ver videos muy interesantes de las aplicaciones de esta tecnología, buscando en la red 'video artoolkit'.

56 comentarios:

  1. Hola:

    Una pregunta... no entendi cuando escribiste: "Este comando me devolvió un error con las opción 'capsfilter', por lo que la eliminé y volví a verificar"

    Como la eliminsate?

    Cuando yo pongo el comando: "gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! xvimagesink"

    me devuelve lo siguiente:

    Estableciendo el flujo a PAUSADO ...
    ERROR: El flujo no quiere ponerse en pausa.
    ERROR: del elemento /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
    Información adicional de depuración:
    gstbasesrc.c(2719): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    Check your filtered caps, if any
    Estableciendo el conducto a NULL …
    Liberando la tubería…

    Que puedo hacer?

    Espero me ayudes, soy nuevo en esto

    Saludos! :D

    ResponderEliminar
  2. Edgar,
    Exactamente ése es el error. Se elimina la opción de capsfilter desde el ! hasta el otro !, dejando un sólo símbolo.
    Ya lo corregí en el post, para hacerlo más claro.

    NOTA IMPORTANTE: si bien al eliminar la opción capsfilter se puede probar el video, para que funcione artoolkit esta opción debe estar en el comando export, tal como aparece en el post.

    Saludos...

    ResponderEliminar
  3. Probado en Ubuntu 10.10 con interfaz Unity. Y Funciona!

    Saludos...

    ResponderEliminar
  4. muchas gracias por lo del tutorial me funciono muy bien

    ResponderEliminar
  5. @gustavo: Me alegro que te fuese útil! Saludos.

    ResponderEliminar
  6. Muy buen tutorial Pablo,
    He estado probándolo y me funciona todo sin problemas hasta el momento en el que ejecuto el ejemplo "./bin/sampleTest". Me aparece lo siguiente:

    juan@linux:~/Descargas/ARToolKit$ ./bin/simpleTest
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.28
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!

    No sé cuál puede ser el problema.
    Muchas gracias!

    ResponderEliminar
  7. hola, no encuentro freegult3-dev en mis repositorios de ubuntu 10.04 amd64 ¿acaso debo buscar un repositorio externo? Qué alivio encontrar tu blog.

    ResponderEliminar
  8. Jajajajaja, era que la dependencia estaba mal escrita, ya instalé freeGLUT3. Sigo con el tutorial.

    ResponderEliminar
  9. Hola, ahora me aparece este diálogo larguísimo que entiendo apenas la mitad. Siento que ya estoy en la recta final, si puedes ayudarme con esta te dedico una serie de video tutoriales que montaré en youtube para que otros mortales como yo usen artoolkit. Disculpa por los mensajes semi-compulsivos.

    Salud

    juan@chica:~/ARToolKit$ ./bin/simpleTest
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    ARVideo may be configured using one or more of the following options,
    separated by a space:

    DEVICE CONTROLS:
    -dev=filepath
    specifies device file.
    -channel=N
    specifies source channel.
    -noadjust
    prevent adjusting the width/height/channel if not suitable.
    -width=N
    specifies expected width of image.
    -height=N
    specifies expected height of image.
    -palette=[RGB|YUV420P]
    specifies the camera palette (WARNING:all are not supported on each camera !!).
    IMAGE CONTROLS (WARNING: every options are not supported by all camera !!):
    -brightness=N
    specifies brightness. (0.0 <-> 1.0)
    -contrast=N
    specifies contrast. (0.0 <-> 1.0)
    -saturation=N
    specifies saturation (color). (0.0 <-> 1.0) (for color camera only)
    -hue=N
    specifies hue. (0.0 <-> 1.0) (for color camera only)
    -whiteness=N
    specifies whiteness. (0.0 <-> 1.0) (REMARK: gamma for some drivers, otherwise for greyscale camera only)
    -color=N
    specifies saturation (color). (0.0 <-> 1.0) (REMARK: obsolete !! use saturation control)

    OPTION CONTROLS:
    -mode=[PAL|NTSC|SECAM]
    specifies TV signal mode (for tv/capture card).

    ResponderEliminar
  10. @Juan Pablo:
    GLUT = OpenGL Utility Toolkit
    Más info: http://freeglut.sourceforge.net

    ResponderEliminar
  11. @Juan:
    Parece que no estuviera bien configurada la captura de video.
    Funcionan las otras aplicaciones de prueba? (simpleLite y simpleTest2)
    Podrías pasarme la salida de la prueba de video con gstreamer? Es este comando del tutorial:

    $ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink

    ResponderEliminar
  12. Hola, me apareció lo siguiente, y probé absolutamente todos los ejemplos de la carpeta bin de artoolkit sin resultados. El monitor de mi cámara que apareció con ese comando mostraba la imagen muy estirada horizontalmente, todo se ve súper ancho.

    juan@chica:~$ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink
    Estableciendo el conducto a PAUSA …
    El conducto está vivo y no necesita PREPARARSE …
    Estableciendo el conducto a REPRODUCIENDO …
    New clock: GstSystemClock
    ^CCaught interrupt -- handling interrupt.
    Interrumpir: parando el conducto …
    Execution ended after 17969395689 ns.
    Estableciendo el conducto a PAUSA …
    Estableciando el conducto a PREPARADO …
    Estableciendo el conducto a NULL …
    Liberando la tubería…

    Gracias por tu atención.

    ResponderEliminar
  13. Hola Pablo,
    Muchas gracias por todo.
    Al final parece que era problemas de la configuración de la variable ARTOOLKIT_CONFIG.

    Muchas gracias
    Saludos, Juan

    ResponderEliminar
  14. que puedo ase me sale :

    kaitochan@kaitochan-Pine-Trail-M ~/Escritorio/ARToolKit $ ./bin/videoTest
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.30
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!.

    y ise el simpleLite y simpleTest2 y me dan esto:

    simpleLite:

    kaitochan@kaitochan-Pine-Trail-M ~/Escritorio/ARToolKit/bin $ ./simpleLite
    No video config string supplied, using defaults.
    libARvideo: GStreamer 0.10.30

    (:8693): GStreamer-CRITICAL **: gst_parse_launch_full: assertion `pipeline_description != NULL' failed
    Violación de segmento

    y con simpleTest2 me da:

    kaitochan@kaitochan-Pine-Trail-M ~/Escritorio/ARToolKit/bin $ ./simpleTest2
    No video config string supplied, using defaults.
    libARvideo: GStreamer 0.10.30

    (:8748): GStreamer-CRITICAL **: gst_parse_launch_full: assertion `pipeline_description != NULL' failed
    Violación de segmento

    q agoooooo porfabor help

    ResponderEliminar
  15. Yo tengo el mismo problema que Juan. Cómo lo arreglaste?


    /ARToolKit$ ./bin/simpleTest
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!


    /ARToolKit$ ./bin/simpleLite
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Camera image size (x,y) = (640,480)
    setupCamera(): Error loading parameter file Data/camera_para.dat for camera.
    main(): Unable to set up AR camera.


    /ARToolKit$ ./bin/simpleTest2
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!


    ARToolKit$ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink
    Estableciendo el conducto a EN PAUSA…
    El conducto está en vivo y no necesita PREPARARSE…
    Estableciendo el conducto a REPRODUCIENDO…
    New clock: GstSystemClock
    ERROR: desde el elemento /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Output window was closed
    Información de depuración addicional:
    xvimagesink.c(1318): gst_xvimagesink_handle_xevents (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0
    Execution ended after 2667002369 ns.
    Estableciendo el conducto a EN PAUSA…
    Estableciendo el conducto a PREPARADO…
    Estableciendo el conducto a NUL…
    Liberando el conducto…

    ResponderEliminar
  16. Hola Nacho,

    Yo solucioné el problema revisando los valores de la variable ARTOOLKIT_CONFIG, parece ser no estaban correctos.

    Mira el apartado de "PRUEBA DE VÍDEO" del tutorial para hacer las pruebas para configurar la variable.

    Saludos, Juan

    ResponderEliminar
  17. Mailson Lira17/5/11 19:26

    @Juan,
    que valores usted has usado? (which values did you use?)

    Gracias

    ResponderEliminar
  18. Hola que tal, todo me sale bien hasta que realizo la prueba de videoTest.

    root@SISTEMAS:~/Descargas/ARToolKit/bin# ./videoTest
    Xlib: extension "GLX" missing on display ":0.0".
    freeglut (./videoTest): OpenGL GLX extension not supported by display ':0.0'


    Alguien que me pudiera ayudar con este inconveniente.

    Saludos

    ResponderEliminar
  19. Hola que tal tengo el siguiente inconveniente... al momento de hacer los test se me abre la ventana de video por un segundo y se me vuelve a cerrar, y en la consola me aparece esto francisco@fecy-mint ~/Realidad Aumentada/ARToolKit/bin $ ./simpleTest2
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 1600x1200
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (1600,1200)
    *** Camera Parameter ***
    --------------------------------------
    SIZE = 1600, 1200
    Distortion factor = 796,250000 658,750000 4,192000 1,012757
    1752,37868 0,00000 791,25000 0,00000
    0,00000 1815,23545 603,75000 0,00000
    0,00000 0,00000 1,00000 0,00000
    --------------------------------------
    libARvideo: GStreamer pipeline is PLAYING!
    Violación de segmento


    alguien me puede ayudar por favor....

    ResponderEliminar
  20. tengo el mismo problema de juan y nacho
    @Juan hice lo que le dijiste a nacho, de revisar la parte de pruebas de video, pero funciona sin ningun problema, y los binarios que vienen con el artoolkit arrojan los mismos errores que indica nacho
    alguna otra idea?

    ResponderEliminar
  21. Yo he utilizado como valor de ARTOOLKIT_CONFIG:
    $ export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0
    use-fixed-fps=false ! ffmpegcolorspace ! capsfilter
    caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"

    Espero que os sirva.
    Saludos, Juan

    ResponderEliminar
  22. @Juan Pablo Toledo,
    Verifica y prueba las opciones de gst-launch, ya que no está adquiriendo correctamente la imagen.
    Es necesario que veas correctamente la imagen para que luego la pueda procesar ARToolkit.
    Saludos...

    ResponderEliminar
  23. @Juan,
    Me alegro que te haya funcionado!
    Saludos...

    ResponderEliminar
  24. @Ms. neko,
    Es muy importante que verifiques los parámetros de video con gst-launch, si no funciona entonces ARToolkit no tendrá una entrada de video válida.
    Prueba con las opciones que indico en 'Prueba de video' y/o con otras propias de gst-launch, hasta que consigas un video adecuado.
    Suerte!
    Saludos...

    ResponderEliminar
  25. @Nacho,
    Tal como lo comenta Juan, es necesario revisar los parámetros de gst-launch hasta que la salida de video sea correcta, y así indicarle a ARToolkit esos datos.
    Éstos parámetros son diferentes, dependiendo del hardware de la computadora (especialmente placa de video), la cámara y las aplicaciones instaladas.
    Saludos...

    ResponderEliminar
  26. @Mailson Lira,
    I see Juan has answer with the values he has used, but it's very important that you verify those parameters works on gst-launch before passing it to ARToolkit.
    Hope you'll find the right ones!
    Regards...

    ResponderEliminar
  27. @Alvaro Veloz Brito,
    No todos los ejemplos funcionan en todos los sistemas (computadoras, ordenadores, etc.).
    Con que sólo funcione 1 es suficiente para empezar a investigar y hacer tu propia aplicación!
    Saludos...

    ResponderEliminar
  28. @fecyman10,
    No todos los tests me han funcionado en todos los sistemas que he probado.
    Te funciona alguno de los otros tests? Si es así, entonces ya tienes para empezar a probar!
    Saludos...

    ResponderEliminar
  29. @GreenLanternX,
    Es probable que necesites modificar algún parámetro de gst-launch.
    Todos los binarios te dan el mismo error? O alguno funciona bien?
    Saludos...

    ResponderEliminar
  30. Veo que hay muchas consultas relacionadas con la configuración de video previa al uso de ARToolkit.
    La última vez que lo tuve que configurar fue en un sistema que la placa de video no tenía soporte de aceleración gráfica, con lo que tuve que renegar bastante hasta dar con los parámetros adecuados.
    Pero ésto es para otro post de gst-launch!

    ResponderEliminar
  31. @parq he modificado todos los parametros de todas las formas que se me han ocurrido y funcionan en el gst-launch, pero los binarios del artoolkit siguen arrojando esos errores
    (hasta el momento solo he probado los binarios que llevan test en el nombre, osea simpletest simpletest2 y videotest)
    la unica diferencia que tengo es que estoy utilizando otra distro (mandriva), en lugar del freeglut uso el mesaglut, y todos los paquetes -dev los tengo como -devel , pero si eso fuese realmente importante habria arrojado errores durante la compilacion

    ResponderEliminar
  32. Grande parq! muchas gracias por este gran tutorial.

    Funcionando las pruebas de video, es en la ejecucion de test donde falla.
    Puedes indicarme como configurar.

    $ gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink

    ResponderEliminar
  33. Olvida el anterior error, el fallo esta ya en el videotest:

    ramon@Cipobuntu:~/ARToolKit$ ./bin/videoTest
    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.30
    libv4lconvert: warning more framesizes then I can handle!
    libv4lconvert: warning more framesizes then I can handle!
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 1280x960
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (1280,960)
    Camera parameter load error !!


    muchas gracias

    ResponderEliminar
  34. Ramon: solucionaste el tema de alguna forma?.
    tengo tu mismo error.
    Diego

    ResponderEliminar
  35. Hola parq!

    Ante todo gracias por el tutorial.
    Yo tenia instalado Artoolkit en Kubuntu 10.04 y me iba de maravilla pero al actualizar a 11.04 de repente me da el mismo error de segmentacion que a @fecyman10.
    No me funciona ni testSimple ni testSimple2. En los dos se me corta el video al poco de empezar.
    El videoTest en cambio funciona y la prueba con el gst-launch tambien me va. Se te ocurre por que podria ser?
    Mi problema es que lo quiero utilizar junto con osgart y me da todo el rato el mismo error.
    Muchas gracias.

    Aize

    ResponderEliminar
  36. @GreenLanternX,
    Algunas aplicaciones funcionan en un ordenador y no funcionan en otro, pero no se exactamente por qué motivo. Quisiera pensar que está relacionado con la configuración de video, pero no lo he investigado en profundidad.

    ResponderEliminar
  37. @ramon,
    Estuve buscando un poco en la red y puede ser que el formato de imagen que entrega la cámara no esté siendo bien procesado por gst-launch.

    Prueba con lo siguiente:
    $ gst-launch-0.10 v4l2src device=/dev/video0 ! video/x-raw-yuv,format=\(fourcc\)YUY2 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! xvimagesink

    He agregado el filtro de video y formato.

    ResponderEliminar
  38. @Diego,
    Prueba con el comando que le indiqué a Ramón o realiza modificaciones para encontrar tu configuración.
    Saludos.

    ResponderEliminar
  39. @Aize,
    No se por qué en algunos sistemas funcionan algunas de las aplicaciones que trae de prueba, y en otros no.
    Por ahora, la sospecha es que esté relacionado con las opciones de video.
    Espero que puedas seguir probando y encuentres la forma de que funciones.
    Saludos...

    ResponderEliminar
  40. GRACIAS A TODOS POR LOS COMENTARIOS!

    ResponderEliminar
  41. Como ya he comentado anteriormente, gst-launch es muy potente y posee muchas opciones.

    Les dejo más información para que puedan hacer pruebas y mejorar las opciones de video:

    http://linux.die.net/man/1/gst-launch-0.10

    http://labs.myigep.com/index.php/Example_GStreamer_Pipelines

    http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-videomixer.html

    Gstreamer FAQ:
    http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/chapter-using.html

    Gstreamer v4l2src:
    http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-v4l2src.html

    ResponderEliminar
  42. Esto:
    gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace ! identity name=artoolkit ! xvimagesink
    Anda bien!!!!.

    El problema es cuando quiero correr los ejemplos.
    Si sirve para ver que puede estar pasando, el mismo problema me da en windows.
    siempre tengo las dimenciones de la imagen y un error.

    diego@NotebookDiego:~/Escritorio/ARToolKit$ ./bin/simpleLite
    Using config string from environment [v4l2src device=/dev/video0
    use-fixed-fps=false ! ffmpegcolorspace ! capsfilter
    caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Camera image size (x,y) = (640,480)
    setupCamera(): Error loading parameter file Data/camera_para.dat for camera.
    main(): Unable to set up AR camera.

    diego@NotebookDiego:~/Escritorio/ARToolKit$ ./bin/videoTest
    Using config string from environment [v4l2src device=/dev/video0
    use-fixed-fps=false ! ffmpegcolorspace ! capsfilter
    caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    libARvideo: GStreamer 0.10.32
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!

    Diego

    ResponderEliminar
  43. @Diego,
    Revisa la configuración de video. Un punto a tener en cuenta es el tipo de imagen que proporciona la cámara web, si es RGB o YUV.
    Algo de ayuda:
    http://bit.ly/nQ6871
    http://bit.ly/riV9dS
    http://bit.ly/eAhB6i
    http://bit.ly/qnymmC
    Si logras hacerlo funcionar, te agradeceré que publiques la configuración que te ha resultado adecuada.
    Saludos...

    ResponderEliminar
  44. Hola parq
    Antes de nada felicitarte por tu blog y por tu ánimo en la respuesta a las dudas publicadas. Yo tengo el mismo problema que se publicó hace algún tiempo pero no vi la solución a la misma. Cuando ejecuto cualquiera de los ejemplos me aparece el "error" que adjunto abajo, ¿que puedo hacer para solucionarlo?
    un saludo y muchisimas gracias por tu ayuda
    Patricia

    Using config string from environment [v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
    ARVideo may be configured using one or more of the following options,
    separated by a space:

    DEVICE CONTROLS:
    -dev=filepath
    specifies device file.
    -channel=N
    specifies source channel.
    -noadjust
    prevent adjusting the width/height/channel if not suitable.
    -width=N
    specifies expected width of image.
    -height=N
    specifies expected height of image.
    -palette=[RGB|YUV420P]
    specifies the camera palette (WARNING:all are not supported on each camera !!).
    IMAGE CONTROLS (WARNING: every options are not supported by all camera !!):
    -brightness=N
    specifies brightness. (0.0 <-> 1.0)
    -contrast=N
    specifies contrast. (0.0 <-> 1.0)
    -saturation=N
    specifies saturation (color). (0.0 <-> 1.0) (for color camera only)
    -hue=N
    specifies hue. (0.0 <-> 1.0) (for color camera only)
    -whiteness=N
    specifies whiteness. (0.0 <-> 1.0) (REMARK: gamma for some drivers, otherwise for greyscale camera only)
    -color=N
    specifies saturation (color). (0.0 <-> 1.0) (REMARK: obsolete !! use saturation control)

    OPTION CONTROLS:
    -mode=[PAL|NTSC|SECAM]
    specifies TV signal mode (for tv/capture card).

    ResponderEliminar
  45. @Patricia,

    Podrías, por favor, pegar el comando que estás ejecutando?

    Gracias...

    ResponderEliminar
  46. Estoy ejecutando ./simpleTest, sin más.
    Gracias a ti :)
    Patricia

    ResponderEliminar
  47. ¡Hola! Antes que nada muy buen tutorial. Me ha servido mucho para entender lo que quisieron explicar en la web oficial de ARToolKit y no entendía jaja. Como veo que experimentaste bastante te hago una consulta que me tuvo ratos largos y no logro hacer funcionar. Yo instalé todo para Linux Mint, y va todo excelente, absolutamente todas las pruebas funcionan. Mi problema es que cuando quiero correr el ./mk_patt para hacer mis marcadores, me tira este error:

    gaby@GABY-NT ~/Desktop/ARToolKit/bin $ ./mk_patt
    Enter camera parameter filename(Data/camera_para.dat): Data/camera_para.dat
    Using supplied video config string [videotestsrc].
    libARvideo: GStreamer 0.10.35

    (mk_patt:6511): GLib-GObject-WARNING **: invalid cast from `GstVideoTestSrc' to `GstBin'

    (mk_patt:6511): GStreamer-CRITICAL **: gst_bin_get_by_name: assertion `GST_IS_BIN (bin)' failed
    Pipeline has no element named 'artoolkit'!
    setupCamera(): Unable to open connection to camera.
    main(): Unable to set up AR camera.

    He probado todo lo que encontré en la web, y nada funciona (o no lo estoy haciendo bien). ¿Tendrías idea de ésto?

    Muchas gracias por tu tiempo.

    ResponderEliminar
  48. Anónimo9/5/12 6:48

    Recontra util! me ahorraste horas de busqueda! GRACIAS

    ResponderEliminar
  49. Me alegro que te haya sido útil. Saludos...

    ResponderEliminar
  50. Buen día, genial el tutorial!!, yo tengo un error a la hora de hacer el "make" del ARToolkit, ojalá me pudieras ayudar, te dejo lo que me salió. GRACIAS!!


    make[2]: *** [../../bin/videoTest] Error 1
    make[2]: se sale del directorio «/usr/local/AR/ARToolKit/util/videoTest»
    make[1]: *** [all] Error 2
    make[1]: se sale del directorio «/usr/local/AR/ARToolKit/util»
    make: *** [all] Error 2

    ResponderEliminar
  51. @Rene,

    Estoy un poco alejado de ARToolkit por el momento. Pero por el error que comentas, parece que faltan permisos de acceso. Prueba de lanzar make como root:

    $ sudo make

    Saludos,

    ResponderEliminar
  52. Que tal, hice la instalación y después de probar uno de los marcadores (pattHiro.pdf) me muestra un cubo. Pero con los otros marcadores de ejemplo no me muestra nada.

    A que se debe eso?

    Saludos.

    ResponderEliminar
  53. Hola!
    Felicidades por el tutorial, muy útil.

    Siento ser repetitiva, pero tengo el mismo error que algunos de vosotros cuando pruebo el ./videoTest o cualquiera de los ejemplos:

    libARvideo: GStreamer 0.10.36
    libARvideo: GStreamer pipeline is PAUSED!
    libARvideo: GStreamer negotiated 640x480
    libARvideo: GStreamer pipeline is PLAYING!
    libARvideo: GStreamer pipeline is PAUSED!
    Image size (x,y) = (640,480)
    Camera parameter load error !!

    Y he probado las siguientes configuraciones de la cámara:
    -ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"

    -ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 ! video/x-raw-yuv,format=\(fourcc\)YUY2 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"

    En ambas me da error, sin embargo cuando ejecuto ambas con el gst-launch aparece el video perfecto.

    ¿Cómo puedo averiguar la configuración de mi cámara?

    Gracias

    ResponderEliminar
  54. Hola!

    Tal como lo comentaba anteriormente, estoy alejado de este tema.

    De todas maneras, revisa la sección de 'Prueba de video', que allí hay varios ejemplos para hacer pruebas. La man page de gst-launch también es muy útil!

    Saludos...

    ResponderEliminar
  55. cada que trato de ejecutar el Test me manda esto"Camera parameter load error"

    ResponderEliminar
  56. Skarf,

    Como he comentado en varios comentarios anteriores, he dejado este tema por otras prioridades.

    De todas maneras, revisa la sección de 'Prueba de video', que allí hay varios ejemplos para hacer pruebas. La man page de gst-launch también es muy útil!

    Saludos...

    ResponderEliminar