MPU9250 Tilt Compensation

  • Hallo,

    Ich habe ein MPU9250 das einen Gyro, Magnet und Beschleunigungssensor hat (alle in 3 Achsen Ausführung). Zum ansprechen verwende ich die FaBo9Axis_MPU9250 library.

    Werte messen und Ausgeben funktioniert also. Da ich das Board als Kompassensor verwenden möchte muss ich aus den einzelnen Werten für die X, Y und Z Achsen einen Winkel berechnen. Das Problem dabei ist, dass der Sensor mit der einfachen Methode die nur die X und Y Achse des Magnetometers verwendet, falsche Werte liefert, sobalt der Sensor nicht mehr gerade ist.

    Ich habe schon einiger Versuche unternommen das zu Korrigieren aber meine Werte sind alles andere als richtig.


    Hier ist mein letzter Versuch:


    Wie schon oben geschrieben ergeben die Werte keinen Sinn egal mit welcher Methode ich es versuche:wallbash:.

    Hoffentlich hat das schon von euch schon jemand gemacht und weiß wie das richtig geht mir fällt nichts mehr ein.

  • Gemacht habe ich sowas noch nicht, finde es aber spannend. Beschreib doch mal genau, welche Werte der Sensor liefert und was Du daraus berechnen möchtest – dann sollten wir hier im Forum sicher gemeinsam eine Lösung finden.

  • Also der Sensor liefert Werte die sehen so aus:

    Code
    1. gyro: {'y': -0.313, 'x': -2.739, 'z': -1.282}
    2. accel: {'y': 0.016, 'x': -0.077, 'z': -1.007}
    3. magnet: {'y': 7.127, 'x': 62.641, 'z': -136.772}


    Aus den Werten von dem Magnetsensor und dem Beschleunigungssensor möchte ich einen Winkel berechnen, der in Werten von 0 bis 360 die Grad anzeigt, die der der Sensor relativ zum Nordpol steht. Und das unabhängig davon wie er im Raum steht.

    Mit den X und Y Werten vom Magnetsensor allein funktioniert das auch schon - vorausgesetzt er ist gerade im Raum. Wenn nicht, dann wird der Fehler jedoch größer je schiefer ich ihn halte.

  • Zitat

    Also der Sensor liefert Werte die sehen so aus:

    Meine Frage zielte eher darauf, was die Werte bedeuten. Ich nehme mal an, wenn der Beschleunigungssensor nur eine Z-Komponente liefert, liegt der Sensor waagrecht im Raum. Richtig? Aber was genau sagen mir die Werte des Gyrosensors?

  • Achso tut mir leid das hab ich missverstanden^^

    Aber mit dem Beschleunigungssensor hast du recht.

    Die Werte vom Gyro sind mir eigendlich egal damit habe ich mich noch nicht wirklich befasst. Aber soweit ich das bis jetzt verstanden habe zeigen die Werte die Drehbewegung z.B. in Grad pro Sekunde der jeweiligen Achsen an. Nur sind die hier wahrscheinlich auch noch irgendwie umzurechnen.


    Der Magnetsensor misst die magnetische Flussdichte. Und das von allen Feldern in der Nähe und nicht nur vom Erdmagnetfeld. Deswegen sollte man die auch kalibrieren aber da mein Sensor an 4 Drähtchen weiter von der Platine entfernt befestigt ist denke ich mal dass das für eine relativ einfache Messung so auch ausreichen wird, vorallem da ich nur sehen möchte ob ich die tilt compensation richtig gemacht habe.