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 vollständigen Einsteiger in das Thema finden. Ich weiß auch, dass ich die Beschleunigung doppelt integrieren kann, um die Position zu ermitteln. 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.
33
Antworten:
Hier ist ein Tutorial zum Implementieren 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 einige 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/
quelle
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 hervorragend für die Roll- und Pitch-Funktion jedes Systems. Sie müssen nur das Verhältnis von Genauigkeit zu Antwort durch Experimentieren anpassen. Der Trick ist [Genauigkeit = 1 - Reaktion].
Versuche es.
Um den Kalman-Filter zu verstehen, müssen Sie folgende Schritte ausführen:
Und muss teilen, wenn Sie auf so etwas stoßen.
quelle
In der Theorie (vorausgesetzt, Sie haben perfekte Sensoren und Messungen) können Sie dies tun, in der Praxis jedoch nicht. Das Problem ist, dass der Beschleunigungsmesser eine konstante Kraft von 1 G hat, die durch die Schwerkraft verursacht wird, wenn das Objekt still liegt (Null G bei freiem Fall), aber dies wird nicht mit genau 1,00000000 ... G gemessen. Wenn Sie das Objekt bewegen, erhalten Sie einen Vektor als Summe aus 1 G Schwerkraft und der Beschleunigung durch die Bewegung (die in der Regel viel kleiner als 1 G ist), und Ihre Messungen häufen sich mit der Zeit zu stark an, um nützlich zu sein, wenn Sie versuchen, gemessene Werte zu integrieren Beschleunigung minus 1G Schwerkraft.
quelle
Ich habe vor fast 6 Monaten angefangen ein Quad zu bauen und hatte viele Probleme mit der korrekten Winkelbestimmung :)
Zuallererst sollten Sie diese Präsentation versuchen - http://web.mit.edu/scolton/www/filter.pdf Sie ist wirklich umfassend und kann Ihnen helfen, eine bessere Vorstellung davon zu bekommen, was Sie wirklich wollen für mich.
Ich denke, es liegt ganz bei Ihnen, aber für die Implementierung des Kalman-Filters sind nicht nur solide Kenntnisse in Mathematik, Systemtheorie und in diesem Fall in der Physik erforderlich, sondern auch hohe Anforderungen an die CPU-Auslastung. Wenn Sie vorhaben, einen Atmega328 mit 16 MHz zu verwenden, können Probleme bei der Verwendung dieses Filters auftreten. Es ist sehr effektiv, wenn Sie einen DSP verwenden, damit Sie den Eingang mit einem Tiefpassfilter versehen 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 JustJeffs Link der perfekte Ausgangspunkt für den Fall ist, dass Sie bei der Implementierung stecken bleiben :)
Alles Gute Dan
quelle
Ich bin auch ein Neuling und suche auch eine Lösung für meine Navigationsarbeit. Genau wie Sie habe ich eine Platine mit 3-Achsen-Beschleunigungsmesser und 2D-Gyroskop konfiguriert. bis jetzt habe ich viele materialien darüber gelesen, ebenso entscheide ich mich, kalman filter in meinen signalhandel zu übernehmen. 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 auf sie verweisen. Ich hoffe, das ist nützlich für Sie.
Ich habe nur die Berechtigung, weniger als 2 Links zu posten. also die anderen zwei möchte ich wie folgt posten:quelle