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.