Madgwick Sensor Fusion auf LSM9DS0

Ich versuche, Madgwick Sensor Fusion-Algorithmus zu implementierenvon hie am LSM9DS0-Sensor (Beschleunigungsmesser, Gyroskop und Magnetometer) am STM Cortex M3-Mikrocontroller.

Raw-Daten von allen Sensoren scheinen in Ordnung zu sein.

Mein Problem ist: Wenn ich den Sensor mit der Z-Achse horizontal oder nach unten halte (d. H. Der Roll- oder Nickwinkel beträgt mehr als 90 Grad), wird die Quaternion vom Filter wirklich instabil und dreht sich zufällig um 180 Grad. Genauer gesagt, ändern q0 und q3 ständig die Vorzeichen, was zu einer Drehung um 180 Grad führt.

Ich habe versucht, konstante Werte anstelle der tatsächlichen Sensorausgabe zu verwenden, aber trotzdem dieses Verhalten festgestellt.

Wenn die Z-Achse mehr oder weniger vertikal ist, erscheint die Quaternion plausibel.

Ich habe so etwas in Beispielvideos noch nicht gesehen.

Ich habe versucht, Magnetometerdaten zu ignorieren und die 6DOF-Version des Filters zu verwenden, aber es war eine Katastrophe. quaternion fliegt nur herum und dreht sich unkontrolliert.

Ich muss den Beta-Parameter ziemlich groß einstellen (~ 100), da niedrigere Werte bei plötzlichen Flips zu sehr verwackelten Ergebnissen geführt haben. Ich finde das seltsam, da die Beta normalerweise zwischen 0,5 und 0,05 liegt.

Die Filteraktualisierungsfrequenz beträgt 1 kHz.

ann mir bitte jemand helfe

Antworten auf die Frage(1)

Ihre Antwort auf die Frage