Robotika · pelajaran 26
Peran dan strategi: tim.py
Satu program, banyak robot
Tim RoboCup tidak menulis program berbeda untuk tiap robot. Program yang sama dipasang di semua robot; bedanya hanya nomor punggung dan apa yang dilihat robot itu. Di sini sama: tim.py dijalankan sekali untuk setiap robot Biru, masing-masing dengan variabelnya sendiri:
PLAYER_NUM: nomor punggung (1 = kiper di preset ini);TEAM_NUM: nomor tim;FIELD: ukuran lapangan (panjang,lebar,gawang,lingkaran,titik_penalti).
Robot tidak bisa berbagi variabel Python. Yang diketahuinya hanya dari topiknya sendiri: /gamestate, /odom, /ball, /op3/status, dan /team/recv dari teman.
Kenapa peran?
Jalankan Semua penyerang dulu. Setiap robot mengejar bola: mereka bergerombol, saling menghalangi, saling dorong (dan wasit menghukum Pushing), sementara gawang sendiri kosong.
Peran & bola bersama memperbaikinya. Tiap detik tiap robot mengirim waktu ke bola: jarak ÷ kecepatan jalan + sudut belok ÷ kecepatan putar. Setiap robot mengurutkan angka itu sendiri, dari pesan yang sama, jadi semuanya sampai di kesimpulan yang sama tanpa ada yang memerintah:
- waktu terkecil → penyerang: ke belakang bola, segaris dengan gawang lawan, tendang;
- yang paling dekat gawang sendiri → bek: di antara bola dan gawang;
- sisanya → pendukung: di belakang dan samping bola, siap kalau bola memantul.
Ada jebakan: pesan datang sekali per detik, jadi dua robot bisa sama-sama merasa penyerang. Karena itu penyerang mendapat “bonus” 2 detik (histeresis) sebelum menyerahkan perannya.
Coba
- Klik 👁 Mata robot dan ⬇ Atas. Nyalakan Tujuan tiap robot di menu Tampilan untuk melihat ke mana tiap robot menuju.
- Di tab Robot, lihat peran tiap robot Biru berubah saat bola berpindah.
- Ubah histeresis, jarak pendukung, atau posisi kiper di
tim_peran.py, lalu jalankan lagi (↺ Ulang untuk pertandingan baru).
Misi
Dengan semua robot Biru dikendalikan tim.py, selesaikan pertandingan (2 × 3 menit) dan menangkan. Tekan ▶ Jalankan sebelum READY selesai, dan percepat simulasi kalau perlu.
Selanjutnya: Wasit otomatis: apa yang diperiksa · Semua pelajaran