AlphaBot: Parklücke suchen: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Arduino Kategorie:AlphaBot thumb|rigth|450px|Abb. 1: Dieser Artikel ist in Bearbeitung '''Autor:''' Prof. Dr.-Ing. Schneider<br> '''Modul:''' Praxismodul I<br> '''Lehrveranstaltung:''' Mechatronik, Informatik Praktikum 2, 2. Semester<br> == Inhalt == * == Lernziele== Nach Durchführung dieser Lektion können Sie * == Versuchsdurchführung == === Aufgabe 5.1: Lichtschran…“)
 
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Arduino]]
[[Kategorie:Arduino]]
[[Kategorie:AlphaBot]]
[[Kategorie:AlphaBot]]
[[Datei:Work-98936 960 720.png|thumb|rigth|450px|Abb. 1:  Dieser Artikel ist in Bearbeitung]]
[[ Datei:EPA Algo.jpg|thumb|rigth|450px|Abb. 1:  Schritte eines Einparkvorgangs]]
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br>
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br>
'''Modul:''' Praxismodul I<br>
'''Modul:''' Praxismodul I<br>
Zeile 10: Zeile 10:
== Lernziele==
== Lernziele==
Nach Durchführung dieser Lektion können Sie
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<sup>®</sup> auswerten und visualisieren.
* mittels <code>subplot</code> 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 <code>switch..case</code> im Programm an. Gehen Sie in den nachfolgenden
Phasen vor:
# Phase: Passende Parklücke suchen
# Phase: Einparken.
 
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.
# 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.
 
'''Hausaufgabe:'''
# Planen Sie das Programm mit der Unterfunktion <code>findeParklücke()</code> als PAP.
# Setzen Sie das PAP 1:1 als Rahmenprogramm <code>sucheParkluecke.ino</code>(nur Struktur/Rahmenprogramm)  um.
 
'''Arbeitsergebnisse:'''  <code>sucheParkluecke.pap, sucheParkluecke.ino</code>
 
'''Tipp''': Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verweigungen, Schleifen, Kommentaren..) an.


== Versuchsdurchführung ==
== Versuchsdurchführung ==
=== Aufgabe 5.1: Lichtschranke ===
=== Aufgabe 9.1: Parklücke suchen ===
Füllen Sie den Unterfunktion <code>FindeParkluecke()</code> gemäß Ihres Konzepts mit Inhalt.
# Stellen Sie mit Kartons eine Parklückensituation dar.
# Fahren Sie mit dem Linienverfolger geregelt an den Lücken vorbei.
# Vermessen Sie während der Fahrt diese Lücken.
# Das Fahrzeug soll sanft anfahren (lineare Rampe bis vmax).
# Stoppen Sie Ihr Fahrzeug, wenn Sie eine passende Lücke gefunden haben.
 
'''Arbeitsergebnisse:''' <code>sucheParkluecke.ino</code>
 
=== Aufgabe 9.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
* Längsabweichung (Fahrstrecke, x-t-Diagramm)
* Querabweichung (Ultraschallmesswerte, y-t-Diagramm)
* Längs- und Querabweichung (x-y-Diagramm)
über der Fahrzeit.
 
'''Arbeitsergebnis:''' <code>zeigeMesswerte.m</code>
 
'''Hinweis:''' Achten Sie auf die maximalen Schreib- und Lesezyklen für ein EEPROM.
 
=== Aufgabe 9.3: Nachhaltige Doku ===
* 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 [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie für C]] und die [[Medium:Programmierrichtlinien_für_Matlab.pdf|Programmierrichtlinien für MATLAB<sup>®</sup>]] ein.
* Versehen Sie jedes Programm mit einem Header ([[Header Beispiel für MATLAB]], [[Header Beispiel für C]]).
* Kommentiere Sie den Quelltext umfangreich.


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


== Demos ==
== Demos ==
Zeile 22: Zeile 73:


----
----
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2023|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_MATLAB_als_serieller_Monitor|3]] [[AlphaBot: Servo ansteuern|4]] [[AlphaBot: AlphaBot:_Motoren_und_Inkrementalgeber|5]]<br>
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2023|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_MATLAB_als_serieller_Monitor|3]] [[AlphaBot: Servo ansteuern|4]] [[AlphaBot: AlphaBot:_Motoren_und_Inkrementalgeber|5]] [[AlphaBot: Programmier-Challenge I SoSe23|6]] [[AlphaBot:_Gesteuerte_Fahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Parklücke suchen|9]] [[AlphaBot: Autonomes Einparken|10]] [[AlphaBot: Programmier-Challenge II SoSe23|11]]<br>
→ zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]]
→ zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]]

Aktuelle Version vom 5. Juni 2023, 09:20 Uhr

Abb. 1: Schritte eines Einparkvorgangs

Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
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 8.
  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 9.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 9.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 9.3: Nachhaltige Doku

Tutorials

Demos

Literatur


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