sistem pengatur kecepatan roda berbasis fuzzy logic

19
SISTEM PENGATUR KECEPATAN RODA BERBASIS FUZZY LOGIC CONTROLLER DAN REALTIME VIDEO STREAMING PADA ROBOT PENGANGKUT BARANG oleh Kevin Ananta Kurniawan NIM : 612009017 Skripsi Untuk melengkapi salah satu syarat memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Fakultas Teknik Elektronika dan Komputer Universitas Kristen Satya Wacana Salatiga Oktober 2014

Upload: others

Post on 08-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

SISTEM PENGATUR KECEPATAN RODA BERBASIS FUZZY LOGIC CONTROLLER

DAN REALTIME VIDEO STREAMING PADA ROBOT PENGANGKUT BARANG

oleh

Kevin Ananta Kurniawan

NIM : 612009017

Skripsi

Untuk melengkapi salah satu syarat memperoleh

Gelar Sarjana Teknik

Program Studi Teknik Elektro

Fakultas Teknik Elektronika dan Komputer

Universitas Kristen Satya Wacana

Salatiga

Oktober 2014

Page 2: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic
Page 3: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic
Page 4: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic
Page 5: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

INTISARI

Dalam sebuah sistem robot pengangkut barang autonomous dibutuhkan kemampuan

untuk mengontrol robot secara manual dan umpan balik berupa gambar video realtime yang

mampu merepresentasikan kondisi lingkungan di sekitar robot. Untuk itu dirancang sebuah

sistem yang mampu digunakan untuk mengontrol robot secara manual, dan mengoreksi

hardware error dengan penggunaan resource yang sesedikit mungkin.

Pada skripsi ini dirancang sebuah sistem mekatronik robot dengan Algoritma kontrol

yang direalisasikan menggunakan Fuzzy Logic Controller dengan kemampuan untuk melakukan

realtime video streaming melalui jaringan. Sistem yang dirancang terdiri dari dua entitas, robot

dan pusat kontrol. Perintah yang dikirimkan dari pusat kontrol melalui jaringan lokal, kemudian

diterima dan diteruskan oleh Raspberry Pi untuk diterjemahkan menjadi manuver dari robot.

Agar pergerakan robot sesuai yang diharapkan, diterapkan koreksi error dengan fuzzy logic

controller untuk mengatur kecepatan roda berdasarkan input sensor pada robot. Raspberry Pi

juga berfungsi untuk melakukan realtime video streaming yang ditampilkan pada Graphical

User Interface dari robot agar pengguna dapat mengetahui kondisi lingkungan disekitar robot.

Dari hasil pengujian diperoleh bahwa sistem telah memberikan respon terhadap perintah

yang diberikan berupa perubahan sudut hadap Positif untuk perintah belok kiri (16.7o / detik) dan

putar kiri (17.6o / detik), dan respon berupa perubahan sudut hadap negatif untuk perintah belok

kanan (19.4o / detik) dan putar kanan (55

o / detik). Algoritma Fuzzy Logic Controller dengan

Proteksi error arah hadap, telah mampu mendeteksi dan mengoreksi terjadinya Error Arah

hadap yang nilainya melebihi nilai ambang toleransi yang telah ditentukan (± 3 o

dan ± 15 o

).

Sistem telah mampu untuk berjalan lurus sejauh 15 m dengan magnitudo nilai simpangan rata-

rata sebesar 22.2 cm. Sistem streaming video realtime untuk sistem embedded Raspberry Pi

memiliki tunda waktu 180-312 mili-sekon pada frame rate 30 fps.

Page 6: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Abstract

In an autonomous robotic systems the ability for manually control the robot is mandatory,

there’s also need for a real-time video image which could represent the real condition of the

robot’s environment. For that reasons mentioned above, designed a system capable of

controlling the robot and correcting hardware errors with minimal resource usage.

In this project, designed a robot with a mechatronic system, which realized using fuzzy

logic controller. The robot has the ability to perform a real-time video streaming over network.

The system consist of two entities, the robot and the main control center. Commands are sent

from the main control center via local area network, this command then received and forwarded

by Raspberry Pi to the Arduino which where the command will be translated into robot’s

maneuver. In order to make sure the movement of the robot is correct, error correction is

applied with fuzzy logic controller to regulate the wheel speed based on input sensors of the

robot. Raspberry Pi also served to perform real-time video stream which is displayed on the

graphical user interfaces of the robot, so that user could monitor the condition of the

environment around the robot.

From the test result, system has responded to the commands given in the form of positive

direction angle change for turn left and rotate left command, and response in the form negative

direction angle change for turn right command and rotate right command. Fuzzy logic algorithm

with direction error protection, have been able to detect and correct direction errors which the

values exceeds the predetermined threshold value (± 3 ° and ± 15 °). From the test result,

showed that the robot was able to walk straight line as far as 15 m with the average deviation

magnitude of 22.2 cm. The real-time video streaming system for embedded systems Raspberry Pi

has delay of 180-312 mili-second at frame rate of 30 fps.

Page 7: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Kata Pengantar

Pada bagian skripsi ini penulis ingin mengucapkan terimakasih kepada pihak-pihak yang

sudah membantu hingga skripsi ini dapat diselesaikan. Terimakasih kepada pembimbing skripsi

Bapak Darmawan Utomo dan Pak Saptadi Nugroho yang selalu ada dan selalu siap sedia

memberikan solusi untuk berbagai kesulitan yang ditemui dalam pembuatan skripsi, yang

menyediakan bantuan baik berupa materi, waktu, maupun ide untuk perancangan sistem Robot

pengangkut barang yang ada dalam skripsi ini.

Saya juga ingin mengucapkan terimakasih kepada kedua orang tua saya dan adik-adik

saya Kenny dan Keenan yang selalu mendukung saya dalam materi, moril, maupun waktunya,

dan menyemangati saya agar skripsi ini semakin cepat terselesaikan.

Ucapan terimakasih juga ingin saya sampaikan kepada dua teman seperjuangan saya

Mario dan Riki yang selalu membantu saya dalam kesusahan algoritma maupun pengujian robot.

Kepada Febrian sutedjo yang membantu saya membuat mekanik dari robot. Kepada Wawan

yang membantu saya membuat dokumentasi dari GStreamer. Pak Harsono dan Pak Gunawan,

atas bantuan pengajaran mereka akan konsep-konsep algoritma Fuzzy logic controller.

Ucapan terimakasih saya ucapkan kepada semua pihak lain yang telah membantu dan

mendukung saya baik dalam materi maupun semangat, untuk terselesaikannya skripsi ini yang

tidak dapat saya sebutkan satu-persatu. Semoga Tuhan Yesus Kristus membalas perbuatan baik

kalian.

Salatiga, Oktober 2014

Page 8: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

DAFTAR ISI

INTISARI i

ABSTRACT ii

KATA PENGANTAR iii

DAFTAR ISI iv

DAFTAR GAMBAR viii

DAFTAR TABEL xii

DAFTAR LAMBANG xiii

DAFTAR SINGKATAN xv

BAB I PENDAHULUAN 1

1.1. Tujuan 1

1.2. Latar Belakang 1

1.3. Gambaran Sistem 2

1.4. Batasan Masalah 4

1.5. Perincian Tugas 5

1.6. Sistematika Penulisan 6

BAB II DASAR TEORI 7

2.1. Fuzzy Logic Controller 7

2.1.1. Teori Fuzzy 7

2.1.2. Alasan Digunakannya Logika Fuzzy 9

2.1.3. Himpunan Fuzzy 9

2.1.4. Operator Logika Fuzzy 12

2.1.5. Aturan Jika-Maka (IF-THEN Rules) 14

2.1.6. Proses Pengambilan Keputusan Fuzzy (Fuzzy Inference Process) 17 2.1.7.

Model Fuzzy Takagi-Sugeno-Kang (TSK) 18

2.2. Sistem Embedded 20

2.2.1. Definisi sistem embedded 20

2.2.2. Raspberry Pi sebagai sistem embedded 21

2.3.Sistem Realtime 23

Page 9: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

2.4. Realtime Video Streaming 23

2.5.Video Streaming dengan GStreamer 25

2.5.1. Komponen GStreamer 25

2.5.2. Mekanisme Komunikasi GStreamer 28

BAB III PERANCANGAN 30

3.1. Perancangan Sistem Mekanik Robot Pengangkut Barang 31

3.1.1. Tubuh dan Kerangka Robot Pengangkut Barang 31

3.1.2. Sistem Gerak Robot 34

3.2. Perancangan Sistem Elektronik Robot Pengangkut Barang 34

3.2.1 Mikrokontroler 35

3.2.2. Driver Motor 38

3.2.3. Rotary Encoder 38

3.2.4. Magnetometer 40

3.2.5. Raspberry Pi 41

3.2.6. Perangkat keras untuk Komunikasi Socket 41

3.2.7. Modul Kamera 42

3.2.8. Sumber Daya dan Kelistrikan 43

3.3. Perancangan Perangkat lunak 43

3.3.1. Perancangan Kontroler Level Bawah 44

3.3.1.1. Akuisisi data Sensor 46

3.3.1.1.1. Rotary Encoder 46

3.3.1.1.2. Magnetometer 47

3.3.1.2. Algoritma Fuzzy Logic Controller 48

Page 10: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

3.3.1.2.1. Fuzifikasi Input 48

3.3.1.2.2. Pengambilan Keputusan Fuzzy 51

3.3.1.2.3. Defuzifikasi 54

3.3.1.3. Manuver Pergerakan Robot 57

3.3.2. Perancangan Kontroler Level Menengah 61

3.3.2.1 Perancangan Komunikasi Socket dan serial 62

3.3.2.2 Perancangan Video Streaming 63

3.3.3. Perancangan Kontroler Level Atas 65

BAB IV PENGUJIAN DAN ANALISIS 70

4.1. Pengujian Mekanik 70

4.2. Pengujian Elektronik dan Sensor 73

4.2.1. Rotary encoder 73

4.2.2. Magnetometer 74

4.3. Pengujian Algoritma Fuzzy Logic Controller 77

4.3.1. Karakteristik Error Tanpa Koreksi 78

4.3.2. Koreksi Error dengan Masukan Rotary encoder 78

4.3.3. Koreksi Error dengan Masukan Magnetometer 79

4.3.4. Proteksi Terhadap Kesalahan Arah Hadap 80

4.3.5. Hasil Uji Perintah Maju Lurus 83

4.3.6. Hasil Uji Perintah Putar Kiri, Putar Kanan, Belok Kiri dan Belok Kanan 85

4.3.7. Hasil Fuzzy Surface dengan Menggunakan Fuzzy Toolbox Matlab 87

Page 11: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

4.4. Pengujian Stream Video 89

4.5. Pengujian Komunikasi Wireless 90

BAB V KESIMPULAN DAN SARAN 92

5.1 Kesimpulan 92

5.2 Saran Pengembangan 95

DAFTAR PUSTAKA 97

LAMPIRAN 98

Rancangan Robot 98

Foto Robot Pengangkut Barang 99

Page 12: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Daftar Gambar

Gambar 1.1. Arsitektur sistem robot pengangkut barang 3

Gambar 2.1. Definisi dari Fuzzy control system 8

Gambar 2.2. Blok Diagram dari Fuzzy controller pada umumnya 8

Gambar 2.3. Nilai keanggotaan secara grafis himpunan Pendek, Sedang, dan Tinggi 10

Gambar 2.4. Himpunan Fuzzy untuk Variabel Tinggi Badan 11

Gambar 2.5. Tabel kebenaran boolean standard untuk operasi AND OR dan NOT 13

Gambar 2.6. tabel kebenaran fuzzy untuk operasi AND OR dan NOT 13

Gambar 2.7. Grafik Nilai Kebenaran Keluaran terhadap Masukan untuk operasi AND OR dan

NOT pada Logika Boolean dan Logika Fuzzy 14

Gambar 2.8. Proses mengubah keluaran himpunan fuzzy adalah dengan menggunakan truncation

dengan fungsi min 16

Gambar 2.9. Proses Penalaran Model Fuzzy Takagi-Sugeno-Kang 19

Gambar 2.10. Product Board dari Raspberry Pi Model B Rev 2.0 21

Gambar 2.11. Empat tahap dari video streaming 24

Gambar 2.12. Source Element 26

Gambar 2.13. Element Filter dan Demuxer 26

Gambar 2.14. Element Sink 27

Gambar 2.15. Pipeline yang terdiri dari berbagai macam element. 27

Gambar 2.16. Beberapa element yang dikumpulkan menjadi satu bin. 28

Gambar 2.17. Mekanisme Komunikasi pada GStreamer 29

Gambar 3.1. Blok Diagram dari Sistem Robot Pengangkut Barang yang dirancang 31

Gambar 3.2. Tampak Depan Samping Kerangka Robot Pengangkut Barang 32

Gambar 3.3. Tampak Samping Kanan dan Tampak Depan Kerangka Robot Pengangkut Barang

32

Page 13: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Gambar 3.4. Tampilan dari Robot Pengangkut Barang Setelah Body Aluminium dipasang

33

Gambar 3.5. Driver motor EMS 30A H-Bridge yang digunakan dalam perancangan Robot

Pengangkut Barang 38

Gambar 3.6. Skema Rangkaian Photo Interrupter dengan Rangkaian Schmitt trigger yang

digunakan pada Robot Pengangkut Barang 39

Gambar 3.7. Kompas digital HMC5883L yang Digunakan dalam Perancangan Sistem Robot

Pengangkut Barang 40

Gambar 3.8. Modul Kamera Raspbery Pi yang digunakan dalam Perancangan Sistem robot

pengangkut barang 42

Gambar 3.9. Flow chart dari program Kontroler Level Bawah pada sistem Robot Pengangkut

Barang . 45

Gambar 3.10 Himpunan Fuzzy Untuk Variabel Error Sudut 49

Gambar 3.11 Himpunan Fuzzy Untuk Variabel PWM 50

Gambar 3.12. Implementasi Aturan untuk Roda Kiri dan Kanan yang dibuat pada Array

berukuran 5 x 3. 53

Gambar 3.13 Himpunan Fuzzy untuk variabel Output Delta Kecepatan 55

Gambar 3.14. Diagram State Machine dari sistem kontrol level bawah 59

Gambar 3.15. Flow chart dari proses jalannya program pada

Kontroler Level Menengah 62

Gambar 3.16. Skema Pipeline yang digunakan untuk video streaming

pada Raspberry Pi. 64

Gambar 3.17. Skema Pipeline yang digunakan untuk menerima video stream

pada Pusat kontrol. 65

Page 14: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Gambar 3.18. Flow chart Jalannya Aplikasi Graphical Pengguna Interface

pada Pusat Control 66

Gambar 3.19. Tampilan Graphical Pengguna Interface Applikasi Kontroler Level Atas 67

Gambar 3.20. Tampilan Tab Control Ip Config dari applikasi GUI 68

Gambar 3.21. Contoh Hasil Streaming video yang didapatkan ketika Pengguna menekan Tombol

Stream 69

Gambar 4.1 Pengujian Robot dalam kondisi Terbeban dan kondisi tanpa beban 71

Gambar 4.2. Uji Karakteristik Aktuator dari Sistem Robot Pengangkut Barang 71

Gambar 4.3. Hasil pembacaan Karakteristik Motor dalam Kondisi Tanpa Beban 72

Gambar 4.5. Pembagian Kecepatan Motor DC kedalam 4 Bagian 73

Gambar 4.6. Hasil Pembacaan Pengujian Penuh terhadap Derau Keluaran Magnetometer 77

Gambar 4.7. Error robot tanpa koreksi dari algoritma Fuzzy Logic Controller 78

Gambar 4.8. Hasil Pengujian Koreksi Error Oleh Rotary encoder 79

Gambar 4.9. Pengujian Koreksi Error dengan Masukan Magnetometer 80

Gambar 4.10. Hasil Uji Proteksi Terhadap Error Arah hadap untuk perintah Maju yang

dilakukan dengan menggunakan Magnetometer Pada Roda Kiri Pada Batas Ambang ±15 o

(atas)

dan ±3 o

(bawah) 81

Gambar 4.11. Hasil Uji Proteksi Terhadap Error Arah hadap untuk perintah Mundur yang

dilakukan dengan menggunakan Magnetometer Pada Roda Kiri Pada Batas Ambang ±15 o

(atas)

dan ±3 o

(bawah). 82

Gambar 4.12. Pengujian Perintah Maju Lurus pada Robot Sejauh 15 m 83

Gambar 4.13. Perubahan arah sudut hadap untuk perintah putar kiri. 85

Gambar 4.14. Perubahan arah sudut hadap untuk perintah belok kiri. 85

Page 15: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Gambar 4.15. Perubahan arah sudut hadap untuk perintah putar kanan. 86

Gambar 4.16. Perubahan arah sudut hadap untuk perintah putar kanan. 86

Gambar 4.17. Fuzzy Surface hasil simulasi dari Fuzzy Logic Controller yang dirancang dengan

menggunakan Matlab Fuzzy Toolbox 87

Gambar 4.18 . Hasil simulasi Pengambilan keputusan berdasarkan aturan Fuzzy yang didapatkan

dari Simulasi dengan Fuzzy Toolbox Matlab 88

Gambar 4.19. Pengujian Tunda Waktu Streaming dilakukan dengan cara membandingkan nilai

stop watch dengan hasil stream di monitor 89

Gambar 4.20. Kekuatan Sinyal pada Titik-Titik Pengukuran di Gedung C Fakultas Teknik

Elektronika dan Komputer UKSW. 91

Page 16: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Daftar Tabel

Tabel 2.1. Spesifikasi Hardware Raspberry Pi dan Perbandingannya dengan Notebook PC Yang

digunakan untuk Pusat Kontrol Robot. 22

Tabel 3.1. Spesifikasi motor DC yang Digunakan untuk Aktuator Robot 34

Tabel 3.2. Spesifikasi Perangkat keras dari Arduino Mega2560 36

Tabel 3.3. Tabel kebenaran dari modul H-Bridge EMS-30A 37

Tabel 3.4. Alamat IP Device yang Digunakan dalam Perancangan Sistem Robot Pengangkut

Barang 41

Tabel 3.5. Sumber Daya yang digunakan untuk modul komponen Robot Pengangkut Barang

43

Tabel 3.6. Aturan yang digunakan untuk pengambilan keputusan Fuzzy Roda Kiri 52

Tabel 3.7. Aturan yang digunakan untuk pengambilan keputusan Fuzzy Roda Kanan 52

Tabel 3.8 Daftar Command untuk Pergerakan Robot 60

Tabel 3.9. Daftar Command Tambahan 60

Tabel 3.10. Daftar Command valid yang dapat digunakan oleh Pengguna 69

Tabel 4.1 Hasil Pengujian Rotary encoder 74

Tabel 4.2. Hasil Pengujian Arah hadap Magnetometer Terhadap Referensi Busur Derajat 75

Tabel 4.3. Hasil Pengujian derau pada Sensor Magnetometer 76

Tabel 4.3. Hasil Pengujian Simpangan dari perintah maju lurus sejauh 15 meter. 84

Tabel 4.4. Hasil Percobaan Tunda waktu Video Streaming 90

Page 17: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Daftar Lambang

Fa(x) Fungsi Keanggotaan A di X

Derajat keanggotaan x dalam himpunan fuzzy A

Derajat keanggotaan dari x

Firing Strength dari aturan

Output aturan Fuzzy ke-i

zf Output dari Fuzzy (Takagi Sugeno Kang)

xf input x dari persamaan Fuzzy (Takagi Sugeno Kang)

yf input y dari persamaan Fuzzy (Takagi Sugeno Kang)

A Kuat Arus - Ampere

V Tegangan – Volt

W Daya

Kgf Cm kilogram-force Centimeter (satuan torsi)

LP PWM Roda Kiri

RP PWM Roda Kanan

ERR Error Sudut

DL Selisih Kecepatan Roda Kiri

DR Selisih Kecepatan Roda Kanan

‘x’ State Berhenti

‘w’ State Maju

‘a’ State Putar kiri

Page 18: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

‘s’ State Mundur

‘d’ State Putar Kanan

‘1’ State Belok Kiri

‘2’ State Belok Kanan

Page 19: Sistem Pengatur Kecepatan Roda Berbasis Fuzzy Logic

Daftar Singkatan

TSK Takagi Sugeno Kang

PC Personal Computer

LXDE Lightweight X11 Desktop environment

Codec compressor-decompressor

IP Internet Protocol

ISR Interrupt Service Routine

SDA Serial Data Line

SCL Serial Clock Line

MPEG Motion Picture Experts Group

DVD Digital Versatile Disc

GUI Graphical User Interface

WLAN Wireless Local Area Network

DC Direct Current

CSI Camera Serial Interface

KB Kilo Byte

PWM Pulse Width Modulation

VLC Video Lan Client

VGA Video Graphic Array

MJPEG Motion Joint Photographic Experts Group

SDK Software Development Kit