Kombinieren Sie Gyroskop- und Beschleunigungsmesserdaten

Ich baue einen Auswuchtroboter mit dem NXT-System von Lego Mindstorm. Ich verwende zwei Sensoren von HiTechnic, von denen der erste ein Beschleunigungsmesser und der zweite ein Gyroskop ist. Ich habe Rauschen von beiden Sensoren und abgeleiteten Winkeln für beide in einem Bereich zwischen -90 und 90 Grad erfolgreich herausgefiltert, wobei 0 Grad perfekt ausgeglichen sind.

Meine nächste Herausforderung besteht darin, beide Sensorwerte zu kombinieren, um die zeitliche Drift des Gyroskops zu korrigieren. Unten ist ein Beispieldiagramm, das ich aus tatsächlichen Daten erstellt habe, um die Drift vom Gyroskop zu demonstrieren:

Die gebräuchlichste Methode, um die Kombination dieser Sensoren zu einem festen Bestandteil zu machen, ist die Verwendung eines Kalman-Filters. Ich bin jedoch kein Experte für Analysis und verstehe mathematische Symbole wirklich nicht, aber ich verstehe Mathematik im Quellcode.

Ich verwende RobotC (das ist wie jedes andere C-Derivat) und würde mich sehr freuen, wenn mir jemand Beispiele geben könnte, wie dies in C erreicht werden kann.

Danke für deine Hilfe!

LÖSUNGSERGEBNISSE:

Okay, kersny hat mein Problem gelöst, indem er mich mit ergänzenden Filtern bekannt gemacht hat. Dies ist eine Grafik, die meine Ergebnisse veranschaulicht:

Ergebnis # 1

Ergebnis # 2

Wie Sie sehen, korrigiert der Filter die Kreiseldrift und kombiniert beide Signale zu einem einzigen glatten Signal.

Bearbeiten: Da ich die defekten Bilder sowieso reparierte, dachte ich, es würde Spaß machen, das Rig zu zeigen, mit dem ich diese Daten generiert habe:

Antworten auf die Frage(2)

Ihre Antwort auf die Frage