Erkennen von "Bewegungsmangel" auf dem GPS-Gerät

21

Wir verwenden ein GPS-Ortungsgerät, das in Fahrzeugen montiert ist, und zeigen später die Bewegungen in unserer Anwendung an. Wir haben jedoch ein kleines Problem mit Fahrzeugen, die sich NICHT bewegen.

Trotz des Stillstands sendet das GPS-Gerät Informationen mit unterschiedlichen Positionen, manchmal meldet es sogar, dass sich das Fahrzeug bewegt (hin und wieder meldet es, dass sich ein Fahrzeug ziemlich schnell bewegt). Das Endergebnis ist eine hässliche Darstellung der Bewegung in unserer Anwendung und schlimmere, falsche Berechnungen in Bezug auf die Dauer der Bewegung und des Stillstands des Fahrzeugs (wir haben auch statistische Analysen im Gange).

Ich weiß, dass das Problem nicht neu ist: Google Navigation auf meinem Android-Handy hat auch Probleme, wenn ich ab und zu an einer Kreuzung halte und feststelle, dass ich jetzt in die entgegengesetzte Richtung fahre (obwohl ich tatsächlich stehen bleibe) ).

Wir müssen jedoch unbedingt wissen, dass sich das Fahrzeug nicht bewegt, insbesondere über einen längeren Zeitraum.

Das Problem tritt bei einigen Fahrzeugen auf, die über Nacht unter Dächern gehalten werden, was dazu führt, dass das GPS aufgrund eines schwächeren Signals (das jedoch immer noch stark genug ist, um eine Position zu ermitteln) außer Kontrolle gerät.

Wir können feststellen, ob der Motor des Fahrzeugs ein- oder ausgeschaltet ist, aber wir können nicht davon ausgehen, dass er sich bei ausgeschaltetem Motor nicht dreht (es gab Vorfälle, in denen ein beschädigtes Fahrzeug abgeschleppt wurde ... und natürlich gibt es einen Fall von möglichem Diebstahl, der ebenfalls behoben werden muss gemeldet werden).

Was ist der beste Weg, um dieses Problem anzugehen?

BEARBEITEN:

So fügen Sie weitere Informationen hinzu:

  • Das GPS-Gerät verfügt zwar über einen Beschleunigungsmesser, der jedoch nur binäre Informationen zurückgibt (sich bewegend / nicht bewegend) und entweder zu empfindlich ist oder einfach nicht funktioniert.

  • Wir haben Zugang zu Dingen wie Anzahl der Satelliten oder Qualität, aber wir sind uns nicht sicher, wie wir diese Informationen nutzen sollen. Also meine frage. :)

  • Das Problem besteht nicht darin, in Echtzeit zu erkennen, ob sich ein Fahrzeug bewegt oder nicht. Wir sammeln die Daten und führen später statistische Analysen durch und zeigen sie an. Wir zeigen die aktuelle Position des Fahrzeugs, aber das ist von geringer Bedeutung. Im Grunde genommen müssen wir in der Lage sein, anhand historischer Daten festzustellen, ob sich ein Fahrzeug bewegt hat oder nicht.

Shaamaan
quelle
7
Wenn in Ihrem Tracker ein Beschleunigungsmesser integriert ist, können Sie anhand der Beschleunigungsmesserdaten feststellen, ob sich das Fahrzeug tatsächlich bewegt, und die GPS-Ortung deaktivieren, wenn sich das Fahrzeug nicht bewegt.
Geogeek
2
Protokolliert Ihr GPS-Gerät die Signalqualität, die Anzahl der Satelliten und diese Art von Daten? Es hört sich auch so an, als würden Sie "die Bewegungen später anzeigen ...". Können Sie also bestätigen, dass es sich nicht um ein Problem mit der Echtzeiterkennung handelt , sondern um etwas, das Sie später während der Verarbeitung herausfiltern werden?
Simbamangu
Ich habe meine Frage bearbeitet, um weitere Informationen zu geben. Kurz gesagt: Der Beschleunigungsmesser verhält sich verrückt, wir haben Zugriff auf Satellitenzählung oder Qualitätsinformationen, aber wir sind uns nicht sicher, wie wir sie verwenden sollen, und ja, dies ist KEINE Echtzeiterkennungsfrage.
Shaamaan
2
Auf der Statistik-Website finden Sie einige nützliche Empfehlungen zum Erkennen von Ausreißern und zum Glätten .
whuber
1
Geofence - Befindet sich ein Fahrzeug in einer Zone (z. B. in einer Garage, notieren Sie die Position nicht) - androidzoom.com/android_applications/geofencing
Mapperz

Antworten:

5

In den Kommentaren unter Ihrer Frage werden einige gute Punkte hervorgehoben, insbesondere zur Interpretation der Satellitendatenqualität (Anzahl der Satelliten, Signalstärke), und Sie können diese Informationen entweder auf dem mobilen Gerät oder auf dem Server verwenden, um "schlechte" GPS-Werte herauszufiltern. Die Frage besteht aus zwei Teilen: 1) Wie definieren Sie einen falschen GPS-Messwert und 2) wie definieren Sie einen stationären Zustand.

Beginnen wir mit ein paar Parametern:

  • stationary_speed = Wenn die mobile Einheit langsamer fährt, ist sie stationär
  • too_fast = Wenn die mobile Einheit schneller fährt, hat sie eine falsche GPS-Anzeige ausgegeben

Es ist schwierig, diese Geschwindigkeiten genau zu berechnen. Angenommen, Sie berechnen die Geschwindigkeit als / zwischen dem vorherigen Messwert (bei t0) und dem aktuellen Messwert (bei t1). Wenn das Zeitdelta groß ist und die Einheit um eine Kurve fährt, ist die tatsächlich zurückgelegte Strecke größer als die berechnete Strecke. Wenn Sie zwei falsche Messwerte hintereinander erhalten und diese nahe genug beieinander liegen, können Sie unvorhersehbare Ergebnisse erzielen.

Wenn Sie die Geschwindigkeit erreicht haben, vergleichen Sie sie einfach mit Ihren Parametern, um festzustellen, ob die GPS-Anzeige falsch ist oder ob das Gerät stillsteht.

Sie können mit Kalman-Filtern eine komplexere Filterung durchführen , dies kann jedoch weitaus aufwändiger sein.

Katahdin
quelle
Das GPS-Gerät gibt mit jedem gesendeten Paket eine Reihe von Daten zurück, einschließlich der Position und der aktuellen Geschwindigkeit. Wir haben bereits ein System eingerichtet, bei dem wir annehmen, dass sich das Fahrzeug nicht bewegt, wenn die Geschwindigkeit unter einem bestimmten Wert liegt. In einigen Fällen sendet ein Fahrzeug jedoch Daten mit Geschwindigkeiten über diesem Schwellenwert, obwohl es sich noch im Stillstand befindet (Anmerkung: diese Geschwindigkeiten sind nicht so toll, dass wir eine Obergrenze hinzufügen könnten). Ich bin mir nicht sicher, ob es eine gute Idee ist, die Geschwindigkeit nur anhand von Positionen (und nicht anhand des GPS-Messwerts) zu berechnen.
Shaamaan
2

Wir haben es geschafft, die Bewegungssensordaten zu optimieren.

Anhand der vom GPS-Tracker gemeldeten Bewegungssensordaten, Zündungsdaten und Geschwindigkeit sollten wir in der Lage sein, mit ziemlich guter Genauigkeit festzustellen, ob sich ein Fahrzeug bewegt oder nicht.

Wir haben uns auch die Anzahl der Satelliten angesehen, und das sah nicht gut aus. Während die Anzahl der Satelliten für ein Fahrzeug unter einem Dach geringer war, war sie immer noch relativ hoch. 9-10 ist der übliche Wert für ein solches Fahrzeug, während er unter einem Dach auf 7 abfällt (kann aber gelegentlich ein Signal erhalten und auch steigen). Es erübrigt sich zu erwähnen, dass sich die Anzahl der Satelliten als weniger nützlich erwies.

Shaamaan
quelle
Die Informationen sind weiterhin hilfreich, um fehlerhafte Daten zu ermitteln. Ich mache eine Menge 'korrekter' Filterung basierend darauf. 9 ist immer noch hoch, wenn Sie sicher sind, dass der Chip nicht den letzten bekannten Wert wiedergibt, sie haben diese Funktionalität an Bord und sie ist die meiste Zeit aktiviert.
Glenn Plas
Das Hauptproblem sind Fahrzeuge, die in einer Art Schuppen für die Nacht gelagert werden. Ich denke nicht, dass dies die letzte bekannte Position wiederholt, da Fahrzeuge vollständig verschwinden, wenn sie in Betongaragen (oder etwas Festerem) einfahren / gelagert werden. Der Rückgang der Satelliten ist ein Indikator, aber er scheint subtil zu sein, und es hat sich als weitaus einfacher herausgestellt, nur die Bewegungssensordaten zu optimieren und zu verwenden.
Shaamaan
Nicht bei den über 3000 Fahrzeugen, die ich verfolge, benötigen Sie die Anzahl der Sats, die für die Reparatur verwendet wurden, nicht die, die angezeigt werden. Diese können hoch bleiben, wenn Sie ein Dach haben, das noch etwas von einem Signal passieren lässt. Aber der Fix ist zusammen mit den Db-Verstärkungswerten ein guter Indikator.
Glenn Plas
Ich kann perfekt sagen, welche sich innerhalb oder außerhalb einer Garage befinden. Ich leide auch nicht unter dem Spinnenproblem, da der Bewegungszustand / die Nichtbewegung es einfängt. Ich bin damit einverstanden, dass die Sensoren Ihnen viel mehr bieten, um weiterzumachen.
Glenn Plas
1
Es ist durchaus möglich, dass mein Kollege versehentlich die Anzahl der sichtbaren Satelliten festgelegt hat, anstatt die Anzahl, die für eine Korrektur verwendet wurde (alles, was ich sah, war eine Excel-Tabelle mit Daten, deren Spaltentitel manuell ausgefüllt wurden). : P Wie ich schrieb, war der Bewegungssensor auf jeden Fall unser Ausweg aus diesem Problem.
Shaamaan
2

Sie können die Anzahl der Sats verwenden, die für die letzte Korrektur verwendet wurden, nicht die angezeigten. Z.B. View = 11, Fix = 5 Und verwenden Sie die Max DB-Werte des Signals des stärksten Satelliten. Dies muss über 30 dB sein, um ein anständiges Signal zu erhalten.

Bei den von uns verwendeten Geräten handelt es sich um bewegte / nicht bewegte Sensoren: Beschleunigung, Vibration, Eingangsspannung, Eingangssignal (vom Tastenkontakt), GPS-Daten. Um Positionen wie Start / Stopp (ereignisbasiert) und Richtungs- / Entfernungsereignisse zu melden, muss sich das Gerät im Bewegungsmodus befinden (dies ist ein konfigurierbarer Countdown-Zähler).

Sensoren können kombiniert werden. Es werden keine Richtungs- / Entfernungsereignisse oder Zeitgeber gemeldet, während der Tracer feststellt, dass er sich nicht im Bewegungsmodus befindet. Wenn die beteiligten Sensoren nicht mehr melden, zählt der Timer auf Null und es wird ein Stoppereignis generiert + die Einheit wird in den Ruhezustand versetzt. Bis zum nächsten Mal. Auf diese Weise können Sie die Beschleunigungswerte eines startenden Motors trennen, um ihn in den Bewegungsmodus zu versetzen, und einen separaten unteren Schwellenwert, um ihn im Bewegungsmodus zu halten, da es sich bei beiden um sehr unterschiedliche Beschleunigungsmuster handelt.

Die von uns verwendeten Einheiten melden, wenn ein Punkt mit fehlerhaften Satellitendaten erfasst wurde, und sind sich nicht sicher, ob Ihre Hardware dies tut. Wir haben entweder eine SV_Position oder eine SV_KeepAlive oder eine SV_TimeAlive. Das Keepalive wiederholt den genauen letzten Wert, da das GPS weder seine Tabellen aktualisieren noch eine genaue, nicht einmal eine schlechte, Korrektur vornehmen kann. Das TimeAlive sehen Sie, wenn Sie einen Tunnel überqueren oder wenn jemand in einer Garage geparkt hat.

Eine Möglichkeit, auch zu überwachen, ist die Spannungsversorgung, auch wenn dies zum Teil fundierte Vermutungen sind und von der Art der Vermögenswerte abhängt, die Sie verfolgen. z.B. Ein Gerät, das bei 12:30 V betrieben wird, ist ein Auto, dessen Motor nicht läuft. Wenn Sie eines sehen, das 14.2v meldet, wissen Sie, dass sich die Lichtmaschine dreht. Für 24V-Fahrzeuge gibt es ein ähnliches Muster zu erkennen.

Hoffe das gibt dir eine Idee. Es hängt alles ein bisschen davon ab, wie gut die Hardware ist. Die Quelle Ihrer Daten beginnt dort und der Rest danach ist nur so gut wie er ist. Ich möchte Sie jedoch nachdrücklich dazu ermutigen, die Gerätefunktionen zu verwenden, um Qualitätsunterschiede zu machen, anstatt dies ausschließlich serverseitig zu tun (im Nachhinein). Wenn Sie 3000 Einheiten haben, benötigen Sie einen leistungsfähigen Server, um alle Tracking-Daten ständig zu analysieren. Bis dahin werden Sie feststellen, dass sich die Daten nicht skalieren lassen.

Glenn Plas
quelle
1
Ich muss mich zu der Idee äußern, Spannungen zu sammeln. Es ist exzellent! Wir haben ein paar Probleme mit bestimmten Fahrzeugen, und wir sind uns nicht sicher, warum. Wir vermuten derzeit, dass es an den mangelnden Fähigkeiten des Technikers liegt, der die Ortungsgeräte montiert hat, was zu Spannungsproblemen führt. Es kann sich jedoch auch um Sabotage handeln (ja, Sabotage; wir überwachen den Kraftstoffstand und die Fahrer) mag das nicht). Wenn wir die Spannung an den Tracking-Geräten aufzeichnen können, sollte das immens helfen. :) Riesige Daumen hoch! (Ich würde mehr als eine geben, aber leider kann ich nicht ...)
Shaamaan
Es funktioniert für jedes Fahrzeug, das keinen Spannungsregler zwischen Ihrer Tracer-Einheit hat. Überprüfen Sie diesen Link aus dem Konfigurationsprogramm von KCS. Dies ist das Gerät, von dem ich spreche. Führen Sie es einfach aus und sehen Sie, was Sie in Bezug auf Bewegungserkennung tun können. Sie werden überrascht sein. Laden Sie diese herunter , das ist die neueste Software der Version 9. Die Spannungsidee ist ihre. Sie werden dort einige gute Standardeinstellungen sehen (LKW / Auto / Motor)
Glenn Plas
Die Anzahl der Sats ist ein schlechter Indikator. Sie möchten wirklich, dass die Anzahl der Sats für die letzte Korrektur verwendet wird (das ist der Wert, den Sie sich ansehen, es ist kein Indikator für die aktuelle Situation), obwohl die Anzahl der Sats es Ihnen ermöglicht Absolut schlechte Punkte ermitteln, hilft es Ihnen nicht um die Grauzone herum, zB die mittelmäßigen Qualitätsmuster. Sie müssen verschiedene Sensoren kombinieren. Die Berechnung der Geschwindigkeit erfolgt im Wesentlichen genauso wie dies bereits jetzt bei Ihrem GPS-Chip der Fall ist. Auch diese Qualität hängt von der Anzahl der von Ihnen entnommenen Proben (Straßen sind nicht überall gerade) und deren Genauigkeit ab. Küken-Ei-Problem
Glenn Plas
0

Ich hatte ein ähnliches Problem, als ich einen GPS-Logger zum Verfolgen eines Rollers verwendete. Ich habe den GPS-Track auf einer Straßenebene überlagert und die fehlerhaften Positionen in oder in der Nähe einer Kreuzung oder Ampel manuell gelöscht. Ich bin sicher, dass es automatisierte Tools gibt, die sich damit befassen, wahrscheinlich Puffer um Kreuzungen und die Berechnung der minimalen und maximalen Zeit in und aus diesem Puffer.

HDunn
quelle
1
Da die Fahrzeuge problematisch sind, wenn sie sich nicht auf Parkplätzen oder Garagen bewegen, ist dies überhaupt nicht sinnvoll. :(
Shaamaan
0

Der Fachbegriff dafür ist Spinne . Ein gängiger Ansatz ist, nur Stichproben zu erstellen, wenn der Fix 10 m vom vorherigen Fix entfernt ist. Zum Beispiel zeichnen Garmin-Handhelds Korrekturen basierend auf der Entfernung auf, während die Fitnessuhren Korrekturen basierend auf der Zeit aufzeichnen . Die Handhelds spinnen nicht so sehr, aber die Uhren.

Sarge
quelle
Der Begriff dafür ist Multipath Error
ruruskyi