Robot Segway Auto-Équilibré
Conception mécanique, électronique et algorithmique d'un robot pendule inversé auto-équilibré à deux roues coaxiales motorisées.
1. Présentation & Objectifs du Projet
Un robot pendule inversé à deux roues est un système physiquement instable et sous-actionné. Sans asservissement actif, toute déviation par rapport à la verticale entraîne immédiatement le basculement et la chute du robot.
L'objectif de ce projet est de concevoir un prototype fonctionnel capable de mesurer son angle d'inclinaison en temps réel, de filtrer le bruit des capteurs via un Filtre de Kalman 1D tournant à 200 Hz, et de commander la vitesse des moteurs à l'aide d'un régulateur PID afin de maintenir le robot en équilibre parfait autour de son point d'équilibre dynamique.
2. Démonstrations & Visualisations
Auto-équilibrage actif & stabilisation dynamique en position debout.
Télémétrie & Comparaison : Angle Brut vs Angle Filtré Kalman
Le graphique de télémétrie ci-dessus illustre la mesure brute provenant de l'accéléromètre MPU6050 (fortement bruitée en bleu) et la courbe estimée par le Filtre de Kalman 1D (courbe lissée en orange). Le filtre élimine l'intégralité des vibrations sans introduire le moindre retard de phase dommageable.
3. Outils & Technologies Utilisés
4. Compétences Mobilisées
- Fusion de données capteurs à haute fréquence (Accéléromètre + Gyroscope).
- Synthèse et réglage d'un régulateur PID appliqué à un système dynamique instable.
- Programmation temps réel avec cadencement stricte des boucles d'asservissement.
- Sécurité matérielle : détection de chute et coupure d'urgence des actionneurs.
5. Étude Technique & Algorithmique
Équations du Filtre de Kalman 1D
Le code source prédit l'angle avec le gyroscope, puis le recale à l'aide de l'angle mesuré par l'accéléromètre :
Algorithme d'Asservissement & Offset Physique
En raison de l'asymétrie de la répartition des masses, l'angle d'équilibre a été réglé expérimentalement à \(\theta_{\mathrm{ref}}=7{,}73^{\circ}\).
Le correcteur utilise la vitesse gyroscopique filtrée pour le terme dérivé et limite la commande PWM :
L'échantillonnage nominal est \(200\,\mathrm{Hz}\), soit \(\Delta t\approx5\,\mathrm{ms}\). L'intégrale est bornée pour éviter son emballement lorsque la commande sature ; la coupure de sécurité intervient au-delà de \(45^{\circ}\).
Consulter le code source Arduino