İçeriğe geç
Türkçe

İlk programın

İlk programın robotu ileri sürer ve bir duvarın önünde durdurur. Kısadır, ama her programın ihtiyaç duyduğu her şeyi içerir.

from controller import Robot
robot = Robot()
timeStep = int(robot.getBasicTimeStep())
# Get the devices of the starter robot by name
leftWheel = robot.getDevice("left wheel motor")
rightWheel = robot.getDevice("right wheel motor")
frontDist = robot.getDevice("frontDist")
# Sensors must be enabled before use
frontDist.enable(timeStep)
# Let the wheels turn without limit, and start driving forward
leftWheel.setPosition(float("inf"))
rightWheel.setPosition(float("inf"))
leftWheel.setVelocity(3.0)
rightWheel.setVelocity(3.0)
# The main loop: each step, the simulation advances by timeStep milliseconds
while robot.step(timeStep) != -1:
distance = frontDist.getValue()
print("Distance to the wall in front:", round(distance, 3), "m")
if distance < 0.05: # Closer than 5 cm: stop
leftWheel.setVelocity(0)
rightWheel.setVelocity(0)
print("Wall reached!")
break
  1. Robotu oluştur. Robot(), programını simülatördeki robota bağlar.
  2. Zaman adımını al. Simülasyon birkaç milisaniyelik adımlarla ilerler. getBasicTimeStep() dünyanın adımını verir.
  3. Cihazları al. Her motor ve sensör adıyla bulunur. Bunlar, robotunu yaparken onlara verdiğin adlardır.
  4. Sensörleri etkinleştir. Bir sensör etkinleştirilene kadar hiçbir değer vermez. Zaman adımı, sensörün ne sıklıkla güncelleneceğini belirler.
  5. Döngü. robot.step(timeStep) simülasyonu bir adım ilerletir ve simülasyon bittiğinde -1 döndürür. Robotunun yaptığı her şey bu döngünün içinde olur.
  1. Programı hello.py olarak kaydet.
  2. game/worlds/mapping_example_1.wbt dünyasını aç ve sağdaki LOAD düğmesiyle başlangıç robotunu yükle.
  3. hello.py dosyasını soldaki LOAD düğmesiyle yükle ve başlat düğmesine bas.

Robot ileri gider ve durana kadar Webots konsolunda önündeki duvara olan uzaklık görüntülenir. Bunun yerine bir hata görürsen Sorun giderme sayfasına bak.

  • Hızı 3.0’dan 6.0’a değiştir. Duvarın yakınında ne oluyor?
  • Robotun 5 cm yerine 10 cm’de durmasını sağla.
  • robot.getTime() ile zamanı da yazdır.

Sırada Hareket sayfasında ilerlemeyi ve dönmeyi öğrenmek var.