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'.