Étape 5: capteurs. Supplémentaire
En prime, je vais vous expliquer le capteur que j’ai utilisé et comment je l’ai utilisé pour obtenir un bon résultat. D’une part, la fusion des capteurs entre le gyroscope et l’accéléromètre est très utile pour contrôler l’horizontalité de la quadcopter, et d’autre part, l’altitude de le quadcopter est également une bonnes données à obtenir et est mesurée par le capteur de pression et le capteur de température.
Fusion des capteurs
Afin de maintenir l’horizontalité de l’appareil, nous utilisons deux angles, de tangage et de roulis. Ces deux angles sont mesurés à l’aide de deux capteurs : accéléromètre et gyroscope. Les deux ont leurs avantages et leurs inconvénients. L’accéléromètre permet de mesurer la force de la gravité, et avec cette information, nous pouvons obtenir l’angle de l’appareil. Le problème de l’accéléromètre, c’est qu’il peut également mesurer le reste des forces de que l’appareil est exposé à, donc il fait beaucoup d’erreurs et le bruit. Le gyromètre mesure la vitesse angulaire, donc si nous intégrons ces données, nous pouvons obtenir combien l’angle est déplacé. Le problème de cette mesure est c’est pas parfait et de l’intégration a une déviation. Cela signifie que dans un court laps de temps, la mesure est très bonne, mais pour des portées plus longues l’angle mesure déviera beaucoup de l’angle réel.
Combinant les deux capteurs peut résoudre ces problèmes. C’est la fusion des capteurs appelés, et il y a beaucoup de méthodes pour les combiner. Dans ce projet, j’ai essayé deux d'entre eux : le filtre de Kalman et le 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 d’un Arduino bibliothèque 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 relient les informations provenant de différentes sources et obtient une estimation de la valeur réelle. 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 un filtre de Kalman, mais je n’a pas obtenu de bons résultats. L’angle a été calculé avec un peu de retard, et affecté au contrôle. Le Kalman filter a trois variables que vous pouvez modifier selon les paramètres de vos capteurs et en faisant cela, vous pouvez obtenir de meilleurs résultats. J’ai essayé de changer les valeurs, mais je n’ai pas les meilleurs résultats, alors j’ai décidé d’appliquer le filtre complémentaire. C’est arrivé à être beaucoup plus facile et a un moindre coût de calcul. Le filtre complémentaire a bien fonctionné pour moi.
Hauteur du niveau de la mer
Afin de contrôler la position de notre quadcopter, nous avons besoin de connaître l’altitude. Cela peut être mesuré par la combinaison d’un capteur de pression et un capteur de température. Il peut être obtenu uniquement à partir des données de pression, à l’aide de l’équation suivante :
H = 44330 (1 - (Pressure_measured / 101325) ^ (1 / 5.25588))
J’ai obtenu la forme de l’équation de la feuille de données du capteur, j’ai utilisé (BMP085) cette équation repose sur la Formule barométrique en utilisant les données de l’atmosphère standard qui signifie qui n’est pas vrai dans tous les cas, mais pour des applications non précis est suffisant. Pour des applications plus précises, nous avons besoin d’utiliser la température et pression, en utilisant la formule suivante :
H = (((101325 / P) ^ (1 / 5.257) - 1) * (T + 273.15)) / 0,0065 MRAD
Je ne sais pas si cette formule est correcte, mais elle semble fonctionner. Il y a une page où vous pouvez calculer l’altitude fournissant la pression au niveau de la mer et de la pression et la température au point que vous voulez calculer l’altitude.
Remarque : Dans ce deux formules l’altitude est calculée par rapport au niveau de la mer, donc si vous voulez obtenir l’altitude par rapport à la terre vous devez mesurer tout d’abord l’altitude au niveau du sol et il en soustraire les mesures ultérieures.