Forum: Mikrocontroller und Digitale Elektronik Kalibrierung Inertialsensor - Wie Anwendungsumgebung für MAG berücksichtigen?


von Julius H. (chacky33)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich beschäftige mich aktuell mit der Kalibrierung von Inertialsensoren 
(IMU - MPU9250, Mikrocontroller stm32f407, Spi)

Die Kalibrierdaten vom ACC, Gyro und MAG sind bereits aufgenommen 
worden.(extern).

Nun soll noch zum MAG der Bias für unsere Anwendungsumgebung in die 
Kalibrierung mit einfließen. (siehe Anhang: hinterer Teil für das 
Kalibriermodell wurde hinzugefügt)

Ich kenne aus dem Datenblatt des MPU9250 die entsprechenden positiven 
Achsrichtungen X,Y,Z.

Die Frage ist jetzt, wie man dazu vorgeht?

Nach folgender Anleitung wird der Sensor in 12 vreschiedene Positionen 
gedreht (Jede Seite wird dabei um 180° gedreht)
http://diydrones.com/profiles/blogs/advanced-hard-and-soft-iron-magnetometer-calibration-for-dummies

Mit den Werten berechnet er seine Transformationsmatrix und Bias mit 
einem Programm (Magmaster). Wir besitzen weder das Programm, noch 
benutzen wir Arduino.

Unser Programm in C läuft so ab, dass wir einen Messzeitraum einstellen 
können, beispielsweise t = 10 s messen.

Wie bekommt man nun jeweils einen Wert für X,Y,Z?

Wir hoffen, dass uns vielleicht der ein oder andere einen Hinweis geben 
könnte und sind für jeden Tip dankbar.

Grüße Julius

von 123 (Gast)


Lesenswert?

Julius H. schrieb:
> Wir besitzen weder das Programm, noch
> benutzen wir Arduino.

Das Programm steht aber zum Download zur Verfügung. Arduino ist nur die 
Entwicklungsumgebung. Da wird auch nur C oder C++ programmiert. Müsst 
ihr halt in euer Projekt integrieren ...

von Julius H. (chacky33)


Lesenswert?

Hallo 123,

Die Werte für die Transformationsmatrix und den Bias haben wir bereits.
Die Frage ist, wie das allgemeine Vorgehen ist um werte für den Bias 
innerhalb einer Umgebung zu bekommen.

Ich erhalte jeweils 3 Werte (X-Wert, Y-wert, Z-Wert)
Drehe ich um 90° erhalte ich wieder 3 neue.

Doch was mach man mit den Werten um einen Spaltenvektor mit 3 
Kalibrierparameter zu erhalten?

Grüße Julius

von Wolfgang H. (Gast)


Lesenswert?

Hi, Julius,

wenn ich den von Dir zitierten Text recht verstanden habe, dann wird nur 
das Modul mit dem Kompass gedreht.

Dazu eine kurze Horrorgeschichte. Die Rückströme über die Karosserie 
eines Fahrzeugs hätten fast ein Projekt gekostet. Das Einschalten der 
Heckscheibenheizung machte die Kalibrierung zunichts, die ohne die 
Heizung durchgeführt worden war.
Sogar die Motordrehzahl beeinflusste den Kompassewert, vermutlich über 
Lichtmaschine und Starterbatterie.

Aber weil sich der Kunde mit Ausgleich wegen Minderleistung zufrieden 
gab, rettete er das Projekt. Denn wir hätten alle größeren Verbraucher, 
die ihren Versorgungsstrom über die Karosserie zurückleiteten, 
ummontieren müssen auf Versorgung durch verdrillte Versorgungsleitungen.
Die notwendigen Änderungen hätten die Zulassung gekostet.

Die Kalibrierung eines Kompass allein durch dessen Drehung ist Pfusch. 
Sondern, wenn der Kompass in einem Flugmodell eingebaut ist, dann muss 
das ganze Flugmodell über alle drei Achsen gedreht werden. 
Einschließlich aller Einflüsse auf den Kompassert.

An Flughäfen befinden sich ausgewiesene Plätze zur Kompasskalibrierung - 
aber da wird das Flugzeug nur im Azimut gedreht und der Kompasswert gilt 
dann auch nur bei Horizontalflug.

Wenn der Modellhubschrauber dann fliegt, dann kommt die spannende Frage, 
ob die Kalibrierung dann nur für eine einzige Betriebsstellung aller 
Motoren gilt oder auch bei anderen Lasten und Motordrehzahlen. Da wird 
dann deutlich, wo die Leitungen zu den Motoren nicht genügend verdrillt 
waren.


Die Kalibrierung eines Kompasses im Schiff ist viel teurer als die eines 
Tastkopfe am Scope.

Ciao
Wolfgang Horn

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.