benson
13.01.2006, 14:14
Hallo zusammen, habe mir einige Threads zum Thema Neigung und Beschleunigungssensoren angeschaut und werde wohl auch einen der ADXLxxx ausprobieren, da ich gerne auf absolute (und nicht relative wie bei Gyros) Werte zurückgreifen möchte.
Nun eine mathematische Frage: Mit einem zweiachsigen Accelerometer kann ich ohne Problem 360° Neigung (z.B. Pitch) um eine Achse feststellen. Mit zwei zweiachsigen Accelerometern (oder einen dreiachsigen) kann man jeweils 360° auf 2 Achsen (Pitch und Roll) feststellen. Habe aber Probleme einen guten Algorithmus zu implementieren.
Das Problem ist, z.B.: Ich nutze x-Achse und y-Achse (zeigt nach oben) für Roll. 360° sind ohne Problem zu erkennen. y-Achse und z-Achse können für 360° Pitch verwendet werden. Aber beides jeweils ja nur getrennt. Wenn ich z.B. um 90° "rolle" und dann einen Pitch ausführen will, kann ich nicht mehr y-Achse und z-Achse verwenden, sondern muss >X<Achse (die jetzt nach oben zeigt) und z-Achse verwenden. Ich muss also immer schauen, wo (in welchem Quadranten ich mich befinde) und dann die entsprechenden Achsen verwenden. Vielleicht mache ich es auch zu kompliziert und deswegen die Frage an euch:
Kennt jemand einen besseren Algorithmus, z.b. ohne Quadranten? :-k
Es geht nur darum, Pitch und Roll auszuführen. Und diese global und nicht auf das lokale Koordinatensystem bezogen.
Danke, Benson
P.S. Ich kenne andere Möglichkeiten wie Verknüpfung von Accelerometern mit Gyros oder Erdmagnetfeldmessern. Mich interessiert aber vorrangig eine intelligente Lösung für obigen Fall.
PPS. Ich weiß nicht, ob son Mathezeugs hier richtig ist. Wenn nicht verschiebt mich oder ignoriert mich.
Nun eine mathematische Frage: Mit einem zweiachsigen Accelerometer kann ich ohne Problem 360° Neigung (z.B. Pitch) um eine Achse feststellen. Mit zwei zweiachsigen Accelerometern (oder einen dreiachsigen) kann man jeweils 360° auf 2 Achsen (Pitch und Roll) feststellen. Habe aber Probleme einen guten Algorithmus zu implementieren.
Das Problem ist, z.B.: Ich nutze x-Achse und y-Achse (zeigt nach oben) für Roll. 360° sind ohne Problem zu erkennen. y-Achse und z-Achse können für 360° Pitch verwendet werden. Aber beides jeweils ja nur getrennt. Wenn ich z.B. um 90° "rolle" und dann einen Pitch ausführen will, kann ich nicht mehr y-Achse und z-Achse verwenden, sondern muss >X<Achse (die jetzt nach oben zeigt) und z-Achse verwenden. Ich muss also immer schauen, wo (in welchem Quadranten ich mich befinde) und dann die entsprechenden Achsen verwenden. Vielleicht mache ich es auch zu kompliziert und deswegen die Frage an euch:
Kennt jemand einen besseren Algorithmus, z.b. ohne Quadranten? :-k
Es geht nur darum, Pitch und Roll auszuführen. Und diese global und nicht auf das lokale Koordinatensystem bezogen.
Danke, Benson
P.S. Ich kenne andere Möglichkeiten wie Verknüpfung von Accelerometern mit Gyros oder Erdmagnetfeldmessern. Mich interessiert aber vorrangig eine intelligente Lösung für obigen Fall.
PPS. Ich weiß nicht, ob son Mathezeugs hier richtig ist. Wenn nicht verschiebt mich oder ignoriert mich.