Utilisation de capteurs inertiels dans un véhicule

Utilisation de capteurs inertiels dans un véhicule

Les capteurs inertiels MEMS utilisés par des produits comme le Yocto-Inclinometer ou le Yocto-3D-V2 sont capables de déterminer leur orientation par rapport à la gravitation terrestre, tel un niveau à bulle électronique. Il est tentant de les utiliser pour mesurer l'orientation d'objets en mouvements, comme des véhicules, mais ce n'est pas si évident qu'on pourrait l'espérer. Voici quelques explications sur les pièges auxquels il faut s'attendre, en guise de rappel de vos cours de physique cinématique...


Commençons par un peu de théorie. Un inclinomètre inertiel MEMS fonctionne à l'aide d'une minuscule masse suspendue dans une structure élastique. Quand l'inclinomètre est penché, la masse se déplace légèrement sous l'effet de la gravité, jusqu'à ce que la force de rappel élastique compense la force de gravité. En mesurant le déplacement de la masse par effet capacitif sur les trois axes, on peut en déduire l'orientation du vecteur de gravité et donc l'orientation du module.

Principe de mesure d'un inclinomètre MEMS
Principe de mesure d'un inclinomètre MEMS



Accélération horizontale

Naturellement, la masse ne se déplace pas uniquement sous l'effet de la gravité, mais aussi sous l'effet de toutes les autres forces auxquelles le capteur est soumis. Si le capteur est soumis à une accélération horizontale, la masse se déplacera aussi dans le sens opposé à l'accélération, jusqu'à ce que la force de rappel élastique compense la force causant l'accélération. Le vecteur d'accélération mesuré résultant sera donc la somme de l'accélération gravitationnelle et de l'accélération horizontale. Comme les deux vecteurs sont perpendiculaires, leurs amplitudes se combinent par la règle de Pythagore:


La mesure d'inclinaison inertielle, qui se base sur l'angle du vecteur résultant, sera elle aussi faussée. Par exemple, on peut calculer l'inclinaison fictive qui serait indiquée dans une voiture accélérant de 0 à 100km/h en 10 secondes:


Donc si vous mettez un Yocto-Inclinometer dans une voiture qui accélère et qu'il vous indique qu'elle penche de 14°, pas besoin de changer les amortisseurs pour autant...

Virage

Un cas similaire se produit dans un véhicule qui roule à vitesse constante dans un virage. Bien que le véhicule n'accélère pas, sa trajectoire tourne sous l'effet d'une force centripète (tournée vers l'intérieure du virage), causée par l'orientation des roues directionnelles. A nouveau, la masse de l'inclinomètre se déplacera donc dans le sens opposé de cette force jusqu'à ce que la force de rappel élastique lui soit égale. On aura donc à nouveau une accélération résultante somme de deux vecteurs perpendiculaires:


La physique nous apprend que la force centripète est proportionnelle au rayon du virage r et au carré de la vitesse angulaire, exprimée en radian par seconde. L'accélération centripète résultante est donnée par:


Par exemple, on peut calculer l'accélération ressentie dans une voiture engagée à 54 km/h dans une bretelle d'autoroute de 25 mètres de rayon:


Les passagers ressentent donc une accélération horizontale quasiment équivalente à 1 g. Sans surprise, l'inclinaison qui sera indiquée par un Yocto-Inclinometer, en supposant que le véhicule reste parfaitement horizontal, sera donc:


Ce qui confirme qu'il ne faut décidément pas faire confiance à un inclinomètre inertiel dans un véhicule qui suit une trajectoire courbe. Imaginez le résultat si vous comptiez tenir un drone à plat de cette manière :-)

Expérience avec un Inclinomètre

Les modules Yoctopuce permettent facilement de monter une petite expérience pour vérifier la théorie. Nous avons monté une route de vélo à l'horizontal, et y avons fixé sur une tige en bois:

  • Un Yocto-3D-V2, qui comprend un notamment accéléromètre, un gyroscope et une boussole électronique
  • Un Yocto-Inclinometer, qui est un inclinomètre MEMS pur et dur
  • Un YoctoHub-Wireless-n, pour transmettre les mesures - sans câble qui s'emmêle
  • Une batterie USB, pour alimenter le tout

Système de test pour mesurer la force centripète
Système de test pour mesurer la force centripète


La roue a été fixée par l'axe à une lambourde. Nous l'avons d'abord mise à la verticale pour équilibrer la roue: en déplaçant la batterie et en ajoutant des lests dans la jante, nous nous sommes assurés qu'elle restait immobile dans toutes les positions. Ensuite, nous l'avons fixée horizontalement à une table pour la durée de l'expérience, de sorte à ce qu'elle puisse tourner librement et régulièrement.

Expérience pour mesurer la force centripète
Expérience pour mesurer la force centripète



L'expérience consiste à lancer la roue à la main, et à regarder les mesures résultantes sur les deux axes de mesure d'inclinaison du Yocto-Inclinometer au fur et à mesure que la roue ralentit. Durant l'expérience, le gyroscope du Yocto-3D-V2 (en rouge) nous indique la vitesse angulaire de la roue, tandis que sa boussole (en orange) nous permet de visualiser les périodes de rotations:

Mesures d'inclinaison apparente sur une roue qui rallentit
Mesures d'inclinaison apparente sur une roue qui rallentit


On observe d'emblée deux phénomènes:

  1. Des petites oscillations (+-1°) sur les deux axes d'inclinomètre, en phase avec les périodes de rotation, certainement dues à un défaut d'alignement de l'axe de la roue par rapport à la verticale, qui a pour effet de pencher l'inclinomètre tantôt légèrement vers le haut, tantôt légèrement vers le bas.
  2. Comme prévu, une forte influence de la vitesse de rotation sur l'inclinaison apparente autour de l'axe Y (Tilt2), dont nous allons vérifier la valeur ci-dessous.

Pour faire les vérifications numériques, nous relançons la roue encore plus vite, et affichons cette fois l'accélération totale mesurée par le Yocto-3D-V2 (en gris):

Accélération apparente sur une roue qui ralentit
Accélération apparente sur une roue qui ralentit


La dépendance quadratique de l'accélération ressentie par rapport à la vitesse de rotation est flagrante. Vérifions si les valeurs correspondent à la théorie, par exemple au point marqué par le marqueur vertical.

Pour commencer, il faut convertir les mesures des modules Yoctopuce, exprimées en unités courantes, en valeurs exprimées en unités SI utilisées en physique. Le gyroscope retourne une vitesse angulaire en degrés par seconde, qu'il faut convertir en gradients par seconde:


De même, l'accéléromètre retourne une accélération apparente relative à la valeur au repos. Si l'on venait de calibrer le capteur, la valeur au repos serait de 1g. Dans notre cas la valeur au repos est de 0.978, on peut donc calculer la valeur physique de l'accélération apparent comme suit:


Or, comme on l'a vu précédemment, l'accélération apparente totale est la composition de deux accélérations perpendiculaires: l'accélération due à la force centripète et l'accélération due à la gravité.


En substituant les valeurs mesurées dans cette formule, on peut donc en déduire le rayon de courbure de la trajectoire:


Et c'est effectivement le rayon de rotation de notre expérience, avec une précision d'environ 1%. On ne pouvait espérer mieux!

Au passage, notons que le Yocto-3D-V2 permettant de mesurer la vitesse angulaire et de calculer le rayon de rotation, on pourrait même dans ce cas précis calculer la vitesse de déplacement. Le cas d'un mouvement circulaire uniforme est donc une exception notable à notre indication lors d'un précédent article, qui était qu'il n'était pas possible de mesurer de manière fiable la vitesse de déplacement d'un objet à l'aide d'un Yocto-3D-V2.

Revenons maintenant à la mesure d'inclinaison. Vous aurez peut-être remarqué que le point de calcul choisi correspond à celui où la force centripète est à peu près égal à la force de gravité. L'inclinaison apparente mesurée par le Yocto-Inclinometer devrait donc être d'environ 45°, ce qui est presque le cas. Pourquoi est-il légèrement inférieur ?

On trouve la réponse sur le premier graphique: on peut y constater un léger décalage sur Tilt1, similaire à Tilt2. On pourrait imaginer que ce décalage, indiquant une force colinéaire avec la tangente du cercle, correspond à la décélération de la roue. Mais si on regarde au début du graphique on constate que le décalage est dans la même sens que l'impulsion initiale, ce qui ne correspond donc pas à une décélération. En lançant la roue dans l'autre sens, on peut vérifier que le décalage ne change pas de signe. C'est donc qu'une partie de l'accélération centripète aboutit dans Tilt1 plutôt que Tilt2. Pourquoi ? Simplement en raison de la conception de notre expérience: comme notre tige de bois ne peut pas passer exactement par le centre de l'axe, et que le Yocto-Inclinometer est encore décalé de 2cm par rapport à la tige, l'inclinomètre est en réalité tourné de 4° par rapport au rayon. Une légère partie de la force centripète finit donc dans Tilt1, et une partie manque dans Tilt2.

Expérience avec un inclinomètre "intelligent"

Pour finir, répétons l'expérience en utilisant la mesure d'inclinaison du Yocto-3D-V2 plutôt que celle fournie pour le Yocto-Inclinometer pour voir si le résultat est le même:

Mesures d'inclinaison apparente avec le Yocto-3D-V2
Mesures d'inclinaison apparente avec le Yocto-3D-V2


Voilà un résultat assez surprenant. Pendant les 20 premières secondes, la mesure d'inclinaison du Yocto-3D-V2 n'est pas perturbée par la force centripète. Pourquoi? Parce que le capteur BNO055 du Yocto-3D-V2 étant doté d'un gyroscope, il est en mesure de savoir qu'il n'a pas subit de rotation sur l'axe Y, et donc que l'inclinaison apparente n'est pas réelle.

Mais après 20 secondes, l'algorithme de fusion des capteurs semble décider que la divergence persistante entre le gyroscope et l'inclinomètre inertiel est finalement due à une dérive du gyroscope, et change subitement de comportement pour intégrer la force centripète dans la mesure d'inclinaison, alors même que rien n'a changé dans les influences extérieures. A nouveau, si il s'agissait de maintenir un aéronef à l'horizontale, cet effet inattendu le ferait subitement partir de travers sans raison... Voilà qui rappelle beaucoup nos précédentes observations sur la boussole du BNO055, qui elle-aussi changeait subitement de comportement lors d'une divergence prolongée entre les mesures du gyroscope et de la boussole.

Conclusion

Avant de faire confiance aveuglément à un capteur intelligent, prenez soin de comprendre la physique dont il dépend et les limites auxquelles il ne pourra pas échapper. Parfois, il vaut mieux se fier à un capteur sans compensation mais prédictible, comme le Yocto-Inclinometer, plutôt qu'à un capteur qui incorpore des mécanismes de compensation pas entièrement spécifiés. Et n'oubliez pas que si le Yocto-3D-V2 coûte 100 fois moins cher qu'une véritable centrale inertielle, c'est probablement aussi parce qu'il a ses limites :-)

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.