SISTEM PENGENDALI ROBOT LENGAN MENGGUNAKAN PEMROGRAMAN VISUAL BASIC Syarifah Hamidah [1], Seno D. Panjaitan [], Dedi Triyanto [3] Jurusan Sistem Komputer, Fak.MIPA Universitas Tanjungpura [1][3] Jurusan Teknik Elektro, Fak.Teknik Universitas Tanjungpura [] Jalan Jendral Ahmad Yani, Pontianak 7814 e-mail: midha_mei05@yahoo.com [1], senopanjaitan@gmail.com [], dedi3yanto@gmail.com [3] Abstrak Kesulitan yang dihadapi oleh mahasiswa untuk memahami konsep robot lengan pada saat ini adalah kurangnya pengetahuan mengenai robot lengan dan fasilitas pratikum robot lengan. Oleh karena itu, pada penelitian ini dirancang bangun sebuah sistem kendali robot lengan yang dapat digunakan secara interaktif. Dengan aplikasi ini, pengguna dapat dengan mudah mengendalikan robot lengan. Robot lengan yang digunakan memiliki 4 Degree Of Freedom (DOF). Masingmasing DOF digerakan oleh sebuah motor servo yang dikendalikan oleh mikrokontroler ATmega16. Dalam aplikasi pengendali robot lengan ini digunakan Graphical User Interface (GUI) Visual Basic 010 digunakan sebagai antarmuka antara pengguna dengan sistem kendali robot lengan. Pada antarmuka juga dilengkapi dengan perhitungan kinematika langsung menggunakan metode Denavit-Hartenberg (D-H) dan perhitungan invers kinematika menggunakan metode geometris dalam koordinat 3 dimensi. Hasil dari pengujian adalah berhasilnya menggerakan robot lengan menggunakan aplikasi sistem pengendali robot lengan ini sehingga robot lengan dapat digerakan dengan mudah. Kata Kunci: Robot Lengan, Visual Basic 010, Kinematika Langsung, Invers Kinematika, 4 DOF 1. PENDAHULUAN Pada saat ini, perkembangan teknologi sudah sangat pesat. Perkembangannya telah mencakup di segala bidang, terutama pada bidang teknologi komputer dan elektronika. Salah satu contoh perkembangan pada bidang komputer dan bidang elektronika adalah penggunaan robot lengan. Robot lengan yang digunakan pada penelitian ini memiliki 4 Degree of Freedom (DOF). Masing-masing DOF digerakan oleh sebuah motor servo yang dikendalikan oleh mikrokontroler ATmega16. Kesulitan yang dihadapi oleh mahasiswa untuk memahami konsep robot lengan yaitu karena kurangnya pengetahuan dan fasilitas pratikum robot lengan yang lebih interaktif. Maka dari pada itu, dibutuhkan sebuah sistem pengendali yang dapat bersifat user interface dan fleksibel. Sehingga dapat membantu dalam pengendalian robot lengan. Dengan perkembangan teknologi komputer saat ini, dapat membantu permasalahan tersebut yaitu menggunakan bahasa pemograman Visual Basic 010 sebagai antarmuka pada pengendalian robot lengan. Bahasa pemograman Visual Basic 010 merupakan bahasa pemograman yang mudah untuk digunakan terutama untuk aplikasi yang berjalan di atas sistem operasi windows.. TINJAUAN PUSTAKA.1 Kinematika Robot lengan.1.1 Kinematika Langsung Kinematika langsung digunakan untuk mendapatkan posisi dan orientasi dari end effector dengan memasukan beberapa nilai sudut tiap sendi robot lengan. Untuk mendapatkan persamaan kinematika langsung dari robot lengan digunakan metode Denavit-Hartenberg (D- H). Metode D-H adalah metode untuk menganalisa hubungan gerak rotasi dan gerak translasi antara lengan-lengan yang berhubungan dalam suatu manipulator. 1
Gambar 1 mengilustrasikan dua buah link yang terhubunga secara serial. Dalam hal ini, metode D-H menggunakan 4 buah parameter yaitu, α, d dan a. Untuk robot n-dof maka keempat parameter tersebut ditentukan hingga yang ke-n, dimana: adalah sudut putar pada sudut adalah sudut putar pada sumbu adalah translasi pada sumbu adalah translasi pada sumbu 1 A =( ) (3) A 3 =( ) (4) 3 A 4 =( ) (5) Dari hasil perkalian persamaan (), (3), (4) dan (5), dapat dihasilkan tranformasi homogen 0 A 4. 0 A 4 Merupakan rantai perkalian dari matriks transformasi 0 A 1 1. A. A 3 3. A 4 dan diekspresikan sebagai berikut: 0 A 4 * + [ ] 0 A 1. 1 A. A 3. 3 A 4 Sehingga didapat persamaan,, ( ( ) ( ( ) ( ( )) ( ) (7) Gambar 1. Sambungan Antar Link Dan Parameternya Untuk link dengan konfigurasi sendi putar, matrik transformasi A pada sendi ke-n adalah seperti yang terlihat pada persamaan (1) [ ] (1)[1] Tabel 1. Parameter Robot Lengan 4 DOF Sendi ke-i 1 0 90 0 0 0 3 0 0 4 0 0 Dari Tabel 1 dapat disubstitusikan ke dalam persamaan (1) 0 A 1 =( ) () ( ( ) ( ( ) ( ( )) ( ) (8) ( ( )) ( ( ) ( ( )) ( ) (9).1. Invers Kinematika Invers kinematika digunakan untuk mendapatkan nilai sudut tiap sendi robot lengan dengan memasukan posisi dan orientasi dari end effector. Pada invers kinemtika menggunakan metode geometris. [] Gambar adalah pergerakan untuk sudut, berdasarkan wilayah pergerakan sudut bergerak diwilayah horizontal atau berada pada sumbu x dan sumbu y. Gambar 3 adalah pergerakan untuk sudut, pada sumbu x, sumbu y, sumbu z.
p z O Py 1 P(Px,Py) Gambar.Invers Kinematika Robot Lengan untuk sudut O l 1 U T 3 l 3 p Px s V l 4 W x y Gambar 3.Invers Kinematika Robot Lengan sudut, Berdasarkan Gambar dan Gambar 3 maka dapat diperoleh nilai untuk sudut,, sebagai berikut :[] ( ) (10) ( ( ) ) ( ) ) (11) (1) (13) 3. METODOLOGI Penelitian sistem pengendali robot lengan menggunakan metode studi literatur dan metode eksperimen. Metode studi literatur adalah tahap pencarian data mengenai robot lengan beserta komponenkomponen pengendali robot lengan seperti mikrokontroler ATmega16, motor servo serta perangkat lunak seperti Visual Basic 010. Pada metode eksperimen adalah tahap untuk melakukan pengujian bagianbagian dan dilakukan serta pengambilan data hasil pengujian serta menghitung nilai kemungkinan error pada pergerakan robot lengan. Adapun prosedur penelitian yang dilakukan adalah studi literatur, perancangan perangkat keras, perancangan perangkat lunak, pengintegrasian perangkat keras dan perangkat lunak, pengujian sistem serta analisa hasil. 4. PERANCANGAN SISTEM Robot lengan dapat dikendalikan secara langsung oleh pengguna menggunakan komputer dan data yang dikirim oleh komputer menuju minimum sistem ATmega16 yang berfungsi untuk memproses dan mengolah data dari program untuk mengirimkan perintah untuk menggerakan motor servo. Motor servo berfungsi sebagai aktuator untuk menggerakan tiap sendi robot lengan. Jalur komunikasi serial digunakan penghubung antara minimum sistem ATmega16 dan komputer. USER (Komputer) Sistem Kontrol (Minimum System ATmega16) Gambar 4.Blok Diagram Sistem Pengendali Robot Lengan Motor Servo 1 (Sendi 1) Motor Servo (Sendi ) Motor Servo 3 (Sendi 3) Motor Servo 4 (Sendi 4) Motor Servo 5 (Gripper) 4.1 Perancangan Perangkat Keras 4.1.1 Perancangan Mekanis Robot Lengan Sendi Sendi 1 Sendi 3 Sendi 4 Gripper Gambar 5. Mekanis Robot Lengan 3
Pembuatan mekanik pada robot lengan ini menggunakan kayu berdiameter 0,6 cm dengan tinggi 8 cm. panjang lengan pertama adalah 17,5 cm, lengan kedua adalah 14,5 cm, dan lengan ketiga adalah 13 cm. gripper/penjepit berdiameter buka sebesar 8 cm dan diameter tutup sebesar 0,1 cm. motor servo pada tiap sendi menggunakan notor servo tipe Servo Towr MG945. Tabel merupakan tabel untuk batas sudut pada tiap sendi. Tabel. Spesifikasi Sudut Robot Lengan Sendi Perger Min. Max Range Ke- akan 1 Rotasi Rotasi 3 Rotasi 4 Rotasi Gripper 0,1cm 8cm 8cm Buka - Tutup 4.1. Konfigurasi Port 1. PortA (PA0-PA4) digunakan sebagai tempat mengeluarkan pulsa pada servo.. PortD (PD0 dan PD1) merupakan pin I/O yang digunakan sebagai pengiriman dan penerimaan data secara serial. 4.. Perancangan Perangkat Lunak Pada penelitian ini, dirancang sebuah aplikasi untuk mengendalikan robot lengan menggunakan perangkat lunak Visual Basic 010 yang berfungsi sebagai antarmuka. Pada form aplikasi sistem pengendali robot lengan terdapat beberapa textbox dan beberapa button yang memiliki fungsi, tampilan aplikasi sistem pengendali robot lengan dapat ditunjukan pada Gambar 6. Pada aplikasi sistem pengendali robot lengan, data diinput berupa sudut pada tiap sendi. Data ini akan dikirim berupa inkey ke mikrokontroler. Inkey yang dikirim berupa inkey angka dan inkey huruf. Inkey huruf berfungsi untuk mengaktifkan komunikasi serial. Inkey angka berfungsi sebagai penentu seberapa besar pulsa yang harus diberikan ke motor servo yang diaktifkan, sebelum dikirim ke mikrokontroler data akan mengalami pengabungan data. Kemudian data yang dikirim ke mikrokontroler akan mengalami proses parsing data. Parsing data adalah suatu cara memecahkan data yang berupa masukan dari keyboard. Gambar 7 adalah diagram program untuk pengendali robot lengan. Nomor Baudrate Tampilan Komunikasi Data Nilai Koordinat X,Y,Z Nilai sudut dari sendi 1-4 Button Kinematika Button Proses Gambar 6. Tampilan Aplikasi Sistem Pengendali Robot Lengan Nomor Port Button Connect Button DisConnect Ilustrasi Gambar Robot lengan 4 DOF Button Kirim Button OK Nilai Parsing 4
MULAI Input Data dari komputer Pengabungan data Komunikasi Serial Data dikirim ke mikrokontroler Data yang dimasukan berupa inkey huruf dan inkey angka. Inkey huruf yang digunakan adalah A. Apabila pada aplikasi visual basic mengirimkan inkey huruf A maka mikrokontroler akan mengirimkan Respon OK sebagai tanda bahwa aplikasi dan mikrokontroler telah terkoneksi MSComm1.Output = "A" & Chr(13) Ya Data yang dikirim berhasil? Tidak Diam Input Data Baru? Ya Gerakan Motor servo 1-5 sesuai dengan data Inkey Huruf A akan dikirim dan mengaktifkan komunikasi dengan mikrokontroler. Berikut listing program pada BascomAVR. Char = Inkey() If Char = "A" Then Print "Respon OK" Gosub Olaha Tidak SELESAI Gambar 7. Diagram Alir Pemrograman Pengendali Robot Lengan 5. PENGUJIAN DAN ANALISA HASIL 5.1 Pengujian Komunikasi Serial Pengujian komunikasi serial berfungsi sebagai pengujian pertama yang dilakukan yang menjadi indikator keberhasilan komunikasi antara komputer dan mikrokontroler ATmega16 telah terkoneksi dengan baik. Mulai Setting COM Button Connect (Port Open) Inkey Angka (S1, S, S3, S4) Proses (S1+S+S3+S4) Inkey A = Respon OK Ya Kirim Selesai Gambar 8. Diagram Alir Komunikasi Serial Pada Visual Basic 010 Tidak Gambar 9. Tampilan Hasil Pengujian Komunikasi Serial Pada Visual Basic 5.. Pengujian Parsing Data Setelah melakukan pengujian terhadap komunikasi serial, kemudian akan dilakukan pengujian parsing data. Pengujian ini dilakukan untuk mengetahui proses pemecahan data yang dikirim dari aplikasi Visual Basic ke mikrokontroler dan berapa besar pulsa untuk mengirim ke motor servo. Berikut listing program parsing data pada BascomAVR : 5
S4 = Pecah Mod 100 Z(4) = S4 + 50 Waitms 6 S3 = Pecah Mod 10000 X(1) = S3 - S4 Y(1) = X(1) / 100 Z(1) = 150 - Y(1) Waitms 6 S = Pecah Mod 1000000 X() = S - S3 Y() = X() / 10000 Z() = Y() + 50 Waitms 6 S1 = Pecah Mod 100000000 X(3) = S1 - S Y(3) = X(3) / 1000000 Z(3) = 150 - Y(3) Waitms 6 S1, S, S3, S4 merupakan data yang telah digabungkan dan data yang dikirim ke mikrokontroler dan Z(1), Z(), Z(3), Z(4) adalah jumlah pulsa yang akan dikirim ke mikrokontoler. Pulsa adalah sinya PWM (Pulse Width Modulation) yang dihasilkan oleo motor servo. S1, S, S3, S4 inilah yang akan dipecah di mikrokontroler dengan rumus sebagai berikut : S4 = Nilai Sudut Mod 100 S3 = Nilai Sudut Mod 10000 S = Nilai Sudut Mod 1000000 S1 = Nilai Sudut Mod 100000000 Tabel 3. Besar Pulsa Pada Tiap-Tiap Sendi Besar Sudut Besar Pulsa (Sinyal PWM) ( ) ( ) ( ) ( ) 150 50 150 50 140 60 140 60 130 130 70 10 10 80 110 110 90 100 100 90 110 90 110 80 10 80 10 70 130 70 130 60 140 60 140 50 150 50 150 5.3. Pengujian Pergerakan Robot Lengan Pengujian pergerakan robot lengan bertujuan untuk mengetahui apakah sudut yang dikirim sesuai dengan pergerakan robot lengan secara nyata. Untuk mempermudah pergerakan robot lengan, maka akan dilakukan perbandingan gambar robot lengan sebenarnya dan gambar robot lengan tampak samping pada koordinat X dan Y. A Gambar 10. Pergerakan Sudut Yang Diinginkan ( ) B Gambar 11. Pergerakan Sudut Yang Diinginkan ( ) C Gambar 1. Pergerakan Sudut Yang Diinginkan ( ) D 70 70 60 60 30 3 50 1 50 60 Gambar 13. Pergerakan Sudut Yang Diinginkan ( ) Dari Gambar 10 dan Gambar 11 dapat dilihat terdapat kesamaan pergerakanan robot lengan, sedangkan pada Gambar 1 dan Gambar 13 terdapat perbedaan gerak pada lengan ke-. Hal itu disebabkan oleh lengan ke- memiliki tanggungan beban yang lebih berat. Lengan ke- harus memikul beban dari lengan ke-3 dan gripper sehingga robot lengan pada gambar C dan D lebih cenderung lebih turun. 70 40 4 30 30 6
Uji Ke- 1 3 4 5 6 7 8 9 10 5.4. Pengujian Kesesuaian Perhitungan Dan Pergerakan Robot Lengan Pengujian kesesuaian perhitungan dan pergerakan robot lengan berfungsi untuk mengetahui nilai error pada pergerakan robot lengan. Pada penelitian ini dilakukan 10 (sepuluh) kali percobaan untuk masingmasing percobaan dihitung sebanyak 5 (lima) kali dengan perhitungan manual menggunakan pengaris dan busur derajat dapat dilihat pada Tabel 4 dan Tabel 5. Presentasi error masing-masing sumbu koordinat dan nilai sudut tiap lengan dapat dihitung menggunakan persamaan (14) sebagai berikut ( ) (14) Keterangan: = persentase Error koordinat ( ) = jarak perbedaan nilai koordinat antara robot lengan sebenarnya dan perhitungan = panjang pergerakan robot lengan pada perhitungan.[6] Tabel 4.Data Hasil Pengujian Untuk Sudut Tiap Lengan Sudut Yang Diset Sudut Hasil Pergerakan Robot Lengan (Nilai ratarata lima kali percobaan) Tabel 5. data Hasil Pengujian Untuk Koordinat End Effector Sudut Yang Diset Koordinat Hasil Perhitungan (cm) Koordinat Hasil Pergerakan Robot Lengan (Nilai ratarata lima kali percobaan) (cm) 13 3 10 3 0 7 9 17 6 30 4 14 3 16 4 5 1 16 8 3 14 35 0 8 37.5 0 7 35-6 -1 38-7.5-1 33-1 3 30-15 3 30-17 6 7-0 5 5-1 9 3-7 7 0 17 7.5 0 0 Berdasarkan persamaan (14) maka dapat nilai presentase error untuk koordinat end effector pada Tabel 6 dan Nilai presentase error tiap sudut dapat dilihat pada Tabel7. Tabel 6.Nilai Persentase Error Koordinat Masing-Masing Sumbu Uji Ke- Selisih (cm) Nilai Error (%) 1 3 0 0 3.07 0 0 3 1 1 15 14.8 3.4 3 1 8.3 14. 4.3 4 3 1 9.5 1.5 5.5 0 1 7.14 0 1.5 6 3 1.5 0 8.57 5 0 7 3 3 3 9.09 5 0 8 3 3 1 10 17.6 16.6 9 1 8 4.76. 10 0.5 0 3 1.85 0 17.64 Rata-Rata Nilai Error 10.30 11.03 8.91 Keterangan: = Jarak perbedaan nilai koordinat X antara robot lengan sebenarnya dan perhitungan menggunakan metode D- H. = Jarak perbedaan nilai koordinat Y antara robot lengan sebenarnya dan perhitungan menggunakan metode D- H. = Jarak perbedaan nilai koordinat Z antara robot lengan sebenarnya dan 7
perhitungan menggunakan metode D- H. = Persentase Error pada koordinat X = Persentase Error pada koordinat Y = Persentase Error pada koordinat Z Tabel 7. Nilai Persentase Error Pada Tiap Sudut Lengan Selisih (Derajat) Nilai Error (%) 0 1.6 0 0 0 1.77 0 0 0 0.6 0 0 0 0.75 0 0 0 1 0 0 0 1.4 0 0 0 0.8 0 0 0 1.33 0 0 0 1.8 0 0 4 4.5 0 0 1.8 1 0 0 4.5 0 0 1 0 0 3.3 0 0 1 1.8 0 0 1.66 3.33 0 0 0. 1. 0 0 0.8 1.5 0 0 0 1 0 0 0 1.1 0 Rata-Rata Nilai Error 0 1.77 1.57 0 Keterangan: = Jarak perbedaan nilai antara robot lengan sebenarnya dan perhitungan menggunakan metode geometris. = Jarak perbedaan nilai antara robot lengan sebenarnya dan perhitungan menggunakan metode geometris. = Jarak perbedaan nilai antara robot lengan sebenarnya dan perhitungan menggunakan metode geometris. = Jarak perbedaan nilai antara robot lengan sebenarnya dan perhitungan menggunakan metode geometris. = Persentase Error pada = Persentase Error pada = Persentase Error pada = Persentase Error pada Hasil pengujian didapat nilai error pada koordinat end effector dan juga nilai error pada tiap sudut lengan. Rata-rata nilai error pada titik koordinat X sebesar 10,30 %, Y sebesar 11,03% dan Z sebesar 8,91%. Nilai error rata-rata titik sudut sebesar 0 %, sudut sebesar 1,77 %, sudut sebesar 1,57% dan sebesar 0% disebabkan oleh pembuatan kerangka robot lengan yang kurang presisi dan peletakan motor servo yang tidak tepat yang dapat membuat beban pada lengan dan 3 menjadi lebih berat. 6. KESIMPULAN Aplikasi sistem pengendali robot lengan 4 DOF bekerja dengan baik dan aplikasi sistem pengendali ini juga dapat memudahkan pengguna untuk menggerakan dan memindahkan objek dengan mudah, sehingga aplikasi ini bersifat user friendly dan lebih fleksibel. Pada aplikasi terdapat button untuk menghitung pergerakan robot lengan baik secara kinematika langsung dan invers kinematika. Kinematika langsung menggunakan metode D-H dalam mencari titik end effector dan invers kinematika menggunakan geometris dalam mencari sudut pada tiap lengan. Dilakukan pengujian terdapat nilai error pada ordinat X sebesar 10,30%, Y sebesar 11,03%, Z sebesar 8,91%, sebesar 0% sebesar 1,77%, sebesar 1,57%, sebesar 0%. Nilai error dapat disebabkan oleh pembuatan kerangka robot lengan yang kurang presisi dan peletakan motor servo yang tidak tepat yang dapat membuat beban pada tiap lengan menjadi tidak rata. Semakin berat beban yang diberikan kepada tiap servo maka semakin tinggi nilai error pada tiap koordinat dan sudut pada tiap lengan. 7. SARAN a. Sistem pengendali robot lengan ini dapat ditambah beberapa sensor dan menganalisa perubahan dari gripper. b. Untuk penelitian selanjutnya mengenai robot lengan sebaiknya gunakan model servo dan desain yang lebih ramping lagi untuk mengurangi beban keseluruhan robot lengan. c. Dalam penelitian ini robot hanya dapat melakukan pergerakan secara serial dapat dikembangkan sehingga robot lengan dapat bergerak secara paralel. 8. DAFTAR PUSTAKA [1] Pitowarno, E. (006). Robotika Disain, Kontrol Dan Kecerdasan Buatan. yogyakarta: Andi. [] Philips, Arthur, & Erduado. (004). Simulasi Kinematika dari Integrasi Robot Mitsubis hi RV-M1. 38-4. 8
[3] Budiharto, W. (010). Robotika Teori dan Implementasi. Yogyakarta: Andi. [4] Hadi, M. S. (008). MENGENAL MIKROKONTROLER ATMega16. Malang: ilmu komputer. [5] Kurniawan, E. (011). Cepat Mahir Visual Basic 010. Yogyakarta: Andi. [6] Budiono, A., Sulistijono, I. A., & Setiawan, M. A. (011). Robot Lengan dengan Pengendali Lengan Manusia. 9