• Descarga | Suscripciones en iVoox / Apple Podcasts / Spotify / Google Podcasts •
Juegos Robótica episodio 17. Sigue líneas, el clásico de la robótica educativa.
Bienvenidos a Juegos Robótica, el podcast en el que hablamos de robótica educativa, iniciación a la programación, aplicaciones para docentes, entornos de programación para niños y en general todo lo que tiene que ver con despertar la curiosidad de los más jóvenes por la programación y la tecnología para que se conviertan en creadores y no en meros consumidores.
Como ya sabes este podcast es un reflejo sonoro de los contenidos y cursos que puedes encontrar en juegosrobotica.es
Y recuerda que si quieres aprender a programar a través de la robótica o quieres formarte para enseñar a programar puedes darle un vistazo plataforma de cursos en juegosrobotica.es/cursos y acceder a la formación online más completa con robótica educativa por 10 euros al mes, aprendiendo desde la base y a tu ritmo.
Robots sigue líneas.
Los robots sigue líneas son un clásico en robótica cuando hablamos de educación. En proyectos de electrónica y control de potencia hace muchos años diseñábamos vehículos sigue líneas sin necesidad de mirocontroladores haciendo un control por realimentación directa de los sensores de manera similar a los vehículos seguidores de luz.
Dejando atrás las batallas del abuelo Cebolleta lo cierto es que hoy en día podemos trabajar con robots sigue líneas sin prestar demasiada atención a la electrónica centrándonos directamente en la programación.
El concepto de robot sigue líneas se puede plantear desde los algoritmos más básicos, como aquella realimentación directa que usábamos en electrónica, que permite a niños muy pequeños entender perfectamente el principìo básico de control y programar el robot, hasta controles más complejos con los que ganar eficiencia de cara a ciertas competiciones de velocidad o dotar de cierta inteligencia al robot sigue líneas para evitar obstáculos, cortes en la línea, cruces, cambios de color, etc.
Igual que ocurre en otros conceptos en robótica, a la hora de plantear un robot móvil sigue líneas podemos embelesar a los estudiantes con el resultado relativamente espectacular de programar un robot que sigue una ruta marcada por una línea y cambiar el circuito o poner varios robots en la misma línea y cosas así, o podemos esforzarnos por explicar el concepto de algoritmo y cómo es el algoritmo concreto del robot sigue líneas que estamos programando.
Pero antes de hablar de algoritmos veamos que es un robot sigue líneas ya que puede que te estés preguntando qué es si nunca has oído hablar de ello.
Se trata de un robot móvil, que se desplaza mediante ruedas, orugas, vibración, patas o incluso reptando, eso no importa, pero debe ser capaz de moverse ya que el objetivo principal es seguir la ruta marcada por una línea.
Aunque se puede plantear la línea variando textura, relieve u otras características físicas lo más habitual, sobretodo en educación, es que la línea sea visible variando el tono o color sobre el fondo. En la mayoría de casos estaremos hablando de líneas negras de cierto grosor sobre fondo blanco o de líneas blancas sobre fondo negro.
Pero no dejes de pensar en otras posibilidades de cara a proyectos futuros en los que la línea no siempre es visible. No es difícil encontrar en industria y logística líneas utilizadas por robots de transporte que no son visibles a simple vista por ejemplo ocultando bajo el suelo materiales ferríticos formando la línea que será detectada por campo magnético por el robot.
Sensores para detectar la línea.
Para poder detectar la línea y diferenciarla del tono de fondo normalmente se mide la luz reflejada en el punto concreto en el que tenemos situado el sensor, ya que lógicamente la zona blanca refleja la mayor parte de la luz y la zona negra absorbe la mayor parte de la luz y refleja una mínima cantidad de la luz que recibe.
En ocasiones en las que tenemos marcas de diferentes colores a lo largo del circuito que indican límites o acciones a tomar, se utilizan sensores de color que no deja de ser una medida de luz reflejada también pero teniendo en cuenta el color de la luz proyectada y el color de la luz reflejada de los tres colores básicos.
Pero como te decía lo habitual y más básico es tener negro sobre blanco o viceversa.
Un método para medir luz reflejada y que cada vez está más en desuso es iluminar puntualmente una zona muy localizada y medir la luz reflejada mediante una LDR, una resistencia dependiente de la luz.
Hace años el precio justificaba el uso de LDRs para proyectos muy básicos, pero hoy en día incluso en esas ocasiones la diferencia de precio no compensa y lo más recomendable y extendido es el uso de sensores de infrarrojos específicos para utilizar en detección de línea.
Este tipo de sensor está compuesto por un emisor de luz infrarroja, que lanzará un haz de luz contra la superficie, y un receptor de luz infrarroja cuya función es recibir la luz reflejada de la superficie.
Lógicamente una mayor cantidad de luz reflejada está indicando un tono más claro y menor cantidad de luz reflejada está indicando un tono más oscuro.
El control más básico se puede hacer con un único sensor de manera que en una línea con un cierto grosor iríamos controlando el vértice concreto de uno de los lados que sería la frontera entre el negro y el blanco.
De esta manera se utiliza de manera básica el kit de LEGO Mindstroms EV3 puesto que de serie únicamente incluyen un sensor de luz reflejada, tanto el set doméstico como el set educativo. Lógicamente podemos añadir más sensores adicionales, pero de con el que lleva incluido de serie serás capaz de hacer un robot sigue líneas básico sin problemas.
De la misma manera podríamos montar un robot basado en Arduino con un único sensor de infrarrojos controlando siempre unos de los bordes de la línea.
El control en este caso es sencillo puesto que no hay mucho que controlar… simplemente podemos saber si el robot está sobre la línea o fuera de ella. Supongamos que voy a querer circular por el vértice derecho de una línea negra sobre un fondo blanco. En ese caso si detecto que estoy sobre superficie blanca le daré las órdenes al robot para que gire hacia la izquierda para buscar la línea. En caso de detectar negro haremos que el robot gire hacia la derecha para buscar el vértice y salir de nuevo a la zona blanca.
Lógicamente la velocidad de giro a derecha e izquierda debe ir en consonancia con el grosor de la línea y el circuito en general, ya que sobretodo cuando vaya a buscar la línea no debe llegar a rebasarla.
El número de sensores que utilices para detectar la línea determinará la capacidad del robot para enfrentarse a trazados complejos de línea o a recorrer el circuito a una mayor velocidad por disponer de un mayor control de trazada.
Además será más sencillo encontrar una solución de programación cuantos más sensores de detección de línea tenga el robot, mientras tener menos sensores implicará tener que trabajar mucho más el algoritmo sigue líneas sobretodo en trazados de línea con huecos, cruces y curvas cerradas.
El sensor siguelíneas de Makeblock por ejemplo tiene dos sensores de infrarrojos, y por lo tanto vamos a tener más posibilidades de construcción y programación que con un único sensor infrarrojo.
Dependiendo del grosor de la línea respecto a la posición de los sensores de infrarrojos de Makeblock podemos trabajar de manera que ambos sensores puedan llegar a detectar la línea a la vez. Es decir, que la línea tiene un grosor mayor que la distancia entre sensores.
A diferencia del control con un único sensor, con dos detectores podré determinar si el robot se ha salido de la línea por el lado izquierdo o por el lado derecho, ya que en ese caso uno de los detectores seguirá detectando la línea mientras que el otro indicará el lado por el que se ha salido el robot.
De esta manera el control es bastante intuitivo ya que dependiendo del lado por el que se haya salido le indicaremos al robot que deberá corregir la trayectoria hacia el lado contrario para volver a la línea. Digamos que podemos hacer un control temprano de pérdida de línea.
En el caso de que ambos detectores detecten línea el robot estará previsiblemente en la línea y nos podemos permitir avanzar en línea recta a mayor velocidad.
También podemos llevar mayor velocidad en general al tener dos sensores de infrarrojos puesto que en el caso de encontrar una curva cerrada en el circuito y perder la línea por completo, con los dos detectores de infrarrojos detectando fuera de línea, seré capaz de programar al robot para que sepa por qué lado perdió la curva analizando el estado anterior de los sensores.
Este control de recuperación de línea en caso de perderla completamente es uno de los controles básicos que vemos en el curso de robots sigue líneas de la plataforma de juegosrobotica.es y que debe ser el primer algoritmo que debemos utilizar al utilizar un sensor de línea doble.
Otra ventaja de un sensor doble sobre un sensor único es que si la línea es más estrecha que la distancia entre sensores vamos a poder detectar cruces y de esa manera decidir giros a derecha o izquierda en el cruce por ejemplo en la resolución de laberintos o porque estemos simulando alguna aplicación en la que hay posibilidad de elección del camino a tomar. Quiero decir que no es un circuito cerrado como los de las competiciones de velocidad, sino un entramado de líneas.
Con esta disposición de sensores más separados que el grosor de la línea no podemos saber cuando el robot se encuentra alineado en la zona interior de la línea, por lo que perdemos esa posibilidad de aumentar la velocidad en ese punto.
Pero como decía ganamos la posibilidad de detectar cruces, ya que en el momento en que ambos detectores detecten línea querrá decir que hemos llegado a una línea que se cruza perpendicularmente con la que iba siguiendo el robot hasta ese momento.
Date cuenta de lo importante que es plantear la posición y distancia de nuestros sensores en general y para construir un robot sigue líneas en particular. Y sólo hemos analizado el caso de tener dos sensores de infrarrojos en vez de uno… imagina que las posibilidades aumentan según aumenta el número de sensores.
Otro factor que afecta muchísimo y que tiene que ver con la posición de los sensores es la distancia longitudinal a la que se encuentran respecto al elemento motriz que ejecute el giro.
En un robot móvil con dos ruedas motrices que determinen el giro cuanto más alejado tengamos el sensor de las ruedas más rápida será la reacción del robot en las maniobras, es decir, con menos giro en las ruedas motrices más desplazamiento lateral tendrá el morro del vehículo en el que está montado el sensor.
Este factor, que puede parecer una ventaja, se puede convertir en un inconveniente si llegamos a alejar tanto el sensor que no somos capaces de controlar los giros ya que un mínimo giro producido por las ruedas implica un gran desplazamiento del sensor saltándose la línea al intentar recuperarla.
Lo ideal es encontrar una distancia longitudinal que separe el sensor de las ruedas suficiente para tener agilidad y ganar velocidad, pero suficientemente cerca para mantener un buen control de movimiento y giro.
Si seguimos aumentando el número de sensores vamos a tener más control y podremos saber con más exactitud por ejemplo cómo de alejado se encuentra el robot de la línea de manera que podemos variar el control según lo alejado que se encuentre.
Con un menor número de sensores también podemos tener ese tipo de control, haciendo giros más pronunciados si estamos más alejados de la línea, pero necesitaremos implementar algoritmos más complejos para resolverlos, analizando por ejemplo los estados anteriores y las consecuencias de nuestro control con un control PID como también vemos en el curso de robots sigue líneas. Aquí ya estaríamos hablando de controles muy avanzados de programación que se pueden resolver sencillamente instalando más sensores.
No quiero alargar mucho más un episodio completamente práctico como el de hoy y quizá sea mejor retomar la programación de robots sigue líneas en algún episodio futuro del podcast viendo como se manejan hileras de varios sensores o qué tipos de algoritmos se pueden utilizar para ganar precisión y velocidad al máximo, aunque una de los retos más interesantes es el de analizar los huecos en la línea para crear patrones de búsqueda. Incluso podremos hablar de cómo aumentar la velocidad en circuito cerrado haciendo que el robot memorice la trazada pudiendo prever los giros después de una primera vuelta de reconocimiento.
De momento hemos visto algunos controles básicos, pero si tienes interés en conocer al máximo las posibilidades de los robots sigue líneas visita la plataforma de cursos de Juegos Robótica.
Esto ha sido todo por hoy. Nos escuchamos en un próximo episodio continuando con los robots sigue líneas o hablando de algún entorno de programación, un kit de robótica educativa o cualquier otra herramienta que nos ayude en el aprendizaje de la programación y la robótica.
Hasta entonces que tengas una feliz semana, nos vemos en siete días… adiós!
Deja una respuesta