Es fällt mir schwer, diese Frage in Worte zu fassen, aber im Grunde habe ich eine IMU (MPU-6050) und kann die Daten mithilfe der i2cDev-Bibliothek streamen.
Die IMU befindet sich in einer Kiste und ich möchte bestimmen können, auf welcher Seite sich die Kiste befindet (was meiner Meinung nach einfach sein wird, wenn ich die Gravitationsrichtung als Bezugspunkt verwende) und dann das Gieren dieser Seite berechnen lassen.
In gewisser Weise möchte ich so tun, als ob das absolute Gieren, Neigen und Rollen für das Gerät nicht existiert und stattdessen jede Seite der Box ein relatives Gieren hat.
Jeff Roberg (Autor von I2CDev) hat mit seiner MPU6050-Bibliothek ziemlich gute Arbeit geleistet. Beachten Sie, dass Pitch und Roll absolute Werte sind, wenn Sie sie aus den Beschleunigungsmesserwerten berechnen, aber Yaw ist relativ, da es in MPU6050 kein Magnetometer gibt.
Wenn Sie den MPU6050 einschalten, beginnt er immer mit dem Zählen des Gierwerts von ungefähr 0 Grad (Bereich: 0 - 360 Grad), und dann tritt eine gewisse Drift auf. Die Pitch- und Roll-Werte sind jedoch im Bereich von -90 bis +90 Grad immer absolut.
Wenn Sie die Orientierung berechnen möchten, folgen Sie nicht dem Gierwert! Verwenden Sie eine Kombination aus der „Schwerkraft“-Komponente und der „Nick“- oder „Roll“-Komponente.
Brian Döhler
sabjörn