Kalibrierung des Magnetometers für präzises Gieren

Ich verwende den Sparkfun Razor IMU 9DOF-Sensor , der Beschleunigungsmesser, Gyroskop und Magnetometer enthält, um die Euler-Winkel (Gieren, Nicken und Rollen) anzugeben. Ich verwende die Firmware unter diesem Link . Es hat eine Verarbeitungsskizze für die Kalibrierung des Magnetometers, aber es gibt nicht die genauen Messungen. Insbesondere das Gieren ist ungenau. Ich verwende diesen Sensor zur Messung von Azimut und Höhe von Sternobjekten. Die Höhe ist meistens korrekt, aber Azimut (Gieren) nicht.

Ich habe mehrere Fragen:

  • Gibt es eine bessere Möglichkeit, Magnetometer zu kalibrieren? Ist die Kalibrierung ausreichend, ohne den Madgwick- oder Kalman-Filter zu verwenden?
  • Ist im Sensor eine Nichtlinearität vorhanden? Da der Gierversatz nicht konstant ist, ändert er sich (etwa -12 Grad im Norden bis zum fast korrekten Wert im Südwesten). Und wenn ja, wie könnte ich diese Nichtlinearität messen und auf die Giermessungen anwenden?
  • Wenn ich Madgwick oder Kalman verwenden muss, muss ich sie dann auf Quaternionen anwenden? Ich glaube, dass die Anwendung bei den endgültigen Giermessungen nicht ausreichen würde.
Ahh dumme Frage: Kompensieren Sie den Unterschied zwischen magnetischem und geografischem Norden? www1.appstate.edu/~goodmanj/4401/notes/magnets/mnvsgn.html
Das ist mir in den Sinn gekommen, aber jetzt habe ich überprüft, dass der Unterschied von meinem Standort aus ungefähr 4 Grad beträgt. Wenn es ein konstanter Fehler wäre, wäre das nicht das Problem, aber die Sensormesswerte variieren bei Fehlern zwischen 1 und 12 Grad (12 Grad im Norden bis 1 oder weniger im Südwesten).
Lokale Magnetfelder können Eisenstücke in der Umgebung stark verändern. Vor allem drinnen. Versuchen Sie, es in einen eisenfreien Bereich zu bringen ... Vielleicht auf ein Feld.
Genau so habe ich die Messung im Freien auf dem Feld durchgeführt und sichergestellt, dass keine magnetischen Störungen in der Nähe vorhanden sind. Einige Leute sagen, dass die Nichtlinearität des Sensors das Problem ist, aber ich weiß nicht, wie ich das machen soll, und baue das in den Code ein.
Hast du das Tutorial weiter gelesen ?
Sie müssen feststellen, ob das Problem beim Sensor oder beim interpretierenden Code liegt. Wahrscheinlich sollten Sie den Code im Detail studieren und nach Dingen wie Rundungsfehlern oder Kürzungen, Logikfehlern usw. suchen.
Gibt es in unmittelbarer Nähe Leitungen mit hohem Strom?
@Jogitech Nein, nur Schwachstromverkabelung. Es stellt sich heraus, dass die verwendete IMU für eine solche Art der Navigation nicht präzise genug ist.

Antworten (1)

Möglicherweise wird das Magnetometer durch Eisen- oder Stahlteile in der Nähe beeinflusst. Der Kompass großer Stahlschiffe wurde gegen den Einfluss des Stahlrumpfes kompensiert. Es wurden Flaggensignale gegeben: Ich reguliere meinen Kompass.

Das ist nicht der Fall. Ich habe den Sensor weit genug von allen Objekten entfernt, die mit Magnetfeldern interagieren können. Auch hier gibt es nichtlineare Fehler von 1 bis 12 Grad beim Gieren. Mir wurde gesagt, dass ich vielleicht den Nichtlinearitätstest durchführen sollte (den Sensor in 1 Grad bis zum vollständigen Kreis umkreisen), daher bekomme ich einige Daten, die angenähert werden können, aber ich weiß nicht, wie ich solche Ergebnisse verwenden soll.
@dejan stromführende Drähte (zum Beispiel zu Motoren) beeinflussen auch das Magnetometer. Ein kreisförmiger Testaufbau zeigt Ellipsen anstelle von Kreisen. Es ist nicht viel Strom erforderlich, um die erwarteten Kreise zu stören.