Fakultas Ilmu Komputer
Universitas Brawijaya
2753
Perancangan dan
Implementasi Sistem Pola Berjalan Pada Robot
Humanoid Menggunakan Metode Inverse Kinematic
Riko Andianto1, Rizal Maulana2, Gembong Edhi Setyawan3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1rikoandianto@gmail.com, 2rizal_lana@ub.ac.id, 3gembong@ub.ac.id
Abstrak
Robot merupakan karya yang sangat panting bagi kehidupan manusia modern saat ini. Robot diciptakan untuk memudahkan aktivitas manusia sehari hari khusunya robot humanoid, yakni robot yang mampu menirukan hampir segala kegiatan manusia sepenuhnya, mulai dari robot memiliki sendi sampai robot yang mampu berjalan dan berolahraga, namun kendala yang sering terlihat pada robot humanoid adalah robot yang belum mampu berjalan dengan baik, oleh karena itu penelitian ini bertujuan untuk memperoleh nilai kesalahan dan hasil yang maksimal dalam proses berjalan pada robot humanoid
menggunakan metode inverse kinematic. Penelitian ini akan memberikan gambaran tentang proses berjalan dengan rinci dan perhitungan nilai dari masing-masing sendi agar robot mampu berdiri dan berjalan sebagaimana mestinya. Rancangan penelitian robot humanoid ini menggunakan aktuator berupa motor servo Dynamixel AX-12 sebagai penggerak dan minicomputer Raspberry Pi sebagai otak dan pemroses semua instruksi yang diberikan untuk robot. Implementasi robot humanoid ini dari rancangan yang telah dibuat meliputi spesifikasi software dan hardware dari komponen penyusun robot. Pengujian robot humanoid ini meliputi jalan lurus robot, jalan serong robot dan pengujian waktu yang ditempuh dari pergerakannya. Pengujian jalan lurus robot memiliki tingkat akurasi rata-rata 92% dan waktu 51,4 detik, sedangkan jalan serong memiliki tingkat akurasi 86% dan waktu 69,46 detik.
Kata kunci: robot, motion, humanoid, inverse kinematic, Raspberry Pi.
Abstract
Robot is a very important work for the life of modern humans currently. Robot created to facilitate human activities daily, especially humanoid robot, the robot is able to similar almost all human activities completely, ranging from robots have joints to robots that are able to walk and exercise, but the constraints are often seen in the humanoid robot has not been able to walk Well, therefore this study aims to obtain the error value and maximum results in the process running on humanoid robot using kinematic inverse method. This study will provide an overview of the process of walking in detail and the calculation of the value of each joint so that the robot is able to stand and walk properly. The humanoid robot research design uses actuators in the form of Dynamixel AX-12 servo motor as propulsion and minicomputer Raspberry Pi as the brain and processor of all instructions given to the robot. Testing of this humanoid robot includes the robot's straight path, the robot oblique path and the testing time taken from the movement. Testing of robot straight path has an average rate of 92% and time 54,1 second, while the straight road has 86% accuracy and time 69,46 second.
Keywords: robot, motion, humanoid, inverse kinematic, Raspberry Pi.
1. PENDAHULUAN
Kata robot diambil dari bahasa Ceko (Chech), yang memiliki arti pekerja (worker). Robot merupakan suatu perangkat mekanik yang mampu menjalankan tugas-tugas fisik, baik di bawah kendali dan pengawasan manusia, ataupun yang dijalankan dengan serangkaian program yang telah didefinisikan terlebih dahulu
dengan kecerdasan buatan (artificial intelligence) (Gonzales 1987).
Robot merupakan karya yang sangat penting bagi kehidupan manusia. Robot diciptakan untuk memudahkan aktivitas manusia sehari-hari, mulai dari robot yang dapat membantu kebakaran, robot yang mampu melihat situasi dan kondisi melalui udara serta robot yang mampu melakukan aktivitas seperti
manusia. Robot manusia sering dikenal sebagai robot humanoid. Robot humanoid adalah robot yang memiliki struktur menyerupai manusia dimana robot tersebut memiliki kontruksi kepala, badan, tangan dan kaki. Robot humanoid
ini dapat diciptakan dalam berbagai aktivitas, salah satu contohnya di Indonesia yakni robot penari dan robot sepak bola. Robot tersebut banyak diminati oleh masyarakat, khususnya mahasiswa yang sedang melakukan riset dan menempuh pendidikan di tingkat atas, dan tidak jarang Kementrian Riset dan Teknologi Perguruan Tinggi mengadakan event
perlombaan robot tingkat regional, nasional bahkan internasional (DIKTI 2016).
Beberapa metode yang mendukung proses gerak robot telah banyak digunakan, tetapi masih terdapat masalah yang dihadapi oleh robot saat pertandingan sedang berlangsung. Salah satu metode yang bisa digunakan yaitu metode Inverse Kinematic. Metode ini yang nantinya akan digunakan untuk proses berjalan dan mengetahui seberapa besar kesalahan robot pada saat berjalan, karena berdiri dan berjalannya robot sangat menentukan proses untuk gerakan selanjutnya.
Dalam penelitian ini, peneliti mengangkat permasalahan yang sering muncul dalam perlombaan Robot Nasional, yaitu pada pola berjalan kaki robot humanoid yang sering kali menggunakan metode trial & error untuk membuat robot humanoid dapat berjalan. Metode trial & error atau yang sering disebut dengan Forward Kinematic ini tidak fleksibel, dikarenakan jika hendak mengubah pergerakan atau membuat gerakan baru pada kaki robot harus melakukan trial-error (uji coba berkali-kali) untuk mendapatkan gerakan/posisi tiap sendi yang diharapkan, sehingga hal ini menyebabkan kurang efisiennya waktu dalam proses pengerjaan.
Berdasarkan penelitian-penelitian yang telah dilakukan sebelumnya, maka pada penelitian ini akan menerapkan metode Inverse Kinematic sebagai perhitungan gerakan kaki robot. Dengan adanya penelitian ini, diharapkan hasil akhir dari penelitian dapat memberikan solusi merekayasa pola berjalan kaki Robot
humanoid dengan menggunakan metode Inverse Kinematic sebagai perhitungan setiap sudutnya.
2. PERHITUNGAN INVERSE
KINEMATICS
2.1 Metode Inverse Kinematic
Inverse kinematic merupakan suatu metode analisis untuk melakukan transformasi dari ruang Cartesian ke ruang sendi. Metode digunakan untuk mencari variabel sudut (joint) robot dalam menentukan posisi dan orientasi dari end effector. Dalam menentukan koordinat
end effector harus disesuaikan dengan batas area kerja dari jangkauan robot. Kinematik mempelajari bagaimana suatu gerakan terjadi meliputi perhitungan matematis secara geometri ruang tentang hubungan antara sudut-sudut yang harus dibentuk oleh beberapa proses pada robot dengan koordinat yang diharapakan (
Surya
Setiawan, 2015)
Analisis persamaan kinematik dapat diselesaikan dengan cara yang paling dasar yaitu menggunakan trigonometri. Setiap komponen dalam koordinat (x, y) dinyatakan sebagai transformasi dari tiap-tiap komponen ruang sendiri (r, 𝜃). Jari-jari r dalam persamaan, sering ditulis sebagai panjang lengan atau link l.
Formulasi inverse kinematic lebih sulit daripada forward kinematic, dengan menentukan inverse kinematic seperti pada Gambar 1, dapat ditentukan pergerakan robot sesuai dengan keinginan.
Gambar 1 Proses Inverse Kinematic
Berdasarkan Gambar 1 dapat disimpulkan bahwa rumus dari inverse kinematic
dijelaskan pada:
𝑟 = √𝑦2+ 𝑥2 ... (1)
Setelah nilai r didapatkan maka selanjutnya mencari nilai sudut dari 𝑞1 dengan
𝑞1 = 𝑎𝑟𝑐 cos 𝑦𝑟 ... (2)
Dengan menggunakan rumus kosinus, maka didapatkan nilai :
𝑞2 = 𝑎𝑟𝑐 cos =𝐿1 2+ 𝑟2−𝐿
2 2
2𝐿21𝑟 ... (3)
Dengan menambahkan nilai 𝑞1 dan
𝑞2maka didapatkan nilai dari:
𝜃1= 𝑞1 + 𝑞2 ... (4)
Selanjutnya mencari nilai dari 𝑞3 agar
nantinya dapat digunakan untuk mencari dari nilai 𝜃2: 𝑞3 = 𝑎𝑟𝑐 cos = 𝐿12+ 𝐿22−𝑟2 2𝐿21𝑟 ... (5) 𝜃2 = 180o - 𝑞3 ... (6) 3. PERANCANGAN DAN IMPLEMENTASI
3.1. Gambaran Umum Sistem
Pada tahap ini menjelaskan tentang gambaran umum sebuah sistem yang akan dibangun, perancangan sistem baik hardware
maupun software sehingga nanti akan membentuk suatu implementasi sistem yang dirancang.
Gambar 2 Gambaran Umum Sistem
Gambaran umum sistem pada penelitian ini dijelaskan dalam Gambar 2, pertama membuat
motion gerakan yang menjadi awal atau acuan untuk robot dapat bergerak sesuai yang diingnkan, kedua terdapat CM-510 controller
sebagai kontroler servo motor yang menjadi penggerak utama dalam robot ini yang nantinya kontroler ini akan digunakan untuk memasukkan program dari IDE Atmel Studio yang didalamnya terdapat program seperti jalan, kode kode yang akan digunakan untuk mengoperasikan semua kerja yang dibutuhkan robot untuk melakukan gerakan. Selanjutnya terdapat mini komputer
raspberry untuk menjalankan perintah dari CM-510 yang digunakan sebagai translator dan juga
sebagai tempat untuk memasukkan metode
invers kinematic. Terakhir setelah semua tahapan berhasil dilaksanakan, maka robot akan dapat berjalan sesuai perintah.
3.2. Perancangan Sistem Perangkat Lunak
Perancangan sistem perangkat lunak yang telah disebutkan di bab kebutuhan sistem perangkat lunakadalah tentang bagaimana cara agar sistem ini mampu berjalan seimbang dengan sistem perangkat keras yang akan menjalankan suatu instruksi yang dibutuhkan robot untuk berjalan sebagaimana fungsi yang telah ditentukan
Gambar 3 Flowchart Sistem
. Terdapat perangkat lunak yang dapat digunakan dalam perancangan robot yakni,
Roboplus, IDE Atmel Studio maupun perangkat lunak yang terdapat pada terminal Raspberry Pi. Perancangan perangkat lunak digunakan untuk
mengetahui alur dari kerja sistem melalui diagram alir, yang mana program alir tersebut berisi mengenai inisialisai servo pada Raspberry Pi kemudian memasukkan nilai input x dan y, setelah input diterima maka akan diteruskan menuju proses perhitungan, proses perhitungan tersebut akan meneruskan untuk memerintah robot agar CM-510 dapat memberikan instruksi kepada motor servo untuk menggerakkan robot sampai robot mampu menjalankan perintah jalan yang sesuai dengan sudut yang telah ditentukan.
4. PENGUJIAN DAN ANALISIS 4.1 Pengujian Nilai Koordinat
Pengujian nilai koordinat digunakan sebagai acuan nilai dasar dari gerak robot. Pengujian ini memiliki nilai koordinat x dan y pada robot yamg memiliki 3 DOF (Degree Of Freedom) atau yang disebut dengan derajat kebebasan. Dalam percobaan nilai koordinat akan diketahui nilai dari masing-masing sudut yang dibutuhkan kaki robot untuk membentuk sudut yang diinginkan dengan perhitungan
inverse kinematic. Untuk dapat mengetahui nilai dari masing-masing sudut, dibutuhkan 5 percobaan nilai masukan x dan y yang berbeda, dimana nilai masukan x dan y tidak boleh lebih dari perbandingan besar, misalkan x memiliki nilai 1 dan y memiliki nilai 9. Hal ini tidak dapat digunakan karena nilai yang dihasilkan tidak akan sesuai dengan nilai end effector dari robot yang sesuai dengan kondisi berjalan robot.
Tabel 1 Tabel Nilai Koordinat masing masing Sudut
Dari percobaan tabel 1, peneliti membuat 5 nilai parameter sebagai masukan x dan y dengan nilai yang berbeda. Nilai x dan y merupakan nilai awal untuk mendapatkan nilai sudut yang nantinya akan digunakan sebagai acuan untuk mendapatkan posisi sudut pada robot. Nilai yang dibutuhkan yaitu nilai r (jari jari), nilai q1, q2, q3 sebagai nilai bantuan dan
juga sebagai rumus untuk menghitung nilai theta (𝜃). Percobaan pertama menggunakan nilai x=1 dan y=2, dari nilai koordinat tersebut menghasilkan nilai theta (𝜃) 82,61o dan 164,6o. Percobaan kedua menggunakan nilai parameter input koordinat x=2 dan y=5, dari nilai koordinat tersebut menghasilkan nilai theta (𝜃) 81,13o dan 138,5o. Percobaan ketiga menggunakan nilai x=3 dan y=6, dari nilai koordinat tersebut menghasilkan nilai theta (𝜃) 82,61o dan 127,3o. Percobaan keempat menggunakan nilai x=4 dan y=6, dari nilai koordinat tersebut menghasilkan nilai theta (𝜃) 88,23o dan 122,9o. Percobaan kelima menggunakan nilai x=5 dan y=8, dari nilai koordinat tersebut menghasilkan nilai theta (𝜃) 78,49o dan 102,3o. sebagai sudut yang harus dibutuhkan untuk kaki robot memenuhi nilai perhitungan dari inverse kinematic.
4.2 Pengujian Jalan Lurus Robot
Pengujian jalan lurus robot digunakan untuk mengetahui seberapa besar tingkat keberhasilan gerakan robot pada saat sudut yang dibutuhkan sudah memenuhi derajat yang sesuai dengan motion atau gerakan berjalan tanpa terjatuh dengan memberikan lima masukan yang berbeda pada tiap-tiap koordinat x dan y. Koordinat x dan y tersebut digunakan untuk menghitung nilai sudut dari kedua kaki robot (kaki kanan dan kaki kiri). Setelah itu dilakukan pengujian berjalan robot sebanyak sepuluh kali dengan parameter sudut terdeteksi, pergerakan jalan lurus dan keterangan yang dihasilkan dari semua pengujian. Lima nilai koordinat tersebut yakni : 1. x=1 dan y=2 2. x=2 dan y=5 3. x=3 dan y=6 4. x=4 dan y=6 5. x=5 dan y=8
Gambar 4 Hasil Pengolahan Data
Setelah pengolahan data pada nilai koordinat, selanjutnya melakukan perhitungan sudut kaki robot berdasarkan metode inverse kinematic sesuai dengan Gambar 5.
Gambar 5 Perhitungan sudut kaki robot
4.2.1 Pengujian Error Terhadap Jalan Lurus Robot
Pengujian error terhadap jalan lurus robot digunakan untuk mengetahui nilai kesalahan dari sudut servo terhadap pergerakan robot menggunakan metode inverse kinematic.
Pengujian error akan diketahui setelah nilai dari sudut yang diinginkan dengan sudut yang terhitung berdasarkan rumus yang telah ditentukan. Peralatan yang digunakan untuk perhitungan nilai dari sudut yang terhitung menggunakan busur dan tidak dapat menghitung nilai koma dari selisih sudut tersebut. Pengujian ini dilakukan dengan berdasarkan jangkauan sudut 0-90o.
Tabel 2 Pengujian Nilai Error Terhadap sudut 90o pada Jalan Lurus Robot
Kesimpulan dari tabel 2 adalah bahwa pengujian nilai error terhadap sudut 90o menghasilkan selisih kesalahan pada saat mengukur sudut yang terukur dengan sudut yang diinginkan. Berdasarkan tabel 2 rata-rata error
pada sudut 𝜃1 sebesar 1,14% sedangkan rata-rata
nilai error terhadap sudut 𝜃2 sebesar 1,76%. 4.3 Pengujian Jalan Serong Robot
Pengujian jalan robot juga harus diperhatikan ketika robot dalam kondisi jalan yang lain, sama hal nya dengan kondisi robot dalam keadaan jalan lurus, robot juga harus di uji dengan jalan serong, dimana kondisi jalan seperti ini akan dibutuhkan sebagai dasar untuk fungsi sebagai robot humanoid. Pengujian jalan serong robot ini akan diberikan masukan koordinat yang sama dengan pengujian jalan lurus yakni terdapat lima pengujian koordinat yang berbeda. Pengujian ini juga digunakan untuk mengetahui besar sudut dari kaki robot (kanan dan kiri) sehingga akan menghasilkan nilai dari perhitungan metode inverse kinematic
secara tepat dan dapat menghasilkan gerakan yang akurat.
Pengujian dilakukan sebanyak sepuluh kali dimana nilai koordinat yang akan diuji akan menghasilkan nilai sudut pertama dan nilai sudut kedua, terdapat parameter pengujian sudut, jalan serong apakah berhasil atau tidak, dan keterangan hasil pengujian yang telah dilakukan, serta menghitung nilai error yang terjadi pada saat pengujian. Nilai koordinat sama dengan jalan lurus robot.
Gambar 6 Pengolahan Data robot jalan serong
Setelah pengolahan data pada nilai koordinat, selanjutnya melakukan perhitungan sudut kaki robot pada saat jalan serong berdasarkan metode inverse kinematic sesuai dengan Gambar 7.
Gambar 7 Perhitungan sudut kaki robot
4.3.1 Pengujian Error Terhadap Jalan Serong Robot
Pengujian error terhadap jalan lurus robot digunakan untuk mengetahui nilai kesalahan dari sudut servo terhadap pergerakan robot menggunakan metode inverse kinematic.
Pengujian error akan diketahui setelah nilai dari sudut yang diinginkan dengan sudut yang terhitung berdasarkan rumus yang telah ditentukan. Peralatan yang digunakan untuk perhitungan nilai dari sudut yang terhitung menggunakan busur dan tidak dapat menghitung nilai koma dari selisih sudut tersebut. Pengujian ini dilakukan dengan berdasarkan jangkauan sudut 0-90o.
Tabel 3 Pengujian Nilai Error Terhadap sudut 90o pada Jalan Serong Robot
Kesimpulan dari tabel 3 adalah bahwa pengujian nilai error terhadap sudut 90o menghasilkan selisih kesalahan pada saat mengukur sudut yang terukur dengan sudut yang diinginkan. Berdasarkan tabel 3 rata-rata error
pada sudut 𝜃1 sebesar 1,14% sedangkan rata-rata
nilai error terhadap sudut 𝜃2 sebesar 1,76%. 4.4 Pengujian Waktu Sampling
Pengujian yang terakhir yakni pengujian robot pada kondisi jalan lurus dan kondisi jalan serong. Pengujian ini ditunjukkan untuk mengetahui waktu sampling terhadap robot ketika robot melakukan aksi gerakan berdasarkan perhitungan metode inverse kinematic. Parameter yang digunakan yaitu waktu yang dibutuhkan menggunakan satuan detik (second), gerakan berjalan robot hanya dibatasi dengan panjang sejauh 1 meter dan pengukuran waktu menggunakan stopwatch
untuk mengetahui seberapa tepat waktu dalam satuan detik dan juga waktu dalam satuan milidetik (milisecond/ms).
4.4.1 Waktu Sampling Jalan Lurus Robot
Tabel 4 Hasil Pengujian Waktu Robot Pada Jalan Lurus
Kesimpulan pengujian jalan lurus dengan menggunakan 5 koordinat sudut yang
telah diketahui sebelumnya, memiliki waktu yang berbeda-beda, kondisi tersebut dipengaruhi adanya gerakan yang sedikit berbeda antar sudut koordinat dengan perhitungan inverse kinematic
yang telah terhitung. Hasil pengujian dari tabel 4 menunjukkan bahwa waktu yang telah ditempuh dalam melakukan gerakan jalan lurus dari satu titik ke titik lain menghasilkan rata-rata waktu 51,4 detik.
4.4.2 Waktu Sampling Jalan Serong
Tabel 5 Hasil Pengujian Waktu Robot Pada Jalan Serong
Kesimpulan dari tabel 5 pada dasarnya sama seperti jalan lurus tetapi proses dari jalan serong tersebut berbeda dengan jalan lurus, dimana pada saat akan memulai gerakan jalan dari kondisi siap menuju langkah awal pergerakan jalan membutuhkan motion serong. Hal ini menyebabkan adanya tambahan waktu total dari jalan serong melebihi 60 detik. Rata-rata waktu hasil pengujian jalan serong dari satu titik ke titik lain menghasilkan waktu 69,46 detik.
5. KESIMPULAN
Berdasarkan hasil dari tahapan perancangan, implementasi, pengujian serta analisis hasil pengujian yang telah dilakukan, peneliti dapat menarik kesimpulan bahwa:
1
. Perancangan robot humanoid meliputibody, servo motor, CM-510, mikrokontroler Raspberry Pi sebagai kontrol seluruh bagian robot dan baterai sebagai sumber tegangan. Pada robot
humanoid ini terdapat 3 DOF untuk digunakan sebagai perhitungan inverse kinematic. Minikomputer Raspberry Pi dan kontrol servo harus berhubungan agar data yang diambil dari CM-510 dapat diproses
melalui minikomputer Raspberry Pi untuk menjalankan gerakan kepada motor servo. 2. Pola berjalan robot humanoid berdasarkan
metode inverse kinematic yakni robot mampu berjalan pada alas datar dan juga robot mampu untuk berjalan dengan perhitungan sudut yang telah dirumuskan dengan memperhatikan nilai dari sudut 𝜃1
dan 𝜃2 untuk menghasilkan kondisi sesuai
dengan yang diinginkan (end effector). 3. Untuk melakukan perintah menuju CM-510
sebagai kontrol motor servo digunakan kabel USB seri RS232 sebagai pengiriman data untuk memanggil motion dari CM-510. Dari koordinat x dan y maka akan diketahui nilai dari sudut 𝜃1 dan 𝜃2. Setelah
minikomputer Raspberry Pi memproses perhitungan maka nilai dari sudut akan diteruskan menuju kontrol servo untuk melakukan sebuah motion jalan.
4. Pengujian robot humanoid dalam metode
inverse kinematic digunakan untuk mengetahui error dari setiap sudut, dimana dalam kasus ini menggunakan 5 koordinat sebagai input dari nilai sudut. Pengujian nilai error sudut pada 𝜃1 sebesar 1,14% dan
untuk 𝜃2 sebesar 1,76%. 6. DAFTAR PUSTAKA
DIKTI, KEMENRISTEK. 2016. “Humanoid League of Control Robot.” Humanoid League of Control Robot.
Gonzales. 1987. “artifical intelligent and robotics.” humanoid robot an intelligent.
Kucuk, Serdar, Bingul, Zafer. 2009. “Forward and Inverse kinematics.”
Kusuma, Mario. 2012. “Teknik Support Polygon
pada Humanoid Robot dengan Menentukan Center Of Grafity.”
Maulana, Insan. 2010. “Robot Humanoid dan kecerdasan buatan.”
Rahmadianto A, Adiprasetiano H, Priyono, M.G. 2014. “Analisis Stable Walking Humanoid Robot Soccer Berbasis Zero
Momen Point.” Indonesia Symposium Robot Soccer Competition.
Surya Setiawan, Firdaus, Budi Rahmadya, Derisma. 2015. “Penerapan Invers Kinematika Untuk Pergerakan Kaki Robot.” Semnastek (Fakultas Teknologi Informasi Universitas Andalas).