Proyecto de realidad aumentada
En la actualidad, dentro de las tecnologías emergentes, se
comienza gestar un campo muy interesante y con muchas posibilidades, se trata
justamente de la “realidad aumentada” la cual transforma la realidad
modificándola atreves de elementos virtuales para crear una realidad mixta en
tiempo real.
Una de las formas mas habituales para crear la realidad
aumentada, es por medio de una cámara Web donde tomamos las imágenes del
entorno real, el computador procesara estas imágenes buscando ciertos patrones
y superponiendo en ellos formas tridimensionales, trazos o figuras, con esto la
computadora devolverá al usuario la imagen procesada como si fuera un espejo,
pero incluirá los nuevos objetos generados por medio de la realidad aumentada.
Para generar esta realidad aumentada, será necesario contar
con, un diseño de patrón el cual nos ayudara a posicionar nuestros objetos
virtuales, librerías y software existentes para poder procesar la información.
Introducción
La realidad aumentada se esta volviendo de gran interés para
distintos medios, ya que se esta comenzando a ampliar el conocimiento sobre la
misma, con ello se generan muchos proyectos en desarrollo y otros que ya están
en el sistema, esto la vuelve una tecnología relativamente nueva, hay que tener en cuenta que existe
una diferencia entre realidad aumentada y realidad virtual, entendiendo como
realidad aumentada la que mezcla la realidad y a esta le añade lo virtual, a
diferencia de la realidad virtual que se aísla completamente de la realidad y
llevando al usuario a un espacio puramente virtual.
Entonces se puede definir a la realidad aumentada como el
entorno real mezclado con lo virtual. La realidad aumentada puede ser usada en
diferentes dispositivos, desde computadoras hasta dispositivos móviles o de
entretenimiento buscando cada una distintos fines.
Hoy en dia la realidad aumentada (AR – Augmented Reality),
esta siendo perfeccionada por diversos grupos de investigación alrededor del
mundo, conectándola con nuevas tecnologías como el seguimiento de la posición
del usuario, visualización de información en tiempo real, generación de
imágenes y reenderezado de gráficos, entre otros, con todo esto se busca llevar
al usuario a una mayor experiencia de la realidad aumentada.
Componentes de la realidad aumentada
Monitor: ya sea
de computador, o del dispositivo que procese la información, este sera
indispensable para poder reflejar la información que llevara consigo la
realidad mezclada con la información virtual que deseemos.
Cámara Web: este
dispositivo será el que nos entregara la información en tiempo real de lo que
ocurre en el espacio que se encuentra el usuario, con ello podremos entregar
esta información al software que procesara la realidad aumentada.
Para poder ver la imagen de la cámara en el software, que en
este caso será processing, necesitaremos un programa adicional, este es
“WinVDIG” que nos dará la posibilidad de trabajar con el video de la cámara
Web.
Software: programa
que se encargara de procesar todos los datos de entrada, que en este caso
vienen de la cámara Web, para poder llevarlos al dispositivo de salida que será
nuestro monitor. Nosotros en este caso utilizaremos el programa “processing”
junto a las librerías “Nyartoolkit” y “MRI3DS”
Processing: es un software que
trabaja sobre el lenguaje de programación java y esta pensado para el
desarrollo de programas y proyectos multimediales interactivos.
Nyartoolkit: es una librería
preparada para processing y que esta pensada para el desarrollo de proyectos
con realidad aumentada, al ser una librería, esta se tendrá que copiar en la
carpeta “libraries” de processing como toda librería externa.
MRI3DS: es una librería para
processing la cual nos permite exportar los diseños 3D creados 3DsMax
directamente a processing.
Patrones: los patrones
son símbolos que serán interpretados por nuestro software para poder detectar
la posición actual en el mundo real y así poder colocar los objetos virtuales
en ese mismo lugar. Los patrones estarán digitalizados, cargados en la carpeta
“data” del proyecto de processing que estemos usando.
Para poder hacer un patrón propio podemos usar una versión
online que nos entregara el archivo necesario para usar el diseño como patrón.
después de obtener el patrón .patt, este lo copiamos y lo
pegamos en la carpeta del proyecto de prueba “data”, para no tener conflictos
con el código de prueba modificamos el nombre a “patt.hiro” este lo remplazamos
para que nos detecte el patrón nuevo.
Aplicación y pruebas
Para comenzar a hacer uso de la realidad aumentada
comenzaremos con el archivo “test” que esta en la carpeta de la librería “Nyartoolkit”
para processing.
Dentro de esa carpeta iremos a “SingleARTKMarkerTest” que se
encuentra el sketch de processing, si al ejecutar el programa nos detecta la cámara
ya podemos continuar.
Para hacer una prueba directamente con processing y
utilizarlo como guía usaremos el siguiente código como base para futuras
pruebas.
Copiaremos es sketch de la carpeta “SingleARTKMarkerTest” y
modificaremos su sketch, colocando:
import processing.video.*;
import jp.nyatla.nyar4psg.*;
import processing.opengl.*;
import javax.media.opengl.*;
Capture cam;
NyARBoard mark1;
/************************************************************/
void setup() {
size(640,480,OPENGL);
colorMode(RGB, 100);
cam=new Capture(this,width,height);
mark1=new NyARBoard(this,width,height, "camera_para.dat",
"patt.hiro", 80);
mark1.gsThreshold=120;
mark1.cfThreshold=0.4;
}
/********************************************************************************************/
void draw() {
if (cam.available() !=true) {
return;
}
cam.read();
hint(DISABLE_DEPTH_TEST);
image(cam,0,0);
hint(ENABLE_DEPTH_TEST);
if(mark1.detect(cam)){
PGraphicsOpenGL pgl = (PGraphicsOpenGL) g;
mark1.beginTransform(pgl);
//TRABAJAR AQUI//
fill(250,0,0);
rect(-25,-25,50,50);
mark1.endTransform();
}
}
Con este código se puede comenzar a utilizar la realidad
aumentada para poder ver imágenes 2D o para ver figuras 3D hechas en
processing, todo lo que se coloque entre los códigos “mark1.beginTransform(pgl);”
y “mark1.endTransform();” será lo que se superpondrá sobre el patrón y tendrá
la posición, ángulo y rotación del mismo.
Ahora bien para poder integrar diseños 3D hechos con 3dsMax
es necesario el uso de la librería “MRI3DS” para poder exportar los archivos
con extensión .3ds a processing y poder mostrarlos donde iría el patrón.
Para empezar exportamos desde 3dsMax un objeto con extensión
.3ds, luego este archivo lo copiamos y lo pegamos en la carpeta “data” del
sketch de prueba, si el objeto contiene texturas también debemos pegarlas en la
misma carpeta, así en processing podremos cargar las texturas del objeto.
El codigo base que usaremos para cargar el objeto 3ds sera:
//libreria para 3d
import mri.*;
import processing.video.*;
import jp.nyatla.nyar4psg.*;
import processing.opengl.*;
import javax.media.opengl.*;
Capture cam;
V3dsScene vscene;
NyARBoard mark1;
/************************************************************/
void setup() {
size(640,480,OPENGL);
colorMode(RGB, 100);
cam=new Capture(this,width,height);
mark1=new NyARBoard(this,width,height, "camera_para.dat",
"patt.hiro", 80);
mark1.gsThreshold=120;
mark1.cfThreshold=0.4;
//libreria de 3d
try
{
vscene = new
V3dsScene(this,"piezaAjedrez.3ds");//carga el archivo 3ds
vscene.useMaterial( true );//habilita
las texturas
} catch( Exception e )
{
println( e );
System.exit( 0 );
}
//fin de libreria 3d
}
/********************************************************************************************/
void draw() {
if (cam.available() !=true) {
return;
}
cam.read();
hint(DISABLE_DEPTH_TEST);
image(cam,0,0);
hint(ENABLE_DEPTH_TEST);
if(mark1.detect(cam)){
PGraphicsOpenGL pgl =
(PGraphicsOpenGL) g;
mark1.beginTransform(pgl);
//TRABAJAR AQUI//
/*
//imagen plana
fill(250,0,0);
rect(-25,-25,50,50);*/
/*
//cubo 3d procesing
translate(0,0,30); // trasladar(X,Y,Z)
rotateY(0);
box(40);//box(width/ancho,
height/alto, depth/profundidad) o box(size/tamaño)
*/
//objeto 3d exportado
scale(2);
rotateX(-1.5);//posiciona el objeto en
vertical
rotateY(0);
rotateZ(-0);
vscene.draw();
mark1.endTransform();
}
}
En este código tenemos 3 opciones de cargar imágenes para
superponerlos en la posición del patrón, el primero es una figura 2D hecha
desde processing, el segundo es una figura 3D hecha desde processing y por
ultimo esta la figura 3D hecha en 3DsMax y exportada por medio de la librería “MRI3DS”,
en los 2 últimos agregamos “rotateX”, “rotateY” y “rotateZ” para poder ajustar
nuestro 3d al patrón.
Por medio de estos 2
codigos ya podemos comenzar a hacer pruebas para realizar proyectos que
utilicen la realidad aumentada como medio.
Aplicaciones actuales
Publicidad: la
realidad aumentada tiene un gran potencial para hacer publicidad ya que se
integra directamente en la vida real del usuario, así podemos llegar a crear
tarjetas de presentación con videos incorporados que los pueden ver a través de
un sitio Web, o hacer aplicaciones que permitan probar productos que estén
digitalizados en 3d y por medio de la realidad aumentada el usuario puede hacer
uso de estos objetos.
Apoyo en tareas
complejas: Las tareas complejas como montaje, mantenimiento y la cirugía puede
ser simplificado mediante la inserción de información adicional en el campo de
visión. Por ejemplo, las etiquetas se pueden mostrar en las partes de un
sistema para aclarar las instrucciones de funcionamiento de un mecánico que
está realizando el mantenimiento de un sistema.
Dispositivos de
navegación: se puede aumentar la eficacia de los dispositivos de navegación por
medio de la realidad aumentada, entregando información adicional al usuario en
tiempo y espacio que lo rodea.
Militares y
servicios de emergencia: la realidad aumentada se puede aplicar a servicios de
emergencia y militares apoyados en dispositivos portatiles los cuales
entregarian al usuario información, como instrucciones, mapas, lugares
especificos resaltados en tiempo real, etc.
Arte: la realidad
aumentada se puede utilizar en aplicaciones artisticas, que permitan a los
artistas crear en tiempo real arte sobre la realidad, como ser, pinturas,
dibujos, modelados, espacios nuevos, sensaciones adaptadas según el espacio que
se encuentre el usuario, etc.
Arquitectura: la
realidad aumentada puede ser usada para simular proyectos de construcción y
poder ser presentados en un espacio real con una maqueta virtual.
Conclusión
Luego de investigar
el funcionamiento y el uso que se le puede dar a la realidad aumentada, podemos
ver que esta tecnología nos da una combinación muy efectiva entre la realidad y
lo virtual, con ella podemos generar múltiples
medios de comunicación y acceso a la información de una manera mas eficaz y en
tiempo real, según como avanza la tecnología se vuelve cada vez mas accesible
esta forma de interacción con el usuario, pudiendo integrar la información
externa a nuestro mundo real, simplificando y mejorando el estado de vida.






Sigue funcionando con Processing 2?
ResponderEliminarHola Francisco, buen día, no volví a probar en Processing la aplicación del script.
ResponderEliminarNo sabría decirte si funciona o no.
Siento no poder ayudarte.
Saludos