SDE SoSe26: AP 1.2 Messung und Verarbeitung der Gierrate

Aus HSHL Mechatronik
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 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.


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. (+/-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.

Tabelle 1: 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 digitaler Tiefpassfilter (DLPF) enthalten, welcher hochfrequentes Rauschen blockiert. Der MPU-9250 Block ist in Abbildung 3 zu sehen.

In dem MPU-9250 Block werden unter der Gierrate drei Werte ausgegeben. Dies sind die 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). 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 der Gierachse einzelnt weiter verarbeitet werden können

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.



Tabelle 1: 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 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