Hola, en esta ocasión vamos a estaremos hablando sobre el reto de "seguidor de linea", y veremos como se programa en robi.
El reto de "seguidor de linea" se ve mucho en las competencias escolares de robótica y consiste en que el robot siga una linea negra (de 1,6 cm de grosor) que esta pegada sobre un tablero o una lona blanca. Cada organizador diseña su propia pista de seguidor de linea, así que siempre son distintas.
Quien logre transitar por todo el circuito en el menor tiempo posible, sin salirse de la pista será quien gane este reto. La dificultad de la pista puede variar si tiene curvas cerradas o intersecciones. En otras modalidades dos robots se persiguen entre sí hasta que uno alcanza al otro.
Puedes ver un ejemplo de pista y descargarlo para robisoft
aquí.
Para la programación usaremos los sensores de linea interiores, lo primero a tener en cuenta es que trabajaremos con un ciclo infinito (una vez acabado el programa volverá a empezar), para que el estado del robot se este actualizando indefinidamete.
En el código deberemos hacer que robi ande recto cuando este centrado sobre la linea y que si se sale por un lado corrija su trayectoria. Sabemos que mientras robi este centrado sobre la linea ambos sensores centrales percibirán "negro", pero si robi se desvía unos pocos milímetros solo uno de los sensores percibirá "negro" y el otro "blanco", usaremos esto para saber cuando y por cual lado se desvia el robot.
|
diagrama: seguidor de linea robi |
Depende de cada pista que tan cerrada debe ser la curva, lo mejor es ir probando hasta que el movimiento del robot sea lo más fluido posible, una buena combinación para empezar a probar es 100-60.
Los errores más comunes que pueden presentarse son:
El robot simplemente no se mueve: El programa no se cargo con éxito o no se colocó un ciclo infinito.
El robot cabecea: Las curvas se están dando demasiado cerradas o se programó que una llanta se detuviera en las curvas.
Hay otra modalidad de competencia en la que el robot debe atravesar un circuito y al mismo tiempo esquivar obstáculos que están en la pista, para esto bastará con agregarle al código anterior una condición en la que cuando el sensor de obstáculos frontal perciba que hay algo se ejecute una secuencia de esquivado, hay muchas maneras de esquivar un obstáculo, pero según la pista hay que determinar si es más conveniente esquivar por la derecha o por la izquierda, aquí está la forma más básica de esquivar un obstáculo:
Ten en cuenta que esta secuencia debe ir después de el código de seguidor de linea básico y no dentro de una condición del sensor de linea.
En este ejemplo el robot una vez detecta el obstáculo, apunta a la derecha, y luego avanza dando curva la izquierda, una vez toca linea el programa salta hasta las condiciones de seguidor de linea y todo sigue normal.
El único dato necesario para diseñar el programa de esquivado es el diámetro del obstáculo, ya que casi siempre los obstáculos se ubican sobre partes rectas, mientras más cerca pase el robot del obstáculo sin tocarlo y más fluido sea su movimiento mejor.
La práctica hace al maestro.