ISSN: 1693-6930 209 SIMULATOR LENGAN ROBOT ENAM DERAJAT KEBEBASAN MENGGUNAKAN OPENGL Balza Achmad, Musthofa Sunaryo, Agus Arif Jurusan Teknik Fisika, Fakultas Teknik, Universitas Gadjah Mada, Jl. Grafika 2, Yogyakarta 55281 e-mail: balzach@ugm.ac.id, agusarif@ugm.ac.id Abstract A robot simulator has been developed, that capable in simulating a 6 degree of freedom robot manipulator. Using this simulator, a user can define the type and angular range of the joints, and length of each link, as well as the colors. User can also select an arbitrary viewing angle and move the robot manually or automatically. The simulator was developed using C++ programming language utilizing OpenGL graphic library. Denavit-Hartenberg notation was used as parameters to specify the shape and size of the manipulator. Keyword : articulated robot, Denavit-Hartenberg notation, manipulator Abstrak Telah dikembangkan sebuah simulator robot yang mampu mensimulasikan manipulator robot 6 derajat kebebasan. Dengan menggunakan simulator ini, seorang pengguna dapat memilih jenis dan jangkau sudut sendi dan panjang setiap lengan, serta warnanya. Pengguna dapat memilih sembarang sudut pandang dan menggerakkan robot baik secara manual maupun otomatis. Simulator ini dikembangkan menggunakan bahasa pemrograman C++ dengan memanfaatkan pustaka grafis OpenGL. Notasi Denavit-Hartenberg digunakan sebagai parameter untuk menentukan bentuk dan ukuran manipulator. Kata kunci : lengan robot, manipulator, notasi Denavit-Hartenberg 1. PENDAHULUAN Pada saat ini, robot semakin memiliki peran yang sangat penting dalam kehidupan manusia, mulai dari bidang kedokteran, pertanian, sampai ke industri manufaktur. Bahkan robot telah masuk ke rumah pribadi dalam bentuk mainan ataupun alat bantu pekerjaan sehari-hari. Banyak mahasiswa dari berbagai program studi; misalnya Teknik Elektro, Teknik Mesin, Teknik Industri, Teknik Fisika, Instrumentasi, dan Informatika; tertarik dengan robot. Hal ini ditunjukkan dengan banyaknya mahasiswa yang memilih matakuliah robotika sebagai salah satu matakuliah pilihan. Di samping itu, berbagai perlombaan robot di tanah air semakin diminati oleh para mahasiswa dari berbagai perguruan tinggi di seluruh pelosok tanah air. Sayangnya, tingginya minat mahasiswa untuk belajar robot mengalami suatu hambatan, terutama yang berasal dari perguruan tinggi kecil, yaitu perlunya dana yang besar untuk menyediakan peralatan belajar yang memadai. Harga sebuah robot yang akan digunakan untuk keperluan praktikum tentulah tidak murah. Selain itu, biaya operasional untuk melakukan eksperimen dengan robot juga tidak kecil. Belum lagi unit robot yang perlu disediakan biasanya lebih dari satu untuk satu kelas praktikum. Oleh karena itu, untuk mengurangi biaya, diperlukan sebuah pengganti dari robot yang sebenarnya. hal ini dapat dilakukan dengan menggunakan simulator robot berupa program komputer. Dengan adanya simulator robot ini, praktikum robotika dapat dilaksanakan dalam lab komputer, sehingga tidak perlu membangun lab tersendiri. Sebelumnya telah dilakukan sebuah penelitian yang dilakukan oleh Craig Hennessey, Alex Jiang dan Kevin Ko dari Simon Fraser University. Mereka bertiga melaksanakan suatu proyek pembuatan program simulator robot yang diberi nama Scara Robot Simulator [1]. Proyek Scara Robot Simulator mempunyai tujuan untuk membuat simulator menggunakan OpenGL dan Microsoft Visual C++ untuk sebuah manipulator robot tipe SCARA (Selectively Compliant Simulator Lengan Robot Enam Derajat Kebebasan Menggunakan OpenGL (Balza Achmad)
210 ISSN: 1693-6930 Assembly Robot Arm) yang merupakan robot yang cukup sederhana yang mempunyai empat derajat kebebasan. Program simulator ini menawarkan kemampuan untuk menjalankan beberapa perintah sehingga pengguna dapat menggerakkan manipulator dan posisi kamera pada layar monitor. Simulator ini masih berbasis console (text) dan tidak mudah untuk dioperasikan. Kelemahan kedua adalah bentuk manipulator tetap, tidak dapat diubah. Selain itu ada juga suatu simulator robot lain yang diberi nama RoboSim. Simulator ini dibuat oleh Rainer Pollak (versi asli/ bahasa C) dan Johannes Schützner (versi bahasa Java) di bawah bimbingan Thomas Bräunl. Untuk simulator yang dibuat menggunakan bahasa C dan harus dijalankan pada sistem operasi Unix dengan X-Window. RoboSim merupakan simulator yang sangat sederhana untuk sebuah manipulator robot dengan 6 derajat kebebasan. Fungsi dari panel kontrolnya adalah untuk menggerakkan manipulator, juga untuk memungkinkan mengubah posisi pandangan serta mengubah panjang dari link [2]. Simulator yang dikembangkan dalam paper ini memiliki kemampuan untuk melakukan scripting pola gerakan robot. Gerakan masing-masing link dapat diskenariokan sebelumnya dan disimpan dalam bentuk file, sehingga dapat digunakan pada kesempatan lain. 2. LENGAN ROBOT Secara etimologis kata robot berasal dari bahasa Cheko yaitu kata robota yang berarti berkerja. Sedangkan menurut kamus Webster, robot didefinisikan sebagai piranti yang menunjukkan fungsi sebagaimana kelakuan manusia. Definisi yang lebih lengkap kemudian dikembangkan oleh RIA (Robot Institute of America), Robot adalah manipulator multifungsi yang dapat diprogram ulang (reprogramable multifunctional manipulator) yang didesain untuk memindahkan material, peralatan atau piranti [3]. Derajat kebebasan (Degree Of Freedom atau DOF) pada robot setiap gerakan linier atau putaran sepanjang atau sekitar pada sebuah sumbu (axis). Pada kasus robot industri, karena sebuah manipulator merupakan sebuah rangkaian terbuka, dan karena tiap posisi sendi biasanya ditentukan dengan variabel tunggal maka jumlah sendi sama dengan nilai derajat kebebasan [4]. Robot industri merupakan perpaduan dari struktur mekanik (manipulator), penggerak (aktuator), sensor dan sistem kontrol. Manipulator adalah rangkaian benda kaku (rigid bodies), lengan (link) yang satu sama lain terhubung oleh sendi (joint). Pangkal lengan terpasang pada kerangka dasar (base frame) sedangkan ujungnya tersambung pada end-effector. Sendi adalah tempat sambungan lengan untuk melakukan putaran atau gerakan. Secara umum sendi ada dua macam, yaitu sendi putar dan sendi prismatik. Sendi putar sering digunakan sebagai pinggang (waist), bahu (shoulder), siku (elbow). Pergerakan sendi putar akan menghasilkan satu derajat kebebasan. Model pergerakan sendi putar ditunjukkan oleh Gambar 1(a). Sementara itu, sendi prisma adalah sendi geser dengan sumbu sendi tepat pada pusat garis lengan geser. Sendi prisma akan menyebabkan perpindahan posisi dari ujung lengan (end-effector). Contoh mekanisme sendi geser dapat dilihat pada Gambar 1(b). (a) sendi putar (revolution joint) (b) sendi geser (prismatic joint) Gambar 1. Diagram skematis sendi pada lengan robot [5] TELKOMNIKA Vol. 6, No. 3, Desember 2008 : 209-216
TELKOMNIKA ISSN: 1693-6930 211 Manipulator industri dapat dikelompokkan berdasarkan struktur dari manipulator dan posisi end-effector yang dideskripsikan pada suatu sistem koordinat, yaitu a. Rectangular (Cartesian) Manipulator, apabila lengan dari manipulator bergerak secara rectilinier, yaitu arah xyz dari koordinat Cartesian (aturan tangan kanan). b. Cylindrical Manipulator, apabila lengannya memiliki sebuah revolute dan dua prismatic joint yang sama dengan 3 DOF. Ruang kerja dari manipulator ini ditentukan dengan koordinat cylindrical (radius r, sudut θ dan tinggi z). c. Spherical (Polar) Manipulator, apabila lengannya dapat berubah bentuknya dengan menggerakkan dua sendi putar dan satu sendi geser. Posisi lengan dideskripsikan dengan koordinat spherical (r, θ, x). d. Revolute (Articulated) Manipulator, apabila lengannya terdiri atas lengan-lengan yang dihubungkan dengan sendi putar. Contoh Articulated Robot Manipulator diberikan dalam Gambar 2). Jenis lengan robot ini lebih fleksibel karena memiliki lebih banyak sendi dibandingkan dengan manipulator tipe yang lain, sehingga dapat digunakan untuk berbagai jenis keperluan dan merupakan jenis lengan robot yang paling banyak digunakan di industri manufaktur. Oleh karena itu, simulator yang dibuat dalam paper ini adalah jenis articulated robot. (a) ABB IRB 1600 (b) Adept Viper s650 (c) Motoman EA1400N (d) ABB IRB 2400 Gambar 2. Contoh jenis articulated robot di industri Simulator Lengan Robot Enam Derajat Kebebasan Menggunakan OpenGL (Balza Achmad)
212 ISSN: 1693-6930 3. NOTASI DENAVIT-HARTENBERG Guna memodelkan lengan robot berjenis articulated robot, digunakan notasi Denavit- Hartenberg. Notasi ini mendeskripsikan parameter hubungan antara satu sendi/lengan dengan sendi/lengan yang lain, terdiri dari 4 parameter (a i, α i, d i, θ i ). Notasi ini ditulis pada sistem koordinat XYZ. Gambar 3 menunjukkan notasi Denavit-Hartenberg yang digunakan dalam paper ini. a i = jarak dari Z i ke Z i+ 1 diukur sepanjang X i α i = sudut antara Z i dan Z i+ 1 diukur seputar X i d i = jarak dari X i 1 ke X i diukur sepanjang Z i θ i = sudut antara X i 1 ke X i diukur seputar Z i Gambar 3. Notasi Denavit-Hartenberg Dengan notasi tersebut, posisi sebuah sendi yang terdapat pada ujung akhir sebuah lengan dapat dihitung berdasarkan posisi sendi ujung awal lengan, sudut sendi, dan panjang lengan. Karena sebuah sendi menghubungkan antara sebuah lengan dengan lengan lainnya, maka posisi end effector, yang pada simulator ini dimodelkan dengan sebuah gripper, dapat ditentukan. 4. SIMULATOR YANG DIKEMBANGKAN Simulator yang dikembangan dalam paper ini dirancang untuk dapat mensimulasikan berbagai robot jenis articulated robot yang ada di industri. Oleh karena itu, mula-mula disusun model sendi dan lengan dari sebuah articulated robot yang memiliki 6 derajat kebebasan. Dengan memvariasikan dimensi dari setiap sendi dan lengan yang ada, maka robot yang sebenarnya dapat dimodelkan. Terdapat 2 konfigurasi sendi pada end effector, yakni Roll Pitch Yaw atau Wrist Bend Turn. Gerakan dari kedua konfigurasi sendi tersebut ditunjukkan oleh Gambar 4. Sementara Gambar 5 menunjukkan diagram skematik sendi dan lengan dari simulator robot yang dirancang, lengkap dengan variabel yang digunakan, baik untuk konfigurasi sendi Roll Pitch Yaw atau Wrist Bend Turn. TELKOMNIKA Vol. 6, No. 3, Desember 2008 : 209-216
TELKOMNIKA ISSN: 1693-6930 213 (a) Roll Pitch Yaw (b) Wrist Bend Turn Gambar 4. Konfigurasi sendi pada end effector (a) Roll Pitch Yaw (b) Wrist Bend Turn Gambar 5. Diagram skematik model sendi dan lengan Simulator yang dirancang merupakan simulator 3 dimensi sehingga dapat menampakkan gerakan dan visualisasi lengan robot secara rasional. Perangkat lunak dibuat menggunakan paket pengembangan program Visual C++ dan OpenGL. OpenGL adalah suatu pustaka perangkat lunak untuk perangkat keras grafik. Pustaka ini terdiri atas sekitar 150 perintah berbeda yang digunakan untuk menentukan obyek dan operasi yang diperlukan untuk membuat aplikasi tiga dimensi yang interaktif [6]. OpenGL dibuat untuk digunakan dengan tidak tergantung pada platform atau perangkat keras. OpenGL tidak menyediakan perintah tingkat tinggi untuk membuat model dari objek tiga dimensi, seperti perintah membuat bentuk yang sulit seperti mobil, bagian dari tubuh, pesawat terbang atau molekul. Suatu model dapat dibangun dengan OpenGL menggunakan kumpulan geometric primitives yaitu titik, garis dan poligon. Tampilan utama simulator ditunjukkan oleh Gambar 6. Tampilan ini tersusun atas panel visualisasi lengan robot, panel pengaturan pandangan, panel pengendali perputaran sendi, Simulator Lengan Robot Enam Derajat Kebebasan Menggunakan OpenGL (Balza Achmad)
214 ISSN: 1693-6930 pengendali gripper, serta beberapa tombol untuk mengoperasikan simulator dan mengaktifkan dialog konfigurasi sendi. Gambar 6. Tampilan utama simulator Setiap perubahan posisi dan sudut pandangan; yakni posisi X, Y, Z, dan sudut bidang X-Y dan Y-Z; langsung dapat dilihat efeknya di panel visualisasi. Pengaturan posisi dan sudut pandang ini digunakan untuk memberikan kemampuan simulator untuk melihat lengan robot dari arah manapun sesuai dengan yang dikehendaki. Sebagai contoh, lengan robot dapat dilihat dari pandangan atas, samping, atau depan (Gambar 7). Dengan demikian, pengguna dapat mengamati lengan robot dengan lebih bebas. (a) pandangan atas (b) pandangan samping (c) pandangan depan Gambar 7. Visualisasi lengan robot dari berbagai sudut pandang TELKOMNIKA Vol. 6, No. 3, Desember 2008 : 209-216
TELKOMNIKA ISSN: 1693-6930 215 Pengaturan dimensi dan konfigurasi sendi robot dapat dilakukan dengan dialog Link Parameter. Dalam dialog ini, keenam sendi dan lengan dalam notasi Denavit-Hartenberg dapat diset dimensi dan jangkauan putarnya. Selain itu, warna lengan dan sendi serta latar belakang dan grid lantai dapat pula diset dengan bebas. Konfigurasi sendi J4-J5-J6 dapat pula dipilih antara Roll Pitch Yaw dan Wrist Bend Turn. Gambar 8. Dialog pengaturan dimensi sendi dan lengan robot Selanjutnya setelah model robot terbentuk, gerakan robot dapat dilakukan menggunakan panel pengaturan sudut perputaran sendi (Gambar 6). Keenam sendi lengan robot dapat digerakkan secara manual dengan menekan tombol panah ke kanan atau kiri pada setiap sendi dalam panel tersebut. Tombol panah kanan menambah besar sudut sendi, sedangkan tombol panah ke kiri untuk mengurangi sudut sendi. Gerakan sudut sendi ini dibatasi oleh jangkauan putaran sendi yang diatur dalam dialog Link Parameter tadi. Selain itu, simulator ini juga dilengkapi dengan kemampuan untuk menggerakkan sendi secara otomatis dalam bentuk skenario gerakan. Skenario gerakan sendi ini diatur dalam kotak dialog Masukan untuk Route Manipulator yang diaktifkan dengan menekan tombol Input Route pada tampilan utama. Gambar 8 menunjukkan dialog untuk membuat skenario tersebut. Gambar 8. Dialog pengaturan skenario gerakan lengan robot Simulator Lengan Robot Enam Derajat Kebebasan Menggunakan OpenGL (Balza Achmad)
216 ISSN: 1693-6930 Dengan menggunakan skenario ini, gerakan beberapa lengan dapat dibuat secara seri ataupun secara simultan. Sebagai contoh, pada baris pertama skenario yang terlihat pada Gambar 8, sendi J1 dan sendi J4 digerakkan secara simultan, keduanya bergerak dengan sudut sebesar 30 yang dilakukan dalam 30 langkah. Jadi pada setiap langkahnya sendi J1 dan J4 akan bergerak sebesar 1. Selesai mengerjakan gerakan ini, baris berikutnya akan dieksekusi. Gripper dibuka atau ditutup pada akhir gerakan tergantung dari nilai isiannya, 0 untuk menutup dan 1 untuk membuka. Gerakan lengan robot dapt diulang dari awal dengan mengisi nilai Loop lebih dari 1. Setelah dibuat, skenario gerakan lengan robot tersebut dapat dijalankan dengan menekan tombol Run pada tampilan utama. Untuk menghentikan gerakan robot secara spontan, dapat dilakukan dengan menekan tombol Stop. Sedangkan tombol Reset digunakan untuk memindahkan posisi semua sudut sendi ke posisi awal. 5. SIMPULAN Berdasarkan simulasi dan analisis berbagai robot jenis robot yang telah dikembangkan, dapat diambil beberapa simpulan sebagai berikut: 1. Telah dapat dibangun sebuah simulator lengan robot dengan tipe articulated robot yang mempunyai 6 sendi putar dan 6 lengan, menggunakan bahasa C++ dan pustaka grafis OpenGL. 2. Model lengan robot diturunkan dengan notasi Denavit-Hartenberg. 3. Simulator ini memiliki 2 jenis konfigurasi sendi ke 4, 5, dan 6 yaitu: Roll Pitch Yaw dan Wrist Bend Turn. 4. Simulator ini dapat memvisualisasikan secara 3 dimensi dengan posisi dan sudut pandang yang dapat diatur secara bebas. 5. Gerakan lengan robot dapat dilakukan baik secara manual maupun secara otomatis dengan memberi masukan pada skenario gerakan. Kekurangan program simulasi yang dibuat pada penelitian ini, antara lain: 1. Walaupun bentuk dari manipulator yang disimulasikan dapat diubah-ubah, namun bentuknya masih dalam tipe articulated tidak bisa melakukan simulasi untuk manipulator tipe lain. 2. Kemampuan simulator masih seputar masalah kinematika, belum mencakup masalah dinamika. DAFT AR PUST AKA [1]. Henneseey C., Jiang A., Ko K., Scara Robot Simulator, Simon Fraser University, Canada, 2003. [2]. Bräunl T., Pollak R., Schützner J., RoboSim- A Simple 6-DOF Robot Manipulator Simulation System, University Western Australia, http://robotics.ee.uwa.edu.au/robosim/., 2003. [3]. Koivo A. J., Fundamental for Control of Robotic Manipulator, John Wiley & Sons Inc., New York., 1989 [4]. Craig J. J., Introduction to Robotic, Mechanic & Control, Addison-Wesley Publishing Company, Canada, 1986. [5]. Pinho M. S., Coelho A. A. A., Heitor A. O., Renato M., Shirmbeck F., CohenM., Cardoso F. H., Marlise S., Mazzorani A., Robot Programming and Simulation using Virtual Reality Techniques, PUCRS, 2004. [6]. Neider. J, Davis T., Woo M., OpenGL Programming Guide, Addison - Wesley Publishing Company, Canada, 1994. TELKOMNIKA Vol. 6, No. 3, Desember 2008 : 209-216