Unsere Smartphones wissen, wo oben und unten ist. Aber woher wissen sie das? Und wie genau kennen Smartphones ihre Orientierung und die Bewegung im Raum?
In dieser Arbeit wird ein Algorithmus entwickelt, welcher aus den Daten von mehreren Sensoren, wie sie in typischen Smartphones zu finden sind, die Orientierung und die Position im Raum berechnet. Mit zahlreichen mathematischen Tricks gelingt es, die Daten der einzelnen Sensoren in Echtzeit so umzurechnen, dass sogar Gesten und kurze Bewegungen erfasst werden können.
Anwendungen des Algorithmus sind nicht nur Mobiltelefone, sondern auch beispielsweise Quadrocopter oder Satelliten.
Inhaltsverzeichnis
1. Setup
2. Auslesen des Sensors
3. Funktionsdefinitionen
4. Hinweise zur Notation
5. Algorithmus
6. Grafische Visualisierung
7. Vor- und Nachteile des Algorithmus
8. Quellen
9. Anhänge
Zielsetzung & Themen
Die Arbeit befasst sich mit der Erfassung der 3D-Orientierung und der Translation eines Systems unter Verwendung eines 9DOF-Sensors und eines Barometers. Ziel ist es, mithilfe eines auf dem Raspberry Pi 3 implementierten Algorithmus in Java präzise Bewegungsdaten in Echtzeit zu berechnen, zu korrigieren und grafisch darzustellen.
- Hardware-Setup und I2C-Anbindung von Sensoren
- Mathematische Grundlagen der Vektor- und Matrixoperationen
- Algorithmus zur sensorbasierten Orientierungs- und Translationsbestimmung
- Implementierung von Filtern zur Drift-Kompensation
- Grafische Echtzeit-Visualisierung der berechneten Bewegungsdaten
Auszug aus dem Buch
5. Algorithmus
Als Konstanten werden zunächst ein Einheits-Koordinatensystem, der Gravitations-Vektor sowie Inklination und Rektaszension des Erdmagnetfeldes definiert:
Gemessen werden der Drehgeschwindigkeits-Vektor, der Beschleunigungs-Vektor, der Magnetfeld-Vektor, die relative Höhe zur Startposition sowie die Update-Frequenz des Algorithmus:
Zunächst wird ein Maß dafür erfasst, wie ruhig der Sensor gerade ist. Dazu dient die Funktion still(), die einen Wert zwischen 0 (bewegt) und 1 (ruhig) anhand verschiedener Kriterien liefert, unter anderem der Übereinstimmung vom Winkel zwischen Beschleunigungs- und Magnetfeld-Vektor mit der tatsächlichen Inklination des Erdmagnetfeldes sowie die Abweichung der Gesamtbeschleunigung von der Erdbeschleunigung. Der Funktionswert muss noch mit der Aktualisierungsrate des Algorithmus verrechnet werden.
Zusammenfassung der Kapitel
1. Setup: Beschreibt die verwendete Hardware, bestehend aus dem LSM9DS0-Sensor und dem BMP180-Barometer, deren Anbindung an den Raspberry Pi 3 via I2C sowie die Wahl von Java als Programmiersprache.
2. Auslesen des Sensors: Erläutert die Konfiguration der Sensor-Register, die Rohdatenerfassung sowie die anschließende Kalibrierung der Messwerte zur Normalisierung der Achsen.
3. Funktionsdefinitionen: Definiert die notwendigen mathematischen Vektor- und Matrixoperationen, wie Rotationen, Normalisierungen und Kreuzprodukte, die die Basis für den Algorithmus bilden.
4. Hinweise zur Notation: Definiert die verwendeten Symbole und Operatoren für Vektoren und Matrizen innerhalb der mathematischen Formeln.
5. Algorithmus: Detailliert den Hauptteil der Arbeit, in dem die Sensordaten zu einer Orientierungsmatrix und Translationsvektoren verarbeitet und durch Filter korrigiert werden.
6. Grafische Visualisierung: Stellt die in Java entwickelte GraphicsEngine vor, die die berechneten Bewegungen eines Quadrokopter-Modells in Echtzeit visualisiert.
7. Vor- und Nachteile des Algorithmus: Bewertet die Genauigkeit, die Möglichkeiten zur Gestenerkennung sowie die Abhängigkeit von lokalen Magnetfeldstörungen.
8. Quellen: Listet die verwendeten Datenblätter und Referenzprojekte auf.
9. Anhänge: Enthält den vollständigen Java-Quellcode der Klassen Sensor und Physics.
Schlüsselwörter
Raspberry Pi 3, 9DOF-Sensor, LSM9DS0, BMP180, I2C, Java, Orientierungsbestimmung, Translation, Sensorfusion, Drehgeschwindigkeit, Beschleunigungsvektor, Magnetfeld, Drift-Kompensation, Echtzeit-Visualisierung, Kalman-Filter
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit beschreibt die Entwicklung eines Systems zur Erfassung und Visualisierung von räumlichen Bewegungen (3D-Orientierung und Translation) mithilfe von Inertialsensoren und Barometern.
Was sind die zentralen Themenfelder?
Die Arbeit verbindet Hardware-Anbindung (I2C), mathematische Modellierung von Rotationen, Signalverarbeitung durch Filter sowie die Programmierung einer grafischen Echtzeit-Ausgabe.
Was ist das primäre Ziel der Arbeit?
Ziel ist die präzise Berechnung der Lage und Bewegung eines Sensors im Raum, wobei durch mathematische Algorithmen eine Drift-Korrektur in Echtzeit ermöglicht werden soll.
Welche wissenschaftliche Methode wird verwendet?
Es werden Methoden der numerischen Integration (Trapez-Integration), Vektorrechnung und signaltechnische Filterverfahren (Low-pass-Filter, Korrekturfunktionen) eingesetzt.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in die mathematische Definition der Operationen, die algorithmische Umsetzung der Sensorfusion unter Berücksichtigung von Gravitation und Erdmagnetfeld sowie die Implementierung der grafischen Darstellung.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit lässt sich durch Begriffe wie Sensorfusion, Java-Programmierung, Embedded Systems (Raspberry Pi), Magnetfeld-Kompensation und Bewegungsverfolgung charakterisieren.
Warum wird ein Barometer im Setup verwendet?
Das Barometer dient der Bestimmung der vertikalen Position (Höhe), um die Drift bei der Translationsberechnung, die ausschließlich aus Beschleunigungsdaten gewonnen wird, auszugleichen.
Welche Rolle spielt die Funktion still()?
Die Funktion bewertet, ob der Sensor in Ruhe ist, um eine driftfreie Kalibrierung und Korrektur des Koordinatensystems gegenüber den Einheitsvektoren zu ermöglichen.
Warum wird Java als Programmiersprache gewählt?
Java bietet mit der Erweiterung pi4j eine gute Hardware-Anbindung und ermöglicht gleichzeitig eine effiziente, grafische Echtzeit-Darstellung der Berechnungsresultate.
Welche Einschränkungen hat der Algorithmus laut dem Autor?
Der Algorithmus ist anfällig für lokale Störungen des Magnetfeldes und bietet keine Möglichkeit, die absolute Translation in der x- und y-Ebene im Raum zu bestimmen.
- Quote paper
- Moritz Lehmann (Author), 2017, Erfassung von 3D Orientierung und Translation mittels eines 9DOF Sensors und eines Barometers, Munich, GRIN Verlag, https://www.grin.com/document/378112