Forum: Mikrocontroller und Digitale Elektronik Kalmanfilter Wegberechnung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frt D. (xxxx)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Frt D. (xxxx)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.