HBM005: Iniciación a la robótica con LEGO® MINDSTORMS, 2ª Entrega


Iniciación a la robótica con LEGO® MINDSTORMS, 2ª Entrega

LEGO Mindstorms

 

 

Ya tengo el NXT, ¿y ahora qué?

Texto e imágenes por Koldo

 

Ya tengo el NXT, pero ahora que he abierto la caja ¿por dónde empiezo? Es una sensación
bastante común cuando no se tiene una experiencia previa con la robótica, ¿seré capaz de sacarle rendimiento a todo esto?

El punto de partida más sencillo es montar y programar los modelos que ofrece el mismo set,
seguir sus indicaciones tanto de montaje como de programación y jugar con ellos. Cuando digo jugar me refiero a modificar los programas originales y observar la respuesta del robot a dichos cambios en su comportamiento, lo cual es un excelente modo de aprender. También podemos modificar el hardware, es decir, cualquier elemento de la estructura del robot o de sus sistemas motores y sensores.

Si todo no funciona como se espera... no hay que preocuparse, suele pasar, a menudo todo encaja muy bien en el ordenador pero en la vida real las cosas no suelen funcionar siempre como se espera.

¿Por dónde sigo?

A veces no es fácil decidirse por una u otra idea y la mayoría de las veces no se nos ocurre nada. Es algo que nos pasa a todos, desearíamos que se nos ocurriese una idea genial que no haya hecho nadie, una bonita idea de la que nos sintamos satisfechos.
Pero eso no ocurre todos los días, así que mientras tanto el camino puede ser centrarse en algo más convencional o tirar de las ideas que podemos encontrar en libros o Internet.

Un tipo de robot que puede dar mucho juego en el aprendizaje de la programación es un robot móvil con ruedas (u oruga, no disponible con el NXT pero sí en otros sets y con el RCX). Se trata de robot sencillo de montar y al que podemos incorporar diversos sensores. Uno de los más sencillos puede ser el de la figura 1 (1) cuyas instrucciones puedes encontrar en Lrobotikas.net.

Antes de empezar a montarlo hay que tomar alguna decisión, la principal decidir de qué sistema de dirección lo vamos a dotar. En robótica móvil sobre ruedas se pueden encontrar diferentes sistemas de dirección tales como la dirección diferencial, el sistema de un triciclo o el que utilizan los automóviles. Sin ninguna duda lo mejor es decantarse por la diferencial por su sencillez: dos motores controlan dos ruedas, una a cada lado; si las dos giran en el mismo sentido y velocidad avanza o retrocede, si las velocidades son diferentes gira (es el sistema que utiliza el Tribot, uno de los modelos originales de LEGO®).

LEGO Mindstorms

Nunca vienen mal algunas ideas básicas para desarrollar con el NXT y el set básico y a continuación se ofrecen algunas. Son ideas que no requieren un diseño mecánico complicado, para empezar no merece la pena complicarse demasiado con la construcción, hay tiempo para ello. En el artículo sobre LEGO MINDSTORMS en el anterior número de Hispabrick Magazine señalaba que antes de escribir el programa en NXT-G (o cualquier otro lenguaje de programación), conviene escribir lo que ha de hacer el robot en el propio idioma, es decir, utilizando las mismas palabras que usamos habitualmente. Para ello no tenemos mas que ponernos en el lugar del robot y hacer una lista ordenada de los pasos que daríamos para resolver el problema. Un algoritmo básico acompaña a cada una de las ideas, aunque es mejor que los desarrolles un poco más.

• Robot cuya arranque y parada controlamos por medio de palmadas: Este es un robot muy sencillo, tiene que esperar a que el sensor detecte un sonido superior al nivel que se determine para a continuación ponerse en marcha (motores en modo sin límite) y esperar a que detecte el sonido otra vez. Todo esto deberá repetirse de modo continuo. Atención: no conviene colocar el sensor de sonido muy cerca de los motores ya que el ruido que genera puede interferir en su funcionamiento.

• Robot que circula por un espacio evitando obstáculos sin tocarlos: este robot móvil ha de utilizar el sensor de ultrasonidos para detectar los obstáculos de se interpongan en su camino. Avanza hasta que el sensor detecte que un obstáculo se encuentra a una distancia inferior a la que se haya considerado como distancia de seguridad. Se detendrá y girará sobre sí mismo hasta encontrar un camino sin obstáculos y volverá a empezar.

• Robot que circula evitando obstáculos utilizando un sensor de contacto: Básicamente no difiere mucho del anterior, aunque en este caso primero se pone en marcha y espera a que choque (sensor de contacto activado), momento en el que tras parar los motores habrá de desarrollar una maniobra de evasión (retroceder y girar) para volver a empezar.

• Robot que nos da la medida de una distancia cuando lo movemos empujándolo con la mano: Este supone un pequeño ejercicio de matemáticas ya que necesitaremos la fórmula que convierte el giro de la rueda en distancia. El robot leerá cuánto ha girado el motor, utilizará los bloques de programación que permiten hacer operaciones matemáticas y mostrará el resultado en la pantalla del NXT en las unidades que se desee.

• Robot que busca la luz: cuando nos enfrentamos a un reto lo mejor es pensar en cómo lo haríamos y en la mayoría de los casos hay más de un modo de hacerlo. ¿Qué es lo que hacemos cuando queremos dirigirnos hacia un espacio más iluminado? Pues lo primero mirar a nuestro alrededor, observar y valorar la iluminación para, a continuación, dirigirnos hacia la zona más iluminada. El robot deberá hacer lo mismo, es decir, dar un giro completo alrededor de sí mismo mientras observa el nivel de iluminación. Tendrá que memorizar la dirección en la que se encuentra la zona de mayor luminosidad o cuál es ese valor para buscarlo en una segunda vuelta. Aunque seguro que se te ocurre algún otro modo de hacerlo.

• Robot tímido que escapa de la luz: Este es muy similar al anterior, pero en este caso tiene que buscar un entorno oscuro para esconderse.

• Robot que sigue una línea: para este robot se puede utilizar el pad que acompaña al MINDSTORMS. Las estrategias pueden ser diferentes y dado que el set de LEGO® MINDSTORMS solo contiene un sensor de contacto hay que comenzar en pensar en alguna que se pueda utilizar con un solo sensor. Uno de los modos es intentar que el robot circule por el borde exterior de la línea negra y que recorra el circuito rodeándolo en el sentido de las agujas del reloj (lo cuál quiere decir que el robot tendrá un espacio blanco a su izquierda y una línea negra a su derecha). Cuando el robot lea con el sensor de luz que se encuentra sobre una zona blanca (quiere decir que se está desviando hacia fuera) deberá corregir su trayectoria girando a la derecha y cuando la lectura le diga que está sobre zona negra (el robot se desvía hacia el interior) deberá hacerlo hacia la izquierda.

En todos los casos anteriores podemos hacer un robot fácilmente predecible en sus comportamientos o darle un mínimo de capacidad de toma de decisiones. ¿Cómo se hace? Es sencillo, mientras no tenga otro criterio diferente puede ser suficiente echar los dados para decidir si cuando tiene que girar para evitar un obstáculo lo hará a la izquierda o derecha, si retrocede durante un segundo o durante tres...

LEGO Mindstorms

Libros e Internet

Estas son dos fuentes de ideas muy interesantes. Dedicaré otro artículo a fuentes de información, pero no quiero dejar de mencionar uno que por su estructura y contenido puede ser muy interesante, se trata de “LEGO® MINDSTORMS Zoo!”. Es un libro que toma como eje temático el zoo y desarrolla una reproducción libre de diversos animales. Aunque sea un libro escrito en inglés, no ofrece mayor problema a quien desconoce dicho idioma ya que es un libro mayormente gráfico con instrucciones paso a paso y los programas correspondientes.

En Internet también podemos encontrar diversas ideas y webs con modelos con instrucciones paso a paso. Una muy interesante es NXT programs (2), ya que ofrece más de 60 modelos que pueden montarse con las piezas de una sola caja del NXT, sin necesidad de piezas adicionales, junto a las instrucciones paso a paso y los programas correspondientes en NXT-G.

Explorando nuevas ideas

¿Dónde podemos encontrar nuevas ideas? El primer espacio donde encontrarlas es en nuestro entorno más cercano, en nuestra rutina, en un problema que se nos presente, en una visita a un museo o una feria...

Un ejemplo de ello es un proyecto que mi hijo mayor desarrolló hace unos años con el RCX. El origen de la idea fue un problema con el diferencial doméstico que se saltó cuando estábamos de vacaciones, llegamos a casa y el congelador chorreaba, la comida estropeada… Mientras limpiábamos su madre le dijo: “¡A ver si inventas algo para que esto no vuelva a pasar!”. A la semana ya tenía un montaje que nos daba un aviso al teléfono móvil si la luz se iba (3).

La idea del modelo de la figura proviene de la visita a una feria de maquinaria (4).

Nota final

Una vez que se publique esta revista, a las dos semanas se abrirá en el foro Lrobotikas un hilo para discutir la primera de las propuestas, y del mismo modo las restantes cada 15 días de tal modo que se puedan resolver de modo colectivo las dudas, problemas… que se puedan producir.

 

1 Sección de descargas en http://lrobotikas.net

2 http://nxtprograms.com

3 Ver http://lrobotikas.net/es/modelos/rcx/51- alarmasistema

4 Ver http://lrobotikas.net/es/modelos/rcx/61- manipulador

5 Foro Lrobotikas en http://foro.lrobotikas.net