Ir al contenido
ErebusDocs
v26
Español
Esta es la documentación de Erebus v26, que ya no es la última versión.Ver la documentación más reciente

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.