SDE SoSe26: AP 1.2 Messung und Verarbeitung der Gierrate

Aus HSHL Mechatronik
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Abbildung 1: IMU MPU-9250/6500
Abb. 2: Task 1.2 des KANBAN Brett
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.


Tabelle 1: Anforderungen an die Spurerkennung
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.

Tabelle 2: Anforderungen an die Spurerkennung
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.



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.

ω=πT=18013s=13,85/s  


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.

Δ=|15,213,85|13,85100=9,75% 


Tabelle 3: Anforderungen an die Messung und Verarbeitung der Gierrate
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