Roberta soll ein Hindernis erkennen, es links umfahren und dann in der Verängerung des ursprünglichen Weges weiterfahren.
Dazu wird der gesamte Weg in 8 Abschnitte eingeteilt:
Die Roboterkonfiguration enthält
Vorübung: Das gesamte Programm setzt sich aus mehreren Funktionen zusammen, die bei Bedarf aufgerufen werden. Dazu gehört u.a. das Drehen des Ultraschallsensor. Das Programm lässt Roberta nach links und rechts schauen, Danach sieht sie wieder nach vorn.
Als erstes lässt man Roberta solange fahren, bis der Abstand zum Hindernis kleiner als 20 cm ist. Der Befehl Stoppe wird gleich in einer Funktion umfahre_hindernis aufgerufen.
In der Funktion umfahre_hindernis ruft man als erstes die Funktion drehe_links auf. Der Kreiselsensor wird zurückgesetzt. Damit gibt er zu Beginn den Winkel 0° zurück. Danach wird der rechte Motor solange betrieben, bis der Kreiselsensor einen Winkel größr oder gleich 90° zurückgibt. Wenn das der Fall ist, wird der Motor C gestoppt. Das ist notwendig, damit Roberta nicht noch ein Stück weiter dreht.
Im Hauptprogramm wird nach der Funktion umfahre_hindernis die Schleife abgebrochen. Damit führt Roberta nicht unkontrolliert weiter.
Da beim Weiterfahren die Entfernung zum Hindernis ständig gemessen werden muss, wird der Kopf nach rechts gedreht.
Roberta fährt nun solange vorwärts, bis das Ende des Hindernisses erreicht ist. Um dann wirklich vorbei zu kommen, muss sie noch ein Stück weiter fahren. Wie weit, steht in der Variablen roberta.
Auf dem Weg um das Hindernis ist man jetzt zwischen dem Schritt 3 und dem Schritt 4. Im 4. Schritt muss Roberta so weit fahren, wie der Abstand zum Hindernis ist. Dafür wird zu Beginn des Programms der Abstand zum Hindernis in der Variablen abstand abgelegt.
Roberta fährt jetzt also die Wege 4, 5 und 6 nach vorn.
Danach wird wieder nach rechts gedreht.
Zum Schluss muss Roberta genau so weit fahren, wie die 2 und 3 lang sind. Dazu wird eine weitere Variable strecke benutzt, in der der Abstand des Drehsensors B steht, der während der Strecken 2 und 3 zurückgelegt wird.
Ist alles fertig, umfährt Roberta jedes Hindernis.
Das Problem ist der Drehsensor. Er wurde genau unter dem EV3 angebracht. Trotzdem dreht Roberta immer etwas weiter als 90°.