Les Yocto-3D et Yocto-3D-V2 peuvent servir dans certains cas d'inclinomètre, puisqu'ils sont capables d'estimer leur orientation dans l'espace. Mais vous aurez peut-être remarqué qu'aucune précision de la mesure d'inclinaison n'est garantie dans les spécifications. Pour en savoir plus, nous allons aujourd'hui les comparer avec l'inclinomètre de précision Murata SCL3300 que nous avons interfacé la semaine dernière à l'aide d'un Yocto-SPI.
Pour faire cette comparaison, nous avons construit une petite balancelle graduée sur laquelle sont fixés d'un côté un capteur Murata SCL3300 et un Yocto-SPI, et de l'autre un Yocto-3D et un Yocto-3D-V2. Après avoir soigneusement aligné l'installation à l'horizontale sur les deux axes à l'aide d'un inclinomètre numérique certifié, nous avons déplacé la balancelle à diverses positions stables et surveillé avec Yocto-Visualization les valeurs d'inclinaison retournées par les différents modules.
Notre système de comparaison d'inclinomètre
Tous les capteurs ont été configurés pour retourner des mesures à 10Hz. Le Yocto-3D-V2 utilise le mode de fusion par défaut (NDOF).
Premier test: précision absolue et bruit
Pour ce premier test, nous avons laissé la balancelle en position de repos. On aurait pu espérer que la gravité nous offre un vrai zéro degré, mais on remarque rapidement que la très légère force exercée par les câbles USB est déjà suffisante pour fausser la position de repos de quelques dixièmes de degrés. Le zéro est donc vérifié à l’œil, mais avec une incertitude de l'ordre de +/- 0.2°. Voici les valeurs reportées par les trois capteurs:
Mesure à ~0°
Première observation: Le capteur Murata en bleu est sans aucun doute le plus précis en valeur absolue. C'est le seul qui retourne un valeur dans la plage attendue, les autres ont clairement un offset non-négligeable entre 1° et 3°.
Deuxième observation: si le Yocto-3D-V2 offre une mesure étonamment stable, on ne peut pas en dire autant du Yocto-3D dont le bruit a une amplitude de l'ordre de 0.7°. La raison est la suivante: dans le Yocto-3D, la sortie des inclinomètres est directement produite d'après la mesure des accéléromètres MEMS, qui sont assez bruités. Tandis que dans le Yocto-3D-V2, la sortie des inclinomètres est fusionnée avec les mesures du gyroscope, qui permettent d'annuler le bruit des accéléromètres en profitant de la connaissance que le module n'est pas sujet à la moindre rotation.
Troisième observation: le bruit du capteur Murata est extrêmement bas, mais on observe quand même trois petites vaguelettes sur le graphique. Il ne s'agit en réalité pas de bruit de mesure, mais de l'effet de perturbations sur la table où est posée la balancelle, lors des manipulation sur le PC portable servant à faire les mesures. Elles démontrent donc au contraire la réelle sensibilité de ce capteur.
Deuxième test: amplitude et décalage
Voici deux mesures prises à 30° et à presque 79°.
Mesures à environ 30° et 79°
On constate qu'à nouveau le capteur Murata est le plus précis, tant en absolu qu'en relatif. A 30°, le Yocto-3D garde son décalage de 2.5° tandis que le Yocto-3D-V2 se rapproche de la mesure du Murata. Mais lorsque le mouvement s'amplifie jusqu'à 79°, on observe que le Yocto-3D-V2 sous-estime en réalité l'amplitude de la rotation et perd donc un degré.
Si l'on repart dans l'autre sens, on observe le même genre de comportement:
Mesures à environ -42° et -81°
Le capteur Murata tient fidèlement l'angle. Le Yocto-3D reste assez bruité mais tient un décalage assez cohérent. Le Yocto-3D-V2 lui donne une mesure stable mais qui peut s'écarter de plus 2° de la réalité, d'un côté ou de l'autre. Cette erreur variable est très probablement produite par l'intégration gyroscopique qui est utilisée par l'algorithme de fusion du BNO055.
Troisième test: mouvement lent
Pour comprendre un peu mieux la différence entre les trois méthodes de mesure, nous avons effectué un mouvement lent de quelques dixièmes de degrés tenant la balancelle par une ficelle et en la libérant progressivement de quelques millimètres:
Transition lente entre deux angles
Le capteur Murata reproduit le plus clairement le mouvement. On arrive aussi à le deviner dans les mesures du Yocto-3D, bien qu'il soit en grande partie masqué par le bruit de mesure. Par contre, le mouvement n'a pas été détecté du tout par le Yocto-3D-2. Il était visiblement trop lent pour être détecté par le gyroscope MEMS, et son amplitude trop faible pour que les accéléromètres prennent le dessus sur le gyroscope.
Quatrième test: mouvements rapides
Pour terminer ces tests, voyons comment les trois capteurs réagissent à des mouvements plus rapides. Pour commencer nous avons effectué une transition de 25° en 2 secondes environ:
Transition rapide entre deux angles
Le résultat est très différent des précédents tests. Le capteur Murata produit des valeurs très bruitées pendant la transition, probablement en raison de la saturation du capteur. Le Yocto-3D et le Yocto-3D-V2 donnent eux une estimation bien plus correcte du mouvement, ce dernier produisant les meilleurs résultats.
Voyons maintenant ce qui se passe si l'on produit un petit mouvement de pendule partant de 10° environ:
Mouvement d'oscillation
Le mouvement étant assez rapide, tous les capteurs ont tendance à le sous-estimer un peu. Mais c'est clairement le Yocto-3D-V2 qui l'estime le plus correctement l'amplitude du mouvement, les deux autre ne perdant les maxima du mouvement dans le moyennage à 10Hz.
Conclusion
On retiendra une claire différence de comportement due à la différence de technologie des capteurs. Lorsque la mesure à effectuer implique des mouvements rapides, le Yocto-3D-V2 fournit une bien meilleure description du mouvement en temps réel que les autres capteurs. Par contre, pour une mesure d'inclinaison statique, ce n'est pas le meilleur candidat.
La fonction inclinomètre du Yocto-3D est basée sur la même technologie d'accéléromètre que le capteur Murata SCL3300, mais avec un capteur moins évolué. Il peut être donc être utilisé comme inclinomètre pour les applications nécessitant une précision de l'ordre de 2° seulement. Une utilisation moyennée, par l'utilisation de timed reports à 30 ou 60 mesures par minute, pourra considérablement réduire le bruit de mesure, et une recalibration soignée aidera aussi pour la précision absolue.
La fonction inclinomètre du Yocto-3D-V2 est en réalité une sortie angulaire de l'estimation d'orientation intégrant non seulement des mesures d'accéléromètre mais aussi la fonction gyroscopique. Elle est donc meilleure pour l'estimation des changements rapides d'angle et la stabilité, mais pas très bonne en terme de répétabilité, donc au final pas meilleure que le Yocto-3D en terme de précision absolue.
Le capteur Murata SCL3300 connecté par un Yocto-SPI est le seul qui soit véritablement utilisable comme inclinomètre de précision. La seule limitation à prendre en compte est la gestion des mouvements rapides. Vu les résultats très prometteurs de ce capteur, il est probable que nous en fassions un module Yoctopuce dédié.