AlphaBot: Vorbereitung zur Programmier-Challenge I SoSe26: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „Kategorie:Arduino thumb|right|500px|Abb. 1: Kursbestimmung aus differentieller Odometrie {|class="wikitable" |- | '''Autor:''' || Prof. Dr.-Ing. Schneider |- | '''Modul:''' || Praxismodul II |- | '''Datum:''' || 08.05.2025 |- | '''Bearbeitungsdauer:''' || 60 Minuten |} = Inhalt = Die Programmier-Challenge I dient als Lernzielkontrolle und semesterbegleitende Zwischenprüfung. Im Te…“
 
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
|-
|-
| '''Modul:''' || Praxismodul II
| '''Modul:''' || Praxismodul II
|-
| '''Datum:'''  || 08.05.2025
|-
|-
| '''Bearbeitungsdauer:'''  || 60 Minuten
| '''Bearbeitungsdauer:'''  || 60 Minuten
Zeile 13: Zeile 11:


= Inhalt =
= Inhalt =
Die Programmier-Challenge I dient als Lernzielkontrolle und semesterbegleitende Zwischenprüfung. Im Termin erhalten Sie eine Herausforderung, die Sie in einem festen Zeitrahmen als Team oder Einzelperson lösen. Das Ergebnis dieser Challenge wird in SVN gesichert und anschließend bewertet. Inhaltlich ist die Aufgabe eine Mischung der vorangegangenen Lektionen 1-4. Sie haben Zugriff auf Ihre Quellen in SVN sowie die Demos.
Diese Programmier-Challenge dient als Lernzielkontrolle und semesterbegleitende Abschlussprüfung. Im Termin erhalten Sie eine Herausforderung, die Sie in einem festen Zeitrahmen als Team oder Einzelperson lösen. Das Ergebnis dieser Challenge wird in SVN gesichert und anschließend bewertet. Inhaltlich ist die Aufgabe eine Mischung der vorangegangenen Lektionen 1-5. Sie haben Zugriff auf Ihre Quellen in SVN sowie die Demos.


Dies sind freiwillige Übungsaufgaben.
Dies sind freiwillige Übungsaufgaben.


= Vorbereitung =
= Vorbereitung =
* Die Programmier-Challenge verbindet die Lektionen 1-4.  
* Die Programmier-Challenge verbindet die Lektionen 1-5.  
* Üben Sie das Planen der Software mit dem PAP-Designer. Bereiten Sie sich ein Template für die Arduino Programmierung vor.
* Üben Sie das Planen der Software mit dem PAP-Designer. Bereiten Sie sich ein Template für die Arduino Programmierung vor.
* Nutzen Sie die Funktionen aus den vorherigen Lektionen. Schreiben Sie nicht alles neu. Wenden Sie das Gelernte an.
* Nutzen Sie die Funktionen aus den vorherigen Lektionen. Schreiben Sie nicht alles neu. Wenden Sie das Gelernte an.


= Übungsaufgabe 1: Objekterkennung  =
# Im Umfeld des Roboters befindet sich ein Kopierkarton der Größe 22,5&thinsp;cm x 31&thinsp;cm (B x T). Erweitern Sie Ihr Programm <code>UltraschallScanner.m</code> aus Aufgabe 3.1.
# Scannen Sie mit dem Ultraschallsensor auf dem Servo den Raum in 1° Schritten ab.
# Bestimmen Sie die Breite des Objektes im Erfassungsbereich.
# Bestimmen Sie die kürzeste Entfernung des Objektes im Erfassungsbereich.
# Zeichnen Sie die Messwerte als rote Punkte in einen Plot.
# Zeichnen Sie die erkannte Objektbreite als blaue Linie in den Plot (linke Kante - rechte Kante).
# Zeichnen Sie die kürzeste Entfernung zum Objekt in den Plot.


 
= Übungsaufgabe 2: Roboterpose  =
= Übungsaufgabe 1: Roboterpose  =
# Fahren Sie einen Kreis mit 1&thinsp;m Radius.
# Fahren Sie einen Kreis mit 1&thinsp;m Radius.
# Bestimmen Sie die Roboterpose (<math>x, y, \Psi</math> ) anhand der Odometrie und sichern Sie diese mit Putty in der Textdatei <code>Roboterpose.txt</code>.
# Bestimmen Sie die Roboterpose (<math>x, y, \Psi</math> ) anhand der Odometrie und sichern Sie diese mit Putty in der Textdatei <code>Roboterpose.txt</code>.
Zeile 43: Zeile 48:
|}
|}


= Übungsaufgabe 2: Roboternavigation =
= Übungsaufgabe 3: Roboternavigation =
Führen Sie die nachfolgenden Roboterbewegungen möglichst exakt aus.
Führen Sie die nachfolgenden Roboterbewegungen möglichst exakt aus.
# Fahren Sie 1&thinsp;m geradeaus.
# Fahren Sie 1&thinsp;m geradeaus.
Zeile 65: Zeile 70:
|}
|}


= Übungsaufgabe 3: Hinderniserkennung =
= Übungsaufgabe 4: Hinderniserkennung =
Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis (z.&thinsp;B. ein Reh) die Fahrbahn, kann die geplante Fahrt weitergehen.
Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis (z.&thinsp;B. ein Reh) die Fahrbahn, kann die geplante Fahrt weitergehen.
# Nutzen Sie <code>fahreZumStartpunkt.ino</code> aus Übungsaufgabe 2.
# Nutzen Sie <code>fahreZumStartpunkt.ino</code> aus Übungsaufgabe 2.
Zeile 96: Zeile 101:
* Ist es ein [[Software_Plagiat|Plagiat]], wenn ich Quelltext anderer kopiere und als meine Leistung in einer Prüfung abgebe? '''Ja.'''
* Ist es ein [[Software_Plagiat|Plagiat]], wenn ich Quelltext anderer kopiere und als meine Leistung in einer Prüfung abgebe? '''Ja.'''
* Darf ich für die Lösung eine KI verwenden? '''Nein. Die Prüfungsleistung ist eine Eigenleistung und die Verwendung einer KI wie z.&thinsp;B. <code>chatGPT</code> gilt als Plagiat.
* Darf ich für die Lösung eine KI verwenden? '''Nein. Die Prüfungsleistung ist eine Eigenleistung und die Verwendung einer KI wie z.&thinsp;B. <code>chatGPT</code> gilt als Plagiat.


----
----
→ 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_Fahrt|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_2026|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_Hardware_Support_Package_für_MATLAB|3]] [[AlphaBot: Servo_mit_MATLAB_ansteuern|4]] [[AlphaBot:_Motoren_und_Inkrementalgeber|5]] [[AlphaBot: Programmier-Challenge I SoSe26|6]] [[AlphaBot:_Gesteuerte_Geradeausfahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Parklücke suchen|10]] [[AlphaBot: Autonomes Einparken|11]] [[AlphaBot: Programmier-Challenge II SoSe26|12]]<br>
→ zurück zum Hauptartikel: [[AlphaBot_SoSe25|Informatik Praktikum 2]]
→ zurück zum Hauptartikel: [[AlphaBot_SoSe26|Informatik Praktikum 2]]<br>
→ Haben Sie Fragen? [[Informatik Praktikum FAQ]]

Aktuelle Version vom 7. Mai 2026, 13:52 Uhr

Abb. 1: Kursbestimmung aus differentieller Odometrie
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul II
Bearbeitungsdauer: 60 Minuten

Inhalt

Diese Programmier-Challenge dient als Lernzielkontrolle und semesterbegleitende Abschlussprüfung. Im Termin erhalten Sie eine Herausforderung, die Sie in einem festen Zeitrahmen als Team oder Einzelperson lösen. Das Ergebnis dieser Challenge wird in SVN gesichert und anschließend bewertet. Inhaltlich ist die Aufgabe eine Mischung der vorangegangenen Lektionen 1-5. Sie haben Zugriff auf Ihre Quellen in SVN sowie die Demos.

Dies sind freiwillige Übungsaufgaben.

Vorbereitung

  • Die Programmier-Challenge verbindet die Lektionen 1-5.
  • Üben Sie das Planen der Software mit dem PAP-Designer. Bereiten Sie sich ein Template für die Arduino Programmierung vor.
  • Nutzen Sie die Funktionen aus den vorherigen Lektionen. Schreiben Sie nicht alles neu. Wenden Sie das Gelernte an.

Übungsaufgabe 1: Objekterkennung

  1. Im Umfeld des Roboters befindet sich ein Kopierkarton der Größe 22,5 cm x 31 cm (B x T). Erweitern Sie Ihr Programm UltraschallScanner.m aus Aufgabe 3.1.
  2. Scannen Sie mit dem Ultraschallsensor auf dem Servo den Raum in 1° Schritten ab.
  3. Bestimmen Sie die Breite des Objektes im Erfassungsbereich.
  4. Bestimmen Sie die kürzeste Entfernung des Objektes im Erfassungsbereich.
  5. Zeichnen Sie die Messwerte als rote Punkte in einen Plot.
  6. Zeichnen Sie die erkannte Objektbreite als blaue Linie in den Plot (linke Kante - rechte Kante).
  7. Zeichnen Sie die kürzeste Entfernung zum Objekt in den Plot.

Übungsaufgabe 2: Roboterpose

  1. Fahren Sie einen Kreis mit 1 m Radius.
  2. Bestimmen Sie die Roboterpose (x,y,Ψ ) anhand der Odometrie und sichern Sie diese mit Putty in der Textdatei Roboterpose.txt.
  3. Zeichnen Sie die Roboterpose in MATLAB®.

Arbeitsergebnis: Kreisfahrt.ino, Roboterpose.txt, zeichneRoboterpose.m

Übungsaufgabe 3: Roboternavigation

Führen Sie die nachfolgenden Roboterbewegungen möglichst exakt aus.

  1. Fahren Sie 1 m geradeaus.
  2. Fahren Sie einen Kreis mit 1 m Durchmesser.
  3. Fahren Sie 1 m rückwärts.

Stehen Sie auf Ihrer Ausgangsposition?

Arbeitsergebnis: fahreZumStartpunkt.ino

Übungsaufgabe 4: Hinderniserkennung

Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis (z. B. ein Reh) die Fahrbahn, kann die geplante Fahrt weitergehen.

  1. Nutzen Sie fahreZumStartpunkt.ino aus Übungsaufgabe 2.
  2. Stoppen Sie, falls weniger als 20 cm vor Ihnen ein Hindernise auftaucht/steht (Notbremse).
  3. Fahren Sie weiter, sobald das Hindernis entfernt wurde.

Arbeitsergebnis: Notbremsassistent.ino

Tutorial

Literatur

[1] Internetforum. RuleTheBots: Lokalisierung und Odometrie eines Roboters mit differentiellem Antrieb [online]. [Zugriff am: 20. April 2025]. Verfügbar unter: https://spacehal.github.io/docs/robotik/odometrie
[2] Internetforum. Projektlabor Robotik MINTgrün: Navigation mit Differenzialantrieb [online]. [Zugriff am: 20. April 2025]. Verfügbar unter: https://www.mintgruen.tu-berlin.de/robotikWiki/doku.php?id=techniken:odometrie [3] G.W. Lucas: A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators [online]. [Zugriff am: 20. April 2025]. Verfügbar unter: https://rossum.sourceforge.net/papers/DiffSteer/DiffSteer.html

FAQ

  • Ist Anwesenheitspflicht? Ja.
  • Muss ich den Baukasten mitbringen? Nein. Die AlphaBots stehen Ihnen im Labor zur Verfügung.
  • Ist es ein Plagiat, wenn ich Quelltext anderer kopiere und als meine Leistung in einer Prüfung abgebe? Ja.
  • Darf ich für die Lösung eine KI verwenden? Nein. Die Prüfungsleistung ist eine Eigenleistung und die Verwendung einer KI wie z. B. chatGPT gilt als Plagiat.

→ Termine 1 2 3 4 5 6 7 8 10 11 12
→ zurück zum Hauptartikel: Informatik Praktikum 2
→ Haben Sie Fragen? Informatik Praktikum FAQ