Nach wenigen Wochen waren wir in der Lage die Daten mittels eines Mikrocontrollers auszulesen und durch eine RS232-Schnittstelle an einen PC zu senden (siehe Blogeintrag: 16. Oktober/ 8. November). In weiterer Entwicklung wurden nun Methoden aufgebaut und geschrieben, um die an den PC übermittelten Werte als csv-Datei zu speichern, beziehungsweise um sie in Echtzeit zu verarbeiten und graphisch darzustellen.
So wurden die Daten zu Beginn noch abgespeichert, um bei der Entwicklung der Rechenmethoden wiederholt auf die gleiche, numerisch dargestellte, Bewegungsabfolge zugreifen zu können. Anleitung für diese Methoden stammt von bereits bestehenden Arbeiten, welche sich ebenfalls mit diesen Sensortypen befassten, jedoch komplett eigenständig zu erdenken sind die speziellen Anwendungsfälle für den Laufvorgang.
Orientierung im Raum
Bisherige Arbeit wurde hauptsächlich in die Lagebestimmung des Sensors investiert. Dabei geht es um die Erkennung der Drehauslenkung des Sensors aus dem Nullzustand (=exakte Lage der negativen Z-Achse in der Gravitation/Erdbeschleunigung), was durch eine Kombination aus Vektor- und Matrixrechnung gelingt. Die hier verwendete Berechnungsvorschrift gilt nur für sich in Ruhelage befindende Körper. Informationen zu diesem Thema stammen vor allem aus den folgenden Quellen.https://github.com/kriswiner/MPU-6050/wiki/Affordable-9-DoF-Sensor-Fusion
http://www.codeproject.com/Articles/729759/Android-Sensor-Fusion-Tutorial
http://www.nxp.com/files/sensors/doc/app_note/AN4248.pdf
http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToMatrix/index.htm
Die verwendeten Bezeichnungen sind aus dem festgelegten Standard und wie folgt beschrieben.
Die aus diesen Anleitung hervorgehende Schrittabfolge wurde persönlich programmiert und enthält eigene Ideen, sowie gewisse Abschnitte aus oben angeführten Quellen, die teilweise übernommen wurden.
- Berechnung der Erdbeschleunigung aus den Achsenbeschleunigungen.
- Berechnung der Magnetflussstärke nach selber Vorgehensweise mit den Magnetdaten.
- Bank und Attitude werden durch Winkelfunktionen aus den Achsenbeschleunigungen geschlossen.
- Die x- und y- Komponenten des magn. Flusses werden der Gravitationslage angepasst und daraus der horizontale Magnetfluss berechnet.
Für den Tag der offenen Tür wurde nun noch eine Anwendung zur graphischen Ausgabe in 3D erstellt, die das Testen des Algorithmus in Echtzeit ermöglicht. Hier wird ein den Sensor darstellender Quader nach den vom LµC gesendeten Daten gedreht.
Die nächsten angedachten Entwicklungen gelten nun dem Heading, sowie der Einbindung der Gyroskopdaten, welche äußerst genaue und kurze Zeitabstände bei der Messung benötigen, und damit dem Abschluss der Orientierungsberechnung.
Den nächsten großen Punkt stellt danach die Geschwindigkeits- und Ortserkennung dar.
