Accéléromètres et gyroscopes: fantasmes vs. réalité

Accéléromètres et gyroscopes: fantasmes vs. réalité

La généralisation des contrôleurs de jeu et des outils de réalité augmentée basés sur des accéléromètres et gyroscopes suscite de nombreuses idées d'applications. Or, certaines de ces applications tiennent plus du fantasme que de la réalité, en raison de principes physiques de base que l'enthousiasme fait parfois oublier. Voici donc un petit rappel pour vous éviter de cruelles déconvenues...


Qu'est-ce qu'un capteur inertiel ?


Un capteur inertiel, tel que le Yocto-3D-V2, comprend un accéléromètre 3D, un gyroscope 3D et une boussole 3D.

  • L'accéléromètre 3D permet de mesurer la direction et l'amplitude de l'accélération subie par le capteur.
  • Le gyroscope 3D permet de mesurer la vitesse angulaire du capteur et l'orientation de l'axe de rotation.
  • La boussole 3D permet de mesurer l'orientation du champ magnétique extérieur par rapport au module.

En combinant ces mesures, on obtient un AHRS: un système capable d'estimer en temps réel son orientation dans l'espace. De manière simplifiée, il fonctionne de la manière suivante:

  1. A l'arrêt, l'inclinaison est mesurée à l'aide de l'accéléromètre, en se fiant à la direction de l'accélération gravitationnelle mesurée par le capteur.
  2. Connaissant l'inclinaison, on calcule la projection du champ magnétique sur le plan horizontal et on en déduit l'orientation par rapport au nord magnétique.
  3. En mouvement, on intègre la vitesse angulaire mesurées par le gyroscope pour mettre à jour l'estimation d'orientation.

La combinaison des capteurs est en réalité effectuée à l'aide d'outils mathématiques relativement sophistiqués, mais le principe est là. Ces calculs sont d'ailleurs effectués directement par le Yocto-3D-V2, qui fournit une estimation d'orientation prête à l'emploi. Et cela, ça marche plutôt bien. Ce type de capteur permet de stabiliser un drône, ou de détecter des mouvements brusques dans une manette de jeu.

La tentation est donc grande d'étendre le principe pour obtenir encore plus d'informations, soit une description complète du mouvement dans l'espace décrit par le capteur. Puisque l'on connaît l'orientation du capteur et l'accélération qu'il subit, il serait théoriquement possible d'estimer par intégration sa vitesse, et de là sa position. C'est le principe d'une centrale à inertie, utilisée en aéronautique par exemple. Alors pourquoi ne pas essayer ? Comme nous allons le voir, on ne peut malheureusement pas faire une centrale à inertie sur la base d'un capteur à 50 EUR.

Erreurs d'intégration et intégration d'erreurs


Le premier problème à constater dans une centrale à inertie est que les données sont obtenues par intégration, c'est-à-dire par sommes successives. Or les mesures ne peuvent pas être prises réellement en continu, donc les sommes introduiront nécessairement des petites erreurs. Ainsi, même avec une mesure parfaitement exacte de l'accélération, on se retrouverait avec une estimation de la vitesse qui dérive petit à petit, en fonction des erreurs accumulées. La position est obtenue en intégrant la vitesse, y compris son erreur d'intégration. Donc l'erreur de position sera quadratique par rapport aux approximations initiales.

On peut facilement vérifier cela sur une simulation numérique, en calculant les valeurs théoriques que retournerait un capteur inertiel idéal pour un objet qui se ferait quelques tours d'hippodrome, en s'arrêtant entre chaque tour au point de départ. On intègre l'accélération et la vitesse, et on trace la trajectoire déduite des mesures théoriques. Voici les valeurs d'accélération simulées, et la vitesse calculée par intégration:

Accélération X et Y sur un tour Vitesse X et Y intégrées sur un tour


Et voilà la trajectoire que l'on obtient:

Simulation d'intégration numérique telle que le ferait une centrale inertielle
Simulation d'intégration numérique telle que le ferait une centrale inertielle


Le petit décrochement entre les ovales correspond au moment où l'objet est à l'arrêt entre chaque tour. Comme la centrale inertielle a cumulé de minuscules petites erreurs sur la vitesse, elle ne sait pas que l'objet est à l'arrêt et estime donc qu'il est en train de dériver.

C'est pourquoi même avec une centrale inertielle d'avion valant des dizaines de milliers de francs, basée sur des accéléromètres précis à quelques millionièmes de g et une estimation d'angle précise au centième de degré, un avion de ligne naviguant sans autre aide à plat pendant 5h se retrouverait à plusieurs centaines de kilomètres de l'endroit prévu...

Erreurs de mesure


Si on transpose le même principe mais en utilisant un petit capteur inertiel MEMS comme le Yocto-3D-V2, les choses se gâtent encore un peu: la précision des mesures est loin d'une mesure idéale, et la fréquence des mesures d'accélération plus faible.

Pour démontrer la différence, nous avons fait une petite expérience. Nous avons installé dans une voiture un Yocto-GPS et un Yocto-3D-V2. Puis nous avons fait un court trajet en aller-retour, passant par deux giratoires, pour voir si nous arrivions à reconstituer la trajectoire avec notre capteur inertiel MEMS.

Voici les mesures que l'on obtient avec un Yocto-3D-V2 lorsqu'on passe avec une voiture à environ 30 Km/h dans un giratoire:

Mesures retournées par un Yocto-3D-V2 pour une voiture dans un giratoire
Mesures retournées par un Yocto-3D-V2 pour une voiture dans un giratoire


L'accélération perpendiculaire au mouvement, en vert clair, est celle qui provoque le mouvement circulaire. Les valeurs positives correspondent à la légère courbe vers la droite à l'entrée dans le giratoire, les valeurs négatives la longue rotation vers la gauche puis à nouveau des valeurs positives pour la légère courbe vers la droite à la sortie du giratoire. Mais on y voit aussi un bruit parasite, partiellement causé par le capteur et partiellement par les vibrations dans la voiture, de l'ordre de +/-50 millièmes de g. Ce bruit altère nos mesures, et va donc insérer dans le calcul des erreurs supplémentaires, qui vont elles aussi être amplifiée par la double-intégration. A tel point que l'intégration des données brutes est complètement inexploitable.

Réduction des erreurs


Comment se fait-il donc qu'il est possible de faire une estimation d'orientation en intégrant un capteur gyroscopique bon marché, mais pas une bonne estimation de vitesse en intégrant un accéléromètre ? Le secret de la réussite est de disposer d'une méthode pour réduire constamment les erreurs d'intégration. Dans le Yocto-3D-V2, les erreurs d'intégration de gyroscope sont réduites par la combinaison avec la mesure d'orientation obtenue par l'accéléromètre et la boussole, qui est moins réactive mais qui a l'avantage de ne pas dériver. C'est donc une correction lente qui annule progressivement et en continu l'erreur d'intégration gyroscopique.

Dans le cas particulier d'une trajectoire en voiture cité précédemment, il est possible aussi d'effectuer une forme de correction d'erreur continue sur le calcul de la vitesse, en utilisant le fait qu'une voiture ne se déplace pas latéralement mais seulement dans le sens de la marche. On peut donc, durant l'intégration de l'accélération, projeter le vecteur vitesse précédemment calculé sur l'axe d'orientation de la voiture. Ainsi, on annule la composante perpendiculaire au déplacement de l'erreur cumulée. Voici le résultat:

 
Trajet mesuré par un Yocto-GPS, et trajet reconstitué sur la base de mesures inertielle MEMS



Le tracé de gauche est mesuré par un Yocto-GPS, alors que le tracé de droite est déterminé à l'aide des informations inertielles fourniers par le Yocto-3D. On constate que les informations inertielles restent largement insuffisantes pour une estimation raisonnable de la position, mais il est au possible de reconstituer un semblant de trajectoire. Reste que si on avait utilisé un capteur de vitesse plutôt qu'une intégration de l'accélération, le résultat aurait été bien meilleur. Donc la prochaine fois que vous songez à utiliser un accéléromètre pour en déduire une trajectoire... cherchez une autre idée !

Commenter aucun commentaire
Retour au blog












Yoctopuce, get your stuff connected.