İçeriğe geç
Türkçe
Bu, artık en yeni sürüm olmayan Erebus v26 belgeleridir.En yeni belgeleri görün

Mesafe sensörü

Mesafe sensörü, önündeki ilk nesneye olan uzaklığı metre cinsinden, en fazla 0,8 m’ye kadar ölçer. Başlangıç robotunda üç tane vardır: sola, öne ve sağa bakan leftDist, frontDist ve rightDist.

Yukarıdan görülen, sola, öne ve sağa bakan üç mesafe sensörü

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

Bir kare 12 cm genişliğindedir. Bu yüzden robot bir karenin ortasındayken yanındaki bir duvar yaklaşık 5 cm uzaktadır. Bu program üç sensörü kontrol eder ve hangilerinin duvar gördüğünü yazdırır:

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)

Sensörler, robotun merkezinden değil, robot üzerinde bulundukları yerden ölçer. Kendi eşik değerlerini belirlemek için bir duvarın yanında değerleri yazdır.