Was liefert ein besseres Ergebnis, um die Winkelposition des Geräts mit dem 9-Achsen-IMU-Snesor zu finden?

Ich verwende den LSM9DSO 9-Achsen-Sensor, der Beschleunigungsmesser-, Gyroskop- und Magnetometer-Ausgangsdaten liefert. Ich möchte mit diesem Sensor die Winkelposition des Geräts ermitteln.

Derzeit versuche ich, einen Winkel des Geräts der x-Achse zu finden, aber die Daten schwanken, also habe ich einige Websites und Dokumente verwiesen, die zeigen, dass es auch mit Beschleunigungsmesserdaten gefunden wird, aber ich habe wenig Verwirrung darüber, welche bessere Lösung ist Winkelposition des Geräts finden.

Das ist ziemlich kompliziert. Sie müssen uns viel mehr darüber erzählen, was Sie zu tun versuchen.
Hallo, ich habe implementiert, um das Nicken und Rollen sowohl mit Beschleunigungsmesser als auch mit Gyroskop zu finden, wenn ich das Gerät von 0 auf 90 Grad drehe, aber es wird nur von 0 bis 82 Grad nur in Nick und Rollen angezeigt.

Antworten (4)

Im Allgemeinen bestimmen Sie den Winkel anhand der Messwerte des Beschleunigungsmessers. Dies funktioniert nur, wenn das Gerät zu diesem Zeitpunkt nicht beschleunigt, aber Sie können eine schnelle Plausibilitätsprüfung durchführen, bei der sqrt (x * x + y * y + z * z) = 1 g +/- eine gewisse Fehlerspanne beträgt. Wenn das stimmt, beschleunigen Sie wahrscheinlich nicht.

Für jede gegebene Achse wird der Betrag, um den sie davon abweicht, gerade nach oben zu zeigen, durch Winkel = cos -1 (Ablesung in g) angegeben .

Wenn Sie wissen, wie weit jede Achse von der Vertikalen entfernt ist, können Sie Ihre Ausrichtung relativ zum Boden ermitteln.

Wenn Sie beschleunigen und davon ausgehen, dass Sie Ihre Ausrichtung vorher kannten, können Sie Ihre aktuelle Ausrichtung berechnen, indem Sie die Gyro-Messwerte verwenden, um die Änderung der Ausrichtung zu messen. Alles, was auf diese Weise berechnet wird, weicht jedoch von der richtigen Antwort ab, sodass Sie es korrigieren müssen, sobald Sie aufhören zu beschleunigen.

Sie können das Magnetometer als Plausibilitätsprüfung und als Methode zur Verfolgung der Rotation verwenden, aber es ist nicht sehr zuverlässig für die Berechnung des absoluten Kurses, ohne zuerst für Ihre aktuelle Umgebung kalibriert zu werden.

Alle Messwerte einer IMU sind sehr verrauscht, es sei denn, Sie verwenden eine sehr teure, erwarten Sie, dass Sie viel mitteln und filtern müssen, um glatte Ergebnisse zu erhalten. Teuer bedeutet in diesem Fall, dass der Preis mindestens 4 Stellen vor dem Komma hat.

Sie benötigen eine Art Algorithmus, um die Messwerte für Beschleunigung, Drehrate und Magnetfeld zu fusionieren. Es gibt verschiedene Möglichkeiten, dies zu tun, von einfachen komplementären HP/LP-Filtern bis hin zu fortgeschritteneren, auf Quaternionen basierenden, nichtlinearen Kalman-Filtern.

Ich habe mit großem Erfolg Sebastian Madgwicks Open-Source-AHRS-Algorithmus mit einem LSM9DS1- und STM32F405-Prozessor verwendet. Sie können ein Papier, das es beschreibt, und einen Quellcode von hier herunterladen:

http://x-io.co.uk/open-source-imu-and-ahrs-algorithms/

Vielen Dank an alle für Ihre größere Unterstützung. Ich habe einige interessante Referenz-Websites gefunden. die die beste Methode bieten, um beide zu implementieren, um aussagekräftige Daten wie Pitch & Roll zu finden.

Anleitung zur Verwendung des Beschleunigungssensors

Anleitung zur Verwendung des Gyroskops

Hoffe, es ist hilfreich für andere

Stellen Sie sich einen I + Q-Magnetsensorsatz von Spulen vor. Digitalisieren Sie die Ausgabe jeder Spule; Die Kenntnis der Amplitude und der Phase gegenüber einer Referenzphase ist ein alternativer Sensor. Verwenden Sie einen einzelnen Draht an der Wand, um eine punktuelle Hfield-Quelle bereitzustellen.