siguelinea_pibot_scratch_vision_teoria

Sigue Línea con PiBot utilizando Visión Artificial

El objetivo de este ejercicio es programar el robot PiBot para que siga la línea blanca de la carretera a través de su sensor de visión, es decir, empleando las imágenes que éste recoge con su cámara.

Pero...¿Cómo podemos detectar una línea en una imagen?

La manera más sencilla es utilizar una de las propiedades más importante de las imágenes RGB, el color. Detectaremos la línea blanca filtrando este color en las imágenes, de tal manera que el blanco sea el único color que "ve el robot". De esta manera, nos será mucho más sencillo seguir la línea, sin otros elementos que interfieran en la tarea.

 

Sensores del PiBot a utilizar

Vamos a utilizar la cámara que tiene incorporada el robot PiBot en su parte frontal. La cámara nos proporcionará imagenes RGB (a color) con información relaciona con lo que el robot "está viendo" en cada momento. Así, podremos detecetar en cada instante la línea blanca de la carretera y seguirla. Para ello, dispones en el menú de trabajo al apartado RobotAPI, y dentro de este en el subapartado Sensors

de un bloque de código que accederá a esas imágenes y te permitirá obtener el centro del objeto del color que estás buscando.

Actuadores del PiBot a utilizar

Vamos a usar los motores que incorpora el PiBot (uno en cada rueda motriz) para hacer que se mueva según nuestras necesidades. Para ello, en el el menú d etrabajo puedes encontrar bloques útiles accediendo a RobotAPIMotors.

Los comportamientos que puedes conseguir en el PiBot mediante los bloques de código de este apartado son los que se muestran en la siguiente tabla:

avanzarretrocedergirarIzquierdagirarDerecha

Pistas para resolver el ejercicio

  • Debes hacer que tu programa capture la información de los sensores y, en función de esa información, realizar acciones utilizando los actuadores para que el PiBot se comporte de la forma deseada
  • Cuando el piBot reciba una orden de avanzar, retroceder o girar, continuará ejecutando dicha orden hasta que reciba otra orden (si la orden es la misma, continuará haciendo lo mismo que estaba haciendo)

¿Puedes conseguir que el PiBot siga la línea blanca? ¡Ánimo!