J'ai essayé plusieurs algorithmes pour obtenir le tangage, le roulis et le lacet sous des accélérations et vibrations linéaires continues (inférieures à 0,4 g, fréquence inférieure à 10 Hz). Aucun d'entre eux ne donne de bons résultats car les relevés dérivent ou sont trop affectés par les accélérations linéaires. Ce que je veux atteindre, c'est lorsque l'accélération externe est inférieure à + -0,4 g, l'erreur sur le tangage et le roulis doit être inférieure à + -1 degré.
J'ai essayé ces algorithmes:
L'algorithme de Madgwick . Lorsque le gain bêta est réglé très haut, la convergence est rapide mais les angles sont plus sensibles aux accélérations linéaires. Je l'ai réduit et réduit l'erreur sous accélérations linéaires à + -0,5deg. Cependant, si la vibration est continue, les lectures dériveront et il faudra une éternité pour converger vers les vraies valeurs. Cela a du sens car sous des accélérations linéaires, le gyroscope est plus fiable et les angles calculés dérivent lorsque l'intégration du gyroscope dérive.
L'algorithme de Mahony . Contrairement à Madgwick, il ne dérive pas du tout quelles que soient les valeurs que j'utilise pour Ki et Kp. Cependant, il est toujours affecté par des accélérations linéaires. (Erreurs supérieures à + -6deg)
Filtre Kalman traditionnel . Beaucoup de temps a été consacré au réglage de ces énormes vecteurs R et Q. Jusqu'à présent, il a les mêmes performances que Mahony.
J'utilise le rasoir IMU . Je sais qu'avec des capteurs bon marché, il est impossible d'obtenir le même résultat que celui-ci .
Il existe quelques autres options comme UKF, mais c'est difficile à comprendre ou à mettre en œuvre.
Toute suggestion est la bienvenue.