Also DB im ASURO ist viel zu viel Aufwand. Meines Erachtens nach ist eine simplere Vorgehensweise besser.
Mein Vorschlag: ( rein schematisch )
Code:
// INP: R, E
// OUT: --
// Fährt E Bogensegmente mit Radius R
funktion Fahre auf Radius(int R, int E){
.
.
.
}
funktion fahre kreis(int R){
[wenn Hindernis
drehe +90°
fahre 10
drehe -90°
fahre kreis( R + 10 ) // rekursion
drehe -90°
(abweisende schleife) [wenn Hindernis
drehe +90°
fahre kreis( R ) // rekursion
drehe -90°
]
fahre 10
drehe +90°
] sonst [
// Fahre auf dem Radius R, 1 Einheiten
Fahre auf Radius ( R, 1 )
]
}
"1 Einheiten" könnte z.B eine bestimte Anzahl Encoderschritte sein.
Läuft komplett auf dem Stack und findet immer zurück zum Ursprungsradius, da konzentrisch gefahren wird.
O.
Lesezeichen