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
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,....
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 ...
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
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...
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)
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.
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...
Schau mal hier: http://www.mathworks.com/matlabcentral/fileexchange/18189 http://tom.pycke.be/mav/92/kalman-demo-application http://autopilot.sourceforge.net/kalman.html http://www.openservo.com/forums/viewtopic.php?t=356 http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A23188 da haste ein bischen was zu lesen ;-)
http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/ http://12pastnorth.com/blog/?p=16 http://www.starlino.com/imu_kalman_arduino.html http://www.starlino.com/imu_guide.html http://www.gadgetgangster.com/find-a-project/56?projectnum=213
http://www.dreamincode.net/code/snippet1831.htm http://www.sjbaker.org/steve/omniv/eulers_are_evil.html http://www.euclideanspace.com/physics/kinematics/angularvelocity/index.htm http://itp.nyu.edu/physcomp/Tutorials/Tutorials http://diydrones.com/profiles/blog/list?tag=kalman
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.
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 ... :)
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 :)
Hab mal n kleines Beispiel zusammengeschustert, wie man so etwa vielleicht anfangen könnte, wenn man die Sache verstehen will.
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
ok, mit 6 freiheitsgraden wirds etwas komplizierter. Siehe pdf.
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:-)
Wie klappts denn bisher? Alles verstanden und keine Fragen?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.