Robotika · pelajaran 2
Servo: motor yang tahu posisinya
Motor biasa vs servo
Motor DC biasa hanya berputar: beri tegangan, ia berputar, tanpa tahu sudah di mana. Servo menambahkan tiga hal di dalam satu kotak:
| bagian | gunanya |
|---|---|
| gearbox | memperlambat putaran dan melipatgandakan torsi |
| encoder | mengukur sudut poros (di sini 4096 langkah per putaran = 0,088°) |
| pengendali | mikrokontroler kecil yang terus membandingkan sudut tujuan (goal) dengan sudut terukur, lalu mengatur tegangan motor |
Robot ini memakai servo pintar Dynamixel XM430 (sama seperti ROBOTIS OP3). Pengendalinya menjalankan loop PID sekitar 1000 kali per detik.
PID dalam satu kalimat per huruf
Misalkan = goal − posisi (error). Tegangan ke motor:
- P (proportional): makin jauh dari tujuan, makin kuat dorongannya. P besar = cepat, tapi bisa melewati tujuan (overshoot) lalu berayun.
- I (integral): menjumlahkan error kecil yang menetap. Contohnya bahu (J2) yang ditarik gravitasi: dengan P saja, ia berhenti sedikit di bawah tujuan, karena di titik itu dorongan P sama dengan tarikan gravitasi.
- D (derivative): melawan kecepatan perubahan error, seperti peredam kejut. Ia mengurangi overshoot.
Pada Dynamixel, angka di memori servo diubah menjadi gain: , , .
Coba
- Di tab Servo, klik baris J2 (atau klik bagian bahu di 3D).
- Tekan Uji langkah. Driver dijeda sebentar, lalu servo diberi goal baru 29° dari posisinya. Osiloskop menggambar goal (putus-putus) dan posisi terukur.
- Baca hasilnya: waktu naik, overshoot, error akhir, waktu tenang.
- Ubah gain lalu tekan Tulis ke servo. Panel mengirim satu paket WRITE 6 byte ke alamat 80 (D, I, lalu P bersebelahan di memori). Lihat paketnya di tab Bus Dynamixel.
Eksperimen yang menarik:
- P = 3000, I = 0, D = 0: cepat tapi berayun.
- P = 800, I = 0: tenang, tapi ada error akhir karena gravitasi.
- Tambahkan I: error akhir hilang, tapi I yang terlalu besar membuat berayun pelan.
- Tambahkan D untuk meredam.
Control table
Semua pengaturan servo disimpan di control table: deretan alamat memori. Contohnya Torque Enable di 64, Goal Position di 116, dan Present Position di 132. Buka “Control table” di panel Servo: angkanya berubah langsung. Matikan Torsi dan servo jadi lemas (lengan melorot karena gravitasi). Perhatikan juga suhu: servo yang terus menahan beban makin panas.
Misi
Setel P, I, D servo J2 sampai Uji langkah lulus: overshoot < 5%, error akhir < 0,3°, tenang dalam < 350 ms.
Selanjutnya: Bicara dengan servo: protokol Dynamixel · Semua pelajaran