El ABC de la Programación de un Robot Humanoide

Publicado en

Abrir la puerta, jugar futbol, recordarle a una persona que tiene que tomar sus medicinas, leer correos electrónicos o bailar, son algunas de las funciones que los robots humanoides pueden realizar actualmente. Para lograrlo, existe software que permite simular comportamientos en un robot, aplicaciones para programar actividades complejas y herramientas de monitoreo. Esto se hace por medio de los ambientes de desarrollo y Kits de Desarrollo de Software (SDK) de los robots.

La finalidad es tener bien claro qué quieres que tu robot haga, porque no sólo para movimientos está hecho, sino también para sentir, interactuar, e incluso pensar por medio de inteligencia artificial.

Los robots

Existen distintas opciones de robots humanoides en el mercado. Posiblemente el más popular es el robot NAO fabricado por la empresa francesa Aldebaran Robotics, y que es el utilizado en la competencia internacional Robocup, donde equipos de todo el mundo programan equipos de robot autónomos que compiten jugando futbol.

Herramientas y tecnologías de programación

Antes, programar un robot era una tarea complicada. Sin embargo, hoy en día se cuenta con herramientas poderosas y bastante amigables. Generalmente, la programación de robots se clasifica en varios niveles de complejidad con la finalidad de que los usuarios puedan ir escalando sus conocimientos y cada vez tener un mayor control sobre el comportamiento del robot y realizar actividades más avanzadas.

En el nivel básico está la programación visual utilizando ambientes de desarrollo como Choregraphe. En estas herramientas se cuenta con librerías de bloques de comportamiento predefinidos y se programa visualmente el comportamiento del robot al arrastrar y conectar dichos bloques, creando así una secuencia de actividades o coreografía. La figura 1 muestra una pantalla de Choreographe.

Figura 1. Pantalla de Choreographe

El siguiente paso es poder programar tus propios bloques de comportamiento, para integrarlos en tus coreografías. Esto típicamente se hace un lenguaje de programación de alto nivel. En el caso de Choregraphe, se puede hacer en Python o urbiscript (un lenguaje de scripting para robótica). Otras herramientas utilizan el lenguaje RoboBasic, que como su nombre lo indica es un lenguaje tipo Basic, pero especializado y orientado a robots. Este lenguaje te proporcionará comandos específicos para controlar al humanoide. Por medio de los simuladores de los ambientes de desarrollo, puedes probar fácilmente los nuevos comportamientos y comprobar que haces correctamente tu trabajo.

Otra posibilidad consiste en crear nueva funcionalidad utilizando información de lo que el robot está viendo y sintiendo por medio de sus sensores. Este tipo de programación típicamente se hace en lenguajes como Python o C++, y aprovecha los SDKs que ofrecen los robots (la gran mayoría de los robots actuales cuenta con SDKs).

Quienes estén acostumbrados a desarrollar aplicaciones con tecnologías de Microsoft tal vez se sientan en casa usando Microsoft Robotics Developer Studio, la cual aprovecha las plataformas .NET y XNA además de soportar el sensor Kinect. Adicionalmente, ya hay quienes están experimentando con programar y controlar robots en tiempo real. Por ejemplo, la Universidad del Norte de Carolina lo está haciendo con éxito, y han logrado que un robot NAO sirva azúcar en una taza de café con una cuchara, incluso sorteando obstáculos inesperados. El campo de la programación de robots humanoides se está desarrollando muchísimo. Tan es así, que la competencia RoboCup tiene como objetivo que para el año 2050 un equipo de robots pueda competir en un juego de futbol contra los campeones de la FIFA. Por otro lado, algunas empresas ya han comenzado a crear app stores para aplicaciones robóticas, de forma que usuarios de todo el mundo puedan descargar los desarrollos de otros.

Robótica humanoide en México

En México también se realiza investigación en el campo de la robótica. Universidades como el ITAM, UNAM, INAOE e ITESM cuenta con humanoides para que los alumnos puedan programarlos. En el caso del ITAM, cuentan con robots NAO desde el 2008 que participaron en RoboCup en la Liga de Plataforma Estándar (esta primera versión se entregó únicamente a 20 instituciones del mundo). Una excelente noticia es que la edición 2012 de RoboCup se llevará a cabo en la ciudad de México en junio del 2012. Esto seguramente impulsará el interés en nuestro país por la robótica.

Referencias:

  1. Configuración de NAO
  2. Canal de videos de Aldebaran Robotics
  3. RoboCup

 

Bio

Miguel Ángel Ramírez es Director de Tecnología en GRE, empresa mexicana dedicada a la comercialización de soluciones robóticas. Miguel es egresado de la Universidad La Salle como Ingeniero en Cibernética. www.naomexico.mx