Sunday 8 January 2017

Gps Geschwindigkeit Gleitender Durchschnitt

Im Entwicklung einer Android-Anwendung mit GPS. Id wie ein Feature implementieren, dass die Nutzer durchschnittliche Geschwindigkeit über die 1515 Minute zeigt implementieren. Etwas wie die CPU-Last auf Unix. Ich kann den Durchschnitt leicht berechnen, indem ich die zurückgelegte Distanz von Sekunde zu Sekunde kumuliere und sie durch die verstrichene Zeit dividiere, aber ich kann nicht an eine intelligente Weise denken, den gleitenden Durchschnitt zu berechnen. Offensichtlich kann ich id getan, indem Sie den Abstand zwischen der letzten und der aktuellen Position in einem Array jede Sekunde beim Löschen des ältesten Wert. Im, der nach einer ordentlichen Weise sucht, dies zu tun. Sie müssen alle Werte für die gesamte Zeitspanne zu speichern, wie Sie bereits vorgeschlagen. Der Grund ist, dass Sie irgendwie die Beiträge der alten Werte zum gleitenden Durchschnitt vergessen müssen. Sie können nicht genau das tun, wenn Sie nicht wissen, was diese Werte wo (d. h. wenn Sie sie nicht speichern). In Ihrem Fall beträgt 1 Wert jede Sekunde für 15 Minuten 15 60 900 Datenpunkte, das sollte OK sein. Beachten Sie, dass Sie bei jeder Aktualisierung keine Summe über das gesamte Array ausführen müssen: Sie können den neuen gleitenden Durchschnitt aus der Anzahl der Datenpunkte, den neuen Wert und den Wert berechnen, den Sie zu diesem Zeitpunkt vergessen haben: Hier ist n Die Anzahl der Datenpunkte (900 in Ihrem Fall), xforget ist der Wert, den Sie vergessen und xnew der letzte Wert ist. Sie können dann xforget von der Vorderseite des Arrays und speichern xnew am Ende. Anstelle eines Arrays möchten Sie eine über eine verknüpfte Liste implementierte Warteschlange verwenden. Antwort # 2 am: April 25, 2010, 07:25:25 am »Es ist ein Weg, um es zu gehen, dass ist ziemlich einfach: Wenn Sie Probenahme Position jede Sekunde halten 901 Proben in einer Warteschlange, das ist 15 Minuten wert (und 1 extra). Position 0 ist die aktuellste Messung, effektiv Ihre aktuelle Position. Für eine durchschnittliche Geschwindigkeit über die letzten X Minuten: Geschwindigkeit ist jetzt Distanz Einheiten pro Sekunde, umwandeln zu mph oder kph oder was auch immer Einheiten, die Sie benötigen. Unterschiedliche Werte von X können für jeden Durchschnitt zwischen 1 und 15 Minuten verwendet werden. Ich habe hier ein Gerät, das mir GPS-Koordinaten geben kann. Das Zeitintervall, das ich definieren kann. Ich möchte es verwenden, um die durchschnittliche Geschwindigkeit während der Fahrt oder mit dem Auto zu berechnen. Eigentlich habe ich eine Orthodrom-Formel verwendet, um den Abstand zwischen zwei Punkten zu berechnen und dann durch das gegebene Zeitintervall geteilt. Durch die Umsetzung folgte ich diesem Begriff. Leider konnte ich nur einen deutschen Link finden, aber ich glaube, die Formel sollte in jeder Sprache verständlich sein) Leider lässt sich mit dieser Formel und einem Zeitintervall von 1 Sekunde sehr unpräzise Ergebnisse erzielen. Die Geschwindigkeit beim Gehen beträgt zwischen 1 kmh und 20 kmh. Also ich frage mich, ob es eine allgemeine Referenz auf, wie man Abstandsberechnung zwischen zwei GPS-Koordinaten (Ich fand etwas Ähnliches auf SO) und insbesondere, die das beste Zeitintervall, um die GPS-Koordinaten aktualisiert Mai 9 10 bei 0:27 I zu implementieren ist Dass Sie dies testen, indem Sie mit einer konstanten Geschwindigkeit (ich glaube, 5 km / h ist eine normale Gehgeschwindigkeit) beim Messen Ihrer GPS-Position einmal pro Sekunde. Die Variation, die Sie in der momentanen Geschwindigkeit sehen (der Abstand zwischen jedem gemessenen Punkt geteilt durch 1 Sekunde), ist entweder auf zufällige Veränderung der gemessenen GPS-Position zurückzuführen oder Sie arent nehmen Ihre Messungen genau eine Sekunde auseinander (oder es könnte beides sein Dinge). Ich gehe davon aus, dass Ihre Messungen genau eine Sekunde auseinander genommen werden. Handgehaltene GPS-Geräte sind viel weniger genau als beworben. Während seine oft behauptet, dass die Geräte genau auf innerhalb von 10 ft der wahre Position sind, ist dies einfach nicht so. Der beste Weg, um die Genauigkeit eines GPS-Gerätes zu messen und zu melden, ist, es an einem Ort zu lassen, an dem es die Satelliten sehen und nicht geregnet werden kann, und Daten von wenigen Tagen aufzuzeichnen. Sie können dann Google Maps verwenden, um die Punkte zu zeichnen - Ive getan dieses um mein Haus und um das Büro, das eine gute Weise ist, Ihnen ein Maß der Skala zu geben. Offensichtlich, wenn die Geräte perfekt genau waren, würden Sie sehen, alle Ihre gemessenen Punkte an einem Ort. Oder, wenn die 10 ft Genauigkeit Sache wahr waren, würden Sie sehen, alle Punkte in einem kleinen Cluster innerhalb eines 20 ft. Durchmesser Kreis. Was Sie stattdessen sehen (mit jedem GPS-fähigen Gerät, das ich jemals getestet habe) handelt es sich um eine Kombination von relativ kleinen Positionsstreuungen (in der Größenordnung von einigen zehn Füßen), die auf einer Skala von wenigen Sekunden auftreten, und eine längerfristige zufällige Wanderung Der durchschnittlichen Position, die 200 oder 300 ft bewegen könnte innerhalb eines Tages oder zwei. Wenn über Ihrem eigenen Haus zum Beispiel, könnte es aussehen wie Ihr PDA wanderte über das Nachbarhaus, dann über die Straße, dann auf der Straße zwei Häuser, zurück in Richtung zu Ihnen usw. alle während Jittering etwa 5 oder 10 Fuß hier oder Dort trank es zu viel Kaffee. GPS kann genauer sein als dieses. Vermessungsingenieure verwenden Geräte mit wesentlich leistungsfähigeren Empfängersets (so dass sie eine viel genauere Lesung der Satellitensignale erhalten), und sie lassen sie an Ort und Stelle für mehrere Tage hintereinander liegen. Handheld-Geräte haben billige Empfängerchips und billige Antennen und müssen mit allen Arten von Signalstörungen sowieso umgehen. Ihre beste Wette ist, einen laufenden Durchschnitt zu tun, um Ihre momentane Geschwindigkeit zu berechnen. Anstatt den Abstand zwischen dem aktuellen Punkt und dem vorherigen Punkt um 1 Sekunde zu dividieren, nehmen Sie die letzten 5 Abstände zwischen den Punkten und teilen Sie sich durch 5 Sekunden (oder wie viele Sekunden Sie verwenden). Es ist wichtig, nicht nur den Unterschied zwischen dem aktuellen Punkt und dem Punkt 5 Sekunden zu nehmen und diese Distanz durch 5 zu teilen, da dies jede nichtlineare Bewegung verpassen würde. Update: Ich bemerkte in einem Kommentar, dass Sie mit einem Android-Gerät. Weißt du, ob es einen eingebauten GPS-Empfänger hat Viele (die meisten) Android-Geräte dont, was bedeutet, dass ihr GPS nicht die Triangulate-on-the-Satellite-Version von GPS, aber die Vermutung-wo-Ich-bin - On-the-Signal-aus-der-Zelle-Türme-Version. Dies ist viel weniger genau positioniert, wie Im sicher, dass Sie aus dem snarkiness meiner Beschreibung zu erzählen. ) Geantwortet Mai 9 10 at 1:09 Irgendwann, wie ich schon sagte in meiner Antwort der beste Weg, um eine device39s Genauigkeit zu messen ist, lassen Sie es aufzeichnen seine GPS-Koordinaten für ein paar Tage und dann plotten Sie alle Punkte. Ich würde es wirklich schätzen, wenn Sie dies mit Ihren beiden Geräten und dann lassen Sie mich wissen, was Ihre Ergebnisse sind. Ndash MusiGenesis Mai 9 10 am 2:15 Vermesser nehmen in der Regel die Tatsache, dass die quotrandom walkquot Sie beschrieben haben sehr ähnliche Fehlervektoren für GPS-Geräte, die nahe beieinander sind, so dass der Differenzvektor zwischen zwei GPSs ist viel genauer als ihre Absoluten Positionen. Eine Basis-GPS-Station an einem bekannten Punkt erzeugt der Differenzvektor Fehler im Bereich von 1-2 Metern. Ndash Rafa Dowgird GPS-Systeme können sofortige Geschwindigkeit direkt, ohne Interpolation Positionen zu liefern. Ich habe irgendwo gelesen, dass die Geschwindigkeitsmessung tatsächlich genauer ist als die Positionsmessung. Was devicesystemOS verwenden Sie auf Android, versuchen Sie die android. location. Location. getSpeed ​​() - Methode (zusammen mit hasSpeed ​​()) in Ihrer LocationListener-Implementierung. Kann die Geschwindigkeitsmessung genauer sein als die Positionsmessung, aber Sie haben recht, es ist eine andere Messung und basiert nicht einfach auf Berechnungen mit den Positionsmessungen. GPS-Empfänger verwenden tatsächlich die Doppler-Verschiebungen der Satellitensignale, um Geschwindigkeiten zu berechnen. Ndash MusiGenesis Mai 9 10 am 11:53 Suche auf google für GPS SPEED GENAUIGKEIT, und Sie finden Berichte, dass die Geschwindigkeit aus Position-vs-Zeit berechnet ist zehnmal schlechter als nur mit dem Geschwindigkeitsparameter kommen direkt aus dem GPS-Empfänger . Der Geschwindigkeitsparameter ist nicht abhängig von der Positionsgenauigkeit, sondern wird aus dem Doppler (Geschwindigkeitsdifferenz) aus den Satellitensignalen berechnet.


No comments:

Post a Comment