Ursprungsmitteilung
Thema EV3 Roboter, Schwarze Linie folgen 
Autor aralgut 
Eingangsdatum 2019-11-25 13:05:12.0 
Mitteilung Folgende Aufgabe:

Der Roboter soll innerhalb des Ovals ca. in der Mitte starten. Er soll dabei auf ein langes gerades Teilstück des Ovals schräg zufahren. Der Winkel in dem er auf die Linie trifft, soll ungefähr 45 betragen.
Der Roboter soll auf die schwarze Linie zu fahren. Trifft der Lichtsensor die schwarze Linie, bildet die Fahrtrichtung des Roboters mit der Linie in der Regel einen spitzen (45) und einen stumpfen (135) Winkel. Der Roboter soll nun in Richtung des stumpfen Winkels weiterfahren. Der Roboter soll versuchen, dass sich die schwarze Linie möglichst oft zwischen den großen Rädern befindet.

Fahrt in beide Richtungen testen.

Programmierung für den Ablauf in beide Richtungen ist mir klar. Wie jedoch entscheidet der Roboter, ob er nun nach links oder rechts fahren soll? 
 
      
Antworten
Thema Schwarze Linie folgen 
Autor Jarka 
Eingangsdatum 2019-11-27 13:20:31.0 
Mitteilung Ich habe die Aufgabe im Simulationsmodus gelöst. Ich denke, es kommt darauf an, wie der Roboter beim Start gedreht wird. Wenn man ihn zuerst nach links dreht, muss beim "schwarz sehen" auf dem leftArc() korrigieren und beim "weiss sehen" auf dem rihgtArc().

from simrobot import *
#from ev3robot import *

RobotContext.useBackground("sprites/roundpath.gif")
RobotContext.setStartPosition(250, 250)

robot = LegoRobot()
gear = Gear()
robot.addPart(gear)
ls = LightSensor(SensorPort.S3)
robot.addPart(ls)
gear.forward()
state = "start"

while True:
v = ls.getValue()
if v > 500 and state == "start":
gear.forward()
else:
state = "go"
if v < 500:
gear.leftArc(0.2)
else:
gear.rightArc(0.2)
Tools.delay(100)