Aller au contenu
Français

Capteur de distance

Un capteur de distance mesure la distance, en mètres, jusqu’au premier objet situé devant lui, jusqu’à 0,8 m. Le robot de départ en a trois : leftDist, frontDist et rightDist, orientés vers la gauche, l’avant et la droite.

Trois capteurs de distance vus de dessus, orientés vers la gauche, l’avant et la droite

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

Une case fait 12 cm de large : quand le robot est au milieu d’une case, un mur sur son côté se trouve donc à environ 5 cm. Ce programme vérifie les trois capteurs, et affiche ceux qui voient un mur :

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)

Les capteurs mesurent depuis l’endroit où ils se trouvent sur le robot, pas depuis son centre. Affichez les valeurs à côté d’un mur pour choisir vos propres seuils.