Ich möchte aktuelle Geschwindigkeit des Autos wissen und einen bestandenen Weg machen. Ich habe ein Android-Handy mit Beschleunigungsmesser und Gyroskop, die mir Daten gesendet haben. Dies ist die Daten im Telefonsystem der Koordinate, die wahrscheinlich nicht das gleiche wie das Koordiantensystem des Autos wäre.
Wie kann ich diese Beschleunigungen und Rotationen in ein Koordinatensystem umwandeln?
Die generische Antwort für Ihre generische Frage lautet no
. Die Beschleunigung misst die Änderungen in der Geschwindigkeit, also das Beste, das Sie von der Beschleunigung bekommen konnten, ist die Geschwindigkeitsänderung.
Um die absolute speed
zu erhalten, müßten Sie die initial speed
haben und sie der Geschwindigkeitsänderung hinzufügen:
v(t) = v0 + a*t
Wenn Sie also ein Auto auf einer geraden Linie fahren lassen würden und Ihr Gerät am Auto befestigt wäre, könnten Sie leicht die Geschwindigkeit ändern (obwohl sich Messfehler addieren und schnell zu Diskrepanzen führen).
In der Praxis werden Sie mit vielen Problemen konfrontiert, die versuchen, es zu implementieren, nämlich:
initial speed
basierend auf demselben Referenzwert wie die Beschleunigung bestimmen. Dies würde einige Messungen und viel Trignometrie erfordern, da Sie beide Werte von unterschiedlichen Sensoren mit unterschiedlichen Raten erhalten würden. Grüße.
Sie benötigen eine Art von externer Referenz (z. B. GPS ist so etwas): Wenn Sie nur die Beschleunigung integrieren, wird der Fehler unendlich gehen.
Weil diese Sensoren nicht genau genug sind. wird der Fehler schnell außer Kontrolle geraten. (Die verknüpfte Antwort bezieht sich auf die Position, aber dasselbe gilt für die Geschwindigkeit.)
Im Falle eines Autos sind Sie mit dem GPS besser dran. Wenn Sie etwas Phantasievolles tun möchten, können Sie die von einer Karte abgeleiteten Umweltbeschränkungen durchsetzen, das heißt, dass das Auto auf einer Straße und nicht durch Gebäude usw. fährt. Weitere Details dazu finden Sie in Kapitel 5 der Dissertation mit dem Titel Fußgängerexploration für Innenräume .
Es sieht so aus, als ob es möglich ist. Ich habe kein Android-spezifisches Beispiel, aber dieses Forum hat ziemlich viel darüber zu reden: Ссылка
Es wäre jedoch viel einfacher, wenn Sie die Android-Standortklasse verwenden würden. Insbesondere sollte die Methode getSpeed () Ihnen geben, was Sie brauchen: Ссылка
Die Standortklasse hängt jedoch von einem Standortanbieter ab, sodass Ihre App entsprechende Berechtigungen benötigt.
Tags und Links android accelerometer gyroscope