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
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
Danke für die schnelle Antwort.. bin fasziniert von der Seite cool :)
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
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.