Hallo zusammen!
Ich beschäftige mich nun schon seit längerem mit Inertialsensoren zur
Erfassung von Bewegungen aller Art, vor allem von Fahrzeugen. Dafür
verwende ich einen 6Achsen Sensor, also Beschleunigung und Drehrate in
allen drei Raumrichtungen.
Idealerweise ist dabei das Sensorkoordinatensystem gleich dem
Fahrzeugkoordinatensystem. Wenn das Sensor KS gegenüber dem Fahrzeug KS
mit bekannten Winkeln verdreht ist, kann man das wohl recht easy mit
einer Drehmatrix korrigieren.
Ich habe das noch nie getestet, aber das funktioniert wohl so:
1 | S(t) * T = F(t) mit:
|
2 | T ist eine Drehmatrix mit alpha, beta, gamma
|
3 | S(t) ist der 6-Achsige Zustand des Sensors
|
4 | F(t) ist der 6-Achsige Zustand des Fahrzeugs
|
Nun möchte ich die Orientierung des Sensor KS gegenüber dem Fahrzeug KS
allerdings "selbstlernend" bestimmen.
Ich habe mehrere "Gleichungen" (in der Realität nicht wirklich wahr, das
beispielsweise der Drift der Gyroskope eine einfache Integration sinnlos
werden lässt), die das Verhalten des Fahrzeuges charakterisieren. Unter
anderem:
1 | I) Ewiger Mittelwert für Beschleunigung in Z ist 9,81m/s²
|
2 | II) Integral der Drehrate um die X-Achse ist langfristig Null
|
3 | III) Integral der Drehrate um die Y-Achse ist langfristig Null
|
4 | IV) Drehrate in Z geht mit einer Beschleunigung in Y einher
|
5 | V) …
|
Mit diesen Gleichungen/Erkenntnissen müsste man doch nun ein
Gleichungssystem aufstellen können, um so die drei Winkel bestimmen zu
können, wobei sich die Sicherheit mit steigender Beobachtungsdauer
erhöht. Und natürlich müsste die Rechnung sehr robust sein, da es
aufgrund von Messfehlern, Bodenwellen, etc. ständig Werte geben, die den
obigen Gleichungen teilweise widersprechen.
Wie geht man sowas an? Das Grundkonzept und das Ziel ist mir auf jeden
Fall klar. Leider übersteigt es meine Vorstellungskraft derzeit etwas…
Grüße!