Ich hab in den letzten Tagen ein paar Fortschritte erzielt, was das Auslesen von Daten und die Weiterverarbeitung angeht.
Herausgefunden habe ich alle "wichtigen" Daten, die ich benötige:
- absolute Position im Raum
- relativer Vektor "nach rechts"
- relativer Vektor "nach oben"
- Zeit seit Programmstart in Sekunden
Alle Werte sind 32-Bit float (bzw. als solche lesbar)
Das Auslesen findet folgendermaßen statt:
- Alle Variablen auslesen
- Wenn sich die Zeit nicht verändert hat, nochmal auslesen, usw.
- Wenn sich die Zeit verändert hat, die "neuen" Daten weitergeben
Die Simulation läuft mit ca. 50 Frames pro Sekunde. Grob geschätzt.
Aus den beiden Vektoren kann man sich den Dritten per Kreuzprodukt berechnen und schon habe ich die Rotationsmatrix des Flugzeugs!
Diese Matrix geteilt durch die Matrix des letzten Frames ergibt die Rotationsmatrix während der Zeitdifferenz aus letzem und jetzigem Frame.
Daraus kann ich die Euler-Winkel berechnen.
Diese geteilt durch die Zeitdifferenz ergibt die Drehrate um alle 3 Achsen -> Die Werte, die das 3D-Gyroskop liefern würde.
Mit Processing lasse ich die Drehrate im Hintergrund plotten. Auf dem Screenshot sieht man die zeitlichen Verläufe der Drehraten um alle 3 Achsen. Der Screenshot ist nach der Landung aufgenommen worden. Ich habe selber gesteuert, der Autopilot kommt erst noch.