AlphaBot: Gesteuerte Geradeausfahrt: Unterschied zwischen den Versionen
| (8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 11: | Zeile 11: | ||
|} | |} | ||
= Inhalt = | |||
Autonome Mobile Roboter müssen zur Erfüllung von Aufgaben im Raum navigieren. Der einfachste Weg ist über Odometrie. In dieser Lektion fahren wir feste Figuren im Raum ab. Sie haben den Auftrag bekommen ein Fahrerloses Transportfahrzeug (FTF) zu entwickeln. Nutzen Sie den AlphaBot um die Funktion Ihrer Programmierung nachzuweisen. | |||
== Lernziele== | == Lernziele== | ||
Nach Durchführung dieser Lektion können Sie | Nach Durchführung dieser Lektion können Sie | ||
* Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen. | * Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen. | ||
* Messwerte in einer Textdatei speichern. | * Messwerte in einer Textdatei speichern. | ||
* Messwerte mit MATLAB<sup>®</sup> analysieren. | * Messwerte mit MATLAB<sup>®</sup> analysieren. | ||
* Bei Objekten im Fahrschlauch eine Notbremsung durchführen. | |||
== Vorbereitung == | == Vorbereitung == | ||
| Zeile 24: | Zeile 24: | ||
* Optimieren Sie die Kopie bis alles lauffähig ist. | * Optimieren Sie die Kopie bis alles lauffähig ist. | ||
= Versuchsdurchführung = | |||
== Aufgabe 6.1: Geradeausfahrt von Feld A zu Feld B == | |||
# Das FTF muss exakt 1,5 m kontinuierlich vorwärts geradeaus von Feld A zu Feld B fahren (a=1,5 m, b=0 m, c=0 m, vgl. Abb. 1). | |||
# Das FTF muss langsam anfahren, so dass erst nach 20 cm die Maximalgeschwindigkeit erreicht wird und 20 cm vor dem Ziel verzögern. | |||
# Die Messwerte ''Zeitstempel in s'' und die gefahrene Strecke des linken und rechten Rades müssen in der ASCII-Datei <code>Geradeausfahrt.txt</code> gespeichert werden. | |||
Arbeitsergebnis: <code>FTF.ino</code> | |||
== Aufgabe 6.2: Analyse der Streckendaten == | |||
In MATLAB<sup>®</sup> muss aus der Strecke die Geschwindigkeit und Beschleunigung des AMR berechnet und als Plot (1x3) untereinander Strecke in m, Geschwindigkeit in <math>\frac{m}{s}</math> und Beschleunigung in <math>\frac{m}{s^2}</math> über der Zeit in s dargestellt werden. | |||
Was fällt Ihnen auf? | |||
Arbeitsergebnisse: <code>Geradeausfahrt.txt</code>, <code>zeigeMesswerte.m</code> | |||
== Aufgabe 6.3: Geregelte Geradeausfahrt == | |||
Nutzen Sie die Erkenntnisse aus Aufgabe 6.2, um geregelt geradeaus zu fahren. Vergleichen Sie hierzu die gefahrene Strecke beider Räder. Ist diese gleichgroß, fährt der AlphaBot eine Gerade. Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung. | |||
'''Arbeitsergebnis | == Aufgabe 6.4: Hinderniserkennung == | ||
Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis die Fahrbahn, kann die geplante Fahrt weitergehen. | |||
# Nutzen Sie <code>fahreZumStartpunkt.ino</code> aus Übungsaufgabe 6.1. | |||
# Stoppen Sie, falls weniger als 20 cm vor Ihnen ein Hindernise auftaucht/steht (Notbremse). | |||
# Fahren Sie weiter, sobald das Hindernis entfernt wurde. | |||
# Fehlbremsungen müssen durch geeignete Signalfilterung (z. B. Tiefpassfilter) vermieden werden. | |||
'''Arbeitsergebnis''': <code>Notbremsassistent.ino</code> | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong> | | <strong>Tipps </strong> | ||
|- | |- | ||
| | | Drehen Sie den Ultraschall auf 90 ° (in Fahrrichtung geradeaus). | ||
|- | |- | ||
| | | Wird ein Hindernis detektiert wird die Fahrt umgehend '''pausiert'''. Speichern Sie den Zustand. | ||
|- | |||
| Wird ein Hindernis entfernt wird die Fahrt wieder '''weitergeführt'''. Beispiel: Die Fahrstrecke beträgt 1 m geradeaus. Zum Zeitpunkt der Notbremsung wurden bereits 50 cm gefahren. Ist das Hindernis entfernt, fahren Sie 50 cm weiter. | |||
|} | |} | ||
'''Arbeitsergebnis''': <code>FTF_mit_Hinderniserkennung.ino</code> | |||
== Aufgabe 6.5: 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 85: | Zeile 70: | ||
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | '''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | ||
= Demos = | |||
* <code>E01_MotorenTest</code> | * <code>E01_MotorenTest</code> | ||
* <code>E15_RadInkrementalgeberFahrt</code> | * <code>E15_RadInkrementalgeberFahrt</code> | ||
* <code>E33_Unterfunktion</code> | * <code>E33_Unterfunktion</code> | ||
---- | ---- | ||
→ 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]] | ||
Aktuelle Version vom 15. Mai 2025, 12:18 Uhr

| Autor: | Prof. Dr.-Ing. Schneider |
| Modul: | Praxismodul II |
| Lehrveranstaltung: | Mechatronik, Informatik Praktikum 2, 2. Semester |
Inhalt
Autonome Mobile Roboter müssen zur Erfüllung von Aufgaben im Raum navigieren. Der einfachste Weg ist über Odometrie. In dieser Lektion fahren wir feste Figuren im Raum ab. Sie haben den Auftrag bekommen ein Fahrerloses Transportfahrzeug (FTF) zu entwickeln. Nutzen Sie den AlphaBot um die Funktion Ihrer Programmierung nachzuweisen.
Lernziele
Nach Durchführung dieser Lektion können Sie
- Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen.
- Messwerte in einer Textdatei speichern.
- Messwerte mit MATLAB® analysieren.
- Bei Objekten im Fahrschlauch eine Notbremsung durchführen.
Vorbereitung
- Schauen Sie Ihre Ergebnisse der Programier-Challenge I an, kopieren Sie diese in den Ordner
Termin_06. - Optimieren Sie die Kopie bis alles lauffähig ist.
Versuchsdurchführung
Aufgabe 6.1: Geradeausfahrt von Feld A zu Feld B
- Das FTF muss exakt 1,5 m kontinuierlich vorwärts geradeaus von Feld A zu Feld B fahren (a=1,5 m, b=0 m, c=0 m, vgl. Abb. 1).
- Das FTF muss langsam anfahren, so dass erst nach 20 cm die Maximalgeschwindigkeit erreicht wird und 20 cm vor dem Ziel verzögern.
- Die Messwerte Zeitstempel in s und die gefahrene Strecke des linken und rechten Rades müssen in der ASCII-Datei
Geradeausfahrt.txtgespeichert werden.
Arbeitsergebnis: FTF.ino
Aufgabe 6.2: Analyse der Streckendaten
In MATLAB® muss aus der Strecke die Geschwindigkeit und Beschleunigung des AMR berechnet und als Plot (1x3) untereinander Strecke in m, Geschwindigkeit in und Beschleunigung in über der Zeit in s dargestellt werden.
Was fällt Ihnen auf?
Arbeitsergebnisse: Geradeausfahrt.txt, zeigeMesswerte.m
Aufgabe 6.3: Geregelte Geradeausfahrt
Nutzen Sie die Erkenntnisse aus Aufgabe 6.2, um geregelt geradeaus zu fahren. Vergleichen Sie hierzu die gefahrene Strecke beider Räder. Ist diese gleichgroß, fährt der AlphaBot eine Gerade. Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
Aufgabe 6.4: Hinderniserkennung
Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis die Fahrbahn, kann die geplante Fahrt weitergehen.
- Nutzen Sie
fahreZumStartpunkt.inoaus Übungsaufgabe 6.1. - Stoppen Sie, falls weniger als 20 cm vor Ihnen ein Hindernise auftaucht/steht (Notbremse).
- Fahren Sie weiter, sobald das Hindernis entfernt wurde.
- Fehlbremsungen müssen durch geeignete Signalfilterung (z. B. Tiefpassfilter) vermieden werden.
Arbeitsergebnis: Notbremsassistent.ino
| Tipps |
| Drehen Sie den Ultraschall auf 90 ° (in Fahrrichtung geradeaus). |
| Wird ein Hindernis detektiert wird die Fahrt umgehend pausiert. Speichern Sie den Zustand. |
| Wird ein Hindernis entfernt wird die Fahrt wieder weitergeführt. Beispiel: Die Fahrstrecke beträgt 1 m geradeaus. Zum Zeitpunkt der Notbremsung wurden bereits 50 cm gefahren. Ist das Hindernis entfernt, fahren Sie 50 cm weiter. |
Arbeitsergebnis: FTF_mit_Hinderniserkennung.ino
Aufgabe 6.5: 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
Demos
E01_MotorenTestE15_RadInkrementalgeberFahrtE33_Unterfunktion
→ Termine 1 2 3 4 5 6 7 8 9 10
→ zurück zum Hauptartikel: Informatik Praktikum 2