Cuando use un bucle PID para dirigir usando el seguimiento de línea, entonces su punto de ajuste siempre será el mismo. Siempre querrá que la línea esté en la misma posición con respecto al robot, por ejemplo, en el centro de su sensor.
Entonces, si su sensor de línea genera un valor de -1 a 1 con 0 como el centro del sensor, entonces querrá que su punto de ajuste sea cero (y la lectura del sensor y la diferencia serán las mismas). Si su sensor de línea genera un valor de 0 a 10, entonces querrá que su punto de ajuste sea 5 (y la lectura de su sensor y la diferencia serán diferentes).
Debido a que está dirigiendo las ruedas para que giren a diferentes velocidades, para seguir una línea suavemente a una velocidad constante, es probable que desee ajustar las velocidades de ambas ruedas según el error. Por ejemplo, si necesita girar a la izquierda para mantenerse en la línea, reducirá la velocidad de la rueda izquierda y acelerará la rueda derecha. Cuanto más necesite girar, más tendrá que reducir la velocidad de la rueda interior y más tendrá que acelerar la rueda exterior.
Considere la situación en la que necesita girar θ radianes a la izquierda para corregir errores mi y tu velocidad actual es S0 0:
Entonces su rueda izquierda necesita viajar a SL= r θ y su rueda derecha necesita viajar a SR= ( r + b ) θ.
Para mantener la misma velocidad general S0 0, necesitas S0 0= ( r + b / 2 ) θ, por lo que la rueda izquierda deberá desplazarse a SL=S0 0- ( b / 2 ) θ
mientras que la rueda derecha deberá viajar a SR=S0 0+ ( b / 2 ) θ.
A medida que su error tiende a cero, las velocidades de cada motor también tenderán hacia el otro. A medida que aumenta el error, también crecerán los diferenciales de velocidad.
Incluso es posible que necesite que su rueda interior gire hacia atrás si su sensor le dice que la línea se curva más apretada que la distancia entre sus ruedas. Sin embargo, estas son complicaciones que puede resolver paso a paso a medida que su control se vuelve más sofisticado.
Además, dado que su error tendrá valores positivos y negativos (para representar el continuo desde fuera de la escala a la izquierda ... demasiado a la izquierda ... en la línea ... demasiado a la derecha ... fuera de la escala, entonces debería nunca es necesario preguntar si if
el error es positivo o negativo, solo debe calcular nuevos valores basados en el valor del error, ya que un valor positivo y un valor negativo deben tener efectos opuestos y simétricos en los motores.
Tenga en cuenta que para el seguimiento de la línea, puede salirse con la suya solo con el término de ganancia proporcional (es decir, dejar los otros términos en cero). La implementación de un término derivado puede permitirle elevar el término de ganancia proporcional más alto para obtener un sistema más receptivo, pero es poco probable que un término integral ayude. El hecho de que si su robot va en la dirección equivocada, el error se agravará significa que sus movimientos físicos actuarán como un término integral de todos modos.
Los valores específicos de P, D y I estarán determinados por la capacidad de respuesta de su sistema. Para obtener consejos generales sobre el ajuste de los parámetros PID, consulte mi respuesta y otras sobre ¿Cuáles son las buenas estrategias para ajustar los bucles PID?