Versuchsleitfaden: Rapid Control Prototyping
| 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.
| Bewertung |
| Bewertet wird der Fortschritt im Praktikum, die Ergebnisdarstellung und Diskussion. Präsentieren Sie hierfür Ihre Arbeitsergebnisse. |
| Voraussetzungen |
|
Dieser Praktikumsversuch setzt nachfolgende Kenntnisse voraus
|
| Praktikumsordnung |
|
| Ablauf des Praktikums |
|
Bereiten Sie sich anhand des Versuchsleitfadens, von Datenblättern und der Literatur umfassend auf die Versuche vor.
Hinweis: Alle Versuche wurden neu erstellt. Sollten Sie Fragen haben oder Fehler finden, wenden Sie sich schnellstmöglich an Prof. Schneider, damit Unklarheiten während der Vorbereitung beseitigt werden können.
|
| Softwareanforderungen |
|
Im Labor ist für Sie folgende Software installiert
|
📖 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

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.
| Aufgabe 1: Differentialantrieb |
|
Ein AlphaBot besitzt zwei Räder mit dem Radius \(r=3{,}2\,cm\). Der Abstand zwischen den Rädern (Spurweite) beträgt \(l=14\,cm\). Das linke Rad legt in einem Zeitintervall eine Strecke von 10 cm zurück, das rechte Rad 12 cm. Berechnen Sie:
Für den Kurswinkel gilt: mit : Spurweite |
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.
| Aufgabe 2: Gyroskop |
|
Ein Gyroskop liefert eine konstante Gierrate von \(10\,^\circ/s\). Der Messbias beträgt \(0{,}5\,^\circ/s\). Berechnen Sie:
|
| Aufgabe 3: Gyroskop Kalibrierung |
|
Im Modell Die Gleichung für ein rekursives Mittelwertfilter lautet .
|
Digitale Signalverarbeitung




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.matgespeichert. - Die Positionen des AlphaBot wurde gleichzeitig mit dem Referenzsystem gemessen und in der Datei
Referenz.matgespeichert.
Aufgabe 4: Analyse der Odometrie
- Laden Sie die Referenz und analysieren Sie die Messwerte (vgl. Abb. 4 und 5).
- Welche zeitliche Auflösung hat die Referenz?
- Welche Werteauflösung hat die Referenz?
- Welche Unsicherheit hat die Referenz?
- Berechnen Sie aus den Referenzpositionen und .
- Laden Sie die Odometrie und analysieren Sie die Messwerte.
- Die referenzierte Fahrt finden Sie in
Odometrie.matab 110 s (vgl. Abb. 6). - Bestimmen Sie aus den Messignalen die gefahrene Strecke und Geschwindigkeit.
- Bewerten Sie die Qualität der Signale
SL, SR, VL, VR.
| 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 |
| 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.
- Schalten Sie die Reglerauswahl auf
Odo. - Implementieren Sie im Block
Odo-Reglereinen P-Regler. - Legen Sie den Odometrie-Regler so aus, dass der AlphaBot geradeaus fährt (
eOdo = 0). Dies ist die Vorbereitung für Aufgabe 1.2. - Schalten Sie die Reglerauswahl auf
Gyro. - Implementieren Sie im Block
Gyro-Reglereinen PI-Regler. - Legen Sie den Gyro-Regler so aus, dass der AlphaBot die Sollgierrate
GyroSollerreicht (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.
| Vorbereitungskontrollfragen zu Arduino R4 und Simulink |
|
| Vorbereitungskontrollfragen der Referenzmessung |
|
| Vorbereitungskontrollfragen zum Lichtschranken-Inkrementalgeber |
|
| Vorbereitungskontrollfragen zur IMU-MPR9250 |
|
| Vorbereitungskontrollfragen zur Odometrie |
|
💻 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
| # | 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
- Lesen Sie die Odometriesignale des AlphaBot mit MATLAB®/Simulink aus.
- Nutzen Sie hierfür
Monitor & Tunevia WLAN. - Visualisieren Sie die verfügbaren Messgrößen und prüfen Sie deren zeitlichen Verlauf.
- Fahren Sie 8 m geradeaus.
- Realisieren Sie die Zustände
Stillstand,FahrtundStoppmitStateflow. - Zeichnen Sie die Daten während einer Fahrt mit gerader Strecke auf .
- Dokumentieren Sie die Signalnamen, Einheiten, Abtastzeiten und die Bedeutung der einzelnen Messgrößen.
- Prüfen Sie, ob die Odometriesignale plausibel auf die ausgeführten Bewegungen reagieren.
Auswertung in MATLAB®
- Stellen Sie die Strecken der beiden Räder
SLundSRüber der Zeit dar. - Vergleichen Sie die zurückgelegten Strecken des linken und rechten Rades. Sind die Verläufe plausibel?
- Berechnen Sie die mittlere zurückgelegte Strecke des AlphaBot.
- 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
- Lesen Sie die Odometrie ein.
- Implementieren Sie einen einfachen P-Regler für eine Geradeausfahrt: .
- Fahren Sie geregelt 8 m geradeaus.
- Zeichnen Sie die Referenz mit der Topcon-Station auf.
Kurswinkel aus der Odometrie:
Regleransatz: →
Auswertung in MATLAB®
- Synchronisieren Sie Messung und Referenzdaten.
- Stellen Sie den Regelfehler und die Stellgröße des P-Reglers über der Zeit dar.
- Bestimmen Sie die erreichte Endstrecke und vergleichen Sie diese mit der Sollstrecke.
- Bewerten Sie, ob der Kurswinkel während der Fahrt um den Sollwert 0° gehalten werden konnte anhand der Referenz.
- Untersuchen Sie den Einfluss der Reglerverstärkung KP auf das Regelverhalten.
- 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
- Binden Sie die MPU9250 über die sekundäre I²C-Schnittstelle (Qwiic) in Simulink ein.
- Lesen Sie die Gyroskopmesswerte der Z-Achse aus.
- Realisieren Sie die Zustände
0: Kalibrierung1: Stillstand,2: Kreisfahrtund3: StoppmitStateflow. - Als Eingang erhält Stateflow den
ResetRequest. Der KnopfResetsetzt das Modell zurück auf Zustand 0. - Ausgänge der Zustandsmaschine sind
PWML,PWMR,KalibundZustand. - Setzen Sie im Zustand
0: KalibrierungKalibaufTRUE. Kalibgeht auf einEnable Subsystem. Dieses System mittelt im Stillstand 1000 GyromessungenGyroZund schreibt den rekursiven Mittelwert inGyroOffset.- Realisieren Sie das rekursive Mittelwertfilter im
Enable Subsystemmit dem NamenGyroKalibrierung. - Die Stillstandphase wird durch eine rote Lampe im Modell signalisiert. Während der Kalibrierung darf der Alphabot nicht bewegt werden.
- Drehen Sie den AlphaBot um die Z-Achse und zeichnen Sie die resultierenden Messsignale auf.
Auswertung in MATLAB®
- Stellen Sie die Gierrate (
GyroZ) über der Zeit dar. - Vergleichen Sie die Messsignale während des Stillstands und während einer Drehbewegung.
- 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
| Formel für einen rekursiven Mittelwert |
|
Der rekursive Mittelwert wird mit folgender Gleichung berechnet:
Dabei ist:
Initialisierung:
|
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.
- Bestimmen Sie die erforderliche Soll-Gierrate für eine vorgegebene Fahrgeschwindigkeit und einen vorgegebenen Kreisradius .
- Erfassen Sie die gemessene Gierrate der IMU MPU9250 und korrigieren Sie diese um den Gyroskopoffset.
- Implementieren Sie einen PI-Regler, der die Abweichung zwischen Soll- und Ist-Gierrate minimiert.
- Verwenden Sie die Reglerausgabe zur differentiellen Ansteuerung der beiden Antriebsmotoren. Die mittlere Fahrgeschwindigkeit soll dabei möglichst konstant bleiben.
- 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®
- Berechnen Sie aus dem Kurswinkel der Referenz die Referenzgierrate
GyroZRef. - Stellen Sie die Soll-Gierrate, die gemessene Gierrate
GyroZund die Gierrate aus der Referenz über der Zeit dar. - Berechnen Sie die Abweichung zwischen Soll- und Ist-Gierrate.
- Bestimmen Sie den gefahrenen Kreisradius aus der Referenzmessung.
- Stellen Sie die berechnete Trajektorie des AlphaBot, die Messung und die Referenz in einer X-Y-Darstellung dar.
- Vergleichen Sie den erreichten Kreisradius mit dem vorgegebenen Sollradius.
- Untersuchen Sie den Einfluss der PI-Reglerparameter auf das Einschwingverhalten und die Regelabweichung.
- 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
- Warum müssen die Inkremente des linken und rechten Rades getrennt erfasst werden?
- Wie wirkt sich eine unterschiedliche zurückgelegte Strecke der beiden Räder auf den Kurswinkel des AlphaBot aus?
- Warum kann der Roboter trotz einer geregelten Fahrt von einer geometrisch vorgegebenen Geraden abweichen?
- Welche Auswirkungen hat eine zu große Reglerverstärkung KP auf das Regelverhalten der Geradeausfahrt?
Gyroskop und Kreisfahrt
- Warum muss der Gyroskopoffset vor der Integration der Gierrate bestimmt werden?
- Wie wirkt sich ein verbleibender Offset von 0,1°/s nach einer Integrationszeit von 60 s auf den berechneten Winkel aus?
- Wie hängen Fahrgeschwindigkeit, Kreisradius und Soll-Gierrate zusammen?
- 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)


