OPTIMASI TRAJEKTORI PERGERAKAN ROBOT GRIPPER MENGGUNAKAN GENETIC PROGRAMMING #
Choirul Yanuar#1, Bambang Sumantri#2, Ardik Wijayanto#3 Jurusan Teknik Elektronika, Politeknik Elektronika Negeri Surabaya Kampus PENS-ITS Sukolilo, Surabaya 1
2
[email protected] [email protected] 3
[email protected]
Abstrak - Semakin berkembangnya robotika dalam segala aplikasi memberikan kemudahan dan kenyamanan bagi manusia. Banyak sekali penemuan-penemuan di bidang robotika yang kemudian sangat berperan penting dalam kehidupan manusia, baik itu di bidang industri, hiburan, mapun pekerjaan rumah tangga. Di dalam makalah ini akan dipaparkan perancangan sistem optimasi trajektori pergerakan robot gripper menggunakan genetic programming. Robot gripper disini maksudnya adalah robot dua jari yang mengadopsi dari pergerakan jari tangan manusia. Untuk melakukan pergerakan dalam memegang benda, robot harus mengetahui koordinat dari obyek yang akan dipegang sehingga nilai teta di tiap joint nya dapat dihitung dengan kinematika terbalik. Karena hanya dua jari, maka total teta yang ada adalah lima. Untuk proses optimasinya, menggunakan algoritma genetic programming. Genetic programming adalah metode dimana terdapat populasi individu yang nantinya akan mengalami operasi genetika sehingga menghasilkan output yang optimal. Proses robot memegang benda akan divisualisasikan dalam tiga dimensi dengan openGL. Kata kunci : trajektori, optimasi, kinematika terbalik, genetic programming
I. PENDAHULUAN Tren dalam dunia robot saat ini bisa dikatakan sudah berkembang dengan pesat. Hal ini dikarenakan keinginan manusia untuk melakukan sebuah pekerjaan dengan mudah sehingga diperlukan otomasi dalam pekerjaan. Dalam perkembangannya, jenis robot yang dirancang banyak jenisnya seperti robot yang dirancang khusus di industri, robot untuk hiburan, robot di bidang kesehatan dan lain sebagainya. Pembuatan robot juga bisa mengacu pada prinsip dasar pergerakan manusia. Misalkan saja dari cara manusia berjalan, berbicara, memegang benda dan lain-lain. Jari adalah salah satu bagian dari tubuh manusia yang mempunyai peranan penting dalam pergerakan manusia untuk melakukan berbagai aktivitas. Manusia mempunyai total sepuluh jari yang berfungsi untuk memegang benda. Dari prinsip jari tangan manusia itulah kemudian digunakan sebagai dasar pengembangan robot
jari yang dirancang untuk memegang benda dengan berbagai jenis desain dan metode. Bermacam-macam robot jari telah dikembangkan sebelumnya. Beberapa paremeter yang dianalisa adalah kemampuan dalam memegang benda, force yang dihasilkan dan dari segi kontrolnya[1]. Kebanyakan mekanisme pergerakannya dikontrol oleh aktuator yang dirancang di luar dari bagian utama robot. Hal ini membuat robot tersebut terlihat berat dan besar. Beberapa robot jari juga dikembangkan dengan aktuator yang secara langsung menggerakkan robot di tiap joint nya[1]. Pada robot DLR Hand II[2], dibuat sebuah robot dengan desain kinematik yang dirancang untuk meningkatkan kemampuan dalam memegang benda, ketepatan dan kekuatan gerak robot. Dalam proyek akhir ini akan dibuat optimasi trajektori pergerakan robot gripper menggunakan genetic programming. Pola pergerakan robot ini mengadaptasi dari pola pergerakan jari manusia. A. Perumusan Masalah Adapun permasalahan yang akan dibahas adalah sebagai berikut : 1. Bagaimana menghasilkan sebuah trajektori yang optimum dari robot gripper dalam memegang benda. 2. Bagaimana membuat sebuah simulasi yang dapat memvisualisasikan kerja dari robot gripper. 3. Bagaimana dapat meintegrasikan optimasi yang telah dirancang ke bagian hardware robot gripper. B. Batasan Masalah Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan proyek akhir ini dapat berjalan dengan baik adalah sebagai berikut : 1. Dimensi (bentuk dan ukuran) benda dan posisi koordinat benda yang akan dipegang oleh robot gripper sudah diketahui sebelumnya. 2. Jenis bahan benda yang akan dipegang oleh robot gripper dari bahan yang keras.
II. PERANCANGAN SISTEM PERANGKAT LUNAK Dalam bab ini akan membahas langkah-langkah dalam merealisasikan sistem optimasi trajektori robot gripper menggunakan genetic programming dengan memfokuskan pembuatan perangkat lunak sebagai bahasan utama. START
Data Input Benda (dimensi, posisi)
Gambar 2. Robot lengan 3 DOF
Mencari variabel joint (Kinematik terbalik)
Mencari nilai optimum (Genetic Programming) Tidak Sudah nilai optimum ?
Untuk mendapatkan nilai θ1, θ2, θ3, terdapat dua langkah utama dalam pemecahannya. Yang pertama adalah harus mengetahui posisi dari wrist (titik B), dari data koordinat xe, ye dan nilai dari øe. Langkah kedua adalah mencari nilai θ1 dan θ2 dari posisi titik B tadi. Untuk θ3 dapat ditentukan dari posisi titik B (wrist). Titik B yaitu xw dan yw dapat dicari dari rumus, xw = xe - l3 cos øe (2.12) yw = ye - l3 sin øe (2.13) Dari koordinat xw,yw, kita dapat tentukan nilai α dengan rumus, (2.14) α = atan (yw / xw)
Ya Kirim data ke hardware
END
Gambar 1. Diagram sistem optimasi trajektori robot gripper
A. Kinematika Terbalik Pada proses ini kita mencari rumus kinematika terbalik dari robot gripper. Karena struktur robot tersusun atas 2 DOF dan 3 DOF, maka dalam merancang kinematika terbalik robot gripper mengadopsi dari persamaan kinematika terbalik robot lengan 2 DOF dan 3 DOF. Diibaratkan seperti jari tangan manusia, jari pertama adalah jempol yang mempunyai 2 derajat kebebasan. Berikut adalah persamaan robot lengan 2 DOF. θ2 = arcos{ (x2 + y2 - l12 - l22) / 2l1l2 } θ1 = arctan{ (y(l1 + l2 cos θ2) - x . l2 sin θ2) / (x(l1 + l2 cos θ2) - y . l2 sin θ2) }
(2.10) (2.11)
Sedangkan untuk jari yang kedua yang diibaratkan sebagai telunjuk, mempunyai tiga derajat kebebasan sehingga persamaannya mengadposi robot lengan 3 DOF.
Gambar 3. Robot lengan 3 DOF dengan analisa matematis
Berdasarkan gambar 3.3, dapat dilihat segitiga OAB sehingga didapatkan rumus, l12 + l22 - 2 l1 l2 cos β = r2 (2.15) Dimana r2 = xw2 + yw2, sehingga dari rumus di atas didapatkan nilai β yang kemudian kita masukkan ke dalam rumus untuk mendapatkan θ2. θ2 = π - β (2.16) dengan cara yang sama, r2 + l12 - 2r l1 cos γ = l22
(2.17)
setelah dilakukan perhitungan rumus di atas, maka didapatkan nilai γ yang kemudian kita masukkan ke dalam persamaan untuk mendapatkan θ1.
θ1 = α - γ (2.18) Setelah mendapatkan nilai θ1 dan θ2 maka dapat dihitung θ3 dengan persamaan, θ1 = øe - (θ1 + θ2) (2.19)
individu yang mempunyai probabilitas rendah untuk dihapus dari populasi. Jenis fitness yang digunakan dalam permasalahan ini adalah error fitness function. fitness ini memiliki persamaan :
B. Model Genetic Programming Dalam membuat sistem optimasi dengan metode genetic programming diperlukan beberapa tahapan antara lain : 1. Representasi Individu Individu yang terbentuk harus merupakan penyusun rangkaian solusi yang diharapkan. Di dalam suatu individu terdiri dari terminal dan fungsi primitif. Oleh karena itu pada sistem ini dideklarasikan individu dengan rincian sebagai berikut : Terminal = {x, y,R} Fungsi primitif={ +, -, /, *,sin,cos,tan,pow} 2.
Membangkitkan Populasi Awal Proses ini dilakukan dengan membangkitkan populasi secara acak, dimana populasi tersebut berisi beberapa kromosom yang telah didefinisikan sebelumnya. Metode yang digunakan untuk membangkitkan populasi awal pada sistem optimasi ini dengan metode grow.
(3.31)
keterangan : Pi = nilai output pada program Oi = nilai output yang dihasilkan dari training set Dari rumus di atas dapat dilihat bahwa fungsi fitness ini akan menghitung nilai mutlak dari selisih antara nilai output program dengan nilai output dari training set. Jadi semakin kecil nilai selisihnya maka fitnessnya semakin baik. 4.
Seleksi Individu Pada perancangan sistem optimasi ini menggunakan metode roulette wheel. Seleksi ini menggunakan fitness skala dalam memilih kromosom dari populasi. Untuk menghitung fitness skala dari suatu kromosom maka perlu diketahui terlebih dahulu jumlah seluruh fitness dalam populasi. Proses seleksi ini, orangtua dipilih berdasarkan fitness mereka. Lebih baik kualitas suatu kromosom, lebih besar peluang untuk terpilih. Probabilitas suatu individu terpilih untuk crossover sebanding dengan fitness-nya. Cara penyelesaian ini merupakan peniruan dari permainan roda rolet.
5.
Crossover
/ * 2
+ x
+ 2
x
y Gambar 4. Metode Grow
3.
Evaluasi Fitness Genetic programming bekerja dengan men set suatu individu untuk membentuk suatu generasi. Di dalam setiap iterasi, akan dilakukan evaluasi individu, seleksi individu, mengenerate individu baru dengan melakukan mutasi, crossover dan reproduksi secara langsung, dan yang terakhir akan terbentuk suatu generasi baru. Di dalam melakukan proses seleksi dapat dilakukan dengan cara memilih parent dari generasi berikutnya dan menentukan individu yang mana yang bertahan hidup untuk generasi berikutnya. Fungsi fitness menggambarkan suatu solusi terbaik untuk probabilitas seleksi individu. Tujuan utama evaluasi fitness adalah untuk memberikan umpan balik ke algoritma yang telah dirancang mengenai pemilihan individu yang mempunyai probabilitas tinggi dapat melakukan operasi genetika seperti crossover, reproduksi dan mutasi dan pemilihan
Operator crossover mengkombinasikan dua induk dengan menyilangkan salah satu bagian dari induk satu dengan satu bagian dari induk yang lain. Lebih spesifik, crossover berbasis pohon memiliki beberapa langkah seperti di bawah ini. 1. Pilih 2 individu sebagai induk, berdasarkan seleksi individu yang telah dipilih sebelumnya. 2. Pilih sub pohon secara random pada masing-masing induk. 3. Silangkan sub pohon yang sudah dipilih tadi antara 2 induk. Hasil dari persilangan tersebut dinamakan anak. Program akan memilih 2 individu yang akan di silang, kita sebut saja mother dan father. Mother : (sin(5.47) * (pow (2.51, sin (37.23)))) Father : (12.3 + (cos (53.2) – 7))
mother
father +
*
sin (5.47)
12.3
pow
2.51
-
7
cos (53.2)
sin (37.23)
Gambar 5. Proses Crossover
Setelah di crossover menghasilkan keturunan sebagai berikut: child_1 : (sin (5.47) * ( cos(53.2) – 7)) child_2 : (12.3 + (pow(2.51, sin(37.23)))) child_1
child_2
*
+
12.3
-
sin (5.47)
7
cos (53.2)
C. Visualisasi Tiga Dimensi dengan OpenGL Bentuk jari yang akan ditampilkan berbentuk planar dua DOF dan tiga DOF dengan jumlah sudut pergerakan sebanyak lima buah. Ukuran tiap lengan ditetapkan sebesar 2 dalam skala program. Dua jari tersebut akan bergerak menuju benda yang akan dipegangnya. Mengenai besar sudut yang dibentuk itu tergantung dari masukan koordinat dari benda/obyek karena dalam perhitungan menggunakan kinematika terbalik yang sudah dibahas sebelumnya. Karena dalam batasan masalah sudah dijelaskan mengenai dimensi benda sudah ditentukan sebelumnya, maka pada program sudah dibentuk beberapa jenis benda yang dapat dipilih. Pilihan benda tersebut antara lain kubus, bola dan silinder. Dalam men-generate nilai teta yang dihasilkan, terdapat batasan-batasan (range) tiap teta sehingga tidak dapat berputar sampai 360 derajat. Batasan tersebut dibuat agar disamakan dengan pola pergerakan jari manusia yang dalam hal ini jempol dan telunjuk.
pow
2.51
sin (37.23)
Gambar 6. Hasil Crossover
6.
Mutasi Operator mutasi digunakan untuk melakukan modifikasi satu atau lebih nilai gen dalam individu yang sama. Untuk menentukan kromosom mana yang mengalami mutasi, maka perlu dibangkitkan bilangan random. Bila bilangan random < probabilitas mutasinya, maka dilakukan proses mutasi, sedangkan bila tidak maka tidak perlu dilakukan mutasi. Proses mutasi yang digunakan pada kasus ini adalah sebuah subtree dapat digantikan dengan subtree lain dengan cara membangkitkan secara random. *
*
cos (53.2)
/
sin (5.47)
-
sin (5.47)
7 Gambar 7. Proses Mutasi
4.7
-2.1
Gambar 8. Posisi Awal Robot
Seperti terlihat pada gambar di atas, itu adalah posisi awal (home position) saat tidak ada aktivitas dalam memegang benda. Sudut-sudut saat posisi awal adalahs ebagai berikut : teta1 = 45; teta2 = 45; teta3 = 10; teta4 = 120; teta5 = -30; Sedangkan untuk koordinatnya, kita masukkan secara manual pada program sesuai keinginan kita. Hanya saja ada batas untuk nilai sumbu x dan sumbu y. Untuk waktu gerak, disini dirancang dalam satuan detik. Jadi ketika kita masukkan nilai 5 berarti lamanya waktu gerak robot gripper dari posisi awal ke obyek/benda selama 5 detik. Tujuan dirancang adanya waktu gerak ini agar pergerakan robot gripper dapat terlihat dengan jelas sehingga perubahan teta di tiap joint nya dapat terlihat secara visual.
D. Pengujian Optimasi dengan Genetic Programming Pengujian ini bertujuan untuk mendapatkan model matematika optimasi dari data-data yang sudah diperoleh sebelumnya dengan metode genetic programming. Untuk mengurangi proses komputasi yang berat karena banyaknya data training yang ada maka dalam pengujian ini dikelompokkan menjadi beberapa kondisi. Karena proses pencarian model matematika ini menggunakan sistem random maka setiap program di run akan menghasilkan persamaan yang berbeda pula tetapi sama-sama benar. 1. Benda Kubus Pada pengujian ini, dimasukkan data training secara acak antara sumbu x = 1.8 sampai dengan 2.4 dengan nilai sumbu y yang bervariasi. Jumlah fitness case yang dimasukkan sebanyak 12 buah. Setelah dilakukan proses genetic programming, menghasilkan persamaan sebagai berikut : z = (((((2.32 + ((179.2 - ((x * y) * ((y - (-0.58)) * Cos(((y + ((((x * Cos (x)) * Cos(5.5) * Cos(-13.6)) ^ y)) + (4.95 * (((12.7 * Cos(-8.35) – (y ^ 8.19))) * Sin(-23)) / y))) * pi / 180)))) - (-10.11))) + pi) * Cos(1.62 * x)) * Cos(pi)))
Setelah didapatkan persamaan, maka kemudian dilakukan pengujian nilai optimum. Di bawah ini sampel data error yang dihasilkan dari pengujian nilai optimum.
z = ((4.79*(((x*cos x)*cos(((-16.6+ (((((((4.98 *x)*cos(-13) -(8.48)*cos(pow(y,1.47)))*cos y)+ (-2.58))*cos(-6.34 + (((x*1.78)*cos(0.56 +pow (7.97,y)))*97.26))))*cos(-10))-pow((x*cos(2.15 +(y*x))),y)))*cos(y+((-2.71+x) +x)))) +193.62) Setelah didapatkan persamaan, maka kemudian dilakukan pengujian nilai optimum. Di bawah ini sampel data error yang dihasilkan dari pengujian nilai optimum.
Gambar 10. Perbandingan nilai optimum saat x=4
Dapat dilihat pada gambar, perbandingan error nilai optimum antara teori dengan hasil uji juga tidak berbeda jauh dengan error rata-rata masih sekitar di bawah 5 persen. Yang membedakan antara pengujian benda kubus dengan benda tabung adalah data training nya. Semakin banyak jumlah data training nya, maka hasil yang didapatkan juga semakin akurat, tetapi proses komputasi juga semakin berat. 3. Pengujian Robot Jari 3 DOF Pada pengujian ini berbeda dengan pengujian sebelumnya. kalau sebelumnya mengacu pada nilai optimum, sedangkan pengujian ini mengacu pada titik target. Setelah dilakukan beberapa pengujian sampel titik target menghasilkan data sebagai berikut. Tabel 1. Data uji robot 3 dof
Gambar 9. Perbandingan nilai optimum saat x=2.2
Dapat dilihat pada gambar, perbandingan error nilai optimum antara teori dengan hasil uji berbeda tipis dengan error rata-rata sekitar 3 persen. Sehingga bisa dikatakan proses genetic programming nya berhasil dengan baik. 2. Benda tabung Pada pengujian ini, dimasukkan fitness case secara acak antara sumbu x = 4 s/d 5 dengan nilai sumbu y yang bervariasi. Jumlah fitness case yang dimasukkan sebanyak 13 buah. Setelah dilakukan proses genetic programming, menghasilkan persamaan sebagai berikut :
4.08 2.61
Error Sumbu x (persen) 0.5 0.99
Error Sumbu y (persen) 0.46 3.02
Sumbu x (input)
Sumb uy (input)
Sumb ux (uji)
Sumb uy (Uji)
3 3.6
4.1 2.7
2.98 3.63
4
3.5
4.04
3.58
1.03
2.5
2.8
2.5
2.81
2.65
0.44
6.2
2.4
3.5
2.38
3.48
0.4
0.3 2.57
2
4.1
1.94
3.99
2.85
1.6
3.7
1.58
3.6
1.06
2.47
0.4
4.5
0.35
4.44
10.86
1.39
0.6
3.5
0.65
3.43
8
1.95
1
3.9
0.96
3.8
4.1
2.5
2.2
2.9
2.2
2.8
0.11
2.98
E. KESIMPULAN Pada bagian ini akan diulas tentang kesimpulan dari seluruh percobaan dan pengujian software. Berikut adalah beberapa kesimpulan yang dapat diambil diantaranya adalah sbb. 1. Untuk mengoptimalkan proses komputasi dari program GP, maka dilakukan pembagian kondisi berdasarkan nilai sumbu x yang ada. 2. Banyak tidaknya fitness case mempengaruhi kinerja dari program, semakin banyaknya fitness case membuat kinerja program menjadi lambat tetapi mempunyai kelebihan yaitu persamaan yang dihasilkan menjadi lebih tepat. 3. Persamaan yang didapatkan dari proses genetic programming akan menghasilkan nilai optimum yang hampir dibandingkan dengan fitness case, sedangkan yang tidak masuk ke dalam fitness case, kemungkinan error lebih besar. F. DAFTAR PUSTAKA [1]. Akio Namiki, Y. I., Masatoshi Ishikawa, 2004, Development of a High-speed Multifingered Hand System and Its Application to Catching, University of Tokyo,Department of Information Physics and Computing [2]. J.ButterfaB,M.G,H.Liu,G.Hirzinger, 2001, DLR-Hand II: Next Generation of a Dextrous Robot Hand, Seoul Korea, International Conference on Rootic and Automation [3]. Khandar Wiliam, 2008, Penggunaan Genetic Programming untuk Mencari Rumus Suatu Deret Bilangan, Bandung, Sekolah Teknik Elektro dan Informatika ITB [4]. Ali Husein A, 2008, Kinematika Terbalik, Surabaya, Politeknik Elektronika Negeri Surabaya [5]. Isnawati Ulifah, 2007, Peramalan Time Series Menggunakan Genetic Programming, Surabaya, Politeknik Elektronika Negeri Surabaya [6]. Endra Pitowarno, 2006, Robotika : Desain, kontrol, dan Kecerdasan Buatan, Yogyakarta, Andi [7]. Heriady, 2007, Pemrograman Grafik 3D Menggunakan C & OpenGL, Yogyakarta, Graha Ilmu [8]. Wolfgang Banzhaf, Peter Nordin,, Robert E Keller, and Frank D Francone, 1998, Genetic Programming: An Introduction, San Francisco, CA, Morgan Kaufmann. [9]. H. Harry Asada. 2005. Introduction to Robotics : Chapter 4 Planar Kinematics, Massachusetts, Massachusetts Institute of Technology