Introducción
Introducción
En este tema se realizará una introducción a la librería ARToolKit. ARToolKit es una librería multiplataforma desarrollada en C que permite la creación de aplicaciones de realidad aumentada (aplicaciones en las que se superpone información como imágenes, objetos 3d o vídeos al mundo real) de una forma rápida y simple con el uso de unos marcadores especiales. Entre sus características más destacadas están:
- Es un entorno de trabajo fácil para la creación de aplicaciones de realidad aumentada.
- Permite superponer objetos 3d virtuales , imágenes y vídeo en marcadores reales.
- Es multiplataforma, soportanto Windows, Linux, Mac OS X, SGI
- Está escrita en C, aunque soporta otros lenguajes como Java o Matlab.
- Interfaz gráfico simple (basado en GLUT) y rápido (basado en OpenGL). Además incluye soporte 3D VRML.
- Incluye una gran variedad de ejemplos y utilidades.
- Soporte de distintas fuentes de vídeo (USB, Firewire y tarjeta capturadora) y distintos formatos (RGB/YUV420P, YUV).
- Fácil seguimiento de la posición y de la orientación de los patrones.
- Flexibilidad al permitir el uso de cualquier patrón incluido en un cuadrado negro.
- Fácil calibración de la cámara.
- Suficientemente rápido para aplicaciones de realidad aumentada en tiempo real.
- Es una librería de código abierto que se distribuye con licencia GPL para usos no comerciales.
ARToolKit fue desarrollado originalmente por Hirokazu Kato en 1992 y fue publicado por el HIT Lab de la Universidad de Washington. ARToolkit fue una de las primera librerías de realidad aumentada que surgieron, siendo un referente a seguir y, de hecho, hoy en día sigue usándose (librerías basadas en ARToolkit) y tiene variantes adaptadas a los lenguajes más comunes como Java o Flash, al igual que ha dado lugar a distintos entornos de trabajo basados en esta librería. Actualmente se mantiene como un proyecto de código abierto alojado en SourceForge con licencias comerciales (disponibles en ARToolWorks) y GPL.

La novedad y potencia de ARToolkit se basa en la sencillez de los marcadores que usa como interfaces con el mundo real. Concretamente, los marcadores no son más que un marco negro, que contiene dentro un patrón concreto y que identifica el marcador (como se puede ver en la figura). Así pues, calculando la distorsión del cuadrado en la imagen se puede calcular su posición y orientación respecto a la cámara de una forma sencilla y en tiempo real. Una vez conocida la posición del marcador respecto a la cámara, la información que se añada puede ser superpuesta (de forma relativa al marcador) de una forma realista respecto al mundo real. De esta forma tan sencilla resuelve la librería ARToolKit el problema del cálculo de la posición de la cámara respecto a la realidad y la inclusión realista de información virtual.
Como se ha comentado, a partir de ARToolkit han surgido multitud de librerías, proyectos y variantes a otros lenguajes o plataformas. Algunos de los más destacados son:
- ATOMIC Authoring Tool. Es un software Multi-plataforma para la creación de aplicaciones de realidad aumentada. Es un Front end para la biblioteca ARToolkit desarrollado para no-programadores y permite crear rápidamente, pequeñas y sencillas aplicaciones de Realidad Aumentada.
- OSGART. Una combinacion de ARToolKit y OpenSceneGraph.
- ARTag. Alternativa a ARToolKit que usa un procesamiento de imagen y de símbolos digitales, mas complejo, para mayor fiabilidad y resistencia a la luz.
- ARToolKitPlus. Se trata de una version extendida de ARToolKit, recomendada solo para usuarios experimentados y desarrolladores de software RA.
- Studierstube Tracker. Sucesor de ARToolKitPlus, incluye muchas características y mejoras respecto a ARToolkit pero no es libre.
- FLARToolKit. Es un port en ActionScript 3 de ARToolKit para Flash 9+.
- NyARToolkit. Biblioteca de clase de ARToolkit desarrollada para maquinas virtuales, particularmente aquellas con host Java, C# y Android.
- ARDesktop. Biblioteca de clase de ARToolKit que crea interfaces de escritorio con controles y widgets.