Frage

  

Mögliche Duplizieren:
   Kombinieren Gyroskop und Accelerometer Daten

Ich habe eine Reihe von Papieren auf Kalman filters lesen, aber es scheint einige gute öffentlich zugänglichen Beispiele arbeitete von mathematischen Papier kennen zu tatsächlichen Arbeitscode zu sein.

Ich habe ein System ein Drei-Achsen-Beschleunigungsmesser und einen einzigen Messkreisels Drehung um eine der Achsen-Beschleunigungsmesser enthält. Das System ist so ausgelegt, von einem Menschen gehalten zu werden, und einen Großteil der Zeit wird der Kreisel einer Drehung um den Schwerkraftvektor oder nahe daran werden messen. (Die Menschen in der gleichen Branche arbeiten, werden wahrscheinlich erkennen, was ich rede davon;)). Ich weiß, das Unzureichend ist

Die Gyros erscheinen eine nahezu konstante Vorspannung zu haben, die für jede Instanz des Systems geringfügig unterscheidet. Wie würde ich mich über einen Filter Codierung das Beschleunigungsmesser Lesungen zu verwenden, den Kreisel zu Zeiten zu kalibrieren, wenn das System gekippt wird, so dass die Gyro-Achse nicht mit der Schwerkraft ist kollinear, und um die Kreisel-Achse gedreht wird? Es scheint, wie sollte es genügend Informationen, das zu tun, aber wird gesagt, dass es nicht und warum sollte auch eine Antwort sein:)

War es hilfreich?

Lösung

nBot, ein zwei Auswuchten Roboter
Ganz ein bisschen von Informationen und Links zum Thema, wie dieser Autor wählte die Balance Problem für seine beiden Rädern Roboter zu lösen.

Andere Tipps

Sie scheinen zwei (oder drei) verschiedene Probleme hier.

1. Sie nicht wirklich verstehen, Kalman-Filter und / oder die Mathematik hinter ihnen. Das wird es sehr schwer machen richtig zu implementieren und eine verwenden.

2. Sie scheinen nicht die grundlegenden Physik in das Problem involviert zu verstehen. (Grund Physik bedeutet zugrunde liegende Physik, nicht einfache Physik, weil es nicht einfach ist.)

Ich würde vorschlagen, dass Sie versuchen, einen viel einfacheren Integrator, wie ein Runga-Kutta 4 zu verwenden, für die Sie viele Bücher mit Beispielen sowohl der Implementierung und der Verwendung finden können. Es sollte für dieses Problem ausreichend sein. (Wenn der Kunde Kalman angegeben, fragt, warum.)

Als Grund für das Problem unter eingeschränkt ist, so scheint es mir, dass es keine Möglichkeit gibt, die, um sicherzustellen, dass das Gerät vertikal gehalten wird und keine Möglichkeit, die tatsächliche Ausrichtung zu messen. Vergessen Sie den Kreisel für den Moment und nimmt das Gerät nicht um eine vertikale Achse gedreht werden. Sie haben drei Beschleunigungsmesser, vermutlich Position in 3D zu schätzen. Wenn Sie also eine Beschleunigung in der X-Richtung zu sehen, erhöhen Sie die Schätzung von wo Sie in der X-Richtung sind. Und falls Sie eine Beschleunigung in der Z-Richtung zu sehen (was ich davon ausgehen, „nach oben“ ist), erhöhen Sie die Schätzung von wo Sie in der Z-Richtung sind. Nun drehen Sie das Gerät etwas, sagen wir 30 Grad um die Y-Achse. Nun, wenn das Gerät denkt, dass Sie entlang der X-Richtung beschleunigen, wird das Gerät beschleunigt tatsächlich etwas weniger als in X angezeigt und es wird auch in der Z-Richtung zu beschleunigen. So Ihre Positionsschätzung ist jetzt falsch.

Rotationen sind viel schwieriger zu integrieren (die Gleichungen sind „steif“, einen kleineren Zeitschritt erfordern Präzision beizubehalten). Aber sie werden ähnliche Probleme leiden falsche Antworten der Berechnung, wenn das Gerät gekippt wird (da das Gerät kann nicht sagen, dass es gekippt wird). Es wird denken, dass die Drehung um die vertikale Achse größer oder kleiner ist, als es tatsächlich ist, weil ein Teil der Drehung tatsächlich um eine andere Achse (nur als Teil des Beschleunigungsteils entlang einer anderen Achse war).

< p>

Vielleicht brauchen Sie einen Berater engagieren (nein, ich bin nicht einen Job suchen) Sie bei der Formulierung der Mathematik zu unterstützen.

Ihr Interesse an den Kalman-Filter gegeben, vielleicht die GPS-Daten mit Inertialmessungen zu erweitern. Über Ihre Frage:

  

"Wie würde ich mich über Codierung einen Filter   den Beschleunigungs-Messwert zu verwenden, um   den Kreisel zu Zeiten, wenn die kalibrieren   System geneigt ist, so dass die Gyro-Achse   nicht kolinear mit der Schwerkraft, und   wobei um die Achse gedreht gyro? Es   scheint, wie sollte es genug sein,   Informationen, dass "zu tun

Das klingt wie eine gyrocompasing Ausrichtung. Vorausgesetzt Sie haben eine Werkskalibrierung tun, und das Gerät auf einer Bank, werden Sie in der Lage sein, selbständig die Ausrichtung zu messen. Dann die Nivellierung Code ausgeführt wird, schreiben Sie und die Gyro-Bias-Fehler aus der Differenz zwischen dem Maß zurück und gyrocompased Ausrichtungen.

Wenn Sie Gyroskopdrift aktualisieren mögen on-the-fly, dann werden Sie die Kalman-Filter benötigen.

Was die Umsetzung geht empfehle ich in Kapitel 7, GPS und Inertial Integration von Global Position System-Theorie und Anwendungen vol 2 hat ausgezeichneten Hintergrund zum Thema. Es hat die Theorie und Mathematik, aber keinen Quellcode.

Ich fand gute Artikel über die Verwendung von Beschleunigungssensoren und Gyroskope in der Navigation auf diesem Blog . Der Teil auf Kalman-Filterung ist ein wenig verschwommen, aber es scheint, Code-Beispiele zu sein.

Sie werden auch allgemeine Ressourcen auf Kalman-Filterung unter http://academic.csuohio.edu finden /simond/publications.html . Der Artikel genannten (8) gut ist, nicht zu beängstigend, Einführung auf die Mathematik hinter Kalman-Filter.

Ein Herr in Dänemark hat gerade geschrieben Filter ein gearbeitet Beispiel für die Ableitung eines Kalman für fast genau dieses Problem zu lösen.

Wenn Sie geschehen, für den Propeller uController zu entwickeln, als der Parallax Object Exchange hat einige Code. Große Frage; -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top