Wie kann die Position anhand des Gyroskop- und Beschleunigungsmessereingangs bestimmt werden?

Ich habe einen 3-Achsen-Beschleunigungsmesser und ein 2-Achsen-Gyroskop. Ich beabsichtige, etwas zu messen, das sich nur in der X- und Z-Achse bewegt. Ich habe von der Verwendung von Kalman-Filtern gehört, um die Beschleunigungsvektoren zu glätten, aber ich kann kein gutes Tutorial für einen absoluten Anfänger des Themas finden. Ich weiß auch, dass ich die Beschleunigung doppelt integrieren kann, um die Position zu erhalten, aber wie mache ich das mit einer endlichen Anzahl von abgetasteten Beschleunigungsvektoren? Ich würde mich über Links zu guten Tutorials für Anfänger zu diesen beiden Themen freuen.

Klingt ein bisschen wie dieser Blogbeitrag, über den ich heute früher gestolpert bin: starlino.com/imu_kalman_arduino.html Ich habe keine Verbindung zu dieser Seite, dachte nur, dass sie für Ihre Frage relevant aussah.
In diesem Artikel finden Sie eine Reihe von Tutorials zur Verwendung und Schnittstelle von Beschleunigungssensoren. intorobotics.com/… hier sind verfügbare Tutorials für 2-Achsen-Messungen

Antworten (5)

Hier ist ein Tutorial zur Implementierung einer Richtungskosinusmatrix für eine IMU: http://gentlenav.googlecode.com/files/DCMDraft2.pdf

Schauen Sie sich die ArduIMU-Seiten an: http://code.google.com/p/ardu-imu/wiki/Theory

Hier sind ein paar Open-Source-Projekte, die dies tun. Das Lesen des Codes sollte einige Hinweise geben:

http://code.google.com/p/gluonpilot/source/browse/trunk/Firmware/#Firmware/rtos_pilot%3Fstate%3Dclosed

http://code.google.com/p/sf9domahrs/

Nun, der Kalman-Filter ist eine Art Magie, die auf mysteriöse Weise funktioniert. :)

Ich habe zuerst mit digitalen Filtern angefangen . Für den Anfang gut erklärt. Und leicht verständlich. Diese einfachen Filter eignen sich gut für Roll und Pitch jedes Systems. Sie müssen nur das Verhältnis von Genauigkeit zu Antwort durch Experimentieren anpassen. Der Trick ist [ Genauigkeit = 1 - Antwort ].

Versuche es.

Um dann den Kalman-Filter zu verstehen, müssen Sie Folgendes durchgehen:

  1. Wahrscheinlichkeit
  2. Bayessches Gesetz
  3. Dann müssen Sie lernen, wie Sie einfache Szenarien modellieren, um diese in den Kalman-Filter einzupassen.
  4. Derzeit bin ich hier, also finde ich heraus, was zu tun ist. Ich werde Sie sicherlich wissen lassen.

Und muss teilen, wenn Sie auf so etwas stoßen.

... Beschleunigung doppelt integrieren, um Position zu erhalten

Theoretisch (vorausgesetzt, Sie haben perfekte Sensoren und Messungen) können Sie das tun, aber in der Praxis können Sie das nicht. Das Problem ist, dass der Beschleunigungsmesser eine konstante Kraft von 1 G hat, die durch die Schwerkraft verursacht wird, wenn das Objekt stillliegt (Null G im Falle eines freien Falls), aber dies wird nicht als genau 1,00000000 ... G gemessen. Wenn Sie das Objekt bewegen, haben Sie einen Vektor als Summe aus 1 G Schwerkraft und der Beschleunigung durch die Bewegung (die normalerweise viel kleiner als 1 G ist), und Ihre Messungen werden im Laufe der Zeit viel zu viel Rauschen ansammeln, um nützlich zu sein, wenn Sie versuchen, gemessene zu integrieren Beschleunigung minus 1 G Schwerkraft.

Ich habe vor knapp 6 Monaten angefangen ein Quad zu bauen, hatte viele Probleme mit der korrekten Winkelbestimmung :)

Zuallererst sollten Sie diese Präsentation ausprobieren - http://web.mit.edu/scolton/www/filter.pdf Sie ist wirklich umfassend und könnte Ihnen helfen, eine bessere Vorstellung davon zu bekommen, was Sie wirklich wollen, sie hat ziemlich gut funktioniert Für mich.

Ich denke, es liegt ziemlich an Ihnen, aber die Implementierung des Kalman-Filters erfordert nicht nur ziemlich solides Know-how in Mathematik, Systemtheorie und in diesem Fall Physik, sondern ist auch sehr anspruchsvoll in Bezug auf die CPU-Auslastung. Falls Sie daran denken, beispielsweise einen Atmega328 zu verwenden, der mit 16 MHz getaktet ist, haben Sie möglicherweise Probleme mit dieser Art von Filter. Es ist wirklich effektiv, wenn Sie einen DSP verwenden, damit Sie Ihren Acc-Eingang tiefpassfiltern können.

Alles in allem ist mein Rat - versuchen Sie es mit dem Komplementärfilter 1. Ordnung oder vielleicht sogar mit dem Komplementärfilter 2. Ordnung, falls Sie mit den Ergebnissen nicht zufrieden sind. Wenn Ihr System frei von hochfrequenten Vibrationen ist, sollte das großartig funktionieren. Abgesehen davon, dass der Link von JustJeff der perfekte Ausgangspunkt ist, falls Sie bei der Implementierung nicht weiterkommen :)

Alles Gute Dan

Dein Link ist tot. Ich habe ein bisschen gegraben und das Dokument wieder gefunden: googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdf Zumindest soll es das gleiche sein, vielleicht willst du es noch einmal überprüfen.
Ja, es ist genau das gleiche :)
Link ist wieder tot :(
@KyranF glaube ich habe es wieder gefunden :) portal.ts-muenchen.de/Dateien/filter.pdf
@Dan schön, das ist eigentlich genau das gleiche Dokument, das ich zum Entwerfen meiner Firmware verwendet habe, als ich an der Uni einen Mini-Segway erstellt habe. youtu.be/zOFlJJj8pPA

Ich bin auch ein Neuling und suche auch nach einer Lösung für meine Navigationsarbeit. Genau wie Sie habe ich ein Board, das mit einem 3-Achsen-Beschleunigungsmesser und einem 2D-Gyroskop konfiguriert ist. Bis jetzt habe ich viele Materialien darüber gelesen, ebenso entscheide ich mich, den Kalman-Filter in meinen Signalhandel aufzunehmen. Vielleicht habe ich keinen Vorschlag für Sie, aber ich möchte etwas mit Ihnen teilen, das ich zuvor gesehen habe. Es gibt einige Links, die darauf verweisen, ich hoffe, das ist nützlich für Sie.

  1. Einführung des Kalman-Filters
  2. CAS Robot Navigation Toolbox
  3. Open Source Trägheitsnavigations-Toolbox
  4. Quellcode eines Projekts über Navigation

beschränkt auf meinen Ruf, bin ich nur befugt, weniger als 2 Links zu posten. also die anderen beiden möchte ich wie folgt posten:

Während dies ein nützlicher Satz von Links für das OP sein kann, wäre dieser Beitrag wertvoll, wenn Sie auch Zusammenfassungen des relevanten Inhalts dieser Links hinzufügen würden, die spezifisch für die Frage sind, die das OP gepostet hat. Denken Sie daran, dass dieser Beitrag keinen Wert behält, wenn Links aufgrund von Linkfäule ungültig werden. Danke.