Abbildung 1: Vergleich EKF und GPS Geschwindigkeiten
In Abbildung 1 kann man die unterschiedlichen Geschwindigkeiten aus dem EKF und dem GPS sehen. Der Parameter vel_test_ratio geht hoch, obwohl dieser Wert nicht über 0.5 sein sollte. Zum Zeitpunkt 27:36 geht das Flugzeug in den failsafe mode, da keine globale Position ermittelt werden kann. Deshalb stürzt das Flugzeug ab. Fixed Bank Loiter bedeutet Rundflug durch feste Querruder. Der Parameter est.state[4] ist die Schätzung des Kalmanfilter für die Geschwindigkeit Richtung Norden. est.state[5] ist die Schätzung der Geschwindigkeit Richtung Osten.
Im Video vom Telemetrielog kann man sehen, dass die Flugroute nach rechts oben geht. Nach dem Crash springt die Position nach links oben und kommt dann langsam wieder zum Startpunkt. Im Kameravideo sieht man, dass das Flugzeug nicht über den Weg geflogen ist, sondern eher nach links. Interpretation: Der Flug startet mit falscher Headinginformation aus dem Kompass. Die Position wird mit dem Inertialsystem falsch weiterberechnet. Nach dem Crash wird die Position mittels GPS ermittelt und die ist weiter links oben. Deshalb springt die Position.
David, Björn, der neue Interessent und ich haben gestern den Kompass genauer untersucht und sind dazu nach draußen gegangen um die angezeigte Kompassrichtung mit der tatsächlichen Richtung zu vergleichen. Der Flieger hat derzeit den GPS mit Dual Kompass (LIS3MDL und IST8310) von mRobotics eingebaut.
Siehe: https://store.mrobotics.io/mRo-GPS-u-Blox-Neo-M8N-HMC5983-Compass-p/mro-gps003-mr.htm
Auf dem PixRacer sind ein HMC5983 und ein MPU9250 intern eingebaut. Während der bisherigen Flüge lief nur der externe Kompass LIS3MDL. Wir haben gestern einmal eine Konfiguration mit den internen Sensoren und die Originalkonfiguration mit dem externen LIS3MDL angeschaut.
Es hat sich gezeigt, dass der LIS3MDL mit ROTATION 90 YAW verbaut ist, d.h. der Sensor ist um 90 Grad gedreht eingebaut. Daraus ergibt sich eine um 90 Grad fehlerhafte Kompassanzeige. Diese fehlerhafte Anzeige konnten wir auch draußen nachvollziehen, d.h. es gab einen Fehler von ca. 90 Grad. Bei der Konfiguration mit den internen Sensoren ist die Anzeige korrekt. Auf der GPS Platine sind die unterschiedlichen XY Richtungen für den LIS3MDL und den IST8310 aufgedruckt.
Wenn man das macht, dann ist die Anzeige auch vom externen Sensor weitgehend korrekt. Uns ist aber auch aufgefallen, dass beim Umschalten auf ARMED manchmal die Richtung nicht korrekt ist und dann wandert. Außerdem gab es noch “EKF internal checks failed“ Meldungen. Gefühlt war die angezeigte Richtung bei den internen Sensoren stabiler und genauer.
Bei den Untersuchungen ist uns auch aufgefallen, dass die Richtungsanzeige im QGC schon eine fusionierte Richtung ist, bei denen auch die Beschleunigungssensoren mitwirken. Wenn man den externen Kompass um 90 Grad dreht, dann dreht sich die Anzeige langsam mit. Es dauert vielleicht 15 Sekunden, bis der angezeigte Kompass nachgedreht hat. Wenn das ganze Flugzeug gedreht wird, geht dies mit den Gyrosensoren viel schneller.
Daraus kann man auch ableiten, dass man eine Kompassänderung durch den Motorstrom nicht sofort an der QGC Richtungsanzeige sehen kann. Das konnten wir auch nachvollziehen. Wenn man den Motor anschaltet, dann ändert sich die angezeigte Richtung langsam - so wie beim manuellen Drehen des Sensors. Wenn man über das Analyze Widget die Magnetfeldwerte anschaut, dann ändern die sich sofort. Fehler durch Motorstrom muss man also über die Magnetfeldsensoranzeige analysieren oder den Motor recht lange anlassen. Die internen Sensoren sind stark und der externe Sensor ist „mittel“ vom Motorstrom betroffen. Beim externen Sensor ändert sich der Wert um etwa 0.1 bei einem typischen Wert zwischen -0.5 und +0.5.