BAB III PERANCANGAN SISTEM Pada bab ini akan dijelaskan mengenai perancangan sistem dari perangkat keras, serta perangkat lunak robot. 3.1. Gambaran Sistem Sistem yang direalisasikan dalam skripsi ini adalah sebuah sistem yang digunakan untuk mempertahankan keseimbangan robot agar dapat berjalan dengan stabil saat berjalan pada permukaan rumput buatan yang tidak rata. Untuk menjaga keseimbangan robot agar dapat berjalan dengan stabil pada rumput buatan maka digunakan kontrol PID dalam sistem ini. Gambar 3.1. Diagram blok sistem. 3.2. Perancangan Perangkat Keras 3.2.1. Perangkat Keras Mekanik (a) (b) Gambar 3.2. Frame robot (a), bentuk dan arah axis DOF pada robot (b). 13
Perangkat keras mekanik menggunakan frame robot Darwin OP, frame terbuat dari alumunium dan stainless steel. Robot memiliki spesifikasi mekanik seperti pada Tabel 3.1. Tabel 3.1. Tabel Spesifikasi Robot Tinggi (cm) 50,5 Panjang lengan (cm) 23,5 Massa robot (Kg) 2.5 Massa lengan (Kg) 0.125 Luas penampang kaki (cm 2 ) 65 Panjang pusat massa (cm) 26,5 3.2.2. Perangkat Keras Elektronik Pada perangkat keras elektronik akan dijelaskan penggunaan mini pc sebagai kontroler utama, sensor IMU, dan Aktuator pada robot. 1. Odroid XU4 Gambar 3.3. Odroid XU4 Kontrol utama pada robot menggunakan mini pc Odroid XU4 Gambar 3.3. Mini pc ini digunakan untuk membaca sensor, mengolah algoritma berjalan robot, mengendalikan motor servo dengan komunikasi serial, dan melakukan proses kontrol PID untuk kestabilan robot. Mini pc Odroid XU4 digunakan dalam skripsi ini karena memiliki beberapa keunggulan seperti ukuran yang kecil, memakai processor octa core yang cukup kuat untuk menjalankan program dengan multithreading, dan memiliki GPIO untuk 14
interface dalam membaca sensor dengan komunikasi I 2 C. Odroid sendiri mempunyai dua buah blok GPIO, GPIO 15x2 yang dikontrol oleh GPIO kontroler terpisah dari processor dan GPIO 6x2 yang dikontrol langsung oleh processor. Tabel 3.2. Daftar pin pada GPIO 6x2 pada Odroid XU4 yang digunakan dalam perancangan sistem. Nama Pin Keterangan Pin 1 Sumber tegangan 5 Volt Pin 2 Ground Pin 3 Sumber tegangan 1,8 Volt Pin 4 SDA Pin 6 SCL 2. CMPS11 Gambar 3.4. Sensor IMU CMPS11 CMPS111 merupakan sebuah sensor IMU Gambar 3.4.. di mana sensor ini dapat mengukur besaran momen inersia. CMPS11 memiliki tiga buah sensor yaitu accelerometer, gyroscope, dan magnetometer. Dalam skripsi ini digunakan CMPS11 untuk mendapat nilai kemiringan dan gaya yang dialami oleh robot menggunakan accelerometer dan gyroscope. Nilai-nilai tersebut akan menjadi nilai umpan balik pada sistem kestabilan robot. Sensor ini memiliki dua buah interface untuk mengambil data yaitu melalui komunikasi 15
I 2 C dan UART. Dalam skripsi ini dipilih mode I 2 C untuk pembacaan sensor. Berikut adalah Tabel 3.4 spesifikasi CMPS11. Tabel 3.3. Spesifikasi CMPS11 Tegangan Operasi 3.6 Volt 5 Volt Protokol I 2 C Sensor 3 axis Magnetometer 3 axis Accelerometer 3 axis Gyroscope Raw Data Accelerometer x, y, z Gyroscope x, y, z Kalman Filtered Data Compass Bearing 8/16Bit Pitch Angle Roll Angle 3. Aktuator Dynamixel MX28 dan Dynamixel AX18 (a) (b) Gambar 3.5. Dynamixel AX18 (a), Dynamixel MX28 (b). Pada bagian penggerak robot digunakan smart motor servo Dynamixel MX28 untuk bagian kaki, dan Dynamixel AX18 pada bagian tangan dan kepala seperti pada Gambar 3.5. Pada bagian kaki digunakan 12 buah servo Dynamixel MX28. Servo ini memiliki internal PID untuk mengontrol sudut dari servo dan torsi yang cukup besar untuk menopang tubuh robot seperti terlampir pada Tabel 3.4. 16
Tabel 3.4. Spesifikasi Dynamixel MX28 Position Sensor Contactless absolute encoder (12 BIT, 360 0 ) Motor Maxon Gear Metal Baud Rate 8000 bps ~ 4.5 Mbps Protocol Half duplex UART 8N1 Control Algorithm PID Resolution 0.088 0 Running Degree 360 0, Endless Turn Stall Torque 2,3 N.m (at 11.1 Volt, 1.3A) 2,5 N.m (at 12 Volt, 1.4A) 3.1 N.m (at 14.8 Volt, 1.7A) Untuk bagian tangan dan kepala digunakan servo Dynamixel AX18 karena tidak bekerja terlalu berat dalam arti tidak menopang berat tubuh robot tidak perlu servo dengan torsi yang besar. Berikut adalah spesifikasi Dynamixel AX18 pada Tabel 3.5. Tabel 3.5. Spesifikasi Dynamixel AX18 Position Sensor Potentiometer (10BIT, 300 0 ) Gear Plastic, Metal Baud Rate 7343 bps ~ 1 Mbps Protocol Half duplex UART 8N1 Resolution 0.29 0 Running Degree 300 0, Endless Turn Stall Torque 1.8 N.m (at 12 Volt, 2.2A) 17
3.3. Perancangan Perangkat Lunak Pada perancangan perangkat lunak robot akan dijelaskan bagaimana penerapan kontrol PID pada pemprograman robot di mini pc Odroid XU4. Thread Baca IMU Baca IMU START INISIALISASI Main program Motion Pattern Generator Hitung PID kaki Inverse Kinematic Ya Roll kanan > 15 atau Roll kiri< -15? Batasi pergerakan tangan dalam rotasi Roll Tidak Hitung PID lengan Strategi Panggul dan Strategi rotasi lengan Gerakan Servo Robot END Gambar 3.6. Diagram alir sistem kendali pada robot humanoid R2C-R9. Berikut adalah penjelasan diagram alir pada Gambar 3.6 : 1. Sistem akan mulai berjalan ketika program pada mini pc dieksekusi. 2. Sistem akan melakukan inisialisasi. 3. Kemudian task pada thread untuk membaca IMU dan algoritma berjalan pada main program dimulai. 4. Pada thread baca IMU akan terus membaca data accelerometer dan gyroscope dari sensor. 18
5. Lalu data accelerometer dan gyroscope yang didapat dari pembacaan sensor IMU akan dijadikan sebagai masukan dan diolah didalam perhitungan PID untuk keseimbangan menggunakan kaki robot. 6. Jika nilai roll saat robot mengalami kemiringan ke arah kanan lebih dari 15 0 atau saat robot mengalami kemiringan ke arah kiri kurang dari -15 0 maka pergerakan tangan akan dalam arah rotasi roll akan diproteksi dengan cara membatasi nilai sudut servo shoulder roll. Kemudian dilanjutkan dengan perhitungan PID untuk lengan, jika tidak memenuhi syarat maka akan langsung dilakukan perhitungan PID untuk lengan. (Set Point pada sumbu rotasi roll atau arah putar terhadap sumbu x adalah 0 0 ) 7. Setelah semua nilai hasil perhitungan PID dilakukan maka nilai hasil PID untuk kaki dan nilai PID untuk tangan akan diolah dalam algoritma strategi panggul untuk PID kaki, dan algoritma strategi lengan untuk PID lengan. 8. Pada main program, sistem akan membangkitkan pola gerakan sesuai dengan parameter berjalan yang diperintahkan. 9. Setelah pola gerakan berjalan dibangkitkan, hasil dari pembangkit pola gerakan akan dimasukan pada perhitungan inverse kinematic untuk mendapat nilai sudut untuk setiap motor servo pada robot. 10. Hasil dari strategi rotasi lengan dan hasil dari strategi panggul akan ditambahkan pada hasil perhitungan inverse kinematic pada bagian ankle pitch, knee, hip pitch, shoulder pitch, dan shoulder roll. 11. Setelah perhitungan setiap strategi dan inverse kinematic selesai maka data untuk setiap servo akan dikirimkan ke setiap servo untuk digerakkan. 19