Traitement de la centrale inertielle

D'après Kalman Filter for Beginners : with MATLAB Examples, Phil Kim and Lynn Huh

Afin de connaitre la position de notre drone, il nous faut récupérer et traiter les valeurs de la centrale inertielle. Comme pour tout capteur, afin d’éviter le bruit et diminuer les erreurs, il était important de filtrer ces valeurs. C’est pourquoi nous avons utilisé le filtre de Kalman.

Filtre de Kalman

Le premier filtre de Kalman a été utilisé pour l’aérospatial lors des missions Apollo. Effectivement s'il existe un domaine où la connaissance exacte de la position et de l'état d'un objet est importante, c'est bien l'aérospatial.

Il serait difficile d'avoir un système de navigation sans un filtre de Kalman. En effet lorsqu'on désire suivre une cible, des données sur sa position, sa vitesse et son accélération sont mesurées à chaque instant mais avec énormément de perturbations dues au bruit ou aux erreurs de mesure. Le filtre de Kalman utilise la dynamique de la cible pour définir son évolution dans le temps et ainsi obtenir de meilleures données, en éliminant le bruit.

On peut définir ce filtre comme un estimateur récursif, car la prédiction de l'état suivant se base sur l'état précédent et les mesures actuelles.
On peut donc découper ce filtre en 2 phases: la prédiction et la mise à jour. La phase de prédiction utilise l'état estimé précédemment afin d'estimer l'état courant. La phase de mise à jour se base sur l'état courant pour corriger l'état prédit.

AHRS : Attitude Heading Reference System

AHRS se traduit en français par système d’attitude et de cap. Il s’agit d’un système conçu pour obtenir l’orientation en 3D de l’objet, utilisant des gyroscopes et des capteurs de référence comme les accéléromètres et/ou magnétomètres.

Nous allons donc présenter comment avoir un drone positionné à l'horizontal à l'aide de notre centrale inertielle 6 axes(gyroscopes, accéléromètres).

Ces capteurs vont nous donner respcetivement des vitesses angulaires et des accélérations selon 3 axes (x, y, z). Si nous prenons notre drone, il suffit de connaitre les 3 angles (roulis, tangage et lacet) pour le positionner précisément. C'est donc ce que nous obtenir pour définir l'horizontalité de notre quadricoptère. Etant donné que nous recherchons à le positionner horizontalement, nous ne tiendrons pas compte du 3ème angle : le lacet (selon z).

Déterminiation à partir des gyros

Tout gyroscope, même de très bonne qualité, possède ce qu'on appelle le biais gyroscopique, c'est-à-dire l'erreur ou plutôt la valeur obtenue alors que le système est dans un état initial donc immobile. Cette erreur peut être due à une mauvaise calibration ou des variations de température et de pression. Ainsi à l'intégration pour obtenir les angles, nous allons intégrer cette erreur. A cela vont s'accumuler des erreurs dues à l'intégration.
Cela va donc entrainer une dérive des valeurs au cours du temps.

Si on observe les mesures ci-dessous, on remarque que pendant la manoeuvre sur le roulis, le tangage augmente. Cela est du à l'accumulation des erreurs liées aux actions sur le roulis.
Gyroscope X Gyroscope Y

On constate qu'un gyroscope est très précis sur une courte période mais très peu sur une longue période.

Détermination à partir des accéléromètres.

Étant donné que les gyroscopes ne permettent pas une solution fiable, on peut donc se tourner vers nos autres capteurs, les accéléromètre.

Si on décompose les accélérations mesurées, on retrouve différentes accélérations comme l'accélération gravitationnelle par exemple. Mais la double intégration pour obtenir les angles n'est pas possible car il y a trop de paramètres. Mais on peut simplifier cette équation en supputant des hypothèses sur les conditions initiales. Si on suppose que notre système est initialement stationnaire et se déplace à vitesse constante, on peut donc affirmer que l'accélération linéaire est nulle et la vitesse initiale aussi.

Ainsi on obtient une expression simplifiée nous permettant d'intégrer 2 fois de suite et d'obtenir les angles désirés.

Ax,Ay : accélérations selon x et y
θ : angle de roulis
φ : angle de tangage

Les graphes ci-dessous montrent les valeurs des angles obtenues à partir des accéléromètres. On voit qu'il n'y a pas d'accumulation d'erreurs mais que la valeur maximale tourne autour de 9° alors que la centrale est inclinée de 30°. La différence étant trop importante, on ne peut pas utiliser les accéléromètres seuls.

Accéléromètre X Accéléromètre Y

Détermination en fusionnant les capteurs.

On a remarqué que séparément, ces capteurs n'étaient pas efficaces pour positionner le drone. Mais si on pouvait associer les avantages de chacun, on pourrait obtenir quelque chose d'intéressant. A court terme, le gyroscope est très sensible au changement et précis, de l'autre côté, l'accéléromètre est meilleur sur le long terme. C'est ce qu'on appelle la fusion de capteurs. Elle permet d'obtenir de meilleures valeurs provenant de différents capteurs en corrigeant les d

Pour compenser les accélérations passagères, les perturbations et les vibrations magnétiques, nous allons utiliser le filtre de Kalman.
Le schéma suivant montre comment nous allons combiner nos mesures. L'attitude obtenue par les accéléromètres deviendra la mesure nécessaire au filtre de Kalman. Ainsi l'erreur des gyroscopes sera corrigé par les accéléromètres dès que les mesures des gyroscopes divergeront.

La difficulté supplémentaire vient du fait qu'on ne peut pas appliquer le filtre de Kalman sur ces mesures. Nous devons donc transformer les angles d'Euler à l'aide de matrices de quaternions. Suite à ces changements nous pourrons appliquer le filtre. Nous passerons sur les différents calculs, il suffit de se reporter à la documentation nous ayant servi de référence.

Sensor X Sensor Y

Au final, cette fusion aura permis d'éliminer les inconvénients de chaque type de capteur.

Correction supplémentaire.

Dans l'idée d'un vol autonome, on pourra apporter une correction supplémentaire à l'aide de la boussole et de ses magnétomètres. Ainsi à l'aide du champ magnétique terrestre nous pourrons corriger les dérives restantes.

Dernière mise à jour : 27/03/2013 11h35
Auteur : Pierre GUINAULT

accel2.jpg - Accéléromètre X (31.3 KB) Pierre Guinault, 03/26/2013 10:41 PM

accel3.jpg - Accéléromètre Y (29.8 KB) Pierre Guinault, 03/26/2013 10:41 PM

gyro2.jpg - Gyroscope X (27.6 KB) Pierre Guinault, 03/26/2013 10:42 PM

gyro3.jpg - Gyroscope Y (23.8 KB) Pierre Guinault, 03/26/2013 10:42 PM

sensor1.png - Sensor X (93.7 KB) Pierre Guinault, 03/26/2013 10:42 PM

sensor2.png - Sensor Y (106 KB) Pierre Guinault, 03/26/2013 10:46 PM

kalman.PNG (47.9 KB) Pierre Guinault, 03/27/2013 10:42 AM

accel_ahrs.PNG (2.35 KB) Pierre Guinault, 03/27/2013 10:44 AM

ahrs.PNG (7.83 KB) Pierre Guinault, 03/27/2013 10:55 AM