PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gyro auswerten! Mein Weg...



DanielSan
29.07.2013, 21:26
Hi,

ich habe ein neues Projekt angefangen. Ich möchte mit Hilfe eines Servos einen Hebel immer in einem bestimmten Winkel halten. Das ganze wird mit der Arduino Platform umgesetzt, ich versuche aber auf die meisten Libs zu verzichten weil diese nicht immer so perfomant sind wie ich es gerne hätte. Mittlerweile weiss ich auch das ich noch einen Beschleunigungssensor benötige. Der wird noch bestellt dann kann ich die Daten Fusionieren. Wie das geht habe ich mir auch schon angelesen, theoretisch "kann" ich das also schon. ;-)

Ich habe den Sensor per I2C angeschlossen und alles funktioniert einwandfrei. Es handelt sich um einen L3G4200.

Was gibt der Sensor aus? Winkelgeschwindigkeit oder Winkelbeschleunigung?
Wie rechnet man den Offset weg? Die X-Achse steht z.B. in Ruhelage auf ca. 3 die Y-Achse auf ca -15 und die Z-Achse auf ca. 5. Zieh ich den Offset einfach immer vom Messwert ab?
Was ist mit der Drift? Wie kompensiert man die? (Ich muss noch verifizieren wieviel/ob der Sensor driftet.)

Nachdem ich die Werte mit einem Median aus 3 Werten geglättet habe sieht das schonmal ganz gut aus. Da geht aber sicher noch mehr.

Jetzt wollte ich für den Anfang den Sensor an ein Servo montieren und mal gucken was passiert. Wie Regel ich das Servo? Ich meine ich bekomme Werte vom Sensor was mache ich damit? Wie komme ich dann auf die Positionen des Servos? Mit einem PID Regler? Hat jemand zufällig einen in C geschrieben und wäre bereit den zu teilen??

Danke
Gruß Daniel

Besserwessi
29.07.2013, 22:27
Der Gyro gibt die Winkelgeschwindigkeit aus, incl. der Erddrehung. Die Werte vom Offset zieht man normalerweise einfach ab. Dabei muss der Offset aber nicht unbedingt ein ganze Zahl sein. Gerade wenn es darum geht eine Winkel konstant zu halten muss man den Offset sehr genau bestimmen, damit der Winkel nicht zu schnell wegdriftet.

Die Drift ist halt eine meist langsame Verschiebung des Offsets mit der Zeit. Die eigentliche Ursache ist dabei oft eine Temperaturänderung. In dem Fall kann man ggf. mit Hilfe einer Temperaturmessung einen Teil der Drift kompensieren. Es gibt ggf. aber auch andere Beiträge, die sich nicht so leicht kompensieren lassen, z.B. ein Einfluss der Alterung, von Strahlung oder ggf. dem Magnetfeld oder der Versorgungsspannung..

Der Median ist mehr zur Mittelung bzw. zum Glätten bei einzelnen Ausreißern. Bei eher normalverteilten Störungen ist das einfache Arithmetische Mittel besser.

Beim Modellbau-Servo gibt man eine PWM Signal aus, und daraus regelt der Servo intern die Stellung. Um aus den Daten vom Gyro die Position (d.h. den Winkel) zu bekommen muss man die Werte integrieren. Die Regelung der Position kann dann ein PID-Regler sein, etwa so wie man ihn unter Regelungstechnik findet.