Instalar osgART 2.0 RC3 con OpenSceneGraph 2.8.3 o 2.9.6 y soporte para Collada en Ubuntu 12.04

Antes de instalar osgART tenemos que instalar ARToolKit, collada-dom y OpenSceneGraph así que echar un vistazo a los siguientes post antes de continuar:

Una vez instaladas las dependencias para osgART descargarse el código de osgART 2.0 RC3 de aquí y descomprimirlo. Ejecutar los siguientes comandos:

mkdir build
cd build
cmake .. -DCMAKE_CXX_FLAGS=-fpermissive -DCMAKE_MODULE_LINKER_FLAGS=-lgstreamer-0.10 -DCMAKE_SHARED_LINKER_FLAGS=-lgstreamer-0.10
make
sudo make install

Se puede quitar la opción “-DCMAKE_CXX_FLAGS=-fpermissive” si se añaden los siguientes includes en el fichero “include/osgART/Utils” justo después de “#include <iostream>“:

#include <cstdlib>
#include <limits>

Configurar la variable de entorno ARTOOLKIT_CONFIG (ya deberías tenerla configurada al instalar ARToolKit):

export ARTOOLKIT_CONFIG="v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"

Y ejecutar el ejemplo mientras se muestra el marcador de “Hiro” a la cámara:

cd /usr/local/bin/
./osgartsimple

Si te aparece este error:

Plugin '-1' unknown!
Could not initialize video plugin!

Se debe a que no se han copiado correctamente las librerías de osgART a la carpeta de librerías (“/usr/local/lib“) o a la carpeta de librerías de OSG (“/usr/local/lib/osgPlugins-X.X.X“). Verifica que hay un fichero llamado “libosgART.so” en “/usr/local/lib” y que tienes los ficheros “osgdb_osgart.so“, “osgart_tracker_artoolkit2.so” y “osgart_video_artoolkit2.so” en la carpeta de librerías de OSG (que debería ser “/usr/local/lib/osgPlugins-2.8.3“o “/usr/local/lib/osgPlugins-2.9.6” en función de la versión de OSG que instalaste). Ten en cuenta que si instalas varias versiones de OSG es posible que el plugin de osgART no se copie a la carpeta de plugins de la versión de OSG que tu quieres. Ejecuta esto también por si acaso:

sudo ldconfig /etc/ld.so.conf

Si se ve el fondo negro se debe a un pequeño bug en ARToolKit. Se puede arreglar modificando en ARToolKit la función “ar2VideoCapNext” en el fichero “lib/SRC/VideoGStreamer/video.c en la línea 378 par que devuelva un 0 en vez de TRUE O modificando el fichero de osgART “src/osgART/Video/ARToolKit/ARToolKitVideo.cpp” en la línea 310 de esto:

if (0 == ar2VideoCapNext(video))

A esto:

if (ar2VideoCapNext(video))

Para utilizar la opción de ARToolKit donde cada fotograma se compara con los anteriores para obtener un tracking más suave del marker, se debe cambiar una línea de código de osgART. Dentro del fichero “src/osgART/Traker/ARToolKit/SingleMarker.cpp” descomentar la línea 76 y comentar la línea 77. Es decir pasar de esto:

//arGetTransMatCont(markerInfo, patt_trans, patt_center, patt_width, patt_trans);
arGetTransMat(markerInfo, patt_center, patt_width, patt_trans);

A esto:

arGetTransMatCont(markerInfo, patt_trans, patt_center, patt_width, patt_trans);
//arGetTransMat(markerInfo, patt_center, patt_width, patt_trans);

Fuentes: http://projects.springlobby.info/issues/1575
https://github.com/bitcoin/bitcoin/pull/456
https://code.ros.org/trac/opencv/ticket/1020
http://forum.openscenegraph.org/viewtopic.php?t=7755
http://code.google.com/p/chromium/issues/detail?id=108945

You might also like

Instalar OpenSceneGraph 2.9.6 con soporte para Collada en Ubuntu 12.04
Aunque normalmente uso OpenSceneGraph 2.8.3 para trabajar con osgART 2.0 RC3 también se puede usar OpenSceneGraph...

Scripts para instalar ARToolKit, Collada DOM, OpenSceneGraph y osgART
He creado unos scripts y parches para que la instalación de todas estas librerías sean menos "dolorosa"....

osgART 2.0 RC3 con OpenSceneGraph 2.9.7 o posterior (incluyendo 3.0.0)
Hace bastante tiempo tuve problemas para usar osgART 2.0 RC3 con OpenSceneGraph 2.9.7 o cualquier versión...

osgART 2.0 RC3 with OpenSceneGraph 2.9.7 or later (including 3.0.0)
Long time ago I had problems using osgART 2.0 RC3 with OpenSceneGraph 2.9.7 or later, I couldn't get...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.