Diferencia entre revisiones de «Resolution basica lego 2016»
(→Descripción de la solución) |
(→Ejecución del Robot en la pista) |
||
(No se muestran 21 ediciones intermedias de 2 usuarios) | |||
Línea 6: | Línea 6: | ||
El objetivo del práctico fue realizar un seguidor de líneas evadiendo obstáculos. | El objetivo del práctico fue realizar un seguidor de líneas evadiendo obstáculos. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Resolución del problema== | == Resolución del problema== | ||
Línea 24: | Línea 16: | ||
*1 brick | *1 brick | ||
*2 ruedas fijas + 1 rueda loca | *2 ruedas fijas + 1 rueda loca | ||
+ | |||
=== Descripción de la solución === | === Descripción de la solución === | ||
+ | [[Archivo:Butia2016-Pr1-Lego1.jpg |thumb |Robot utilizado para resolver el desafío]] | ||
+ | [[Archivo:Butia2016-Pr1-Lego2.jpg |thumb |Robot utilizado para resolver el desafío (Frente)]] | ||
+ | [[Archivo:Butia2016-Pr1-Lego3.jpg |thumb |Robot utilizado para resolver el desafío (Costado)]] | ||
+ | [[Archivo:Butia2016-Pr1-Lego4.jpg |thumb |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 | + | 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). | 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). | ||
Línea 39: | Línea 37: | ||
*AVOID OBSTACLE | *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. | 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. <br/><br/> | ||
+ | |||
+ | |||
+ | <youtube>47XWeFVnzwE</youtube> |
Revisión actual del 01:00 12 sep 2016
Contenido
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
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.