Étape 2: Phisics
La physique pour ce robot est simple, le stand de robot en deux points alignés, la roue et j’ai tendance à tomber et à perdre de sa verticalité, le mouvement de la roue dans le sens de la chute s’élève le robot pour récupérer la position verticale.
Un véhicule de type Segway est un problème de contrôle classique pendule inversé qui est résoluble en deux degrés de liberté pour les modèles plus simples. Le véhicule cherche à corriger pour un angle d’inclinaison induit par le déplacement vers l’avant ou vers l’arrière, et le but est de se retourner verticalement. Et au moins pas de se renverser.
Pour cet objectif, que nous avons deux choses à faire, il faut mesurer l’angle d’inclinaison (Roll) qui ont le véhicule dans une main, et en revanche nous avons pour commander les moteurs pour aller de l’avant ou vers l’arrière pour faire cet angle 0, conservant sa verticalité.
Mesure d’angle :
Pour mesurer l’angle que nous avons deux capteurs, accéléromètre et gyroscope, ont tous deux ses avantages et ses inconvénients. L’accéléromètre permet de mesurer la force de la gravité, et que nous pouvons obtenir l’angle du robot de l’information, le problème de l’accéléromètre est qu’il peut également mesurer le reste des forces, le véhicule est someted, donc il a beaucoup d’erreur et le bruit. Le gyroscope mesurer la vitesse angulaire, donc si nous intégrons cette mesure, nous pouvons obtenir l’angle, le robot est déplacé, le problème de cette mesure est ce n’est pas parfait et l’intégration a une déviation, ce qui signifie qu’en peu de temps la mesure est si bonne, mais pour longtemps les modalités de temps l’angle déviera beaucoup forment l’angle réel.
Ces problèmes peuvent être résolus en être la combinaison de deux capteurs, c’est la fusion des capteurs appelé, et il y a beaucoup de méthodes pour combiner. Dans ce projet, j’ai essayer deux d'entre eux : filtre de Kalman et filtre complémentaire.
- Le filtre de Kalman est un algorithme très étendu en robotique et offre un bon résultat avec le faible coût de calcul. Il y a une bibliothèque pour arduino qui implémente cette méthode, mais si vous voulez en savoir plus sur cette méthode ou de mettre en œuvre par vous-même Regardez cette page.
- Le filtre complémentaire est une combinaison de deux ou plusieurs filtres qui combine les informations provenant de différentes sources et obtient la meilleure valeur que vous voulez. Il peut se n'appliquer qu’une seule ligne de code. Pour plus d’informations, visitez cette page.
angle = A * (angle + gyro * dt) + (1 - A) * accel ;
où A est normalement égale à 0,98.
Tout d’abord j’ai essayé d’utiliser le filtre de Kalman, mais je ne pas obtenir de bons résultats, mon angle a été calculé avec un peu de retard et il affecte le contrôle. Le filtre de Kalman a trois variables, que vous pouvez changer selon le paramètre de votre capteur et variant ce que vous pouvez obtenir de meilleur résultat, j’ai essayé de modifier cette valeur, mais je n’obtiens pas meilleurs résultats donc j’ai décidé de mettre en place le filtre complémentaire, tellement plus facile et il ai moins coût de calcul. Le filtre complémentaire fonctionne très bien pour moi.