Wie kann ich den Magnetfeldvektor unabhängig von der Gerätedrehung ermitteln?

Was ich archivieren möchte, ist eine Art "magnetischer Fingerabdruck" eines Ortes. Ich benutze den MAGNETIC_FIELD Sensor und falls ich den bekomme3 Werte für die (leider nicht weiter erläuterte) X-, Y- und Z-Achse.

Das Problem ist, dass sich die Werte ändern, wenn ich das Gerät drehe. Ich schätze also, dass die drei Achsen relativ zum Gerät sind. Was ich brauche, ist, die Gerätedrehung zu kompensieren, so dass ich die gleichen 3 Werte erhalte, unabhängig davon, wie das Gerät gedreht wird.

Ich habe versucht, mit der Rotationsmatrix zu multiplizieren (ich weiß, wie man das macht), habe versucht, mit der Neigungsmatrix zu multiplizieren und so weiter, aber es funktioniert nichts. Unabhängig davon, was ich versuche, ändern sich die Werte immer noch, wenn ich das Gerät drehe.

Weiß also jemand, wie man es richtig macht? Am liebsten mit Code, weil ich eine Menge Dinge gelesen habe, wie 'Nun, dann musst du das mit einer Rotationsmatrix kompensieren', aber kein einziges konkretes, funktionierendes Beispiel gefunden habe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage