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


von Ano N. (oorim)


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

von aaa (Gast)


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,....

von Ano N. (oorim)


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 
...

von Ano N. (oorim)


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

von Ano N. (oorim)


Lesenswert?

Niemand?

von Martin S. (strubi)


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...

von Ano N. (oorim)


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)

von Tobias .. (tobi7212)


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#Kalman.E2.80.93Bucy_filter
aufbauen und werte aus dem ersten Schritt einestzen.
Wie man geeignete Kovarianzmatrizen festlegt klären wir wenn du soweit 
bist.

von Ano N. (oorim)


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...

von Marko C. (Gast)


Lesenswert?


von Marko C. (Gast)


Lesenswert?


von Marko C. (Gast)


Lesenswert?


von ich (Gast)


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.

von Ano N. (oorim)


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 ... :)

von Ano N. (oorim)


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/trunk/SF9DOF_AHRS.pde

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 :)

von Tobias .. (tobi7212)


Angehängte Dateien:

Lesenswert?

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

von Ano N. (oorim)


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

von Tobias .. (tobi7212)


Angehängte Dateien:

Lesenswert?

ok, mit 6 freiheitsgraden wirds etwas komplizierter. Siehe pdf.

von Tobias .. (tobi7212)


Lesenswert?

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

von Tobias .. (tobi7212)


Lesenswert?

Wie klappts denn bisher?
Alles verstanden und keine Fragen?

von Ano N. (oorim)


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

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
Noch kein Account? Hier anmelden.