Tabla de contenido:

Robot de equilibrio automático - Algoritmo de control PID: 3 pasos
Robot de equilibrio automático - Algoritmo de control PID: 3 pasos

Video: Robot de equilibrio automático - Algoritmo de control PID: 3 pasos

Video: Robot de equilibrio automático - Algoritmo de control PID: 3 pasos
Video: ✅ Mira la Construcción del Robot Balancín - Péndulo Invertido con control PID 2024, Diciembre
Anonim
Robot de equilibrio automático - Algoritmo de control PID
Robot de equilibrio automático - Algoritmo de control PID

Este proyecto fue concebido porque estaba interesado en aprender más sobre los algoritmos de control y cómo implementar de manera efectiva lazos PID funcionales. El proyecto aún se encuentra en la fase de desarrollo, ya que aún no se ha agregado un módulo Bluetooth que permitirá el control del robot desde un teléfono inteligente habilitado para Bluetooth.

Los motores de CC N20 utilizados eran relativamente baratos y, por lo tanto, tienen una cantidad considerable de juego en ellos. Esto conduce a una pequeña cantidad de sacudidas cuando los motores superan la 'holgura' al aplicar torque a las ruedas. Por lo tanto, es casi imposible lograr un movimiento perfectamente suave. El código que he escrito es razonablemente simple pero demuestra efectivamente las capacidades del algoritmo PID.

Resumen del proyecto:

El chasis del robot se imprime en 3D con una impresora Ender 3 y está diseñado para encajar a presión.

El robot está controlado por un Arduino Uno que toma los datos del sensor del MPU6050 y controla los motores de CC a través de un controlador de motor externo. Funciona con una batería de 7.4V, 1500mAh. El controlador del motor lo regula a 5 V para alimentar el Arduino y suministra 7,4 V a los motores.

El software se escribió desde cero con la ayuda de las bibliotecas 'Arduino-KalmanFilter-master' y 'Arduino-MPU6050-master' de gitHub.

Suministros:

  • Piezas impresas en 3D
  • Arduino UNO
  • Sensor MPU6050 de 6 ejes
  • Controlador de motor D. C
  • Motores N20 D. C (x2)
  • Batería de 9V

Paso 1: construcción del robot

Construcción de robot
Construcción de robot
Construcción de robot
Construcción de robot
Construcción de robot
Construcción de robot

Impresión y montaje

Toda la construcción debe ajustarse a presión, pero he usado superglue para asegurar los componentes para asegurar que el robot esté completamente rígido al equilibrar.

Diseñé las piezas en Fusion 360 y optimicé cada pieza para imprimir sin soportes para permitir tolerancias más estrictas y un acabado de superficie más limpio.

Los ajustes utilizados en la impresora Ender 3 fueron: alturas de capa de 0,16 mm con un relleno del 40% para todas las piezas.

Paso 2: Robot de impresión 3D

Robot de impresión 3D
Robot de impresión 3D

Chasis (x1)

Rueda izquierda (x2)

Carcasa del motor izquierdo (x2)

Estuche Arduino (x1)

Paso 3: Algoritmo de control PID

Algoritmo de control PID
Algoritmo de control PID

He escrito un algoritmo de control PID desde cero utilizando las bibliotecas 'Arduino-KalmanFilter-master' y 'Arduino-MPU6050-master' de gitHub.

La premisa del algoritmo es la siguiente:

  • Leer datos sin procesar de MPU6050
  • Utilice el filtro de Kalman para analizar los datos del giroscopio y del acelerómetro para cancelar las imprecisiones en las lecturas del giroscopio debido a la aceleración del sensor. Esto devuelve un valor relativamente suavizado para el paso del sensor en grados con dos decimales.
  • Calcule el error en el ángulo, es decir: el ángulo entre el sensor y el punto de ajuste.
  • Calcule el error proporcional como (constante de proporcionalidad x error).
  • Calcule el error integral como la suma acumulada de (constante de integración x error).
  • Calcule el error de la derivada como constante como [(Constante de diferenciación) x (Cambio en el error / Cambio en el tiempo)]
  • Sume todos los errores para obtener la salida de velocidad que se enviará a los motores.
  • Calcule en qué dirección girar los motores según el signo del ángulo de error.
  • El ciclo se ejecutará indefinidamente y se basará en la salida a medida que varíe la entrada. Es un ciclo de retroalimentación, que usa los valores de salida como los nuevos valores de entrada para la siguiente iteración.

El paso final es ajustar los parámetros Kp, Ki y Kd del lazo PID.

  1. Un buen punto de partida es aumentar lentamente Kp hasta que el robot oscile alrededor del punto de equilibrio y pueda atrapar una caída.
  2. A continuación, inicie Kd en alrededor del 1% del valor de Kp y aumente lentamente hasta que las oscilaciones desaparezcan y el robot se deslice suavemente cuando lo empuje.
  3. Finalmente, comience con Ki alrededor del 20% de Kp y varíe hasta que el robot "sobrepase" el punto de ajuste para atrapar activamente una caída y regresar a la vertical.

Recomendado: