Hallo, ich studiere Informatik im Hauptfach und diese Frage sollte für alle Physikgenies hier wirklich einfach sein:
Ich habe eine Reihe von Datenpunkten von einem Beschleunigungsmesser an einem sich bewegenden Objekt, das im Wesentlichen der Form folgt.
X-Beschleunigung einschließlich Schwerkraft
Y-Beschleunigung einschließlich Schwerkraft
Z-Beschleunigung einschließlich Schwerkraft
Drehung um die x-Achse
Drehung um die y-Achse
Drehung um die z-Achse
Ich möchte das Objekt im 3D-Raum zeichnen, und nach einigem Suchen wurde mir gesagt, ich solle doppelt integrieren, um eine Verschiebung zu erhalten.
Ist das der beste Weg? Es muss nicht recheneffizient sein, solange es leicht zu verstehen ist.
Im Prinzip könnten Sie die Verschiebung aus Beschleunigungsmessermessungen erhalten, wenn Sie auch jederzeit eine Schätzung der Ausrichtung des Telefons hätten.
Sie müssten die Telefonausrichtung verwenden, um jede momentane Beschleunigungsmessung in denselben Koordinatenrahmen umzuwandeln, und dann eine konstante Komponente abziehen, die die Schwerkraft darstellt, und dann doppelt integrieren.
Nehmen wir, um es deutlich zu machen, ein Bild, an dem die Schwerkraft entlang zieht Richtung, ist Osten, ist Norden.
Das Telefon kann in eine beliebige Richtung zeigen, also definiert es auch seinen eigenen zeitabhängigen Koordinatenrahmen, z. zeigt auf die rechte Seite des Bildschirms, zeigt auf den oberen Rand des Bildschirms und Punkte aus dem Bildschirm. Dies ist der Rahmen, in dem Sie Ihre Beschleunigungsmesserdaten erhalten .
Angenommen, das Telefon enthält ein perfektes Gyroskop, damit Sie wissen, wie Sie die Ausrichtung des Telefons im Raum beschreiben. dh du kannst schreiben bezüglich Und . Dann können Sie eine Rotationsmatrix berechnen die zwischen Frames konvertiert.
Und dann die Schwerkraft abziehen:
Unter der Annahme, dass das Telefon am Ursprung im Ruhezustand beginnt:
.
Voila!
Diese Methode ist jedoch sehr fehleranfällig. Wenn Ihre Orientierungsschätzung beispielsweise auch nur ein kleines bisschen daneben liegt, funktioniert die Subtraktion der Schwerkraft nicht gut, und der Algorithmus geht davon aus, dass Ihr Telefon beschleunigt, selbst wenn es stillsteht. Ein Fehler von einem Grad kann leicht dazu führen, dass er um Kilometer in der Größenordnung von Minuten abweicht, zumal jeder Beschleunigungsfehler doppelt integriert wird!
Sehen Sie hier für eine gute Diskussion!
Neugierig
Sam Bader
Neugierig
Benutzer198413
David Hammen
Benutzer198413
David Hammen
Benutzer198413