PID para la Línea A raíz Sat, 10/27/2007 - 1:14 | por eddywright
¿Quieres hacer tu robot siga una línea? A velocidades más lentas, el proceso es bastante simple - si lo s sensores dicen que se va a la izquierda, a dirigir la derecha y si va a la derecha, mant éngase a la izquierda. Este proceso tiene sus limit aciones, sin embargo, principalmente cuando se aumenta la velocidad. Esto es cuando un controlador PID comienza a brillar. PID significa PID significa P roportional, me ntegral, me ntegral, D erivative. Un controlador PID es PID es una rutina basada matemáticamente que procesa los datos del sensor y lo utiliza para controlar la dirección (y / o velocidad) de un robot para mantenerlo en curso. ¿Por qué PID funciona PID funciona mejor que nuestro modelo sencillo descrito anteriormente? Vamos a hablar de cómo actúa robot (o se comporta), ya que sigue una línea para ver por qué. Comportamiento del robot cuando se sigue una línea Digamos que nuestro robot tiene 3 sensores, Izquierda, Centro y Derecha. Cuando el sensor Center ve la línea, el robot está programado para ir directamente. Cuando el sensor izquierdo ve la línea, el robot está programado para girar a la derecha. Cuando el sensor derecho ve la línea, el robot está programado para girar a la izquierda. Normalmente, esto hará que el robot de la oscilación de un lado a otro sobre la línea y si va demasiado rápido, puede perder el control y dejar de seguir la línea (la línea roja en la imagen a la derecha). Este método sólo se necesita un comportamiento en consideración - es el robot centrado sobre la línea. Para mejorar el rendimiento, también debemos tener en cuenta 2 más comportamientos - la rapidez con que se mueve el robot de lado a lado y por cuánto tiempo es que no está centrada sobre la línea. Estos 3 comportamientos se llaman proporcional, integral y derivativo en términos de un controlador PID. Para ayudar a discutir PID, aquí es la definición de algunos términos de uso común: Posición de destino destino - Para la línea siguiente, esta se centra sobre la línea. Vamos a representar a este como el valor 0 (cero). Posición Medido Medido - Esta es hasta qué punto la izquierda o derecha del robot es de la línea. Este valor será un valor negativo o algo positivo para representar la posición el respecto a la línea. Error Error - Llamamos a la diferencia entre la posición objetivo y la posición medida del error. Proporcional - medidas - medidas hasta qué punto el robot está lejos de la línea. Proporcional es la base para la captura de la posición de robots por medio de sensores. El más detallado de los datos del sensor, más precisión se puede medir la posición de los robots sobre la línea. Integral Integral - medir el error acumulado error acumulado con el tiempo. El valor integral aumenta mientras que el robot no está centrada sobre la línea. Cuanto más largo el robot no está centrada sobre la línea, mayor es el valor integral se convierte.
Derivados - Mide la tasa el robot se está moviendo de izquierda a derecha o de derecha a izquierda.Cuanto más rápido el robot se mueve de lado a lado, cuanto mayor sea el valor de la derivada es. P-Factor (Kp) - es un valor constante utilizado para aumentar o disminuir el impacto de Proporcional I-Factor (Ki) - es un valor constante utilizado para aumentar o disminuir el impacto de la Integral D-Factor (Kd) - es un valor constante utilizado para aumentar o disminuir el impacto de la Derivada Mediante la combinación de los valores proporcionales, integrales y derivados, podemos controlar el movimiento de nuestro robot con mayor precisión que si usamos proporcional solo. El behavoir ideales está representada por la línea roja en la imagen a la derecha. Movimiento ondulado del robot se reduce al mínimo y el robot permanece más centrado sobre la línea de lo que hizo antes. El rendimiento global de PID con su robot dependerá del número y la precisión de los sensores utilizados y las capacidades del microcontrolador que está utilizando. Para este ejemplo, tenemos 5 sensores espaciados 0.6 "de separación y utilizarán un microcontrolador Atmel AVR. El microcontrolador debería como mínimo ser capaz de manejar las matemáticas entero pero flotando punto matemáticas es mejor. El compilador que utilizo es el Bascom-AVR que apoya punto flotante de matemáticas en todos los chips AVR que tienen memoria flash suficiente para mantener las rutinas. El Hardware Mi última línea siguiente robot utiliza 5 sensores de superficie reflectante GP2S40 IR espaciados 0.6 "de distancia para detectar un 0,75" línea blanca de ancho en una superficie de color negro. Los sensores se utilizan como entrada digital de 0 (sin línea) o 1 (línea). La separación permite que más de dos sensores para ver la línea, lo que aumenta la precisión de la matriz de sensores. Los valores de los sensores se leen y convierten en un valor binario para ayudar a visualizar la posición de la línea en virtud de los sensores. 00100 representa el robot centrado sobre la línea 10000 significa que el robot está a la derecha de la línea de 00001 significa que el robot está a la izquierda de la línea de A continuación se muestra la gama de valores. Le asignamos un valor numérico a cada uno. 00001 = 4 00011 = 3 00010 = 2 00110 = 1 00100 = 0 01100 = -1 01000 = -2 11000 = -3 10000 = -4 00000 = 5 o -5 dependiendo de los valores anteriores El rango de valores posibles para la posición medida es de -5 a 5. Vamos a medir la posición del robot sobre la línea varias veces al segundo y utilizar el valor para determinar Proporcional, Integral y valores derivados. PID Fórmula PID es una serie de cálculos matemáticos. Determinamos Proporcional, Integral y Derivativo luego añadirlos juntos para llegar a un valor que se utiliza para controlar el robot. Kp, Ki y Kd se utilizan para sintonizar el controlador PID (PID más en sintonía a continuación)
Proporcional Posición de destino menos la Posición = Diferencia Medido Veces de diferencia proporcional Kp = Integral Diferencia más integral = integral (tiendas Integral del valor Diferencia acumulada) Tiempos integrales Ki = Integral Derivado Menos Diferencia Anterior Diferencia = Tasa de Cambio Tasa de Cambio veces Kd = Derivada (esto a veces se divide por el intervalo o tiempo entre las mediciones) Proporcional más integral más derivativo = Valor de control se utiliza para ajustar el movimiento del robot Eso representa la matemáticas de PID, pero el verdadero secreto de su utilidad está en sintonizar el controlador PID para que coincida con las características físicas de su robot. Sintonización PID Una vez que tenga PID se ejecuta en el robot, probablemente se dará cuenta de que todavía no sigue la línea correctamente. Incluso puede realizar peor de lo que lo hizo con sólo proporcional! La razón detrás de esto es que usted no ha sintonizado la rutina PID todavía. PID requiere los factores Kp, Ki y Kd para ajustar para que coincida con las características de su robot y estos valores pueden variar considerablemente de un robot a robot. Desafortunadamente, no hay manera fácil de PID melodía.Requiere ensayo manual y error hasta que se obtiene el comportamiento deseado. Hay algunas pautas básicas que ayudarán a reducir el esfuerzo de sintonización. 1.
2. 3.
4.
Comience con Kp, Ki y Kd igualando 0 y trabajar con Kp primero. Pruebe a establecer Kp a un valor de 1 y observar el robot. El objetivo es conseguir que el robot siga la línea, incluso si es muy inestable. Si el robot y pierde rebasa la línea, reducir el valor de Kp. Si el robot no puede navegar por una vez, o parece lento, aumentar el valor de Kp. Una vez que el robot es capaz de seguir un poco la línea, asignar un valor de 1 a Kd (saltar Ki por el momento). Intente aumentar este valor hasta que vea menos bamboleo. Una vez que el robot es bastante estable en la línea siguiente, asignar un valor de 0,5 a 1,0 a Ki. Si el valor Ki es demasiado alto, el robot se sacudirá izquierda y derecha rápidamente. Si es demasiado baja, no se ve ninguna diferencia perceptible. Desde Integral es acumulativo, el valor Ki tiene un impacto significativo. Usted puede terminar de ajustar por incrementos de 0,01. Una vez que el robot está siguiendo la línea con una buena precisión, se puede aumentar la velocidad y ver si todavía es capaz de seguir la línea. Velocidad afecta al controlador PID y requerirá resintonizar como los cambios de velocidad. Código de ejemplo Haga clic aquí para descargar el Bascom-AVR código utilizado en los Arty 3, mi línea más reciente siguiente robot. Arty utiliza un par de micro servos digitales para articular el bastidor para dirigir el robot (curvas en el centro). Arty es capaz de seguir una línea en más de 1 metro / seg, incluso hasta el 6 de radio "se vuelve. Aquí hay un video de Arty funcionando a Chibotica 2007 a las iHobby Expo . Arty se llevó el primer lugar en las avanzadas y Carreras línea que sigue los concursos. Y aquí está un video wayback de mi primer seguidor de línea que no utilizó un microcontrolador
Nota: Esta discusión de PID está pensado para la robótica de la manía y la línea siguiente. No es un ejemplo perfecto de PID y se simplifica en algunos aspectos para que sea más f ácil de entender. Si usted está buscando para obtener información más detallada, realizar u na búsqueda en Google sobre "Controlador PID" para numerosas fuentes de información.