Lineare Beschleinigung vom Sensor immer positiv?



  • Guten Morgen.

    Unter Android gibt es einen virtuellen Sensor Namens
    Sensor.TYPE_LINEAR_ACCELERATION
    Von diesem kann man 3 Beschleunigungswerte jeweils für xx, yy und zz -Richtung bekommen. Nun kann man ja die gesamte Beschleunihung mit geometrischem Mittelwert ausrechnen. Also a=sqrt(x2+y2+z2)a=sqrt(x^2+y^2+z^2) dies entspricht ja auch der Vektorlänge. Dieser Wert ist ja immer positiv. Aber die Beschleunigung beim Bremsen sollte doch negativ sein. Ich wollte aa hochleiten, durch berechnen der Fläche unter aa um auf vv zu kommen.



  • Integriere ("hochleiten") getrennt a.x, a.y, a.z -> v.x, v.y, v.z
    Und dann ist sqrt(v.x^2 + v.y^2 + v.z^2) der Betrag deiner Endgeschwindigkeit.



  • Vielen Dank. Ich gebe dir bei der Möglichkeit ein Kaffee aus.



  • Ist in "TYPE_LINEAR_ACCELERATION" noch die Erdanziehung mit drin? Wenn ja, müsstest Du die rausrechnen und dafür über Drehratensensoren noch die Orientierung mit bestimmen, damit Du immer weißt, wo "oben" und "unten" ist.

    Ergänzung: Nur mit Drehratensensoren alleine weiß man natürlich noch nicht, wo oben und unten ist. Erst wenn man Beschleunigungssensoren geschickt mit Drehratensensoren kombiniert, kriegt man relativ gut raus, wo oben und unten ist.

    Wo du so oder so mit zu kämpfen haben wirst, ist ein Drift aufgrund von Messrauschen und Kalibrierfehlern. Im besten Fall wächst der Fehler der integrierten Geschwindigkeit nur mit der Wurzel der Zeit. Im schlimmsten Fall wächst der Fehler quadratisch mit der Zeit (je nachdem, ob etwas bzw was alles falsch läuft). Es lohnt sich, darüber nachzudenken, wie man erkennen könnte, wann die Geschwindigkeit eigentlich wieder 0 sein müsste, um dann auch den Geschwindigkeits-Fehler wieder auf 0 setzen zu können. Wenn man sich solche Sensoren an einen Schuh klebt, kann man z.B. versuchen, Schritte zu erkennen. Man weiß ja, dass ein nicht zu verachtender Teil der Zeit, ein Schuh sich beim Gehen gar nicht bewegt (v=0 am Boden). Wenn man das erkennen kann und dann die Geschwindigkeit wieder auf 0 setzt, nennt man "ZUPT" (zero update).



  • Man könnte die Geschwindigkeit an gps-Geschwindigkeit anpassen.



  • neoexpert schrieb:

    Man könnte die Geschwindigkeit an gps-Geschwindigkeit anpassen.

    Joa, das ginge auch. Je mehr Sensoren du hast, desto besser. Wenn man da richtig auf die Kacke hauen will, macht man "Sensorfusion" mit 'nem Kalman-Filter. 🙂

    Relevanter Link:
    http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/


Anmelden zum Antworten