Forum: Offtopic Nachkonstruktion der Geschwindigkeit ohne GPS


von Derold S. (derold)


Lesenswert?

Hallo,

momentan arbeite ich an der Bachelorarbeit, welche das Thema 
"Interpolation GPS-basierender Geschwindigkeitsprofile eines PKW" 
beinhaltet.
Ich mache eine Fahrt mit meinem PKW und zeichne diese über einen Sensor 
namens GY-86, welcher 4 einzelne Sensoren beinhaltet, auf. Darunter sind 
ein Beschleunigungssensor, Magnetometer, Barometer und ein GPS-Sensor 
verbaut. Nun möchte ich die Fahrt für bestimmte Bereiche (wie zb.: 
Tunnel durchfahrt), ohne GPS nachkonstruieren. Ich verwende einen 
Tiefpassfilter und integriere im Anschluss die Beschleunigung, jedoch 
ist dieser Wert sehr unzuverlässig. Mit der Interpolation von anfang 
Tunnel bis ende Tunnel und der berechneten Geschwindigkeit, versuche ich 
dann den Bereich nachzustellen.
Hat hier evtl. jemand eine weitere Idee wie ich am besten diesen Bereich 
nachkonstruieren kann, ohne einen Geschwindigkeitssensor ? Da die von 
mir verwendete Methode sehr unzuverlässig ist.

Mit freundlichen Grüßen

Derand Shyti

: Verschoben durch User
von Guest (Gast)


Lesenswert?

Kalman Filter.

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Du hast doch die Position Tunnelanfang und Tunnelende. Wenn du dir auch 
noch die Zeiten dazu merkst, kannst du doch die 
Durchschnittsgeschwindigkeit ausrechnen und mit dieser arbeiten?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Guest schrieb:
> Kalman Filter.

Für einen Zustandsbeobachter benötigt er jedoch die Systemeigenschaften. 
Ob der TO das möchte?

von MirkoB (Gast)


Lesenswert?

Relativ gut zum Einstieg:

http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-1

...in Teil 2 gibts dann noch eine Sensorfusion.


Mirko

von Pandur S. (jetztnicht)


Lesenswert?

Ist halt so. Allenfalls integrieren ohne vorher tiefpassen. Aendert aber 
nichts wirklich. Die Mems haben eine zu grosse Drift.
Eingebaute Navis werten den Radsensor aus.

Allenfalls den Abgleich zwischen Integrator und GPS zum extrapolieren 
verwenden. Die Differenz zwischen GPS Geschwindigkeit und 
Geschwindigkeit durch Integrieren der Beschleunigung laesst auf den 
Beschleunigungsoffset schliessen.

Allenfalls kann man durch Auswerten der vertikalen Vibrationen, etwas 
zur Geschwindigkeit aussagen

von Guest (Gast)


Lesenswert?

Joe G. schrieb:
> Guest schrieb:
> Kalman Filter.
>
> Für einen Zustandsbeobachter benötigt er jedoch die Systemeigenschaften.
> Ob der TO das möchte?

Das ist doch gerade das Interessante. Er kann Daten des Navis, des 
Verkehrs, des Fahrstils, des Autos in realtime in ein adaptives Modell 
fusen und damit erhaelt er sicher verdammt genaue Schaetzungen des 
Systemzustandes.

Andererseits, so wie der Autor gefragt hat wird das eher nichts...

von Karl (Gast)


Lesenswert?

Derold S. schrieb:
> Ich verwende einen
> Tiefpassfilter und integriere im Anschluss die Beschleunigung, jedoch
> ist dieser Wert sehr unzuverlässig. Mit der Interpolation von anfang
> Tunnel bis ende Tunnel und der berechneten Geschwindigkeit, versuche ich
> dann den Bereich nachzustellen.

Wenn ich etwas ungenaues integriere kommt halt etwas viel ungenaueres 
raus.

> Hat hier evtl. jemand eine weitere Idee wie ich am besten diesen Bereich
> nachkonstruieren kann, ohne einen Geschwindigkeitssensor ? Da die von
> mir verwendete Methode sehr unzuverlässig ist.
>
Warum nicht mit den Beschleunigungen und dem Magnetfeld erstmal eine 
Theoretische Tunnelstrecke berechnen und anschließend das ganze auf die 
durchschnittliche Geschwindigkeit skalieren? Außerdem könnte man 
versuchen die Sensoren mit dem GPS-Signal zu kalibrieren.

Wenn es ein modernes Auto ist, kann man auch einfach das Tachosignal 
über CAN/OBDII anzapfen, ggf gibt es sogar den Lenkungseinschlag. Da 
gibt es fertige Lösungen.

von lala (Gast)


Lesenswert?

Hi,

dieser Sensor hier hat das alles schon implementiert: 
http://www.mouser.de/new/bosch-sensortec/bosch-bno55-sensor/

Du könntest direkt den nehmen oder dich eben an diesem orientieren.
Er hat verschiedene Modi die dir erlauben die "einzelnen" Sensoren 
anzusprechen oder eben schon auf fusionierte Werte zuzugreifen.

Gruß

von Derold S. (derold)


Lesenswert?

Hallo Leute,

wow vorerst möchte ich mich bei allen für die schnellen und äußerst 
qualitativen Antworten bedanken !

Des Weiteren möchte ich noch hinzufügen, dass das Ganze sich um eine 
Bachelorarbeit handelt, sprich der Sensor ist von meinem Betreuer 
gewählt, die Geschwindigkeit ist nur über den Sensor zu ermitteln und 
die Tunnelfahrt soll vollständig ohne GPS Signal nachgestellt werden.
Die Fahrt durch den Tunnel ist nicht real, ich entnehme lediglich die 
Werte aus einem von mir ausgewählten Bereich, dabei muss ich noch 
herausfinden wie lang die Strecke max. sein darf, in welcher GPS Signal 
fehlt, bevor die Werte unbrauchbar werden.

Das mit der Ermittlung der Durchschnittsgeschwindigkeit ist mir heute 
auch durch den Kopf gegangen, ich will versuchen im Anschluss die 
Integration der Beschleunigung (nachdem ich die Nulllage bestimmt habe) 
mit der Durchschnittsgeschwindigkeit zu vergleichen.
Kann ich hier denn keine weitere (einfachere) Methode außer Kalman 
Filter verwenden ?
Wenn ich Kalman verwenden würde, würde ich die 
Durchschnittsgeschwindigkeit für den eigentlichen Wert der 
Geschwindigkeit ersetzen und somit versuchen plausible Werte zu 
erhalten.

beste Grüße

von Purzel H. (hacky)


Lesenswert?

Das ist doch eine tolle Aufgabe um einige Konzepte zu testen. Nur nicht 
zu viel Ehrfurcht vor grossen Namen. Ein Kalman ist eigentlich nur ein 
paar Matritzen. Heisst Multiplikationen und Additionen. Ja, vorher muss 
man sich noch etwas Theorie reinziehen.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Derold S. schrieb:
> Wenn ich Kalman verwenden würde, würde ich die
> Durchschnittsgeschwindigkeit für den eigentlichen Wert der
> Geschwindigkeit ersetzen und somit versuchen plausible Werte zu
> erhalten.

Dann lies mal hier [1] und hier [2]. Die Erklärungen dort sind sehr 
einfach. Wenn du dich für die Theorie dahinter interessierst, dann ist 
[3] eine gute Einführung.

[1] http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-1
[2] http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-2
[3] 
http://www.haw-hamburg.de/fileadmin/user_upload/TI-I/Bilder/Projekte/Faust/Arbeiten/Seminararbeiten/Seminararbeit2007SchetlerKalmanFilter.pdf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Er kann Daten des Navis, des Verkehrs, des Fahrstils, des Autos in
> realtime in ein adaptives Modell fusen
Wenn man denn die Navi-Daten hätte...
Denn wenn es so wäre, hat man auch die Tempobegrenzung auf "80km/h". Und 
dann kann das Navi einfach mal mit genau diesen 80km/h rechnen. 
Insbesondere, wenn vorher "flüssiger" Verkehr war.

Derold S. schrieb:
> Die Fahrt durch den Tunnel ist nicht real, ich entnehme lediglich die
> Werte aus einem von mir ausgewählten Bereich
Also fehlt hier schon mal das "Wissen" des Navis.

> Die Fahrt durch den Tunnel ist nicht real, ich entnehme lediglich die
> Werte aus einem von mir ausgewählten Bereich
Und wie simulierst du dann den Beschleunigungssensor? Hast du da 
einfach mal von einer realen Fahrt Daten aufgezeichnet? Hast du daran 
gedacht, bei deiser realen Fahrt gleich 3 dieser Sensoren aufzuzeichnen 
und deren Daten gegeneinander zu vergleichen?

Derold S. schrieb:
> ... bedanken !
> ... verwenden ?
Bitte nicht plenken! Ein Satzzeichen hat keine eigene Zeile verdient 
!

von Derold S. (derold)


Lesenswert?

Also wie gesagt, der Sensor wurde von meinem Betreuer ausgewählt und 
dieser hat nur einen Beschleunigungssensor für alle Achsen.
Ansonsten sind es reale Fahrten und die "Tunnelfahrten" sind dann von 
mir bestimmte Bereiche in dem ich die GPS Signale entferne.
Also ich werde mich dann mal bezüglich der Theorie zu Kalman Filter 
belesen.
Danke nochmal und sicherlich bis demnächst. :D

von Derold S. (derold)


Lesenswert?

Noch ein Ansatz zum Kalman Filter.
Muss ich zur Verwendung des Filters die Geschwindigkeit haben, oder 
zumindest verrauschte Geschwindigkeitswerte kennen ?
Ich habe bezüglich Geschwindigkeit keine Werte, da ich die 
Geschwindigkeit nur über GPS errechne und keinen Geschwindigkeitssensor 
besitze.
Falls es doch nur mit der Geschwindigkeit geht, kann ich denn die 
Durchschnittsgeschwindigkeit anstelle der eigentlichen Geschwindigkeit 
nehmen ?

Wahrscheinlich wird dann die Genauigkeit erneut darunter leiden.

von Pandur S. (jetztnicht)


Lesenswert?

1.Das GPS gibt die Geschwindigkeit direkt aus.
2.Der Beschleunigungssensor ergibt integriert die Geschwindigkeit.

Auf 2 ist noch ein Offset drauf, den man mit dem GPS rausrechnen kann. 
Ist das so schwierig ? Rechne den Offset in Echtzeit und tiefpasse den 
per software. Wenn das GPS rausfaellt verwendest du den bis dahin 
getiefpassten Offset.

Nein ? Mach's einfach.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oder D. schrieb:
> Auf 2 ist noch ein Offset drauf, den man mit dem GPS rausrechnen kann.
> Ist das so schwierig ?
2 wird wegen irgendwelcher Drift oder wegen Rauschen ständig 
davonlaufen. Und irgendwann am Anschlag hängen. Man muss diesen 
Integrator also ständig anhand eines GPS-Signals korrigieren. Und dann 
sieht man schon, wie lange nach der letzten Rekalibrierung noch halbwegs 
sinnvolle Daten aus dem Beschleunigungssensor gewonnen werden können...

Lothar M. schrieb:
> Derold S. schrieb:
>> ... bedanken !
>> ... verwenden ?
> Bitte nicht plenken! Ein Satzzeichen hat keine eigene Zeile verdient
> !
Oder D. schrieb:
> Ist das so schwierig ?
Das frage ich mich auch...

von Dirk J. (dirk-cebu)


Lesenswert?

Oder D. schrieb:
> Nein ? Mach's einfach.

von Pandur S. (jetztnicht)


Lesenswert?

Es scheint da ein paar Bildungsferne zu geben, die mit einem Space(0x20) 
vor einem Fragezeichen Muehe haben. Auch wenn sich einer sogar die Muehe 
gemacht hat eine Webseite dafuer zu opfern ... das wird so nichts.

von Dirk J. (dirk-cebu)


Lesenswert?

Oder D. schrieb:
> ... das wird so nichts.

Stimmt, gegen Lernresistenz ist kein Kraut gewachsen.

von Derold S. (derold)


Lesenswert?

Also ich habe das soweit den Offset Bestimmt.

Ich muss diesen nur noch als Algorithmus niederschreiben, sodass dieser 
für weitere Fahrten verwendet werden kann.
Soweit habe ich diesen wie folgt  erstellt:

Offset = V_gps - Int(a);        [m/s]
Offset_new= Offset/t;       [m/s*1/s]   * t= Umrechnung in Echtzeit
a_offset = a_x - Offset_new;    [m/s]

Ich werde demnächst weitere Fahrten aufzeichnen, sodass ich das Ganze 
ausprobieren kann, aber was sagt ihr bisher dazu ?

von Pandur S. (jetztnicht)


Lesenswert?

Nicht ganz, denn der Beschleunigungssensor gibt ja keine 
Geschwindigkeit. Vielleicht hab's ich auch nicht verstanden.
Es gibt eine Differenzgeschwindigkeit :

delta-v = V-gps - Integral(sensor+offset), wobei V-gps & sensor gemessen 
sind

wir leiten nun auf beiden Seiten nach der Zeit ab.

d/dt (delta-v) = d/dt (V-gps) - (sensor+offset)

Da sich der Fehler nicht aendern sollte, setzen wir den auf Null. Und 
erhalten denn Offset

offset = d/dt (V-gps) - sensor

Dieser Offset ist nicht konstant, Zeitlich abhaengig von irgendwas, 
abhaengig von Spannung und Temperatur. Dh man muss den Offset fuer jede 
Sekunde neu rechnen und hoffen dass er kurzzeitig hinreichend konstant 
ist.
Erschwerend kommt hinzu dass die V-gps gequantelt ist. Dh nicht 
kontinuierlich ist. Allenfalls muss man zu Kontrollzwecken die GPS 
Geschwindigkeit durch Ableiten der GPS Position alternativ bestimmen.

Mach das mal und zeichne auf.

Dh messe :
- Sensorwert
- GPS Position
- GPS Geschwindigkeit

und zeiche das alles auf.

von Derold S. (derold)


Lesenswert?

Also ich habe einige weitere Messungen gemacht, aufgenommen wurden GPS 
Position, Geschwindigkeit und Sensorwerte.

Ich habe auch versucht anhand der vorgeschlagenen Methode den Offset zu 
ermitteln, wenn ich offset=diff(v_gps)-a_sensor rechne erhalte ich den 
gleichen Wert wie zuvor nur negativ.
Wenn dies wohl doch der Offset sein sollte, wie kann ich diesen nun von 
den Messwerten im Sensor abziehen, ohne dass weitere weitere Werte 
eliminiert werden ?
Ich rechne:   a_sensor_ohne_off=a_x_new+offset;
Damit Subtrahieren sich auch die von mir benötigten Aufzeichnungen der 
Beschleunigung.

von Pandur S. (jetztnicht)


Lesenswert?

Die Rechnung ergibt einen pseudostatischen Offset, der aus den letzen 
paar Sekunden.. Minuten errechnet wurde. Die Beschleunigung wurde ja mit 
dem GPS abgeglichen. Wenn man nun ohne GPS weiterfaehrt, und den 
eingefrorenen Offset abzieht erhaelt man die effektive Beschleunigung. 
Diese integriert man nun, um die Geschwindigkeit zu rechnen. Mit dieser 
Geschwindigkeit erhaelt man die Positionsaenderung. Die traegt man in 
der Karte als gefahrene Stecke ein. Wenn das GPS wieder kommt, gibt es 
eine neue Position, mit einer Differenz, dem Fehler.

Soweit die Theorie. Du meinst beim errechnen des Offsets bleibt nichts 
uebrig ? Dann hat der Beschleunigungssensor den falschen Bereich. Resp 
der effektive Wert ist im Rauschen. Das Rauschen muss man wegmachen. Da 
das GPS nur alle Sekunden einen Wert (Position& Geschwindigkeit) 
liefert, kann man das Rauschen auf dem Beschleunigungssensor mit 1Hz, 
oder so filtern. Wen man also von einer Bandbreite des Sensors von 
vielleicht 100Hz, siehe Datenblatt, ausgeht, gewinnt man durch filtern 
auf 1Hz einen Faktor von 20dB an signal-to-noise. Reicht das ?
Was ist die Abtastrate des aufgezeichneten Beschleunigungssignales ? Da 
koennte man nun falls vorhanden digital filtern. Ja ? Das kann man auch 
nachtraeglich noch machen.

Und ja, eine von einem Auto machbare Beschleunigung ist klein. zB in 1 
sekunde 1 km/h mehr, dh in 10 sekunden von 60 auf 70 entsprechen 3m/s 
pro 10s, macht 0.3m/s^2, macht 1/30 g. Wie gross ist das Rauschen auf 
der Beschleunigung ?

Allenfalls sollte man auch noch beruecksichtigen, dass das GPS auch noch 
Rauschen drauf hat. Dann wird's aber aufwendig

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.