Flug vom 17.8.2018
Setup
- Mini Talon
- Fernsteuerempfänger FrSky XSR-M
- 433 MHz Telemetrie mit 100 mW
Log
- 17:37 Uhr: Autostart fehlgeschlagen
- 17:39 Uhr: Autostart erneut fehlgeschlagen: Andi versucht den Flieger zu retten, aber die Fernsteuerung reagiert nicht; QGroundControl meldet “GPS verloren”
Probleme
- Zwei kurze Flüge mit Crash kurz nach Start
- Der zweite Flug hat die Meldung “Failsafe enabled: no global position”
Analyse
Daten
- Telemetrievideo: Youtube-Telemetrie
- Kameravideo: Youtube-Kamera 2. Flug
- Logdaten: Logdaten von Telemetrie und SD Karten
- Flightreview vom zweiten Flug: Zweiter Flug
Kompassfehler
- Im Flighreview kann man sehen, dass der Kompasswert sich mit dem Schub ändert. Siehe: FlightReview - Magnetic Field
- Der Kompasswert wird für die Positionsschätzung direkt nach Start benutzt. Vielleicht ist Kompass nicht o.k. oder nicht richtig kalibriert. Das Problem mit der Abhängigkeit vom Kompasswert vom Schub muss man im Aufbau ändern.
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.
Kompassfehler - weitere Analysen vom 27.8.18
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.
- In der Konfiguration vom externen Sensor muss Rotation 90 (für LIS3MDL) eingetragen werden
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.
- Das große Problem war sicher der 90 Grad Fehler durch die falsche Angabe bei der Einbaurichtung
Todo
- Kompass auf richtige Richtung prüfen (⇒ Fertig. Parameter war falsch. Rotation 90 für LIS3MDL. 27.8.18).
- “EKF internal check failed” Meldung untersuchen
- IST8310 Sensor aktivieren. Dazu ist FW 1.8 notwendig. Der IST8310 soll temperaturstabilisiert sein - der LIS3MDL nicht.
- Für den Start vom Schiff muss man prüfen ob die Metallumgebung diesen Start mit Heading aus Kompass dort nicht problematisch macht und wie man das vielleicht anders machen könnte. Siehe auch EKF2_MAG_TYPE.
- In die Checkliste den Vergleich von Kompassheading mit Realität (z.B. Handy) in den Preflightcheck eintragen
- Kompass so einbauen, dass die Magnetwerte sich nicht mit dem Schub ändern.