Entendiendo al Robot sigue-líneas

Uno de los proyectos clásicos de introducción a la robótica es el robot sigue-líneas, (también conocidos como rastreadores o seguidores). Es muy utilizado, pues ayuda a que se entienda el concepto de “robot”, ya que se trata de una maquina móvil que tiene una tarea a desarrollar, que puede recopilar información de su entorno y reaccionar de acuerdo a esa información. A continuación les doy una breve explicación de su funcionamiento.

Los sigue-líneas pueden tener uno o varios sensores, (mientras más sensores, mejor será su desempeño, y más complejas pueden ser las líneas trazadas). Por ejemplo, con dos sensores de luz montados al frente, el desempeño se mejora bastante.

sigue líneas con dos sensores

El kit Mindstorms tiene solo un sensor de luz y podemos añadirle otro si quisiéramos, pero en torneos como la FLL (First Lego League), tienen como norma utilizar solo lo contenido en el kit; o si fuera el caso algún otro componente ex profeso. Por consiguiente lo aquí descrito servirá para vehículos que cuentan con un solo sensor.

Al momento de crear un móvil que siga una línea con nuestro Lego, a veces perdemos de vista todo lo que nos ahorramos en tiempo y esfuerzo. Básicamente utilizamos el diseño de “Tribot” y le montamos un sensor de luz al frente y pasamos a la programación. Eso es exactamente lo maravilloso del asunto; podemos concentrarnos ahora solo en la programación para darle a nuestro robot el comportamiento deseado. Nos hemos “saltado” todo lo referente a la electrónica. Por ejemplo, ya no nos hemos preocupado por crear un circuito que haga que los motores se sincronicen para que el robot avance de forma recta. Para efectos de enseñanza a nivel básico (niños y jóvenes de no más de 15 años), la electrónica es algo mas avanzado que quizá se desea soslayar.

Lo que se necesita para la “pista” es un alto nivel de contraste entre el piso y la línea. Puede ser, por ejemplo, una superficie blanca y la línea en color negro, o al revés, una superficie negra con una línea blanca. Lo importante es que el sensor de luz pueda distinguir perfectamente la diferencia entre ambos. Pero los niveles de luz ambiente también influyen mucho en el sensor. Para tratar de minimizar que la luz ambiental afecte la respuesta del sensor, es preferible poner el sensor muy cerca del piso, casi rozándolo. Hay que tomar eso en cuenta cuando estemos en un ambiente haciendo pruebas y luego cambiemos a otro, pues los resultados pueden ser muy distintos, aún cuando la pista a recorrer sea exactamente la misma. Es posible que sea necesario “calibrar” el sensor para la nueva luz ambiente.

El objetivo puede ser simplemente que el vehículo recorra una o varias veces el circuito, (el cual está formado por varias curvas y rectas), que lo haga en el menor tiempo posible, o que sortee una serie de obstáculos puestos en su trayectoria.

Para comprender cómo funciona el robot con solo un sensor de luz, empezaremos por decir que en realidad el robot no sigue la línea en sí, sino el borde de ésta. Esto es debido a que si solo seguimos la línea y el robot se sale de ella no sabremos de qué lado de la línea ha salido, (puesto que el sensor solo reportará que ya no está sobre la línea), y por lo tanto no tenemos información suficiente para saber si girar el robot a la derecha o a la izquierda. Por esta razón, es mejor que se conduzca en uno de los bordes de dicha línea.

Imaginemos lo siguiente: Tenemos un piso blanco con la pista a recorrer (línea) en color negro, y decidimos que el robot siga el borde izquierdo de la línea. Si en algún punto el móvil desvía su ruta y  el sensor “ve todo blanco”, quiere decir que se ha salido de curso y podemos indicarle que gire unos grados a la derecha; y si “ve todo negro”, quiere decir que se ha desviado hacia el interior de la línea y podemos indicarle que gire unos grados a la izquierda.

También debemos entender cómo es que trabaja el sensor. Pues bien, lo que en realidad reporta el sensor al micro controlador del brick, es el porcentaje de luz reflejada sobre la superficie. Y lo hace por medio de números. Gracias a esos números, es que podemos hacer comparaciones para mantener al robot sobre la línea.

Pueden entonces discernir que el valor que debemos vigilar, es el valor promedio, del valor reportado por el sensor sobre la superficie blanca y el valor reportado sobre la superficie negra.

El programa más simple para hacer que el robot siga la línea, consiste en hacer que gire a la derecha o a la izquierda una cantidad de grados constante, pero un programa así de simple trae como consecuencia, que el robot realizará un caminar muy extraño en zigzag y tardará mucho en completar el circuito. Sobre todo si existen muchas curvas. Por lo tanto los grados de giro deberán ser proporcionales a la desviación.

Hasta aquí dejo esta introducción y les doy paso a los verdaderos expertos en la materia. Como siempre les daré a continuación las ligas hacia los sitios en la red que explican esto de forma mas detallada:

Jim Sluka Explica en su sitio la solución matemática y el pseudocódigo. (Sitio en idioma inglés).

En Electricbricks, se explica su programación en el lenguaje gráfico NXT-G. Ahí mismo también se dan más detalles de este tipo de robots.

En NEOTEO. Se habla sobre los robots sigue líneas en general. Y dan pistas para construir uno desde cero. (No utilizan las piezas lego)

(Edito 02/Jun/2011)

Para quienes han buscado información sobre el robot sigue líneas utilizando el kit lego 2.0 retail, habrán notado que CASI en todos los sitios hablan del sensor de luz y como utilizarlo para éste tipo de proyectos. Pero no se menciona el nuevo sensor de color. Posiblemente han cometido el error de tratar de utilizar el bloque “sensor de luz” en NXT-G y no han conseguido que su robot reaccione. No se preocupen, es un error típico de nosotros los novatos.

El sensor de color y el sensor de luz tienen características diferentes y se deben utilizar los bloques que les corresponda. El sensor de color puede ser utilizado como sensor de luz, pero eso no quiere decir que se pueda usar el bloque “sensor de luz” para hacer que funcione.

Lo que se debe hacer, es seleccionar el bloque de sensor de color. En sus propiedades “Acción” viene por defecto seleccionado “Sensor de color”, ahora hay q seleccionar “Sensor de luz”, verán q el resto de las propiedades cambia a las que ya conocen, pero además pueden seleccionar que se emita la luz en color rojo, verde o azul.

(Edito 29/Nov/2011)

Gracias a Jetro, (colaborador de HispaBrick Magazine), podemos leer la traducción al español del original escrito por Jim Sluka (citado mas arriba), para el controlador PID en sus números 008 y 009.

Aqui dejo tres seguidores de línea un tanto diferentes a lo explicado arriba, pues tienen la cabeza mobible. Los tres, son diseños del usuario Hydrogenhead

Y finalente dejo uno que corre bastante bien. (Hay otros mas rápidos, pero utilizan piezas que no son Lego). Gracias al usuario pandalori

6 respuestas a Entendiendo al Robot sigue-líneas

  1. abdellatif dice:

    le quiero decir que esta explicación es muy buena y que ha hecho mucho bien siga subiendo explicaciones así muchas gracias desde españa.

  2. pquiroz dice:

    Gracias por tus alentadoras palabras. Siempre se aprecian.

    Saludos cordiales desde éste lado del charco😉

  3. My Homepage dice:

    Having been merely looking at helpful blog articles with regard to the project research when My partner and i happened to stumble on yours. Thanks for this practical info!

  4. pquiroz dice:

    It’s great see people from another languages visit my blog. Thanks

  5. johanna dice:

    La programacion de seguidor de linea con interlineado y obstaculo.

  6. pquiroz dice:

    Hola Johanna. No entiendo tu comentario. Si lo que escribes es para proponer el tema o estas solicitando el código. De cualquier forma sería pertinente que nos dijeras a que te refieres exactamente con “interlineado”. Si preguntas por la programación, sería mas conveniente que explicaras en dónde te estas atorando y es posible (aunque no forzoso), que alguien te pueda ayudar.

comentar no cuesta nada y ayuda a mejorar el contenido.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: