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 AlphaBotserstellt 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 . 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 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. (maximale Abweichung ±15 %) | 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. 3). 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. In Abbildung 3 ist der montierte Gierratensensor zu erkennen. Anschließend muss der Sensor angeschlossen werden. Durch die Verwendung der Anschlüsse SCL und SDA des Gierratensensors erfolgt die Datenübertragung über I2C. In der nachfolgenden Tabelle sind die verwendeten Anschlüsse aufgelistet.
-
Abb. 3: Montierter Fierratensensor
| 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 Tiefpassfilter enthalten, welcher hochfrequentes Rauschen blockiert. Der MPU-9250 Block ist in Abbildung 4 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 5 ist die Aufteilung der der Gierrate in x-, y- und z-Rotation zu sehen.
-
Abb. 4: Simulink Block MPU-9250
-
Abb. 5: Aufteilung der Gierrate in x-, y- und z-Rotation
Test und Dokumentation (Check)
In diesem Abschnitt werden die definierten Anforderungen überprüft. Der Gierratensensor wurde in sei er Halterung angebracht. Die Prüfung erfolgt in einem Test, bei dem mit der Hand geprüft wurde, dass der Sensor sich in der Halterung nicht bewegt. Die Prüfung der I2C Übertragung erfolgte durch eine Sichtkontrolle, in der die korrekten Anschlussleitungen geprüft wurden. Die endgültige Überprüfung erfolgte anschließend, wenn die Messwerte in dem Simulink Programm zu erkennen sind. Zu Anschließend müssen die Messwerte des Gierratensensors auf Plausibilität geprüft werden. Dafür wurde mit dem AlphaBot eine Halbkreisfahrt gefahren. Für diese Halbkreisfahrt wurde die Zeit gemessen, die für die 180° gebraucht wurde. Mit dieser kann daraufhin die Gierrate berechnet werden. Anschließend wurde der Mittelwert der Gierrate aus den Messwerten des Gierratensensors ermittelt und mit dem berechneten Gierratenwert verglichen. Ein Wert von ±15% wird als korrekt angenommen. In der nachfolgenden Formel ist die Berechnung des Errechneten Gierratenwertes zu erkennen.
In Abbildung 6 sind die Messwerte des Gierrartensensors zu erkennen, welche bei der Halbkreisfahrt aufgenommen wurden. In dem Diagramm wurden die Werte der Gierrate gegenüber der Zeit aufgetragen. Mit Matlab wurde ein Code erstellt, der die Messwerte des Gierratensensors in °/s gegen über der Zeit in s darstellt. Außerdem wurde der Mittelwert dieser Messwert berechnet.
Dieser Mittelwert der Gierrate ist letztendlich der Wert, welcher mit dem Berechneten Mittelwert verglichen wurde um die Messwerte des Gierratensensors zu testen. Die Abweichung zwischen dem Mittelwert (15,2°/s) und dem Berechneten Wertes (13,85°/s) beträgt 9,75% und kann so als korrekt angenommen werden.
-
Abb. 6: Messwert des Gierratensensors
| ID | Priorität | Inhalt | Testergebnis | Erfüllt |
|---|---|---|---|---|
| 1 | 1 | Der Gierratensensor muss am Alphabot montiert werden. | Der Gierratensensor wurde auf Höhe der Hinterreifen fest montiert. | Ja |
| 2 | 1 | Die Datenübertragung muss über I2C erfolgen. | Durch Verwendung der Anschlüsse SCL und SDA konnten erfolgreich Daten über I2C übertragen werden | Ja |
| 3 | 1 | Der Gierratensensor muss die Gierrate mit einem Simulink Programm messen. (maximale Abweichung ±15 %) | Die Abweichung ist mit 8,88% innerhalb der Abweichungstoleranz von ± 15% | Ja |
Fehlerbehebung (Act)
Bei der Verwendung des AlphaBots ist darauf zu achten, dass der richtige Sensor angeschlossen ist. Da die AlphaBots von mehreren Studierenden verwendet 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

