Robotika · pelajaran 23
Bangun sendiri, dan kepala yang mencari
Jatuh itu biasa
Di pertandingan RoboCup, robot humanoid jatuh berkali-kali: ditabrak lawan, terpeleset, salah langkah. Yang membedakan tim bagus bukan robot yang tidak pernah jatuh, tetapi robot yang bangun sendiri dengan cepat. Aturannya keras: robot yang 20 detik tidak bangun dikeluarkan wasit (Incapable Robot).
Pekerjaan ini dipegang modul tersendiri. Hamburg Bit-Bots menyebutnya HCM (humanoid control module); di OP3 ini node /op3_hcm:
- Mendeteksi jatuh dari IMU. OpenCR di dada OP3 punya IMU.
/op3_managermenerbitkan/imu(orientasi sebagai quaternion dan kecepatan sudut). HCM menghitung pitch dan roll lalu menyaringnya, seperti demo sepak bola ROBOTIS: pitch di atas 60° berarti telungkup, di bawah −60° berarti telentang. - Melindungi badan saat jatuh: lutut ditekuk, lengan ke depan (halaman
lindung). - Menunggu diam. Selama giroskop masih di atas 0,2 rad/s robot masih berguling; bangun saat itu sia-sia.
- Memilih gerakan bangun. Telungkup → halaman 122
f_get_up, telentang → 123b_get_up. Ini halaman asli dari berkas gerakan ROBOTIS (motion_4095.bin): tiap halaman berisi beberapa langkah, tiap langkah 20 sudut servo plus waktu dan jeda. Kalau robot terbaring miring, HCM merentangkan tangan dulu (guling) supaya ia rebah ke punggung. - Mencoba lagi kalau gagal, maksimal 3 kali. Setelah itu robot menyerah dan menunggu diangkat.
Lantai di simulator ini bukan mesin fisika penuh. Robot bertumpu pada titik-titiknya yang paling rendah (tangan, siku, lutut, telapak, badan, kepala), titik yang menempel tidak tergelincir, dan robot terguling di tepi tumpuannya kalau titik beratnya keluar. Itu cukup untuk gerakan bangun yang pelan.
Coba
- Buka ⚙ Parameter jalan, turunkan Goyang pinggul ke 0, lalu jalan dengan W. Robot jatuh ke samping. Perhatikan kotak 🤕 HCM: sedang jatuh, terbaring, lalu bangun dengan halaman yang dipilih dari pitch IMU.
- Di tab Topik, buka
/imudan/op3/hcm. Pitch berubah dari 0° ke sekitar ±90° saat robot rebah. - Naikkan Peluang gagal bangun ke 100%. Robot mencoba tiga kali, lalu menyerah. Tekan Bangkit (
/op3/reset) untuk membantunya.
Kepala yang mencari bola
Kamera OP3 hanya melihat ±35° ke samping dan ±22° ke atas-bawah. Robot sungguhan tidak menunggu bola lewat di depannya: kepalanya bergerak. Tim RoboCup memisahkan ini ke modul kepala sendiri (head mover Bit-Bots, atama ICHIRO ITS), dengan beberapa mode:
- Pindai: menyapu sebuah pola. Pola lebar menyapu tiga garis horizontal dari jauh ke dekat seperti pencarian Bit-Bots. Segitiga dan Horizontal meniru mode atama.
- Lacak: begitu bola terlihat, sudut pan dan tilt dikejar dengan pengendali P supaya bola tetap di tengah gambar. Hilang lebih dari 0,8 s, kepala kembali memindai.
- Lihat x y: menatap satu titik di lapangan, misalnya bola yang dilaporkan teman.
Mode dikirim lewat topik /op3/head_mode (misalnya lacak lebar). Skrip Penendang otomatis sekarang memakainya: badan diam dulu, kepala memindai, baru berputar kalau satu putaran pola tidak menemukan bola.
Misi
Biarkan OP3 jatuh lalu bangun sendiri dua kali, kemudian pilih Lacak bola di kotak 🎥 Kepala sampai kamera menemukan bola.
Selanjutnya: GameController dan aturan pertandingan · Semua pelajaran