• Tidak ada hasil yang ditemukan

IMMPLEMENTASI PERSAMAAN FORWARD KINEMATIC KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE ROBOT TUGAS AKHIR. Oleh : RIAN SYAFI I NIM :

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMMPLEMENTASI PERSAMAAN FORWARD KINEMATIC KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE ROBOT TUGAS AKHIR. Oleh : RIAN SYAFI I NIM :"

Copied!
52
0
0

Teks penuh

(1)

IMMPLEMENTASI PERSAMAAN FORWARD

KINEMATIC KIWI DRIVE UNTUK

MENGETAHUI POSISI MOBILE ROBOT

TUGAS AKHIR

Oleh :

RIAN SYAFI’I

NIM : 4211323022

PROGRAM STUDI TEKNIK MEKATRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BATAM

2015

(2)

IMPLEMENTASI PERSAMAAAN FORWARD KINEMATIC

KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE

ROBOT

TUGAS AKHIR

Oleh :

RIAN SYAFI’I

NIM : 4211323022

Disusun untuk memenuhi salah satu syarat kelulusan Program Diploma IV Program Studi Tekink Mekatronika

Politeknik Negeri Batam

PROGRAM STUDI TEKNIK MEKATRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BATAM

2015

IMPLEMENTASI PERSAMAAAN FORWARD KINEMATIC

KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE

ROBOT

TUGAS AKHIR

Oleh :

RIAN SYAFI’I

NIM : 4211323022

Disusun untuk memenuhi salah satu syarat kelulusan Program Diploma IV Program Studi Tekink Mekatronika

Politeknik Negeri Batam

PROGRAM STUDI TEKNIK MEKATRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BATAM

2015

IMPLEMENTASI PERSAMAAAN FORWARD KINEMATIC

KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE

ROBOT

TUGAS AKHIR

Oleh :

RIAN SYAFI’I

NIM : 4211323022

Disusun untuk memenuhi salah satu syarat kelulusan Program Diploma IV Program Studi Tekink Mekatronika

Politeknik Negeri Batam

PROGRAM STUDI TEKNIK MEKATRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BATAM

2015

(3)

PERNYATAAN KEASLIAN TUGAS AKHIR

Saya yang bertanda tangan dibawah ini menyatakan bahwa isi sebagian maupun keseluruhan Tugas Akhir saya yang berjudul: “IMPLEMENTASI PERSAMAAN FORWARD KINEMATIC KIWI DRIVE UNTUK MENGETAHUI POSISI MOBILE ROBOT” adalah hasil karya sendiri, diselesaikan tanpa menggunakan bahan-bahan yang tidak diijinkan dan bukan merupakan karya pihak lain yang saya akui sebagai karya sendiri.

Semua referensi yang dikutip atau dirujuk telah ditulis secara lengkap pada daftar pustaka. Apabila ternyata pernyataan saya ini tidak benar, saya bersedia menerima sanksi sesuai peraturan yang berlaku.

Batam, 19 Januari 2015

Rian Syafi’i

(4)

LEMBAR PENGESAHAN TUGAS AKHIR

Tugas Akhir disusun untuk memenuhi salah satu syarat memperoleh gelar Sarjana Sains Terapan (S.ST.)

di

Politeknik Negeri Batam Oleh

Rian Syafi’i 4211323022

Tanggal Sidang: 19 Januari 2015

Disetujui Oleh: Dosen Penguji :

1. Arif Febriansyah Juwito, ST., M.Eng. NIK. 114127 Dosen Pembimbing : 1. Hendawan Soebhakti, ST., MT. NIK. 104031 2. Dessy Oktani, ST. NIK. 110075 2. Ridwan, S.ST. NIK. 113113

(5)

IMPLEMENTASI PERSAMAAN FORWARD KINEMATIC KIWI

DRIVE UNTUK MENGETAHUI POSISI MOBILE ROBOT

Nama mahasiswa : RianSyafi’i

NIM : 4211323022

Pembimbing I : Hendawan Soebhakti, ST., MT. Pembimbing II : Ridwan, S.ST.

Email : [email protected]

ABSTRAK

Agar dapat megetahui posisi, mobile robot harus memiliki sistem pergerakan yang baik sehingga dapat dipantau setiap perubahan posisi robot. Robot ini dapat bergerak ke segala arah karena menggukanan omnidirectional wheel dengan kontrol invers kinematic. Dengan sistem kontrol navigasi tersebut, terdapat kekurangan dengan pergeseran yang tidak tepat keposisi yang diinginkan agar mendapatkan posisi dengan baik. Untuk mengatasi permasalahan tersebut, maka penelitian ini menggunakan algoritma untuk mengetahui posisi, diantaranya adalah dengan menggunakan persamaan forward kinematic untuk pengolahan data dari masing-masing encoder pada roda omniwheel. Roda omniwheel dipasang membentuk segitiga dan terpasang encoder pada setiap rodanya. Pengendalian data dari encoder ini sangat diperlukan untuk posisi pergerakan dari mobile robot. Hasil dari penelitian ini adalah dapat mengukur keakurasian dari pergerakan mobile robot dengan metode forward kinematic dan membandingkan posisi aktual dengan pengukuran serta dapat menggambarkan dalam bentuk visualisasi setiap perubahan posisi robot.

(6)

IMPLEMENTATION OF FORWARD KINEMATIC KIWI DRIVE

EQUATION TO GET MOBILE ROBOT POSITION

Student Name :Rian Syafi’i

NIM : 4211323022

Supervisor I : Hendawan Soebhakti, ST., MT. Supervisor II : Ridwan, S.ST.

Email : [email protected]

ABSTRACT

In order to know position, the mobile robot should have good movement system that can monitor any changes of the position of the robot. This robot can move in any direction because it uses omnidirectional wheel with inverse kinematic control. With the navigation control system, there are shortcomings with the improper shifting positions of the desired in order to get a good position. To overcome these problems, this research will use an algorithm to determine the position, such as by using the forward kinematic equations for processing data from each encoder on the Omni wheel. Omni wheel mounted to form a triangle and an encoder mounted on each wheel. Control data from this encoder is necessary to movement the position of the mobile robot. The result of research can measure the accuracy of the movement of a mobile robot with kinematic forward method and compare actual position with measurement as well as can describe in visualization of any changes position of the robot.

(7)

KATA PENGANTAR

Puji dan syukur penulis haturkan kepada Allah S.W.T, karena berkat rahmat-Nya penulis dapat menyelesaikan Laporan Tugas Akhir dengan judul Implementasi Persamaaan Forward Kinematic Kiwi Drive Untuk Mengetahui Posisi Mobile Robot. Tak lupa shalawat beriring salam, penulis sampaikan kepada junjungan alam Nabi Muhammad S.A.W, karena berkat beliaulah kita dapat merasakan zaman saat ini yang penuh dengan ilmu pengetahuan dan teknologi

Penulisan Laporan Tugas Akhir ini dimaksudkan untuk melengkapi persyaratan kelulusan tingkat Diploma IV Program Studi Teknik Mekatronika Politeknik Negeri Batam. Untuk memenuhi persyaratan tersebut maka penulis mencoba untuk mengaplikasikan sebuah persamaan forward kinematic yang diterapkan pada kiwi drive mobile robot untuk mengetahui posisi robot.

Penulisan Laporan Tugas Akhir ini, dapat tersusun dan selesai dengan baik tak terlepas dari bantuan dan dukungan dari semua pihak yang ikut dalam membimbing penulis untuk menyelesaikan Laporan Tugas Akhir ini. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada:

1. Allah S.W.T, atas anugerah yang telah diberikan kepada penulis. 2. Kedua orang tua dan keluarga atas jasa, doa, bimbingan dan nasehat. 3. Bapak Dr. Priyono Eko Sanyoto, Selaku Direktur Politeknik Negeri Batam. 4. Bapak Sumantri Kurniawan Risandriya, ST,.MT. Selaku Ka. Jurusan Teknik

Elektro Politeknik Negeri Batam.

5. Ibu Dessy Oktani, ST. Selaku Ka. Prodi Teknik Mekatronika Politeknik Negeri Batam.

6. Bapak Hendawan Soebhakti, ST,.MT. Selaku dosen pembimbing Tugas Akhir serta dosen pengampu mata kuliah Tugas Akhir.

7. Bapak Ridwan, ST. Selaku dosen pembimbing Tugas Akhir 8. Seluruh Dosen-dosen Teknik Elektro Politeknik Negeri Batam.

9. Seluruh Tim Robot Politeknik Batam yang membantu dalam penelitian.

10. Seluruh Alumni Tim Robot Politeknik Batam yang ikut membimbing dalam proses pembuatan dan Tugas Akhir.

11. Seluruh teman-teman yang telah membantu atas terselesaikannya buku laporan ini.

(8)

Semoga amal dan ibadah mereka yang telah diberikan kepada penulis diterima di sisi Allah S.W.T. penulis menyadari sepenuhnya, bahwa dalam penulisan Laporan Tugas Akhir ini masih banyak kesalahan dan kekurangan karena keterbatasan ilmu yang dimiliki oleh penulis, untuk itu kritik dan saran dari pembaca sangat diperlukan untuk penulis.

Batam, 16 Januari 2015

(9)

DAFTAR ISI

PERNYATAAN KEASLIAN TUGAS AKHIR ... i

LEMBAR PENGESAHAN TUGAS AKHIR ... ii

ABSTRAK ...iii

KATA PENGANTAR... v

DAFTAR ISI ... vii

DAFTAR GAMBAR... ix

DAFTAR TABEL ... x

BAB I PENDAHULUAN... 1

1.1 Latar Belakang Masalah...1

1.2 Perumusan Masalah ...1

1.3 Batasan Masalah...1

1.4 Tujuan dan Manfaat ...1

BAB II DASAR TEORI... 3

2.1 Rotary Encoder[1]...3

2.2 Forward Kinematic Kiwi Drive Mobile Robot[2]...4

2.3 Modul Frekuensi Radio[3] ...5

2.4 Visual Komputer Dengan C# (C Sharp) ...6

BAB III PERANCANGAN SISTEM... 8

3.1 Rancangan Penelitian ...8

3.2 Rancangan Perangkat Keras...9

3.2.1 Perancangan Mekanik...9

3.2.2 Pembacaan Sudut Pergerakan Rotary Encoder ...9

3.3 Komunikasi Visualisasi Pergerakan Robot ...9

3.4 Forward Kinematik Kiwi Drive Pada Robot...10

(10)

3.7 Cara Analisa Data ...12

BAB IV HASIL DAN ANALISA ... 13

4.1 Hasil Pengujian ...13

4.1.1 Pengujian Data X ...13

4.1.2 Pengujian Data Y ...16

4.1.3 Pengujian Data Arah Hadap ...18

4.1.4 Pengujian Data XY ...20

4.1.5 Pengujian Data Pada Visual...22

4.2 Analisa... 23

BAB V PENUTUP ... 26

5.1 Kesimpulan ...26

5.2 Saran...26

(11)

DAFTAR GAMBAR

Gambar 2.1 Susunan Piringan untuk Incremental Encoder ... 3

Gambar 2.2 Konfigurasi Roda Kiwi Drive Pada Mobile Robot ... 4

Gambar 2.3 YS-1020UB RF Data Transceiver... 5

Gambar 2.4 Tampilan Dasar OOP Menggunakan Bahasa C# ... 6

Gambar 3.1 Tahapan Penelitian... 8

Gambar 3.2 Diagram Blok Robot... 9

Gambar 3.3 Desain Mekanik ... 9

Gambar 3.4 Perancangan Desain Visual Pada Komputer... 10

Gambar 3.6 Skenario Lintasan ... 11

Gambar 4.1 Tampilan Garis yang Dibentuk pada Visual... 22

(12)

DAFTAR TABEL

Tabel 2.1 Konfigurasi RF YS-1020UB ... 5

Tabel 4.1 Data pada Sumbu X... 13

Tabel 4.2 Data pada Sumbu Minus X ... 15

Tabel 4.3 Data pada Sumbu Y... 16

Tabel 4.4 Data pada Sumbu Minus Y ... 17

Tabel 4.5 Data pada Arah Hadap (Theta)... 18

Tabel 4.6 Data pada Arah Hadap Minus (Theta)... 19

Tabel 4.7 Data pada Sumbu XY... 20

(13)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Dalam perkembanagan teknologi robot dapat membantu manusia salah satunya adalah mobile robot, robot ini mampu bergerak bebas dengan menggunakan roda. Untuk mengetahui arah atau perubahan posisi mobile dapat menggunakan metode forward kinematic.

Banyak penelitian yang telah dilakuakan untuk system control pengendalian posisi mobile robot. Salah satu metode yang dikembangkan adalah desain dan control dari mobile robot omnidirectioanal[2]. Hasil penelitian menyebutkan bahwa drift dan selip memberi batasan pada kemampuan robot untuk memperkirakan lokalisasi dalam pemetaannya

Untuk mengatasi permasalahan tersebut, maka dalam penelitian ini akan menggunakan algoritma untuk mengetahui posisi, diantaranya adalah dengan menggunakan persamaan forward kinematic untuk pengolahan data dari masing-masing encoder. Dengan roda omniwheel yang dipasang membentuk segitiga dan terpasang encoder pada setiap rodanya. Pengendalian data dari encoder ini sangat diperlukan untuk posisi pergerakan dari mobile robot.

1.2 Perumusan Masalah

Permasalahan dalam penelitian ini dapat dirumuskan sebagai berikut :

1. Bagaimana cara menampilkan visual mobile robot secara aktual dengan mengimplementasikan persamaan forward kinematic pada kiwi drive ?

2. Bagaimana cara mengukur akurasi posisi mobile robot berdasarkan persamaaan forward kinematic?

1.3 Batasan Masalah

Pada penelitian ini permasalahan yang dibahas dibatasi dalam hal sebagai berikut : 1. Lokasi pengujian system mobile robot dilakukan pada area lapangan bidang datar 2. Perubahan dan berat beban pada mobile robot tidak dibahas pada penelitian ini 1.4 Tujuan dan Manfaat

Tujuan dari penelitian ini adalah :

1. Menampilkan posisi visual mobile robot sesuai dengan posisi aktual berdasarkan output persamaan forward kinematic

(14)

2. Mengukur akurasi posisi mobile robot dengan membandingkan posisi aktual dan pengukuran.

Adapun manfaat dari penelitian ini adalah membantu mengembangkan sistem pergerakan mobile robot yang beroperasi pada lapangan KRAI (Kontes Robot Abu-Robocon Indonesia) dalam pembacaan posisi yang telah ditentukan

(15)

BAB II

DASAR TEORI

Permasalahan pembacaan posisi mobile robot pada suatu lapangan yang memanfaatkan pembacaan data dari sensor-sensor yang dituangkan dalam sebuah sistem atau program yang mampu menghasilkan suatu pembacaan pergerakan mobile robot untuk mencapai ke posisi tujuan dengan benar. Berikut ini akan dibahas tentang beberapa hal yang berkaitan dengan permasalahan.

2.1 Rotary Encoder[1]

Rotary Encoder adalah perangkat elektromekanik yang dapat memonitor gerakan dan posisi. Rotary encoder umumnya menggunakan sensor optik untuk menghasilkan serial pulsa yang dapat diartikan menjadi gerakan, posisi dan arah. Sehingga posisi sudut suatu poros benda berputar dapat diolah menjadi informasi berupa kode digital oleh rotary encoder untuk diteruskan oleh rangkaian kendali.

Incremental encoder terdiri dari double track atau single track dan dua sensor yang disebut channel A dan B (Gambar 2.1). Ketika poros berputar, deretan pulsa akan muncul di masing-masing channel pada frekuensi yang proporsional dengan kecepatan putar sedangkan hubungan fasa antara channel A dan B menghasilkan arah putaran.

Dengan menghitung jumlah pulsa yang terjadi terhadap resolusi piringan maka putaran dapat diukur. Untuk mengetahui arah putaran, dengan mengetahui channel mana yang leading terhadap channel satunya dapat kita tentukan arah putaran yang terjadi karena kedua channel tersebut akan selalu berbeda fasa seperempat putaran (quadrature signal). Seringkali terdapat output channel ketiga, disebut INDEX, yang menghasilkan satu pulsa per putaran berguna untuk menghitung jumlah putaran yang terjadi.

(16)

2.2 Forward Kinematic Kiwi Drive Mobile Robot[2]

Mobile robot dengan roda kiwi drive menggunakan 3 buah roda omni yang dirancang dengan konfigurasi seperti gambar 2.2 yang menunjukan posisi pemasangan tiga buah omniwheel yang simetris dan terdapat dua sumbu yaitu sumbu XY sebagai sumbu global dan XGYG sebagai sumbu lokal. Posisi omniwheel yang dipasang secara simetris

menjadikan pemusatan massa terletak pada titik tengah robot. Posisi a1( ) = 180o, a2 ( ) = 300o, a3 ( ) = 60opada sumbu lokal.

ø2. ø1. ø.3 θ θ. y. x. xL yL L xG yG

Gambar 2.2 Konfigurasi Roda Kiwi Drive Pada Mobile Robot

Untuk mendapatkan pergerakan yang diinginkan dapat dihitung menggukan persamaan matrix jacobian, dengan perhitungan pergerakan forward:

̇ ̇ ̇

=

[ ] √[ ] [ ] [ ] [ ] [ ] √ [ ] √ [ ] [ ] [ ] √

̇ ̇ ̇ (2.1)

̇

= Kecepatan pada sumbu x (cm per detik)

̇

= Kecepatan pada sumbu y (cm per detik)

̇

= Kecepatan sudut robot (derajat per detik) R = Radius roda robot (cm)

L = Jarak centre robot ke centre roda (cm)

(17)

2.3 Modul Frekuensi Radio[3]

Komunikasi data antara PC dengan Mobile Robot menggunakan transceiver jenis YS 1020UB.

Gambar 2.3 YS-1020UB RF Data Transceiver Spesifikasi :

Daya RF :≤ 50mW/17dBm

Arus saat menerima : < 25mA Arus saat mengirim : < 55 mA

Jangkauan : ≤ 0.8 km (@9600bps, saat antenna 2m diatas permukan tanah pada area terbuka : dan ≤ 1.2 km (@1200bps, diatas permukan tanah pada area terbuka

Pada transceiver jenis ini komunikasinya half duplex. Half duplex merupakan sebuah mode komunikasi dimana data dapat ditransmisikan atau diterima secara dua arah tapi tidak dapat secara bersama-sama. Pengiriman data dalam half duplex bisa berlangsung dua arah, akan tetapi apabila penerima ingin mengirimkan data maka harus menunggu pengirim untuk menyelesaikan pengiriman data (tidak bersamaan). Sehingga dalam pemanfaatannya diperlukan pengaturan komunikasi yang baik agar data tidak mengalami collision (tabrakan). Antarmuka radio ini terdapat dua mode yaitu menggunakan mode serial data TTL dan serial data RS232. Sehingga apabila menggunakan mode serial 232 untuk komunikasi antara modem dengan mikrokontroler diperlukan converter TTL to 232. Berikut tabel konfigurasi transceiver YS-1020UB.

Tabel 2.1 Konfigurasi RF YS-1020UB

Pin Nama pin Deskripsi Level Koneksi Dengan Terminal

Remands

1 GND Grounding untuk catu daya Ground

2 VCC Catu daya DC 3, 3-5, 5V

3 RXD TTL Serial data receiving end TTL TxD 4 TXD TTL Serial data transmitting end TTL RxD 5 DGND Digital Grounding

6 A(TXD) A of RS-485 or TXD of RS-232 A(RxD) 7 B(RXD) B of RS-485 or RXD of RS-232 B(TxD)

(18)

2.4 Visual Komputer Dengan C# (C Sharp)[4]

Visual komputer tidak terlepas dari OOP (Object Oriented Programing). OOP merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi didalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Pemograman C# adalah salah satu bahasa pemograman dari OOP.

Pemograman C# adalah salah satu bahasa pemrograman tingkat tinggi yang mendekati bahasa manusia. Kemunculan bahasa C# ini sebagai jawaban untuk menyederhanakan bahasa pemrograman pada platform .NET yang diluncurkan tahun 2002. Bahasa C# secara teknis mengadopsi sintak bahasa C/C++ namun kita tidak dipersulit dengan memory management. Konsistensi API (Application programing Interface) membuat bahasa C# menjadi pilihan dalam membuat kode program diatas platform windows. Bahasa C# mendukung object-oriented dan juga dynamics programming. Ini menambah daftar kemudahan untuk belajar bahasa C#.

(19)

Gambar 2.4 adalah objek visual dasar yang dihasilkan OOP dengan menggunakan software Microsoft Visual Studio 2012 yang terdiri dari sebuah form dengan template windows.

(20)

BAB III

PERANCANGAN SISTEM

3.1 Rancangan Penelitian

Penelitian ini akan dilakukan desain eksperimental untuk pengujian sistem pengolahan data berdasarkan pembacaan posisi dengan tahapan penelitian sebagai berikut : 1. Pembuatan mekanik robot.

2. Pembuatan perangkat lunak 3. Pengujian pembacaan encoder. 4. Pengujian pembacaan posisi robot 5. Pengamatan hasil pengujian. 6. Analisa data statistik.

7. Penulisan paper dan Tugas Akhir.

Tahapan penelitian ini ditunjukkan dalam gambar 3.1 :

(21)

3.2 Rancangan Perangkat Keras

Pada penelitian ini akan dibuat robot dengan diagram blok seperti pada gambar 3.2.

Gambar 3.2 Diagram Blok Robot 3.2.1 Perancangan Mekanik

Desain robot menggunakan tiga roda yang berbentuk segitiga sama sisi. Yang telihat pada gambar 3.3.

Gambar 3.3 Desain Mekanik 3.2.2 Pembacaan Sudut Pergerakan Rotary Encoder

Pergerakan robot bergantung pada pembacaan sudut rotary encoder yang dipasang pada roda dengan mekanik seperti gambar 3.3. Rotary encoder relatif (incremental encoder) tujuannya untuk mendapatkan nilai kecepatan radial pada roda. Dengan nilai tersebut dan pemasangannya pada robot ini akan diketahui arah pergerakan robot yang dibentuk dari kecepatan sudut tiap roda.

3.3 Komunikasi Visualisasi Pergerakan Robot

Pemantauan pergerakan robot digunakan untuk mengetahui arah gerak robot. Pergerakan robot ini akan menampilkan jalur dan arah pada visual antarmuka yang telah dilalui oleh robot. Komunikasi yang digunakan adalah komunikasi serial dengan radio frekuensi sebagai perantaranya. setiap data rotary encoder akan dikirim ke PC dan diterjemahkan menjadi garis yang menunjukan jalur yang telah dilewati oleh robot dengan desain form seperti gambar 3.4.

(22)

Gambar 3.4 Perancangan Desain Visual Pada Komputer. 3.4 Forward Kinematik Kiwi Drive Pada Robot

Gambar 3.5 Skema Pergerakan Forward Kinematic Kiwi Drive = + ʃ ̇

= + ʃ ̇ (3.1)

= + ʃ

̇

=Jarak posisi pada sumbu X (cm) =Jarak posisi pada sumbu Y (cm)

=Posisi sudut robot (derajat)

̇ =Kecepatan pada sumbu x (cm per detik) ̇ =Kecepatan pada sumbu y (cm per detik)

̇

=Kecepatan sudut robot (derajat per detik)

Masukan dari forward kinematic berupa kecepatan diubah menjadi percepatan kemudian di integralkan dengan waktu untuk mendapatkan posisi dari pergerakan robot

(23)

A

.

B C

D

3 M

3 M

dalam bentuk arah gerak. Setelah mendapatkan data posisi kemudian data tersebut dikirim ke PC untuk diproses dalam bentuk visualisasi gerak robot.

3.5 Instrumentasi Penelitian

Untuk menguji sistem forward kinematic kiwi drive dilakukan skenario pengujian sebagai berikut:

Gambar 3.6 Skenario Lintasan

Skenario yang dilakukan adalah meletakan robot pada posisi A kemudian robot berjalan pada lintasan sesuai dengan skenario. Saat robot bejalan pada lintasannya robot akan mengirimkan data ke komputer via serial. Kemudian, komputer akan menggambarkan jalur yang dilalaui oleh robot. Untuk menguji ketepatan antara gambar visual dan jalur yang dilewati oleh robot. Yaitu dengan membandingkan jalur yang dilewati oleh robot yang ditandai oleh spidol untuk menggambar lintasan robot dengan visual yang telah didesain.

3.6 Prosedur Pengambilan Data

Pengambilan data percobaan dilakukan dengan beberapa tahap: 1. Pengujian akurasi pembacaan encoder

Pengujian akurasi pembacaan encoder dilakukan terhadap pergerakan robot yang dinamis. Encoder harus menghasilkan data yang valid dalam pembacaan perubahan gerak robot.

2. Pengujian tingkat keberhasilan pergerakan

Pengujian terhadap pergerakan robot dilakukan dengan memberikan instruksi berupa pergerakan robot. Robot harus dapat berjalan sesuai dengan instruksi yang diberikan. Setiap pergerakan robot dikirim ke PC dan ditampilkan dalam bentuk visualisasi

A= (x,y,ψ) =(0,0,0)

B = (x,y,ψ) = (50,50,0)

C= (x,y,ψ) =(150,50,0)

(24)

3.7 Cara Analisa Data

1. Akurasi data encoder dengan persamaan forward kinematic

Akurasi pembacaan data encoder dengan persamaan forward kinematic diamati menggunakan persamaan 3.1 untuk melihat berapa kali keberhasilan encoder membaca data.

2. Akurasi keberhasilan pergerakan

Akurasi atau arah pergerakan robot menuju tempat yang ditentukan dapat dilihat tinggkat keberhasilannya dengan persamaan 3.2

(25)

BAB IV

HASIL DAN ANALISA

Dari hasil pengukuran dan pengujian pada mobile robot didapat data posisi terhadap sumbu X, sumbu Y, sumbu XY dan posisi arah hadap mobile robot. Berikut hasil pengujian yang telah dilakukan.

4.1 Hasil Pengujian 4.1.1 Pengujian Data X

Tabel 4.1 Data pada Sumbu X

X

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

10 10.08 10.04 10.02 10.08 10.05 10.05 0.54 20 20.09 20.07 20.09 20.09 20.08 20.08 0.42 30 30.21 30.18 30.25 30.14 30.21 30.20 0.66 40 40.05 38.93 40.05 38,93 40.04 39.77 0.58 50 49.81 49.9 49.96 49.88 49.98 49.91 0.19 60 60.05 60.04 60.11 60.07 59,98 60.07 0.11 70 70.25 70.31 70.27 70.34 70.2 70.27 0.39 80 79.55 79.97 79.55 79.76 79.97 79.76 0.30 90 89.74 90 89.66 89.76 89.97 89.83 0.19 100 100.02 100.07 100 100.02 100.11 100.04 0.04 110 109.62 109.52 109.64 109.7 109.58 109.61 0.35 120 119.82 119.91 119.8 119.86 119.81 119.84 0.13 130 129.73 129.75 129.81 129.75 129.77 129.76 0.18 140 139.5 139.44 139.62 139.55 139 139.42 0.41 150 149.78 150 149.81 150.02 149.8 149.88 0.08 160 159.67 159.62 159.71 159.98 159.91 159.78 0.14 170 169.81 169.51 169.8 169.72 169.77 169.72 0.16 180 179.62 179.57 179.59 179.65 179.7 179.63 0.21 190 189.78 189.79 189.8 189.87 189.79 189.81 0.10 200 199.66 199.65 199.64 199.5 199.73 199.64 0.18

Tabel 4.1 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai jarak 200 sentimeter terhadap sumbu X. Dari hasil data pengujian

(26)
(27)

Tabel 4.2 Data pada Sumbu Minus X

(-)X

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

-10 -10.05 -10.04 -10.05 -10.06 -10.06 -10.05 0.52 -20 -20.18 -20.18 -20.18 -20.15 -20.22 -20.18 0.90 -30 -30.25 -30.32 -30.22 -30.28 -30.2 -30.25 0.84 -40 -40.08 -40.19 -40.15 -40.1 -40.19 -40.14 0.35 -50 -50.22 -50.27 -50.16 -50 -50.09 -50.15 0.30 -60 -60.14 -60.14 -60.29 -60.3 -60.1 -60.19 0.32 -70 -70.43 -70.41 -70.2 -70.24 -70.45 -70.35 0.49 -80 -80.16 -80.44 -80.23 -80.16 -80.19 -80.24 0.29 -90 -90.39 -90.17 -90.23 -90.32 -90.21 -90.26 0.29 -100 -100.14 -100.13 -100.25 -100.16 -100.22 -100.18 0.18 -110 -110.43 -110.33 -110.41 -110.27 -110.35 -110.36 0.32 -120 -119.96 -120.42 -120.21 -119.98 -120.12 -120.14 0.11 -130 -130.34 -130.27 -130.15 -130.18 -130.25 -130.24 0.18 -140 -139.97 -140.13 -140.27 -140.33 -139.98 -140.14 0.10 -150 -150.12 -150.3 -150.22 -150.29 -150.17 -150.22 0.15 -160 -159.67 -160.33 -160.14 -159.99 -160.24 -160.07 0.05 -170 -170.39 -170.32 -170.12 -170.22 -170.19 -170.25 0.15 -180 -180.12 -179.93 -179.94 -180.21 -180.03 -180.05 0.03 -190 -190.21 -190.43 -190.12 -189.98 -190.24 -190.20 0.10 -200 -200.33 -200.41 -200.18 -200.06 -200.16 -200.23 0.11

Tabel 4.2 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai jarak 200 sentimeter terhadap sumbu X minus. Dari hasil data pengujian sumbu X minus dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah 1%.

(28)

4.1.2 Pengujian Data Y

Tabel 4.3 Data pada Sumbu Y

Y

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

10 9.89 9.94 9.92 9.99 9.9 9.93 0.73 20 20.02 19.93 20.04 20.01 19.97 19.99 0.03 30 29.96 29.97 30.01 29.99 30.05 30.00 0.01 40 39.91 39.96 39.97 40.05 40.01 39.98 0.05 50 50.07 50.07 50 49.98 50.02 50.03 0.06 60 60 59.84 60.02 59.92 59.98 59.95 0.08 70 69.79 69.55 69.82 69.6 69.55 69.66 0.49 80 79.78 79.59 79.6 79.6 79.81 79.68 0.41 90 89.65 89.87 89.91 89.73 89.69 89.77 0.26 100 99.76 99.68 99.79 99.6 99.75 99.72 0.28 110 109.96 109.71 109.98 109.8 109.87 109.86 0.12 120 119.64 119.67 119.71 119.53 119.75 119.66 0.28 130 129.6 129.48 129.55 129.21 129.71 129.51 0.38 140 139.14 139.62 139.54 139.03 139.68 139.40 0.43 150 149.35 149.34 149.39 149.4 149.35 149.37 0.42 160 159.37 159.47 159.46 159.69 159.38 159.47 0.33 170 169.3 169.08 169.21 169.1 169.17 169.17 0.49 180 179.01 179.17 179.15 179.06 179.21 179.12 0.49 190 189.02 188.95 189.01 188.99 189.05 189.00 0.53 200 199.15 198.95 198.96 199.1 199.15 199.06 0.47

Tabel 4.3 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai jarak 200 sentimeter terhadap sumbu Y. Dari hasil data pengujian sumbu Y dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah 1%.

(29)

Tabel 4.4 Data pada Sumbu Minus Y

(-)Y

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

-10 -10.03 -9.99 -10 -10.05 -10.03 -10.02 0.20 -20 -20.03 -20 -20 -20.01 -20.3 -20.07 0.34 -30 -30.03 -30.03 -30.05 -30.01 -30.07 -30.04 0.13 -40 -39.99 -39.94 -40.02 -40.11 -40.06 -40.02 0.06 -50 -50.21 -49.92 -50.13 -50.04 -50.17 -50.09 0.19 -60 -59.8 -59.92 -59.98 -60.02 -59.85 -59.91 0.14 -70 -69.76 -70 -70.02 -69.88 -69.92 -69.92 0.12 -80 -79.83 -79.8 -79.87 -79.85 -79.8 -79.83 0.21 -90 -89.77 -89.83 -89.84 -89.8 -89.91 -89.83 0.19 -100 -99.75 -99.78 -99.85 -99.8 -99.83 -99.80 0.20 -110 -109.57 -109.77 -109.62 -109.7 -109.52 -109.64 0.33 -120 -120.11 -119.74 -120.02 -119.83 -119.9 -119.92 0.07 -130 -129.66 -129.79 -129.68 -129.87 -129.65 -129.73 0.21 -140 -139.7 -139.74 -139.88 -139.77 -139.68 -139.75 0.18 -150 -149.33 -149.26 -149.4 -149.31 -149.28 -149.32 0.46 -160 -159.44 -159.08 -159.37 -159.7 -159.22 -159.36 0.40 -170 -169.68 -168.98 -169.23 -169 -169.52 -169.28 0.42 -180 -179.6 -179.23 -179.42 -179.39 -179.22 -179.37 0.35 -190 -189.09 -189.56 -189.59 -189.5 -189.11 -189.37 0.33 -200 -198.75 -198.92 -199 -198.8 -199.02 -198.90 0.55

Tabel 4.4 merupakan tabel pengujian gerak mobile robot terhadap yang dilakukan lima kali secara berulang sampai jarak 200 sentimeter sumbu Y minus. Dari hasil data pengujian sumbu Y minus dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah 1%.

(30)

4.1.3 Pengujian Data Arah Hadap

Tabel 4.5 Data pada Arah Hadap (Theta)

Theta

Sudut 1 2 3 4 5 Nilai Rata-rata Error (%)

20 20.06 19.33 19.39 19.25 19.37 19.48 2.67 40 37.75 37.82 37.33 37.82 37.4 37.62 6.32 60 56.81 56.75 56.8 56.78 56.69 56.77 5.70 80 75.31 75.56 75.52 75.39 75.55 75.47 6.01 100 95.06 95 95.08 95.03 95 95.03 5.23 120 114 114.02 114.11 114.07 114.12 114.06 5.20 140 133.33 133.08 133.14 133.21 133.3 133.21 5.10 160 152.08 152.22 152.11 152.05 152.12 152.12 5.18 180 171.22 170.81 171.24 171 170.98 171.05 5.23 200 188.92 189.36 189.36 189.21 189.36 189.24 5.68 220 208.06 208.14 207.53 208.11 207.88 207.94 5.80 240 227.03 227.5 227.03 227.36 227.08 227.20 5.63 260 246.61 246.72 246.42 246.47 246.7 246.58 5.44 280 265.83 264.81 265.8 264.91 265.78 265.43 5.49 300 284.17 283.94 283.94 284.09 284.11 284.05 5.62 320 302.94 302.06 302.67 302.61 302.32 302.52 5.78 340 319.92 321.44 320.67 321.23 320.87 320.83 5.98 360 340.92 340.41 340.03 340.08 340.51 340.39 5.76

Tabel 4.5 merupakan tabel pengujian gerak mobil robot yang dilakukan lima kali secara berulang sampai sudut 360o terhadap arah hadap robot (Theta). Dari hasil data pengujian arah hadap robot (Theta) dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah 7%.

(31)

Tabel 4.6 Data pada Arah Hadap Minus (Theta)

(-)Theta

Sudut 1 2 3 4 5 Nilai Rata-rata Error (%)

-20 -18.56 -18.39 -18.44 -18.36 -18.33 -18.42 8.60 -40 -37.92 -37.89 -38 -38.11 -37.94 -37.97 5.34 -60 -56.44 -56.19 -56.75 -56.69 -56.58 -56.53 6.14 -80 -76.17 -76.14 -76.19 -76.25 -76.53 -76.26 4.91 -100 -95.22 -94.42 -94.53 -95.58 -95.31 -95.01 5.25 -120 -114.64 -114.11 -114.07 -114 -114.53 -114.27 5.01 -140 -132.67 -132.67 -132.03 -133.17 -133.25 -132.76 5.46 -160 -152.22 -151.89 -152.39 -151.78 -152.22 -152.10 5.19 -180 -170.11 -170.06 -170.19 -169.72 -169.69 -169.95 5.91 -200 -188.89 -188.61 -188.67 -189.08 -188.28 -188.71 5.98 -220 -208.56 -207.72 -208.97 -208.36 -208.11 -208.34 5.59 -240 -227.69 -228.08 -227.64 -227.14 -227.61 -227.63 5.43 -260 -245.92 -245.81 -246.22 -246.19 -246.14 -246.06 5.67 -280 -265.56 -265.5 -265 -265.08 -264.72 -265.17 5.59 -300 -283.67 -283.03 -283.22 -283.17 -283.83 -283.38 5.86 -320 -302.58 -302.06 -301.47 -301.44 -302.02 -301.91 5.99 -340 -320.75 -320.56 -320.83 -321.42 -320.36 -320.78 5.99 -360 -338.5 -339.78 -339.64 -340.39 -339.19 -339.50 6.04

Tabel 4.6 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai sudut 360oarah hadap robot (Theta). Dari hasil data pengujian arah hadap robot (Theta) dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah 9%.

(32)

4.1.4 Pengujian Data XY

Tabel 4.7 Data pada Sumbu XY

Tabel 4.7 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai jarak 150 sentimeter terhadap sumbu XY. Dari hasil data pengujian XY dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah X = 2 dan Y = 7%.

XY

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

X Y X Y X Y X Y X Y X Y X Y 10 10 9.9 10.2 9.77 10.22 9.74 9.79 9.24 10.21 9.65 10.08 9.66 0.83 3.52 20 20.36 19.63 20.37 19.64 20.25 19.64 20.18 19.54 20.34 19.64 20.30 19.62 1.48 1.95 30 30.56 29.44 30.53 29.48 30.35 29.45 30.39 29.41 30.6 29.4 30.49 29.44 1.59 1.92 40 40.82 39.08 40.66 38.99 40.59 39.09 40.13 30.66 39.9 39.14 40.42 37.39 1.04 6.97 50 50.2 49.22 49.8 49.4 49.38 49.96 50.35 48.95 49.77 49.95 49.90 49.50 0.20 1.02 60 60.13 60.11 59.25 60.07 59.7 59.53 59.6 59.64 60.04 59.25 59.74 59.72 0.43 0.47 70 69.93 69.14 70.18 69.11 70.2 69.06 69.7 69.48 69.83 69.62 69.97 69.28 0.05 1.04 80 79.77 78.75 80.44 78.43 79.82 79.02 79.5 79.08 79.94 78.73 79.89 78.80 0.13 1.52 90 90.66 80.05 90.36 88.1 90.75 88.08 90.25 88.21 91.18 81.77 90.64 85.24 0.71 5.58 100 100.35 99.79 100.44 100.95 98.51 98.05 100.5 98.99 100.76 97.69 100.11 99.09 0.11 0.91 110 110.1 107.73 111.32 107.76 109.75 99.75 110.95 107.67 110.54 107.53 110.53 106.09 0.48 3.69 120 121.54 117.96 120.2 112.43 120.96 117.94 120.84 117.57 120.95 115.6 120.90 116.30 0.74 3.18 130 130.57 126.35 130.54 127.56 130.9 127.07 131.51 126.35 130.93 127.05 130.89 126.88 0.68 2.46 140 141.06 137.2 141.56 136.05 141.83 135.88 141.12 136.87 139.38 137.69 140.99 136.74 0.70 2.39 150 149.4 148.39 148.26 149.95 148.84 148.94 148.81 149.87 149.56 148.52 148.97 149.13 0.69 0.58

(33)

Tabel 4.8 Data pada Sumbu Minus XY

(-)XY

Jarak (cm) 1 2 3 4 5 Nilai Rata-rata Error (%)

X Y X Y X Y X Y X Y X Y X Y -10 -9.92 -10.04 -9.9 -10.04 -9.88 -10.07 -9.84 -10.11 -9.88 -10.09 -9.88 -10.07 1.17 0.70 -20 -19.55 -20.37 -19.55 -20.38 -19.56 -20.39 -19.53 -20.47 -19.51 -20.4 -19.54 -20.40 2.35 1.97 -30 -29.45 -30.42 -29.28 -30.61 -29.31 -30.49 -29.34 -30.61 -29.29 -29.46 -29.33 -30.32 2.27 1.05 -40 -39.03 -41 -39 -40.76 -38.9 -40.84 -38.8 -41 -38.84 -40.82 -38.91 -40.88 2.79 2.16 -50 -49 -50.63 -49.27 -50.4 -49.09 -50.71 -49.01 -50.26 -48.84 -50.53 -49.04 -50.51 1.95 1.00 -60 -58.92 -60.65 -58.87 -60.66 -58.83 -60.59 -59.16 -60.57 -58.88 -60.6 -58.93 -60.61 1.81 1.01 -70 -68.7 -70.6 -68.64 -70.67 -68.71 -70.58 -68.59 -70.77 -68.42 -70.68 -68.61 -70.66 2.02 0.93 -80 -78.55 -81.03 -78.64 -80.84 -78.05 -81.07 -78.31 -81.19 -78.15 -80.8 -78.34 -80.99 2.12 1.22 -90 -88.27 -90.61 -87.98 -89.95 -88.45 -90.36 -88.62 -90.09 -88.49 -90.3 -88.36 -90.26 1.85 0.29 -100 -97.95 -100.7 -97.96 -100.45 -98.37 -100.45 -98.19 -100.98 -98.13 -100.66 -98.12 -100.65 1.92 0.64 -110 -108.64 -109.95 -108.49 -109.82 -108.85 -110.81 -108.97 -109.62 -108.25 -110.34 -108.64 -110.11 1.25 0.10 -120 -117.91 -121.06 -118.08 -120.49 -118.45 -120.32 -118.61 -119.94 -118.61 -120.21 -118.33 -120.40 1.41 0.34 -130 -128.13 -129.67 -127.91 -130.15 -127.91 -130.01 -128.01 -130.9 -128.64 -130.13 -128.12 -130.17 1.47 0.13 -140 -137.91 -139.19 -137.88 -140.73 -136.81 -141.22 -137.05 -140.96 -137.58 -140.17 -137.45 -140.45 1.86 0.32 -150 -145.4 -151.79 -146.19 -151.2 -146.05 -151.48 -142.88 -154.6 -142.45 -154.84 -144.59 -152.78 3.74 1.82

Tabel 4.8 merupakan tabel pengujian gerak mobile robot yang dilakukan lima kali secara berulang sampai jarak 150 sentimeter terhadap sumbu XY minus. Dari hasil data pengujian XY dapat diketahui bahwa error antara nilai yang terukur dan nilai aktual dibawah X = 4% dan Y = 3%.

(34)

4.1.5 Pengujian Data Pada Visual

Gambar 4.1 Tampilan Garis yang Dibentuk pada Visual

Pengujian dilakukan dari posisi A (0, 0), keposisi B (50, 50), keposisi C (150, 50) dan menuju posisi D (240, 150) dengan arah hadap robot yang sama.

Data yang tampil pada visual adalah posisi A (0, 0), B (50.52, 48.95), C (151.38, 45.63) dan D (259.9, 122.15).

Pada tampilan visual yang terdapat pada komputer menunjukkan bahwa pengujian kiwi drive mobile robot di lapangan terdapat perbedaan yang cukup besar pada posisi C dan posisi D dengan posisi yang ditentukan.

(35)

Gambar 4.2 Tampilan Aktual Garis yang Dibentuk Mobile Robot

Pada tampilan aktual yang terdapat pada saat pengujian menunjukkan bahwa hasil dari garis yang ditandai dengan spidol mendekati posisi yang diinginkan.

4.2 Analisa

Contoh perhitungan ini dilakukan untuk mengetahui posisi pada sumbu X dengan arah hadap 0o dengan waktu (T) yang telah di tentukan yaitu 1 detik untuk posisi 0 sentimeter menuju 20 sentimeter dengan nilai pembacaaan encoder roda 1 ± 0, roda 2 = -794,314, roda 3 = -794,314, dan satu putaran encoder pulsa dari 4X resolusi dikali 360 pulse per rotation (PPR) = 1440. Jadi,

,

x 360 x = - 3,466 radian per second (roda 2)

,

x 360 x = 3,466 radian per second (roda 3)

Dengan diketahui sebagai berikut: ̇ = 0 (karena roda 1 tidak berputar) ̇ = -3,466 radian per second ̇ = 3,466 radian per second R = 50 milimeter

(36)

Dengan perkalian matrix jacobian maka diuraikan sebagai berikut: Pada T = 0 detik, kecepatan putaran roda belum mulai

̇ =

−2 Sin

[ ]

3 − Cos

[ ]

3 + Sin

[ ]

3 Cos

[ ]

3 + Sin

[ ]

3

̇

1

̇

2

̇

3

̇

=

( ) x 2 xπx r = [ ]x rad1 = 0 = [ ] √ + [ ] x rad2 = − √ x 0 = 0 = [ ] √ + [ ] x rad3 = √ x 0 = 0

̇

=

( ) x 2 xπx r

=

( ) x 3,14 = 0 x 3,14 = 0 ⁄ = + ̇ ∫ = 0+0 ∫ = 0 x 0 = 0 mm

(37)

Pada T = 1 detik, kecepatan purtaran roda 2 = -3,466 dan roda 3 = 3,466

̇ =

−2 Sin

[ ]

3 − Cos

[ ]

3 + Sin

[ ]

3 Cos

[ ]

3 + Sin

[ ]

3

̇

1

̇

2

̇

3

̇

=

( ) x 2 xπx r = [ ]x rad1 = 0 = [ ] √ + [ ] x rad2 = − √ x -3,466 = 2,001 = [ ] √ + [ ] x rad3 = √ x 3,466 = 2,001

̇

=

( , , ) x 2 xπx r

=

( , ) x 3,14 = 0,636 x 3,14 = 200,101 ⁄ = + ̇ ∫ = 0+200,101 ∫ = 200,101 x 1 = 200,101 mm = 20 cm

Pada persamaan forward kinematic untuk mengetahui posisi mobile robot pada kiwi drive dapat tercapai dan mengahasilkan data untuk X dan Y dengan error kecil. Dan error pada arah hadap robot (Theta) cukup tinggi dikarenakan nilai L (Jarak centre robot ke

(38)

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil dan analisa dan pembahasan maka dapat disimpulkan sebagai berikut:

1. Persamaan forward kinematic dapat diterapkan pada mobile robot dan menampilkannya secara visual.

2. Nilai keakurasian pengukuran posisi pada mobile robot mendekati nilai aktual data dengan rata-rata nilai error pada X = 0,27 %, X minus = 0,29%, Y = 0,32%, Y minus = 0,29%. Dan nilai error pada Theta = 5,43% dan Theta minus = 5,78%.

5.2 Saran

Untuk penelitian sistem lebih lanjut kedepannya perlu ditambahkan beberapa saran sebagai berikut:

1. Dapat mengecilkan nilai error arah hadap robot (Theta).

2. Menambahkan persamaan orientasi rotasi pada mobile robot untuk menetapkan arah sumbu XY global pada sumbu XY lokal.

(39)

DAFTAR PUSTAKA

[1] Ridwan, “Pengendalian Kecepatan Motor DC Dengan PD-Logika Fuzzy Terhadap

Gangguan Pengereman Berbasis Mikrokontroller”, Buku Tugas Akhir Diploma IV,

Jurusan Mekatronika, Politeknik Negeri Batam, 2013.

[2] Cao Xu Wen, “Design and Control of an Omnidirectional Mobile Robot”, Intech Open, ____.

[3] Dewi Puspa, “Monitoring Robot Pemadam Api Barelang 3.3”, Buku Tugas Akhir

Diploma III, Jurusan Elektronika, Politeknik Negeri Batam, 2014.

[4] Wikipedia. “Pemograman Berorientasi Objek”, Internet:

http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek, Desember. 19, 2014

(40)

BIOGRAFI PENULIS

Nama : Rian Syafi’i Harahap

Tempat/tanggal lahir : Batam, 28 Mei 1992

Agama : Islam

Alamat Rumah : Kamp. Rawasari RT 02 RW 04 NO. 107 Kel. Tg. Pinggir, Kec. Sekupang, Kawasan Industri Sekupang, Batam

Email : [email protected]

Riwayat Pendidikan :

1. SMK Negeri 1 Batam

2. SMP Negeri 11 Batam

(41)
(42)
(43)
(44)
(45)
(46)
(47)

LAMPIRAN B PROGRAM C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApplication2 {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

int set = 20, errorY, errorX;

int pjgData = 300; //panjang garis kuning

Graphics graph;

Bitmap bmp, sbitmap, init; Pen pena; Point[] titikArray; int countTitikArray = -1; Image pictObject; string dataSerial; // serial setting float dtA, dtB, dtC; int enc1, enc2, enc3;

private void Form1_Load(object sender, EventArgs e) {

//float b = (float)1.53;

//int a = Convert.ToInt32(b);

comboBox1.Items.Clear();//mengkosongkan pilihan port serial

foreach (string item in SerialPort.GetPortNames())//menambah setiap serial yang ada di computer ke combo box

{ comboBox1.Items.Add(item);//menambahkan } //comboBox1.SelectedIndex = null; buttonConnect.Enabled = true; buttonDisconnect.Enabled = false;

chart1.Series[0].Points.Clear();//mengkosongkan data chart

chart2.Series[0].Points.Clear(); chart3.Series[0].Points.Clear();

titikArray = new Point[pjgData + 1];//mendeklarasikan variabel Point array sebanyak pjgData+1

pena = new Pen(Color.Blue, 1);//mendeklarasikan variabel Pen untuk menggambar kotak-kotak

initial();//memanggil fungsi inisial

pictObject = Image.FromFile(Application.StartupPath +

"/icon.png");//mengambil gambar dari komputer

}

private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)//event serial

(48)

void olahData(object sender, EventArgs e) {

if (serialPort.BytesToRead > 0) {

char data = (char)serialPort.ReadChar(); dataSerial += data; if (data == '\n') { parsingData(); drawRobot(); DrawLineRobot(); showEnc(); //lb_a.Text = errorX.ToString()+";"+errorY.ToString(); //timer1.Enabled = true;

Invoke(new Action(() => dText.AppendText(dataSerial + "\r\n"))); Invoke(new Action(() => dText.SelectionStart=

dText.Text.Length));

Invoke(new Action(() => dText.ScrollToCaret())); dataSerial = "";

} } }

public void parsingData() {

char[] limiter = { 'A', 'B', 'C', 'D', 'E', 'F', '\r', '\n' };//karakter parsing

string[] hasilParsing = dataSerial.Split(limiter); //array string untuk

hasil parsing try { dtA = float.Parse(hasilParsing[1]); dtB = float.Parse(hasilParsing[2]); dtC = float.Parse(hasilParsing[3]); enc1 = int.Parse(hasilParsing[4]); enc2 = int.Parse(hasilParsing[5]); enc3 = int.Parse(hasilParsing[6]);

textBoxA.Text = dtA.ToString();//tampilkan ke textbox

textBoxB.Text = dtB.ToString(); tb_angle.Text = dtC.ToString(); tb_enc1.Text = enc1.ToString(); tb_enc2.Text = enc2.ToString(); tb_enc3.Text = enc3.ToString(); //string dtC = hasilParsing[3]; }

catch (Exception error) {

} }

void showEnc() {

chart1.Series[0].Points.AddY(enc1);//menampilkan data di chart

chart2.Series[0].Points.AddY(enc2);

chart3.Series[0].Points.AddY(enc3); }

void initial() {

bmp = new Bitmap(pn_draw.Width, pn_draw.Height);//mendeklarasikan variabel bitmap sesuai panjang dan lebar pn_draw

(49)

graph = Graphics.FromImage(bmp);//mendeklarasikan variable Graphics dari variable bmp

kotak();//memanggil fungsi

savedrw(); }

void kotak() {

for (int a = 25; a <= pn_draw.Height; a += 25) {

graph.DrawLine(pena, a, 0, a, pn_draw.Height);//menggambar vertikal

}

for (int a = 25; a <= pn_draw.Height; a += 25) {

graph.DrawLine(pena, 0, a, pn_draw.Height, a);//menggambar kotak horizontal

} }

void DrawLineRobot() {

if (errorY < set && errorY > -1 * set || errorX < set && errorX > -1 * set)

{

for (int a = 0; a < countTitikArray; a++) {

graph.DrawLine(new Pen(new SolidBrush(Color.Yellow), 5), titikArray[a], titikArray[a + 1]);//gambar garis

}

kotak(); savedrw(); }

}

Image rotateImage(Image pict, double angle) {

Bitmap rotatedImage = new Bitmap(pict.Width, pict.Height);//mendeklarasikan variable Bitmap

rotatedImage.SetResolution(pict.HorizontalResolution, pict.VerticalResolution);// mengatur resolusi gambar

Graphics g = Graphics.FromImage(rotatedImage);//mendeklarasikan variable graphic

g.TranslateTransform(pict.Width / 2, pict.Height / 2);//menentukan titik

center rotate

g.RotateTransform((float)angle);//rotate gambar

g.TranslateTransform(-(pict.Width / 2), -(pict.Height / 2));//menentukan

titik center rotate

g.DrawImage(pict, new PointF(0, 0));//menyimpan gambar yang telah di rotate ke variable rotateImage

return rotatedImage; }

void savedrw() {

sbitmap = bmp.Clone(new Rectangle(0, 0, pn_draw.Width, pn_draw.Height),

bmp.PixelFormat);//mengkopi gambar sesuai panjang, lebar dan resolusi gambar satunya

lagi

pn_draw.BackgroundImage = sbitmap;//mengeset background dari pn_draw dengan "sbitmap"

}

void drawRobot() {

(50)

errorY = titikArray[countTitikArray].Y - titikArray[countTitikArray - 1].Y;//menghitung selisih data yang baru diterima dengan data sebelumnya

errorX = titikArray[countTitikArray].X - titikArray[countTitikArray - 1].X;

if (errorY < set && errorY > -1 * set || errorX < set && errorX > -1 * set) //jika selisihnya tidak lebih besar dari "set" maka digambar

{

for (int a = 0; a < countTitikArray; a++) {

titikArray[a] = titikArray[a + 1];//menghapus garis

sebelumnya

}

titikArray[countTitikArray].Y = Convert.ToInt32(dtB) * (-1) + (pn_draw.Height - (pn_draw.Height / 4));//menyimpan titik y posisi robot

titikArray[countTitikArray].X = Convert.ToInt32(dtA) + (pn_draw.Width / 4);//titik x

Image newImage = rotateImage(pictObject, Convert.ToInt32(dtC) -

90);//merotate gambar

graph.DrawImage(newImage, titikArray[pjgData - 1].X - (pictObject.Width / 2), titikArray[pjgData - 1].Y - (pictObject.Height /

2));//menggambar robot pada posisi x dan y robot

} } else {

countTitikArray++;

titikArray[countTitikArray].Y = Convert.ToInt32(dtB) * (-1) + (pn_draw.Height - (pn_draw.Height / 4));

titikArray[countTitikArray].X = Convert.ToInt32(dtA) + (pn_draw.Width / 4);

Image newImage = rotateImage(pictObject, Convert.ToInt32(dtC) - 90);//

graph.DrawImage(newImage, titikArray[countTitikArray].X -

(pictObject.Width / 2), titikArray[countTitikArray].Y - (pictObject.Height / 2)); }

}

private void timer1_Tick(object sender, EventArgs e) {

drawRobot(); DrawLineRobot(); }

private void bt_save_Click(object sender, EventArgs e) {

saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";//filter extension gambar

saveFileDialog1.Title = "Simpan Karya Anda";//judul

if (saveFileDialog1.ShowDialog() == DialogResult.OK) {

string file = saveFileDialog1.FileName;//mengambil filename dari gambar

bmp.Save(file);//menyimpan gambar robot dan lintasan yang dilalui ke

komputer

} else {

MessageBox.Show("Save was Cancelled"); }

}

private void pn_draw_MouseMove(object sender, MouseEventArgs e) {

bt_save.Visible = true;//memunculkan tombol save ketika mouse melewati pn_draw

(51)

bt_reset.Visible = true; }

private void Form1_MouseMove(object sender, MouseEventArgs e) {

bt_save.Visible = false;//menghilangkan tombol save ketika mouse keluar

dari pn_draw

bt_reset.Visible = false; }

private void bt_reset_Click(object sender, EventArgs e) {

initial(); kotak(); savedrw(); }

private void buttonConnect_Click(object sender, EventArgs e) {

try {

serialPort.PortName = comboBox1.Text;//mengeset Port yang digunakan

serialPort.Open();//membuka komunikasi serial

chart1.Series[0].Points.Clear();//mengkosongkan data chart

chart2.Series[0].Points.Clear(); chart3.Series[0].Points.Clear(); //timer1.Enabled = true;

}

catch (Exception error) {

MessageBox.Show(error.ToString());//menampilkan error ketika koneksi gagal } if (serialPort.IsOpen) { buttonDisconnect.Enabled = true; buttonConnect.Enabled = false; } }

private void buttonDisconnect_Click(object sender, EventArgs e) {

try {

// serialPort.PortName = comboBox1.Text;

serialPort.Close();//menutup komunikasi serial

}

catch (Exception error) {

MessageBox.Show(error.ToString());//menampilkan error ketika koneksi gagal } if (!serialPort.IsOpen) { buttonDisconnect.Enabled = false; buttonConnect.Enabled = true; } } } }

(52)

LAMPIRAN C GAMBAR GUI PADA C#

Gambar

Gambar 2.2 Konfigurasi Roda Kiwi Drive Pada Mobile Robot
Tabel 2.1 Konfigurasi RF  YS-1020UB
Gambar 2.4 Tampilan Dasar OOP Menggunakan Bahasa C#
Gambar 3.1 Tahapan Penelitian
+7

Referensi

Garis besar

Dokumen terkait

Salah satu asas penting yang wajib diperhatikan adalah bahwa hakim wajib mengadili semua bagian tuntutan dan dilarang menjatuhkan putusan atas perkara yang tidak dituntut

Besaran nilai pertumbuhan nisbi yang diperoleh benih ikan nila menggambarkan persentase capaian yang dapat dikaitkan dengan berat awal sebagai contoh untuk perlakuan A

Penelitian yang sudah ada tentang tonsilitis kronis dilakukan oleh farokah (2007) terhadap siswa sekolah dasar kelas 2 di kota semarang didapatkan hubungan yang

Ketidakbermaknaan korelasi tingkat gejala adiksi internet dengan aktivitas yang dilakukan jika tidak tersedia dana, dapat dijelaskan karena sebagian besar

Semasa pemain daripada pasukan lawan yang dibenarkan berada dalam kawasan itu membuat hantaran percuma, bola tidak boleh dibaling melebihi kawasan gelanggang

Hal itulah yang kini diterapkan oleh politikus jebolan Universitas Airlangga Eva Kusuma Sundari, berangkat dari rahim akademisi, Eva yang sempat menjajaki dunia akademisi

Manfaat yang diharapkan dari penelitian ini adalah menyediakan informasi sebagaimana pentingnya pengaruh pemanfaatan teknologi informasi dan pengendalian intern terhadap

Sebagaimana diatur dalam Undang Undang Nomor 10 Tahun 2004 tentang Pembentukan Peraturan Perundang- undangan kebijakan nasional tersebut seyogianya berupa suatu