Hi,
sowas kann man sich relativ leicht selbst machen:
Die Länge des Vektors des gemessenen Magnetfeldes gibt Auskunft darüber, wie stark das aktuell vorliegende Magnetfeld ist. Bei einem kalibrierten Magnetometer sollte der Wert, egal in welcher Orientation, immer gleich 1 sein. Befindet sich nun eine Störquelle in der Nähe, so verändert sich die Stärke des Magnetfeldes und dementsprechend die Länge des Vektors.
Somit kann man nun entweder den Winkel nur dann abgleichen, wenn |M|==1 oder eine Variable benutzen:
Code:
a = ConstrainF(absf(1.0f - |M|),0.0f,0.1f);
Coeff = 0.99f + a;
Winkel = ((Winkel+(Gyro*dt)) * (Coeff)) + (MagWinkel * (1.0f-Coeff));
Vielleicht hilfts ja weiter.
Gruß
Chris
Lesezeichen