Nick- u. Rollwinkel mit dem Gyroscope bestimmen
Formeln für die Berechnung der Lageposition
Der Gyro gibt eine Winkelgeschwindigkeit aus. Also eine Veränderung um einen Winkel pro Sekunde. Die
Erdanziehungskraft hat bei diesem Senor keinen Einfluss. In jeder ruhigen Lage im Raum sind die Messwerte,
also die Drehgeschwindigkeiten um die drei Achsen, 0.
Dei Winkeländerung kann man Zeiteinheit um Zeiteinheit zusammenrechnen und kommt so auf den zurückgelegten
Gesamtwinkel.
Winkel = Winkel_bisher + Winkeländerung_je Sekunde × Anzahl Sekunden.
So wird das auch bei einem Navi in einem Tunnel gemacht. Mit der so ermittelten Richtungsänderung und der
Wegstecke zwischen den Änderungen kann die Route selbst ohne GPS Empfang bestimmt werden. Zuerst wird für
jeden Durchlauf die verstrichene Zeit bestimmt:
float dt = (millis() - millisAlt) / 1000.00; // umrechnen auf Sekunden, da gyr.x in °/sec
millisAlt = millis();
Bestimmung des Roll- und Nickwinkels:
gyrRollWinkel = gyrRollWinkel - wX * dt;
gyrNickWinkel = gyrNickWinkel - wY * dt;
Nick- und Rollwinkel mit Hilfe des Gyroskops berechnen
Der Vorteil der Bestimmung des Nick- und Rollwinkels über das Gyroscope ist, dass die Messwerte absolut unempfindlich gegen Rauschen sind. Leider gibt es aber auch einen Nachteil: Da das Gyro nur Änderungen aber keine absoluten Werte messen kann summieren sich kleinste Fehler bei der Änderungsberechnung mit der Zeit zu große Abweichungen. Das Gyro verliert den 0-Punkt. Im rechten Bildabschnitt können wir dieses ab-'driften' sehen.
Im einzelnen haben wir bisher gesehen, dass ...
- die Lageberechnung mit dem Beschleunigungssensor zum Rauschen neigt aber den 0-Punkt hält
- der mit dem Gyro berechnete Nick- und Rollwinkel nicht durch Rauschen verfälscht wird, sehr schnell auf Änderungen reagiert, aber der 0-Punkt abdriftet
- und man die Ergebnisse mit einem Low-Pass Filter gewichten kann
Im folgenden Abschnitt werden wir sehen, wie alle Vorteile ohne die jeweiligen Nachteile zusammengefasst werden