Gruppenmitglieder: Lukas Baldner, Jonas Strittmatter, Julian Shen reamd
- Sensoren ausprobiert
- Idenn zur Roboterarchitektur gesammelt
- Erster Prototyp für den Roboter gebaut
- Vertrautmachen mit Sensor-Komponenten und Pybricks-API, Einrichten von VS-Code
- basic Skelett (Roboter-Klasse, erstes Testen des Line-Following-Algorithmus)
- Roboter umbauen, Ketten statt Räder
- Übungsblatt nacharbeiten
- Roboter fertig gebaut
- Programm für das Linien folgen / Rampe hochfahren konfiguieren
- Menü zur Auswahl der Routine für den Roboter
- Zustandsdiagramm für das Linienfolgen erstellt
- Vorlesung über Regelung angehört
- Menü ausprobiert
- Proportionen des "Auswahlrechtecks" angepasst
- Bug, dass durch zu langes Drücken der Auswahlknöpfe die Auswahl mehr als ein Feld nach oben oder unten geht behoben
- Durch Drücken des Enter-Knopfes im Menü führt der Roboter nun auch die ausgewählte Funktion aus
- Implementierung der Routine fürs Linienfolgen anhand des Zustandsdiagramms, welches durch das letzte Übungsblatt erarbeitet wurde
- Anpassung der Parameter für DriveBase, das Fehler beim Winkelmessen beobachtet wurde
- Konfigurieren weiterer Parameter wie Drehwinkel und Fahrzeit bis er das Linienfolgen erfolgreich schafft
- Roboter erkennt blaue Linien und wechselt automatisch in die nächste Routine, und hält nach der letzten Rotuine an
- Aufteilung des Programms in mehrere Dateien
- Ändern des vorher noch blockierenden Drehens in ein nicht-blockierendes Drehen
- Einführung von Flags, die Zustandswechsel während dem Fahren/Drehen ermöglichen
- Zustandsautomaten neu zeichnen, da Programmstruktur verändert wurde
- Wechsel zu State-Method-Entwurfsmuster, um den Zustandsautomaten im Code umzusetzen und leichtere Erweiterbarkeit zu erreichen
- Alle Zustände für den Wechsel zum State-Method-Entwurfsmuster ergänzt und implementiert
- Bugs in den Zuständen behoben
- Lichtsensor umgedreht, damit das Erkennen der blauen Linie funktioniert
- Zustände zum Umfahren des Hindernisses implemen tiert
- Code sauberer gemacht
- Roboter erkennt in der Lücken-Routine nach dem Zurückdrehen die weiße Linie
- Anpassen der Parameter, wie DRIVE_SPEED, TURN_RATE..., sodass das Linienfolgen deutlich flüssiger funktioniert
- Nutzen des Touchsensors bei dem Rückwärtsfahren beim Obstacle
- Code für Farbfeldsuche angefangen: Zustände für das Fahren erstellt
- Motor für Farbsensor umgebaut, um das Spiel des Arms zu reduzieren
- Farbsensorarm schwenkt jetzt
- Roboter erkennt rot und weiß
- Rückwärtsfahren zum Ausrichten
- Da Farbsensor eher links am Roboter, Routine beim Absuchen des Feldes angepasst
- Geschwindigkeit des Roboters im Feld reduziert, um mit dem Arm den Boden genau genug absuchen zu können
- Algorithmus zum Paket in die Ecke schieben überlegt (ohne zur Brücke fahren)
- Suchfeld fertig implementiert
- Roboter fährt bei Delivery zum Suchspot
- Suche nach richtiger Drehgeschwindigkeit und Implementierung zum Suchen der Ecke der Box
- Roboter schiebt das Paket fast in die Ecke
- Refactoring: bei Zuständen, die mit "!" beginnen wird nun automatisch der aktuelle Zustand des Roboters gespeichert. Das spart viel duplizierten Code :)
- Testen des Ultraschall-Sensors (Plotten der Sensordaten), um Realisierbarkeit unserer Strategie für das Paket-Level zu prüfen
- Umbau des Roboters; Ziel: Ultraschall-Sensor soll beweglich sein und Farb- und Ultraschall-Sensor sollen beide gleichzeitig nach vorne ausgerichtet sein
- Überlegungen aufgeschrieben für Brücke überqueren
- Strategie für Paket-Level geändert / neu implementiert
- Werte für Paket-Level angepasst
- bei Hindernis Distanzen angepasst
- behebe Probleme im Farbfeld-Level: gegenüberliegende Wand wird nun nicht mehr erkannt wenn der Motor zur Seite hin ausgerichtet ist
- Refactoring: extrahiere on_enter und Bedingungen der Zustände als Methoden der Robot-Klasse
- Verbesserte Logik beim Paket-Level
- Implementierung des Brücken-Levels
- Werte fürs Linienfahren ausprobieren
- Optimierung des Brückenlevels
- Werte beim Paket-Level angepasst
- Ein paar Zustände verständlicher benennen
- Zustände hinzufügen, um bei Farbfeld zu Beginn besser ausgerichtet zu sein
- Auf Messwerte zu reagieren stellt sich mit Zuständen als Dictionary-Einträgen als schwierig heraus
- Deshalb Problem bei Delivery: Da US-Sensor leicht schräg, erkennt Box früher je weiter weg sie seitlich ist
- PID-Regler zum Linienfolgen stellt sich als kompliziert heraus, vermutlich da Farbsensor sehr weit von Drehzentrum entfernt
- Zustandsautomaten verständlicher machen
- Boxsuche verbessern
WETTBEWERB!!!!