Forum: Mikrocontroller und Digitale Elektronik Kalmanfilter Wegberechnung


von Frt D. (xxxx)


Lesenswert?

Hallo mikrocontroller Freunde,
Ich bin neu hier im forum und habe folgendes Problem.
Möchte über Mpu6050 einen Wegberechnung über die Zeit durch 2x 
integrieren vornehmen. Wie zu wissen ist hat man beim ACC extrem 
Rauschen und minimal drift während der gyro weniger Rauschen aber dafür 
über die Zeit driftet. So, jetzt war mein Lösungsansatz, den 
Kalmanfilter zu benutzen. Habe im netz nach Mpu 6050 mit Kalmanfilter 
gesucht und wurde auch fündig. Nun ist das Problem das diese immer 
Winkelberechnungen vernehmen was ich eigentlich für den wegberechnung 
nicjt brauche. Oder doch?
Jetzt ist meine frage, ob ich einfach die Winkelberechnung 
auskommentieren und anstatt kalman.getset ( accxangle) Ax einfügen kann. 
Somit hätte ich Ax und Ay werte mit dem Klamangefiltert und kann meine 
wegberechnung vornehmen.
Danke im Voruas für die Antworten

von Jan K. (jan_k)


Lesenswert?

Hallo.
Sorry falls ich dir da jetzt die Illusion nehme, aber das wird verdammt 
hart.

Es gibt einige wenige Situationen, wo du durch sogenannte zero velocity 
updates die Integration zurücksetzen kannst (siehe 
https://www.youtube.com/watch?v=6ijArKE8vKU und 
http://x-io.co.uk/res/doc/madgwick_internal_report.pdf und guck dir die 
Beschreibung an, Madgwick hat in die Richtung viel gemacht!), aber 
grundsätzlich ist der Drift durch die doppelte Integration viel zu 
groß.
Du benötigst übrigens sehr wohl die Orientierung, denn du musst ja den 
Gravitationsvektor abziehen, bevor du die Beschleunigung integrierst.

Edit,
hab nochmal deinen Post gelesen. Sorry, vergiss es. Zumindest auf deinem 
jetzigen Wissensstand. Guck erstmal, was das Kalman Filter macht, das 
ist keine abgefreakte Wunderwaffe gegen driftende Sensoren oder so. Die 
Beschleunigungswerte werden auch nicht von dem Kalman gefiltert, das 
funktioniert nur mit der Orientierung und ggf. dem Bias Drift.

: Bearbeitet durch User
von Frt D. (xxxx)


Lesenswert?

Danke für die schnelle  Antwort.. bin fasziniert von der Seite cool :)

von Frt D. (xxxx)


Lesenswert?

Ja aber  der code beinhaltet zusätzlich  noch ein komplementärfilter 
welches fast nichts anders ist als als ein hoch und tiefpass.  Und  der 
Klaman macht doch nichts  anders als den varianz der vorherigen  und der 
aktuellen Messung ermittlen,
 Einen  neue varianz bildet um den nächsten Schritt  etwa schätzen zu 
können. Oder nicht?

Dadurch hätte ich weniger Fehler.

: Bearbeitet durch User
von Jan K. (jan_k)


Lesenswert?

Ohne Korrektur deiner echten Position (z.B. über GPS) wird aber die 
Varianz unbeschränkt groß.
Bei der Orientierung ist es so, dass man zwei Sensoren (mit 
unterschiedlichen Eigenschaften) hat, die die Orientierung messen (gyro 
+ accelerometer). Damit kann man einen Fehler (Residual) bestimmen, der 
gewichtet zu deiner vorherigen Orientierung addiert wird. Bei der 
Position ist das aber nicht so, du hast nichts 
korrigierendes/beschränkendes.
Das geht mit consumer accelerometer max. ein paar Sekunden lang gut.

Leg dein kalibriertes (auf m/s^2) accelerometer doch mal auf den Tisch, 
fass es nicht an, subtrahiere die Richtung des Gravitationsvektors und 
miss die Werte mit konstanter Abtastrate T und integriere die Daten 
(summiere alle samples und multipliziere mit T²).
Du wirst sehen, wie schnell das weg rennt. Und kein Kalmanfilter der 
Welt kann dagegen etwas tun (ohne GPS oder sonstige Positionsmessung)

von Stm M. (stmfresser)


Lesenswert?

ein dim. Kalman Filter ist an sich relativ einfach. Das Problem ist, 
dass das Kalman Filter Beobachtbarkeit voraussetzt. Ich denke nämlich, 
dass dein Modell nicht beobachtbar ist, da du nur die Beschleunigung 
direkt messen kannst, was der Eingang von deinem Modell entspricht.

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.