Red de Programación de Robots (RPN)

Gustavo Casañ
Contexto educativo
204 Visitas
Compartir

Red de Programación de Robots

La Red de Programación de Robots (Robot Programming Network, RPN, http://www.robotprogramming.net) es una iniciativa para crear una red de laboratorios educativos de robótica con capacidades de programación remotas. El formato elegido sigue las últimas tendencias de los cursos en linea, creando entornos de aprendizaje que sólo requieren un navegador. RPN reúne las ventajas de la programación en línea y los robots conectados en red, haciendo que el aprendizaje sea más atractivo y visual, a la vez que programar el robot proporciona conocimientos sobre su funcionamiento.

Los servidores ejecutan varios entornos de simulación robótica, pero también se puede ofrecer acceso a robots reales, como ya se realizó para la competición del congreso Humanoids. El uso del estándar Robotic Operating System (ROS) permite que el sistema se amplíe a un gran número de plataformas de robots, y que se pueda conectar a laboratorios ya existentes.

Los materiales de aprendizaje ofrecen una guía paso a paso para la solución de problemas con un paulatino aumento del nivel de dificultad. Se aplican técnicas de gamificación, para hacer el entorno más atractivo y fidelizar a los alumnos.

RPN utiliza el paquete Moodle (www.moodle.org) como sistema de gestión de aprendizaje, con diversos módulos que amplían sus capacidades, por ejemplo para gestionar insignias dentro de la iniciativa Mozilla Open Badges (http://www.openbadges.org/).

El usuario tiene que identificarse en la primera sesión y el servidor es responsable de la política de acceso a recursos compartidos, para evitar interferencias. El código del estudiante siempre se ejecuta en una máquina virtual, lo cual ofrece seguridad y mayor control de los recursos. Además, a la máquina virtual sólo se le permite utilizar una cantidad limitada de recursos (procesadores y RAM), evitando así una sobrecarga del sistema y en casos críticos se puede reiniciar a un estado seguro.

Existen tres cursos abiertos ahora mismo que se encuentran disponibles en varios idiomas:

Curso de la Tortuga

Este curso está inspirado en la tortuga Logo y dirigido a jóvenes estudiantes (12-14 años) con el objetivo de que aprendan los conceptos básicos de la programación mediante el lenguaje Python: declaraciones, variables, flujo de control, procedimientos y funciones. Se compone de siete unidades con un par de páginas de documentación web y una tarea cada una, que se debe realizar en el simulador Tortuga.

Este es un sencillo simulador 2D sin la física, diseñado inicialmente para la enseñanza de conceptos de ROS, pero también es adecuado para la enseñanza de los conceptos de programación o una introducción a los robots móviles. La velocidad de la tortuga puede ser controlada, por lo que la ejecución del código no es inmediata, sino progresiva.  

Además de un examen final y las tareas, existe una competición, en la que se debe programar a la Tortuga para que llegue lo antes posible a la meta. A continuación puede verse una imagen:

Introducción a los Robots Móviles

Este curso está dirigido a estudiantes más maduros (a partir de 16 años) y su objetivo es aprender los conceptos básicos de la programación de robots con sensores además de los fundamentos matemáticos del control de robots. La base de este curso es el simulador Stage, que es fácilmente disponible en ROS y se ha integrado en nuestro marco. Al emplear sensores, la dificultad de las tareas a abordar puede ser mucho mayor, siendo el ejemplo clásico recorrer un laberinto. A continuación se puede ver una imagen del robot recorriendo una habitación, en azúl el recorrido del haz de los sensores, y en rojo el recorrido realizado por el robot:

Para aprovechar completamente este curso ya se requieren mayores conocimientos de matemáticas, dado que se explican conceptos como el modelo kinemático.

Como en el caso del curso de la Tortuga, en este curso la dificultad se incrementa con las tareas, se han empleado insignias, desafíos, un test final y una insignia final en Mozilla Open Badges. 

Robots Móviles 3D

Este curso se aparta de los anteriores en varios aspectos. Para empezar, se emplea un simulador 3D, Webots, diseñado por la empresa suiza Cyberbotics (http://www.cyberbotics.com/about), que se especializa en la creación de simuladores de robots móviles y ha participado en varios proyectos de investigación europeos. Webots nos proporciona un único robot simple con dos motores que le permiten desplazarse por una superficie plana. Además, el robot dispone de siete sensores de distancia que le informan de su entorno. Dado que el simulador incluye la física, puede caerse de la plataforma, le cuesta tiempo moverse y los sensores tienen limitaciones.

Aquí podemos ver el entorno del curso:

Pero tal vez el aspecto más importnate es que la programación se realiza con un lenguaje de bloques, Blockly, que es una librería en JavaScript para crear editores visuales de bloques que funciona en un navegador web (https://developers.google.com/blockly/), que ya ha sido empleado con propósitos educativos. Es un proyecto de Google y de código abierto. Utiliza bloques que se enlazan juntos para hacer la escritura de código más sencilla, y puede generar código JavaScript, Python o Dart.

Aunque Blockly tiene una serie de bloques básicos, también permite crear nuestros propios bloques, lo cual requiere una definición y un generador. La definición le dice el aspecto que debe tener el bloque (color, forma) y el generador cual es su código de salida. Esto se ha empleado para crear bloques específicos de control del robot ("set speeds", "get range"...), como se puede ver en la siguiente captura de pantalla: 

Continuando con la aplicación de técnicas de gamificación, el curso está planteado como una serie (cinco) de mundos desafío en los cuales el usuario tiene que enfrentarse cada vez a tareas de mayor complejidad. En cada mundo el usuario aprende a utilizar instrucciones (bloques) nuevas y nuevas características del robot. Dada la mayor facilidad de empezar a programar empleando bloques y la falta de explicaciones matemáticas, este curso pueden realizarlo alumnos más jóvenes que los anteriores.

Experiencias

Los cursos están permanentemente abiertos al público en general, teniendo alumnos repartidos por todo el mundo, pero también se han empleado en clases concretas, guiadas por profesores. Las dos experiencias con mayor número de alumnos se han realizado con el curso de la Tortuga, una de ellas en un instituto en el cual los alumnos respondieron muy favorablemente, y la otra en un curso universitario de introducción a la informática para ingenieros. En ambos casos el curso formó parte de la sección de programación de un curso más extenso.

Remarcar que los alumnos mostraron interés en otros cursos del mismo tipo y superaron satisfactoriamente las evaluaciones finales del curso.

Además señalar que se ha empleado en una competición robótica, como parte del congreso Humanoids 2014 http://www.irs.uji.es/humabot/, en la que un robot NAO real estaba conectado al sistema y se podía acceder remotamente a él para programarlo en Python. Las tareas que debía realizar el robot consistían en tareas rutinarias en una cocina: apagar y encender los fogones, coger un tomate y colacarlo en una sarten, buscar objetos... A continuación se puede ver el montaje realizado para esta competición.

El entorno incluía tanto trasmitir al usuario las imágenes obtenidas por el robot como las obtenidas por las cámaras externas, como se puede ver en esta captura de pantalla.