AlphaBot: Autonomes Einparken: Unterschied zwischen den Versionen
| Zeile 47: | Zeile 47: | ||
|} | |} | ||
== Tutorial == | == Tutorial == | ||
* [[Zustandsdiagramm| HSHL-Wiki: Zustandsdiagramm]] | |||
* [https://de.wikipedia.org/wiki/Endlicher_Automat Wikipedia: Zustandsdiagramm] | * [https://de.wikipedia.org/wiki/Endlicher_Automat Wikipedia: Zustandsdiagramm] | ||
* [https://de.mathworks.com/discovery/state-diagram.html Zustandsdiagramme mit MATLAB<sup>®</sup>] | * [https://de.mathworks.com/discovery/state-diagram.html Zustandsdiagramme mit MATLAB<sup>®</sup>] | ||
Version vom 2. Juli 2026, 15:57 Uhr

| Autor: | Prof. Dr.-Ing. Schneider |
| Modul: | Praxismodul II |
| Lehrveranstaltung: | Mechatronik, Informatik Praktikum 2, 2. Semester |
| Lektion: | 11 |
Inhalt
Lernziele
Nach Durchführung dieser Lektion können Sie
- mit yED eine Zustandsmaschine planen.
- eine Zustandsmaschine programmieren.
- funktional programmieren und Funktionen zu einem großen Projekt zusammenfügen.
- Quelltext debuggen und optimieren.
- Messdaten speichern und via MATLAB® auswerten und visualisieren.
- autonom einen AlphaBot einparken.
Vorbereitung/Hausaufgabe
In diesem Praktikumstermin soll Ihr AlphaBot autonom einparken. Erstellen Sie als Vorbereitung ein Zustandsdiagramm für die Funktion Parken() mit yEd. Falls in der Informatik Zustandsautomaten nicht behandelt worden, schauen Sie sich bitte als Vorbereitung die Tutorial an.
Planen Sie eine Zustandsmaschine, die zwischen den Zuständen
- Zustand 1: Parklücke suchen,
- Zustand 2: Rechtseinschlag (rückwärts),
- Zustand 3: Linkseinschlag (rückwärts) und
- Zustand 4: Geradeaus (Korrekturzug)
unterscheiden kann. Welche Transitionen führen zu den Zustandsübergängen?
Legen Sie das Programm als Funktionsrümpfe an.
Arbeitsergebnis: ZustandsdiagrammAutonomesParken.graphml
Arbeitsergebnisse: AutonomesParken.pap, AutonomesParken.ino
| Ansatz für die Lösung Hausaufgabe |
Tutorial
Versuchsdurchführung
In diesem Termin lassen wir den AlphaBot autonom einparken.
Aufgabe 11.1: Parken
Schreiben Sie das Programm AutonomesParken.ino. Folgende Funktionsanforderungen sollten erfüllt werden:
- Erstellen Sie eine Zustandsmaschine, die zwischen den folgenden 4 Zuständen unterscheiden kann.
- Zustand: Parklücke suchen,
- Zustand: Rechtseinschlag,
- Zustand: Linkseinschlag und
- Zustand: Geradeaus (Korrekturzug)
- Fahren Sie konstant ohne Unterbrechung zügig rückwärts.
- Verwenden Sie Ihr Programm
sucheParkluecke.inoim Zustand 1. - Programmieren Sie Zustand 2: Rechtseinschlag. Schlagen Sie voll rechts ein und fahren Sie rückwärts bis das Fahrzeug 40° zur Lücke steht.
- Programmieren Sie Zustand 3: Linkseinschlag. Schlagen Sie voll links ein, bis das Fahrzeug gerade (0 °) in der Lücke steht.
- Programmieren Sie Zustand 4: Geradeaus. Fahren Sie gerade vorwärts, bis Sie mittig in der Parklücke stehen.
- Schalten Sie alle Motoren aus.
Anforderungen:
- Realisieren Sie die Zustandsmaschine mit der Mehrfachverzweigung
switch..case. - Ermitteln Sie die Roboterpose aus den unterschiedlichen Radumdrehungen (Differenzielle Odometrie).
- Senden Sie den Lagewinkel der Roboterpose und Zustand via Bluetooth an MATLAB und visualisieren Sie diese Werte über der Zeit.
- Nutzen Sie den Ultraschallsensor, um mittig in der Parklücke zu stehen.
Arbeitsergebnisse: AutonomesParken.ino
Aufgabe 11.2: Nachhaltige Doku
- Sichern Sie alle Ergebnisse mit beschreibendem Text (
message) in SVN. - Halten Sie die Regeln für den Umgang mit SVN ein.
- Halten Sie die Programmierrichtlinie für C und die Programmierrichtlinien für MATLAB® ein.
- Versehen Sie jedes Programm mit einem Header (Header Beispiel für MATLAB, Header Beispiel für C).
- Kommentiere Sie den Quelltext umfangreich.
Arbeitsergebnis in SVN: SVN Log
Ausblick zur nächsten Lektion
In der nächsten Lektion findet die Abschlussprüfung statt.
→ Termine 1 2 3 4 5 6 7 8 9 10 11 12
→ zurück zum Hauptartikel: Informatik Praktikum 2
→ Haben Sie Fragen? Informatik Praktikum FAQ