Kalman Filter Klasse

OP #3757989
Lesenswert?
• ▲
▼
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
Moderator #3760013
Lesenswert?
• ▲
▼
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.
Gast #3760227
Lesenswert?
• ▲
▼
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.