Für koordiniertes Drehen bräuchtest du entweder Schrittmotore oder eine Winkelrückmeldung von den Rädern, ansonsten wirst du immer Abweichungen drin haben.

Was funktioniert an den schwarzen Kreisen nicht?
Hab ich das richtig verstanden, dass der Roboter an der Unterseite irgendwo (?) einen Infrarotsensor hat, der Schwarz von nicht-Schwarz unterscheiden kann? Das wär dann doch genauso zu lösen, wie die Detektion vom Hindernis, nur, dass er sich nicht zwingend nochmal zurück bewegen muss.

Um den schwarzen Kreis sicher zu treffen, wäre wirklich gut, wenn der Roboter seine Orientierung bestimmen könne. Das Einfachste wäre wohl ein Kompasssensor, ansonsten lässt sich das wohl nur über die Radstellungen gewinnen. Gibt auch noch andere Verfahren, die dann aber meist mit zusätzlichen Raumpunkten, zB. Infrarotmarkern, arbeiten, aber das wird eben immer aufwändiger. Wenn sowas nicht zur Verfügung steht, musst du wohl oder übel hoffen, dass er beim Drehen nicht zu weit von den 90° abweicht. Gegebenenfalls die Wartezeit beim Drehen noch anpassen, sind ja noch ziemlich runde Werte. Vielleicht bringt es ja schon was, beim Drehen mit der Geschwindigkeit ein wenig runter zu gehen.