www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Kalman Filter zur Sensorfusion mit Simulink


Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus

Ich frage mich zur Zeit wie das Kalman Filter Design mit Simulink läuft. 
Ich habe 6 Sensorwerte (Beschleunigung, (Rotations)Geschwindigkeit und 
(Erd)Magnetfeld) und möchte damit ein INS bauen. Kalman Filter, ist 
klar. Aber ich bin mir im Moment nicht so 100% sicher wo ich welche 
Werte eintrgen muss. Deshalb mag ich ganze gerne Simulink designen und 
mir den C Code ausgeben lassen.

Ferner bin ich mir auch noch nicht ganz über die Gleichungen sicher die 
mir die pos. angeben.

Vielleicht kann jemand weiterhelfen

Grüße

Autor: aaa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Kalmanfilter ist nicht so einfach.

Für dein INS brauchst du i.d.R. sogar einen nichtlinearen Filter, wie 
z.B. Extended oder Unscented Filter - die Rotation ist nichtlinear. 
(Wenn man sich einmal im Kreis dreht, kommt man am Anfang wieder raus)
Auch must du dich für eine Parametrisierung der Drehung (Drehkinematik) 
entscheiden, insbesonder falls du 3 Drehachsen hast z.B. Eulerwinkel, 
Kardanwinkel, Quaternionen,....

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jup das is klar. So weit mich meine Recherchen gebracht hatten (länger 
her) sind Quaternionen in dem Zusammenhang zu empfehlen. Ansonsten stimm 
ich dir uneingeschränkt recht.

However, irgendwie muss es möglich sein einen Kalmanfilter zu designen, 
eben für diesen Zweck. Ich weiß nur nicht wie :) Ich hab versucht das 
Teil zu verstehen bin aber kurz nach dem Zustandsmodell hängen geblieben 
...

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ja einige leute die 6DOF mit Kalman machen. ALso Gyro, ACC und 
Magnetsensor. Weiß jemand ob jemand irgendwo mal die passenden Matrizen 
für den Filter niedergeschrieben hat? Das wäre ja eine Basis um eine 
erst implementierung zu machen und darauf die Werte adaptieren. Das ist 
auch quasi das was ich suche, das Rad neu erfinden - gerade bei einem so 
komplexen Rad - macht nicht unbedingt den großen Sinn.

Grüße

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand?

Autor: Martin S. (strubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

es wird Dir kaum einer frei erzaehlen, wie genau er seinen Kalman-Filter 
bzw. IMU/INS implementiert. Muessen ja auch Leute Geld damit 
verdienen...

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der Hobby User Hinz und Kunz verdient damit Geld. Alles klar.

Es gibt genug Hobby User die sowas implementiert haben, es gibt auch 
welche die keine Ahnung haben und von anderen Code 1:1 übernehmen (zu 
finden im Mikrocopter Forum)

Autor: Tobias .. (tobi7212)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
wenn du dich wirklich interessierst würde ich dir etwas helfen einen 
kalmanfilter, extendet oder unscented in simulink hin zu bekommen.
Würde raten mit einem linearen kalmanfilter zu beginnen.
1. Schritt: Bau dir mit stift und zettel ein Systemmodell 
(Differentialgleichungen) und forme es in ein Zustandsraummodell um.
Die Werte trägst du in den Simulink-Block: Statespace-model ein.
Jetzt ein eingangssignal in den Block geben und schauen, ob das Modell 
sich so verhält, wie du es dir vorstellst.
Wenn du das hast, bist du praktisch schon fertig!
sag dann einfach bescheid, und in 5 weiteren minuten ist dein 
kalmanfilter fertig.

wie es weiter geht:
http://en.wikipedia.org/wiki/Kalman-Bucy_filter#Ka...
aufbauen und werte aus dem ersten Schritt einestzen.
Wie man geeignete Kovarianzmatrizen festlegt klären wir wenn du soweit 
bist.

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo mit nem Linearen wär ich schon zufrieden. Tus mir aber ein bisschen 
schwer mit der Vorstellung wie ich das ganze dann zusammen Knüpf 
(Sensorwerte von Gyro, ADC und Magnetfeld) und wie zum Teufel ich die 
Gleichungen aufstell, bzw wie die Gleichungen aussehen. Ich weiß zwar 
das ich mit allen Gleichungen Winkel rel. zur Erde bestimme aber so 
richtig auf was brauchbares komm ich nicht. Das ist mein Hauptproblem...

Autor: Marko C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Marko C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Marko C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt genügend Beispiele im Netz wie man einen Kalman-Filter 
realisiert. Woher ich das weiß? Ich habe auch mal einen mit Matlab 
realisiert .... Man muss nur gewillt sein zu suchen.

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gesucht hab ich, halt speziell für IMU, aber gefunden hatt ich nix ... 
ich klick mich mal durch. Danke.

Hardware is BTW fast komplett vorhanden, PCB und Prozessor fehlen noch. 
Hab halt irgendwie Bock sowas aufzuziehen ... :)

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen Teil von den Links kenn ich bereits. Aber da ist viel mehr 
Sourcecode drin als bei den anderen. Source is nich soooo gut, bisschen 
schwer da alles rauszufiltern was man fürn Kalman braucht.
http://code.google.com/p/sf9domahrs/source/browse/...

Gäbs auch noch un das ist quasi genau das was ich mach. Im letzten Link 
sind aber die drei Matrizen, ich schau ma ob ich die in Matlab seh. Dann 
brauch ich mir nur überlegen wie ich die 3 Sensoren und 9 Werte in den 
Kalman krieg :)

Autor: Tobias .. (tobi7212)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal n kleines Beispiel zusammengeschustert, wie man so etwa 
vielleicht anfangen könnte, wenn man die Sache verstehen will.

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit verstanden hab ichs. Nur ist es doch in meinem Fall bisschen 
anders oder?

Winkelgeschwindigkeit integriert ergibt Winkel --> DCM Matrix
Beschleunigungen ergeben Winkel
Magnetfeld Sensor ergibt "Blickrichtung" um die Erde/den Norden als 
Bezug zu nehmen

Oder? Wie verwurste ich dann die Integrale bzw die DCM Matrix

Autor: Tobias .. (tobi7212)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ok, mit 6 freiheitsgraden wirds etwas komplizierter. Siehe pdf.

Autor: Tobias .. (tobi7212)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennt ihr
http://digital.ni.com/worldwide/germany.nsf/web/al...
schon? Is jetzt nicht so dolle, kann man sich aber mal durchlesen, wenn 
man sonst nix zu tun hat:-)

Autor: Tobias .. (tobi7212)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie klappts denn bisher?
Alles verstanden und keine Fragen?

Autor: Ano Nym (oorim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuch die Tage mal eine Antwort zu verfasen, habs bis heute 
zeitlich nich geschafft sorry ... ich versuchs morgen abend ;) 
Versprechen kann ichs aber nich

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.