Einige Tests zur Fusion der ACC-Daten, 27. 1. 2012

Die Frage ist, wie stelle ich die 'Fusion' Parameter richtig ein.
Das sind die Parameter
ACC_CORRECTION: gibt offenbar an, wie stark die Korrektur der Fluglage durch den ACC eingreifen soll.
MOTIONLIMIT, ROTATIONLIMIT: ist die translatorische Bewegung des Kopters zu stark, kann dem ACC nicht mehr vertraut werden. Dreht sich der Kopter zu schnell um Roll oder Nick, kann dem ACC ebenfalls nicht vertraut werden. Je grösser MOTIONLIMIT bzw. ROTATIONLIMIT sind, desto öfter werden die Daten des ACC zur Lagekorrektur herangezogen, desto ungenauer wird diese Korrektur aber auch sein.
Wenn der Debug-Wert 'ACC trust' 0 ist, dann wird den ACC-Daten nicht vetraut und sie werden nicht verwendet.

Vor einigen Tagen hatte ich einen Absturz des Kopters wie folgt: der Kopter schwebte in PH bei fast Windstille. Plötzlich bemerkte ich, dass das GPS-Debug-Beeping verstummt war. Kurz darauf haute der Kopter in Richtung in den Wind ab, immer schneller werdend. Ich schaltete GPS aus, um den Kopter abzufangen, aber dadurch verschlimmerte sich nur die Abhau-Tendenz und der Kopter schlug schliesslich am Boden auf.
Eine Erklärung dafür wäre, dass der Kopter begonnen hatte, die Daten des ACC nicht mehr zur Lagekorrektur heranzuziehen und durch die Drift der Gyros immer mehr in Schräglage geriet. Ich habe kein Log davon, deshalb wollte ich das hier nachtesten und auch den ACC-Korrekturmechanismus verstehen lernen.

1. Flug: es ist fast windstill, Kopter schwebt in PH, kein Steuereingriff ausser etwa nach 1/3 der Zeit eine Drehung um 180°.
MOTIONLIMIT = 5, ROTATIONLIMIT = 750, beide auf Poti aber während des Fluges nicht verändert.

Firmware: 0.34beta6
Parameterdatei
Log (Excel)

Klick für größeres Bild

In dem Bild sieht man, dass 'Angle Roll/Nick' und 'ACC Roll/Nick' einander manchmal folgen, manchmal aber auch auseinanderlaufen.
Der orange Balken oben zeigt, wie oft 'ACC trust' Null bzw. ungleich Null ist. Diese Häufigkeit deckt sich sehr schön mit der Übereinstimmung von 'Angle Roll/Nick' mit 'ACC Roll/Nick'.


Beim nächsten Flug, wieder Kopter in PH ohne Roll/Nick oder Yaw Steuereingriffe habe ich dann MOTIONLIMIT und ROTATIONLIMIT während des Fluges verändert um zu sehen, wie sich das auswirkt. Nun, eine deutliche Auswirkung konnte ich nicht feststellen, möglicherweise näherte sich der Kopter aber dem PH-Punkt mehr, wenn ich MOTIONLIMIT und ROTATIONLIMIT größer machte (10 bzw. 1500).

Bei diesem Flug trat aber ein unerklärter Effekt auf: etwa in der Mitte der Zeit gierte der Kopter kurz aber heftig ca. 10° und drehte sich sofort wieder zurück, wiederholte das Spiel gleich ein zweites Mal.

Log (Excel)

Klick für größeres Bild
Die beiden Yaw-Ereignisse sind schön zu sehen.
Merkwürdig, dass 'Angle Yaw' nicht konstant driftet, sondern so eine Wellenbewegung macht. Vielleicht Einfluss durch Wind?
Klick für größeres Bild
Hier dasselbe Diagramm, der Zeitpunkt der beiden Yaw-Ereignisse herausgegriffen.

Die beiden Gier-Ereignisse kann ich mir nicht erklären, auch im Log habe ich keinen Grund gefunden. Soetwas könnte durch Windverwirbelungen entstehen. Aber es war praktisch windstill, ich stand 5 Meter vom Kopter entfernt und spürte keinen Windstoss.


Im dritten Test flog ich dann ohne GPS-Unterstützung. Ich flog immer rasant hin- und her und ließ dann den Roll/Nick Knüppel plötzlich aus um zu sehen, wie rasch der Kopter in die Horizontale zurückkehrt. Das tat er immer sofort.
Auch veränderte ich MOTIONLIMIT und ROTATIONLIMIT in den Grenzen 0 bis 10 bzw. 0 bis 1500. Dabei konnte ich keine merkbare Veränderung der Flugeigenschaften des Kopters feststellen, wahrscheinlich wirkt sich das erst nach einiger Flugzeit aus.

Was mir aber aufgefallen war ist, dass der Kopter nicht genau in die Horizontale zurückkehrte. Ich führe das auf eine Drift des ACC aufgrund der Temperatur zurück. Kalibriert habe ich den ACC im Zimmer (24°C), Temperatur während des Fluges war aber -1°C.

Log (Excel)


Ich machte zu Hause dann einen Langzeittest bzgl. ACC-Drift. Der Kopter stand auf einem Kübel in ungefähr waagrechter Lage und ich loggte während ca. 1 Stunde 'Angle Roll' und 'Angle Nick'.

Log (Excel)

Klick für größeres Bild
Drift der ACC-Werte während etwa 1 Stunde.

Man sieht, dass die Roll-Nulllage sich um 4° durch Erwärmung verschiebt. Interessant hier auch die 'Stufen', möglicherweise verursacht durch die nicht unendliche Auflösung bei der Digitalisierung der ACC-Werte.


Resumee: ein Verhalten wie vor einigen Tagen, wo der Kopter plötzlich abhaute konnte ich bisher nicht reproduzieren. Dafür habe ich jetzt einen anderern unerklärten Effekt, die beiden Yaw-Ausreisser in Test2.

Die Tests waren aber sehr interessant und verschaffen mir einen tieferen Einblick in die Funktionsweise der Lageregelung. Ausserdem lieferte die Auswertung nette bunte Bilder, die könnten schon fast als Kunstwerke durchgehen :-)