Hallo Leute, ich bin mittlerweile echt verzweifelt. Ich habe einen 9dof Sensor (MinIMU-9 Gyro, Accelerometer, und Compass) und möchte unter anderem einen Kompass bauen. Die Ergebnisse ohne Neigung sind ziemlich gut. Für den Fall von größeren Neigungem habe ich aus mehreren Quellen erfahren, dass ich folgende Formel anwenden muss: X_h=X*cos(\alpha)+Y*sin(\gamma)sin(\alpha)-Z*cos(\gamma)*sin(\alpha) Y_h=Y*cos(\gamma)-Z*sin(\gamma) "\alpha" und "\gamma" sind pitch und roll winkel vom Beschleunigungssensor und Gyro. Es sei hinzugefügt, dass diese Werte ziemlich präziese sind. Mit dieser soll eine "tilt-compensation" erreicht werden. Anschleißend soll ich über arctangens(Y_h/X_h) die korrekten Winkel angezeigt werden. Die Ergebnisse sind allerdings sehr schlecht und weichen sehr stark vom richtigen Kurs ab. Was kann ich noch machen?
Das Zauberwort heist: Kalmanfilter. Selbst wenn Du die Daten von all deinen Sensoren korrekt zusammen rechnest um auf die aktuelle Lage, Position und Richtungsvektor zu kommen wirst Du feststellen das deine Messintervalle viel zu gross sind. Daher musst Du aus deinen bereits erfassten Daten vorhersagen treffen und diese mit dem nächsten gemessenen Wert verrechnen. Gruss Heiko
Servus, also ich habe dies nicht ganz verstanden, denn ich bekomme meine Daten in 10Hz Takt. Ich denke der Abstand ist klein genug. Brauche ich hierfür ein Kalmanfilter? gruß, tim
Tim S. schrieb: > Es sei hinzugefügt, dass diese Werte > ziemlich präziese sind. Tim S. schrieb: > Die Ergebnisse sind allerdings sehr schlecht und weichen sehr stark vom > richtigen Kurs ab. Zahlenwerte wären was Tolles, um abzuschätzen was da passiert.
Tim S. schrieb: > also ich habe dies nicht ganz verstanden, denn ich bekomme meine Daten > in 10Hz Takt. Ich denke der Abstand ist klein genug. Deine Sensoren machen im Normalfall ja Messungen über den Durschnitt in sagen wir mal ca. 0.5 ms (bei 2kHz Abtastfrequenz bei normalen Gyros/Accel, Zeit zwischen den realen Messvorgängen vernachlässigt). Ein Intervall bei 10 Hz sind 100 ms. Du kennst also den real gemessenen Zustand deines Modells zu 99,5 % überhaupt nicht. Wenn man jetzt noch den Fehler des Sensors mit einrechnet liegen wir bei 99,9 % von denen wir nichts wissen. Die Daten in mit der Samplingfrequenz des Sensors zu holen ist zwar nett, aber overkill für den µC und im Normalfall unnötig und deckt auch nicht die zeit ab die der Sensor braucht um sich auf die nächste Messung zurückzusetzten. Du wirst also immer einen nicht zu vernachlässigenden Messfehler haben. Aber Du hast ja noch andere Daten welche Du zu rate ziehen kannst, dein erwähntes Magnetometer z.B. > Brauche ich hierfür > ein Kalmanfilter? Genau, dafür brauchst Du das Kalmanfilter. Es geht mit genügend Hirnschmalz und Trial'n'Error natürlich auch anders, aber um irgendein Filter kommst Du nicht drum herum. Hier im Forum gibt es schon einige Threads zu diesem Thema. Du kannst dir auch mal den Sourcecode von Ardupilot oder Paparazzi anschauen. http://www.mikrocontroller.net/forum/all?filter=Kalman http://paparazzi.enac.fr/wiki/Main_Page P.s. Vergiss nicht dein Magnetometer auf die lokale Deklination zu kalibrieren. http://www.ngdc.noaa.gov/geomag/WMM/thirdpartycontributions.shtml Gruß Heiko
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.