Las pasadas navidades llegó a las tiendas el nuevo sistema de juego “Kinect” para Xbox 360 de Microsoft, revolucionando la forma de jugar/ interactuar con la consola. ¿En qué consiste? básicamente permite a la consola recibir información sobre los movimientos del usuario, de tal forma que dichos movimientos pueden pasar a formar parte del juego. Los desarrolladores, conscientes del enorme potencial del nuevo dispositivo, no tardaron mucho en crear herramientas que les permitieran exprimir las innumerables aplicaciones y posibilidades de una tecnología semejante.
La compañía PrimeSense, responsable del desarrollo del proyecto, fue fundada por antiguos ingenieros del ejército Israelí. De hecho, parte de la tecnología utilizada en Kinect se basa en prototipos militares de detección de enemigos en campo de batalla. Por lo tanto parece lógico que, aunque se nos presente como un accesorio más de la videoconsola, se puede usar para eso y para mucho, mucho más.
¿Cómo funciona?
El sistema Kinect combina un emisor de IR con una cámara VGA (640 x 480), proporcionando una imagen en la que cada píxel es una posición 3D independiente. De esta manera el sistema proporciona información sobre 307.200 puntos independientes en el espacio, consiguiendo un seguimiento prácticamente perfecto de los movimientos del usuario situado frente al dispositivo.
Está desarrollado por la Universidad de Berkeley. Os dejamos con un vídeo para que veáis cómo funciona.
Mindstorms NXT controlado con Kinect
Vamos ahora al experimento que nos interesa, un mindstorms NXT controlado con Kinect.
El modelo que utiliza de base es un tribot, por lo que la tracción es diferencial. El funcionamiento es sencillo, cada brazo controla un motor, moviendo los brazos hacia delante o hacia atrás desde una posición inicial o neutral, hacemos girar los motores en una dirección u otra, a diferente potencia.
Resulta bastante impresionante la exactitud de los datos capturados por los sensores, así como la rapidez con la que la señal se procesa y se envía al NXT, consiguiendo una respuesta prácticamente inmediata.
El creador de este original proyecto, rasomuro, nos da en su página la siguiente información.
Detalles técnicos:
- Hardware:– Sensor Kinect
– Ordenador con puerto USB (para el sensor) y bluetooth (para conectarse al NXT)
– Un set NXT - Software:– OpenNI drivers, permiten capturar, procesar y utilizar la información que se recibe del sensor Kinect.
– Fantom drivers, permiten al ordenador comunicarse con el NXT, se instalan por defecto en nuestro ordenador al realizar la instalación del software oficial de LEGO, aunque también pueden descargarse de la web de LEGO Mindstorms. Más información al final del artículo.
Para conseguir su objetivo, rasomuro, modificó 2 programas de ejemplo en C++. El primero de ellos le permite capturar la información del sensor y enviarla a un puerto UDP (User Datagram Protocol). El segundo le permite convertir la información en ordenes de movimiento que serán enviadas al tribot.
¿Quieres saber más?
- Página del proyecto NXT-Kinect.
- Página oficial de PrimeSense.
- Fantom Drivers.
- OpenNI.
- Puerto UDP (Wikipedia)