Realidad Aumentada — Construyendo un ARSandbox

Muro
5 min readJun 5, 2019

--

Hace algunos años (en 2012, para ser más específico), Oliver Kreylos de UCDavis publicó este video en YouTube donde se convierte una simple caja de arena en una herramienta educativa usando augmented reality. El proyecto se llama ARSandbox.

Oliver también publicó las instrucciones paso a paso de cómo construir tu propia ARSandbox (https://arsandbox.ucdavis.edu/instructions/) por si algún día te animas a construir una.

Afortunadamente ese día llegó para mi bajo la excusa de hacer un proyecto para la Feria de Ciencias del colegio de mis hijos. En este post les contaré como construí mi propia ARSandbox y algunos de los problemas que fui encontrando durante el proceso.

Hardware

Una caja de arena
La caja debe tener una proporción de 4:3 pues esta es la resolución que se proyectará en la caja y es también la resolución que tiene el sensor del Kinect.

En mi caso construí la caja de arena con dimensiones de 40x30”. Para construir la caja use tablones de madera de 2x4” así que la profundidad de la caja fue de unos 10cm (casi 4”).

Caja de arena (40 x 30" x 4")

Un proyector

En mi caso yo tengo un proyector ViewSonic PJD5134. Este proyector tiene una proporción de 4:3 (SVGA) lo cual es conveniente para este proyecto.

Proyector ViewSonic PJD5134

Normalmente el proyector debe ir a 40” (aproximadamente 1m) sobre la caja de arena como se muestra en la siguiente figura:

Esquema del ARSandbox

El problema con esto es que si se usa un proyector normal como mi ViewSonic PJD5134, la imagen proyectada será muy pequeña. Como se puede ver en la foto, necesitamos cubrir un area de 40x30” con el proyector colocado a 40” de la caja, pero mi proyector solo es capaz de cubrir un area de 23x17”.

Mi ViewSonic no puede cubrir 40x30”. Y ahora que hacemos?.

El tutorial recomienda el uso de un proyector de tiro corto como el BENQ MX631 ST pero este proyector cuesta unos 650 USD y francamente no quería gastar mucho dinero en este proyecto. (Si no sabes que es un proyector de tiro corto puedes leer este articulo

650 dolares? No, gracias

Una opción para resolver este problema es poner el proyector más allá de la distancia recomendada de 40” (~1m). Para calcular cual sería la distancia para proyectar 40x30” usé una app llamada ProjectorPro.

ProjectorPro recomienda suspender el proyector a 2m de la caja de arena para obtener una imagen de 30x40". Esto no es lo ideal pues con el proyector suspendido esta altura existe el riesgo de que caiga sobre los niños así que preferí evitar el riesgo y me puse a buscar otra alternativa.

Afortunadamente encontré en YouTube in video que explica cómo transformar un proyector convencional a uno de tiro corto usando sólo un espejo!

Usando este truco lo que hice fue poner el proyector en el piso apuntando hacia arriba y colgué un espejo rectangular a 1m sobre la caja de arena. Esto me permitió conseguir la imagen de 40x30”.

Sensor Kinect

Para este proyecto necesitamos cualquiera de estos modelos de la primera generación de Kinect: 1414 o 1473

Estos los puedes conseguir en Amazon a unos 20–30 USD.
Asegúrate de comprar el adaptador para conectarlo al toma corriente.

Computadora

En mi caso yo usé una PC corriendo Linux Mint. Esta computadora tenía una tarjeta de video Nvidia GTX1070.
La tarjeta de video es sólo necesaria si se quiere simular lluvia. Si sólo se quiere tener los mapas topográficos entonces una PC con 2GB de RAM debe ser suficiente para correr el software de ARSandbox.

La estructura

Podría decir que casi el 90% del tiempo en este proyecto estuve dedicado en construir la estructura que inicialmente estaba pensada para soportar el proyector y el sensor Kinect. Debo admitir que no soy muy buen carpintero.

En la foto de abajo se puede ver el proyector apuntando hacia arriba con la imagen siendo reflejada en el espejo que está colgado a aproximadamente 1m de la caja. El sensor Kinect también está colgado a esta altura y apunta hacia el cento de la caja. En la imagen se puede ver un hilo con una tuerca que usé como plomada para asegurarme que el sensor esté apuntando al centro.

Otro detalle a tener en cuenta es que la imagen del proyector debe ser reflejada en el espejo por lo que tendremos que configurar el proyector en “mirror mode”.

La estructura terminada.

Software

Para este proyecto necesitamos una PC corriendo Linux. En mi caso yo usé Linux Mint 64 bits.

Si vamos a usar la tarjeta de video entonces lo primero que debemos hacer es instalar los drivers para nuestra tarjeta de video.

Una vez que los drivers están instalados abrimos el terminal y escribimos:

cd ~
wget http://idav.ucdavis.edu/~okreylos/ResDev/Vrui/Build-Ubuntu.sh
bash Build-Ubuntu.sh

Esto va a instalar algunas librerías y el toolkit Vrui. Si todo sale bien veremos la imagen de un globo terráqueo.

Ahora necesitamos instalar el software para Kinect. En el terminar escribe lo siguiente:

cd ~/src
wget http://idav.ucdavis.edu/~okreylos/ResDev/Kinect/Kinect-3.2.tar.gz
tar xfz Kinect-3.2.tar.gz
cd Kinect-3.2
make
sudo make install
sudo make installudevrules
ls /usr/local/bin

Una vez que termine la instalación verifica que los últimos comandos impresos contengan KinectUtil y RawKinectViewer.

Ahora toca instalar el software para el ARSandbox. De nuevo, en el terminal escribe los siguientes comandos:

cd ~/src
wget http://idav.ucdavis.edu/~okreylos/ResDev/SARndbox/SARndbox-2.3.tar.gz
tar xfz SARndbox-2.3.tar.gz
cd SARndbox-2.3
make
ls ./bin

Una vez que la instalación termine verifica que los últimos comandos impresos contengan CalibrateProjector y SARndbox.

Ahora conecta tu Kinect al puerto USB de tu computadora y ejecuta el siguiente comando:

sudo /usr/local/bin/KinectUtil getCalib 0

Ahora lo que debes hacer es alinear el Kinect para que cubra el interior de la caja de arena. Puedes usar RawKinectViewer para orientarte:

cd ~/src/SARndbox-2.3
RawKinectViewer -compress 0

De ahora en adelante lo que queda es calibrar el ARSandbox. Para ello puedes usar el siguiente video como referencia:

El producto Final

Aquí les muestro algunas fotos del resultado final. Fue genial ver a niños y adultos experimentar con el ARSandbox durante la Feria de Ciencias.

ARSandbox terminada!
Niños experimentando con el ARSandbox

Hasta la proxima!

--

--