Robótica con LabVIEW, LEGO Mindstorms NXT y Tetrix

labVIEW y LEGO MINDSTORMS NXTLa investigación en el mundo de la robótica implica trabajar con aplicaciones complejas que permitan probar nuevas teorías o algoritmos. En este contexto son típicas las aplicaciones que deben capturar los datos procedentes de los sensores y procesarlos para, dependiendo de la aplicación, poder descubrir su ubicación en el entorno que rodea al robot y poder navegar en el mismo, controlando los motores, y evitando colisionar con los objetos que le rodean.

El nivel de dificultad de aplicaciones como la anterior puede dispararse sin límite: la posibilidad de trabajar con un sistema de visión, por ejemplo, multiplica las posibilidades pero complica la aplicación. Si bien lenguajes como C, C++ o Java están muy extendidos para ello y son empleados con frecuencia, no son óptimos en todas las circunstancias: la parte de bajo nivel puede desarrollarse con C++, mientras que el interfaz de usuario será más fácil de desarrollar en Java.

Si bien el desarrollo del software puede ser una parte importante del problema, no debemos olvidar que el problema conjunto suele requerir también de habilidades en otros campos como la electrónica, ingeniería mecánica, cálculo, matemáticas o física.

LabVIEW puede ser una ayuda a la hora de reducir el tiempo de desarrollo o facilitar el desarrollo en alguno de los campos en los que no seamos tan hábiles. Pero… ¿Qué es LabVIEW?

LabVIEW es un poderoso entorno de desarrollo gráfico con funciones integradas para realizar adquisición de datos, control de instrumentos, análisis de medida y presentaciones de datos. El lenguaje utilizado por este entorno es denominado Lenguaje G (recordemos que el NXT-G es una versión muy reducida de las posibilidades de LabVIEW): es un lenguaje que describe de forma visual los elementos y el funcionamiento del programa sumándole simplicidad a su elaboración, de forma que es posible escribir programas altamente complejos haciendo uso de una interfaz de usuario completa y a medida. Una implementación de este tipo en lenguajes convencionales sería muy complicada de desarrollar por personas con una mínima experiencia en programación. Sin embargo esta simplicidad no resta poder a los usuarios experimentados.

LabVIEW en educación

Teniendo en cuenta la complejidad de algunos de los problemas a resolver dentro del ámbito de robótica y del poco tiempo disponible para ello, varias han sido las opciones que el mundo académico ha adoptado:

  • Los alumnos trabajan sobre robots pre-construidos y desarrollan algún componente del mismo. Esto tiene el inconveniente de que alguien ha debido preparar el conjunto, a la par que se exige de un presupuesto muy elevado, el de robots completos, para trabajar exclusivamente alguna parte del mismo.
  • Una opción alternativa es la de trabajar en entornos simulados, pero esto tiene también el problema de que una simulación realista exige un gran tiempo de desarrollo.
  • Una solución que han impartiendo universidades de prestigio como el MIT es la de trabajar con la solución de LEGO. Por lo que respecta al hardware, las versiones iniciales de hace diez años como el RCX han sido ampliamente superadas por el actual NXT y expandidas con los componentes metálicos Tetrix. Al software también le ha sucedido algo similar: el Robolab ha sido reemplazado por el NXT-G para aplicaciones simples o el LabVIEW para niveles avanzados, aunque las posibilidades de programación son muy variadas.

LabVIEW permite tanto controlar robots, como crear aplicaciones avanzadas para controlar experimentos de laboratorio y mostrar los resultados, o desarrollar programas matemáticos para la enseñanza a estudiantes universitarios. LabVIEW Education Edition incorpora funciones especiales para conectarse con el LEGO MINDSTORMS NXT.

Ejemplo de controles con LabVIEW

Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs. El control de instrumentos se dividen en dos partes: Panel Frontal y Diagrama de Bloques. El Panel Frontal es la interfaz con el usuario, en la cual se definen los controles e indicadores que se muestran en pantalla. El Diagrama de Bloques es el programa propiamente dicho, donde se define su funcionalidad, aquí se colocan iconos que realizan una determinada función y se interconectan.

La programación con LabVIEW permite el prototipado rápido para probar nuevas ideas o algoritmos. LabVIEW dispone de librerías especiales para el procesado de señales o visión artificial, por citar algunas pero, además, si una función o tarea determinada no está soportada por LabVIEW, tenemos la posibilidad de escribirla en C y crear un nuevo instrumento virtual que podemos emplear en nuestros programas LabVIEW.

El objetivo de esta pequeño artículo es servir de introducción para una nueva serie de artículos cuyo objetivo no es otro que el de ir descubriendo las posibilidades de la potente combinación entre tres plataformas: NXT, LabVIEW y Tetrix.

Comments are closed.