SDE SoSe26: AP 1.2 Messung und Verarbeitung der Gierrate


| Autor: | Julius von Agris |
| Modul | Mechatronik, Systementwicklung (Wahlpflichtprofil „Systems Design Engineering“), Sommersemester |
| Lehrveranstaltung: | Praktikum Systementwicklung |
| Sprint: | Bildbasierte Spurführung für autonomes Fahren |
| SVN-URL | https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/AlphaBot/
|
Einleitung
Im Rahmen der Lehrveranstaltung SDE Systementwicklung soll eine bildbasierte Spurführung für autonomes Fahren eines AlphaBots erstellt werden. Um diesen im späteren Verlauf vernünftig regeln zu können, ist es notwendig, die Gierrate des AlphaBots zu messen. In diesem Abschnitt soll es darum gehen, mithilfe des IMU MPU-9250/6500 Gierratensensors, die Gierrate zu messen und zu verarbeiten. Dafür muss der Gierratensensor angeschlossen werden und anschließend muss ein Simulink-Programm erstellt werden. Mit den Messwerten des Gierratensensors soll die Querregelung geregelt werden können.
Planung (Plan)
Ist-Zustand
Die Arbeitsgruppe des vorherigen Semesters hat die bildbasierte Spurführung für autonomes Fahren ohne den Gierratensensor IMU MPU-9250/6500 realisiert. Der Drehwinkel der Räder bzw. das Lenken des AlphaBots wurden bis jetzt ausschließlich über die Pixy2.1-Kamera realisiert.
Soll-Zustand
Die Spurregelung soll durch den IMU MPU-9250/6500 Gierratensensor geschützt werden. Der AlphaBot soll auf einer geraden Strecke mit Maximalgeschwindigkeit fahren und in Kurven passend nach der Krümmung langsamer fahren. Dafür müssen die Messwerte des Gierratensensors aufgenommen und gefiltert werden. Dies soll in Matlab/Simulink programmiert werden.
| ID | Priorität | Inhalt | Ersteller | Datum |
|---|---|---|---|---|
| 1 | 1 | Der Gierratensensor muss am Alphabot montiert werden. (Foto und keine Bewegung mit der Hand möglich) | Julius von Agris | 09.06.2026 |
| 2 | 1 | Die Datenübertragung muss über I2C erfolgen (Messdaten sind in Simulink einlesbar) | Julius von Agris | 09.06.2026 |
| 3 | 1 | Der Gierratensensor muss die Gierrate mit einem Simulink Programm messen. (+/-15% Abweichungstoleranz) | Julius von Agris | 09.06.2026 |
Der Gierratensensor muss zu nächst an dem AlphaBot montiert werden. Am AlphaBot gibt es bereits eine Halterung für den Gierratensensor mittig zwischen den Rädern (siehe Abb. xxx). Des Weiteren soll die Datenübertragung über I2C erfolgen. Dafür müssen die Anschlüsse SCL und SDA verwendet werden. Anschließend muss eine Simulink Programm geschrieben werden mit dem die Messwerte des Gierratensensors dargestellt werden können. Für den IMU MPU-9250/6500 Gierratensensor gibt es bereits den Matlab-Block MPU-9250. Geplant ist es, mit diesem die Messwerte ausgeben zu lassen. Die Gierrate wird in °/s ausgegeben. Im späteren Vorgehen wird in einer Halkreisfahrt die Gierrate gemessen. Dafür wird dann die Zeit gemessen, in der die 180° gefahren wurden. Anschließend wird mit der Dauer der Kreisfahrt ein berechneter Wert mit dem Mittelwert der Gierrate aus der Messung verglichen. Dieser wird als richtig angenommen, wenn er innerhalb +/- 15% des erwartenden Wertes liegt.
Umsetzung (Do)
Zuerst muss der IMU MPU-9250/6500 Gierratensensor auf dem Alphabot montiert werden. Mit einer Halterung für den Sensor wird mittig zwischen den Rädern befestigt. Anschließend muss der Sensor angeschlossen werden. In der nachfolgenden Tabelle sind die verwendeten Anschlüsse aufgelistet.
| Nr. | Anschluss-PIN Senesor | Anschluss-Pin Arduino |
|---|---|---|
| 1 | VCC | 3V |
| 2 | GND | GND |
| 3 | SCL | A5 |
| 4 | SDA | A4 |
Programmierung in Simulink
Im nächsten Schritt muss ein Matlab/Simulink-Programm für den IMU MPU-9250/6500 Sensor erstellt werden. Dafür gibt es im Library-Browser ein Supportpackage mit dem Namen "Simulink Support Package for Arduino Hardware“." In dieser ist ein MPU9250 Block enthalten, für den IMU MPU-9250/6500 Gierratensensor. In dem MPU-9250 Block ist zu dem ein digitaler Tiefpassfilter (DLPF) enthalten, welcher hochfrequentes Rauschen blockiert. Der MPU-9250 Block ist in Abbildung 3 zu sehen.
In dem MPU-9250 Block wird die Gierrate als 3x1 Vektor ausgegeben. In diesem Vektor sind Werte für die Rotation um die x-Achse (Rollachse), die Rotation um die y-Achse (Nickachse) und die Rotation um die z-Achse (Gierachse) enthalten. Für die Querregelung wird allerdings nur die Gierachse benötigt. Aus diesem Grund werden die Werte in dem Simulink Programm separat ausgegeben, so dass die Werte für die Rotation um die z-Achse weiter genutzt werden können. In Abbildung 4 ist die Aufteilung der Werte zu sehen.
-
Abb. 3: Simulink Block MPU-9250
-
Abb. 4: Aufteilung der drei Werte der Gierrate
Test und Dokumentation (Check)
In der Abbildung 4 sind die gemessenen Rohdaten des IMU MPU-9250/6500 zu sehen. Der Gierratensensor gibt 3 Messkurven aus. Die blaue Kurve stellt die Rotation um die x-Achse dar, welche auch Rollachse genannt wird. Die Rotation um die y-Achse wird in dem Diagramm mit der gelben Messkurve dargestellt. Diese wird auch Nickachse genannt. Zuletzt ist noch die orangefarbene Messkurve zu erkennen. Diese bildet die Rotation um die z-Achse ab, welche auch Gierachse genannt wird.
-
Abb. 4: Simulink Block MPU-9250
| ID | Priorität | Inhalt | Testergebnis | Erfüllt |
|---|---|---|---|---|
| 1 | 1 | Der Gierratensensor muss am Alphabot montiert werden. | Der Gierratensensor wurde auf Höhe der hinterreifen montiert. | Ja |
| 2 | 1 | Der Gierratensensor muss die Gierrate messen. | Durch einfügen des MPU-9250 Simulink-Blocks konnte die Gierrate gemessen werden. | Ja |
| 3 | 1 | Die Messdaten des Gierratensensors müssen gefiltert werden. | Eine Filterung war nicht notwendig, da die Werte schon von dem MPU-9250 Block gefilter wurden | Ja |
| 4 | 1 | Die Messung und das Filtern müssen in Matlab Simulink realisiert werden. | Die Messung und diue Filterung wurde erfolgreich mit dem MPU-9250 Block in Simulink realisiert. | Ja |
| 5 | 1 | Die Datenübertragung muss über I2C erfolgen. | Die Datenübertragung erfolgt über I2C. | Ja |
Fehlerbehebung (Act)
Bei der Verwendung des AlphaBots ist darauf zu achten, dass der richtige Sensor angeschlossen ist. Da die AlphaBots von mehreren Studenten benutzt werden, kann es passieren, dass ein anderer Gierratensensor als der IMU MPU-9250/6500 verbaut ist. Darauf ist zu achten, da sonst der MPU9250-Simulinkblock keine bzw. falsche Werte ausgibt.
Nütliche Artikel
→ zurück zum Hauptartikel: Bildbasierte Spurführung für autonomes Fahren

