Lewati ke konten
Bahasa Indonesia

Program pertamamu

Program pertamamu membuat robot melaju maju, lalu menghentikannya di depan dinding. Programnya pendek, tetapi berisi semua yang dibutuhkan setiap program.

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. Buat robot. Robot() menghubungkan programmu dengan robot di simulator.
  2. Ambil time step. Simulasi berjalan maju dalam langkah-langkah (step) berdurasi beberapa milidetik. getBasicTimeStep() memberikan time step world tersebut.
  3. Ambil perangkat. Setiap motor dan sensor dicari berdasarkan namanya. Ini adalah nama yang kamu berikan saat merakit robotmu.
  4. Aktifkan sensor. Sensor tidak memberikan nilai sampai diaktifkan. Time step menentukan seberapa sering sensor diperbarui.
  5. Loop. robot.step(timeStep) memajukan simulasi satu langkah, dan mengembalikan -1 saat simulasi berakhir. Semua yang dilakukan robotmu terjadi di dalam loop ini.
  1. Simpan program sebagai hello.py.
  2. Buka game/worlds/mapping_example_1.wbt, lalu muat robot pemula dengan tombol LOAD sebelah kanan.
  3. Muat hello.py dengan tombol LOAD sebelah kiri, lalu tekan start.

Robot melaju maju, dan konsol Webots menampilkan jarak ke dinding di depannya sampai robot berhenti. Jika kamu malah melihat error, periksa Pemecahan masalah.

  • Ubah kecepatan dari 3.0 menjadi 6.0. Apa yang terjadi di dekat dinding?
  • Buat robot berhenti di 10 cm, bukan 5 cm.
  • Cetak juga waktunya dengan robot.getTime().

Selanjutnya, pelajari cara melaju dan berbelok di Gerakan.