Cómo enseñar control PID a equipos de robótica de secundaria sin recurrir al cálculo

No hacen falta ecuaciones diferenciales para enseñar el control PID; basta con tres ideas intuitivas: a qué distancia estás del objetivo, cuánto tiempo llevas sin alcanzarlo y a qué velocidad te aproximas a él.
No hace falta saber cálculo infinitesimal para enseñar el control PID a estudiantes de secundaria y bachillerato. Un controlador PID es simplemente una fórmula que decide con qué fuerza debe empujar un motor a partir de tres preguntas intuitivas: ¿a qué distancia estamos ahora mismo del objetivo? ¿Cuánto tiempo llevamos atascados fuera de él? ¿Y a qué velocidad nos estamos acercando?
Cuando los equipos de FIRST Tech Challenge (FTC) o los alumnos de robótica de secundaria se topan con el control PID en la documentación, a menudo se encuentran con símbolos de integrales y derivadas que asustan a cualquiera que no haya cursado matemáticas avanzadas de bachillerato. En la práctica, el código que se ejecuta en un robot no resuelve ecuaciones diferenciales continuas: realiza operaciones aritméticas básicas una vez cada pocos milisegundos. En cuanto los alumnos comprenden la función física de la P, la I y la D, son capaces de escribir, ajustar y depurar bucles de control con total fiabilidad.
La idea fundamental: el error
Todo bucle de control existe para minimizar un único número: el error.
El error es simplemente Target - Current Position (Objetivo - Posición actual). Si el brazo de un robot está a 20 grados y necesita colocarse a 90 grados, el error es +70. Si un volante de inercia necesita girar a 2000 rpm pero gira a 2100 rpm, el error es -100. Cada término del PID toma este valor de error y lo convierte en potencia para el motor.
1. Proporcional (P): el presente
El término proporcional actúa como una simple goma elástica: cuanto más lejos estés de tu objetivo, con más fuerza tira.
Si conduces un coche y te desvías cinco metros a la izquierda del centro de tu carril, haces una corrección amplia hacia la derecha. Si solo te desvías dos centímetros, haces un movimiento mínimo. En el código, matemáticamente, esto es simplemente kP * error.
Dónde falla la P por sí sola:
- Sobreimpulso y oscilación (overshoot): Si
kPes demasiado alto, el robot acelera con tanta agresividad hacia el objetivo que la inercia lo hace sobrepasarlo. Acto seguido, tira con fuerza en sentido contrario, vuelve a pasarse y oscila violentamente. - Error de estado estacionario: Si
kPes demasiado bajo, la potencia del motor se reduce tanto a medida que disminuye el error que no puede vencer la fricción física o la gravedad. Un mecanismo elevador que suba una pinza de 500 gramos simplemente se detendrá unos centímetros por debajo del objetivo, porque la potencia del motor se igualará a la fuerza de la gravedad y se quedará calado ahí.
2. Derivativo (D): el futuro (los frenos)
El término derivativo analiza a qué velocidad cambia el error de un ciclo del bucle al siguiente. Su función es actuar como un amortiguador o un freno.
Imagina que estás aparcando un coche en un garaje. Si la pared está a diez metros, pisas el acelerador. Pero si ves que la pared se acerca rápidamente, no esperas a que el parachoques esté a un centímetro del muro para pisar el freno: frenas en función de tu velocidad de aproximación.
En el código, derivative = (current_error - previous_error) / time_elapsed. Cuando el robot se desplaza a gran velocidad hacia su objetivo, el error disminuye rápidamente, lo que hace que el término derivativo sea negativo y reste potencia al motor antes de que se pase de largo. La D amortigua las oscilaciones y permite utilizar una ganancia P más alta sin que el robot empiece a temblar.
3. Integral (I): el pasado (la memoria)
El término integral acumula el error persistente a lo largo del tiempo. Si un robot se queda ligeramente desviado de su objetivo durante varios segundos, la suma integral va aumentando hasta aportar a los motores el empuje adicional necesario para superar la fricción o la gravedad.
Imagina empujar un carro cuesta arriba. Empujas (P), pero la gravedad te frena justo antes de coronar la pendiente. Si te quedas ahí cinco segundos sin poder llegar arriba, el término integral dice básicamente: «Llevamos demasiado tiempo atascados aquí; añade más potencia hasta que superemos la cresta».
La trampa: el término integral es peligroso si no se gestiona adecuadamente. Si un brazo se bloquea físicamente, la suma integral se disparará hacia el infinito (un fenómeno conocido como «integral windup» o saturación de la integral). Cuando el bloqueo se libere, el motor golpeará con violencia contra los topes mecánicos. En FTC y robótica escolar, la integral debería acotarse con un límite en el acumulador o utilizarse únicamente dentro de un margen de error muy estrecho.
Una rutina de ajuste en 4 pasos para el taller
No intentes adivinar los tres valores a la vez. Haz que tus alumnos sigan una secuencia de ajuste sistemática y con la batería totalmente cargada (las variaciones de tensión alteran la respuesta de los motores):
| Paso | Acción | Comportamiento esperado | Indicios de error |
|---|---|---|---|
| 1. Poner todas las ganancias a 0 | kP = 0, kI = 0, kD = 0 | Los motores no hacen nada. | — |
| 2. Aumentar kP | Incrementa kP gradualmente hasta que el mecanismo alcance el objetivo con rapidez. | Alcanza el objetivo con un rebote u oscilación leve y constante alrededor del punto de consigna (setpoint). | Si tiembla con violencia, kP está demasiado alto; si no llega a moverse, está demasiado bajo. |
| 3. Añadir kD | Aumenta kD poco a poco hasta eliminar el rebote. | El mecanismo se posiciona con rapidez y se detiene en seco sin oscilar. | Un zumbido o traqueteo de alta frecuencia indica que kD está demasiado alto (amplifica el ruido del sensor). |
| 4. Añadir kI (solo si es necesario) | Añade un valor muy pequeño de kI si el mecanismo se detiene a 1-2 mm del objetivo por rozamiento. | El error residual en estado estacionario se reduce a cero. | Una oscilación lenta y ondulante indica que kI está demasiado alto. |
Errores comunes en la robótica escolar
- Ruido en los sensores: Los encoders ópticos de las transmisiones de FTC suelen ser fiables, pero las holguras mecánicas confundirán al término derivativo. Si la caja reductora tiene juego, la D reaccionará a esa holgura en lugar de al movimiento real.
- Variabilidad del tiempo de ciclo (loop time): Si el código del equipo procesa visión artificial en segundo plano dentro de un único hilo, el tiempo de ciclo puede oscilar de forma impredecible entre 10 ms y 80 ms, arruinando los cálculos habituales del PID. Mantén los bucles de control aislados y ligeros.
- Volantes de inercia frente a brazos robóticos: El control de velocidad (en lanzadores con flywheel) se comporta de forma distinta al control de posición (en brazos). Los bucles de velocidad rara vez necesitan el término D, ya que la inercia del sistema actúa como un filtro de paso bajo; su rendimiento óptimo se logra con un término de prealimentación o feedforward base (kV) junto con una P y una I moderadas.
Para los equipos que compiten a nivel regional, dominar el control en bucle cerrado es lo que marca la diferencia entre mecanismos erráticos y rutinas autónomas que puntúan de forma consistente en cada partida. Si tu equipo se está preparando para los torneos locales y busca orientación técnica estructurada sobre cinemática del chasis e integración de sensores, descubre nuestros programas de robótica FTC para acceder a marcos prácticos de entrenamiento.



