Hallo, ich arbeite momentan an einen FlightController für einen Quadrocopter, um dessen Neigung zu berechnen, verwende ich ein Gyroscope und einen Beschleunigungssensor. Um die Daten beider Sensoren zu einen Winkel zu vereinen möchte ich einen Kalman Filter verwenden, da ich schon alle andere Methoden probiert habe. (Komplementärfilter, Hoch - und Tiefpass) Bei diesen Methoden war das Problem, dass durch die Vibration der Motoren der Winkel verfälscht wurde. Darum möchte nun eben den Kalman Filter verwenden, da er unter anderem solche Änderungen rausfiltert. Ich progamiere in AVR Studio (also in c) auf einen ATmega64. Hat jemand eine fertige Klasse, welcher ich nur die Werte beider Sensoren übergeben muss, um einen Winkel zu erhalten? Danke im Voraus für eure Hilfe
Hallo, schau mal auf dieser Seite: http://www.den-uijl.nl/electronics/gyro.html#Kalman Die Grundlage ist zware ein Arduino Nano, aber die Funktionen und der Ablauf sind ja dargestellt. Die solltest du dann eigentlich relativ einfach auf dein System übertragen können. MfG Walleby
Danke für die schnelle Antwort. Ich werde es mir mal ansehen und es versuchen auf mein System anzupassen.
Ich habe es mal ausprobiert und funktioniert nicht so wie es sollte... Hat jemand eine fertige Klasse oder einen Link? Danke
Marcel D. V. schrieb: > Hat jemand eine fertige Klasse Klassen gibt es in c nicht nur funktionen. und der kalman aus dem Link funktioniert, du musst nur die Zahlenparameter an deine Gyros und accelerometer anpassen. Marcel D. V. schrieb: > Ich habe es mal ausprobiert und funktioniert nicht so wie es sollte... was genau macht er anders als ers sollte?
Um die Parameter richtig einzustellen, ist es von Vorteil, die Funktion de Kalman-Filters wenigstens im Ansatz verstanden zu haben. Dann ist man aber auch in der Lage, die paar Zeilen Code für den Algorithmus selber zu schreiben. Aber auch mit schlecht eingestellten Parametern sollte das Filter, gutmütig wie es ist, halbwegs vernünftige Ergebnisse liefern. Ist die Parameterwahl nicht völlig unsinnig (bspw. ein negative Werte, wo der Theorie nach positive stehen sollten), leidet darunter lediglich die Dynamik, d.h. das Filter reagiert u.U. deutlich langsamer auf Änderungen der Messgröße. Peter Kremsner schrieb: > Marcel D. V. schrieb: >> Ich habe es mal ausprobiert und funktioniert nicht so wie es sollte... > > was genau macht er anders als ers sollte? Genau das ist jetzt die Frage.
Die beiden Winkel ändern sich nur bei einer Drehung. Sobald man in einer Position stehen bleibt. Geht der Winkel wieder auf 0° zurück.
Ich denke das sind keine Winkel sondern Winkelgeschwindigkeiten, durch die Integration über die Zeit erhältst du daraus den Winkel
Ja das wäre logisch. Abr komisch ist, dass dort ja der Beschleunigunssensor schon einberechnet worden ist.
Marcel D. V. schrieb: > Ja das wäre logisch. > Abr komisch ist, dass dort ja der Beschleunigunssensor schon > einberechnet worden ist. Warum? Eine Beschleunigung ist auch keine Geschwindigkeit, ein Gyroskop gibt dir eine Drehrate aus und der Beschleunigungssensor eine beschleunigung Aus der Fusion von Drehrate und Beschleunigung kann ich jetzt eine gefilterte Drehrate und Beschleunigung berechnen.
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.