Master SIAME | Université Toulouse 3

Internet of things and System on Chip

Master SIAME | Université Toulouse 3

Internet of things and System on Chip

User Tools


Stabilisation

IMU

L'IMU (Inertial Measurement Unit) ou Centrale Inertielle en français est un périphérique permettant de se diriger dans l'espace. On distingue les IMU à la quantité de capteur qu'elles fournissent (ou degrés de mouvement). La notre est composée de 3 accéléromètres (mesure de l'accélération) ou de 3 gyromètres (mesure de la vitesse angulaire) disposés bien sûr en angle-droit.

Le principal objectif de l'IMU dans notre quadcopteur est de mesurer l'inclinaison de l'appareil afin de la stabiliser (et éviter une chute).

Comme ces mécanismes sont sujets à de nombreuses erreurs de mesure, il est intéressant de posséder plusieurs capteurs afin de les combiner et ques les erreurs des uns soient compensés par le travail des autres.

NB : les fameuses WiiMotes de la console du même noms sont principalement équipés d'IMU.

Stabilisation

Contrairement aux aéroplanes, les quadcopter doivent à tout moment gérer leur stabilité pour éviter un décrochage. Gérer la stabilité veut dire mesurer la position de l'appareil dans l'espace selon 3 angles (en prenant comme référentiel celui de l'appareil) :

  • le roulis est la rotation au tour de l'axe des x (roll en anglais),
  • le tangage autour de l'axe des y (pitch en anglais),
  • le lacet autour de l'axe des z (yaw en anglais).

Seulement le roulis et le tangage sont intéressants pour la stabilisation et ce sont ces deux angles que nous allons calculer pour stabilier l'appareil.

La méthode complémentaire

Gyromètre

Le gyromètre donne pour chaque la vitesse de rotation en ° par s. Si on maintient l'angle courant le long des axes, x, y et z, respectivement Ax, Ay et Az et, qu'à chaque intervalle de temps, on mesure la vitesse angulaire gx, gy, et gz, on peut déduire le nouvel angle par les formules :

  • Ax = Ax + gx dt
  • Ay = Ay + gy dt
  • Az = Az + gz dt

Accéléromètre

L'accéléromètre fournit l'accélération courante en g par s-2. Mais plus intéressant, il fournit un vecteur relatif donnant la différence d'angle entre la pesanteu g et sa propre accélération g On peut donc s'en servir également pour déterminer les angles Ax et Ay. Soit les accélérations ax, ay et az le long des axes x et y :

  • Ax = atan2(Ax, sqrt(Ay² + Az²))
  • Ay = atan2(Ay, sqrt(Ax² + Az²))

On ne peut bien sûr pas faire de même pour Az car les accélérations mesurées sont seulement relatives à g.

NOTE 1 On utilise atan2 pour ne pas avoir de souci avec une tangente verticale.

NOTE 2 Le résultat de atan2 est en radian.

Fusion de mesure

Le problème des deux méthodes précédentes est qu'elles sont sujettes à des erreurs de mesures ou des perturbations soit du gyromètre, soit de l'accéléromètre. La bonne nouvelle est que ces deux capteurs ne sont pas perturbés de la même manière. Par conséquent, l'un devrait permettre de corriger l'autre.

On peut donc désormais exhiber une nouvelle formule pour calculer Ax et Ay bénéficiant des ces constatations :

  • Ax = K (Ax + gx dt) + (1 - K) atan2(ay, az)
  • Ay = K (Ay + gy dt) + (1 - K) Ka atan2(ax, az)

tel que : 0 ⇐ K ⇐ 1. On choisit un filtre simple qui prend une partie du résultat au gyromètre et l'autre à l'accéléromètre.

Reste encore à déterminer le coefficient K. Expérimentalement, certains ont pu constater que ce système marchait bien avec A dans l'intervalle [0.90, 0.99].

NOTE Il faut bien sûr faire un choix pour savoir si on exprime Ax et Ay en degré ou en radian.

Référence