Ir al contenido principal

Entradas

Mostrando entradas de mayo, 2017

FollowLine: diseño con un PID

En esta siguiente aproximación me he centrado en introducir el controlador PID en el sistema. Tras estudiar su funcionamiento teórico me he decantado por crear una nueva clase que contenga las tres constantes fijas: Kp, Kd y Ki, además de un método que compute la fórmula y devuelva el resultado. Las constantes anteriormente mencionadas no tienen ningún tipo de valor por defecto, dependen mucho del problema a tener en cuenta. Por ello, he obtenido sus valores óptimos mediante prueba y error. Realmente es un trabajo costoso y que toma tiempo, pero si se hece bien el resultado puede ser muy bueno. Para este caso en concreto, he comprobado que apenas se producen cambios en el comportamiento del robot cuando omito la constante Ki, por lo que la fijaré a 0. No entiendo bien porque parece funcionar mejor sin ella, pero realmente lo hace. También he observado que cuando Kd es mucho más grande que Kp el robot sigue las rectas increiblemente, sin oscilar, pero es poco estable en curvas. Sin e

FollowLine: primera aproximación

Para poner en práctica las ideas expuestas en la entrada anterior he realizado una primera aproximación al algoritmo de comportamiento. En el enunciado de la práctica se recomienda usar un controlador tipo PID para estimar el error, pero para este intento he decidido omitirlo. El objetivo es simplemente aprender a controlar el robot actuando en consecuencia al error cometido. He extraído tres puntos de control a diferentes alturas de la imagen referencia, con los que he dibujado la línea ideal de trayectoria en recta. En cada iteración calculo el punto medio del ancho de la línea y estimo la distancia con el punto de referencia, en principio solo para el punto a media altura. Según la magnitud del error he fijado una serie de reglas para establecer la velocidad de avance y de giro. Si el error es muy grande la velocidad de avance debe de ser pequeña y la de giro grande. Sin embargo, cuando el error es pequeño la velocidad de avance se puede aumentar al mismo tiempo que se disminuye la

FollowLine: línea de trabajo

La primera práctica consiste en programar el comportamiento de un robot, en este caso un fórmula1, para que siga la línea del suelo de un circuito lo más rápido posible. A pesar de que el robot incorpora diversos sensores, solo se podrá utilizar la cámara izquierda para esta tarea. Antes de comenzar voy a definir la línea de trabajo que seguiré y que estrategía emplearé para programar el comportamiento. En este caso la línea a seguir tiene un color rojo que se distingue muy bien del resto del asfalto, por lo que un filtro de color, en HSV, parece la mejor idea para segmentar la línea. Elijo HSV porque es un campo de color más invariante a cambios de iluminación, haciendo más robusta la segmentación. Con el fin de ahorrar computo realizaré la segmentación solo en la mitad inferior de la imagen, que abarca todo el asfalto. La idea es extraer una serie de puntos de control en cada iteración a diferentes alturas de la línea y compararlos con su mismo valor en una situación ideal, donde