Wie messen Sie die Geschwindigkeit des Autos per Telefon mit Beschleunigungsmesser und Gyroskop?

7

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?

    
Winte Winte 08.11.2012, 09:01
quelle

4 Antworten

14

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:

  • Sie müssen 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.
  • Das Auto wird sich nicht in einer geraden Linie bewegen, daher wird sich Ihr Beschleunigungsbezug ständig bewegen (viel mehr Trignometrie und Infinitesimalrechnung).
  • Wenn sich das Gerät in der Hand des Benutzers befindet, erhöhen die Bewegungen des Geräts in Bezug auf das Auto die Berechnungen (und die akkumulierten Fehler) noch mehr.

Grüße.

    
Luis 08.11.2012 10:20
quelle
4

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 .

    
Ali 08.11.2012 11:57
quelle
3

Beide liefern nichts, wenn das Auto einige Zeit mit der gleichen konstanten Geschwindigkeit fährt. Der einzige Weg wäre GPS, das mit jedem Ort eine berechnete Geschwindigkeit hat.

    
NikkyD 08.11.2012 09:20
quelle
2

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.

    
Vaze 08.11.2012 09:09
quelle