5

Meine Frage ähnlich Koordinate zu Changing sensor coordinate system in androidAndroid Convert Gerät Koordinatensystem „user“ System

Ich mag miteinander unabhängig von Gerät Orientierung eines Benutzers Bewegungen vergleichen können. Wenn die Benutzer das Telefon im Hochformat halten und den Arm beugen, sind die Beschleunigungswerte die gleichen wie wenn er sein Handy im Querformat hält und dann seinen Arm in die gleiche Richtung beugt.

Das nenne ich das "Benutzer" -Koordinatensystem. Es unterscheidet sich vom Weltkoordinatensystem, da es keine Rolle spielt, welcher Windrichtung der Benutzer gegenübersteht. Es unterscheidet sich von den Gerätekoordinaten, da es keine Rolle spielt, wie der Benutzer sein Gerät hält.

Es ist in meiner Anwendung akzeptabel, vor jeder Bewegung einen Kalibrierungsschritt zu machen, damit die Basis-/Ruheorientierungsmatrizen bestimmt werden können. Geht es vielleicht nur darum, die Matrix der ersten Bewegung mit der Umkehrung der zweiten (und dann mit den neuen Werten) zu multiplizieren?

Die Antwort in der genannten Frage scheint richtig zu sein, aber ich brauche eine konkretere Erklärung , die tatsächlichen Codebeispiele wären ideal.

Hinweis remapCoordinateSystem wird nicht ausreichen, es akzeptiert nur rechte Winkel. Ich muss in der Lage sein, mit kleinen Abweichungen zu arbeiten, da das Gerät an einem Handgelenk befestigt ist, das nicht immer im rechten Winkel zum Arm steht.

Antwort

0

Ich bin derzeit zu diesem Thema zu arbeiten, und ich denke, das helfen könnten: convert device coordinate system to world corrdinate system

Wir, dass für die meiste Zeit davon ausgehen können, nutzen die Menschen das Telefon im Stehen oder Gehen oder Sitzen, was bedeutet, dass die Benutzerkoordinatensystem teilen sich die gleiche z-Achse (Schwerkraft) und eine feste Differenz im Grad zwischen y-Achse (Benutzerkoordinate, Vorderseite des Benutzers) und y-Achse (Weltkoordinate, Nordrichtung). Der Gradunterschied kann über TYPE_MAGNETIC_FIELD sensor erhalten werden. So können wir von Weltkoordinaten zu Benutzerkoordinaten transformieren.

Was ist mit dem Benutzer mit dem Telefon auf dem Bett liegen? Ich denke für diese Art von Fall ist eine Vorkalibrierung erforderlich, indem man die y-Achse der Benutzerkoordinate definiert, wie eine Bewegung, um dem Telefon zu sagen, welche Richtung die Vorderseite des Benutzergesichts ist.