Anda di halaman 1dari 6

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

y4nu4r88@yahoo.com
bambang@eepis-its.edu
3
ardik@eepis-its.edu

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

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

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)

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

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

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

1.95

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

Anda mungkin juga menyukai