Resolution basica lego 2016

De Proyecto Butiá
Saltar a: navegación, buscar

Integrantes

  • Andrés Vasilev
  • Maximiliano Kotvinsky

Objetivos

El objetivo del práctico fue realizar un seguidor de líneas evadiendo obstáculos.

Resolución del problema

Sensores y Actuadores utilizados

  • 2 sensores de grises
  • 2 sensores de distancia
  • 2 motores
  • 1 brick
  • 2 ruedas fijas + 1 rueda loca


Descripción de la solución

Robot utilizado para resolver el desafío
Robot utilizado para resolver el desafío (Frente)
Robot utilizado para resolver el desafío (Costado)
Robot utilizado para resolver el desafío (Detrás)

Se utilizaron dos motores, uno para cada rueda fija, y en la parte trasera se utilizo una rueda loca. Para implementar el seguidor de líneas se utilizaron dos sensores de grises, lo cuáles se ubicaron de forma tal que la línea negra a seguir quede entre ambos. Para evadir obstáculos se utilizaron dos sensores de distancia, uno ubicado delante del robot para ubicar los objetos en frente al mismo, y en un lado para identificar al objeto mientras el robot lo esquiva.

Código de la solución

El código implementado se hizo basado en comportamientos, en nuestro caso se tiene un comportamiento para las siguientes acciones: Moverse hacia adelante; Girar (ya sea en una curva o para enderezarse según la línea); Detectar Obstáculos (detectar el objeto delante y empezar a esquivar); Evadir Obstáculos (utilizado para girar sobre el obstáculo evadiéndolo).

  • FORWARD

Este es el comportamiento de menor prioridad y es el que hace avanzar al robot.

  • TURN

Cuando uno de los dos sensores de grises detecta la línea negra, el robot gira en la dirección del sensor que la detectó. El giro no se realiza sobre las ruedas, ya que se mueve un motor hacia adelante, y el otro hacia atrás al mismo tiempo para que el eje de giro sea m·s cercano al centro del robot.

  • DETECT OBSTACLE

Cuando el sensor de ultrasonido detecta un objeto delante del robot, éste retrocede unos centímetros y comienza a girar hasta que el segundo sensor ultrasónico detecta el objeto obstáculo. Cuando realiza este giro se ignoran las líneas negras, ya que de no ser así el robot no podrÌa salir de la misma.

  • AVOID OBSTACLE

Utilizando el segundo sensor de distancia ubicado a un lado del robot, mientras el sensor lee un objeto el robot avanza en línea recta, una vez que deja de detectar el obstáculo, el robot gira sobre su eje en la dirección del sensor hasta detectar el objeto nuevamente. Éste comportamiento permite que el robot se mueva en torno al obstáculo, lo cual permite que no dependa del tamaño del obstáculo. Cuando el robot detecta la línea negra con ambos sensores, se alinea y se continua con el comportamiento habitual.


Para ver el código implementado visitar el siguiente repositorio: https://github.com/avasi/robedu2016-lego


Ejecución del Robot en la pista

El siguiente video muestra al robot evadiendo un obstáculo mientras sigue la línea negra.