AlphaBot: Parklücke suchen: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:
|}
|}


== Inhalt ==
= Inhalt =
*  
*  
== Lernziele==
== Lernziele==
Zeile 29: Zeile 29:


In diesem Termin wird Phase 1 systematisch geplant, umgesetzt und getestet.
In diesem Termin wird Phase 1 systematisch geplant, umgesetzt und getestet.
# Fahren Sie auf der schwarzen Linie geregelt geradeaus. Nutzen Sie Ihre Quellcode <code>PDRegler.ino</code> aus Lektion 8.
# Fahren Sie auf der schwarzen Linie geregelt geradeaus. Nutzen Sie Ihre Quellcode <code>PDRegler.ino</code> aus Lektion 7.
# Vermessen Sie während der Fahrt die Parklücke mit Ultraschall und bestimmen Sie die Länge mit dem Inkrementalgeber. Nutzen Sie Ihren Quelltext aus den vorherigen Lektionen.
# Vermessen Sie während der Fahrt die Parklücke mit Ultraschall und bestimmen Sie die Länge mit dem Inkrementalgeber. Nutzen Sie Ihren Quelltext aus den vorherigen Lektionen.
# Wenn die Lücke dem 1,5-fachen der Fahrzeuglänge entspricht, halten Sie an, um optimal einparken zu können.
# Wenn die Lücke dem 1,5-fachen der Fahrzeuglänge entspricht, halten Sie an, um optimal einparken zu können.
Zeile 41: Zeile 41:
'''Tipp''': Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verweigungen, Schleifen, Kommentaren..) an.
'''Tipp''': Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verweigungen, Schleifen, Kommentaren..) an.


== Versuchsdurchführung ==
= Versuchsdurchführung =
=== Aufgabe 9.1: Parklücke suchen ===
== Aufgabe 8.1: Parklücke suchen ==
Füllen Sie den Unterfunktion <code>FindeParkluecke()</code> gemäß Ihres Konzepts mit Inhalt.
Füllen Sie den Unterfunktion <code>FindeParkluecke()</code> gemäß Ihres Konzepts mit Inhalt.
# Stellen Sie mit Kartons eine Parklückensituation dar.
# Stellen Sie mit Kartons eine Parklückensituation dar.
Zeile 52: Zeile 52:
'''Arbeitsergebnisse:''' <code>sucheParkluecke.ino</code>
'''Arbeitsergebnisse:''' <code>sucheParkluecke.ino</code>


=== Aufgabe 9.2 Speicherung und Visualisierung ===
== Aufgabe 8.2 Speicherung und Visualisierung ==
Speichern Sie während der Fahrt Daten im [[Arduino:_Daten_im_EEPROM_speichern|EEPROM]]. Visualisieren Sie in MATLAB<sup>®</sup> die Werte
Speichern Sie während der Fahrt Daten im [[Arduino:_Daten_im_EEPROM_speichern|EEPROM]]. Visualisieren Sie in MATLAB<sup>®</sup> die Werte
* Längsabweichung (Fahrstrecke, x-t-Diagramm)
* Längsabweichung (Fahrstrecke, x-t-Diagramm)
Zeile 63: Zeile 63:
'''Hinweis:''' Achten Sie auf die maximalen Schreib- und Lesezyklen für ein EEPROM.
'''Hinweis:''' Achten Sie auf die maximalen Schreib- und Lesezyklen für ein EEPROM.


=== Aufgabe 9.3: Nachhaltige Doku ===
== Aufgabe 8.3: Nachhaltige Doku ==
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein.
* Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein.
Zeile 70: Zeile 70:
* Kommentiere Sie den Quelltext umfangreich.
* Kommentiere Sie den Quelltext umfangreich.


== Tutorials ==
= Tutorials =
* [[Arduino:_Daten_im_EEPROM_speichern|Daten im EEPROM speichern]]
* [[Arduino:_Daten_im_EEPROM_speichern|Daten im EEPROM speichern]]


== Demos ==
= Demos =
*<code>E28_IR_Line_Tracking_Sensor_Messung</code>
*<code>E28b_IR_Line_Tracking_Sensor</code>
*<code>E08_Infrared_Line_Tracking</code>
*<code>E08b_Infrared_Line_Tracking_PD</code>


== Literatur ==
= Literatur =


----
----
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2025|1]] [[AlphaBot:_Hardware_Support_Package_für_MATLAB|2]] [[AlphaBot: Servo_mit_MATLAB_ansteuern|3]] [[AlphaBot:_Motoren_und_Inkrementalgeber|4]] [[AlphaBot: Programmier-Challenge I SoSe25|5]] [[AlphaBot:_Gesteuerte_Geradeausfahrt|6]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|7]] [[AlphaBot: Parklücke suchen|8]] [[AlphaBot: Autonomes Einparken|9]] [[AlphaBot: Programmier-Challenge II SoSe25|10]]<br>
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2025|1]] [[AlphaBot:_Hardware_Support_Package_für_MATLAB|2]] [[AlphaBot: Servo_mit_MATLAB_ansteuern|3]] [[AlphaBot:_Motoren_und_Inkrementalgeber|4]] [[AlphaBot: Programmier-Challenge I SoSe25|5]] [[AlphaBot:_Gesteuerte_Geradeausfahrt|6]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|7]] [[AlphaBot: Parklücke suchen|8]] [[AlphaBot: Autonomes Einparken|9]] [[AlphaBot: Programmier-Challenge II SoSe25|10]]<br>
→ zurück zum Hauptartikel: [[AlphaBot_SoSe25|Informatik Praktikum 2]]
→ zurück zum Hauptartikel: [[AlphaBot_SoSe25|Informatik Praktikum 2]]

Version vom 5. Juni 2025, 07:57 Uhr

Abb. 1: Schritte eines Einparkvorgangs
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul II
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester

Inhalt

Lernziele

Nach Durchführung dieser Lektion können Sie

  • einen Einparkalgorithmus planen
  • Parklücken während der Fahrt vermessen.
  • eine geeignete Parklücke suchen und auswählen.
  • Messdaten speichern und via MATLAB® auswerten und visualisieren.
  • mittels subplot Messdaten vergleichen, ein x-y-Diagramme erstellen und analysieren.

Vorbereitung/Hausaufgabe

In diesem Praktikum soll Ihr AlphaBot autonom einparken. Als Algorithmus dient der in der Fahrschule vermittelte Ablauf (siehe Abb. 1). Planen Sie hierzu den Algorithmus als PAP und legen Sie die Programmrümpfe als switch..case im Programm an. Gehen Sie in den nachfolgenden Phasen vor:

  1. Phase: Passende Parklücke suchen
  2. Phase: Einparken.

In diesem Termin wird Phase 1 systematisch geplant, umgesetzt und getestet.

  1. Fahren Sie auf der schwarzen Linie geregelt geradeaus. Nutzen Sie Ihre Quellcode PDRegler.ino aus Lektion 7.
  2. Vermessen Sie während der Fahrt die Parklücke mit Ultraschall und bestimmen Sie die Länge mit dem Inkrementalgeber. Nutzen Sie Ihren Quelltext aus den vorherigen Lektionen.
  3. Wenn die Lücke dem 1,5-fachen der Fahrzeuglänge entspricht, halten Sie an, um optimal einparken zu können.

Hausaufgabe:

  1. Planen Sie das Programm mit der Unterfunktion findeParklücke() als PAP.
  2. Setzen Sie das PAP 1:1 als Rahmenprogramm sucheParkluecke.ino(nur Struktur/Rahmenprogramm) um.

Arbeitsergebnisse: sucheParkluecke.pap, sucheParkluecke.ino

Tipp: Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verweigungen, Schleifen, Kommentaren..) an.

Versuchsdurchführung

Aufgabe 8.1: Parklücke suchen

Füllen Sie den Unterfunktion FindeParkluecke() gemäß Ihres Konzepts mit Inhalt.

  1. Stellen Sie mit Kartons eine Parklückensituation dar.
  2. Fahren Sie mit dem Linienverfolger geregelt an den Lücken vorbei.
  3. Vermessen Sie während der Fahrt diese Lücken.
  4. Das Fahrzeug soll sanft anfahren (lineare Rampe bis vmax).
  5. Stoppen Sie Ihr Fahrzeug, wenn Sie eine passende Lücke gefunden haben.

Arbeitsergebnisse: sucheParkluecke.ino

Aufgabe 8.2 Speicherung und Visualisierung

Speichern Sie während der Fahrt Daten im EEPROM. Visualisieren Sie in MATLAB® die Werte

  • Längsabweichung (Fahrstrecke, x-t-Diagramm)
  • Querabweichung (Ultraschallmesswerte, y-t-Diagramm)
  • Längs- und Querabweichung (x-y-Diagramm)

über der Fahrzeit.

Arbeitsergebnis: zeigeMesswerte.m

Hinweis: Achten Sie auf die maximalen Schreib- und Lesezyklen für ein EEPROM.

Aufgabe 8.3: Nachhaltige Doku

Tutorials

Demos

  • E28_IR_Line_Tracking_Sensor_Messung
  • E28b_IR_Line_Tracking_Sensor
  • E08_Infrared_Line_Tracking
  • E08b_Infrared_Line_Tracking_PD

Literatur


→ Termine 1 2 3 4 5 6 7 8 9 10
→ zurück zum Hauptartikel: Informatik Praktikum 2