Wie kann ich die Schwerkraft mithilfe eines Beschleunigungsmessers von Wiimote berücksichtigen?

9

Für ein Projekt haben mein Team und ich versucht, eine Wiimote in einem 3D-Raum mit dem eingebauten Beschleunigungsmesser und dem WiiMotion Plus-Gyroskop zu verfolgen.

Wir konnten die Rotation und Position mit einem ODE verfolgen (gefunden auf Ссылка ,), aber wir sind hineingelaufen ein Problem beim Entfernen der Schwerkraftkomponente vom Beschleunigungsmesser.

Wir haben uns Komponenten des Beschleunigungsmessers angeschaut , die die Formel hatten (implementiert in C # / XNA)

%Vor%

Aber es funktioniert überhaupt nicht. Als Referenz ist die Beschleunigung direkt vom Beschleunigungsmesser und die Drehung wird im Bogenmaß gemessen, nachdem sie durch die ODE durchgearbeitet wurde.

Außerdem haben wir Probleme zu verstehen, wie diese Formel funktioniert. Aufgrund der Tatsache, dass unser Tracking alle Dimensionen berücksichtigt, warum wird Yaw nicht berücksichtigt?

Vielen Dank im Voraus für Ratschläge oder Hilfe, die angeboten werden.

BEARBEITEN:

Nachdem wir es mit meinen Teamkollegen und meinem Boss besprochen haben, haben wir festgestellt, dass diese Formel tatsächlich funktionieren würde, wenn wir X, Y und Z richtig verwenden würden. Wir sind jedoch zu einem anderen Stumpf gekommen.

Das Problem, das wir haben, ist, dass die Wiimote-Bibliothek, die wir verwenden, relative Rotationswerte basierend auf der Gyroskopbewegung zurückgibt. Mit anderen Worten, wenn die Tasten nach oben zeigen, dreht der Wiimote nach links und rechts und wenn die Tasten auf Sie gerichtet sind, ist Gieren dasselbe, wenn es sich um die Rotation des gesamten Wiimote handeln soll.

Wir haben festgestellt, dass Euler-Winkel unsere Antwort sein können, aber wir sind uns nicht sicher, wie wir sie richtig anwenden können. Wenn Sie etwas zu dieser neuen Entwicklung oder anderen Vorschlägen sagen, geben Sie sie bitte an.

    
Keith D Ball 10.11.2010, 20:43
quelle

2 Antworten

2

Ich würde wetten, dass Ihr Beschleunigungsmesser nicht in der Schwerelosigkeit kalibriert wurde, so dass es zumindest schwierig sein wird, den Effekt der Schwerkraft zu beseitigen.

    
Paul Sonier 10.11.2010 20:46
quelle
1

Zuerst würde ich vorschlagen, keine einzelnen Komponenten zu verwenden, um die Rotation (Gimbal Lock) zu speichern, eine Matrix würde besser funktionieren. Kalibrieren Sie, indem Sie es ruhig halten und messen (es wird 1g nach unten sein). dann für jede Drehung die Rotationsmatrix multiplizieren. dann können Sie feststellen, welcher Weg oben ist, und eine Matrix von 1g von dem Vektor abziehen, der die Beschleunigung darstellt. Ich weiß, dass das nicht viel Sinn macht, aber ich bin in einer Eile, füge Kommentare hinzu, wenn du Fragen hast.

    
dan_waterworth 10.11.2010 21:07
quelle

Tags und Links