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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
‘s’ State Mundur
‘d’ State Putar Kanan
‘1’ State Belok Kiri
‘2’ State Belok Kanan
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