pengontrol robot sepak bola beroda dengan … · ii final project wheeled soccer robot controller...

127
TUGAS AKHIR PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN METODE COLOR TRACKING Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Disusun oleh: FRANSISCUS XAVERIUS ENRICO WIDA ARTANTO NIM: 145114012 JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2018 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Upload: doandieu

Post on 15-Aug-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

TUGAS AKHIR

PENGONTROL ROBOT SEPAK BOLA BERODA

DENGAN METODE COLOR TRACKING

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Disusun oleh:

FRANSISCUS XAVERIUS ENRICO WIDA ARTANTO

NIM: 145114012

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2018

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

ii

FINAL PROJECT

WHEELED SOCCER ROBOT CONTROLLER BY

COLOR TRACKING METHOD

Presented as Partial Fulfillment of the Requierments

To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

FRANSISCUS XAVERIUS ENRICO WIDA ARTANTO

NIM: 145114012

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2018

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

iii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

iv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

v

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

Motto Hidup:

“The only way to do great work is to love what you do,

Imagine no limitations on what you can be,

Everyone has their own time zone,

Stay or Move”

Skripsi ini saya persembahkan untuk....

Tuhan Yesus Kristus Sang Juru selamatku

Keluarga dan orang terkasih

Universitas Sanata Dharma Yogyakarta

Teman-teman dari Teknik Elektro

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

vii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

viii

INTISARI

Penelitian ini mencoba melakukan analisa video dengan menggunakan metode color

tracking yang diterapkan pada robot sepak bola beroda agar dapat secara otomatis

mendeteksi dan mengikuti suatu objek berdasarkan warnanya.

Pengontrol robot sepak bola beroda menggunakan Raspberry Pi 3 sebuah komputer

mini yang digunakan untuk mengontrol pergerakan robot secara otomatis dengan

menggunakan masukan video dari Webcam. Pengolahan citra dari masukan video

digunakan untuk mendeteksi objek berdasarkan warna masing-masing objek dengan

bantuan library python yaitu OpenCV. Hasil pengolahan citra akan mendapatkan posisi x

dan posisi y dari masing-masing objek yang terdeteksi akan digunakan untuk

mengendalikan pergerakan robot berdasarkan mode yang diinginkan. Pengendalian robot

terbagi menjadi tiga mode yaitu mode bersiap, bermain, dan berhenti. Mode bersiap robot

akan bergerak menuju tengah seperti posisi kick off. Mode bermain robot akan bergerak

merebut bola, menggiring bola menuju gawang lawan, dan menendang bola ke gawang

lawan. Digunakan sensor kompas untuk membantu robot menuju arah gawang lawan.

Keluaran sensor kompas berupa sudut yang dapat ditentukan arah yang akan dituju.

Perintah dan informasi yang dikirim dari sistem ke robot menggunakan socket python.

Sistem mampu mengendalikan pergerakan robot berdasarkan mode yang diinginkan.

Sistem berhasil mengendalikan pergerakan robot pada mode bersiap pada posisi ujung

kanan lapangan dengan rata-rata kesalahan sebesar 0% dan pada posisi ujung kiri lapangan

dengan rata-rata kesalahan sebesar 0,3%. Sistem berhasil mengendalikan pergerakan robot

pada mode bermain dengan rata-rata kesalahan setpoint akhir sebesar 1,65%. Sistem

berhasil mengkoreksi sudut pada arah yang dituju dengan baik. Sistem berhasil melakukan

komunikasi dengan baik karena data yang dikirim dengan yang diterima adalah sama.

Kata kunci: Raspberry Pi, Python, Robot Sepak Bola Beroda, Color Tracking

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

ix

ABSTRACT

This research tries to do video analysis using the color tracking method that is

applied to wheeled soccer robots so that it can automatically detect and follow an object

based on its color.

Wheeled soccer robot controller using Raspberry Pi 3, a mini computer that is used

to control the movement of robot automatically by using video input from a Webcam.

Image processing from video input is used to detect objects based on the color of each

object with the help of the python library, OpenCV. The image processing results will get

the position x and the y position of each detected object will be used to control the

movement of the robot based on the desired mode. Robot control is divided into three

modes, namely the mode of bersiap, bermain, and berhenti. The bersiap mode will move

towards the middle like the kick off position. The bermain mode will move to grab the

ball, dribble the ball towards the opponent's goal, and kick the ball into the opponent's

goal. A compass sensor is used to help the robot go towards the opponent's goal. Compass

sensor output in the form of an angle that can be determined in the direction to be

addressed. Commands and information sent from the system to the robot use python

socket.

The system is able to control the movement of the robot based on the desired mode.

The system successfully to control the movement of the robot in the ready mode at the

right end position of the field with an average error of 0% and the position of the left end

of the field with an average error of 0,3%. The system successfully to to control the

movement of the robot in play mode with an average setpoint error of 1,65%. The system

succeeds in correcting the angle in the direction that is intended properly. The system

successfully communicates well because the data sent with the received is the same.

Keywords: Raspberry Pi, Python, Wheeled Soccer Robot, Color Tracking

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

x

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xi

DAFTAR ISI

DAFTAR GAMBAR .......................................................................................................... xiii

DAFTAR TABEL .............................................................................................................. xvi

BAB I ..................................................................................................................................... 1

1.1. Latar Belakang ............................................................................................................. 1

1.2. Tujuan dan Manfaat Penelitian .................................................................................... 2

1.3. Pembatasan Masalah .................................................................................................... 2

1.4. Metodologi Penelitian .................................................................................................. 3

BAB II ................................................................................................................................... 5

2.1. Raspberry Pi ................................................................................................................. 5

2.1.1. Raspberry Pi 3 ................................................................................................. 5

2.1.2. USB Webcam ................................................................................................... 6

2.1.3. Modul Sensor Kompas HMC5883L ................................................................ 7

2.2. Python 2 ....................................................................................................................... 9

2.3. Tkinter ........................................................................................................................ 10

2.4. Pengolahan Citra Digital (Image Processing)............................................................ 13

2.4.1. OpenCV ......................................................................................................... 15

2.4.2. Ruang Warna HSV ........................................................................................ 15

2.5. Pelacakan Objek ......................................................................................................... 17

2.6. Pembentukan Gambar pada Kamera Lubang Jarum .................................................. 19

2.6.1. Proyeksi Sebuah Titik pada Kamera ............................................................. 20

2.6.2. Proyeksi Sebuah Garis pada Kamera............................................................. 23

2.6.3. Perhitungan Jarak Robot dan Gawang .......................................................... 24

2.6.4. Penentuan Posisi Robot di Lapangan ............................................................ 26

2.7. Python Socket ............................................................................................................ 27

BAB III ................................................................................................................................ 30

3.1. Proses Kerja Sistem ................................................................................................... 30

3.2. Perancangan Perangkat Keras .................................................................................... 31

3.2.1. Desain Coach Computer Pengontrol Robot................................................... 31

3.2.2. Posisi Kamera Pada Robot ............................................................................ 32

3.3. Perancangan Perangkat Lunak ................................................................................... 34

3.3.1. Diagram Alir Utama ...................................................................................... 34

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xii

3.3.2. Subprogram Bersiap ...................................................................................... 37

3.3.3. Subprogram Bermain ..................................................................................... 39

3.3.4. Subprogram Berhenti ..................................................................................... 41

3.3.5. Subprogram Menentukan Posisi Bola, Gawang dan Lawan ......................... 41

3.3.6. Subprogram Tindakan Pengontrolan Bertahan.............................................. 43

3.3.7. Subprogram Tindakan Pengontrolan Menyerang .......................................... 46

3.3.8. Subprogram Kirim Perintah ke Robot ........................................................... 48

BAB IV ................................................................................................................................ 50

4.1. Perubahan Proses Kerja Sistem .................................................................................. 50

4.2. Perubahan Perancangan ............................................................................................. 51

4.2.1. Perubahan Fungsi Sensor Kompas ................................................................ 51

4.2.2. Perubahan Mode Menyerang ......................................................................... 53

4.2.3. Perubahan Mode Bertahan............................................................................. 55

4.2.4. Perubahan Subprogram Kirim Perintah ke Robot ......................................... 56

4.3. Hasil Implementasi..................................................................................................... 60

4.4. Hasil dan Analisa Keberhasilan Sistem ..................................................................... 64

4.5. Pembahasan Perangkat Keras .................................................................................... 76

4.6. Pembahasan Perangkat Lunak.................................................................................... 77

BAB V ................................................................................................................................. 92

5.1. Kesimpulan ................................................................................................................ 92

5.2. Saran ........................................................................................................................... 93

DAFTAR PUSTAKA .......................................................................................................... 94

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xiii

DAFTAR GAMBAR

Gambar 1. 1 Diagram blok perancangan.. ............................................................................. 3 Gambar 2. 1 Tampilan Board Rasberry Pi. ........................................................................... 5

Gambar 2. 2 Logitech C270 USB Webcam yang digunakan. ............................................... 6

Gambar 2. 3 Modul sensor kompas HMC5883L yang digunakan. ....................................... 8

Gambar 2. 4 Contoh Tkinter. ............................................................................................... 10

Gambar 2. 5 Tampilan Window Tkinter. ............................................................................ 13

Gambar 2. 6 Citra terbentuk array 2 dimensi. ..................................................................... 13

Gambar 2. 7 Representasi citra digital dalam 2 dimensi. .................................................... 15

Gambar 2. 8 contoh library pada OpenCV. ......................................................................... 15

Gambar 2. 9 Model ruang warna RGB dan HSV ................................................................ 16

Gambar 2. 10 Warna-warna pada Pemodelan RGB yang digunakan.................................. 17

Gambar 2. 11 Proses pembentukan gambar pada kamera lubang jarum. ............................ 20

Gambar 2. 12 Representasi matematika dari pembentukan sebuah titik pada kamera. ....... 20

Gambar 2. 13 Representasi matematika dari pembentukan gambar pada kamera

pada bidang XZ. ........................................................................................... 21

Gambar 2. 14 Representasi kesebangunan antara titik Q, bidang gambar, dan pusat

proyeksi pada bidang XZ. ............................................................................ 21

Gambar 2. 15 Representasi matematika dari pembentukan gambar pada kamera

pada bidang YZ. ........................................................................................... 22

Gambar 2. 16 Representasi kesebangunan antara titik Q, bidang gambar, dan pusat

proyeksi pada bidang YZ. ............................................................................ 22

Gambar 2. 17 Representasi matematika dari pembentukan sebuah garis yang

melewati titik Q1 dan Q2 pada kamera........................................................ 23

Gambar 2. 18 Pendeteksian objek gawang menunjukkan nilai pixel yang

berhubungan. ................................................................................................ 25

Gambar 2. 19 Desain sistem koordinat lapangan. ............................................................... 26

Gambar 2. 20 Penentuan koordinat terhadap salah satu tiang. ............................................ 27 Gambar 3. 1 Blok diagram cara kerja sistem....................................................................... 30

Gambar 3. 2 Tampilan Robot. ............................................................................................. 32

Gambar 3. 3 Tampilan Robot .............................................................................................. 32

Gambar 3. 4 Tampilan Robot .............................................................................................. 32

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xiv

Gambar 3. 5 Penentuan posisi kamera dengan jarak robot terhadap bola. .......................... 33

Gambar 3. 6 Spesifikasi lapangan secara keseluruhan. ....................................................... 34

Gambar 3. 7 Kerangka interface program utama. ............................................................... 34

Gambar 3. 8 Diagram alir utama. ........................................................................................ 35

Gambar 3. 9 Representasi nilai piksel x dan y dari kamera pada lapangan. ....................... 36

Gambar 3. 10 Representasi nilai x dan y dari sensor kompas pada lapangan. ..................... 36

Gambar 3. 11 Diagram alir subprogram bersiap. ................................................................ 37

Gambar 3. 12 Gambaran pergerakan saat bola berada di tengah lapangan. ........................ 38

Gambar 3. 13 Gambaran pergerakan saat bola berada di sebelah kiri gawang. .................. 38

Gambar 3. 14 Gambaran pergerakan saat bola berada di sebelah kanan gawang. .............. 39

Gambar 3. 15 Diagram alir subprogram bermain. ............................................................... 40

Gambar 3. 16 Diagram alir subprogram stop. ..................................................................... 41

Gambar 3. 17 Diagram alir subprogram menentukan tujuan robot dan posisi lawan. ........ 42

Gambar 3. 18 Diagram alir subprogram tindakan pengontrolan bertahan. ......................... 44

Gambar 3. 19 Gambaran pergerakan bertahan saat bola berada di sebelah ........................ 45

Gambar 3. 20 Gambaran pergerakan bertahan saat bola berada di sebelah ........................ 45

Gambar 3. 21 Diagram alir subprogram tindakan pengontrolan menyerang. ..................... 46

Gambar 3. 22 Gambaran pergerakan menyerang saat bola berada di sebelah

kiri gawang................................................................................................... 47

Gambar 3. 23 Gambaran pergerakan menyerang saat bola berada di sebelah

kanan gawang............................................................................................... 48

Gambar 3. 24 Diagram alir subprogram kirim perintah ke robot. ....................................... 49 Gambar 4. 1 Perubahan Blok Diagram Cara Kerja Sistem ................................................. 50

Gambar 4. 2 Representasi nilai x dan y dari sensor kompas pada lapangan........................ 51

Gambar 4. 3 Grafik nilai y ................................................................................................... 52

Gambar 4. 4 Grafik nilai x ................................................................................................... 52

Gambar 4. 5 Perubahan representasi nilai sudut dari sensor kompas pada lapangan. ........ 53

Gambar 4. 6 Perubahan gambaran pergerakan menyerang saat bola .................................. 54

Gambar 4. 7 Perubahan gambaran pergerakan menyerang saat bola ................................. 54

Gambar 4. 8 Perubahan diagram alir subprogram tindakan pengontrolan bertahan. .......... 55

Gambar 4. 9 Perubahan gambaran pergerakan bertahan ..................................................... 56

Gambar 4. 10 Tampilan GUI ............................................................................................... 60

Gambar 4. 11 Tampilan pada lapangan hasil analisis OpenCV .......................................... 61

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xv

Gambar 4. 12 Tampilan Geany............................................................................................ 62

Gambar 4. 13 Tampilan hasil analisa dan perintah yang dikirim ........................................ 63

Gambar 4. 14 Hasil implementasi robot dari tampak depan ............................................... 63

Gambar 4. 15 Hasil implementasi robot dari tampak samping ........................................... 63

Gambar 4. 16 Hasil implementasi posisi kamera pada robot .............................................. 64

Gambar 4. 17 Tampilan posisi robot hasil analisa saat mode bersiap ................................. 65

Gambar 4. 18 Posisi robot di lapangan saat keadaan mode bersiap di titik A..................... 66

Gambar 4. 19 Hasil kamera pada mode bersiap dari titik A ................................................ 66

Gambar 4. 20 Hasil kamera pada mode bersiap dari titik B ................................................ 67

Gambar 4. 21 Posisi robot di lapangan saat keadaan mode bermain. ................................. 70

Gambar 4. 22 Denah sudut yang dikirim ............................................................................. 74

Gambar 4. 23 Tampilan hasil pengolahan sudut kompas. ................................................... 74

Gambar 4. 24 Coach computer lengkap dengan alat pembantunya. ................................... 76

Gambar 4. 25 Robot dan tata letak kamera. ........................................................................ 76

Gambar 4. 26 Listing program pemanggilan library serta inisialisasi variabel. .................. 77

Gambar 4. 27 Listing program pengaturan komunikasi dengan robot. ............................... 78

Gambar 4. 28 Listing program untuk menentukan posisi objek. ......................................... 79

Gambar 4. 29 Listing program untuk merubah format data posisi. ..................................... 79

Gambar 4. 30 Listing program untuk pengaturan sensor kompas. ...................................... 80

Gambar 4. 31 Listing program untuk menjalankan sensor kompas. ................................... 81

Gambar 4. 32 Listing program untuk menentukan arah yang diinginkan. .......................... 82

Gambar 4. 33 Listing program untuk pengaturan servo dalam menggerakan kamera. ....... 82

Gambar 4. 34 Motor servo yang digunakan. ....................................................................... 83

Gambar 4. 35 Listing program untuk tampilan GUI. .......................................................... 84

Gambar 4. 36 Listing program untuk tombol-tombol tampilan GUI. ................................. 85

Gambar 4. 37 Listing program tampilan antarmuka untuk menandai objek. ...................... 86

Gambar 4. 38 Listing program untuk mengubah data menjadi string

untuk dikirim ke robot. ................................................................................ 87

Gambar 4. 39 Listing program untuk menentukan setpoint pada mode bersiap. ................ 88

Gambar 4. 40 Listing program untuk menentukan setpoint pada mode bermain. ............... 89

Gambar 4. 41 Penentuan jarak robot antara lawan atau bola. ............................................. 89

Gambar 4. 42 Listing program untuk merubah ke mode bermain. ...................................... 90

Gambar 4. 43 Listing program untuk menentukan mode berhenti. ..................................... 91

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

xvi

DAFTAR TABEL

Tabel 2. 1 spesifikasi dari Logitech HD Webcam C270. ...................................................... 7

Tabel 2. 2 Penggunaan Tipe Data dalam Python .................................................................. 9

Tabel 2. 3 Macam-macam operator dalam Python .............................................................. 10

Tabel 2. 4 Komponen – Komponen Tkinter ........................................................................ 11

Tabel 2. 5 Pergeseran koordinat robot terhadap tiang gawang ke koordinat robot

di lapangan. ......................................................................................................... 27 Tabel 3. 1 Daftar kode untuk informasi dan perintah kepada robot .................................... 48

Tabel 3. 2 Format pengiriman informasi dan perintah kepada robot .................................. 49 Tabel 4. 1 Data dari pengujian............................................................................................. 52

Tabel 4. 2 Data dari pengujian panjang lapangan (nilai y) .................................................. 52

Tabel 4. 3 Perubahan daftar kode untuk informasi dan perintah kepada robot ................... 58

Tabel 4. 4 Format informasi dan perintah yang dikirim oleh sistem. .................................. 58

Tabel 4. 5 Format informasi yang diterima oleh sistem. ..................................................... 58

Tabel 4. 6 Data dari pengujian pada mode bersiap dari titik A ........................................... 67

Tabel 4. 7 Data dari pengujian pada mode bersiap dari titik B ........................................... 68

Tabel 4. 8 Pengukuran nilai posisi y.................................................................................... 68

Tabel 4. 9 Data dari pengujian pada mode bermain ............................................................ 71

Tabel 4. 10 Data Dikirim saat objek kiper lawan di luar jangkauan kamera ...................... 75

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Bidang ilmu robotika pada masa sekarang ini banyak dimanfaatkan dalam berbagai

aspek kehidupan manusia. Robot saat ini berkembang sangat pesat, sehingga dapat

melakukan berbagai pekerjaan yang menggantikan satu jenis atau lebih pekerjaan yang

biasa dikerjaan oleh manusia. Untuk pekerjaan-pekerjaan tertentu, manusia sudah

menggunakan bagian tertentu dari robot. Dalam melakukan pekerjaan nya, robot

mengandalkan suatu sensor untuk mengikuti suatu pola gerakan suatu objek. Salah satu

sensor yang digunakan untuk indra penglihatan robot adalah kamera. Kamera merupakan

perangkat keras yang berfungsi menangkap gambar dan mengubahnya ke dalam bentuk

citra digital yang dapat dibaca dan diproses oleh komputer. Pada proses tersebut

pengolahan citra digital berperan sehingga robot bisa memproses citra tersebut, mengolah

informasi yang diperlukan dari citra tersebut dan menentukan keputusan dan aksi yang

harus dilakukan robot tersebut.

Perkembangan teknologi kemampuan dari suatu komputer saat ini dan meningkatkan

kebutuhan akan analisa video dilakukan secara otomatis yang diterapkan pada robot

sehingga menambah kemampuan robot dalam mendeteksi dan mengikuti suatu objek

sehingga menghasilkan algoritma object tracking dengan berbagai metode. Penggunaan

tracking objek saat ini merupakan sebuah permasalahan yang penting untuk sejumlah

aplikasi yang bisa menguntungkan dalam penerapannya, terutama dalam bidang robotika

yaitu mobile robot, robot soccer dan masih banyak lagi yang bida diaplikasikan.

Judul tugas akhir ini juga menggunakan object tracking yaitu Pengontrol Robot

Sepak Bola Beroda Dengan Metode Color Tracking, pada penelitian ini akan mendesain

dan mengimplementasikan kemampuan robot dapat mendeteksi dan melakukan tracking

sebuah objek menurut warna. Robot akan melakukan tracking terhadap objek bola dengan

warna tertentu dan menggunakan sebuah lapangan sepakbola dengan ukuran tertentu.

Robot menggunakan Raspberry Pi sebagai pemroses utamanya. Robot juga menggunakan

sistem kendali yang memudahkan pengendali untuk mengoperasikannya. Untuk membuat

robot mampu melakukan itu dibutuhkan sensor dan penerapan metode pengontrol yang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

2

khusus. Sehingga robot dapat melakukan pengolahan citra untuk mengenali objek apa yang

harus di ikuti dan menghasilkan keputusan mengikuti objek dari keadaan yang di dapat

dari kamera.

Pada penelitian sebelumnya terdapat beberapa peneliti yang pernah melakukan

percobaan robot seperti ini dengan kamera diletakkan diatas lapangan, pada penelitian ini

akan menggunkan kamera yang terpasang pada robot. Dalam tugas akhir ini, akan

dilakukan analisis terhadap prosedur tracking pada proses pendeteksian dan tracking

melalui pemrosesan data dengan bantuan kamera.

1.2. Tujuan dan Manfaat Penelitian

Tujuan dari penelitian ini adalah:

1. Merancang suatu pengontrol robot sepak bola beroda yang dapat mengenal dan

mendeteksi objek yang menjadi sasarannya.

2. Memprogram Raspberry Pi agar dapat mengoperasikan kamera untuk melakukan object

tracking pada warna secara otomatis.

3. Merancang robot yang dapat dikendalikan secara nirkabel.

Manfaat dari penelitian ini adalah:

1. Untuk Masyarakat:

Menyediakan sebuah edukasi, pedoman, dan rujukan untuk pengembangan pembuatan

pengontrol robot sepakbola beroda bagi masyarakat luas.

2. Untuk Universitas Sanata Dharma:

Menyediakan robot yang nantinya digunakan sebagai bahan acuan, pedoman, dan rujukan

untuk program studi Teknik Elektro Universitas Sanata Dharma dalam mengikuti Kontes

Robot Indonesia dalam bidang Robot Sepak Bola Beroda Indonesia.

1.3. Pembatasan Masalah

Agar Tugas Akhir ini bisa mengarah pada tujuan dan untuk menghindari terlalu

kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah

yang sesuai dengan judul dari Tugas Akhir ini. Adapun batasan masalah adalah:

1. Menggunakan Raspberry Pi 3 sebagai komputer mini yang mengolah video sebagai

pengontrol robot untuk mengejar, menghindar lawan, dan menendang bola.

2. Bahasa pemograman yang digunakan adalah bahasa pemograman Python.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

3

3. Kamera yang digunakan adalah USB Webcam terpasang pada robot.

4. Komunikasi Wireless dengan robot menggunakan Python Socket

5. Bola yang digunakan adalah bola futsal berwarna orange.

6. Gawang berwarna putih berukuran 1 x 2 m.

7. Luas lapangan keseluruhan berukuran sekitar 7m x 5m.

1.4. Metodologi Penelitian

Berdasarkan pada tujuan yang ingin dicapai metode yang digunakan dalam

penyusunan tugas akhir ini adalah:

1. Studi literatur, yaitu dengan cara mendapatkan data dengan membaca buku-buku dan

jurnal-jurnal yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini.

2. Perancangan subsistem hardware dan software. Tahap ini bertujuan untuk mencari

bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan

berbagai faktor-faktor permasalahan dan kebutuhan yang telah ditentukan. Bagian yang

dibuat adalah bagian coach computer yang akan menjadi kontroler bagi robot, pada

coach computer akan terdapat program pengalisis video yang diproses dengan metode

pengolahan citra sehingga didapatkan posisi objek. Lalu hasil dari pengolahan citra

tersebut akan dipakai untuk menghindari lawan saat mengejar atau menggiring bola

menuju gawang. Untuk mengirimkan perintah ke robot menggunakan modem wireless.

Gambar 1. 1 Diagram blok perancangan..

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

4

3. Pembuatan subsistem harware dan software. Tahap ini bertujuan untuk membuat model

yang sesuai dengan yang telah dirancang pada tahap sebelumnya.

4. Proses pengambilan data dilakukan dua percobaan. Pengambilan data yang pertama

dilakukan dengan meletakan bola pada posisi acak lalu kamera akan mendeteksi objek

bola dan mengirimkan sinyal bahwa objek bola berhasil di deteksi. Pengambilan data

kedua dilakukan dengan percobaan kamera mendeteksi gawang dan mengirim sinyal

bahwa objek gawang berhasil di deteksi. Data yang diambil adalah berupa informasi

atau perintah yang akan dikirim ke robot yaitu nilai pengukuran jarak berupa nilai x dan

y dari objek (gawang, bola, dan tujuan tertentu) dan nilai yang didapatkan dari kompas.

Nilai pengukuran jarak didapatkan dari pengolahan citra video masukan dari USB

Webcam.

5. Analisis dan penyimpulan hasil percobaan. Analisis data yang dilakukan dengan melihat

kemampuan coach computer untuk mengolah masukan video dan dari hasil pengolahan

tersebut sudah mampu mendeteksi objek bola dan gawang. Selain itu juga menganalisis

data yang dikirimkan sudah bisa diterima oleh robot. Dan menyimpulkan berdasarkan

data yang didapat apakah coach computer sudah berhasil mengendalikan robot sepak

bola beroda dengan baik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

5

BAB II

DASAR TEORI

2.1. Raspberry Pi

Perangkat Raspberry Pi terlihat pada gambar 2.1 adalah komputer papan tunggal

(single board circuit,SBC) yang seukuran sebuah kartu kredit.Diantara kelebihan

Raspberry Pi dibanding board microcontroler yang lain yaitu Port/koneksi untuk display

berupa TV atau Monitor PC serta koneksi USB untuk Keyboard dan Mouse serta camera

seperti webcam. Raspberry Pi memiliki prosesor, RAM dan port yang bisa ditemukan pada

banyak komputer. Raspberry Pi dapat digunakan untuk mengedit dokumen, memutar video

HD, bermain game, coding dan masih banyak lagi seperti sebuah komputer desktop [2].

Gambar 2. 1 Tampilan Board Rasberry Pi.

2.1.1. Raspberry Pi 3

Raspberry Pi dibuat dengan type yang berbeda – beda. Pada peneltian ini

menggunakan type terbaru dari Raspberry Pi yaitu Raspberry Pi model B. Berikut

merupakan spesifikasi dari Raspberry Pi 3 model B:

1. Quad Core 1.2GHz Broadcom BCM2837 64bit CPU

2. 1GB RAM

3. BCM43438 wireless LAN dan Bluetooth Low Energy (BLE) di board

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

6

4. GPIO 40 pin

5. 4 slot USB 2

6. 4 keluaran Pole stereo dan port composite video

7. Full size HDMI

8. Port kamera CSI untuk menghubungkan Pi Camera

9. Port DSI untuk menghubungkan layar sentuh yang kompatibel dengan Raspberry Pi

10. Port Micro SD untuk memuat sistem operasi dan menyimpan data

11. Upgrade sumber daya USB Mikro hingga 2,5A

2.1.2. USB Webcam

Webcam merupakan singkatan dari web camera adalah merupakan perangkat yang

berupa sebuah kamera digital yang dihubungkan ke komputer atau laptop. Layaknya

kamera pada umumnya, sebuah webcam dapat mengirimkan gambar-gambar secara real-

time dengan bantuan internet. Ada banyak jenis webcam yang terjual di pasaran. Beberapa

di antaranya dapat dihubungkan ke komputer dengan menggunakan USB port, namun ada

juga yang berjenis wireless [4]. Namun untuk jenis webcam yang akan dipakai

menggunakan USB port.

Pada umumnya webcam dilengkapi dengan sejumlah fitur seperti:

1. Mikrofon

2. Kemampuan untuk digeser dan disesuaikan posisinya (sesuai keinginan pengguna)

3. Sensor yang terpasang secara built-in yang dapat mendeteksi pergerakan yang ada di

depannya

4. Lampu indikator yang ketika menyala berarti kamera tersebut tengah aktif

Gambar 2. 2 Logitech C270 USB Webcam yang digunakan [5].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

7

Tabel 2. 1 spesifikasi dari Logitech HD Webcam C270.

Camera Specifications:

Connection Type Corded USB

USB Type High Speed USB 2.0

USB VID_PID VID_046D&PID_081A

Microphone Built-in, Noise Supression

Lens and Sensor Type Plastic

Focus Type Fixed

Field of View (FOV) 60°

Focal Length 4.0 mm

Optical Resolution (True) 1280 x 960 1.2MP

Image Capture (4:3 SD) 320x240, 640x480 1.2 MP, 3.0 MP

Image Capture (16:9 W) 360p, 480p, 720p

Video Capture (4:3 SD) 320x240, 640x480, 800x600

Video Capture (16:9 W) 360p, 480p, 720p,

Frame Rate (max) 30fps @ 640x480

Video Effects (VFX) N/A

Right Light Right Light 2

Buttons Other NA

Indicator Lights (LED) Activity/Power

Privacy Shade No

Clip Size (max) 0 to infinity

Cable Length 5 Feet or 1.5 Meters

Mirip dengan kamera digital pada umumnya, webcam bekerja dengan menangkap

cahaya lewat lensa berukuran kecil di bagian depan dengan bantuan detektor cahaya

mikroskopik yang terpasang pada microchip penerima gambar, umumnya berteknologi

CMOS image sensor. Webcam pada jenis ini menggunakan kabel USB di bagian belakang

berguna untuk menyuplai listrik ke webcam dari komputer dan mengambil informasi

digital yang ditangkap oleh sensor webcam untuk diteruskan ke komputer. Kamera

memiliki lebar lensa sebesar 4mm dengan besar sudut view-nya adalah 60°.

2.1.3. Modul Sensor Kompas HMC5883L

Modul Kompas HMC5883L adalah sebuah modul yang digunakan untuk

menunjukkan arah mata angin digital, atau juga disebut kompas digital. Modul ini

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

8

menggunakan komponen utama berupa IC HMC5883 yang merupakan IC kompas digital 3

axis yang memiliki interface berupa 2 pin I2C.

HMC5883 memiliki sensor magneto-resistive HMC118X series ber-resolusi tinggi,

ditambah ASIC dengan konten amplification, automatic degaussing strap driver, offset

cancellation dan 12 bit ADC yang memungkinkan keakuratan kompas mencapai 1 sampai

2 °. Modul ini biasa digunakan untuk keperluan sistem navigasi otomatis, mobile phone,

netbook dan perangkat navigasi personal.

Gambar 2. 3 Modul sensor kompas HMC5883L yang digunakan.

Modul ini memiliki 5 pin, diantaranya :

1. VCC (5V)

2. GND

3. SCL

4. SDA

5. DRDY

Berikut adalah beberapa fitur dari Modul Kompas GY-273 :

1. Berbasis sensor magnetoresistive 3 axis.

2. 12-Bit ADC terkopling dengan Low Noise AMR Sensor yang memiliki 2 mili-gauss

3. Field dengan resolusi.kurang lebih 8 Gauss Fields.

4. Tegangan kerja 5V DC.

5. Menggunakan antarmuka I2C

6. Keluaran rata-rata maksimum 160 Hz.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

9

2.2. Python 2

Python merupakan bahasa pemograman tingkat tinggi ( high level language) yang

dikembangkan oleh Guido van Rosum pada tahun 1998. Python dirancang untuk

memberikan kemudahan yang sangat luar biasa kepada programer baik dari segi efisien

waktu, maupun kemudahan dalam pengembangan program. Python menjadi bahasa resmi

yang terintegrasi dalam Raspberry Pi. Python mampu menangani pemrograman sederhana

hingga pemrograman yang kompleks serta mendukung pemrograman berbasis grafis (GUI

programming)[6].

1. Tipe Data Python

Python sendiri mempunyai tipe data yang cukup unik bila kita bandingkan dengan

bahasa pemrograman yang lain. Berikut adalah tipe data dari bahasa pemrograman

Python[7] :

Tabel 2. 2 Penggunaan Tipe Data dalam Python

Tipe Data Contoh Penjelasan

Boolean True atau False Menyatakan benar(True) yang bernilai 1, atau

salah(False) yang bernilai 0

String "Ayo belajar

Python"

Menyatakan karakter/kalimat bisa berupa huruf

angka, dll (diapit tanda " atau ')

Integer 25 atau 1209 Menyatakan bilangan bulat

Float 3.14 atau 0.99 Menyatakan bilangan yang mempunyai koma

Hexadecimal 9a atau 1d3 Menyatakan bilangan dalam format heksa

(bilangan berbasis 16)

Complex 1 + 5j Menyatakan pasangan angka real dan imajiner

List ['xyz', 786, 2.23] Data untaian yang menyimpan berbagai tipe data

dan isinya bisa diubah-ubah

Tuple ('xyz', 768, 2.23) Data untaian yang menyimpan berbagai tipe data

tapi isinya tidak bisa diubah

Dictionary {'nama':

'adi','id':2}

Data untaian yang menyimpan berbagai tipe data

berupa pasangan penunjuk dan nilai

2. Operator

Operator merupakan simbol – simbol tertentu yang digunakan untuk melakukan operasi

tertentu. Ada beberapa macam operator yang terdapat dalam bahasa pemrogaman

Python yaitu:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

10

Tabel 2. 3 Macam-macam operator dalam Python

Operator Simbol Contoh

Penjumlahan + c = a + b

Pengurangan - c = a - b

Perkalian * c = a * b

Pembagian / c = a / b

Sisa Bagi % c = a % b

Pemangkatan ** c = a ** b

Lebih Besar > c = a > b

Lebih Kecil < c = a < b

Sama Dengan == c = a == b

Tidak Sama dengan != c = a != b

Lebih Besar Sama dengan >= c = a >= b

Lebih Kecil Sama dengan <= c = a <= b

Logika AND and c = a and b

Logika OR or c = a or b

Negasi/kebalikan not c = not a

AND & c = a & b

OR | c = a | b

XOR ^ c = a ^ b

Negasi/kebalikan ~ c = ~a

Left Shift << c = a << b

Right Shift >> c = a >> b

2.3. Tkinter

Tkinter merupakan modul yang disediakan oleh Python untuk pengembangan

aplikasi GUI. Modul ini merupakan pustaka default Python yang dikembangkan dari

toolkit Tk atau Tcl (Tool Command Language). Untuk membuat aplikasi GUI

menggunakan Tkinter, maka harus mengetahui tahapan-tahapan dalam membangun

aplikasi GUI menggunakan Tkinter.

Gambar 2. 4 Contoh Tkinter.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

11

Secara umum terdapat 5 tahapan dalam pengembangan aplikasi GUI menggunakan

Tkinter yaitu [6]:

1. Memanggil modul Tkinter melalui perintah import Tkinter atau from Tkinter

import *.

2. Membuat objek jendela root (top-level windowingobject) yang memuat seluruh aplikasi

GUI.

3. Membuat atau menambahkan komponen-komponen GUI dan fungsionalitas ke dalam

objek jendela root.

4. Mengkoneksikan atau menggabungkan komponen-komponen GUI yang sudah

ditambahkan menjadi satu aplikasi.

5. Memanggil loop utama.

Dengan menggunakan Tkinter, dapat ditambahkan beberapa komponen pada aplikasi

yang akan dibuat. Komponen ini bisa berdiri sendiri atau dapat diisi komponen lain

(disebut Container), misalkan tombol, cekbox, dan label. Komponen container merupakan

komponen yang berisi/ditempeli oleh komponen lain seperti frame dan window.

Tabel 2. 4 Komponen – Komponen Tkinter

Komponen Deskripsi

Button Komponen Button berfungsi untuk menampilkan sebuah tombol.

Canvas Komponen Canvas digunakan untuk menggambar bentuk seperti

garis, lingkaran, poligon, dan kotak.

Checkbutton

Komponen Checkbutton berfungsi menampilkan sejumlah pilihan

yang ditandai dengan tanda „centang‟. Pengguna aplikasi dapat

memilih lebih dari satu pilihan.

Entry Komponen Entry berfungsi menampilkan kotak teks satu-baris

untuk menerima masukan dari pengguna.

Frame Komponen Frame berfungsi sebagai kontainer bagi komponen lain.

Label Komponen Label berfungsi memberikan keterangan untuk

komponen lain. Komponen ini juga dapat diisi gambar.

Listbox Komponen Listbox berfungsi menyediakan daftar pilihan untuk

pengguna.

Menubutton Komponen Menubutton berfungsi menampilkan menu.

Menu Komponen Menu berfungsi memberikan berbagai perintah kepada

pengguna. Perintah-perintah ini juga tercantum dalam Menubutton.

Message Komponen Message berfungsi menampilkan teks yang terdiri dari

sejumlah baris untuk menerima beberapa nilai dari pengguna.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

12

Radiobutton Komponen Radiobutton berfungsi menampilkan sejumlah pilihan

dalam bentuk tombol radio.

Scale Komponen Scale berfungsi menampilkan skala geser.

Scrollbar Komponen Scrollbar berguna untuk menambahkan fungsi geser

(scroll) pada beberapa komponen, seperti komponen Listbox.

Text Komponen Text berfungsi menampilkan teks dalam multi baris.

Toplevel Komponen Toplevel digunakan untuk membuat sebuah kontainer

window yang terpisah.

Untuk menjalankan aplikasi yang sudah di desain dengan beberapa komponen di

dalamnya, maka perlu mengeksekusi program tersebut. Ketika sebuah program di

eksekusi, maka program tersebut akan mengalami perputaran tak berhingga (infinite loop).

Kode untuk memasukan program yang sudah dibuat dalam kondisi perputaran ini yaitu

Tkinter.mainloop()

Jika menggunakan from-import untuk mengambil semua fungsi pada Tkinter, cukup

menuliskan

Root.mainloop()

Dengan root pada kode diatas mengacu pada window utama (toplevel). Berikut ini

merupakan sebuah listing program untuk menampilkan sebuah window.

Selain itu dapat menuliskan kode diatas seperti ini,

Tampilan yang dihasilkan dari program diatas seperti gambar 2.5 berikut ini,

1

2

3

4

# file: cobaTk.py

import Tkinter

root = Tkinter.Tk()

# Kode untuk menambahkan komponen

root.mainloop()

1

2

3

4

5

# file: cobaTk.py

From Tkinter import *

root = Tk()

# Kode untuk menambahkan komponen

root.mainloop()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

13

Gambar 2. 5 Tampilan Window Tkinter.

2.4. Pengolahan Citra Digital (Image Processing)

Pada indera penglihatan manusia dapat dengan mudah beradaptasi dan

menginterprestasikan sebuah objek untuk mendapatkan informasi, dimana sebuah objek

dapat mengalami perubahan baik karena perbedaan siang dan malam atau karena pengaruh

cahaya dan bayangan. Citra dapat di definisikan sebagai fungsi dari dua variable misalnya

f(x,y) dimana f sendiri adalah sebagai amplitudo (misal kecerahan) citra pada

koordinat (x,y)[8].

Gambar 2. 6 Citra terbentuk array 2 dimensi.

Pengolahan citra adalah cabang ilmu yang informatika untuk memperbaiki kualitas

citra agar kualitasnya lebih baik atau lebih mudah diinterpretasi oleh manusia maupun

komputer. Input dari program pengolahan citra adalah citra dan keluarannya pun citra pula.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

14

Sedangkan digital disini mempunyai maksud bahwa pengolahan citra atau gambar

dilakukan menggunakan komputer.

Dewasa ini pengolahan citra digital digunakan dalam berbagai bidang untuk

mempermudah manusia dalam melakukan analisis dan pekerjaan. Untuk pekerjaan-

pekerjaan tertentu , manusia sudah menggunakan bagian tertentu dari robot. Robot ini

bekerja mengandalkan sensor. Salah satu sensor yang dapat digunakan robot adalah

kamera. Disitulah Pengolahan Citra Digital berperan sehingga robot bisa memproses citra

tersebut, mengekstrak informasi yang diperlukan dari citra tersebut dan menetukan

keputusan dan aksi yang harus dilakukan robot tersebut.

Sebuah citra digital dapat diwakili oleh sebuah matriks dua dimensi f(x,y) yang

terdiri dari M kolom dan N baris, dimana perpotongan antara kolom dan baris disebut

piksel (pixel = picture element) atau element terkecil dari sebuah citra. Berikut ini adalah

gambaran matriks dari citra digital:

Dimana indeks baris (x) dan indeks kolom (y) menyatakan suatu koordinat titik pada citra,

sedangkan f (x,y), merupakan intensitas (° keabuan) pada titik (x,y).Sehingga suatu citra f

(x,y) dalam fungsi matematis dapat ditulis sebagai berikut:

0 = x = M-1

0 = x = N-1

0 = f (x,y) = G-1

dengan:

M = jumlah piksel baris (row) pada array citra

N = jumlah piksel kolom (column) pada array citra

G = nilai skala keabuan (graylevel)

(2.1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

15

Gambar 2. 7 Representasi citra digital dalam 2 dimensi.

2.4.1. OpenCV

OpenCv merupakan sebuah library (perpustakaan) yang digunakan untuk mengolah

gambar dan video hingga mampu mengestrak informasi didalamnya. OpenCV dapat

berjalan di berbagai bahasa pemograman, seperti C, C++, JAVA, Python, dan juga support

diberbagai platform seperti Windows, Linux, Mac OS, iOS dan Android. Disinilah ada

keterkaitan antara OpenCV dan Python. Kemampuan Python untuk mengolah citra

sangatlah terbatas, untuk itu Python perlu import library dari OpenCV.

Gambar 2. 8 contoh library pada OpenCV.

2.4.2. Ruang Warna HSV

Ruang wana HSV (Hue, Saturation, Value) merupakan model warna yang lebih baik

digunakan untuk berbagai keperluan pengolahan citra dan computer vision. Misalnya pada

object tracking berdasarkan warna, segmentasi citras dsb. Hue (H) merupakan suatu nilai

yang mempresentasikan spektrum warna dari cahaya tampak (merah, jingga, kuning, biru,

dan ungu). Saturation (S) merupakan nilai yang menunjukkan tingkat kejenuhan atau

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

16

kemurnian dari suatu warna. Semakin besar nilai saturasi maka semakin murni warna yang

dihasilkan. Sedangkan Value (V) dapat didefinisikan sebagai nilai yang menunjukkan

tingkat kecerahan warna, nilai nya berkisar 0-100 % apabila nilainya 0 maka akan menjadi

hitam, semakin besar nilai maka semakin cerah dan muncul variasi-variasi baru dari warna

tersebut [10]. Ruang warna HSV diperoleh dari ruang warna RGB melalui persamaan

berikut.

( ) ( )

{

(

)

(

)

(

) }

{

(

)

}

Dengan R = Red, G = Green, B = Blue. Ruang warna HSV diilustrasikan pada gambar di

bawah ini:

(2.2)

(2.3)

(2.4)

(2.5)

(2.6)

Gambar 2. 9 Model ruang warna RGB dan HSV [9]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

17

Cara yang dilakukan pada color filtering ialah dengan menentukan batas atas serta

batas bawah nilai dari sebuah piksel pada gambar, ketika dalam suatu citra terdapat piksel

yang memiliki nilai intensitas warna diantara batas atas dan bawah yang dikenhendaki

maka piksel tersebut akan diloloskan. Karena model warna HSV (Hue Saturation Value)

ini sendiri merupakan model warna yang diturunkan dari model warna RGB (Red Green

Blue) maka untuk mendapatkan hasil warna HSV (Hue Saturation Value) ini, harus

melakukan proses konversi warna dari RGB (Red Green Blue) ke HSV (Hue Saturation

Value).

Pada proses thresholding, piksel-piksel objek dan background dikelompokkan

menjadi dua mode yang dominan. Cara untuk mengestrak objek dari background adalah

dengan memilih nilai threshold T yang memisahkan dua mode tersebut. Nilai T didapat

dari proses color filtering menggunakan ruang warna HSV. Kemudian untuk titik (x,y)

yang memenuhi f(x,y) > T disebut titik objek, selain itu disebut titik background.

Gambar 2. 10 Warna-warna pada Pemodelan RGB yang digunakan.

2.5. Pelacakan Objek

Tujuan utama dari pelacakan objek adalah mendapatkan lintasan yang dilalui objek

pada sebuah video. Ada banyak metode pelacakan objek yang bisa digunakan. Pelacakan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

18

objek berdasarkan warna bisa sangat sederhana. Misalnya saja menggunakan rentang

warna. Sederhannya objek didefinisikan dengan rentang H sekian, S sekian dan V sekian.

Warna adalah fitur terpenting dari sebuah objek. Ada banyak kasus dimana pelacakan

objek cukup menggunakan warna saja. Misalnya saja pelacakan bola warna oranye di

lapangan bewarna hijau. Warna bola berbeda dengan lapangan (hijau), warna garis

lapangan (putih), warna gawang (biru), dan pembatas lapangan (putih). Pada kasus dimana

objek memiliki warna yang jauh berbeda dengan warna latar, maka fitur warna adalah yang

terbaik.

Kelemahan dari fitur warna adalah saat latar memiliki warna yang mirip dengan

objek yang ingin dilacak. Oleh karena itu, berdasarkan kasus diatas ketika ada penonton

yang memakai pakaian berwarna oranye dan terlihat oleh kamera yang terpasang pada

robot, maka algoritma pelacakan sering terganggu. Untuk menangani hal ini, algoritma

pelacakan bisa disempurnakan dengan membatasi ukuran dan bentuk objek. Artinya jika

objek oranye berukuram terlalu besar atau bentuknya bukan lingkaran, maka objek oranye

itu bukanlah bola.

Suatu objek dapat direpresentasikan dalam berbagai bentuk yang berbeda. Selain

berdasarkan warna bisa jugan menggunakan kontur sebagai representasi objek. Kontur

adalah rangkaian piksel terluar dari sebuah objek. Untuk membedakan antara objek yang

menjadi target dengan objek lainnya dilakukan penandaan. Objek bisa ditandai dengan titik

tengah dari objek tersebut. Biasanya digunakan untuk objek yang ukurannya sangat kecil.

Berikut ini dibahas tentang sistem deteksi yang memanfaatkan pengenalan warna:

a. Color Filtering

Color Filtering adalah suatu teknik pengolahan citra yang yang dipakai untuk

memanipulasi suatu citra berdasarkan warna spesifik. Cara kerjanya adalah dengan

membandingkan komponen warna setiap piksel citra dengan warna spesifik. Warna yang

digunakan dalam Color Filtering dapat direpresentasikan dalam berbagai ruang warna,

antara lain RGB (Red, Green, Blue), HSV (Hue, Saturation, Value), YCbCr, dsb. HSV

merupakan ruang warna yang sangat cocok untuk mengidentifikasi warna-warna dasar,

dimana warna dasar ini digunakan dalam penelitian sebagai warna identifikasi robot.

Selain itu, HSV menoleransi terhadap perubahan intensitas cahaya. Inilah yang menjadi

keunggulan HSV dibandingkan dengan ruang warna lainnya. Untuk membentuk segmen

sesuai dengan warna yang diinginkan maka ditentukan nilai toleransi pada setiap dimensi

warna, kemudian nilai toleransi tersebut digunakan dalam perhitungan proses threshold

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

19

b. Operasi Thresholding

Thresholding adalah proses pengubahan nilai pixel pada citra yang memenuhi syarat

nilai ambang atau berada dalam rentang nilai yang diinginkan, menjadi nilai tertentu yang

dikehendaki. Nilai ambang yang digunakan dalam sistem ini adalah hasil color filtering

citra RGB. Hasil dari proses threshold tersebut akan membentuk segmen area dengan

warna sesuai toeransi yang diinginkan.

c. Kontur (Contours)

Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada pixel-pixel

yang bertetangga atau bersebelahan.Keadaan ini terjadi karena adanya perubahan intensitas

inilah mata kita mampu mendeteksi tepi-tepi (edge) objek di dalam citra.

Secara garis besar, berikut ini merupakan proses mendeteksi objek berdasarkan

segmentasi warna:

1) Menetukan citra RGB yang menjadi objek deteksi, nilai warna HSV yang menjadi

acuan dan nilai toleransi HSV yang digunakan.

2) Melakukan filter warna pada citra berdasarkan nilai acuan (T) dan nilai toleransi (tol).

Dengan x sebagai warna HSV pada piksel yang ada maka warna yang tidak termasuk

dalam rentang T-tol < x < T+tol diberi warna hitam.

3) Konversi citra RGB ke HSV.

4) Mendeteksi tepi (edge), tampilkan hasil filter.

2.6. Pembentukan Gambar pada Kamera Lubang Jarum

Pembentukan gambar pada kamera adalah sebuah proses yang memetakan objek

pada bidang 3 dimensi ke dalam bidang 2 dimensi, yang disebut bidang gambar. Pada

umumnya fungsi ini untuk memodelkan objek di dunia nyata ke model pada kamera. Pada

kamera terdapat efek perspektif yang membuat benda yang terletak jauh dari kamera akan

tampak lebih kecil daripada benda yang terletak dekat dengan kamera. Kamera lubang

jarum (pinhole camera) adalah basis studi gambar dan citra kamera [11]. Proses

pembentukan gambar pada kamera lubang jarum ditunjukkan pada Gambar 2.11.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

20

Gambar 2. 11 Proses pembentukan gambar pada kamera lubang jarum[11].

2.6.1. Proyeksi Sebuah Titik pada Kamera

Gambar 2. 12 Representasi matematika dari pembentukan sebuah titik pada kamera.

Pada gambar 2.12, bidang gambar Z=f adalah bidang gambar pada kamera terletak

diantara pusat proyeksi dan objek sebagai tempat terbentuknya gambar dari objek yang

ditangkap. Misal terdapat titik Q yang terletak pada koordinat Q = (X,Y,Z). Titik ini akan

diproyeksi ke bidang gambar Z=f pada titik q = (x,y,z). Proyeksi titik q dapat dipisahkan

menjadi 2 bagian, yaitu proyeksi titik q pada bidang XZ yang ditunjukkan pada Gambar

2.13, dan pada bidang YZ yang ditunjukkan pada Gambar 2.15.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

21

Gambar 2. 13 Representasi matematika dari pembentukan gambar pada kamera pada

bidang XZ.

Gambar 2. 14 Representasi kesebangunan antara titik Q, bidang gambar, dan pusat

proyeksi pada bidang XZ.

Pada Gambar 2.14, besar nya x, yaitu koordinat proyeksi titik Q pada bidang gambar Z=f:

.........................................................................................................(2.7)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

22

Gambar 2. 15 Representasi matematika dari pembentukan gambar pada kamera pada

bidang YZ.

Gambar 2. 16 Representasi kesebangunan antara titik Q, bidang gambar, dan pusat

proyeksi pada bidang YZ.

Pada Gambar 2.16, besar nya y, yaitu koordinat proyeksi titk Q pada bidang gambar Z=f:

.........................................................................................................(2.8)

Jadi titik Q yang memiliki koordinat (X,Y,Z) akan diproyeksikan pada bidang gambar pada

koordinat (x,y,f) atau (f X/Z, f Y/Z, f). Karena posisi gambar yang terbentuk akan selalu

berada pada bidang Z=f, maka koordinat gambar yang terbentuk pada bidang gambar dapat

ditulis sebagai q = x,y atau (f X/Z, f Y/Z).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

23

2.6.2. Proyeksi Sebuah Garis pada Kamera

Gambar 2. 17 Representasi matematika dari pembentukan sebuah garis yang melewati titik

Q1 dan Q2 pada kamera[12].

Pada Gambar 2.17, sebuah garis yang memiliki panjang Dob serta menghubungkan

titik Q1 dan Q2 akan diproyeksikan ke bidang gambar kamera. Titik Q1 yang memiliki

koordinat (X1, Y1, Z1) akan memiliki proyeksi q1 yang terletak pada koordinat (x1, y1).

Sedangkan titik Q2 memiliki koordinat (X2, Y2, Z2) akan memiliki proyeksi q2 yang terletak

pada koordinat (x2, y2).

Panjang garis pada dunia nyata adalah Dob yang dapat dihitung dengan rumus :

Dob = √( ) ( ) ( )

Jika garis sejajar dengan bidang gambar kamera, maka Z2 = Z1, sehingga rumus Dob

menjadi:

Dob = √( ) ( )

Proyeksi garis yang memiliki panjang Dob pada bidang gambar adalah garis yang memiliki

panjang dob dapat dihitung dengan rumus:

dob = √( ) ( )

Jika dijabarkan, dob adalah

dob = √( ) ( )

dob = √(

) (

) (menggunakan persamaan (2.7) dan (2.8))

dob = √( ( )) (

( )) (Z2= Z1= Z)

dob = √(

(( ) ( )

dob = (

) √( ) ( )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

24

dob = (

)( Dob)

dob =

.........................................................................................................(2.9)

Jadi panjang proyeksi sebuah garis yangs sejajar dengan bidang gambar adalah dob =

dimana adalah fokus kamera, Dob adalah panjang garis asli, dan Z adalah jarak garis dan

lubang kamera.

2.6.3. Perhitungan Jarak Robot dan Gawang

Tiang gawang yang berbentuk silinder akan terlihat berbentuk persegi panjang pada

bidang gambar kamera. Setelah sudah berhasil mendeteksi gawang lawan maka pergu

menentukan jarak antara kamera dan gawang agar posisi menendang bola yang baik. Lebar

tiang gawang akan digunakan untuk mencari jarak antara robot dan tiang gawang.

Perhitungan jarak robot dan gawang dilakukan dengan menggunakan persamaan

(2.9) pada Bab 2.6.2 Gambar menunjukkan lebar tiang gawang hasil proyeksi pada bidang

gambar kamera yang dapat digambarkan seperti sebuah garis dengan lebar z=dtg cm. Jika

lebar tiang gawang asli adalah =Dtg cm, dan fokus kamera adalah f cm, maka dapat

dicari dob=jrg yaitu jarak robot ke gawang dengan persamaan :

jrg = f

.........................................................................................................(2.10)

dimana

jrg = jarak tiang gawang dan robot (cm)

f = fokus kamera (cm)

Dtg = lebar tiang gawang asli (cm)

dtg = lebar tiang gawang hasil proyeksi dalam sentimeter (cm)

Pendeteksian tiang gawang pada mendeteksi lebar tiang gawang dalam satuan pixel,

sedang kan persamaan untuk menghitung jarak robot dan tiang gawang (persamaan 2.10)

menggunakan lebar tiang gawang dalam satuan sentimeter. Oleh karena itu dibutuhkan

penkonversian nilai antara sentimeter dan pixel sebagai satuan lebar tiang gawang yang

terdeteksi. Resolusi kamera adalah 640 x 480 pixel. Analisa lebar tiang gawang dilakukan

secara landscape, sehingga lebar resolusi layar yang digunakan adalah 640 pixel. Sebuah

objek yang terdeteksi pada layar dengan panjang dob akan menggunakan Pob pixel dengan

rumus:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

25

Pob = R

......................................................................................................(2.11)

dengan:

Pob = lebar proyeksi sebuah objek di bidang gambar kamera (pixel)

R = resolusi (pixel)

= lebar benda yang terdeteksi pada layar (cm)

L = lebar layar (cm)

Jarak robot dan tiang gawang (jrg) pada persaman (2.10) dapat dicari dengan

menggunakan persamaan (2.11) dengan pob= ptg dan = karena objek yang dideteksi

adalah tiang gawang.

jrg = f

, sedangkan ptg = R

, maka :

jrg = f

jrg =

........................................................................................................(2.12)

Fokus kamera yang digunakan (f) adalah 4 mm, lebar tiang gawang yang asli

(Dtg) adalah 200cm, Resolusi layar (R) adalah 640 pixel, dan lebar layar (L) adalah 19,2

cm . Dari rumus jrg =

adalah suatu kosntanta yang memiliki nilai 2666,67, sehingga

jrg dapat dicari dengan rumus:

jrg = f

...................................................................................................(2.13)

dengan:

jrg = jarak antara robot dan tiang gawang (cm)

Ptg = lebar proyeksi tiang gawang di bidang gambar kamera (pixel)

Gambar 2. 18 Pendeteksian objek gawang menunjukkan nilai pixel yang berhubungan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

26

Keterangan gambar 2.18:

(1) Ptg = 100 pixel ; = 26,67 cm

(2) Ptg = 50 pixel ; = 53,33 cm

2.6.4. Penentuan Posisi Robot di Lapangan

Desain sistem koordinat lapangan ditunjukkan pada Gambar 2.19. Berdasarkan

dengan ukuran yang sudah ditentukan maka koordinat (0,0) berada ditengah lapangan

dengan sumbu X positif menunjukkan daerah kanan lapangan, sedangkan sumbu X negatif

menunjukkan daerah kiri lapangan. Sumbu Y positif menunjukkan daerah depan

penyerangan, sedangkan sumbu Y negatif menunjukkan daerah belakang penyerangan.

Gambar 2. 19 Desain sistem koordinat lapangan.

Setelah mendapatkan antara jarak robot dan tiang gawang yaitu jrg dan sudut putar

robot dan kompas robot (a), maka didapat posisi robot terhadap salah satu tiang gawang

dengan koordinat x dan y dapat dicari menggunakan sudut putar robot dan kompas robot

seperti pada Gambar 3.8. Koordinat dapat diperoleh dari rumus:

xrg = jrg sin(α)......................................................................................................(2.14)

yrg = jrg cos(α).....................................................................................................(2.15)

dimana

α = sudut putar robot

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

27

jrg = jarak antara robot dan tiang gawang

90 adalah posisi robot saat menghadap lurus ke depan.

Gambar 2. 20 Penentuan koordinat terhadap salah satu tiang.

Koordinat robot terhadap koordinat lapangan dapat dicari dengan melakukan

pergeseran koordinat xrg dan yrg . Tabel berikut merupakan pergeseran koordinat robot

terhadap tiang gawang ke koordinat robot terhadap lapangan.

Tabel 2. 5 Pergeseran koordinat robot terhadap tiang gawang ke koordinat robot di

lapangan.

Jenis tiang gawang Rumus koordinat robot

terhadap lapangan

Gawang sendiri

Tiang kanan xrh = xrg + 150

yrh = 0 - yrg

Tiang kiri xrh = xrg + 350

yrh = 0 - yrg

Gawang musuh

Tiang kanan xrh = xrg + 350

yrh = 700 - yrg

Tiang kiri xrh = xrg + 150

yrh = 700 - yrg

2.7. Python Socket

Python hanya menggunakan dua domain komunikasi, yaitu UNIX(AF_UNIX) dan

internet (AF_INET) domain. Pengalamatan pada UNIX domain direpresentasikan sebagai

string, dinamakan dalam lokal path: contoh /tmp/sock [13]. Sedangkan pengalamatan

Internet domain direpresentasikan sebagai tuple (host,port), dimana host merupakan string

yang merepresentasikan nama host internet yang sah (hostname), misalnya:

darkstar.drslump.net atau berupa IP address dalam notasi dotted decimal, misalnya :

192.168.1.1. Dan port merupakan nomor port yang sah antara 1 sampai 65535. Tetapi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

28

dalam keluarga UNIX penggunaan port di bawah 1024 memerlukan akses root privileges.

Sebelum menggunakan modul socket dalam Python, maka modul socket harus terlebih

dahulu diimport. Berikut contohnya:

Untuk proto bersifat opsional dan biasanya bernilai 0. Untuk membuat socket stream

(TCP) internet domain digunakan statement berikut :

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Jika SOCK_STREAM diganti dengan SOCK_DGRAM berarti membuat socket

datagram (UDP). Kemudian untuk membuat socket stream dalam UNIX domain :

sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

Ketika proses lain ingin berhubungan dengan server atau menggunakan layanan

server, maka proses harus terhubung dengan alamat dan nomor port tertentu yang

dispesifikasikan oleh server. Ini dilakukan dengan memanggil metode socket

connect(address), dimana address adalah sebuah tuple (host, port) untuk Internet domain

dan pathname untuk UNIX domain. Berikut contohnya :

sock.connect (('localhost',12345)) atau

sock.connect (('192.168.1.1',12345))

Sedangkan untuk UNIX domain,

sock.connect ('/tmp/sock') #Koneksi ke file socket

Setelah socket berhasil dibuat, maka Python akan mengembalikan sebuah socket

descriptor. Sebelum digunakan, maka socket harus diikatkan (binding) ke alamat dan

nomor port yang sesuai agar proses lain dapat ditujukan ke socket. Berikut ini contoh

untuk binding socket pada internet domain :

sock.bind(('localhost',12345)) atau

sock.bind(('192.168.1.1',12345))

Sedangkan untuk mengikatkan (binding) socket pada UNIX domain digunakan :

sock.bind('/tmp/sock') #/tmp/sock merupakan file socket

Perintah di atas akan membuat file pipe/tmp/sock yang dapat digunakan untuk

berkomunikasi antara server dan client. Setelah socket diikatkan (bind), langkah

#!/usr/bin/env python

#Mengimport modul socket

import socket

# Mengimport seluruh konstanta, data, dan method

from socket import *

# Mengimport konstanta

from socket import AF_INET, SOCK_STREAM

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

29

selanjutnya adalah memanggil method listen(queue). Perintah ini menginstruksikan socket

untuk listen pada port-port yang telah diikatkan (bind), dan queue merupakan sebuah

integer yang merepresentasikan maksimum antrian koneksi, berikut contoh penggunaannya

sock.listen(5) #Mendengarkan koneksi dengan maksimum

antrian sebanyak 5

Untuk menerima koneksi dari permintaan (request) client pada koneksi yang

menggunakan socket stream (TCP). Method yang digunakan accept(), berikut contoh

penggunaannya :

sock.accept() #Menerima koneksi

Statement di atas akan mengembalikan sebuah tuple (conn, address) dimana conn

adalah objek socket baru yang berguna untuk mengirim dan menerima data dari koneksi,

dan address merupakan alamat dari client.

Menerima koneksi tidak akan berarti tanpa digunakan untuk mengirim dan menerima

data. Oleh karena itu digunakan method send(string) untuk socket stream (TCP) dan

sendto(string,address) untuk socket datagram (UDP). Berikut ini penggunaannya untuk

socket stream.

sock.send('ini pesan dari server')

Sedangkan untuk socket datagram digunakan :

sock.sendto('pesan dari server' , ('192.168.1.1' ,

12345))

Untuk menerima data yang dikirim dari server digunakan method recv(bufsize) untuk

socket stream dan recvfrom (bufsize). Berikut ini penggunaannya untuk socket stream :

sock.recv(1024) #Menerima data sebesar 1024 byte

Statement di atas akan mengembalikan data yang dikirimkan oleh client. Sedangkan

untuk socket datagram :

sock.recvfrom(1024) #Menerima data sebesar 1024 byte

Statement di atas akan mengembalikan dua buah field yaitu data, address.

Untuk menutup koneksi yang telah dibuat digunakan method close(s). Berikut

penggunaanya:

sock.close() #Menutup koneksi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

30

BAB III

RANCANGAN PENELITIAN

3.1. Proses Kerja Sistem

Dalam perancangan pengontrol robot sepakbola beroda dengan metode color

tracking terdapat 2 tahap perancangan yaitu perancangan perangkat keras dan perangkat

lunak. Perancangam alat ini terdiri dari beberapa bagian utama, yaitu Raspberry Pi 3,

Kamera, Monitor, Keyboard, Mouse, serta modem wireless. Pada robot terpasang USB

Webcam yang berfungsi sebagai pengambilan gambar secara terus menerus secara secara

streaming. Pada penelitian ini Raspberry Pi sebagai komputer akan memproses gambar

dengan library Open CV menggunakan bahasa pemograman python. Dan informasi yang

telah diterima robot akan mengikuti pergerakan posisi bola. Raspberry Pi menjadi sebuah

komputer serta microcontroller yang dapat melakukan proses pengolahan citra sekaligus

dapat mengendalikan rangkaian elektronik lain untuk melakukan pergerakan pada robot.

Gambar 3. 1 Blok diagram cara kerja sistem.

Penjelasan blok diagram gambar 3.1. adalah sebagai berikut :

1. Bagian Kontrol Utama

Kontrol utama robot menggunakan Coach Computer, yaitu Raspberry Pi (R3) yang

dilengkapi dengan monitor, keyboard, mouse yang bertugas mengolah perintah dan sudah

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

31

ditanamkan algoritma pergerakan robot. Tugas utama dari Raspberry Pi ini memproses

inputan video kamera yang diletakkan di kepala robot sebagai mata dan mengunci target

sehingga didapatkan nilai posisi x dan y dari bola, lawan, dan gawang yang dituju..

Kemudian menentukan pergerakan robot berdasarkan posisi bola terhadap robot dan

mengirimkan perintah berupa data ke robot melalui komunikasi wireless.

2. Bagian Komunikasi Robot

Pemrosesan data komunikasi menggunakan tiga Raspberry Pi yang dikirim melalui

Python Socket. Dengan R1 (USB Webcam) yang bertugas mengirimkan data inputan video

ke R3 (Coach Computer). Lalu R3 (Coach Computer) bertugas mengirimkan data ke R2

(pergerakan robot) dan R3 (Coach Computer) menerima data dari R2 (pergerakan robot)

melalui koneksi wireless yang kemudian dikembalikan ke R3 (Coach Computer) dengan

menggunakan Python Socket.

Pemrosesan inputan video menggunakan image processing dengan bantuan library

OpenCV dari Python. Dengan proses tersebut maka ditemukan objek yang dapat dibedakan

melalui warnanya masing-masing. Setelah mendapatkan warna dari masing-masing objek

dilakukan color filtering menggunakan OpenCV sehingga didapatkan nilai x dan y dari

masing-masing objek dengan menggunakan dasar teori persamaan 2.1.

Dengan menggunakan nilai x dan y yang sudah didapat perintah dapat dikirim oleh

R3 (Coach Computer) melalui modem wireless dengan menggunakan protokol Python

Socket ke R2 (pergerakan robot) sehingga dapat digunakan untuk mengontrol robot untuk

mengejar, menggiring bola menuju gawang yang dituju. Setiap perintah nantinya akan

diberikan kode-kode unik yang hanya bisa dibaca oleh robot.

3.2. Perancangan Perangkat Keras

Perancangan perangkat keras sistem terdiri dari desain Coach Computer sebagai

pengontrol robot sepak bola beroda serta tata letak dari USB Webcam.

3.2.1. Desain Coach Computer Pengontrol Robot

Pada gambar 3.1, perancangan coach computer pengontrol robot sepak bola beroda,

berupa Raspberry Pi 3 yang dilengkapi dengan case khusus untuk Raspberry Pi 3 dan

dipasang Heatsink dan kipas sehingga coach computer bisa digunakan untuk durasi yang

lama. Untuk catu daya menggunakan PSU Adapter 5V 3A, dengan daya tersebut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

32

Raspberry Pi 3 tidak akan kekurangan daya ketika ditambahkan dengan USB Webcam.

Untuk pembuatan program utama maka ditambahkan monitor, keyboard, dan mouse.

Coach computer akan dilengkapi dengan USB Webcam sebagai pengambil citra video saat

uji coba di lapangan yang akan dianalisis oleh program utama sebagai inputan. Selain itu

untuk mengirimkan perintah ke robot akan dilengkapi modem wireless sebagai penyedia

jaringan internet untuk mengirim data.

3.2.2. Posisi Kamera Pada Robot

Pada perancangan posisi kamera sebagai pendeteksi bola, lawan, dan gawang yang

dituju menggunakan USB Webcam yang akan diletakkan pada robot dengan tinggi 40 – 60

cm sesuai dengan keadaan pada saat bermain. Untuk kemiringan kamera akan disesuaikan

agar dengan kemiringan yang tepat maka kamera dapat mengambil video dari seluruh

lapangan.

Gambar 3. 2 Tampilan Robot.

Gambar 3. 4 Tampilan Robot

dari Depan.

Gambar 3. 3 Tampilan Robot

dari Samping.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

33

Untuk menentukan spesifikasi kamera dengan posisi kemiringan yang tepat dapat

dimisalkan nilai ketinggian 50 cm, lalu menghitung besar sudut yang diperlukan untuk

mencakup seluruh lapangan menggunakan aturan segitiga. Pada gambar 3.5 menunjukkan

jarak antara robot dan bola (jbr) diperoleh dari rumus aturan segitiga siku-siku adalah:

jbr =

( ) , dengan hr (tinggi robot) adalah 50 cm.

jbr =

( )

dengan :

jbr = jarak bola dan robot (cm)

= tinggi robot (cm) = (50 cm)

y = sudut kamera (°)

Gambar 3. 5 Penentuan posisi kamera dengan jarak robot terhadap bola.

Misal robot akan memasuki area lapangan dari sisi luar disebelah salah satu

gawang dan posisi bola di tengah lapangan maka dibutuhkan posisi kamera agar mencakup

setengah lapangan dengan besar sudut view awal kamera adalah 90 , tinggi robot 50 cm,

dan jarak antara bola dan robot saat ini 450 cm , maka berdasarkan aturan segitiga siku-

siku besar y adalah

= 83,65

Maka besar sudut view yang diperlukan saat itu sebesar: 83,65 agar area yang

ditangkap oleh kamera efisien.

Pada gambar 3.6 adalah gambar lapangan yang digunakan untuk uji coba robot,

dengan perancangan sebagai berikut.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

34

Gambar 3. 6 Spesifikasi lapangan secara keseluruhan.

1. Luas lapangan keseluruhan sekitar 7m x 5m.

2. Gawang berukuran lebar 2m dan tinggi 1m diukur dari sisi dalam tiang.

3. Warna gawang adalah putih.

3.3. Perancangan Perangkat Lunak

3.3.1. Diagram Alir Utama

Pada perancangan perangkat lunak akan dibuat program utama yang berisi

program untuk menampilkan interface untuk menentukan mode permainan, program

pengolah citra yang diberikan oleh USB Webcam agar didapatkan koordinat dari setiap

objek, serta program untuk mengontrol robot mengejar atau menggiring bola untuk

menghindari lawan.

Gambar 3. 7 Kerangka interface program utama.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

35

Gambar 3. 8 Diagram alir utama.

Mode bersiap adalah mode yang mengatur robot bergerak ketengah lapangan untuk

bersiap dalam permainan seperti keadaan kick off pada permainan sepak bola.

Mode berhenti adalah mode yang mengatur agar robot menghentikan proses yang

sedang berlangsung. mode ini digunakan ketika waktu permainan telah selesai. Dengan

cara mengirim perintah berhenti sehingga kondisi pergerakan robot menjadi LOW .

Mode bermain adalah mode yang mengatur robot untuk mengejar dan menggiring

bola menuju gawang lalu menembak bola tersebut kedalam gawang. Pada saat dalam mode

bermain pertama robot akan mendeteksi apakah bola dalam penguasaan lawan atau tidak,

jika bola dalam penguasaan lawan maka robot akan melakukan tindakan pengontrolan

bertahan agar dapat merebut bola, jika bola dalam keadaan bebas maka robot akan

melakukan tindakan pengontrolan menyerang. Tindakan pengontrolan bertahan adalah

perintah untuk membuat robot berada di depan lawan dan bersiap untuk merebut bola, jika

bola sudah direbut maka robot akan melakukan tindakan pengontrolan menyerang yaitu

membawa bola menuju gawang dan berusaha membuat goal (mencetak angka).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

36

Dari masing-masing mode yang sudah dibuat terdapat berbagai macam pengontrolan

pergerakan dengan menggunakan koordinat x dan y dari masing-masing objek yang diolah

dengan analisis dari pengolahan citra digital dari kamera dan pengolahan digital dari sensor

kompas. Nilai x dan y dari masing-masing objek yag didapatkan akan dijadikan perintah

yaitu berupa setpoint yang diinginkan dan informasi yaitu berupa letak posisi robot

sekarang dan posisi lawan yang dikirim tergantung dari mode yang sedang berlangsung

pada robot.

Gambar 3. 9 Representasi nilai piksel x dan y dari kamera pada lapangan.

Gambar 3. 10 Representasi nilai x dan y dari sensor kompas pada lapangan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

37

3.3.2. Subprogram Bersiap

Pada gambar 3.10 menunjukkan kondisi robot dalam mode bersiap maka kamera

akan mengambil video yang akan di analisis oleh program utama untuk mengontrol robot

bergerak mendekati bola dan bersiap untuk mengejar bola. Pada proses ini robot akan

dikontrol untuk bergerak ke tengah lapangan untuk bersiap seperti dalam kick off dalam

sepak bola yang sebenarnya.

Gambar 3. 11 Diagram alir subprogram bersiap.

Tindakan pengontrolan bersiap dibuat beberapa tindakan untuk menentukan posisi

setpoint dari robot menggunakan informasi koordinat x dan y dari nilai piksel dari kamera,

maka ditentukan:

a. Jika posisi bola di tengah lapangan seperti saat kick off atau saat tendangan bebas

untuk robot, maka nilai setpoint untuk robot adalah x = posisi „x‟ bola dan y =

posisi „y‟ bola - 60.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

38

Gambar 3. 12 Gambaran pergerakan saat bola berada di tengah lapangan.

b. Jika posisi bola dalam penguasaan lawan artinya tendangan bebas untuk lawan

pada posisi kiri gawang, maka nilai setpoint untuk robot adalah x = posisi „x‟ bola -

60 dan y = posisi „y‟ bola - 60.

Gambar 3. 13 Gambaran pergerakan saat bola berada di sebelah kiri gawang.

c. Jika posisi bola dalam penguasaan lawan artinya tendangan bebas untuk lawan

pada posisi kanan gawang, maka nilai setpoint untuk robot adalah x = posisi „x‟

bola + 60 dan y = posisi „y‟ bola - 60.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

39

Gambar 3. 14 Gambaran pergerakan saat bola berada di sebelah kanan gawang.

3.3.3. Subprogram Bermain

Pada gambar 3.15 menunjukan saat dalam mode bermain maka maka kamera akan

mengambil video yang akan dianalisa oleh program utama untuk menentukan tujuan dari

robot, posisi lawan, serta menentukan robot untuk bertahan atau menyerang. Jika bola

berada dalam penguasaan lawan maka robot akan dikontrol untuk bertahan, jika bola

dalam keadaan bebas maka robot akan dikontrol untuk mengejar bola. Setelah itu kamera

akan mengambil video yang akan dianalisa oleh program utama untuk mengontrol robot

menggiring bola menuju gawang yang dituju. Proses tersebut juga akan terus berulang

hingga robot berada pada jarak tertentu dari gawang yang dituju lalu program utama

akan mengirimkan perintah untuk menendang bola. Jika bola masih belum masuk maka

akan mengulang proses dari mengejar bola kembali sampai menendang bola hingga

masuk kedalam gawang yang dituju. Perintah yang dikirimkan oleh program utama di

dalam Raspberry Pi 3 akan dikirim melalui Python Socket. Proses tersebut akan terus

berulang hingga robot menguasai bola.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

40

Gambar 3. 15 Diagram alir subprogram bermain.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

41

3.3.4. Subprogram Berhenti

Pada gambar 3.16 menunjukkan robot dalam mode berhenti maka semua proses

yang dijalankan akan dihentikan, mode ini digunakan ketika waktu permainan telah

selesai. Dengan cara mengirim perintah berhenti sehingga kondisi pergerakan robot

menjadi LOW .

Gambar 3. 16 Diagram alir subprogram stop.

3.3.5. Subprogram Menentukan Posisi Bola, Gawang dan Lawan

Algoritma penentuan lokasi dan penempatan posisi robot di lapangan diperoleh

dengan menggunakan informasi yang diperoleh dari masukan USB Webcam menampilkan

video dari citra gawang dan bola. Proses pendektesian bola dan gawang dilakukan

menggunakan image processing yang dibantu menggunakan bantuan library OpenCV

yang langsung dapat digunakan dengan Python. USB Webcam akan mengirimkan citra

yang akan melakukan analisis objek menggunakan library OpenCV untuk memberikan

informasi nilai x dan y dari robot,lawan,dan target bola atau gawang berdasarkan warna.

Untuk pendeteksian objek berdasarkan warna menggunakan ruang warna HSV,

pengolahan warna tersebut dipilih karena lebih peka terhadap perubahan cahaya dengan

lingkungan sekitar. Dari hasil nilai x dan y yang didapatkan dijadikan sebagai informasi

yaitu berupa letak posisi bola, posisi lawan dan gawang lawan yang akan dikirim sebagai

tindakan untuk mode yang sedang berlangsung pada robot.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

42

Gambar 3. 17 Diagram alir subprogram menentukan tujuan robot dan posisi lawan.

Pada Gambar 3.17 menunjukkan bagaimana proses menganalisis input video dari

USB Webcam dengan proses image processing yang dibantu dengan library OpenCV pada

Python.

Setelah dilakukan inisisalisasi kamera yang akan digunakan lalu, dengan

menggunakan dasar teori pada subbab 2.4.2. dilakukan color filtering pada masukan input

video. Pada input video maka didapatkan warna pada citra yang akan dikonversikan

menjadi HSV yang berguna untuk mendapatkan warna dari masing-masing objek dengan

persamaan 2.1, 2.2, 2.3, dan 2.4. dengan warna bola adalah orange, warna dari tim robot

adalah biru dan cyan, dan warna gawang adalah kuning.

a. Biru

Red = 10, Green = 50, Blue = 255, min = min[R,G,B] = 10, max[R,G,B] = 255

Karena max = B, maka: nilai H = (

) = 230,20 ≈ 230

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

43

Karena max ≠ min, maka: nilai S = 255 – 10 = 245

Nilai V akan dibuat dengan kisaran batas bawah 20 dan batas atas 255 agar dapat

menyesuaikan kondisi perubahan cahaya yang terjadi dengan sekitar.

b. Cyan

Red = 10, Green = 250, Blue = 255, min = min[R,G,B] = 10, max[R,G,B] = 255

Karena max = B, maka: nilai H = (

) = 181,22 ≈ 181

Karena max ≠ min, maka: nilai S = 255 – 10 = 245

Nilai V akan dibuat dengan kisaran batas bawah 20 dan batas atas 255 agar dapat

menyesuaikan kondisi perubahan cahaya yang terjadi dengan sekitar.

c. Orange

Red = 255, Green = 110, Blue = 10, min = min[R,G,B] = 10, max[R,G,B] = 255

Karena max = R, maka: nilai H = (

) = 24,489 ≈ 25

Karena max ≠ min, maka: nilai S = 255 – 10 = 245

Nilai V akan dibuat dengan kisaran batas bawah 20 dan batas atas 255 agar dapat

menyesuaikan kondisi perubahan cahaya yang terjadi dengan sekitar.

d. Kuning

Red = 255, Green = 250, Blue = 10, min = min[R,G,B] = 10, max[R,G,B] = 255

Karena max = R, maka: nilai H = (

) = 58,77 ≈ 59

Karena max ≠ min, maka: nilai S = 255 – 10 = 245

Nilai V akan dibuat dengan kisaran batas bawah 20 dan batas atas 255 agar dapat

menyesuaikan kondisi perubahan cahaya yang terjadi dengan sekitar.

3.3.6. Subprogram Tindakan Pengontrolan Bertahan

Berdasarkan gambar 3.18 menunjukkan fungsi untuk mengontrol robot ketika

keadaan bertahan dengan cara menggunakan informasi koordinat pada kompas, dengan

menggunakan cara tersebut robot dari posisi saat ini bisa langsung ke titik setpoint

berikutnya. Misalnya ketika mengejar bola dalam penguasaan lawan, maka robot akan

dikontrol untuk berbalik ke gawang sendiri berada di posisi center back. Ketika sudah

berada di depan lawan maka robot akan mencoba untuk mencuri bola.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

44

Gambar 3. 18 Diagram alir subprogram tindakan pengontrolan bertahan.

Tindakan pengontrolan bertahan dibuat beberapa tindakan untuk menentukan posisi

setpoint dari robot menggunakan informasi koordinat x dan y dari nilai piksel dari kamera

dan koordinat x dan y dari sensor kompas, maka ditentukan:

a. Jika posisi bola dalam penguasaan lawan di sebelah kanan gawang artinya robot

melakukan tindakan bertahan di sebelah kanan gawang, maka nilai setpoint sensor

kompas untuk robot adalah x = 400 dan y = 300, dan nilai setpoint kamera untuk

robot adalah x = posisi „x‟ bola dan y = posisi „y‟ bola - 60.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

45

Gambar 3. 19 Gambaran pergerakan bertahan saat bola berada di sebelah

kanan gawang.

b. Jika posisi bola dalam penguasaan lawan di sebelah kiri gawang artinya robot

melakukan tindakan bertahan di sebelah kiri gawang, maka nilai setpoint sensor

kompas untuk robot adalah x = 100 dan y = 300, dan nilai setpoint kamera untuk

robot adalah x = posisi „x‟ bola dan y = posisi „y‟ bola - 60.

Gambar 3. 20 Gambaran pergerakan bertahan saat bola berada di sebelah

kiri gawang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

46

3.3.7. Subprogram Tindakan Pengontrolan Menyerang

Berdasarkan gambar 3.21 menunjukkan fungsi untuk mengontrol robot ketika

keadaan mengejar bola ataupun pada saat menggiring bola maupun menghindari lawan

dilakukan dengan cara menggunakan informasi koordinat pada bola dan kompas, dengan

menggunakan cara tersebut robot dari posisi saat ini bisa langsung ke titik setpoint

berikutnya. Misalnya ketika robot sudah menguasai bola dan posisi lawan menyerang,

maka robot akan dikontrol untuk berada di posisi daerah yang aman dengan setpoint yang

sudah ditentukan. Ketika sudah berada di depan gawang lawan maka robot akan mencoba

untuk mencetak gol.

Gambar 3. 21 Diagram alir subprogram tindakan pengontrolan menyerang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

47

Tindakan pengontrolan menyerang dibuat beberapa tindakan untuk menentukan

posisi setpoint dari robot menggunakan informasi koordinat x dan y dari nilai piksel dari

kamera dan koordinat x dan y dari sensor kompas, maka ditentukan:

a. Jika posisi bola dalam penguasaan lawan di sebelah kiri gawang artinya robot

melakukan tindakan menyerang di sebelah kiri gawang, maka nilai setpoint sensor

kompas untuk robot adalah x = 150 dan y = 700, dan nilai setpoint kamera untuk

robot adalah x = posisi „x‟ bola dan y = posisi „y‟ bola - 60.

Gambar 3. 22 Gambaran pergerakan menyerang saat bola berada di sebelah kiri gawang.

b. Jika posisi bola dalam penguasaan lawan di sebelah kanan gawang artinya robot

melakukan tindakan menyerang di sebelah kanan gawang, maka nilai setpoint

sensor kompas untuk robot adalah x = 350 dan y = 700, dan nilai setpoint kamera

untuk robot adalah x = posisi „x‟ bola dan y = posisi „y‟ bola - 60.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

48

Gambar 3. 23 Gambaran pergerakan menyerang saat bola berada di sebelah kanan gawang.

3.3.8. Subprogram Kirim Perintah ke Robot

Pengiriman perintah kepada robot dilakukan melalui jaringan wireless

menggunakan modem wireless. Dengan menggunakan protokol Socket Python dilakukan

pengiriman perintah kepada robot. Komunikasi dilakukan dengan dengan protokol tersebut

agar perintah yang dikirim bisa tersampaikan dan tidak ada gangguan dari luar. Perintah

yang dikirim berupa posisi x dan y dari objek (bola, lawan, dan gawang). Untuk mengirim

perintah ke robot menggunakan metode Sock.sendto(„perintah yang dikirim‟,(„address

yang dituju‟,port yang digunakan‟)). Port yang digunakan adalah port 32 karena port

tersebut digunakan untuk komunikasi data.

Tabel 3. 1 Daftar kode untuk informasi dan perintah kepada robot

Informasi dan perintah Kode

Posisi bola (x,y) 1

Posisi robot (x,y) 2

Posisi lawan (x,y) 3

Posisi gawang (x,y) 4

Posisi kiper lawan (x,y) 5

Setpoint (x,y) 6

Berhenti 7

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

49

Tabel 3. 2 Format pengiriman informasi dan perintah kepada robot

Informasi dan perintah yang dikirim

Kode Posisi x Posisi y

1 - 6 0 - 9 0 - 9 0 - 9 0 - 9 0 - 9 0 - 9

Misal posisi robot saat ini adalah x=200 dan y=350, lalu posisi setpoint adalah x=100 dan

y=100 maka informasi dan perintah yang dikirim adalah:

Sock.sendto(„1200350‟,(„192.168.1.2‟,32))

Sock.sendto(„1100100‟,(„192.168.1.2‟,32))

Gambar 3. 24 Diagram alir subprogram kirim perintah ke robot.

Pada gambar 3.24 untuk melakukan pengiriman perintah seperti dalam dasar teori

dengan dilakukan inisialisasi domain, type, IP Address, serta port yang digunakan. Jika

sudah menginisialisasi domain maka selanjutnya membuat koneksi dengan address yang

diinginkan. Setelah berhasil membuat koneksi lalu menghubungkan koneksi tersebut.

Setelah berhasil maka perintah dapat dikirimkan sesuai dengan mode yang dipilih

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

50

BAB IV

HASIL DAN PEMBAHASAN

4.1. Perubahan Proses Kerja Sistem

Pada penelitian ini dilakukan beberapa perubahan proses kerja sistem. Perancangan

sistem pada BAB III adalah perancangan sistem pada kontrol utama

Gambar 4. 1 Perubahan Blok Diagram Cara Kerja Sistem

Penjelasan blok diagram gambar 4.1. adalah sebagai berikut :

1. Bagian Kontrol Utama

Kontrol utama robot menggunakan Coach Computer, yaitu menjalankan Raspberry Pi

(R1) melalui Virtual Network Computing (VNC) dengan menggunakan laptop sebagai

perantara saja untuk menjalankan Raspberry Pi (R1) yang berada didalam robot. Jadi

Raspberry Pi (R1) bertugas sebagai Coach sekaligus mengolah citra, perintah dan sudah

ditanamkan algoritma pergerakan robot. Tugas utama dari Raspberry Pi (R1) ini

memproses citra video kamera yang diletakkan di kepala robot sebagai mata dan

mengunci target sehingga didapatkan nilai posisi x dan y dari bola, lawan, dan gawang

yang dituju. Kemudian menentukan pergerakan robot berdasarkan posisi bola terhadap

robot dan mengirimkan perintah berupa data ke robot melalui komunikasi wireless.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

51

2. Bagian Komunikasi Robot

Pemrosesan data komunikasi menggunakan dua Raspberry Pi yang dikirim melalui

Python Socket. Dengan R1 (USB Webcam & Coach Computer) yang bertugas memproses

citra video dan mengirimkan perintah berupa data untuk ke R2 (pergerakan robot). Selain

itu R2 (pergerakan robot) bertugas mengirim data berupa Low / High dari sensor IR ke R1

(USB Webcam & Coach Computer) yang berfungsi sebagai tanda bola sudah ditangkap

atau belum. Jika High berarti bola belum ditangkap maka R1 (USB Webcam & Coach

Computer) mengirim algoritma menyerang untuk mengejar bola ke R2 (pergerakan robot).

Lalu saat Low berarti bola sudah ditangkap maka maka R1 (USB Webcam & Coach

Computer) mengirim algoritma menuju ke gawang ke R2 (pergerakan robot). Komunikasi

antara R1 (USB Webcam & Coach Computer) dengan R2 (pergerakan robot) melalui

koneksi wireless dengan menggunakan Python Socket.

4.2. Perubahan Perancangan

Pada penelitian ini dilakukan perubahan fungsi kerja sensor kompas, lalu pada

perancangan perangkat lunak terdapat perubahan yaitu perubahan pada mode menyerang

dan bertahan.

4.2.1. Perubahan Fungsi Sensor Kompas

Setelah dilakukan uji coba ternyata nilai x dan y dari sensor kompas tidak bisa

linear seperti pada gambar 4.2 sehingga dilakukan perubahan fungsi kerja sensor dengan

keluaran berupa sudut 0° sampai 359° untuk menentukan arah menuju arah yang

diinginkan.

Gambar 4. 2 Representasi nilai x dan y dari sensor kompas pada lapangan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

52

Tabel 4. 1 Data dari pengujian

lebar lapangan (nilai x)

Panjang (m) Nilai x

0 0

1 16

2 6

3 16

4 36

5 52

Tabel 4. 2 Data dari pengujian

panjang lapangan (nilai y)

Panjang (m) Nilai y

0 0

1 13

2 1

3 10

4 14

5 38

6 16

7 2

0

10

20

30

40

50

60

0 1 2 3 4 5

Nila

i X

Lebar Lapangan (m)

nilai x

0

5

10

15

20

25

30

35

40

0 1 2 3 4 5 6 7

Nila

i Y

Panjang Lapangan (m)

nilai y

Dari hasil nilai x dan y yang sudah diambil pada lapangan yang sebenarnya didapat

nilai seperti pada tabel 4.1 untuk panjang lapangan (nilai y) dan tabel 4.2 untuk lebar

lapangan (nilai x) , lalu dapat dilihat pada gambar 4.3 untuk panjang lapangan (nilai y) dan

gambar 4.4 untuk lebar lapangan (nilai x) berupa grafik sehingga terlihat bahwa nilai x

dan y yang dihasilkan dari sensor kompas tidak bisa terbentuk secara linear.

Perubahan fungsi kompas di robot hanya sebagai petunjuk arah menyerang agar

bisa membedakan gawang lawan dengan gawang sendiri. Pada gambar 4.5 menunjukkan

nilai sudut dari keluaran sensor kompas, dengan sudut 0° sebagai gawang lawan dan misal

ketika robot berada pada sudut antara 135° sampai 180° saat mencari gawang maka robot

harus berputar balik sampai pada sudut sekitar sudut 0° agar bisa menghadap pada gawang

lawan. Nilai keluaran dari sensor kompas yaitu dari 0° sampai 359°, jika nilai lebih dari

359° maka akan kembali ke 0° seperti kompas pada umumnya. Saat sudut di 180°

diasumsikan sebagai gawang sendiri sehingga sistem akan memberikan informasi agar

robot dapat kembali menuju arah gawang lawan yaitu 0°.

Gambar 4. 4 Grafik nilai x Gambar 4. 3 Grafik nilai y

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

53

Gambar 4. 5 Perubahan representasi nilai sudut dari sensor kompas pada lapangan.

4.2.2. Perubahan Mode Menyerang

Perubahan tindakan pengontrolan menyerang untuk menentukan posisi setpoint dari

robot menggunakan informasi koordinat x dan y dari nilai piksel dari kamera dan sudut dari

sensor kompas, dikarenakan pada pembahasan sebelumnya selain menggunakan nilai

piksel dari kamera juga menggunakan nilai x dan y dari sensor kompas yang ternyata

fungsi kerja dari sensor kompas tidak sesuai dengan yang diharapkan dan sudah dilakukan

perubahan yang lebih benar pada pembahasan Bab 4.2.1 , maka ditentukan perubahan

sebagai berikut:

a. Jika posisi bola dalam penguasaan robot di sebelah kiri maka robot akan melakukan

tindakan menyerang di sebelah kiri gawang, maka nilai setpoint kamera untuk

robot adalah x = posisi „x‟ - 150 gawang dan y = posisi „y‟ gawang. Sistem

menentukan setpoint diantara kiper lawan dengan tiang sebelah kiri gawang lawan

agar untuk mendapatkan area yang kosong dari halangan kiper lawan. Dengan

sudut 0° sebagai penunjuk arah gawang lawan dan sudut 180° sebagai penunjuk

arah gawang sendiri. Sudut 0° ditentukan agar digunakan sebagai acuan penunjuk

arah untuk mengembalikan ke robot ke sudut yang dituju jika diposisi sudut yang

salah.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

54

Gambar 4. 6 Perubahan gambaran pergerakan menyerang saat bola

berada di sebelah kiri gawang

b. Jika posisi bola dalam penguasaan robot di sebelah kanan maka robot akan

melakukan tindakan menyerang di sebelah kanan gawang, maka nilai setpoint

kamera untuk robot adalah x = posisi „x‟ + 150 gawang dan y = posisi „y‟ gawang.

Sistem menentukan setpoint diantara kiper lawan dengan tiang sebelah kanan

gawang lawan agar untuk mendapatkan area yang kosong dari halangan kiper

lawan. Dengan sudut 0° sebagai penunjuk arah gawang lawan dan sudut 180°

sebagai penunjuk arah gawang sendiri. Sudut 0° ditentukan agar digunakan sebagai

acuan penunjuk arah untuk mengembalikan ke robot ke sudut yang dituju jika

diposisi sudut yang salah.

Gambar 4. 7 Perubahan gambaran pergerakan menyerang saat bola

berada di sebelah kanan gawang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

55

4.2.3. Perubahan Mode Bertahan

Gambar 4. 8 Perubahan diagram alir subprogram tindakan pengontrolan bertahan.

Pada tindakan pengontrolan keadaan bertahan dilakukan perubahan tindakan ketika

menuju titik setpoint dengan menggunakan nilai piksel dari kamera. Misalnya ketika radius

bola dalam penguasaan lawan, maka robot harus mengikuti nilai piksel dari bola yang

sudah di deteksi, kemudian jika radius bola lepas dari penguasaan maka robot harus segera

mengejar bola dan menangkap bola.

Perubahan tindakan pengontrolan bertahan untuk menentukan posisi setpoint dari

robot menggunakan informasi koordinat x dan y dari nilai piksel dari kamera dan sudut dari

sensor kompas, dikarenakan pada pembahasan sebelumnya selain menggunakan nilai

piksel dari kamera juga menggunakan nilai x dan y dari sensor kompas yang ternyata

fungsi kerja dari sensor kompas tidak sesuai dengan yang diharapkan dan sudah dilakukan

perubahan yang lebih benar pada pembahasan Bab 4.2.1 , maka ditentukan perubahan

sebagai berikut.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

56

Gambar 4. 9 Perubahan gambaran pergerakan bertahan

Berdasarkan gambar 4.9 menunjukkan jika posisi bola masuk dalam radius

penguasaan lawan artinya robot akan melakukan tindakan bertahan maka nilai nilai

setpoint kamera untuk robot adalah x = posisi „x‟ bola dan y = posisi „y‟ bola - 60. Dengan

sudut 0° sebagai penunjuk arah gawang lawan dan sudut 180° sebagai penunjuk arah

gawang sendiri.

.

4.2.4. Perubahan Subprogram Kirim Perintah ke Robot

Pada penelitian ini dilakukan perubahan pada subprogram kirim perintah ke robot

pada bab III sebelumnya pada pembahasan subprogram kirim perintah ke robot dengan

mengirimkan tujuh macam data yaitu posisi bola, posisi robot, posisi lawan, posisi gawang,

posisi kiper lawan serta setpoint. Setelah dilakukan pengujian ternyata semua informasi

yang dikirimkan dari sistem dan diolah oleh robot sendiri akan mengurangi kinerja robot

yang membuat olah data dari robot menjadi lebih berat dan tidak efisien. Pada tabel 4.3

sampai dengan tabel 4.5 merupakan perubahan yang dilakukan agar mengurangi jumlah

data yang dikirim ke robot, dengan mengirimkan informasi untuk mengatur arah serangan

robot serta penunjuk arah serangan agar tidak salah menuju gawang lawan. Selain itu

jumlah kirim data yang dikirim hanya empat saja yaitu mengirim perintah bermain atau

bertahan dan mengirim perintah bersiap. Pada perubahan ini dilakukan berdasarkan

penelitian yang sudah ada dan peneliti memakai untuk dikembangkan[14]. Dengan ini

membuat kinerja dari sistem pada robot menjadi lebih ringan serta mengurangi perhitungan

pada robot. Pada tabel 4.3 merupakan perubahan daftar kode untuk informasi dan perintah

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

57

kepada robot. Berbeda pada peracangan bab III sebelumnya hanya terdapat tujuh kode,

sekarang total jumlah kode ada tiga belas. Penambahan kode ini antara lain kode perintah

bermain dibagi lagi menjadi tiga yaitu serang, bertahan,dan mencari gawang. Kemudian

kode perintah untuk bersiap, kode perintah kirim data agar robot memberikan informasi

penguasaan bola ke sistem, lalu penambahan kode perintah simpan data agar robot

menyimpan data selama proses berlangsung dengan penamaan file sesuai dengan data yang

dikirim dari sistem.

Berdasarkan tabel 4.4 menunjukkan merupakan format pengiriman informasi yang

diperlukan robot sebagai tindakan pergerakan robot dalam mengejar bola, menggiring bola

menuju gawang, serta menendang bola. Setpoint akan mengirimkan informasi nilai piksel

dari kamera berupa nilai x dan nilai y. Nilai piksel dari kamera akan berfungsi untuk

pergerakan robot saat menuju titik setpoint. Nilai x yang nantinya akan diolah oleh robot

untuk pergerakan ke kiri atau kanan sedangkan nilai y akan diolah oleh robot untuk

pergerakan maju. Untuk penjelasan pengiriman data masih sama dan dapat dilihat pada bab

III pada subprogram kirim perintah. Kompas merupakan penunjuk arah serangan berupa

nilai sudut agar robot dapat membedakan gawang sendiri dengan gawang lawan, misal

sudut pada kompas menunjukkan sudut „180‟ maka sistem akan mengirimkan perintah

berupa kode dan nilainya menjadi ‘04180’. Selain itu menunjukkan format untuk

menentukan kondisi dari robot saat bersiap,bermain atau bertahan dan menendang bola.

Bermain adalah perintah untuk membuat robot mengejar bola, serta menggiring bola

menuju gawang, jika robot diperintahkan untuk mode bermain maka sistem akan mengirim

perintah berupa kode „12 ‟ untuk menyerang dan berupa kode „11 ‟ untuk menuju gawang .

Bertahan adalah perintah untuk robot mendekati lawan ketika bola berada pada penguasaan

lawan, jika robot diperintahkan untuk mode bertahan maka sistem akan mengirim perintah

berupa teks „10‟. Kirim adalah perintah untuk membuat robot mengirimkan data yang

memberitahukan kepada sistem bahwa robot telah mendapatkan bola atau belum, jika robot

diperintahkan untuk mengirim data maka sistem akan mengirim perintah berupa teks ’21’

dan sebaliknya ketika robot diperintahkan untuk tidak mengirim data maka sistem akan

mengirim perintah berupa teks „20’. Tendang adalah perintah untuk membuat robot

menendang bola, jika robot diperintahkan untuk menendang bola maka sistem akan

mengirimkan perintah berupa teks „51’ dan sebaliknya ketika robot diperintahkan untuk

tidak menendang bola maka sistem akan mengirim perintah berupa teks „50’. Bersiap

adalah perintah untuk membuat robot dari ujung lapangan menuju ke tengah lapangan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

58

untuk memulai kick off , jika robot diperintahkan untuk mode bersiap maka sistem akan

mengirimkan perintah berupa teks „60’.

Pada tabel 4.5 merupakan format informasi yang dikirim oleh robot ke sistem, jika

data yang dikirim robot berisi „90‟ maka bola belum dikuasai robot dan harus melakukan

proses pengejaran sedangkan jika data yang dikirim robot berisi „91‟ maka bola sudah

dalam penguasaan robot.

Tabel 4. 3 Perubahan daftar kode untuk informasi dan perintah kepada robot

Informasi dan perintah Kode Keterangan

Berhenti 00 Perintah mengentikan semua proses

Mencari Gawang 10 Perintah bermain ke robot

Serang 12 Perintah bermain ke robot

Kirim Data 21 Perintah kirim infomasi penguasaan bola

Tidak Kirim Data 20 Perintah tidak kirim infomasi penguasaan bola

Setpoint (x,y) 03 Informasi nilai pixel kamera

Kompas 04 Informasi sudut yang diinginkan

Tendang 51 Perintah tendang ke robot

Tidak Tendang 50 Perintah tidak tendang ke robot

Bersiap 61 Perintah bersiap ke robot

Bertahan 11 Perintah bermain ke robot

Simpan Data 08 Perintah simpan data

Kode Awal USD Sandi untuk mengenali robot

Tabel 4. 4 Format informasi dan perintah yang dikirim oleh sistem.

Tabel 4. 5 Format informasi yang diterima oleh sistem.

Kode

Awal

Kode

Perintah

Informasi yang dikirim Kode

Perintah

Bermain

Setpoint Kompas Simpan data

Kode Posisi

x

Posisi

y Kode Sudut Kode Inputan

USD 00 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

USD 20/21 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

USD 05/50 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

USD 61 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

Kode

Awal

Kode

Perintah

Informasi yang dikirim Kode

Perintah

Bermain

Setpoint Kompas Simpan data

Kode Posisi

x

Posisi

y Kode Sudut Kode Inputan

USD 90 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

USD 91 03 3 digit 3 digit 04 4 digit 08 2 digit 2 digit

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

59

Berikut merupakan contoh format pengiriman perintah dan informasi yang dikirim

dari sistem ke robot.

USD 61 03 300 100 04 - 090 08 11 00

1 2 3 4 5 6 7 8 9 10

Keterangan:

1. Kode awal merupakan kode berupa kode USD dengan mengenali dari tiap digitnya

untuk mengenali bahwa data tersebut dikirim dari sistem sendiri.

2. Kode 61 merupakan perintah ke robot untuk bersiap.

3. Kode 03 merupakan informasi setpoint yang akan digunakan untuk pergerakan robot,

data tersebut berupa koordinat posisi x dan posisi y dari pixel kamera.

4. Data berupa nilai 300 merupakan koordinat posisi x.

5. Data berupa nilai 100 merupakan koordinat posisi y.

6. Kode 04 merupakan informasi sudut kompas yang akan digunakan untuk membantu

robot mengarah kan kembali ke gawang lawan jika robot di posisi arah yang salah.

7. Data berupa nilai – 090 ° merupakan hasil koreksi sudut dari pengolahan sistem yang

akan dikirim ke robot mengembalikan ke arah tujuan 0 °.

8. Kode 08 merupakan perintah ke robot untuk menyimpan data selama proses sedang

dijalankan.

9. Data berupa nilai 11 merupakan inputan dari sistem untuk menamai file data

percobaan yang tersimpan.

10. Kode sebenarnya adalah untuk perintah bermain, tetapi karena kondisi yang diminta

saat ini adalah kondisi bermain maka tidak perlu diberi nilai atau diberi nilai 00.

Berdasarkan penjelasan diatas data dari sistem dikirim berupa paket data yang berisi

serangkaian data berupa variabel huruf dan angka yang nantinya akan diterjemahkan oleh

robot. Untuk mempermudah kinerja sistem agar tidak mengirim data yang berbeda-beda

maka format data yang dikirim adalah satu paket data yang sama, kemudian akan

diterjemahkan robot berdasarkan digit yang diambil datanya sesuai dengan yang

diperlukan untuk pergerakan robot. Paket data tersebut akan dikirim secara berulang-ulang

dari sistem ke robot, tetapi karena dikirim dengan format yang sama sehingga

mempermudah robot untuk mengolah data tersebut, tetapi sebaliknya jika dikirim secara

terus menerus dengan format yang berbeda-beda, kemungkinan dapat menyebab data yang

dikirim sekarang dapat tertimpa dengan data yang dikirim berikutnya, sehingga data

sebelumnya tidak tersimpan atau tidak terbaca oleh robot. Maka untuk mengatasi masalah

tersebut pada perancangan bab III dilakukan perubahan format pengiriman data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

60

4.3. Hasil Implementasi

Implementasi dari sistem hasil perancangan ditunjukkan pada gambar 4.10 sampai

dengan gambar 4.16. Pada penelitian dibuat tampilan GUI untuk mempermudah

pengontrolan robot sepak bola beroda. Penjelasan untuk melakukan pengoperasian Gui

pada gambar 4.10 adalah sebagai berikut:

Gambar 4. 10 Tampilan GUI

1. Mode bersiap adalah mode untuk memberi perintah ke robot untuk bergerak ke

tengah lapangan agar kondisi bersiap sebelum permainan dimulai seperti keadaan

kick off pada permainan sepak bola umumnya maupun bersiap saat robot mendapat

tendangan bebas.

2. Mode bermain adalah mode untuk memberi perintah ke robot untuk mengejar bola

dan menggiring bola menuju ke gawang lawan lalu menendang bola ke dalam

gawang lawan. Pada mode bermain tersebut terdapat algoritma untuk mendeteksi

apakah bola dalam keadaan bebas atau dalam penguasaan lawan. Jika bola dalam

keadaan bebas maka robot akan melakukan tindakan untuk mengejar bola lalu

menggiring menuju gawang lawan. Jika bola dalam keadaan penguasaan lawan maka

robot akan melakukan tindakan untuk bertahan. Mode bertahan adalah mode untuk

memberi perintah ke robot untuk membuat robot berada di depan lawan dan

mencoba untuk merebut bola. Jika bola berhasil direbut maka robot akan melakukan

tindakan pengontrolan menyerang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

61

3. Mode berhenti adalah mode untuk memberi perintah ke robot untuk menghentikan

semua proses yang sedang berjalan dengan membuat nilai setpoint yang dikirim dari

sistem ke robot menjadi nol sehingga membuat robot menjadi diam karena nilai

setpoint nol artinya tidak ada objek yang terdeteksi.

Gambar 4. 11 Tampilan pada lapangan hasil analisis OpenCV

Pada gambar 4.11 merupakan hasil dari pengolahan citra dari inputan video

menggunakan kamera Webcam dengan bantuan library tambahan yang support dengan

Python yaitu OpenCV. Hasil dari pengolahan citra tersebut nantinya berguna untuk

menemukan nilai x dan y dari masing-masing objek yang terdeteksi dan digunakan sebagai

informasi ke robot untuk mengatur pergerakan robot sepak bola beroda. Seperti pada

gambar 4.11 terdapat objek yang bola yang sudah dilakukan proses pengolahan citra

dengan menandai objek bola tersebut dengan sebuah titik bulat, lalu diberi nama agar lebih

mudah dikenali. Selain itu ditampilkan posisi x dan posisi y beserta titik koordinat setpoint

dengan diberi nama target agar mempermudah peneliti. Tetapi tampilan ini tidak

ditampilkan ketika program berjalan karena membuat kinerja dari sistem menjadi semakin

berat, maka hanya ditampilkan berupa tampilan terminal yang berisi data yang

menunjukkan objek yang terdeteksi. Selain itu untuk mempercepat proses yang dianalisa

oleh sistem maka bahasa pemograman Python tersebut dijalankan melalui perangkat lunak

Geany, seperti pada gambar 4.12 merupakan tampilan dari Geany.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

62

Gambar 4. 12 Tampilan Geany

Pada bab III terdapat perancangan subprogram kirim perintah ke robot dengan

menggunakan menggunakan komunikasi wireless. Perintah dikirim berupa nilai setpoint

yang harus diinginkan dan sudut dari kompas sebagai petunjuk arah menyerang. Semua

perintah tersebut dapat dikirim dari sistem ke robot menggunakan bantuan library pada

Python yaitu Python Socket dengan jenis komunikasi yang dilakukan adalah UDP.

Tampilan dan hasil analisa serta informasi dan perintah yang dikirim ke robot dapat dilihat

pada gambar 4.13. Untuk kode serta banyaknya digit dapat dilihat pada perubahan

perancangan pada bab IV dan sudah sesuai dengan perancangan. Angka pada digit pertama

merupakan kode untuk masing-masing objek yang terdeteksi. Angka pada digit kedua

hingga keempat merupakan nilai posisi x. Angka pada digit kelima hingga ketujuh

merupakan nilai posisi y. Pada bab III bagian blog diagram sistem terjadi perubahan

perancangan dari sebelumnya menggunakan tiga Raspberry Pi hanya menggunakan dua

Raspberry pi dikarenakan sistem tidak mampu untuk berkomunikasi tiga arah. Pada saat

mode bersiap hanya terjadi komunikasi satu arah yaitu sistem memberikan perintah serta

informasi ke robot. Pada saat mode bermain terjadi komunikasi dua arah yaitu sistem

memberikan perintah serta informasi ke robot dan robot mengirimkan informasi bahwa

bola sudah dalam penguasaan atau masih dalam proses pengejaran bola. Informasi tersebut

didapatkan dari sensor yang terdapat pada robot. Sensor pada robot tersebut merupakan

sensor untuk mendeteksi sebuah objek benda padat yaitu objek bola sehingga ketika

terdeteksi ada bola maka sistem akan memberikan kode berisikan informasi penguasaan

bola. Sehingga sistem secara terus menerus meminta informasi penguasaan bola ke robot.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

63

Gambar 4. 13 Tampilan hasil analisa dan perintah yang dikirim

Berdasarkan gambar 4.14 dan gambar 4.15 merupakan hasil implementasi robot

tampak depan dan tampak samping. Hasil implemenatsi sesuai dengan perancangan desain

robot pada bab III . Dan pada gambar 4.16 merupakan hasil implementasi posisi kamera

robot sesuai dengan perancangan posisi kamera pada bab III.

Gambar 4. 15 Hasil implementasi

robot dari tampak samping

Gambar 4. 14 Hasil implementasi

robot dari tampak depan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

64

Gambar 4. 16 Hasil implementasi posisi kamera pada robot

Dari pengujian setiap mode sistem sudah mampu menjalankan setiap mode dengan

baik. Pada mode bersiap dilakukan pengambilan data pada dua posisi awal yaitu posisi

awal robot pada ujung kanan gawang sendiri (titik A) dan posisi awal robot pada ujung kiri

gawang sendiri (titik B), kemudian robot menuju setpoint pada tengah lapangan pada

posisi kick off . Pengujian bersiap pada titik A mendapatkan rata-rata kesalahan sebesar

0% dan percobaan pada titik B mendapatkan rata-rata kesalahann sebesar 1,52%. Pada

pengujian mode bermain sistem akan mengirim perintah ke robot agar bisa merebut bola,

menggiring bola, menuju gawang lawan, dan menendang bola pada setpoint terakhir yang

diinginkan. Dari hasil pengujian mode bermain berdasarkan hasil setpoint terakhir yang

diberikan mendapat rata-rata kesalahan sebesar 5,73%.

4.4. Hasil dan Analisa Keberhasilan Sistem

Pengujian untuk menganalisa keberhasilan sistem dilakukan dengan menguji sistem

sudah mampu menentukan objek berdasarkan warnanya, sistem sudah mampu menentukan

posisi x dan y dari masing-masing objek yang terdeteksi, dan sistem sudah mampu

menentukan tindakan pengontrolan yang akan dilakukan oleh robot dengan mengatur

pergerakan berdasarkan dari setiap mode yaitu mode bersiap dan mode bermain. Pengujian

sistem akan dilakukan menjadi dua bagian yaitu pengujian berdasarkan setiap mode.

Pengujian yang pertama dilakukan dengan menguji hasil analisa sistem terhadap

masukan video dari Webcam yang kemudian dilakukan pengolahan citra untuk

menentukan objek berdasarkan warnanya lalu sistem menentukan posisi x dan posisi y dari

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

65

masing-masing objek yang terdeteksi. Setelah sistem mampu menentukan posisi x dan

posisi dari masing-masing objek yang kemudian diolah untuk menjadi informasi dan

perintah yang akan dikirim ke robot yang akan digunakan untuk pergerakan robot pada

setiap mode sesuai dengan perancangan pada bab III. Pengujian yang kedua dilakukan

dengan menguji robot sudah dapat menjalan perintah sesuai dengan yang dikirim dari

sistem. Sistem diharapkan mampu mengendalikan robot untuk bergerak ke posisi dan arah

yang ditentukan sesuai dengan setpoint yang diinginkan pada setiap mode sesuai dengan

perancangan pada bab III. Data pengujian pada mode bersiap dapat dilihat pada gambar

4.17 sampai dengan gambar 4.20 serta pada tabel 4.6 dan tabel 4.7. Data Pengujian pada

mode bermain dapat dilihat pada gambar 4.21 serta pada tabel 4.9 dan tabel 4.10.

Gambar 4.17 menunjukkan posisi awal robot diletakkan di ujung lapangan sebelum

menjalankan mode bersiap. Selanjutnya, gambar 4.18 merupakan tampilan posisi robot

pada titik awal ketika keadaan bersiap yaitu titik A atau titik B. Ketika mode bersiap

dijalankan, sistem akan memberikan perintah agar robot yang berada pada titik A atau titik

B untuk menuju setpoint pada titik C. Pada gambar 4.19 sampai 4.20 serta tabel 4.6 dan 4.7

menunjukkan sistem mampu memberikan hasil sesuai dengan yang diharapkan. Sistem

mampu menentukan objek berdasarkan warna dengan pengolahan citra mengggunakan

OpenCv. Sistem juga mampu menentukan posisi x dan posisi y dari masing-masing objek

serta menentukan setpoint yang sudah diolah oleh sistem untuk mengendalikan pergerakan

robot sesuai dengan perancangan pada Bab III pada subprogram bersiap.

Gambar 4. 17 Tampilan posisi robot hasil analisa saat mode bersiap

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

66

Gambar 4. 18 Posisi robot di lapangan saat keadaan mode bersiap di titik A

Gambar 4. 19 Hasil kamera pada mode bersiap dari titik A

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

67

Gambar 4. 20 Hasil kamera pada mode bersiap dari titik B

Tabel 4. 6 Data dari pengujian pada mode bersiap dari titik A

Percobaan Setpoint yang

ditentukan

Setpoint

Hasil Sistem

(x,y)

Keberhasilan

Sistem

Berhenti

Kesalahan

Posisi Setpoint

Akhir

Waktu

(detik)

1 (xxx,330-360) (274,355) Tercapai 0% 00:11,84

2 (xxx,330-360) (374,360) Tercapai 0% 00:11,96

3 (xxx,330-360) (068,357) Tercapai 0% 00:10,92

4 (xxx,330-360) (263,343) Tercapai 0% 00:11,24

5 (xxx,330-360) (241,335) Tercapai 0% 00:17,96

6 (xxx,330-360) (476,330) Tercapai 0% 00:17,90

7 (xxx,330-360) (205,353) Tercapai 0% 00:15,74

8 (xxx,330-360) (235,343) Tercapai 0% 00:18,37

9 (xxx,330-360) (229,336) Tercapai 0% 00:16,00

10 (xxx,330-360) (246,337) Tercapai 0% 00:18,02

11 (xxx,330-360) (312,341) Tercapai 0% 00:14,71

12 (xxx,330-360) (226,334) Tercapai 0% 00:14,47

13 (xxx,330-360) (284,332) Tercapai 0% 00:14,24

14 (xxx,330-360) (277,332) Tercapai 0% 00:14,39

15 (xxx,330-360) (446,340) Tercapai 0% 00:17,05

16 (xxx,330-360) (215,337) Tercapai 0% 00:18,42

17 (xxx,330-360) (256,339) Tercapai 0% 00:18,86

18 (xxx,330-360) (302,335) Tercapai 0% 00:17,49

19 (xxx,330-360) (237,340) Tercapai 0% 00:16,96

20 (xxx,330-360) (524,337) Tercapai 0% 00:16,36

Rata rata kesalahan setpoint akhir dan kecepatan waktu 0% 00:15,66

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

68

Tabel 4. 7 Data dari pengujian pada mode bersiap dari titik B

Percobaan Setpoint yang

ditentukan

Setpoint

Hasil

Sistem

(x,y)

Keberhasilan

Sistem Berhenti

Kesalahan

Posisi Setpoint

Akhir

Waktu

(detik)

1 (xxx,330-360) (209,346) Tercapai 0% 00:12,47

2 (xxx,330-360) (268,358) Tercapai 0% 00:11,68

3 (xxx,330-360) (347,372) Tercapai 3,33% 00:12,98

4 (xxx,330-360) (460,370) Tercapai 2,77% 00:12,83

5 (xxx,330-360) (231,353) Tercapai 0% 00:25,46

6 (xxx,330-360) (331,351) Tercapai 0% 00:23,29

7 (xxx,330-360) (185,332) Tercapai 0% 00:27,90

8 (xxx,330-360) (275,345) Tercapai 0% 00:51,15

9 (xxx,330-360) (370,348) Tercapai 0% 00:21,39

10 (xxx,330-360) (209,340) Tercapai 0% 00:16,74

11 (xxx,330-360) (524,333) Tercapai 0% 00:17,22

12 (xxx,330-360) (398,340) Tercapai 0% 00:18,24

13 (xxx,330-360) (518,342) Tercapai 0% 00:15,76

14 (xxx,330-360) (428,336) Tercapai 0% 00:18,93

15 (xxx,330-360) (189,349) Tercapai 0% 00:16,45

16 (xxx,330-360) (291,335) Tercapai 0% 00:16,65

17 (xxx,330-360) (264,336) Tercapai 0% 00:15,35

18 (xxx,330-360) (451,343) Tercapai 0% 00:17,29

19 (xxx,330-360) (543,338) Tercapai 0% 00:17,71

20 (xxx,330-360) (224,331) Tercapai 0% 00:19,73

Rata rata kesalahan setpoint akhir dan kecepatan waktu 0,3% 00:19,46

Tabel 4. 8 Pengukuran nilai posisi y

Posisi y (pixel) Ukuran (m)

315 1 m

175 2 m

125 3 m

100 4 m

85 5 m

75 6 m

68 7 m

Berdasarkan pembahasan diatas maka mode bersiap sudah dijalankan sistem dengan

sesuai yang diharapkan. Untuk hasil analisa pengolahan citra objek yang terdeteksi akan

mendapatkan nilai posisi x dan posisi y, namun pada pengujian yang digunakan untuk

posisi y saja karena digunakan untuk jarak antara robot dengan objek yang akan dituju.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

69

Dari jarak tersebut akan ditentukan titik setpoint yang menjadi koordinat yang harus dituju

dan menjadi setpoint hasil akhir dari pengolahan sistem.

Data pada tabel 4.6 dan tabel 4.7 diambil dari hasil pengolahan sistem dengan posisi

objek yang akan dituju. Data yang diambil adalah titik setpoint yang ditentukan, setpoint

hasil sistem, dan kesalahan posisi akhir setpoint. Pada tabel nilai kesalahan setpoint akhir

dapat dihitung perhitungan pada persamaan

( )

Berikut merupakan contoh perhitungan kesalahan setpoint pada percobaan 3 pada

tabel 4.7.

Pada perhitungan setpoint hasil sistem yang dihitung yaitu nilai posisi y. Dengan

nilai batas atas yang ditentukan yaitu 330 dan nilai batas bawah yang ditentukan yaitu 360.

Pada tabel rata-rata kesalahan setpoint akhir dapat dihitung perhitungan pada persamaan

Berdasarkan tabel rata-rata kecepatan waktu sistem untuk mencapai setpoint akhir

dapat dihitung perhitungan pada persamaan

( )

Pada tabel 4.6 menunjukkan tingkat keberhasilan dari mode bersiap dengan rata-

rata kesalahan dari setiap percobaan dari titik A sebesar 0% untuk posisi y dan untuk

rata-rata waktu yang dibutuhkan robot pada mode bersiap selama menjalankan proses dari

titik A sebesar 15,66 detik. Dari tabel 4.7 menunjukkan tingkat keberhasilan dari mode

bersiap dengan rata-rata kesalahan dari setiap percobaan dari titik B sebesar 0,3% dan

rata-rata waktu yang dibutuhkan robot selama menjalankan proses dari titik B sebesar

19,46 detik. Dengan kesalahan yang cukup kecil maka robot dapat mecari bola dan

menentukan setpoint dengan baik.

Pada tabel 4.8 merupakan pengujian untuk pengukuran nilai posisi y dengan mencari

ukuran per meter. Setelah dilakukan pengukuran sebenarnya pada titik C ukuran dari

setengah lingkaran tersebut satu meter, dengan menggunakan acuan dari tabel 4.8 pada

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

70

ukuran satu meter mendapatkan posisi y yaitu kurang lebih 315. Pada penelitian ini dibuat

setpoint yang kirim ke robot yaitu posisi y pada nilai 330 maka harus berhenti. Pada saat

pengiriman data ke robot terdapat kendala dimana terdapat jeda, sehingga sangat sulit

untuk mendapatkan nilai posisi y tepat pada 330. Setelah diteliti kejadian memang benar

karena dilihat kembali pada spesifikasi kamera Webcam untuk frame rate yaitu 30 fps

yang artinya setiap framenya yang akan muncul untuk 33 milisecond (1/30 detik),

kemudian ada sepersekian detik lagi untuk jeda dan diikuti oleh frame yang baru dengan

mewakili 30 pixel. Maka nilai setpoint yang tadi sudah ditentukan yaitu 330 ditambah 30

sehingga untuk menentukan keberhasilan sistem jika nilai setpoint posisi y berada pada

antara 330 sampai 360 baru dikatakan berhasil. Jadi misal saja nilai hasil setpoint sistem

tidak berada diantara nilai yang sudah ditentukan maka terdapat kesalahan. Seperti pada

tabel 4.8 pada percobaan 3 nilai posisi y yaitu 372 melebihi nilai yang ditentukan maka

dianggap terjadi kesalahan.

Berdasarkan pada gambar 4.21 merupakan kondisi lapangan dan posisi awal robot

saat memulai pada mode bermain. Keberhasilan sistem pada mode bermain dapat dilihat

sistem mampu mendeteksi bola, lawan, dan kiper lawan, serta robot dapat menggiring bola

menuju gawang dan dapat menendang bola ke dalam gawang lawan.

Gambar 4. 21 Posisi robot di lapangan saat keadaan mode bermain.

Pada tabel 4.9 menunjukkan sistem mampu memberikan hasil sesuai dengan yang

diharapkan. Sistem mampu menentukan objek berdasarkan warnanya dengan pengolahan

citra mengggunakan OpenCv. Sistem juga mampu menentukan posisi x dan posisi y dari

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

71

masing-masing objek dan menentukan setpoint yang sudah diolah oleh sistem untuk

mengendalikan pergerakan robot sesuai dengan perancangan pada bab III pada subprogram

bermain.

Data pada tabel 4.9 diambil dari hasil pengolahan sistem dengan posisi objek yang

akan dituju. Data yang diambil adalah titik setpoint yang ditentukan, setpoint hasil sistem,

dan kesalahan posisi akhir setpoint. Pada tabel nilai kesalahan setpoint akhir dapat dihitung

perhitungan pada persamaan

( )

Berikut merupakan contoh perhitungan kesalahan setpoint pada percobaan 28 pada

tabel 4.7.

Pada perhitungan setpoint hasil sistem yang dihitung yaitu nilai posisi y. Dengan

nilai batas atas yang ditentukan yaitu 200 dan nilai batas bawah yang ditentukan yaitu 230.

Pada tabel rata-rata kesalahan setpoint akhir dapat dihitung perhitungan pada persamaan

Berdasarkan tabel rata-rata kecepatan waktu sistem untuk mencapai setpoint akhir

dapat dihitung perhitungan pada persamaan

( )

Tabel 4. 9 Data dari pengujian pada mode bermain

Percobaan Setpoint yang

ditentukan

Setpoint

Hasil Sistem

(x,y)

Keberhasilan

Sistem

Menendang Bola

Kesalahan

Posisi

Setpoint

Akhir

Waktu

(detik)

Waktu

Pengujian

1 (xxx,200-230) 289,214 Tercapai 0% 01:16,49 9:13

2 (xxx,200-230) 295,202 Tercapai 0% 01:15,00 9:33

3 (xxx,200-230) 287,204 Tercapai 0% 00:37,13 9:38

4 (xxx,200-230) 337,233 Tercapai 1,3% 00:44,49 12:20

5 (xxx,200-230) 382,255 Tercapai 0% 01:00,43 12:24

6 (xxx,200-230) 257,211 Tidak Tercapai - 00:24,34 12:27

7 (xxx,200-230) 252,104 Tidak Tercapai - 01:31,24 12:29

8 (xxx,200-230) 373,209 Tercapai 0% 01:00,05 12:33

9 (xxx,200-230) 325,203 Tercapai 0% 00:48,93 12:39

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

72

Percobaan Setpoint yang

ditentukan

Setpoint

Hasil Sistem

(x,y)

Keberhasilan

Sistem

Menendang Bola

Kesalahan

Posisi

Setpoint

Akhir

Waktu

(detik)

Waktu

Pengujian

10 (xxx,200-230) 334,213 Tercapai 0% 00:48,43 12:41

11 (xxx,200-230) 346,214 Tercapai 0% 00:24,25 13:05

12 (xxx,200-230) - Tidak Tercapai - 01:12,52 13:11

13 (xxx,200-230) 249,214 Tercapai 0% 00:36,31 13:17

14 (xxx,200-230) 273,214 Tercapai 0% 01:32,32 13:24

15 (xxx,200-230) - Tidak Tercapai - 00:58,20 13:30

16 (xxx,200-230) 225,230 Tercapai 0% 02:26,86 13:36

17 (xxx,200-230) - Tidak Tercapai - 00:23,50 13:40

18 (xxx,200-230) 250,230 Tercapai 0% 00:22,08 13:45

19 (xxx,200-230) - Tidak Tercapai - 01:20,37 13:49

20 (xxx,200-230) 306,205 Tercapai 0% 01:20,00 13:54

21 (xxx,200-230) 351,247 Tercapai 7,39% 00:22,15 13:58

22 (xxx,200-230) 381,303 Tercapai 31,73% 01:06,85 14:04

23 (xxx,200-230) 374,220 Tercapai 0% 01:17,48 14:09

24 (xxx,200-230) 317,216 Tercapai 0% 01:03,05 14:20

25 (xxx,200-230) 385,209 Tercapai 0% 00:51,65 14:29

26 (xxx,200-230) 252,237 Tercapai 3% 00:37,74 14:32

27 (xxx,200-230) 383,206 Tercapai 0% 00:54,50 14:36

28 (xxx,200-230) 330,234 Tercapai 1,73% 00:45,67 15:33

29 (xxx,200-230) 381,220 Tercapai 0% 00:41,14 15:40

30 (xxx,200-230) - Tidak Tercapai - 01:15,03 15:44

31 (xxx,200-230) 298,205 Tercapai 0% 00:46,51 15:48

32 (xxx,200-230) 355,221 Tercapai 0% 00:57,13 16:02

33 (xxx,200-230) - Tidak Tercapai - 00:46,91 16:06

34 (xxx,200-230) 365,206 Tercapai 0% 00:29,68 16:08

35 (xxx,200-230) 387,204 Tercapai 0% 00:46,75 16:14

36 (xxx,200-230) 388,247 Tercapai 7,39% 00:21,17 16:18

37 (xxx,200-230) 389,238 Tercapai 3,47% 00:48,27 16:21

38 (xxx,200-230) 353,214 Tercapai 0% 00:59,42 16:28

39 (xxx,200-230) 315,207 Tercapai 0% 00:59,13 16:39

40 (xxx,200-230) 292,204 Tercapai 0% 00:45,55 17:37

Rata rata kesalahan setpoint akhir dan kecepatan waktu 1,65% 00:51,96

Berdasarkan pembahasan sebelumnya sama seperti pada mode bersiap untuk hasil

analiasa pengolahan citra objek yang terdeteksi akan mendapatkan nilai posisi x dan posisi

y. Pada pengujian ini untuk posisi y digunakan untuk jarak antara robot dengan objek yang

akan dituju dan posisi x digunakan untuk pergeseran sertpoint gawang agar dapat

menendang di posisi yang aman dari kiper lawan. Setelah dilakukan pengukuran

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

73

sebenarnya pada titik aman untuk robot berhenti di depan gawang adalah sekitar satu

setengah meter, dengan menggunakan acuan dari tabel 4.8 pada ukuran satu setengah

meter mendapatkan posisi y yaitu kurang lebih 200. Pada penelitian ini dibuat setpoint

yang kirim ke robot yaitu posisi y pada nilai 200 maka harus berhenti dan posisi x bergeser

150 dari nilai sebenarnya. Pada pembahasan sebelumnya bahwa terdapat jeda pada setiap

frame yang muncul, maka nilai setpoint posisi y yang tadi sudah ditentukan yaitu 200

ditambah 30 sehingga untuk menentukan keberhasilan sistem jika nilai setpoint posisi y

berada pada antara 200 sampai 230 dan nilai setpoint posisi x bertambah 150 pada nilai

sebenarnya baru dikatakan berhasil. Seperti contoh pada percobaan 1 pada posisi x

gawang 196 dengan hasil setpoint sistem menjadi 346 sudah sesuai dengan yang

diharapkan, sedangkan pada posisi y gawang 214 dengan hasil setpoint 214 sudah sesuai

dengan nilai posisi yang sudah ditentukan yaitu antara 200 sampai 230.

Dari tabel 4.9 dapat dilihat tingkat keberhasilan sistem dari mode bermain dengan

rata-rata kesalahan dari setiap percobaan sebesar 1,65% untuk posisi y. Untuk rata-rata

waktu yang dibutuhkan robot pada mode bermain selama menjalankan proses sebesar

51,96 detik. Dengan kesalahan yang cukup kecil maka robot dapat menggiring bola

menuju gawang dan menentukan setpoint untuk berhenti di depan gawang dengan baik.

Dari total empat puluh percobaan terdapat delapan percobaan yang gagal karena hasil

setpoint posisi y melebihi batas yang ditentukan. Pada percobaan 22 dari hasil akhir

setpoint sistem posisi y yaitu 303, sedangkan jauh dari setpoint yang diinginkan antara 200

sampai 230. Sehingga didapat kesalahan terhadap posisi y pada percobaan 22 sebesar

31,73%. Penyebab terjadinya kegagalan karena sistem kurang tepat untuk menuju setpoint

yang diinginkan pada objek yang dideteksi. Pengujian dilakukan diluar ruangan sehingga

perubahan pencahayaan sangat mempengaruhi perubahan warna objek yang akan

dideteksi, sehingga ini kemungkinan penyebab terjadinya kegagalan. Dari tabel pengujian

waktu mendapatkan hasil waktu yang baik untuk pengambilan data dengan tingkat

kebehasilan sistem untuk menendang bola ke dalam gawang lawan pada pukul 13:54

sampai 15:40 dengan tingkat pencahayaan yang terang, dikarenakan pada pukul tersebut

semua percobaan tercapai. Hasil terbaik dari pengujian mode bermain pada didapat pada

hasil percobaan 18 berhasil menendang bola ke gawang lawan dengan kesalahan posisi

setpoint akhir sebesar 0% dan kecepatan waktu menuju setpoint sebesar 22,08 detik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

74

Gambar 4. 22 Denah sudut yang dikirim

Berdasarkan gambar 4.22 merupakan tampilan dari terminal dengan ditandai garis

merah hasil pengolahan untuk koreksi sudut kompas yang akan dikirim ke robot untuk

membantu pergerakan robot menuju gawang lawan dengan acuan pada sudut 0°. Pada

gambar 4.23 merupakan penurunan derajat untuk koreksi sudut kompas untuk

memudahkan pergerakan ke robot untuk membaca sudut yang dikirim oleh sistem . Setelah

sistem mendapatkan posisi sudut sekarang kemudian diolah kembali dengan menurunkan

derajat menjadi sudut maksimal +180°/-180°. Misal ketika posisi sudut sekarang 90° maka

sistem akan mengkoreksi -90° untuk membantu robot menuju titik 0° kembali, selain itu

ketika posisi sudut sekarang 270° maka sistem akan mengkoreksi +90° sesuai dengan

gambar 4.23.

Gambar 4. 23 Tampilan hasil pengolahan sudut kompas.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

75

Berdasarkan tabel 4.13 merupakan data koreksi sudut yang akan dikirim ke robot

saat kiper lawan tidak dapat dideteksi atau di luar jakauan kamera dari sistem. Dengan

menggunakan koreksi sudut ini dapat membantu mengarahkan robot kembali ke arah

gawang lawan sehingga kamera dari sistem dapat menangkap kembali objek kiper lawan.

Data dari tabel 4.13 diambil dari hasil pengolahan sudut kompas sesuai pada gambar 4.23

menggunakan bantuan tampilan dari terminal akan tertampil hasil pengolahan sudut

tersebut dengan yang sudah ditandai kotak merah pada gambar 4.23, disebelah kiri adalah

posisi sudut sekarang pada robot dan sebelah kanan adalah koreksi sudut hasil pengolahan

dari sistem.

Tabel 4. 10 Data Dikirim saat objek kiper lawan di luar jangkauan kamera

Tujuan Posisi sudut Sekarang Koreksi Sudut yang dikirim

0 177 -177

0 178 -178

0 175 -175

0 173 -173

0 181 +179

0 174 -174

0 186 +174

0 184 +176

0 189 +171

0 189 +171

0 189 +171

0 178 -178

0 176 -176

0 173 -173

0 171 -171

0 170 -170

0 184 +176

0 183 +177

0 182 +178

0 188 +172

0 183 +177

0 179 +179

0 185 +175

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

76

4.5. Pembahasan Perangkat Keras

Gambar 4. 24 Coach computer lengkap dengan alat pembantunya.

Berdasarkan pada gambar 4.24 merupakan Coach computer pengontrol sepak bola

beroda berbasis Raspberry Pi 3. Pada pembahasan sebelumnya terdapat perubahan

perancangan Coach computer diremote dengan menggunakan laptop yang dilengkapi

dengan keyboard dan mouse untuk mempermudah dalam mengoperasikan program utama.

Disini laptop digunakan sebagai perantara untuk meremote Raspberry pi sebagai Coach

computer yang berada pada robot. Coach computer juga akan dilengkapi dengan USB

Webcam sebagai masukan video yang nantinya akan diolah pada program utama.

Gambar 4. 25 Robot dan tata letak kamera.

Pada gambar 4.25 merupakan desain robot dan desain tata letak kamera pada robot.

Kamera diletakkan pada ketinggian 50 cm dengan pengukuran dari kaki-kaki robot sesuai

Keterangan :

1. Laptop

2. Mouse

3. Keyboard

4. Router

Keterangan :

1. Robot

2. Kamera Webcam

dan Servo

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

77

dengan perancangan pada bab III. Pada kamera ditambahkan servo yang akan digunakan

untuk menggerakkan kamera agar bisa mengikuti pergerakan objek yang terdeteksi.

4.6. Pembahasan Perangkat Lunak

Dalam pembahasan ini dibahas perangkat lunak dari program utama yang digunakan

sistem untuk mengontrol pergerakan robot. Program lunak terdiri dari program utama,

program pendeteksi objek berdasarkan warna, program penyimpanan data, program sensor

kompas, program pergerakan servo, program mode bersiap, program mode bermain,

program mode berhenti, dan program tampilan GUI. Pada program utama berisi inisialisasi

variabel, pemanggilan library pada python, dan pengaturan komunikasi sistem dengan

robot.

Gambar 4. 26 Listing program pemanggilan library serta inisialisasi variabel.

import RPi.GPIO as GPIO from time import sleep import cv2 import numpy as np import math import smbus from socket import * from Tkinter import * vid = cv2.VideoCapture(0) a = 0 c = 0 #Inisialisasi Servo GPIO servo = 12 GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(servo, GPIO.OUT) ####################### Inisialisasi Warna ############################## lower_bola = np.array([10, 125, 170], dtype=np.uint8) upper_bola = np.array([20, 255, 255], dtype=np.uint8) #Bola lower_gawang = np.array([90, 33, 210], dtype=np.uint8) upper_gawang = np.array([179, 255, 255 ], dtype=np.uint8) #gawang lower_lawan = np.array([150, 100, 130], dtype=np.uint8) upper_lawan = np.array([179, 158, 245], dtype=np.uint8) #magenta

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

78

Pada gambar 4.26 menunjukkan listing program untuk pemanggilan library pada

python dan memberikan inisialisasi variabel yang digunakan. Pemanggilan library pada

python yang dipanggil adalah Rpi.GPIO, time, cv2, numpy, math, smbus, socket dan

Tkinter. Modul Rpi.GPIO digunakan untuk mengaktifkan pin GPIO pada Raspberry Pi.

Modul time digunakan untuk menunda waktu eksekusi berupa angka yang menyatakan

lama penundaan. Modul cv2 digunakan untuk mengolah citra dari masukan video

menggunakan Webcam. Modul numpy dan math digunakan untuk membantu perhitungan

dalam pengontrolan pergerakan robot. Modul smbus digunakan komunikasi I2C pada

sesnsor kompas. Modul socket digunakan untuk komunikasi pengiriman perintah dari

sistem ke robot serta menerima informasi dari robot. Terdapat inisialisasi variabel vid

untuk menerima masukan video dari kamera Webcam dengan diberikan nilai „0‟ agar

sistem menerima masukan video dari kamera satu. Selain itu menginisialisasi servo pada

pin 12 di board GPIO untuk mengaktifkan pergerakan servo. Lalu menginisialisasi

lower_bola, upper_bola, lower_lawan, upper_lawan, lower_gawang, upper_gawang

untuk inisialisasi warna berdasarkan objeknya menggunakan kode warna ke dalam HSV.

Gambar 4. 27 Listing program pengaturan komunikasi dengan robot.

Pada gambar 4.27 menunjukkan listing program pengaturan komunikasi dengan

robot. Komunikasi mengirim perintah dan informasi dari sistem ke robot dilakukan dua

arah.Variabel host digunakan untuk menyambungkan dari sistem ke alamat yang akan

dituju. Variabel host1 digunakan untuk alamat asal ke sistem. Dalam pengiriman informasi

dan perintah ke robot menggunakan port yang berbeda agar data yang dikirim dan diterima

tidak bertabrakan. Pada variabel port menggunakan 13000 untuk melakukan pengiriman

informasi dan perintah dari sistem ke robot, sedangkan variabel port1 menggunakan 11000

untuk menerima informasi dari robot ke sistem. Variabel UDPSock digunakan untuk

menentukan jenis socket yang digunakan adalah datagram (UDP).

################# Pengaturan Komunikasi dengan Robot ###################### host = "169.254.12.128" host1 = "" port = 13000 #port yang digunakan harus sama yaitu 13000 port1 = 11000 buf = 1024 #jumlah maksimal karakter yang diterima addr = (host, port) addr1 = (host1, port1) UDPSock = socket(AF_INET, SOCK_DGRAM) UDPSock.bind(addr1) #untuk menghubungkan ke robot print "Online"

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

79

Gambar 4. 28 Listing program untuk menentukan posisi objek.

Berdasarkan gambar 4.28 merupakan listing program untuk menentukan posisi nilai

x dan y pada masing-masing objek berdasarkan warnanya. Variabel tresh digunakan untuk

menyimpan nilai warna yang akan ditentukan dengan memberikan batasan nilai warna

menggunakan fungsi cv2.inRange. Pada variabel moments digunakan untuk memudahkan

sistem dalam menentukan posisi nilai x dan nilai y suatu objek dengan meletak pusat titik

tengah bidang pada objek tersebut sebagai target objek yang terdeteksi dengan

menggunakan fungsi cv2.moments dengan menggunakan persamaan 4.1[15].

,

Setelah itu nilai x dan nilai y disimpan dalam variabel cx dan cy. Lalu untuk

membantu memberi tanda pada objek bahwa sistem sudah berhasil mendeteksi objek

menggunakan fungsi cv2.circle. Untuk menamai objek agar membedakan objek sesuai

jenis nya menggunakan fungsi cv2.putText.

Gambar 4. 29 Listing program untuk merubah format data posisi.

def track_objects(): global hsv, lower, upper, cx, cy, frame tresh = cv2.inRange(hsv, lower, upper) #blur = cv2.GaussianBlur(tresh, (5, 5), 0) cx, cy = 0, 0 moments = cv2.moments(tresh, True) if moments['m00'] != 0: # calculate the centroid of the object using the moments cx = int(moments['m10'] / moments['m00']) cy = int(moments['m01'] / moments['m00']) cv2.circle(frame, (cx,cy), 10, (0, 0, 255), -1) cv2.putText(frame,"("+str(cx)+","+str(cy)+")", ((cx,cy)[0]+10,(cx,cy)[1]+15),

cv2.FONT_HERSHEY_SIMPLEX, 0.5,(30, 255, 237),1)

def format_data(): global cx, cy if cx < 10: cx ='0'+'0'+str(cx) elif cx < 100: cx ='0'+str(cx) if cy < 10: cy ='0'+'0'+str(cy) elif cy < 100: cy ='0'+str(cy)

(4.1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

80

Pada gambar 4.29 merupakan listing program untuk merubah format data posisi

nilai x dan nilai y agar robot dapat memahami perintah dan informasi yang dikirim oleh

sistem dalam mengatur pergerakan robot. Variabel format yang dirubah berupa type data

string.

Gambar 4. 30 Listing program untuk pengaturan sensor kompas.

Berdasarkan gambar 4.30 menunjukkan listing program untuk pengaturan sensor

kompas. Pada pembahasan sensor kompas ini peneliti menggunakan program yang sudah

pernah diteliti sebelumnya dan peneliti hanya menggunkan dan mengembangkannya

saja[16]. Sensor kompas yang digunakan adalah HMC5883L dengan menggunakan alamat

####################### Pengaturan Sensor Kompas ######################## bus = smbus.SMBus(1) address = 0x1e def read_byte(adr): return bus.read_byte_data(address, adr) def read_word(adr): high = bus.read_byte_data(address, adr) low = bus.read_byte_data(address, adr+1) val = (high << 8) + low return val def read_word_2c(adr): val = read_word(adr) if (val >= 0x8000): return -((65535 - val) + 1) else: return val def write_byte(adr, value): bus.write_byte_data(address, adr, value) write_byte(0, 0b01110000) # Set to 8 samples @ 15Hz write_byte(1, 0b00100000) # 1.3 gain LSb / Gauss 1090 (default) write_byte(2, 0b00000000) # Continuous sampling scale = 0.92 x_offset = -362 #-170 #mencari data offset diberi nilai 0 y_offset = -703 #-53 #mencari data offset diberi nilai 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

81

slave 0x1E digunakan untuk komunikasi I2C. Pada gambar diatas merupakan pengaturan

yang diperlukan untuk instruksi pada sensor kompas untuk membaca dan menulis data.

Sensor kompas berfungsi untuk penunjuk arah dengan mengukur kekuatan medan magnet

pada sumbu X, Y, dan Z.

Gambar 4. 31 Listing program untuk menjalankan sensor kompas.

Pada gambar 4.31 merupakan listing program untuk mendapatkan data pengukuran

sensor berupa sudut. Karena hanya untuk mendapatkan nilai sudut maka sumbu yang

digunakan hanya sumbu X dan sumbu Y saja. Pada setiap sumbu X, Y, dan Z

menghasilkan data 16 bit yang dipisahkan dengan 8 bit LSB dan 8 bit MSB.

Pada definisi read_compas(offset) terdapat perintah:

Berdasarkan pembahasan diatas pada variabel x_out digunakan untuk membaca

data register keluaran X pada regiter 3 dan pada variabel x_out digunakan untuk membaca

data register keluaran Y pada regiter 7 sesuai dengan datasheet sensor.

Pada variabel offset didapatkan dari hasil kalibrasi sensor kompas dengan mencari

nilai minimum dan maksimum pada sumbu X dan sumbu Y. Setelah mendapatkan nilai X

dan nilai Y maka dapat dicari sudutnya dan dibatasi sampai dengan 360 ° sebagai sudut

maksimum. Pada saat kalibrasi digunakan untuk mencari nilai tengahnya dari masing-

def read_compas(offset): global head x_out = (read_word_2c(3) - x_offset) * scale y_out = (read_word_2c(7) - y_offset) * scale z_out = read_word_2c(5) * scale bearing = math.atan2(y_out, x_out) head = int(math.degrees(bearing)) - offset if (head < 0): head += 360 def format_kompas(): global head if head < 10: head ='0'+'0'+str(head) elif head < 100: head ='0'+str(head)

x_out = (read_word_2c(3) - x_offset) * scale y_out = (read_word_2c(7) - y_offset) * scale

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

82

masing sumbu dan didapatkan nilai offset. Untuk listing program kalibrasi sensor kompas

dapat dilihat di lampiran.

Gambar 4. 32 Listing program untuk menentukan arah yang diinginkan.

Berdasarkan gambar 4.32 menunjukkan listing program untuk menentukan sesuai

arah yang diinginkan. Dengan memanggil fungsi dari penjelasan program sebelumnya

untuk menjalankan sensor kompas, kemudian nilai ° sudut yang dihasilkan dari 0 sampai

359 diolah kembali. Pada varibel kompres berisi nilai 180 yang digunakan untuk

menurunkan ° dari sudut maksimal 359 menjadi sudut maksimal 180 terdapat pada

variabel direct. Kemudian ditentukan arah yang ingin dituju sesuai pada variabel tujuan

berisi nilai 0 sehingga arah yang diinginkan adalah 0° sebagai arah menuju gawang lawan.

Gambar 4. 33 Listing program untuk pengaturan servo dalam menggerakan kamera.

def arah(): global head read_compas(0) format_kompas() tujuan = 0 #dapat diset sesuai arah tujuannya kompres = 180 kompas = head #fungsi kompas 0-359 direct = head - kompres #berapa ° yg diinginkan if (direct > tujuan):

direct = -180 + direct elif (direct < tujuan):

direct = 180 + direct

def setServoAngle(angle): pwm = GPIO.PWM(servo, 50)

pwm.start(0) dutyCycle= 1./18.*(angle)+2 pwm.ChangeDutyCycle(dutyCycle) sleep(0.15) pwm.stop() def mapServoPositionBola (cy_bola): global angle if (10 < cy_bola < 50):

angle = 80 setServoAngle (angle) if (cy_bola >430 ): angle = 55 setServoAngle (angle) def mapServoPositionGawang (cy_lawan): global angle if (cy_lawan ==0 ): angle = 80 setServoAngle (angle)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

83

Gambar 4. 34 Motor servo yang digunakan.

Berdasarkan gambar 4.33 merupakan listing program untuk pengaturan servo

dalam menggerakan kamera agar dapat mengikuti objek yang bergerak. Pada gambar 4.34

merupakan motor servo yang digunakan sebagai penggerak kamera adalah motor servo

180°. Motor servo yang digunakan memiliki pergerakan 0° sampai 180°, namun pada

program ini hanya digunakan untuk menggerakan pada sudut 0° sampai 90° sesuai yang

diperlukan saja. Pada variabel pwm merupakan pengaturan sinyal PWM dengan frekuensi

50 Hz yang diberikan pada pin kontrol pada variabel servo yaitu pin 12 yang sudah

dijelaskan pada pembahasan program utama.

Pada variabel angel merupakan inputan berupa nilai sudut untuk menentukan °

yang diinginkan. Sedangkan diperlukan perhitngan untuk menggerakan servo mengatur

pwm berdasarkan dutycycle . Peneliti melakukan uji coba dutycycle menggunakan

program python guna mengetahui besar dutycycle yang dibutuhkan dari 0° sampai 180°.

Dan didapat jika gerakan menuju posisi 0° dibutuhkan dutycycle sebesar 2% sedangkan

untuk menggerakkan ke posisi 180° dibutuhkan dutycycle sebesar 12%. Sehingga dari

pengujian diatas didapat persamaan sebagai berikut:

Dari persamaan di atas dapat diasumsikan bahwa posisi awal servo adalah 0°

dengan dutycycle 2%, maka didapat perhitungan menjadi:

( )

( )

Berdasarkan persamaan diatas maka didapat variabel y sebagai masukan untuk

menggerakkan servo menuju ° yang diinginkan. Pada definisi mapServoPositionBola

(4.2)

(4.3)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

84

(cy_bola) dan mapServoPositionGawang (cy_lawan) digunakan untuk merubah posisi

kamera dengan meggerakkan servo sesuai perubahan posisi nilai x dan nilai y pada objek

yang terdeteksi.

Gambar 4. 35 Listing program untuk tampilan GUI.

Pada gambar 4.35 merupakan listing program untuk tampilan GUI sebagai tampilan

antarmuka untuk membantu peneliti untuk memberikan perintah ke robot sesuai dengan

root = Tk() root.title("Pengontrol Robot Sepak Bola Beroda") root.t1 = IntVar() cnt = Label(root, text='Pengontrol Robot Sepak Bola Beroda', font=('Arial', 20)) cnt.pack() frm1 = LabelFrame(root, text="Mode yang dipilih",background="White") frm1.pack() frm2 = Frame(frm1) frm2.pack(side=LEFT) cnt1 = LabelFrame(frm2, text='Bersiap', font=('Arial', 20)) cnt1.pack(side=LEFT) frm3 = Frame(frm1) frm3.pack(side=LEFT) cnt2 = LabelFrame(frm2, text='Bermain', font=('Arial', 20)) cnt2.pack(side=LEFT) frm4 = Frame(frm1) frm4.pack(side=LEFT) cnt4 = LabelFrame(frm2, text="Data Ke-") cnt4.pack(side=LEFT) ent = Entry(cnt4) ent.pack(side=LEFT) mode = IntVar() btn1 = Button(cnt1, text="Bersiap", padx=30, pady=30, command=Bersiap) btn1.pack(side=LEFT) btn2 = Button(cnt2, text="Bermain", padx=30, pady=30, command=Bermain) btn2.pack(side=LEFT) btn3 = Button(frm2, text="Berhenti", padx=30, pady=40, command=Berhenti) btn3.pack(side=BOTTOM) root.mainloop()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

85

mode yang diinginkan. Tampilan Gui ini dibuat dengan bantuan menggunakan modul

Tkinter. Tampilan akan berupa frame berisi tombol-tombol dan sebuah textbox. Pada

fungsi LabelFrame() digunakan untuk membuat sebuah frame dengan memiliki label,

fungsi Frame() digunakan untuk membuat frame yang akan dibuat tombol-tombol di

dalamnya, fungsi Button() digunakan untuk membuat tombol berdasarkan modenya, fungsi

Entry() digunakan untuk membuat sebuah masukan textbox nantinya digunakan untuk

menyimpan data.

Gambar 4. 36 Listing program untuk tombol-tombol tampilan GUI.

Pada gambar 4.36 merupakan listing program untuk tombol-tombol pada tampilan

GUI. Jika salah satu tombol ditekan maka salah satu fungsi Bersiap(), Bermain(),

Berhenti() akan dipanggil. Pada variabel a berfungsi untuk menentukan mode yang

pergerakan robot. Diawal pembahasan pada program utama di definisikan variabel yang

diberi nilai nol. Misal jika ditekan tombol mode bermain maka isi variabel a akan berubah

nilainya menjadi dua.

def Bersiap(): global a a = 1 def Bermain(): global a a = 2 def Berhenti(): global a a = 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

86

Gambar 4. 37 Listing program tampilan antarmuka untuk menandai objek.

Pada gambar 4.37 merupakan listing program tampilan antarmuka untuk menandai

objek. Pada variabel frame merupakan untuk mengaktifkan kamera Webcam sehingga

sistem mendapat inputan citra. Kemudian mengatur tampilan kamera karena posisinya

terbalik maka perlu diputar menggunakan fungsi cv2.flip(). Selanjutnya masukan dari

kamera yang sudah tersimpan dalam variabel frame dirubah menjadi HSV menggunakan

fungsi cv2.COLOR_BGR2HSV untuk mempermudah sistem dalam pendeteksian warna

dalam berbagai pencahayaan. Setelah itu untuk mempermudah dalam menentukan objek

berdasarkan warnanya maka untuk warna ditentukan batas bawah dan batas atas agar objek

lain yang objek lain yang tidak ingin dideteksi tidak ikut terdeteksi. Kemudian sistem akan

memanggil fungsi track_objects() untuk menetukan nilai dari posisi x dan posisi y dari

objek tersebut. Setelah itu sistem memanggil fungsi format_data( ) untuk merubah format

data dari nilai posisi x dan posisi y yang sudah ditemukan, kemudian hasilnya masing-

ret_val, frame = vid.read() frame = cv2.flip(frame,2) frame = cv2.flip(frame,2) hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) ##################### Deteksi Objek Berdasarkan Warna ##################### lower = lower_bola upper = upper_bola track_objects() format_data() cv2.putText(frame, 'Bola', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (0, 125, 255), 2) cx_bola, cy_bola = cx, cy lower = lower_gawang upper = upper_gawang track_objects() format_data() cv2.putText(frame, 'Gawang', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_gawang, cy_gawang = cx, cy lower = lower_lawan upper = upper_lawan track_objects() format_data() cv2.putText(frame, 'Lawan', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_lawan, cy_lawan = cx, cy

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

87

masing posisi x dan posisi y akan disimpan kembali dalam variabel cx dan cy. Lalu dari

variabel cx dan cy akan digunakan untuk menentukan objek yang ingin dideteksi sesuai

warnanya, seperti contoh jika ingin mendeteksi objek bola maka cx dan cy dirubah menjadi

cx_bola dan cy_bola. Kemudian untuk menamai objek sesuai dengan jenis objek nya pada

tampilan antarmuka dengan menggunakan fungsi cv2.putText agar mempermudah

pengguna bahwa sistem sudah berhasil mendeteksi objek.

Gambar 4. 38 Listing program untuk mengubah data menjadi string untuk dikirim ke robot.

Berdasarkan gambar 4.38 merupakan listing program untuk mengubah data

menjadi string untuk dikirim ke robot. Pada variable data1 untuk menyimpan data objek

bola, variabel data3 untuk menyimpan data objek lawan, variabel data4 untuk menyimpan

data objek gawang, variabel data6 untuk menyimpan data setpoint, variabel data5 untuk

##################### Mengirim Perintah ke Robot ######################### l1=str(cx_bola)+str(cy_bola) data1 = '1'+l1 l3=str(cx_lawan)+str(cy_lawan) data3 = '3'+l3 l4=str(cx_gawang)+str(cy_gawang) data4 = '4'+l4 cx,cy = set_posisi_x_robot, set_posisi_y_robot format_data() set_posisi_x_robot, set_posisi_y_robot = cx,cy l6=str(set_posisi_x_robot)+str(set_posisi_y_robot) data6 = '03'+l6 print str(data1),", ",str(data3) ,", ",str(data4),", ",str(data6),", ",str(head),", ",str(direct),",

",str('Bersiap')

data5= '04'+ str(direct) data7 = str(data1)+", "+str(data3)+", "+str(data4)+", "+str(data6)+", "+str(head)+",

"+str(direct)+", "+str('Bersiap')

save(data7) kirim='08'+str(c) data8 = 'USD'+'06'+str(data6)+str(data5)+str(kirim)+'00' UDPSock.sendto(data8, addr)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

88

menyimpan data sudut kompas, variabel data7 untuk menyatukan yang berisi data1, data3,

data4, dan data6 menjadi satu file dengan memanggil fungsi save(data7). Pada varibel

print merupakan fungsi untuk menampilkan semua data tadi di dalam sebuah tampilan

GUI. Pada varibel kirim merupakan masukan dari sistem berupa angka yang kemudian

dikirim ke robot yang menjadi informasi penamaan file yang akan disimpan oleh robot.

Dari semua data tadi disimpan pada variabel data7 dan dirubah data nya menjadi bentuk

string , lalu data dikirim ke robot dengan menambahkan kode di depan nya pada data tadi

seperti pada perubahan perancangan bab IV. Data tersebut dikirim menggunakan bantuan

modul Socket pada fungsi UDPSock.sendto.

Gambar 4. 39 Listing program untuk menentukan setpoint pada mode bersiap.

Pada gambar 4.39 merupakan listing program untuk menentukan setpoint pada

mode bersiap. Pada progam dirancang menggunakan if dan elif untuk menentukan setpoint

sesuai dengan perancangan pada bab III. Nilai diatas ditentukan berdasarkan nilai posisi x

dan posisi y yang sudah ditentukan lalu diolah agar dapat menentukan setpoint sesuai yang

diinginkan. Saat kondisi mode bersiap setpoint ditentukan pada objek bola untuk mengatur

pergerakan robot agar dapat berhenti pada tengah lapangan seperti kondisi kick off pada

umumnya. Pada variabel cy_bola merupakan hasil pengolahan citra dengan sudah

mendapatkan nilai posisi x dan posisi y, kemudian diolah agar dapat menjadi fungsi untuk

mode bersiap

############### Mengolah Data serta Algoritma untuk Kontrol Robot############ if int(cy_bola) >=300:

set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) UDPSock.sendto ('exit', addr)

elif 300 >= int(cy_bola) >= 200:

set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola)

elif 200 >= int(cy_bola) >= 120:

set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola)

elif int(cy_bola) <= 120:

set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

89

Gambar 4. 40 Listing program untuk menentukan setpoint pada mode bermain.

Berdasarkan pada gambar 4.41 merupakan listing program untuk menentukan

setpoint pada mode bermain. Untuk melakukan tindakan pengontrolan menyerang atau

bertahan maka pada sistem menggunakan penentuan radius seperti pada gambar 4.40.

Gambar 4. 41 Penentuan jarak robot antara lawan atau bola.

serang='USD'+'21'+'00000000'+'000000'+'0000'+'12' bertahan='USD'+'21'+'00000000'+'000000'+'0000'+'12' ###menentukan bola dalam penguasaan musuh atau tidak k1 = (int(cx_lawan)-int(cx_bola))**2 k2 = (int(cy_lawan)-int(cy_bola))**2 radius1 = math.sqrt(k1+k2) if int(radius1) < 110: ##Mode bertahan diaktifkan set_posisi_x_robot = int(cx_lawan) set_posisi_y_robot = int(cy_lawan) UDPSock.sendto(bertahan, addr) #Mengirim perintah bermain elif int(radius1) > 110: ##Mode menyerang diaktifkan set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) UDPSock.sendto(serang, addr) #Mengirim perintah bermain #if int(cx_bola) == 0 and int(cy_bola) == 0: #set_posisi_x_robot = int(cx_lawan) #set_posisi_y_robot = int(cy_lawan) #UDPSock.sendto('21', addr) #Mengirim perintah bermain cv2.circle(frame, (int(set_posisi_x_robot),int(set_posisi_y_robot)), 10, (0, 0, 255), -1) cv2.putText(frame,'Target', (int(set_posisi_x_robot),int(set_posisi_y_robot)), cv2.FONT_HERSHEY_SIMPLEX, 1,(30, 255, 237),2)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

90

Sehingga dari gambar 4.40 didapat persamaan seperti berikut:

√( ) ( )

Kemudian untuk mengolah radius yang sudah di dapatkan untuk dijadikan acuan untuk

mendapatkan setpoint terdapat pada perintah:

Hasil perhitungan dari persamaan 4.4 tersimpan pada variabel radius1, misal saja

nilai radius yang dihasilkan 100 maka mode bertahan yang akan dijalankan oleh sistem.

Gambar 4. 42 Listing program untuk merubah ke mode bermain.

Pada gambar 4.42 merupakan listing program untuk melakukan perubahan ke

mode bermain. Jika pada pada tampilan GUI ditekan pada mode bermain maka sistem akan

melakukan pemanggilan modul pada fungsi def Bermain(). Pada variabel kirim merupakan

untuk memberikan perintah ke robot untuk memberikan informasi kondisi penguasaan bola

ke sistem. Memberikan informasi ke sistem sangat penting agar sistem dapat menentukan

fungsi yang harus dijalankan. Setelah dari robot merespon jawaban dari sistem maka robot

akan mengirim paket data berupa kode dan informasi. Pada listing program terdapat

keterangan fungsi terima data dari robot. Data yang diterima akan diterjemahkan sistem

dengan proses pertama kali adalah mengkoreksi kode awal yang diterima yaitu USD jika

if int(radius1) < 110: ##Mode bertahan diaktifkan

set_posisi_x_robot = int(cx_lawan) set_posisi_y_robot = int(cy_lawan)

def Bermain(): global a,kirim1,kirim,data,modemain a = 2 kirim='USD'+'20'+'00000000'+'000000'+'0000'+'00' kirim1='USD'+'21'+'00000000'+'000000'+'0000'+'00' tampilan() UDPSock.sendto(kirim1, addr) while (a==2): global modemain #UDPSock.sendto(kirim, addr) #Perintah tidak mengirim data ke robot ###################### Fungsi Terima Data Robot ########################### (data,addr1) = UDPSock.recvfrom(buf) if data[0]=='U' and data[1]=='S' and data[2]=='D':

if data[3]=='9': #Posisi modemain= str(data[4])

else: return

modemain= modemain mulai()

(4.4)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

91

sudah benar maka paket data tersebut benar dikirim dari robot sendiri. Selanjutnya

menerjemahkan kode informasi berupa angka 90 berarti bola belum dikuasai robot maka

sistem akan menjalankan fungsi untuk menyerang dan 91 berarti bola sudah dikuasai robot

maka sistem akan menjalankan fungsi untuk menuju gawang. Setelah menerjemahkan

kode yang diterima dari robot, kemudian sistem memanggil fungsi mulai() untuk

mengaktifkan fungsi untuk menyerang atau menuju gawang.

Berdasarkan pada gambar 4.43 merupakan listing program untuk menentukan mode

berhenti. Jika pada tampilan GUI ditekan tombol berhenti maka sistem akan memanggil

modul pada fungsi def Berhenti() sehingga sistem memerintahkan robot untuk

memberhentikan semua proses yang sedang berjalan.

Gambar 4. 43 Listing program untuk menentukan mode berhenti.

def Berhenti(): global a, modemain a = 3 modemain = '0' UDPSock.sendto ('exit', addr)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

92

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil pengujian dan pengambilan data dari sistem pengontrol robot

sepak bola beroda dengan metode color tracking, dapat diambil kesimpulan sebagai

berikut.

1. Dalam pengujian dan pengambilan data dilakukan di luar ruangan sehingga ketika

pencahayaan yang cukup terang saat siang hari sistem mampu menganalisa

masukan berupa video dari Webcam untuk diolah berdasarkan warna objek

menghasilkan berupa titik koordinat pixel kamera menggunakan pengolahan citra

dengan bantuan library OpenCV yang mengarahkan pergerakan robot berdasarkan

berbagai mode.

2. Dalam pengujian dan pengambilan data dilakukan di luar ruangan sehingga ketika

pencahayaan yang kurang terang saat sore hari sistem kurang mampu untuk

membaca objek sesuai warnanya.

3. Dalam pencahayaan yang cukup terang sistem mampu mengarahkan robot menuju

setpoint sesuai yang diinginkan dengan rata-rata kesalahan untuk posisi y pada

mode bersiap yaitu 0% untuk dari titik A (ujung kanan gawang sendiri) dan 0,3%

untuk dari titik B (ujung kiri gawang sendiri). Sedangkan pada mode bermain

dengan rata-rata kesalahan titik setpoint akhir untuk menendang sebesar 1,65%.

4. Robot dapat menerima perintah dan mengeksekusi perintah dari sistem sesuai

dengan mode yang diperintahkan untuk menggerakan robot menggunakan socket

Python.

5. Sensor kompas yang diprogram dapat menghasilkan sudut maksimal yaitu 360°.

6. Robot dapat secara otomatis menjalakan kondisi bersiap sesuai perintah dari sistem.

7. Robot dapat secara otomatis menjalakan kondisi bermain yaitu merebut bola dan

menuju gawang sesuai perintah dari sistem.

8. Ketika kondisi robot menuju gawang masih kurang tepat untuk berhenti di luar

kotak pinalti dikarenakan terdapat jeda dari kamera Webcam.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

93

5.2. Saran

Setelah dilakukan seluruh proses maka diperoleh saran untuk pengembangan

penelitian selanjutnya yaitu:

1. Diperlukan pengembangan lebih lanjut mengenai metode sistem mengenali warna

objek yang tidak berpengaruh terhadap cahaya.

2. Diperlukan Webcam dengan kualitas gambar yang lebih baik dan jeda kamera yang

lebih cepat diatas 30fps.

3. Sistem dapat dikembangkan dengan teknologi multiprocessing agar dapat

melaksanakan banyak proses sekaligus dan dapat mempercepat proses kinerja

sistem sehingga pergerakan robot menjadi lebih cepat.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

94

DAFTAR PUSTAKA

[1].Kontes Robot Indonesia, http://belmawa.ristekdikti.go.id/2017/07/07/pers-release-

kontes-robot-indonesia-kri-tingkat-nasional-2017/, diakses 29 Oktober 2017.

[2].Rakhman,Edi. RASPBERRY PI – Mikrokontroler Mungil yang Serba Bisa.

Yogyakarta: ANDI.

[3].Raspberry Pi Camera, https://www.element14.com/community/docs/DOC-

54359/l/raspberry-pi-camera-board, diakses 11 November 2017.

[4].Pengertian dan fungsi webcam, http://www.nesabamedia.com/pengertian-webcam-dan-

fungsi-webcam/, diakses 22 Desember 2017

[5].Spesifikasi logitech HD Webcam C270,

http://support.logitech.com/en_us/article/17556, 22 Desember 2017

[6].Sianipar,R.H. dan Hamzam Wadi. Pemrograman PYTHON (Teori dan Implementasi).

Bandung: INFORMATIKA.

[7].PYTHON, https://www.belajarpython.com/2015/05/tipe-data-python.html, diakses 11

November 2017.

[8].Hidayatullah, Priyanto. Pengolahan Citra Digital (Teori dan Aplikasi Nyata). Bandung:

INFORMATIKA

[9].Model Ruang Warna HSV, https://pemrogramanmatlab.com/2016/06/08/model-ruang-

warna-pengolahan-citra/, diakses 12 Desember 2017.

[10].Konversi RGB ke HSV, https://www.rapidtables.com/convert/color/rgb-to-hsv.html,

diakses 12 Desember 2017.

[11].Poling, Bryan. “A Tutorial On Camera Models”. Minnesota : University of

Minnesota.

[12].Hoiem, Derek, “Projective Geometry and Camera Models”, Illinois : University of

Illinois.

[13] Pemograman Jaringan Sederhana di Python, http://studiawan.com/pemrograman-

jaringan-sederhana-di-python/, diakses 18 November 2017.

[14] Cakrawala,Fendish. Pengontrol Robot Soccer Beroda Berbasis Raspberry Pi 3 Sebagai

Prototype ERSBI 2017. Yogyakarta : Universitas Sanata Dharma.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

95

[15] Pemograman Jaringan Sederhana di Python, https://docs.opencv.org/3.4/dd/d49/

tutorial_py_contour_features.html, diakses 25 Agustus 2018.

[16] Ardiyanto,Lukas.Robot Pemadam Api Berkaki Dengan Algoritma Depth First Search.

Yogyakarta: Universitas Sanata Dharma.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L1

Diagram Blok Rangkaian

VCC

GND

INPUT

5 V

GND

GPIO 18

5 V

GND

GPIO 03

GPIO 02

VCC

GND

SCL

SDA

US

B

Inp

uta

n

vid

eo

Raspberry Pi 3 Model B

USB Webcam

Motor Servo Sensor Kompas HMC5883L

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L2

Listing Program

import RPi.GPIO as GPIO from time import sleep import cv2 import numpy as np import math import smbus from socket import * from Tkinter import * vid = cv2.VideoCapture(0) a = 0 c = 0 #define Servos GPIO servo = 12 GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(servo, GPIO.OUT) ############################### Inisialisasi Warna ############################# lower_bola = np.array([10, 125, 170], dtype=np.uint8) upper_bola = np.array([20, 255, 255], dtype=np.uint8) #orange Bola FIX lower_gawang = np.array([90, 33, 210], dtype=np.uint8) upper_gawang = np.array([179, 255, 255 ], dtype=np.uint8) #gawang siang lower_lawan = np.array([150, 100, 130], dtype=np.uint8) upper_lawan = np.array([179, 158, 245], dtype=np.uint8) #magenta ####################### Pengaturan Komunikasi dengan Robot #################### host = "169.254.12.128" host1 = "" port = 13000 #port yang digunakan adalah 13000, harus sama port1 = 11000 buf = 1024 #jumlah maksimal karakter yang diterima addr = (host, port) addr1 = (host1, port1) UDPSock = socket(AF_INET, SOCK_DGRAM) UDPSock.bind(addr1) print "Online"

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L3

def tampilan(): global c c= int(ent.get()) root.t1.set(c) f=open("Percobaan" + str(c) + ".csv", "a") f.write(str('Posisi_Bola')) f.write(', ') f.write(str('Posisi_Gawang')) f.write(', ') f.write(str('Posisi_Lawan')) f.write(', ') f.write(str('Posisi_Setpoint')) f.write(', ') f.write(str('Sudut')) f.write(', ') f.write(str('Koreksi_Sudut')) f.write(', ') f.write(str('Kondisi')) f.write("\r\n") def save(data7): global c c= int(ent.get()) root.t1.set(c) f=open("Percobaan" + str(c) + ".csv", "a") f.write(str(data7)) f.write("\r\n") f.flush() f.close() def track_objects(): global hsv, lower, upper, cx, cy, frame tresh = cv2.inRange(hsv, lower, upper) #blur = cv2.GaussianBlur(tresh, (5, 5), 0) res=cv2.bitwise_and(frame, frame, mask= tresh) cx, cy = 0, 0 moments = cv2.moments(tresh, True) if moments['m00'] != 0: # calculate the centroid of the object using the moments cx = int(moments['m10'] / moments['m00']) cy = int(moments['m01'] / moments['m00']) cv2.circle(frame, (cx,cy), 10, (0, 0, 255), -1) cv2.putText(frame,"("+str(cx)+","+str(cy)+")", ((cx,cy)[0]+10,(cx,cy)[1]+15),

cv2.FONT_HERSHEY_SIMPLEX, 0.5,(30, 255, 237),1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L4

bus = smbus.SMBus(1) address = 0x1e def read_byte(adr): return bus.read_byte_data(address, adr) def read_word(adr): high = bus.read_byte_data(address, adr) low = bus.read_byte_data(address, adr+1) val = (high << 8) + low return val def read_word_2c(adr): val = read_word(adr) if (val >= 0x8000): return -((65535 - val) + 1) else: return val def write_byte(adr, value): bus.write_byte_data(address, adr, value) write_byte(0, 0b01110000) # Set to 8 samples @ 15Hz write_byte(1, 0b00100000) # 1.3 gain LSb / Gauss 1090 (default) write_byte(2, 0b00000000) # Continuous sampling scale = 0.92 x_offset = 102 #-362 #-170 #mencari data offset diberi nilai 0 y_offset = -293 #-703 #-53 #mencari data offset diberi nilai 0 def read_compas(offset): global head x_out = (read_word_2c(3) - x_offset) * scale y_out = (read_word_2c(7) - y_offset) * scale z_out = read_word_2c(5) * scale bearing = math.atan2(y_out, x_out) head = int(math.degrees(bearing)) - offset if (head < 0): head += 360 def format_kompas(): global head if head < 10: head ='0'+'0'+str(head) elif head < 100: head ='0'+str(head)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 117: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L5

def arah(): global head,direct tujuan = 0 #dapat diset sesuai arah tujuannya kompres = 180 kompas = int(head) #fungsi kompas 0-359 direct = kompres - kompas #berapa derajat yg diinginkan if int(direct) > tujuan: direct = -180 + direct elif int(direct) < tujuan: direct = 180 + direct def format_arah(): global direct if direct>=100: direct='+'+str(direct) elif 100> direct >=10: direct='+'+'0'+str(direct) elif 10> direct >0: direct='+'+'00'+str(direct) elif direct ==0: direct='+000' elif 0> direct >-10: direct='-'+'00'+str(-direct) elif -10>= direct >-100: direct='-'+'0'+str(-direct) ################################# Pengaturan Servo########################## def setServoAngle(angle): assert angle >=20 and angle <= 150 pwm = GPIO.PWM(servo, 50) pwm.start(0) #dutyCycle = angle / 18. + 3. dutyCycle= 1./18.*(angle)+2 pwm.ChangeDutyCycle(dutyCycle) sleep(0.15) pwm.stop() def mapServoPositionBola (cy_bola): global angle if (10 < cy_bola < 50): angle = 80 setServoAngle (angle) if (cy_bola >430 ): angle = 55 setServoAngle (angle)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 118: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L6

def mapServoPositionGawang (cy_lawan): global angle if (cy_lawan ==0 ): angle = 80 setServoAngle (angle) # Initialize angle servos at 90-90 position global angle angle =80 setServoAngle (angle) ############################ Fungsi untuk Mode Bersiap ########################## global a a = 1 tampilan() while (a==1): global hsv, frame, lower, upper, lower_bola, upper_bola,lower_gawangkiri, upper_gawangkiri,lower_gawangkanan,upper_gawangkanan, lower_lawan, upper_lawan, cx, cy,angle,head,direct,c,ellipse ret_val, frame = vid.read() frame = cv2.flip(frame,2) frame = cv2.flip(frame,2) #blur = cv2.GaussianBlur(frame, (5,5), 0) hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) ############################ Deteksi Objek Berdasarkan Warna #################### lower = lower_bola upper = upper_bola track_objects() format_data() cv2.putText(frame, 'Bola', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX , 1, (0, 125, 255), 2) cx_bola, cy_bola = cx, cy set_posisi_x_robot= 0 set_posisi_y_robot= 0 lower = lower_gawang upper = upper_gawang track_objects() format_data() cv2.putText(frame, 'Gawang', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2) cx_gawang, cy_gawang = cx, cy lower = lower_lawan upper = upper_lawan track_objects() format_data()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 119: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L7

cv2.putText(frame, 'Lawan', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX , 1, (255, 0, 0), 2)

cx_lawan, cy_lawan = cx, cy read_compas(0) format_kompas() arah() format_arah() #################### Mengolah Data serta Algoritma untuk Kontrol Robot ############

if int(cy_bola) >=300: set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) UDPSock.sendto ('exit', addr) elif 300 >= int(cy_bola) >= 200: set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) elif 200 >= int(cy_bola) >= 120: set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) elif int(cy_bola) <= 120: set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) cv2.circle(frame, (int(set_posisi_x_robot),int(set_posisi_y_robot)),

10, (0, 0, 255), -1) cv2.putText(frame,'Target', (int(set_posisi_x_robot),int(set_posisi_y_robot)), cv2.FONT_HERSHEY_SIMPLEX, 1,(30, 255, 237),2) ########################### Mengirim Perintah ke Robot ######################### l1=str(cx_bola)+str(cy_bola) data1 = '1'+l1 l3=str(cx_lawan)+str(cy_lawan) data3 = '3'+l3 l4=str(cx_gawang)+str(cy_gawang) data4 = '4'+l4 cx,cy = set_posisi_x_robot, set_posisi_y_robot format_data() set_posisi_x_robot, set_posisi_y_robot = cx,cy l6=str(set_posisi_x_robot)+str(set_posisi_y_robot) data6 = '03'+l6

print str(data1),", ",str(data3) ,", ",str(data4),", ",str(data6),", ",str(head) ,", ",str(direct),", ",str('Bersiap')

data5= '04'+ str(direct)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 120: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L8

data7 = str(data1)+", "+str(data3)+", "+str(data4)+", "+str(data6) +", "+str(head)+", "+str(direct)+", "+str('Bersiap')

save(data7) kirim='08'+str(c) data8 = 'USD'+'06'+str(data6)+str(data5)+str(kirim)+'00' UDPSock.sendto(data8, addr) root.update() ########################### Fungsi untuk Mode Berrmain ######################## ############################ Fungsi mengejar bola ############################## def detect_1(): global hsv, frame, lower, upper, lower_bola, upper_bola,lower_gawangkiri, upper_gawangkiri,lower_gawangkanan,upper_gawangkanan, lower_lawan, upper_lawan, cx, cy,angle,head,direct,c,ellipse lower = lower_bola upper = upper_bola track_objects() format_data() cv2.putText(frame, 'Bola', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (0, 125, 255), 2) cx_bola, cy_bola = cx, cy # position Servo at center of circle mapServoPositionBola(int(cy_bola)) lower = lower_gawang upper = upper_gawang track_objects() format_data() cv2.putText(frame, 'Gawang', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_gawang, cy_gawang = cx, cy lower = lower_lawan upper = upper_lawan track_objects() format_data() cv2.putText(frame, 'Lawan', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_lawan, cy_lawan = cx, cy

set_posisi_x_robot= 0 set_posisi_y_robot= 0

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 121: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L9

read_compas(0) format_kompas() arah() format_arah() serang='USD'+'21'+'00000000'+'000000'+'0000'+'12' bertahan='USD'+'21'+'00000000'+'000000'+'0000'+'12' ###menentukan bola dalam penguasaan musuh atau tidak k1 = (int(cx_lawan)-int(cx_bola))**2 k2 = (int(cy_lawan)-int(cy_bola))**2 radius1 = math.sqrt(k1+k2) if int(radius1) < 110: ##Mode bertahan diaktifkan set_posisi_x_robot = int(cx_lawan) set_posisi_y_robot = int(cy_lawan) UDPSock.sendto(bertahan, addr) #Mengirim perintah bermain elif int(radius1) > 110: ##Mode menyerang diaktifkan set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = int(cy_bola) UDPSock.sendto(serang, addr) #Mengirim perintah bermain

cv2.circle(frame, (int(set_posisi_x_robot),int(set_posisi_y_robot)), 10, (0, 0, 255), -1) cv2.putText(frame,'Target', (int(set_posisi_x_robot),int(set_posisi_y_robot)),

cv2.FONT_HERSHEY_SIMPLEX, 1,(30, 255, 237),2) ########################## Mengirim Perintah ke Robot ########################## l1=str(cx_bola)+str(cy_bola) data1 = '1'+l1 l3=str(cx_lawan)+str(cy_lawan) data3 = '3'+l3 l4=str(cx_gawang)+str(cy_gawang) data4 = '4'+l4 cx,cy = set_posisi_x_robot, set_posisi_y_robot format_data() set_posisi_x_robot, set_posisi_y_robot = cx,cy l6=str(set_posisi_x_robot)+str(set_posisi_y_robot) data6 = '03'+l6

print str(data1),", ",str(data3) ,", ",str(data4),", ",str(data6),", ",str(head) ,", ",str(direct),", ",str('Serang')

data5= '04'+ str(direct)

data7 = str(data1)+", "+str(data3)+", "+str(data4)+", "+str(data6)+", "+str(head) +", "+str(direct)+", "+str('Serang')

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 122: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L10

save(data7) kirim='08'+str(c) data8 = 'USD'+'21'+str(data6)+str(data5)+str(kirim)+'12' UDPSock.sendto(data8, addr) root.update() #########################Fungsi Saat Menuju Gawang ########################## def detect_2(): global hsv, frame, lower, upper, lower_bola, upper_bola,lower_gawangkiri, upper_gawangkiri,lower_gawangkanan,upper_gawangkanan, lower_lawan, upper_lawan, cx, cy,angle,head,direct,c,ellipse cx=0 cy=0 lower = lower_bola upper = upper_bola track_objects() format_data() cv2.putText(frame, 'Bola', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (0, 125, 255), 2) cx_bola, cy_bola = cx, cy lower = lower_gawang upper = upper_gawang track_objects() format_data() cv2.putText(frame, 'Gawang', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_gawang, cy_gawang = cx, cy set_posisi_x_robot=0 set_posisi_y_robot=0 lower = lower_lawan upper = upper_lawan track_objects() format_data() cv2.putText(frame, 'Lawan', (int(cx),int(cy)), cv2.FONT_HERSHEY_SIMPLEX

, 1, (255, 0, 0), 2) cx_lawan, cy_lawan = cx, cy

# position Servo at center of circle mapServoPositionGawang(int(cy_lawan))

read_compas(0) format_kompas() arah() format_arah()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 123: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L11

tendang='USD'+'51'+'00000000'+'040000'+'0000'+'00' tendang1='USD'+'50'+'00000000'+'040000'+'0000'+'00' berhenti='USD'+'00'+'00700500'+'040000'+'0000'+'00' ######################################### Ganti Setpoint ke Gawang ##################################### if 400 >= int(cx_lawan) >= 200 and 100 >= int(cy_lawan) >= 1 set_posisi_x_robot = int(cx_lawan) + 250 set_posisi_y_robot = int(cy_lawan) elif 400 >= int(cx_lawan) >= 200 and 180 >= int(cy_lawan) >= 100: #serang kiri UDPSock.sendto(berhenti, addr) set_posisi_x_robot = int(cx_lawan) + 250 set_posisi_y_robot = int(cy_lawan) UDPSock.sendto(tendang, addr) UDPSock.sendto(tendang1, addr) UDPSock.sendto(berhenti, addr) print 'Tendang' UDPSock.sendto ('exit', addr) elif 400 >= int(cx_lawan) >= 200 and 300 >= int(cy_lawan) >= 180 : #serang kiri set_posisi_x_robot = int(cx_lawan) + 250 set_posisi_y_robot = int(cy_lawan) elif int(cx_lawan) >= 400 : #serang kiri jauh dari gawang if int(cy_lawan) <= 200: set_posisi_x_robot = int(cx_lawan) - 250 set_posisi_y_robot = int(cy_lawan)

elif int(cy_lawan) >= 200: UDPSock.sendto(berhenti, addr) set_posisi_x_robot = int(cx_lawan) - 250 set_posisi_y_robot = int(cy_lawan) UDPSock.sendto(tendang, addr) UDPSock.sendto(tendang1, addr) UDPSock.sendto(berhenti, addr) print 'Tendang' UDPSock.sendto ('exit', addr)

elif 200 >= int(cx_lawan) >= 1 : #serang kanan if int(cy_lawan) <= 200: set_posisi_x_robot = int(cx_lawan) + 250 set_posisi_y_robot = int(cy_lawan) elif int(cy_lawan) >= 200: UDPSock.sendto(berhenti, addr) set_posisi_x_robot = int(cx_lawan) + 250 set_posisi_y_robot = int(cy_lawan) UDPSock.sendto(tendang, addr) UDPSock.sendto(tendang1, addr) UDPSock.sendto(berhenti, addr) print 'Tendang' UDPSock.sendto ('exit', addr)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 124: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L12

elif int(cx_lawan) == 0 and int(cy_lawan) == 0 : #serang kanan set_posisi_x_robot = int(cx_lawan) set_posisi_y_robot = int(cy_lawan)

cv2.circle(frame, (int(set_posisi_x_robot),int(set_posisi_y_robot)), 10, (0, 0, 255), -1) cv2.putText(frame,'Target', (int(set_posisi_x_robot),int(set_posisi_y_robot)),

cv2.FONT_HERSHEY_SIMPLEX, 1,(30, 255, 237),2) ########################### Mengirim Perintah ke Robot ########################## l1=str(cx_bola)+str(cy_bola) data1 = '1'+l1 l3=str(cx_lawan)+str(cy_lawan) data3 = '3'+l3 l4=str(cx_gawang)+str(cy_gawang) data4 = '4'+l4 cx,cy = set_posisi_x_robot, set_posisi_y_robot format_data() set_posisi_x_robot, set_posisi_y_robot = cx,cy l6=str(set_posisi_x_robot)+str(set_posisi_y_robot) data6 = '03'+l6 print str(data1),", ",str(data3) ,", ",str(data4),", ",str(data6),", ",str(head)

,", ",str(direct),", ",str('Mencari gawang') # data5= '04'+ str(direct) data7 = str(data1)+", "+str(data3)+", "+str(data4)+", "+str(data6)+", "+str(head)

+", "+str(direct)+", "+str('Mencari gawang') # save(data7) kirim='08'+str(c) data8 = 'USD'+'21'+str(data6)+str(data5)+str(kirim)+'11' UDPSock.sendto(data8, addr) root.update() ############## Fungsi untuk Deteksi objek dan Pemilihan Mode Bermain ############### def mulai(): global hsv, frame, lower, upper, lower_bola, upper_bola,lower_gawangkiri, upper_gawangkiri,lower_gawangkanan,upper_gawangkanan, lower_lawan, upper_lawan, cx, cy,angle,head,direct,c,ellipse ret_val, frame = vid.read() frame = cv2.flip(frame,2) frame = cv2.flip(frame,2)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 125: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L13

hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) if modemain=='0': detect_1() elif modemain=='1': detect_2() root.update() #################### Fungsi Terima Data Robot ##################### def terima(): global modemain (data,addr1) = UDPSock.recvfrom(buf) print "data terima \t:" +str(data) if data[0]=='1': #Posisi Bola modemain= '1' elif data[0]=='2': #Posisi Robot modemain= '2' ######################################### Fungsi Utama Bermain ##################################### def Bermain(): global a,kirim1,kirim,data,modemain a = 2 kirim='USD'+'20'+'00000000'+'000000'+'0000'+'00' kirim1='USD'+'21'+'00000000'+'000000'+'0000'+'00' tampilan() UDPSock.sendto(kirim1, addr) while (a==2): global modemain #UDPSock.sendto(kirim, addr) #Perintah tidak mengirim data ke robot ###################### Fungsi Terima Data Robot ########################## (data,addr1) = UDPSock.recvfrom(buf) #print "data terima \t:" +str(data) if data[0]=='U' and data[1]=='S' and data[2]=='D': if data[3]=='9': #Posisi Bola modemain= str(data[4]) else: return modemain= modemain mulai() root.update() ####################### Fungsi untuk Mode Berhenti ######################### def Berhenti(): global a, modemain a = 3 modemain = '0' berhenti='USD'+'00'+'03700500'+'000000'+'0000'+'11' UDPSock.sendto ('exit', addr) UDPSock.sendto (berhenti, addr) root.update()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L14

########################### Fungsi Tampilan ################################### root = Tk() root.title("Pengontrol Robot Sepak Bola Beroda") root.t1 = IntVar() cnt = Label(root, text='Pengontrol Robot Sepak Bola Beroda', font=('Arial', 20)) cnt.pack() frm1 = LabelFrame(root, text="Mode yang dipilih",background="White") frm1.pack() frm2 = Frame(frm1) frm2.pack(side=LEFT) cnt1 = LabelFrame(frm2, text='Bersiap', font=('Arial', 20)) cnt1.pack(side=LEFT) frm3 = Frame(frm1) frm3.pack(side=LEFT) cnt2 = LabelFrame(frm2, text='Bermain', font=('Arial', 20)) cnt2.pack(side=LEFT) frm4 = Frame(frm1) frm4.pack(side=LEFT) cnt4 = LabelFrame(frm2, text="Data Ke-") cnt4.pack(side=LEFT) ent = Entry(cnt4) ent.pack(side=LEFT) mode = IntVar() btn1 = Button(cnt1, text="Bersiap", padx=30, pady=30, command=Bersiap) btn1.pack(side=LEFT) btn2 = Button(cnt2, text="Bermain", padx=30, pady=30, command=Bermain) btn2.pack(side=LEFT) btn3 = Button(frm2, text="Berhenti", padx=30, pady=40, command=Berhenti) btn3.pack(side=BOTTOM) root.mainloop()

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 127: PENGONTROL ROBOT SEPAK BOLA BERODA DENGAN … · ii FINAL PROJECT WHEELED SOCCER ROBOT CONTROLLER BY COLOR TRACKING METHOD Presented as Partial Fulfillment of the Requierments To

L15

Kondisi Percobaan Mode bermain pada Lapangan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI