Hola a todos de nuevo,
ya adentrándome un poco en el mundo Artoolkit he realizado un trabajo para ponerlo en funcionamiento y hacer algunas pruebas. Primero, para quien le interese haré una breve descripción sobre "qué es Artoolkit" y "cómo se instala" (si ya lo conoce puede saltar este paso).
¿Qué es Artoolkit?ArToolKit es un conjunto de librerías para C/C++ que sirven para la creación de aplicaciones de realidad aumentada. Para ello proporciona una serie de funciones para la captura de vídeo y para la búsqueda de ciertos patrones, en las imágenes capturadas, mediante técnicas de visión por computador. También proporciona una serie de ejemplos y utilidades de gran ayuda al programador que quiera realizar este tipo de aplicaciones.
Instalación y puesta en marcha de ArtoolkitA continuación se detalla cómo se ha realizado la instalación y puesta en marcha de Artoolkit en su última versión (2.72.1) bajo Windows XP usando el entorno Visual Studio .NET 2003 en C++.
Prerequisitos:- Entorno de desarrollo: donde se ha usado .NET 2003 pero también es posible usar Microsoft Visual Studio 6
-
DSVideoLib-0.0.8b-win32: librería usada para controlar la comunicación con el driver de la cámara.
- GLUT: con el kit estas librerías deberían estar en los siguientes directorios si no existieran ya:
- glut32.dll en c:\widows\system32
- glut.dll en C:\widows\system
- glut.h en (*)\Include\gl\
- glut32.lib en (*)\Lib\
- DirectX Runtime: librerías de DirectX en su versión 9.0b o posterior
- Entrada de vídeo: en este caso mediante una cámara web (hay que apreciar que para el correcto funcionamiento si se tiene otra fuente de vídeo, como pudiera ser una capturadora de televisión, es necesario deshabilitarla).
- OpenVRML-0.14.3-win32: para trabajar con VRML como será el caso.
*Nota: para nuestro caso (*) se corresponde con la ruta “C:\Archivos de programa\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK”
Instalación:Para poner en marcha Artoolkit, se recomienda seguir los siguientes pasos, aunque algunos en esta última versión ya vienen configurados dentro del directorio de Artoolkit:
1. Descomprimir ARToolKit.zip en cualquier directorio, siempre y cuando el directorio que contenga todo se llame ARToolKit.
2. Descomprimir DSVideoLib zip dentro {ARToolKit}. Asegurarse de que este directorio se llama "DSVL".
3. Copiar los archivos DSVL.dll y DSVLd.dll desde {ARToolKit}\DSVL\bin dentro de {ARToolKit}\bin.
4. Instalar GLUT DLL dentro de la carpeta de Windows System32, y la librería y cabeceras dentro de las carpetas de la plataforma VS SDK .
5. Ejercutar el script {ARToolKit}\Configure.win32.bat para crear include/AR/config.h.
6. Abrir ARToolKit.sln (VS.NET) o ARToolkit.dsw (VS6).
7. Ejecutar Artoolkit.
8. La libreria de renderizado de VRML y el ejemplo son opcionales pero para nuestro caso necesarios:
9. Descomprimir OpenVRML zip dentro de {ARToolKit}.
10. Copiar js32.dll desde {ARToolKit}\OpenVRML\bin dentro de {ARToolKit}\bin.
11. Habilitar libARvrml y simpleVRML projects en el controlador de configuración del VS.
Caso de estudioEn nuestro caso pretendemos que cuando la cámara detecte determinados patrones, superponga modelos VRML de arácnidos, dando lugar a una realidad aumentada que mezcle el entorno real con estos modelos virtuales añadidos.
Para esto vamos a trabajar sobre el ejemplo “simpleVRML.vcproj” ubicado en “ARToolKit\examples\simpleVRML”.
Para que funcione correctamente en dicho directorio necesitamos tener las carpetas “Data” (que contiene datos de configuración, patronest, etc) y “Wrl” (que contiene los archivos VRML y los datos de configuración de estos). Estos directorios se encuentran {Artoolkit}/bin/.
Una vez hecho esto, iniciamos Visual Studio .Net 2003 y abrimos un nuevo proyecto, donde uscaremos en la siguiente ruta ARToolKit\examples\simpleVRML\ simpleVRML.vcproj
Al ejecutar el proyecto debe aparecer una ventana que nos deja personalizar los parámetros de la cámara y posteriormente la imagen capturada por la cámara. Ahora cuando detecte algún patrón de los configurados mostrará añadirá información a la imagen capturada con la imagen virtual. En el siguiente ejemplo se aprecia cómo en un entorno real introduce una abeja volando cuando detecta el patrón “hiro”, que básicamente consiste en un modelo VRML.

Con todo esto ya sólo faltaría encontrar unos modelos de arañas para nuestro caso de estudio y modificar los archivos de configuración para que los muestre de acuerdo con los patrones que asociemos a cada uno.
Para esto, primero modificamos el en ARToolKit\examples\simpleVRML\Data\ el archivo object_data_vrml con el notepad de la siguiente manera:
#the number of patterns to be recognized
3 #pattern 1
VRML Wrl/spider1.dat
Data/patt.kanji
80.0 0.0 0.0
#pattern 2 VRML
Wrl/spider2.dat Data/patt.hiro
80.0 0.0 0.0
#pattern 3
VRML Wrl/spider3.dat Data/patt.sample1
80.0 0.0 0.0
Y también habría que modificar los archivos .dat con el archivo .wrl que carga y las transformaciones que le realizará. Por ejemplo para el ejemplo 1 (spider1.dat) sería:
spider1.wrl 0.0 0.0 50.0
# Translation 0.0 0.0 0.0 0.0
# Rotation 5 5 5
# Scale
En total se han realizado tres casos, una araña estática (para ponerla en la pared o una mano), otra con movimiento de translación (para que se mueva por el suelo) y otra que cuelga de un hilo y sube o baja (para ponerla en una pared).
Resultados:Para los tres casos desarrollados estos son los resultados visuales:
Para el ejemplo 1 (araña estática):


Para el ejemplo 2 (araña en movimiento)

Como puede observarse en este ejemplo se ha creado un polígono que oculta el patrón, este método podría ser usado para ocultar las marcas con la textura de la zona donde se pone la
marca, así incrementaría la sensación de realidad.
Para el Ejemplo 3 (que sube y baja sobre su hilo):
Observaciones:Todo este desarrollo podría aplicar en cámara web sobre la cabeza del usuario que realice las funciones descritas de realidad aumentada y un visiocasco de realidad virtual para incrementar la sensación de realidad que percibe el usuario. Algo parecido a como se muestra en la figura siguiente.

Y de momento esto es todo, espero que os haya gustado e incluso os pueda ser de utilidad.
saludos,
Alberto.

