Versuchsleitfaden: Rapid Control Prototyping

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Abb. 1: Autonome Fahrbahnvermessung im Labor Autonome Systeme
Autor: Prof. Dr.-Ing. Schneider
Versuch 3 MTR Fachpraktikum Mechatronik, MTR-B-2-5.10
BSE Angewandte Mechatronik, BSE-M-2-2.09
SVN-URL https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Praktika/WS2026/V3_Rapid_Control_Prototyping/
Status: Final

ℹ️ Einleitung

Autonome mobile Roboter müssen ihre Bewegung erfassen und gezielt steuern können. Bei einem Differentialantrieb lässt sich die Bewegung aus den Drehbewegungen der beiden Antriebsräder bestimmen (Odometrie). Ein Gyroskop misst dagegen unmittelbar die Winkelgeschwindigkeit um seine Achsen.

In diesem Versuch werden beide Verfahren praktisch untersucht. Zunächst erfassen die Studierenden die Odometriesignale des AlphaBot und realisieren eine geregelte Geradeausfahrt. Anschließend nehmen sie die MPU9250 in Betrieb, bestimmen den Gyroskopoffset und verwenden die gemessene Gierrate zur Regelung einer Kreisfahrt.

🎯 Lernziele

Nach Durchführung dieses Praktikums können Sie

  • Odometriesignale des AlphaBot mit MATLAB®/Simulink erfassen und visualisieren.
  • den Kurswinkel aus den Inkrementen der Radencoder berechnen.
  • eine geregelte Geradeausfahrt mit einem P-Regler realisieren.
  • die Gierrate einer MPU9250 erfassen und ihren Offset bestimmen.
  • die Gierrate integrieren und daraus eine Orientierungsschätzung berechnen.
  • eine Kreisfahrt mit einer geregelten Gierrate realisieren.
  • Soll- und Istverhalten anhand aufgezeichneter Messdaten vergleichen.


📖 Vorbereitung

Arduino Uno R4 Wifi

  • Arbeiten Sie sich anhand dieses Artikels in den AlphaBot ein. Sie benötigen lediglich die Ansteuerung der Motoren, das Auslesen der Inkrementalgeber und die Daten der IMU MPU 9250.
  • Machen Sie bei Fragen frühzeitig einen Termin mit Prof Schneider.
  • Binden Sie den Arduino Uno R4 Wifi in Ihre Wifi-Umgebung ein. Sie dürfen hierfür gern unser Labor verwenden.
  • Tragen Sie die WLAN-Zugangsdaten und die IP-Adresse in die entsprechende Zeile ein.
  • Folgen Sie der Anleitung im Wiki-Artikel: Arduino Uno R4 Wifi: Verbindung_zu_Simulink.
  • Gratulation! Sie sind nun startbereit!

Eine Sammlung von Tutorials finden Sie in diesem Wiki-Artikel: Arduino Uno R4 Wifi.

MATLAB®/Simulink

Voraussetzung für die Lösung der Aufgaben mit dem Arduino Uno R4 Wifi im Praktikum ist ein sicherer Umgang mit MATLAB®/Simulink R1016b.

Bearbeiten Sie als Vorbereitung die Selbstlernkurse

Referenz

Die Messung der Roboterposition erfolgt mit der Topcon Robotic Total Station. Machen Sie sich anhand des Artikels mit der Funktion vertraut. Bei der Bedienung und Aufzeichnung unterstützt Sie Prof. Schneider,

Odometrie

Abb. 2: Kursbestimmung aus differentieller Odometrie

Arbeiten Sie die Grundlagen der differentiellen Radodometrie auf. Klären Sie, wie aus den Raddrehungen die zurückgelegte Strecke und die Änderung der Roboterorientierung berechnet werden.

Sensoren

Informieren Sie sich über die Messung der Gierrate, den Einfluss eines Bias und die Integration der Gierrate zur Berechnung eines Winkels. Bereiten Sie eine Kalibrierroutine für den Stillstand vor.

Digitale Signalverarbeitung

Abb. 3: Interrupt Service Routine für die linke Lichtschranke des AlphaBot
Abb. 4: X-Y-Darstellung der gefahrenen Strecke (Referenz)
Abb. 5: Strecke über der Zeit (Referenz)
Abb. 6: Startpunkt der Referenzmessung
SVN-URL: https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Praktika/WS2026/V3_Rapid_Control_Prototyping/

Abb. 3 zeigt die ISR für die linke Lichtschranke dea AlphaBot. Die ISR für die Rechte ist gleich.

  • Das Fahrmanöver bestand aus Geradeausfahrt gefolgt von einem Stopp bei einer PWM von 80.
  • Die Daten in Tabelle 1 wurden aufgezeichnet und in der Datei Odometrie.mat gespeichert.
  • Die Positionen des AlphaBot wurde gleichzeitig mit dem Referenzsystem gemessen und in der Datei Referenz.mat gespeichert.

Aufgabe 4: Analyse der Odometrie

  1. Laden Sie die Referenz und analysieren Sie die Messwerte (vgl. Abb. 4 und 5).
    1. Welche zeitliche Auflösung hat die Referenz?
    2. Welche Werteauflösung hat die Referenz?
    3. Welche Unsicherheit hat die Referenz?
  2. Berechnen Sie aus den Referenzpositionen vx,vy und v=vx2+vy2.
  3. Laden Sie die Odometrie und analysieren Sie die Messwerte.
  4. Die referenzierte Fahrt finden Sie in Odometrie.mat ab 110 s (vgl. Abb. 6).
  5. Bestimmen Sie aus den Messignalen die gefahrene Strecke und Geschwindigkeit.
  6. Bewerten Sie die Qualität der Signale SL, SR, VL, VR.
Tabelle 1: Odometrie.mat beinhaltet die Timeseries Struktur AlphaBotOdometrie
Variable Einheit Beschreibung
CNTL - Inkrementzähler Links
CNTR - Inkrementzähler Rechts
CTimeL s Zeitstempel zum Inkrementzähler Links
CTimeR s Zeitstempel zum Inkrementzähler Rechts
TimeDiffL s dt zwischen den Zählimpulsen Links
TimeDiffR s dt zwischen den Zählimpulsen Rechts
SL m Strecke des linken Rades
SR m Strecke des rechten Rades
VL m/s Geschwindigkeit des linken Rades
VR m/s Geschwindigkeit des rechten Rades
Tabelle 2: Referenz.mat
Variable Einheit Beschreibung
Referenz m Messvektor (x,y,z)T
Zeitstempel s Zeitstempel zum Messvektor

Aufgabe 5: Regelung des AlphaBot

SVN-URL: https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Praktika/WS2026/V3_Rapid_Control_Prototyping/Demos/AlphaBotSimulator.slx

Das Demo AlphaBotSimulator.slx simuliert das Verhalten des AlphaBots.

  1. Schalten Sie die Reglerauswahl auf Odo.
  2. Implementieren Sie im Block Odo-Regler einen P-Regler.
  3. Legen Sie den Odometrie-Regler so aus, dass der AlphaBot geradeaus fährt (eOdo = 0). Dies ist die Vorbereitung für Aufgabe 1.2.
  4. Schalten Sie die Reglerauswahl auf Gyro.
  5. Implementieren Sie im Block Gyro-Regler einen PI-Regler.
  6. Legen Sie den Gyro-Regler so aus, dass der AlphaBot die Sollgierrate GyroSoll erreicht (eGyro = 0). Dies ist die Vorbereitung für Aufgabe 1.4.

❓ Vorbereitungskontrollfragen

Beantworten Sie sich die Vorbereitungskontrollfragen anhand der Wiki-Artikel und unter Zuhilfenahme geeigneter Literatur.

💻 Demos

Tabelle 2: Übersicht der Demos
# SW Modul Funktion Testbericht Testergebnis
1
DemoArduinoUnoR4Wifi.slx Demo zum Datenaustausch Simulink ↔ Uno R4 via Wifi Testbericht ✓
2
DemoWifi.ino Arduino wird ins Wifi des Labors eingebunden. Die Zeit in ms wird auf der Webseite veröffentlicht. Testbericht ✓
3
Differentialantrieb.m Differentialantrieb: Pose-Berechnung aus Radencoderstrecken ✓
4
DemoAlphaBotOdometrie.slx Die Inkrementalgeber werden über einen Interrupt eingelesen, Sl und SR berechnet und dargestellt. ✓
5
DemoAlphaBotIMU.slx Die Gierrate wird eingelesen, der Offset abgezogen unddas Ergebnis dargestellt. ✓
6
AufgabeGyroKalibrierung.slx Framework für Aufgabe 3 der Vorbereitung. ✓
7
AlphaBotSimulator.slx Simulator für den AlphaBot ✓

Weitere AlphaBot und Arduino Demos finden Sie im SVN-Repositorium

https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/

Die Simulink-Bibliothek HSHL_Sensoren ist auf allen Rechner installiert. Darin befindet sich der Sensor-Block MPU9250_IMU_Sensor_Qwiic.

☑️ Aufgaben

Diskutieren Sie die Ergebnisse der einzelnen Versuchsteile mit dem Betreuer. Dokumentieren Sie Messdaten, Modelle, Parameter und Auswertungen in SVN.

Uhrzeit Aufgabe Dauer
09:00 Uhr Einleitung 10 min
09:10 Uhr Odometriesignale erfassen 15 min
09:25 Uhr Odometrie auswerten 20 min
09:45 Uhr Geradeausfahrt implementieren 25 min
10:10 Uhr Geradeausfahrt demonstrieren 10 min
10:20 Uhr Regelverhalten bewerten 15 min
12:35 Uhr Gyroskop erfassen 10 min
12:45 Uhr Gyroskop kalibrieren 15 min
11:00 Uhr Kreisfahrt regeln 25 min
11:25 Uhr Kreisfahrt demonstrieren 10 min
11:35 Uhr Ergebnis auswerten 15 min
11:50 Uhr Dokumentation und SVN-Abgabe 10 min
12:00 Uhr Praktikumsende

Modelleinstellungen für Simulink

Die Standardeinstellung für den Simulink Solver sind:

  • Hardware Board: Arduino Uno R4 Wifi
  • Solver Selection type: Fixed-step
  • Solver: descrete
  • Fixed-step size: 10 ms

Tutorial: Arduino Uno R4 Wifi: Verbindung zu Simulink

Tabelle 1: Materialliste für alle Aufgaben
# Anzahl Material
1 1 AlphaBot mit Arduino R4 Uno Wifi, IMU 9250 und Prismahalterung
2 1 USB-C Kabel
3 1 Prisma
4 1 Topcon Robotik Total Station

Aufgabe 1.1: Odometriesignale mit Simulink erfassen

  1. Lesen Sie die Odometriesignale des AlphaBot mit MATLAB®/Simulink aus.
  2. Nutzen Sie hierfür Monitor & Tune via WLAN.
  3. Visualisieren Sie die verfügbaren Messgrößen und prüfen Sie deren zeitlichen Verlauf.
  4. Fahren Sie 8 m geradeaus.
  5. Realisieren Sie die Zustände Stillstand, Fahrt und Stopp mit Stateflow.
  6. Zeichnen Sie die Daten während einer Fahrt mit gerader Strecke auf s=sL+sR2.
  7. Dokumentieren Sie die Signalnamen, Einheiten, Abtastzeiten und die Bedeutung der einzelnen Messgrößen.
  8. Prüfen Sie, ob die Odometriesignale plausibel auf die ausgeführten Bewegungen reagieren.

Auswertung in MATLAB®

  1. Stellen Sie die Strecken der beiden Räder SL und SR über der Zeit dar.
  2. Vergleichen Sie die zurückgelegten Strecken des linken und rechten Rades. Sind die Verläufe plausibel?
  3. Berechnen Sie die mittlere zurückgelegte Strecke des AlphaBot.
  4. Bestimmen Sie die tatsächlich gefahrene Strecke und vergleichen Sie diese mit der Sollstrecke.

Arbeitsergebnis in SVN: AlphaBotOdometrie.slx, OdometrieMessung.mat, analysiereOdometrie.m

Aufgabe 1.2: Geregelte Geradeausfahrt mit Odometrie

  1. Lesen Sie die Odometrie ein.
  2. Implementieren Sie einen einfachen P-Regler für eine Geradeausfahrt: PWM=PWM0±u.
  3. Fahren Sie geregelt 8 m geradeaus.
  4. Zeichnen Sie die Referenz mit der Topcon-Station auf.

Kurswinkel aus der Odometrie:

  • Δψ=ΔsR−ΔsLl
  • ψk=ψk−1+ΔsR−ΔsLl

Regleransatz: eS=SR−SL → u=KP⋅eS

Auswertung in MATLAB®

  1. Synchronisieren Sie Messung und Referenzdaten.
  2. Stellen Sie den Regelfehler und die Stellgröße des P-Reglers über der Zeit dar.
  3. Bestimmen Sie die erreichte Endstrecke und vergleichen Sie diese mit der Sollstrecke.
  4. Bewerten Sie, ob der Kurswinkel während der Fahrt um den Sollwert 0° gehalten werden konnte anhand der Referenz.
  5. Untersuchen Sie den Einfluss der Reglerverstärkung KP auf das Regelverhalten.
  6. Vergleichen Sie die gefahrene Trajektorie mit der Topcon-Referenz.

Arbeitsergebnis in SVN: Geradeausfahrt.slx, Geradeausfahrt.mat, RefGeradeausfahrt.mat, analysiereGeradeausfahrt.m

Aufgabe 1.3: Gyrosignale mit Simulink erfassen

  1. Binden Sie die MPU9250 über die sekundäre I²C-Schnittstelle (Qwiic) in Simulink ein.
  2. Lesen Sie die Gyroskopmesswerte der Z-Achse aus.
  3. Realisieren Sie die Zustände 0: Kalibrierung 1: Stillstand, 2: Kreisfahrt und 3: Stopp mit Stateflow.
  4. Als Eingang erhält Stateflow den ResetRequest. Der Knopf Reset setzt das Modell zurück auf Zustand 0.
  5. Ausgänge der Zustandsmaschine sind PWML, PWMR, Kalib und Zustand.
  6. Setzen Sie im Zustand 0: Kalibrierung Kalib auf TRUE.
  7. Kalib geht auf ein Enable Subsystem. Dieses System mittelt im Stillstand 1000 Gyromessungen GyroZ und schreibt den rekursiven Mittelwert in GyroOffset.
  8. Realisieren Sie das rekursive Mittelwertfilter im Enable Subsystem mit dem Namen GyroKalibrierung.
  9. Die Stillstandphase wird durch eine rote Lampe im Modell signalisiert. Während der Kalibrierung darf der Alphabot nicht bewegt werden.
  10. Drehen Sie den AlphaBot um die Z-Achse und zeichnen Sie die resultierenden Messsignale auf.


Auswertung in MATLAB®

  1. Stellen Sie die Gierrate (GyroZ) über der Zeit dar.
  2. Vergleichen Sie die Messsignale während des Stillstands und während einer Drehbewegung.
  3. Diskutieren Sie, weshalb eine fehlerhafte Offsetbestimmung bei der Integration der Gierrate zu einem Winkelfehler führt.

Arbeitsergebnis in SVN: AlphaBotGyro.slx, GyroMessung.mat, analysiereGyro.m

Aufgabe 1.4: Geregelte Kreisfahrt mit Gyroskop

Der AlphaBot soll eine Kreisbahn mit möglichst konstantem Radius und konstanter Fahrgeschwindigkeit durchfahren. Die Gierrate der MPU9250 wird zur Regelung der Drehbewegung verwendet.

  1. Bestimmen Sie die erforderliche Soll-Gierrate für eine vorgegebene Fahrgeschwindigkeit und einen vorgegebenen Kreisradius ωsoll=vr.
  2. Erfassen Sie die gemessene Gierrate der IMU MPU9250 und korrigieren Sie diese um den Gyroskopoffset.
  3. Implementieren Sie einen PI-Regler, der die Abweichung zwischen Soll- und Ist-Gierrate minimiert.
  4. Verwenden Sie die Reglerausgabe zur differentiellen Ansteuerung der beiden Antriebsmotoren. Die mittlere Fahrgeschwindigkeit soll dabei möglichst konstant bleiben.
  5. Führen Sie eine Kreisfahrt durch und zeichnen Sie die Gierrate sowie die berechnete Robotertrajektorie und die Referenz mit der Topcon-Station auf.

Auswertung in MATLAB®

  1. Berechnen Sie aus dem Kurswinkel der Referenz die Referenzgierrate GyroZRef.
  2. Stellen Sie die Soll-Gierrate, die gemessene Gierrate GyroZ und die Gierrate aus der Referenz über der Zeit dar.
  3. Berechnen Sie die Abweichung zwischen Soll- und Ist-Gierrate.
  4. Bestimmen Sie den gefahrenen Kreisradius aus der Referenzmessung.
  5. Stellen Sie die berechnete Trajektorie des AlphaBot, die Messung und die Referenz in einer X-Y-Darstellung dar.
  6. Vergleichen Sie den erreichten Kreisradius mit dem vorgegebenen Sollradius.
  7. Untersuchen Sie den Einfluss der PI-Reglerparameter auf das Einschwingverhalten und die Regelabweichung.
  8. Diskutieren Sie mögliche Ursachen für Abweichungen von einer idealen Kreisbahn.

Arbeitsergebnis in SVN: AlphaBotKreisfahrt.slx, Kreisfahrt.mat, KreisfahrtRef.mat, analysiereKreisfahrt.m

❓ Lernzielkontrollfragen zum praktischen Teil

Odometrie und Geradeausfahrt

  1. Warum müssen die Inkremente des linken und rechten Rades getrennt erfasst werden?
  2. Wie wirkt sich eine unterschiedliche zurückgelegte Strecke der beiden Räder auf den Kurswinkel des AlphaBot aus?
  3. Warum kann der Roboter trotz einer geregelten Fahrt von einer geometrisch vorgegebenen Geraden abweichen?
  4. Welche Auswirkungen hat eine zu große Reglerverstärkung KP auf das Regelverhalten der Geradeausfahrt?

Gyroskop und Kreisfahrt

  1. Warum muss der Gyroskopoffset vor der Integration der Gierrate bestimmt werden?
  2. Wie wirkt sich ein verbleibender Offset von 0,1°/s nach einer Integrationszeit von 60 s auf den berechneten Winkel aus?
  3. Wie hängen Fahrgeschwindigkeit, Kreisradius und Soll-Gierrate zusammen?
  4. Warum reicht eine geregelte Gierrate allein nicht aus, um einen konstanten Kreisradius sicherzustellen?

📁 Dokumentation und Abgabe

Sichern Sie alle Ergebnisse in SVN. Dazu gehören:

  • Simulink-Modelle mit Header, Autor, Funktion und kommentierten Signalen.
  • MATLAB®-Skripte zur Auswertung der Messdaten.
  • Rohdaten der Odometrie, IMU und Topcon-Referenz.
  • Ergebnisse der fünf Quadratfahrten je Versuchsvariante.
  • Diagramme, Fehlerkennwerte und eine nachvollziehbare Diskussion.
  • Für die Master-Erweiterung: Zustandsmodell, Rauschannahmen und Kalman-Filter-Implementierung.

Die Messreihen müssen eindeutig benannt und den jeweiligen Versuchsvarianten zugeordnet sein. Dokumentieren Sie Abweichungen vom vorgesehenen Versuchsablauf.

Literatur und weiterführende Informationen

Anhang


→ zurück zum Hauptartikel: WS 26/27: Fachpraktikum Mechatronik (MTR) und Angewandte Mechatronik (BSE)