Table des matières:

Robot auto-équilibrant - Algorithme de contrôle PID : 3 étapes
Robot auto-équilibrant - Algorithme de contrôle PID : 3 étapes

Vidéo: Robot auto-équilibrant - Algorithme de contrôle PID : 3 étapes

Vidéo: Robot auto-équilibrant - Algorithme de contrôle PID : 3 étapes
Vidéo: Robotics Programming: PID Algorithm - Wall Following and Balancing 2024, Novembre
Anonim
Robot auto-équilibrant - Algorithme de contrôle PID
Robot auto-équilibrant - Algorithme de contrôle PID

Ce projet a été conçu parce que je souhaitais en savoir plus sur les algorithmes de contrôle et sur la manière d'implémenter efficacement des boucles PID fonctionnelles. Le projet est encore en phase de développement car un module Bluetooth n'a pas encore été ajouté qui permettra de contrôler le robot à partir d'un smartphone compatible Bluetooth.

Les moteurs à courant continu N20 utilisés étaient relativement bon marché et ont donc un jeu considérable. Cela conduit à une petite quantité de secousses lorsque les moteurs surmontent le « mou » en appliquant un couple aux roues. Par conséquent, il est presque impossible d'obtenir un mouvement parfaitement fluide. Le code que j'ai écrit est raisonnablement simple mais démontre efficacement les capacités de l'algorithme PID.

Résumé du projet:

Le châssis du robot est imprimé en 3D à l'aide d'une imprimante Ender 3 et est conçu pour s'emboîter à la presse.

Le robot est contrôlé par un Arduino Uno qui prend les données du capteur du MPU6050 et contrôle les moteurs à courant continu via un pilote de moteur externe. Il fonctionne avec une batterie de 7,4 V, 1500 mAh. Le pilote du moteur régule cela à 5 V pour alimenter l'Arduino et fournit 7,4 V aux moteurs.

Le logiciel a été écrit à partir de zéro à l'aide des bibliothèques 'Arduino-KalmanFilter-master' et 'Arduino-MPU6050-master' de gitHub.

Fournitures:

  • Pièces imprimées en 3D
  • Arduino UNO
  • Capteur 6 axes MPU6050
  • Pilote de moteur à courant continu
  • Moteurs à courant continu N20 (x2)
  • Batterie 9V

Étape 1: Construire un robot

Construction de robots
Construction de robots
Construction de robots
Construction de robots
Construction de robots
Construction de robots

Impression et assemblage

L'ensemble de la construction doit être ajusté à la presse, mais j'ai utilisé de la superglue pour fixer les composants afin de garantir que le robot est entièrement rigide lors de l'équilibrage.

J'ai conçu les pièces dans Fusion 360 et j'ai optimisé chaque pièce pour une impression sans support afin de permettre des tolérances plus strictes et une finition de surface plus propre.

Les paramètres utilisés sur l'imprimante Ender 3 étaient: 0,16 mm de hauteur de couche à 40 % de remplissage pour toutes les pièces.

Étape 2: Robot d'impression 3D

Robot d'impression 3D
Robot d'impression 3D

Châssis (x1)

Roue gauche (x2)

Carter moteur gauche (x2)

Boîtier Arduino (x1)

Étape 3: Algorithme de contrôle PID

Algorithme de contrôle PID
Algorithme de contrôle PID

J'ai écrit un algorithme de contrôle PID à partir de zéro en utilisant les bibliothèques 'Arduino-KalmanFilter-master' et 'Arduino-MPU6050-master' de gitHub.

Le principe de l'algorithme est le suivant:

  • Lire les données brutes du MPU6050
  • Utilisez le filtre de Kalman pour analyser les données du gyroscope et de l'accéléromètre afin d'annuler les inexactitudes dans les lectures du gyroscope dues à l'accélération du capteur. Cela renvoie une valeur relativement lissée pour le pas du capteur en degrés à deux décimales.
  • Calculer l'Erreur sur l'angle, c'est-à-dire: L'angle entre le capteur et la consigne.
  • Calculer l'erreur proportionnelle comme (Constante de proportionnalité x erreur).
  • Calculez l'erreur intégrale comme la somme cumulée de (Constante d'intégration x erreur).
  • Calculer l'erreur dérivée en tant que constante comme [(Constante de différenciation) x (Modification de l'erreur / Modification du temps)]
  • Additionner toutes les erreurs pour donner la sortie de vitesse à envoyer aux moteurs.
  • Calculez dans quelle direction faire tourner les moteurs en fonction du signe de l'angle d'erreur.
  • La boucle fonctionnera indéfiniment et s'appuiera sur la sortie au fur et à mesure que l'entrée varie. Il s'agit d'une boucle de rétroaction, utilisant les valeurs de sortie comme nouvelles valeurs d'entrée pour la prochaine itération.

La dernière étape consiste à régler les paramètres Kp, Ki et Kd de la boucle PID.

  1. Un bon point de départ est d'augmenter lentement Kp jusqu'à ce que le robot oscille autour du point d'équilibre et puisse attraper une chute.
  2. Ensuite, démarrez Kd à environ 1% de la valeur de Kp et augmentez lentement jusqu'à ce que les oscillations disparaissent et que le robot glisse en douceur lorsqu'il est poussé.
  3. Enfin, commencez par Ki autour de 20% de Kp et variez jusqu'à ce que le robot "dépasse" la consigne pour rattraper activement une chute et revenir à la verticale.

Conseillé: