AM 09: Inertialnavigation: Unterschied zwischen den Versionen
Zeile 80: | Zeile 80: | ||
Die Datenübertragung von Sensor zu Mikrocontroller findet über eine I²C-Kommunikation statt. Die Sensoren weisen verschiedene Schwächen auf, die bei der Nutzung als Navigationssensoren zu berücksichtigen sind. | Die Datenübertragung von Sensor zu Mikrocontroller findet über eine I²C-Kommunikation statt. Die Sensoren weisen verschiedene Schwächen auf, die bei der Nutzung als Navigationssensoren zu berücksichtigen sind. | ||
Wie in Abbildung 1 ersichtlich, soll durch die Fusionierung der drei Sensordaten ein genauerer Kurs ermittelt werden, als würde nur einer der Sensoren benutzt werden. Dabei werden auf kurze Laufzeiten die Daten des Gyrosensors genutzt. In wiederkehrenden Abständen werden diese Werte durch Daten des Beschleunigungssensors korrigiert. Zusätzlich findet der Kompasssensor Anwendung zur Korrektion dieser Werte. | Wie in Abbildung 1 ersichtlich, soll durch die Fusionierung der drei Sensordaten ein genauerer Kurs ermittelt werden, als würde nur einer der Sensoren benutzt werden. Dabei werden auf kurze Laufzeiten die Daten des Gyrosensors genutzt. In wiederkehrenden Abständen werden diese Werte durch Daten des Beschleunigungssensors korrigiert. Zusätzlich findet der Kompasssensor Anwendung zur Korrektion dieser Werte. | ||
Version vom 13. Januar 2017, 14:24 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 5. Semester Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren:
Betreuer: Prof. Schneider
Aufgabe
Integration einer IMU
Erwartungen an die Projektlösung
- Einarbeitung in die bestehenden Ardumowers-Unterlagen
- Planung und Beschaffung der Bauteile
- Aufbau und Integration der Inertialsensorik (Kompass, 3-Achs-Gyros, 3-Achs-Beschleunigungsmesser)
- Kalibrierung der Sensoren
- Inertialnavigation (Sensordatendfusion) anhand der IMU
- Darstellung der Ergebnisse im Vergleich zur Referenz
- Erstellen Sie ein faszinierendes Video, welches die Funktion visualisiert.
- Test und wiss. Dokumentation
Schwierigkeitsgrad
- Mechanik: *
- Elektrotechnik: *
- Informatik: **
Einleitung
Das Ardumowerprojekt des 5. Semesters Mechatronik in Kooperation mit dem Masterstudiengang Business and System Design Engineering an der Hochschule Hamm-Lippstadt hat zum Ziel, einen voll funktionsfähigen autonomen Rasenmähroboter in Betrieb zu nehmen. Dazu werden die notwendigen Aufgaben für die Erfüllung des Projektes auf einzelne Gruppen aufgeteilt. Die Gruppe Inertialnavigation beschäftigt sich mit der Inbetriebnahme einer IMU (Inertial Measurement Unit), die eine Kombination aus drei verschiedenen Sensoren auf einer Platine darstellt. Es sind dabei ein Magnetsensor (Kompass), ein Beschleunigungssensor und ein Gierratensensor vorhanden. Damit lässt sich die Lage des Mähroboters bestimmen, nachdem die IMU verbaut wurde.
Projektdurchführung
Projektplan
1. Erstellung einer BOM und Beschaffung der IMU
2. Löten der Anschlusspins an die IMU
3. Einlesen in das Datasheet des Sensors
4. Funktionstest mit einem Arduino und passender Library
5. Fehlersuche und -behebung mithilfe grafischer Ausgabe der Sensordaten
6. Anwenden von Filtern (Tiefpassfilter, Kalman) und Kalibrierungsalgorithmen zur Verbesserung der Daten
7. 3D-Darstellung der Bewegung eines Testkörpers in Matlab
Vorstellung der Bauteile
Die inertiale Messeinheit (IMU) GY-85 kombiniert mehrere Inertialsensoren auf einer Platine. Enthalten sind:
- ADXL345 (3-Achsen-Beschleunigungssensor)
- HMC5883L (3-Achsen Digitalkompass)
- ITG3205 (3-Achsen-Drehratensensor (Gyro) und integrierter Temperatursensor)
HMC5883L (3-Achsen Digitalkompass)
Der Kompasssensor stellt Werte für 3-Achsen bereit. Bei einer ebenen Ausrichtung sind nur X- und Y-Achse nötig, um die Abweichung von Norden zu berechnen. Ein 0° Kurs kennzeichnet die Ausrichtung nach Norden. Der Kompasssensor gibt den Kurs absolut an, ist jedoch störungsbehaftet, besonders wenn sich Ferromagnetika oder stromdurchflossene Leiter (v.a. Elektromotoren) in nahem Radius um den Sensor befinden. Der Sensor sollte mit einem minimalen Abstand von 30 cm zu Motoren angebracht werden.
ITG3205 (3-Achsen-Drehratensensor, Gyrosensor)
Der Gyrosensor misst Änderungen der Lage des Sensors im Raum und kann Winkelveränderungen um alle drei Drehachsen (3-Achsen Gyrosensor) detektieren. Seine Funktionalität beruht auf der Massenträgheit. Moderne MEMS-Gyrosensoren nutzen meist den piezoelektrischen Effekt, um ein oder mehrere Piezo-Elemente in Schwingung zu versetzen. Wird die Lagerung des Elementes nun in eine andere Richtung ausgerichtet, verformt dieses sich kurzzeitig, da es aufgrund der Trägheit seiner Masse zunächst in seiner vorherigen Schwingungsposition verbleibt. Der piezoelektrische Effekt findet nun umgekehrt statt und es wird eine Spannung induziert. Sie bildet das Ausgangssignal des Sensors und ist proportional zu dessen Winkelgeschwindigkeit. Die Werte des Gyrosensor kurzzeitig sehr genau, driften allerdings über die Zeit.
ADXL345 (3-Achsen-Beschleunigungssensor)
Der Beschleunigungssensor misst (Überraschung!) Beschleunigungen. Abbildung 1 zeigt das Modell eines solchen Sensors. Es handelt sich bei diesem Sensor um ein mikro-elektro-mechanische System (MEMS). Innerhalb des Sensors befindet sich eine kleine Testmasse, die allseitig von Federn gelagert ist. Bei Beschleunigungen wirkt durch die Trägheit der Testmasse eine Kraft auf eine oder mehrere der Federn. Die Auslenkung der Federn wiederum kann gemessen werden. Im Ruhezustand wird als einzige Beschleunigung die Erdbeschleunigung gemessen. Da diese immer Richtung Erdmittelpunkt gerichtet ist, kann der Beschleunigungssensor gut als Referenz und zu Korrektionen der aktuellen Ausrichtung genutzt werden. Die Werte driften nicht über Zeit, weisen allerdings ein hohes Rauschen auf und sind deshalb zur direkten Winkelbestimmung weniger geeignet die des Gyrosensors.
Ergebnis
Inertialnavigation mithilfe der GY-85 IMU
Die Datenübertragung von Sensor zu Mikrocontroller findet über eine I²C-Kommunikation statt. Die Sensoren weisen verschiedene Schwächen auf, die bei der Nutzung als Navigationssensoren zu berücksichtigen sind.
Wie in Abbildung 1 ersichtlich, soll durch die Fusionierung der drei Sensordaten ein genauerer Kurs ermittelt werden, als würde nur einer der Sensoren benutzt werden. Dabei werden auf kurze Laufzeiten die Daten des Gyrosensors genutzt. In wiederkehrenden Abständen werden diese Werte durch Daten des Beschleunigungssensors korrigiert. Zusätzlich findet der Kompasssensor Anwendung zur Korrektion dieser Werte.
Link für das SVN-Projektarchiv Inertialnavigation
Zusammenfasung
Ausblick
Weiterführende Links
- Ardumower Wiki
- Web-Shop: IMU
- Wiki: IMU
- Global Navigation Satellite Systems, Inertial Navigation, and Integration, 3e
- Matlab File Exchange: Visual Inertial Odometry
- Simulink Blocksatz: Three-Axis Inertial Measurement Unit
- Simulink Blocksatz: Three-Axis Gyroscope
- Simulink Blocksatz: Three-Axis Accelerometer
- MATLAB Examples: Designing a Guidance System in MATLAB and Simulink
- MathWorks: Quadcopter Project
- [Efficient and Robust Pose Estimation Based on Inertial and Visual Sensing https://mediatum.ub.tum.de/doc/1092914/document.pdf]
- Inertiasl-Visual Odometry on mobile Devices
- Live 3D Reconstruction on Mobile Phones
Unterlagen
Literatur
- Wendel, J.': Integrierte Navigationssysteme: Sensordatenfusion, GPS und inertiale Navigation. München : Oldenbourg Verlag, 2. Auflage 2011. ISBN: 9783486704396 eBook
YouTube-Video
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 16/17)