70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# ROB
|
|
|
|
Für RoboCup 2025
|
|
|
|
// ---- Ereignisse zuerst prüfen ----
|
|
```
|
|
wenn links == grün UND rechts == grün:
|
|
// Sackgasse → 180°
|
|
drehe 180°
|
|
|
|
wenn links == grün ODER rechts == grün:
|
|
// Kreuzung → 90° Turn
|
|
wenn links == grün:
|
|
drehe 90° nach links
|
|
sonst:
|
|
drehe 90° nach rechts
|
|
|
|
// ---- Fahrbahn: Linie folgen ----
|
|
|
|
wenn links == schwarz UND rechts == weiß:
|
|
// Linie ist links → nach links korrigieren
|
|
drehe nach links
|
|
|
|
wenn rechts == schwarz UND links == weiß:
|
|
// Linie ist rechts → nach rechts korrigieren
|
|
drehe nach rechts
|
|
|
|
// ---- Geradeaus ----
|
|
wir haben im Moment wenn beide weiß und die Sensoren weiter auseinander vlt funktioniert das so smoother?
|
|
wenn links == schwarz UND rechts == schwarz:
|
|
beide Motoren gleich schnell
|
|
|
|
// ---- Weiß auf beiden Seiten = Linie verloren ----
|
|
wenn links == weiß UND rechts == weiß:
|
|
langsam drehen bis schwarz gefunden
|
|
|
|
// ---- Terrain ----
|
|
// 5 weil ich nicht mehr den Wert wusste
|
|
wenn winkel > +5:
|
|
Motorleistung += 20%
|
|
|
|
// Bergab
|
|
wenn winkel < -5:
|
|
Motorleistung -= 20%
|
|
```
|
|
|
|
### Wippe Notizen
|
|
Logik implementiert in Rampen Logik. Bleibe stehen, wenn der Rollwinkel sich um mehr als 10 (?) ändert.
|
|
RS-Flipflop-Logik:
|
|
Set (= tue nichts), wenn der Winkel sich ändert;
|
|
Reset (= bleibe stehen), solange sich der Rollwinkel ändert, danach fahre normal weiter
|
|
|
|
def flipflop(state, r, s):
|
|
return False if r else (True if s else state)
|
|
|
|
### Obstacle Notizen
|
|
- Sensor ~12cm über dem Boden einbauen; insg. 3 Abstandssensoren benötigt (oder 2 mit aufwändigerer Logik und drehendem Sensor)
|
|
1. Wenn vorderer Sensor bestimmten Abstand feststellt, stoppen, zurückfahren bis ein Abstand d feststeht
|
|
2. Drehen, bis ein Seitensensor Abstand d oder kleiner feststellt. Kleinsten Abstand bestimmen:
|
|
1. Bei Drehung niedrigsten Wert des Sensors merken
|
|
2. Wenn Abstand größer wird, zurückdrehen, bis kleinster Wert wieder erreicht ist
|
|
3. Losfahren und in entsprechende Richtung drehen, wenn Abstand kleiner/größer wird
|
|
4. Abbrechen, wenn Farbsensoren Schwarz erkennen
|
|
|
|
### Bumper Notizen
|
|
Änderungen von Gier- und Neigungswinkeln, sowie das Verhalten des Roboters zu beobachten
|
|
Vermutlich Protokoll einbauen, was passiert, wenn für eine bestimmte Zeit die Linie nicht mehr zu finden ist.
|
|
|
|
### Ziellinie Notizen
|
|
Wenn beide Sensoren Farbe rot feststellen, stoppe die Motoren, beende das Programm |