Zum Inhalt springen
Deutsch

Abstandssensor

Ein Abstandssensor misst die Entfernung in Metern zum ersten Objekt vor ihm, bis zu 0,8 m. Der Starter-Roboter hat drei davon: leftDist, frontDist und rightDist, die nach links, nach vorne und nach rechts schauen.

Drei Abstandssensoren von oben gesehen, nach links, vorne und rechts gerichtet

from controller import Robot
robot = Robot()
timeStep = int(robot.getBasicTimeStep())
frontDist = robot.getDevice("frontDist") # Get the sensor by name
frontDist.enable(timeStep) # Enable it
while robot.step(timeStep) != -1:
print("Front:", round(frontDist.getValue(), 3), "m")

Eine Kachel ist 12 cm breit. Steht der Roboter also in der Mitte einer Kachel, ist eine Wand an seiner Seite etwa 5 cm entfernt. Dieses Programm prüft die drei Sensoren und gibt aus, welche davon eine Wand sehen:

from controller import Robot
robot = Robot()
timeStep = int(robot.getBasicTimeStep())
# Keep the sensors in a dictionary, to use them by name
sensors = {}
for name in ["leftDist", "frontDist", "rightDist"]:
sensors[name] = robot.getDevice(name)
sensors[name].enable(timeStep)
WALL = 0.07 # Closer than 7 cm counts as a wall next to the robot
while robot.step(timeStep) != -1:
walls = [name for name, sensor in sensors.items() if sensor.getValue() < WALL]
print("Walls:", walls)

Die Sensoren messen von ihrer Position am Roboter aus, nicht von seiner Mitte. Gib die Werte neben einer Wand aus, um deine eigenen Grenzwerte festzulegen.