PERANCANGAN DAN PEMBUATAN TRAJECTORY PLANNING (PERENCANAAN LINTASAN) UNTUK ARTICULATED ROBOT ARM MENGGUNAKAN METODE GENETIC ALGORITHM (GA) Reza Akbar Rizaldy Jurusan Teknik Mekatronika, Politeknik Elektronika Negeri Surabaya Kampus PENS-ITS Sukolilo, Surabaya [email protected] ABSTRAK -- Saat ini sebuah produk robot yang memiliki sistem dengan tingkat kecerdasan yang tinggi berkembang dengan pesat. Pengontrolan dapat dilakukan melalui sebuah metode yang terstruktur seperti Genetic Algorithm. Oleh karena itu, makalah ini menerangkan sebuah perancangan Trajectory Planning yang menggunakan Genetic Algorithm untuk sebuah robot lengan khususnya Articulated Robot Arm. Dengan menggunakan metode tersebut robot ini dapat memiliki sebuah sistem robot dengan kecerdasan terstruktur. Robot ini memiliki presepsi gerak untuk mencapai titik tujuan sesuai dengan lintasan yang telah direncanakan. Robot ini memiliki keleluasaan gerak karena robot ini dirancang memiliki 4 buah derajat kebebasan. Kata Kunci: Articulated Robot Arm, Trajectory Planning, Genetic Algorithm. . 1. PENDAHULUAN Robot berasal dari kata “Robota” yang berarti tenaga budak. Sedangkan di masyarakat pada umumnya, istilah “Robot” dipresepsikan sebagai mesin dengan perangkat mekanik dan peralatan elektronik dalam bentuk tertentu yang dapat melakukan/menentukan sesuatu sesuai tugas yang telah diberikan. Salah satu bentuk robot yang telah banyak dibuat adalah robot-robot yang menyerupai bentuk lengan manusia. Robot lengan ini tentunya berbentuk lengan-lengan mekanik yang banyak digunakan sebagai pengganti tenaga manusia, salah satunya dalam bidang industri. Berdasarkan ruang kerjanya, robot dibagi menjadi beberapa macam, salah satunya adalah Articulated Robot Arm. Robot ini memiliki ruang kerja yang lebih luas serta dapat bergerak secara fleksibel dan luwes. Pergerakan yang mendominasi robot ini adalah rotasi. Pergerakan robot ini tentunya dikontrol oleh sebuah sistem robot yang memiliki tingkat kecerdasan yang tinggi. Pengontrolan dapat dilakukan melalui sebuah perencanaan lintasan yang terstruktur sehingga robot memiliki presepsi untuk mencapai suatu tujuan tertentu. Berdasarkan informasi perseptual, sebuah robot dengan kecerdasan terstruktur membuat keputusan dan tindakan dari empat tingkat secara paralel. Aksi ini terdiri dari gerakan reaktif (refleks), gerakan terampil, perencanaan gerakan primitif, dan perencanaan gerak. Selain itu, menghasilkan gerak robot melalui interaksi dengan lingkungan, dan pada saat yang sama, secara bertahap memperoleh keterampilan berdasarkan gerakan yang dihasilkan. Untuk memperoleh keterampilan dan gerak, setidaknya robot membutuhkan evaluasi internal dan eksternal. Makalah ini menerapkan algoritma genetika dalam penentuan lintasannya. Sesuai metode yang diterapkannya yaitu Algoritma Genetika (Genetic Algorithm), robot lengan akan memiliki keluaran sebagai robot cerdas yang mampu mencari lintasan terbaik untuk mencapai suatu titik. Dengan hanya memberikan informasi theta pada setiap joint dimana theta-theta ini merupakan sebuah konfigurasi pergerakan lengan robot maka robot akan bergerak sesuai dengan informasi tersebut. 2. PERANCANGAN SISTEM Perancangan secara keseluruhan untuk menyelesaikan Tugas Akhir ini meliputi perancangan mekanik, perancangan hardware, dan perancangan software. Berikut ini pada Gambar 2.1 merupakan skema rangkaian sistem untuk menggambarkan urutan kerja sistem pada proyek akhir ini: Gambar 2.1 Skema Rangkaian Sistem Koordinat merupakan masukan awal untuk memberikan informasi kepada motor untuk melakukan pergerakan. Koordinat dimasukkan melalui komputer yang kemudian diinterfacekan ke mikrokontroler. Kemudian untuk mengontrol posisi motor dilakukan dengan menggunakan potensiometer. Potensiometer akan menginformasikan besar sudut yang telah dicapai. 2.1 Analisa Kinematik Pada tahap ini perhitungan kinematika dilakukan pemodelan secara DH Parameter, yang selanjutnya dipakai sebagai acuan untuk perhitungan kinematika maju atau yang dikenal sebagai forward kinematics. Untuk memprmudah penginisialisasian, frame assignment ditunjukkan pada Gambar 2.2 1 1 C2 S A2 2 0 0 C3 S 3 A3 0 0 Mempersingkat perhitungan akan diberikan beberapa notasi yang akan dijumpai dalam perhitungan matriks transformasi, antara lain: (2.6) S3 C3 0 0 0 a3C3 0 a3 S3 1 0 0 0 (2.7) Matriks transformasi (join pitch) C 4 S 3 A4 4 0 0 S4 C4 0 0 0 a4C4 0 a 4 S 4 1 0 0 1 3 A4 : (2.8) 0 Matriks transformasi T4 : 0 T4 0 A 1 1 A 2 2 A 3 3 A 4 0 Tabel 2.1 Parameter Kinematka Lengan Robot 0 0 a 2C2 0 a 2 S 2 1 0 0 1 2 Gambar 2.2 Frame Assignment Lengan Robot Setelah diagram koordinat link dari robot ditentukan, dengan representasi DH didapatkan beberapa parameter kinematika dari robot lengan Articulated. Parameter-parameter kinematika akan dijabarkan ke dalam tabel di bawah ini: C2 0 Matriks transformasi (join elbow) A3 : 2 S2 C1 S T4 1 0 0 0 S1 0 0 C1 0 1 0 d1 0 0 1 C3 S3 0 a 3C3 C4 S S3 C3 0 a 3S3 4 0 0 1 0 0 0 0 0 1 0 S2 0 a 2C2 C 2 0 a 2S2 0 1 0 0 0 1 S 4 0 a4C4 C4 0 a4 S 4 0 1 0 0 0 1 C 2 S 2 0 0 C1C234 C1S234 S1 C1(a4C234 a3C23 a2C2 ) S C S1S234 C1 S1 (a4C234 a3C23 a2C2 ) 1 234 S234 C234 0 a4C234 a3C23 a2C2 d1 0 0 0 0 Ci cos i S i sin i Cij cos i j Sehingga persamaan matriks lengan robot articulated yang didapatkan adalah : nx = C 1 C 234 5 (2.9) ny = S 1 C 234 5 ( 2.10) S ij sin i j nz = S 234 Aturan perhitungan trigonometri juga akan dipakai untuk meyederhanakan matriks transformasi, yaitu : Sin sin cos cos sin (2.1) (2.2) (2.3) (2.4) Sin sin cos cos sin Cos cos cos sin sin Cos cos cos sin sin Berdasarkan Tabel 2.1 maka didapatkan matriks seperti berikut: Matriks transformasi (join base) C1 S 0 A1 1 0 0 0 S1 0 C1 1 0 0 0 0 A1 : 0 0 d1 1 Matriks transformasi (join shoulder) (2.5) sx = C 1 S 234 5 ( 2.12) sy = S 1 S 234 ( 2.13) C 234 ( 2.14) sz = ox = S 1 ( 2.15) oy = C 1 oz = 0 ( 2.16) px= C 1 ( a 4 C 234 a 3 C 23 a 2 C 2 ) (2.17) ( 2.18) py= S 1 (a 4 C 234 a 3 C 23 a 2 C 2 ) ( 2.19) pz= a 4 C 234 a 3 C 23 a 2 C 2 d 1 ( 2.20) 2.2 Algoritma Genetika Komponen-komponen utama dalam proses Genetic Algorithm adalah: 2.2.1 1 A2 : ( 2.11) Random populasi Dalam tahap ini dilakukan teknik penyandian untuk meninisialisasi parameter yang dibutuhkan. Teknik penyandian disini meliputi penyandian gen dari kromosom. Gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu variabel. Gen 2 dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat diimplementasikan untuk operator genetika. Di dalam TA ini teknik penyandian dilakukan dengan menggunakan string bit. Untuk posisi awal dan akhir ditentukan dengan random dimisalkanhanya sebuah individu, untuk prosenya sebagai berikut: 2.2.3 Cross Over CrossOver adalah menggabungkan dan mengawinkan dua individu dan menghasilkan dua individu baru. Operator ini bekerja mengambil 2 individu dan memotong string kromosom mereka pada posisi yang terpilih secara acak. Gambar 2.4 Ilustrasi operasi crossover dalam GA Gambar 2.3 Ilustrasi Pergerakan Lengan Operasi ini tidak selalu dilakukan pada semua individu yang ada. Individu dipilih secara acak untuk dilakukan crossover dengan Pc antara 0,6- 0,95. Jika pindah silang tidak dilakukan maka nilai dari induk akan diturunkan kepada keturunannya Misalkan ada 2 kromosom dengan panjang 12: Posisi penyilangan yang terpilih : misalkan 5 Setelah penyilangan, diperoleh kromosom-kromosom baru: 2.2.4 Gambar 2.4 Ilustrasi Penyusunan Trayektori 2.2.2 Seleksi berdasarkan Nilai Fitness Seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana offspring (keturunan/anak) terbentuk dari individu-individu terpilih tersebut. Langkah pertama yang dilakukan dalam seleksi ini adalah pencarian nilai fitness. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut. Nilai fitness inilah yang nantinya akan digunakan pada tahap-tahap seleksi berikutnya. Di dalam kasus lengan robot ini rumus fitness yang disediakan adalah: = + (2.21) Dimana: , = koefisien bobot = jumlah kuadrat jarak antara dua konfigurasi = Jumlah kuadrat dari sudut antara 2 konfigurasi pada masing – masing joint Mutasi Setelah mengalami proses rekombinasi, pada offspring (keturunan/anak) dapat dilakukan mutasi. Variabel offspring dimutasi dengan menambahkan nilai random yang sangat kecil (ukuran langkah mutasi), dengan probabilitas yang rendah. Peluang mutasi (pm) didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak pernah dievaluasi. Tetapi bila peluang mutasi ini terlalu besar, maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya, dan juga algoritma akan kehilangan kemampuan untuk belajar dari histori pencarian. Ada beberapa pendapat mengenai laju mutasi ini. Ada yang berpendapat bahwa, laju mutasi sebesar 1/n akan memberikan hasil yang cukup baik. Ada juga yang beranggapan bahwa laju mutasi tidak tergantung pada ukuran populasinya. Kromosom hasil mutasi harus diperiksa, apakah masih berada pada domain solusi, dan bila perlu bisa dilakukan perbaikan. Mutasi ini berperan untuk menggantikan gen yang hilang dan populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Dalam hal ini, metode mutasi yang digunakan di dalam Tugas Akhir ini adalah mutasi biner artinya proses mutasi dilakukan terhadap setiap bit biner. Cara sederhana untuk mendapatkan mutasi biner adalah 3 dengan mengganti satu atau beberapa nilai gen dari krornosom. Langkah-langkah mutasi ini adalah: a) Hitung jumlah gen pada populasi (panjang kromosom dikalikan dengan ukuran populasi). b) Pilih secara acak gen yang akan dimutasi. c) Tentukan kromosom dari gen yang terpilih untuk dimutasi. Ganti nilai gen (0 ke 1, atau 1 ke 0) dari kromosom yang akan dimutasi tersebut. 3. HASIL Pada bab ini akan dibahas mengenai pengujian algoritma pada robot dengan kondisi yang sebenarnya. Hal ini bertujuan untuk mengetahui apakah sistem yang dibuat sudah sesuai keinginan atau belum dan juga untuk mengetahui sejauh mana ketepatan algoritma program yang dibuat serta tidak menutup kemungkinan kelemahannya. Sehingga dari sini dapat disimpulkan apakah algoritma program yang dibuat dapat menjalankan sistem dengan benar sesuai dengan kriteria yang diharapkan. Pengujian ini dilakukan secara bertahap dan saling berhubungan. Pengujian algoritma dilakukan pada perbedaan populasi dan koefisien dari w1, dan w2 Hasil yang ditunjukkan di garafik opada Gambar 3.1 menunjukkan bahwa nilai fitness tertinggi lebih stabil daripada nilai fitness terrendah yang cenderung berosilasi. Hal ini menujukkan bahwa fitness terrendah tidak dapat menemukan solusi yang baik sehingga bentuk grafik berosilasi. Jadi pada bobot w1=0,2 dan w2=0,8 hasil fitness yang baik terdapat pada nilai fitness tertinggi. 3.2 Pengujian = 0,8; = 0,2 Pengujian pertama kali dilakukan dengan cara mengeset nilai = 0,8 dan = 0,2. Penjumlahan kedua koefisien pemberat tersebut harus berjumlah satu dengan perubaha satu digit di belakang koma. Dengan parameter tetap seperti pada Tabel 4.3, percobaan ini dilakukan 5 kali trial untuk mengawasi nilai dari fitness tersebut konstan atau tidak. Hasil dari percobaan ini ditunjukkan pada Tabel 3.2. Tabel 3.2 Hasil Percobaan Pemberian Bobot dan = 0,2 Tabel 3.1 Hasil Percobaan Pemberian Bobot dan = 0,8 Fitness 3.1 Pengujian = 0,2; = 0,8 Pengujian pertama kali dilakukan dengan cara mengeset nilai = 0,2 dan = 0,8. Penjumlahan kedua koefisien pemberat tersebut harus berjumlah satu dengan perubaha satu digit di belakang koma. Dengan parameter tetap seperti pada Tabel 4.2, percobaan ini dilakukan 5 kali trial untuk mengawasi nilai dari fitness tersebut konstan atau tidak. Hasil dari percobaan ini ditunjukkan pada Tabel 3.1. = 0,2 2558 2556 2554 2552 2550 2548 2546 = 0,8 Topest Lowest 1 2 3 4 5 Trial Fitness Gambar 3.2 Grafik Pengujian 880 870 860 850 840 830 topest lowest 1 2 3 4 5 Trial Gambar 3.1 Grafik Pengujian = 0,2; = 0,8 Analisa: Dalam percobaan ini, terdapat dua perbandingan yaitu membandingkan fitness tertinggi dan fitness terrendah. = 0,8; = 0,2 Analisa: Pada grafik di Gambar 3.2 perbedaan yang paling mencolok dengan percobaan pertama adalah nilai fitness lebih besar daripada percobaan pertama. Dengan demikian dapat disimpulkan sementara bahwa jikakoefisien w1 lebih besar dari koefisien w2 maka nilai fitness semakin besar. Berdasarkan grafiknya pula dapat dianalisa bahwa grafik fitness tertinggi mulai stabil pada trial kedua dan seterusnya. Berbeda dengan fitness terrendah dapat dilihat bahwa nilai fitness naik turun menunjukkan bahwa tidak dapat menemukan solusi yang baik. Jadi dikatakan bahwa pada percobaan kedua ini fitness yang terbaik pada fitness tertinggi. 3.3 Pengujian = 0,3; = 0,7 Pengujian pertama kali dilakukan dengan cara mengeset nilai = 0,3 dan = 0,7. Penjumlahan kedua koefisien pemberat tersebut harus berjumlah satu 4 Tabel 3.3 Hasil Percobaan Pemberian Bobot dan = 0,7 Fitness dengan perubaha satu digit di belakang koma. Dengan parameter tetap seperti pada Tabel 3.3, percobaan ini dilakukan 5 kali trial untuk mengawasi nilai dari fitness tersebut konstan atau tidak. Hasil dari percobaan ini ditunjukkan pada Tabel 3.3. = 0,3 2276 2274 2272 2270 2268 2266 2264 2262 topest Lowest 1 2 3 4 5 Trial Fitness Gambar 3.4 Grafik Pengujian 1155 1150 1145 1140 1135 1130 1125 1120 Topest Lowest 1 2 3 4 5 = 0,7; = 0,3 Analisa: Pada percobaan kali ini, perbedaan yang mencolok terlihat pada fitness yang dihasilkan lebih besar daripada saat w1=0,3 dan w2=0,7. Hal ini dapat disimpulkan untuk sementara bahwa nilai fitness semakin besar ketika w1 lebih besar dari w2. Dapat diihat di grafik pula bahwa pada fitness tertinggi grafik yang ditunjukkan terlihat lebih stabil dari pada fitness terrendah. Jadi fitness tertinggi merupakan fitness terbaik karena lebih dapat menemukan solusi. Trial 4. Gambar 3.3 Grafik Pengujian = 0,3; = 0,7 Analisa: Percobaan ketiga kali ini memiliki grafik yang ditunjukkan pada Gambar 4.6 dimana grafik ini yang diubah adalah w1=0,3 dan w2=0,7. Dapat dilihat bahwa nilai fitness terrendah cenderung berosilasi ini artinya bahwa fitness di nilai terrendah belum stabil namum pada fitness terrendah lebih stabil demikian artinya bahwa nilai fitness terrendah lebih baik daripada nilai fitness tertinggi. 3.4 Pengujian = 0,7; = 0,3 Pengujian pertama kali dilakukan dengan cara mengeset nilai = 0,7 dan = 0,3. Penjumlahan kedua koefisien pemberat tersebut harus berjumlah satu dengan perubaha satu digit di belakang koma. Dengan parameter tetap seperti pada Tabel 3.4, percobaan ini dilakukan 5 kali trial untuk mengawasi nilai dari fitness tersebut konstan atau tidak. Hasil dari percobaan ini ditunjukkan pada Tabel 3.4 Tabel 3.4 Hasil Percobaan Pemberian Bobot dan = 0,3 = 0,7 KESIMPULAN Berdasarkan seluruh percobaan yang telah diujikan maka dapat ditarik kesimpulan besar, antara lain: 1. Genetic Algorithm dapat memberikan solusi yang terbaik pada lengan robot untuk mencari lintasannya. Hal ini dapat dilihat dari fitness yang tertinggi artinya solusi yang diberikan adalah yang paling maksimal. 2. Perubahan nilai w dapat mempengaruhi hasil fitness yang dihasilkan oleh Algoritma Genetika. 3. Dari seluruh hasil percobaan dapat dilihat bahwa jika w1 lebih besar maka fitness nya lebih besar pula dan jika w1 lebih kecil dari w2 maka fitnessnya lebih kecil. 4. Pada saat pemberian bobot w1=0.3 dan w2=0.7 hasil grafik yang dihasilkan lebih smooth artinya bahwa fitnessnya lebih baik. 5. Error yang terjadi pada robot ini disebabkan oleh konstruksi robot yang masih banyak terdapat backlace. DAFTAR RUJUKAN [1] http://elangmaya.lensa.or.id/archives/adaptivetrajectory-planning/ [2] http://lecturer.eepisits.edu/~kangedi/materi%20kuliah/Kecerdasan%20 Buatan/Bab%207%20Algoritma%20Genetika.pdf [3] http://www.keep-elka.blogspot.com [4]www.elecnet.candra.ac.th/learn/courses/ELTC2401/ unit 4/robot/robot2.htm [5] www.societyofrobots.com/robot_arm_tutorial.shtml [6] Kubota, Naoyuki. 1996. Trajectory Planning of Cellular Manipolator System Using VirusEvolutionary Genetic Algorithm. Nagoya, Japan 5 [7] Kubota, Naoyuki. 1999. Trajectory Planning and Learning of A Redundant with Structured Intelligence. Congress on Evolutionary Computation [8] Cinthya dan Indra. Human-Friendly Arm Robot Using Interactive Genetic Algorithm. Surabaya, Indonesia. [9] Pitowarno, Endra, Robotika: Desain, Kontrol, dan Kecerdasan Buatan, Penerbit Andi, Surabaya, 2006. [10] www.wikipedia.com [11] Suyanto, Algoritma Genetika dalam MATLAB, Penerbit Andi, Yogyakarta, 2005. [12] Lung-wen-tsai. (1999). “Robot analysis: the mechanical of serial manipulator”.Wileyinterscience publication. [13] Manjunath.T.C.(2007). “Kinematic Modeling and Maneuvering of 5 Axes Articulated Robot Arm”. International Journal of Mechanical, Industrial and Aerospace Engineering. [14] http://mekatronika-smk.blogspot.com [15] http://www.rumahbuku.net 6