Ir al contenido
Español

Sensor de distancia

Un sensor de distancia mide la distancia, en metros, al primer objeto que tiene delante, hasta 0,8 m. El robot inicial tiene tres: leftDist, frontDist y rightDist, que miran a la izquierda, al frente y a la derecha.

Tres sensores de distancia vistos desde arriba, mirando a la izquierda, al frente y a la derecha

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")

Una baldosa mide 12 cm de ancho, así que cuando el robot está en el centro de una baldosa, una pared a su lado está a unos 5 cm. Este programa comprueba los tres sensores e imprime cuáles ven una pared:

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)

Los sensores miden desde donde están colocados en el robot, no desde su centro. Imprime los valores junto a una pared para elegir tus propios umbrales.