PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

100
TUGAS AKHIR PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA BERODA Disusun oleh: Michael Chandra Buana Nugroho Wijanarko NIM: 175114018 JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2021 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Transcript of PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

Page 1: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

TUGAS AKHIR

PERANCANGAN SISTEM KOORDINASI

ROBOT SEPAK BOLA BERODA

Disusun oleh:

Michael Chandra Buana Nugroho Wijanarko

NIM: 175114018

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2021

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

ii

FINAL PROJECT

DESIGN OF WHEELED SOCCER ROBOT

COORDINATION SYSTEM

Arranged by:

Michael Chandra Buana Nugroho Wijanarko

NIM: 175114018

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2021

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

MOTTO:

“Sempiternal energy, inevitable entropy; at least,

- Andra Winarko -

Skripsi ini kupersembahkan kepada

kebajikan dan kebijaksanaan,

orang tuaku,

dan semua orang yang peduli.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

viii

INTISARI

Perkembangan teknologi robot dari tahun ke tahun selalu berkembang. Di Indonesia,

Kementerian Riset Teknologi dan Pendidikan Tinggi Republik Indonesia setiap tahunnya

mengadakan Kontes Robot Indonesia (KRI). Dalam KRI terdapat divisi Kontes Robot Sepak

Bola Beroda (KRSBI-B). Hal ini dapat dimanfaatkan dalam pengembangan robot sepak bola

beroda. Pada penelitian ini ditekankan pada perancangan sistem koordinasi robot sepak bola

beroda.

Sistem koordinasi yang dimaksud meliputi komunikasi, navigasi, dan komunikasi. Mini

komputer Raspberry Pi 3 digunakan sebagai klien untuk berkomunikasi secara wireless

dengan base station dan secara kabel dengan mikrokontroler. Mikrokontroler yang

digunakan yaitu Arduino Due sebagai pengendali motor DC 3 omniweheels. Sensor rotary

encoder digunakan untuk mengetahui perpindahan robot. Sensor kompas untuk mengetahui

heading robot. Format data yang dikirimkan berbentuk JSON. Pergerakan robot

menggunakan kinematika 3 omniwheels.

Sistem koodinasi robot sepak bola beroda berhasil diimplementasikan dan diuji. Sistem

komunikasi memiliki keberhasilan 100%. Sistem kontrol navigasi robot dapat bekerja

dengan baik melalui base station. Sistem visualisasi memiliki keberhasilan 83,37%.

Perputaran robot memiliki keberhasilan 74,58%. Perpindahan robot memiliki keberhasilan

8%. Penentuan lokasi diri robot dalam sumbu x, y, dan sudut dapat bekerja sesuai dengan

sensor rotary encoder dan sensor kompas dengan galat 1,5 cm pada sumbu x, 1,5 cm pada

sumbu y, serta 21,41 derajat pada perputaran clockwise dan 15,05 derajat pada perputaran

counter clockwise.

Kata kunci: Rasberry Pi, koordinasi, robot sepak bola beroda, omniwheels, visualisasi,

navigasi, kinematika

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

ix

ABSTRACT The development of robot technology from year to year is getting more sophisticated.

In Indonesia, the Ministry of Research, Technology, and Higher Education of the Republic

of Indonesia annually holds the Indonesian Robot Contest (KRI). In the KRI there is a

Wheeled Football Robot Contest (KRSBI-B) division. This can be utilized in the

development of a wheeled soccer robot. In this research is emphasized on the design of the

wheeled soccer robot coordination system.

The coordination coordination includes communication, navigation, and

communication. Raspberry Pi 3 mini computer is used as a client to communicate robot

wirelessly with a base station and wired communication with the microcontroller. Arduino

Due microcontroller is used as a DC motor 3 omniwheels’ controller, as well as a rotary

encoder sensor receiver to determine the displacement of the robot and a compass sensor to

determine the robot's heading. The data sent is in JSON format. Then, the movement using

3 omniwheels kinematics.

The wheeled soccer robot coordination system has been successfully implemented and

tested. The communication system has 100% success. Robot navigation control system can

work well via base station. The visualization system has 83.37% success. Robot turnaround

has 74.58% success. Robot displacement has 8% success. Self-location of the robot in the x,

y, and angle axis can work according to the rotary encoder sensor and compass sensor with

an error of 1.5 cm on the x-axis, 1.5 cm on the y-axis, and 21.41 degrees on the clockwise

and 15.05 degree counter clockwise rotation.

Keyword: Raspberry Pi, navigation, wheeled soccer robot, omniwheels, visualization,

navigation, kinematic

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xi

DAFTAR ISI

LEMBAR PERSETUJUAN ................................................................................................. iii

LEMBAR PENGESAHAN .................................................................................................. iv

PERNYATAAN KEASLIAN KARYA ................................................................................ v

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ..................................................... vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK

KEPENTINGAN AKADEMIS ........................................................................................... vii

INTISARI ........................................................................................................................... viii

ABSTRACT ......................................................................................................................... ix

KATA PENGANTAR ........................................................................................................... x

DAFTAR ISI ........................................................................................................................ xi

DAFTAR GAMBAR .......................................................................................................... xiv

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

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

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

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

1.3 Batasan Masalah ..................................................................................................... 2

1.4 Metodologi Penelitian ............................................................................................. 2

BAB II DASAR TEORI ........................................................................................................ 5

2.1 Python ..................................................................................................................... 5

2.2 Raspberry Pi 3 Model B .......................................................................................... 5

2.3 Webcam ................................................................................................................... 6

2.4 OpenCV .................................................................................................................. 7

2.5 Preprocessing image ............................................................................................... 7

2.6 Ekstraksi Ciri .......................................................................................................... 8

2.6.1 Ruang Warna HSV .............................................................................................. 8

2.7 Kinematika tiga omniwheel .................................................................................... 9

2.8 Odometri ............................................................................................................... 10

2.9 Sensor kompas ...................................................................................................... 11

2.10 Arduino Mega 2560 .......................................................................................... 11

2.11 Kontrol PID ....................................................................................................... 12

2.12 Trigonometri...................................................................................................... 13

2.13 Line-line intersection......................................................................................... 14

2.14 Node.js............................................................................................................... 15

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xii

2.14.1 JavaScript .......................................................................................................... 16

2.14.2 HTML................................................................................................................ 16

2.14.3 CSS .................................................................................................................... 17

2.15 JSON ................................................................................................................. 17

2.16 WebSockets ....................................................................................................... 18

2.17 Socket.IO ........................................................................................................... 19

BAB III PERANCANGAN PENELITIAN ........................................................................ 20

3.1 Diagram blok sistem ............................................................................................. 20

3.2 Perancangan Perangkat Keras ............................................................................... 21

3.2.1 Perancangan Robot Sepak Bola Beroda ............................................................ 21

3.2.2 Interkoneksi Sistem Rangkaian .............................................................................. 22

3.2.3 Perancangan Lapangan ........................................................................................... 22

3.2.4 Perancangan Dummy Robot dan bola ..................................................................... 23

3.3 Perancangan Perangkat Lunak .............................................................................. 24

3.3.1 Kontrol PID ....................................................................................................... 24

3.3.1.1 Subrutin pembacaan kompas ............................................................................... 25

3.3.1.2 Penentuan lokasi diri robot .................................................................................. 26

3.3.2 Penentuan lokasi dummy robot dan bola ................................................................ 28

3.3.2.1 Subrutin preprocessing image ............................................................................. 30

3.3.2.2 Subrutin ekstraksi ciri .......................................................................................... 31

3.3.3 Perancangan komunikasi base station dengan robot ........................................ 32

3.3.4 Perancangan pengiriman data............................................................................ 33

3.3.5 Perancangan visualisasi ..................................................................................... 34

BAB IV HASIL DAN PEMBAHASAN ............................................................................. 36

4.1. Perubahan perancangan ............................................................................................ 36

4.1.1 Perubahan Komponen Hardware ........................................................................... 37

4.1.2 Perubahan Diagram blok sistem dan interkoneksi sistem rangkaian ..................... 37

4.1.3 Perubahan Data Komunikasi .................................................................................. 38

4.1.4 Perubahan Kontrol Navigasi Robot ........................................................................ 40

4.1.5 Perubahan Subrutin Penentuan Lokasi Diri Robot ................................................ 44

4.2. Hasil Perancangan Hardware ................................................................................... 45

4.2.1 Hasil Perancangan Robot ....................................................................................... 45

4.2.2 Sistem Kelistrikan .................................................................................................. 48

4.3. Hasil Perancangan Software ..................................................................................... 49

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xiii

4.3.1 Hasil GUI visualisasi dan kontrol navigasi pada base station................................ 49

4.4 Hasil Pengujian Sistem .............................................................................................. 50

4.4.1 Hasil Pengujian Komunikasi Base Station - Robot ................................................ 50

4.4.2 Hasil Pengujian Perancangan Komunikasi Socketio .............................................. 51

4.4.3 Hasil Pengujian Perancangan Komunikasi Serial .................................................. 52

4.4.4 Hasil Pengujian Perancangan Perpindahan Robot.................................................. 52

4.4.5 Hasil Pengujian Perancangan Perputaran Robot .................................................... 54

4.4.6 Hasil Pengujian Kontrol Navigasi dan Penentuan Lokasi Diri Robot.................... 57

4.4.6.1 Sumbu X Dan Y .................................................................................................. 57

4.4.6.2 Sumbu Sudut ....................................................................................................... 60

4.5 Hasil Implementasi Motor ......................................................................................... 62

4.6 Hasil Implementasi Rotary Encoder ......................................................................... 63

4.7 Hasil Implementasi Kompas ...................................................................................... 64

4.8 Pengujian Nilai Akurasi Perpindahan Dan Perputaran.............................................. 65

BAB V KESIMPULAN DAN SARAN .............................................................................. 67

5.1 Kesimpulan ................................................................................................................ 67

5.2 Saran .......................................................................................................................... 67

DAFTAR PUSTAKA .......................................................................................................... 68

Lampiran .............................................................................................................................. 70

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xiv

DAFTAR GAMBAR

Gambar 1.1 Diagram Blok..................................................................................................... 3

Gambar 2.1 Board Raspberry Pi 3 Model B .......................................................................... 5

Gambar 2.2 Webcam Logitech C70 ...................................................................................... 7

Gambar 2.3 Representasi kinematika tiga omniwheels ......................................................... 9

Gambar 2.4 Diagram blok kontroler PID pada feedback loop ............................................ 12

Gambar 2.5 Trigonometri Segitiga Siku-Siku ..................................................................... 14

Gambar 2.6 Perpotongan dua garis linear ........................................................................... 14

Gambar 2.7 Arsitektur Node.js ............................................................................................ 16

Gambar 2.8 Pengaplikasian CSS pada HTML .................................................................... 17

Gambar 2.9 Struktur penulisan JSON ................................................................................. 17

Gambar 2.10 Koneksi WebSockets ..................................................................................... 18

Gambar 3.1 Diagram Blok Sistem ...................................................................................... 20

Gambar 3.2 Rancangan Robot Sepak Bola Beroda ............................................................. 21

Gambar 3.3 Interkoneksi Sistem Rangkaian ....................................................................... 22

Gambar 3.4 Perancangan lapangan ..................................................................................... 23

Gambar 3.5 Perancangan dummy robot ............................................................................... 23

Gambar 3.6 Bola ukuran 4 ................................................................................................... 24

Gambar 3.7 Diagram alir kontrol PID pada Arduino .......................................................... 24

Gambar 3.8 Diagram alir subtrutin pembacaaan kompas.................................................... 25

Gambar 3.9 Ilustrasi posisi awal robot ................................................................................ 26

Gambar 3.10 Subrutin penentuan lokasi diri robot pada base station ................................. 27

Gambar 3.11 Ilustrasi penentuan lokasi dummy robot dan bola.......................................... 28

Gambar 3.12 Diagram alir penentuan lokasi dummy robot dan bola pada Rasberry Pi 1 ... 29

Gambar 3.13 Diagram alir penentuan lokasi dummy robot dan bola pada base station ..... 30

Gambar 3.14 Diagram alir subrutin preprocessing image .................................................. 31

Gambar 3.15 Diagram alir subrutin ekstraksi ciri ............................................................... 31

Gambar 3.16 Langkah komunikasi base station dengan robot ............................................ 32

Gambar 3.18 Perancangan visualisasi ................................................................................. 35

Gambar 4.1 Perubahan diagram blok umum ....................................................................... 36

Gambar 4.2 Perubahan diagram blok sistem ....................................................................... 37

Gambar 4.3 Perubahan interkoneksi sistem rangkaian ........................................................ 38

Gambar 4.4 Diagram alir kontrol navigasi robot pada Raspberry Pi .................................. 40

Gambar 4.5 Diagram alir program pada Arduino................................................................ 41

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xv

Gambar 4.6 Diagram alir subrutin kontrol perpindahan Robot ........................................... 42

Gambar 4.7 Diagram alir subrutin kontrol perputaran robot ............................................... 43

Gambar 4.8 Diagram alir subrutin pembacaan rotary encoder ........................................... 44

Gambar 4.9 Subrutin penentuan lokasi diri robot pada Raspberry Pi ................................. 44

Gambar 4.10 Subrutin penentuan lokasi diri robot pada base station ................................. 45

Gambar 4.11 Hasil perancangan robot ................................................................................ 46

Gambar 4.12 Hasil perancangan hardware bagian atas ...................................................... 46

Gambar 4.13 Hasil perancangan hardware bagian belakang .............................................. 47

Gambar 4.14 Hasil perancangan hardware bagian bawah .................................................. 47

Gambar 4.15 Sistem pembagian daya ................................................................................. 48

Gambar 4.16 Hasil GUI visualisasi dan kontrol pada base station ..................................... 49

Gambar 4.17 Ilustrasi pengambilan data komunikasi ......................................................... 50

Gambar 4.18 Hasil komunikasi base station – robot .......................................................... 51

Gambar 4.19 Komunikasi socketio pada Raspberry Pi ....................................................... 51

Gambar 4.20 Komunikasi serial Arduino – Raspberry Pi ................................................... 52

Gambar 4.21 Pengukuran perpindahan visualisasi robot .................................................... 52

Gambar 4.22 Pengukuran perpindahan nyata robot ............................................................ 52

Gambar 4.23 Pengukuran perputaran visualisasi robot ....................................................... 54

Gambar 4.24 Pengukuran perputaran nyata robot ............................................................... 55

Gambar 4.25 Cara mengukur perputaran nyata robot ......................................................... 55

Gambar 4.26 Pengukuran posisi x dan y visualisasi robot .................................................. 57

Gambar 4.27 Pengukuran posisi x dan y nyata robot .......................................................... 58

Gambar 4.28 Pengukuran posisi visualisasi robot sumbu sudut ......................................... 60

Gambar 4.29 Pengukuran posisi nyata robot bidang sudut ................................................. 60

Gambar 4.30 Potongan progam pengendali motor pada Arduino ....................................... 62

Gambar 4.31 Potongan progam rotary encoder pada Arduino ........................................... 63

Gambar 4.32 Potongan progam pembacaan kompas pada Arduino .................................... 64

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

xvi

DAFTAR TABEL

Tabel 2.1 Spesifikasi Raspbrry Pi 3 B ................................................................................... 6

Tabel 2.2 Spesifikasi USB Logitech C270 ............................................................................ 7

Tabel 2.3 Spesifikasi Arduino Mega 2560 .......................................................................... 12

Tabel 2.4 Pengaruh parameter kontrol PID ......................................................................... 13

Tabel 3.1 Daftar Socket ID yang digunakan ....................................................................... 32

Tabel 3.2 Daftar data yang diterima base station dari robot ............................................... 33

Tabel 3.3 Daftar data yang dikirim base station ke robot ................................................... 34

Tabel 4.1 Daftar Perubahan Socket ID yang digunakan .................................................... 38

Tabel 4.2 Daftar perubahan data yang diterima base station dari robot.............................. 39

Tabel 4.3 Daftar perubahan data yang dikirim base station ke robot .................................. 39

Tabel 4.4 Daftar data yang diterima Raspberry Pi dari Arduino ......................................... 39

Tabel 4.5 Daftar data yang dikirim Raspberry Pi ke Arduino ............................................. 40

Tabel 4.6 Keterangan perancangan hardware ..................................................................... 47

Tabel 4.7 Keterangan GUI visualisasi dan kontrol pada base station ................................. 49

Tabel 4.8 Keterangan ilustrasi pengambilan data komunikasi ............................................ 50

Tabel 4.9 Hasil Pengujian Perpindahan Robot .................................................................... 53

Tabel 4.10 Hasil Pengujian Perputaran Robot..................................................................... 56

Tabel 4.11 Sudut Arah Percobaan Pada Penentuan Lokasi Diri Robot (θ) ......................... 58

Tabel 4.12 Hasil Pengujian Penentuan Lokasi Diri Robot (x,y) ......................................... 59

Tabel 4.13 Hasil Pengujian Penentuan Lokasi Diri Robot (θ) ............................................ 61

Tabel 4.14 Kecepatan motor terhadap PWM ...................................................................... 63

Tabel 4.15 Nilai resolusi rotary encoder ............................................................................. 64

Tabel 4.16 Nilai pengujian kompas secara manual ............................................................. 64

Tabel 4.17 Nilai akurasi perpindahan .................................................................................. 65

Tabel 4.18 Nilai akurasi perputaran .................................................................................... 65

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Kontes Robot Sepak Bola Indonesia Beroda (KRSBI-B) adalah salah satu cabang

Kontes Robot Indonesia (KRI) dengan mengusung peraturan RoboCup Middle Size League

yang disesuaikan. KRI diadakan setiap tahunnya oleh Kementerian Riset Teknologi dan

Pendidikan Tinggi Republik Indonesia. Tempat lomba selalu berbeda setiap tahunnya

menggunakan sistem undian [1]. Pada awal tahun 2020, pandemi Covid-19 melanda dunia

yang membuat aktivitas manusia harus dibatasi, seperti menggunakan masker, menjaga

jarak, dan tidak berkerumun dalam jumlah besar [2][3]. Meskipun demikian, KRI tetap

dilaksanakan dengan sistem daring, sehingga dalam pertandingan KRSBI-B, peserta tidak

perlu berkumpul di tempat yang sama. Jumlah robot yang dilombakan berjumlah dua robot

striker dengan ukuran lapangan 6 m x 4.5 m. Sistem permainan adalah melakukan operan

dan mencetak gol sebanyak-banyaknya dalam waktu yang sudah ditentukan dengan

rintangan tiga buah dummy robot yang ditaruh secara acak sesuai undian [5].

Pada tahun 2020, Stefanus melakukan penelitian berjudul “Visualisasi Posisi Robot

Dan Bola Serta Strategi Bermain Pada Robot Sepakbola” [6]. Juga, Nickolaus melakukan

penelitian berjudul “Penggerak dan Pengolah Posisi Robot Striker Pada Robot Sepak Bola

Beroda” [7]. Pada penelitian [6] digunakan peraturan KRI 2019 akan tetapi tanpa pengolahan

posisi seperti pada penelitian [7]. Pada tugas akhir ini, penelitian [6] akan dikembangkan

dengan menggunakan peraturan KRI Daring 2020 dan penentuan posisi tanpa strategi

permainan.

Layaknya manusia, robot harus dapat berkomunikasi dengan robot lainnya yaitu dapat

mengetahui posisi lawan, kawan, bola, dan gawang agar dapat menentukan keputusan

permainan. Oleh sebab itu, pada tugas akhir ini akan dirancang sistem koordinasi robot sepak

bola beroda yang dapat berkomunikasi dengan robot lainnya, dibuatnya visualisasi untuk

memudahkan melihat, posisi diri robot, robot kawan, dummy robot, bola, dan gawang, serta

memudahkan untuk mengendalikan robot.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

2

1.2 Tujuan dan Manfaat

Tujuan dari penelitian ini adalah menghasilkan algoritma robot sepak bola beroda

yang dapat saling berkomunikasi antara robot dengan base station secara dua arah,

menghasilkan algoritma robot sepak bola beroda yang dapat mengolah data rotary encoder

dan kompas untuk mengetahui koordinat posisi dan heading robot, menghasilkan algoritma

robot sepak bola beroda yang dapat mengolah data citra untuk mengetahui posisi dummy

robot, dan bola serta menghasilkan program visualisasi posisi robot dan bola terhadap

lapangan sehingga pergerakan robot dapat dipantau dengan acuan peraturan KRI Daring

2020.

Manfaat dari penelitian ini adalah mengembangkan Klub Robotika dan diri sendiri

dalam bidang robot sepak bola beroda khususnya bidang navigasi, komunikasi, dan

penggunaan visualisasi dalam robot, serta sebagai tugas akhir yang merupakan syarat khusus

kelulusan.

1.3 Batasan Masalah

Supaya penulisan tugas akhir ini bisa mengarah pada tujuan dan untuk menghindari

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

masalah yang ditentukan. Adapun batasan masalah adalah:

1. Komunikasi antarrobot dilakukan melalui komputer server secara nirkabel.

2. Visualisasi posisi robot serta memperkirakan posisi dummy robot dan bola.

3. Robot dapat dikendalikan melalui base station.

4. Konfigurasi lokasi robot didefinisikan oleh nilai 𝑥, 𝑦, dan 𝜃 pada koordinat kartesian.

Pergerakan pada arah 𝑧, sudut roll dan sudut pitch diabaikan.

5. Konfigurasi lokasi dummy robot dan bola didefinisikan oleh nilai 𝑥, 𝑦 pada koordinat

kartesian.

6. Pengujian dilakukan pada lapangan KRSBI-B dengan ukuran 4,5 x 6 m2,

menggunakan tiga buah dummy robot dan bola ukuran 4, serta mengikuti peraturan

KRI Daring 2020.

1.4 Metodologi Penelitian

Dalam proses perancangan tugas akhir, metode penelitian yang akan digunakan agar

mencapai tujuan yakni sebagai berikut:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

3

1. Studi pustaka

Tahap awal dalam penelitian ini adalah pencarian referensi di internet, buku, maupun

jurnal yang berkaitan dengan pembuatan tugas akhir ini serta mempelajari cara kerja tentang

perangkat yang akan digunakan. Literatur yang dipelajari meliputi Python, Raspberry Pi 3

Model B, webcam, OpenCV, preprocessing image dan ekstraksi ciri, ruang warna HSV,

kinematika tiga omniwheels, odometri, sensor kompas, Arduino Mega 2560, kontrol PID,

trigonometri, line-line intersection, Node.js, JavaScript, HTML, CSS, JSON, WebSockets,

serta Socket.IO.

2. Perancangan sistem

kameraomnidireksional

RasPi 1

RasPi 2

Arduino

penendang

kamera depan

sensor jarak

gripper

rotary encoder

omniwheel

kompas

servervisualisasi

ROBOT

BASE STATION BASIS KOMUNIKASI

BASIS ATAS

BASIS TENGAH

BASIS BAWAH

BASIS BAWAH Chandra

Hendrik

Hendrik

Chandra

Chandra

Gambar 1.1 Diagram Blok

Tahap kedua bertujuan untuk menentukan rancangan yang digunakan dalam sistem

pengendalian robot untuk menyelesaikan masalah yang ada pada penelitian sebelumnya.

Gambar 1.1. merupakan diagram blok perancangan yang dikerjakan oleh dua orang dengan

dibagi dalam empat basis: basis komunikasi, basis atas, basis tengah, dan basis bawah. Pada

penelitian milik Hendrik berfokus pada basis tengah dan basis bawah terutama bagian

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

4

pergerakan, penendang, dan algoritma gerak dasar permainan. Pada penelitian ini berfokus

pada basis atas yang meliputi kamera omnidireksional, basis bawah pengolahan kompas,

data rotary encoder, dan mikrokontroler Arduino, serta basis komunikasi yang meliputi base

station server dan visualisasi.

3. Pembuatan Alat

Tahap ketiga dilakukan pembuatan alat berupa perangkat keras dan perangkat lunak.

Pada perangkat keras berupa kontroler PID. Pada perangkat lunak berupa base station yang

meliputi sistem komunikasi dan sistem navigasi.

4. Pengambilan Data

Tahap keempat, proses pengambilan data dilakukan dengan mencatat hasil prediksi

posisi dummy robot dan bola dengan cara meletakan di beberapa posisi pada lapangan,

mencatat respon penentuan posisi diri robot dengan cara menggeser dan memutar robot, serta

mengambil data respon pergerakan robot yang dikendalikan dari base station. Data-data

akan dibandingkan dengan data visualisasi pada base station.

5. Analisis dan Kesimpulan

Tahap akhir, dilakukan analisis untuk menyimpulkan perbandingan antara hasil

percobaan dengan hasil perancangan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

5

BAB II

DASAR TEORI

Bab ini menjelaskan tentang perangkat utama yang digunakan pada penelitian

Perancangan Sistem Koordinasi Robot Sepak Bola Beroda. Perangkat-perangkat dan

algoritma yang digunakan antara lain Python, Raspberry Pi 3 Model B, webcam, OpenCV,

Preprocessing image dan ekstraksi ciri, ruang warna HSV, kinematika tiga omniwheels,

odometri, sensor kompas, Arduino Mega 2560, kontrol PID, trigonometri, line-line

intersection, Node.js, JavaScript, HTML, CSS, JSON, WebSockets, serta Socket.IO.

2.1 Python

Python adalah bahasa pemrograman aras tinggi yang dapat diinterpretasikan,

interaktif, dan juga orientasi objek. Bahasa pemrogramana Python relatif mudah dan simpel.

Python memiliki berbagai macam pustaka yang dapat digunakan untuk machine learning,

pemrosesan citra, membuat grafik antarmuka pengguna, dsb. Python dapat dioperasikan di

berbagai macam variasi sistem operasi termasuk Linux, macOS, dan Windows [8]. Pada

penelitian ini, Python digunakan dalam pengolahan data pada Raspberry Pi.

2.2 Raspberry Pi 3 Model B

Gambar 2.1 Board Raspberry Pi 3 Model B [9]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

6

Raspberry Pi 3 Model B merupakan single board computer dengan ukuran yang

sangat compact seperti ditunjukan pada Gambar 2.1. Raspberry Pi 3 Model 3 dioperasikan

menggunakan sistem operasi Linux berbasis Python yang memiliki grafik antarmuka

pengguna, sehingga dapat digunakan seperti komputer pribadi. Raspberry Pi 3 Model B

memiliki pin I/O serta mampu menghasilkan/menerima tegangan 5 volt yang dapat

digunakan untuk sensor-sensor maupun driver komponen [9].

Tabel 2.1 Spesifikasi Raspbrry Pi 3 B [9]

Processor Broadcom BCM2837B0, Cortex-A53

64-bit SoC @ 1.4GH

Memory 1GB LPDDR2 SDRAM

Connectivity

- 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless

LAN, Bluetooth 4.2, BLE

- Gigabit Ethernet over USB 2.0 (maximum throughput

300Mbps)

- 4 × USB 2.0 ports

Access Extended 40-pin GPIO header

Video & sound

- 1 × full size HDMI

- MIPI DSI display port

- MIPI CSI camera port

- 4 pole stereo output and composite video port

SD card support H.264, MPEG-4 decode (1080p30); H.264 encode

(1080p30); OpenGL ES 1.1, 2.0 graphics

Input power 5V/2.5A DC via micro USB connector

5V DC via GPIO header

Berdasarkan Tabel 2.1, Raspberry Pi 3 Model B dipilih karena dapat digunakan

untuk pemrosesan citra menggunakan bahasa pemrograman Python. Raspberry Pi Model B

dapat dikomunikasikan secara nirkabel menggunakan jaringan Wi-Fi serta memiliki GUI

yang dapat dapat dipantau secara nirkabel. Hal ini memudahkan dalam pengubahan data

tanpa harus menggunakan monitor, keyboard, dan mouse yang disambung terlebih dahulu.

Pada penelitian ini, Raspberry Pi 3 Model B digunakan sebagai komputer untuk memproses

data robot.

2.3 Webcam

Webcam adalah perangkat keras yang dapat digunakan untuk streaming gambar atau

video secara real-time yang terkoneksi dengan komputer maupun jaringan komputer yang

ditunjukan pada Gambar 2.2.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

7

Tabel 2.2 Spesifikasi USB Logitech C270 [10]

Resolusi 720p/30fps

Jenis fokus Fokus tetap

Resolusi Optikal 1280 x 960 1.2 MP

Mikrofon Build-in, Noise Suppresion

Tipe USB High Speed USB 2.0

Focal length 4.0 mm

Berdasarkan Tabel 2.2, Webcam Logitech C270 dipilih karena memiliki kualitas

yang baik, noiseless, dan tone warna tidak jauh berbeda dengan warna yang asli [10]. Pada

penelitian ini, Webcam Logitech C270 digunakan pada robot untuk tracking dummy robot

dan bola.

Gambar 2.2 Webcam Logitech C70 [10]

2.4 OpenCV

OpenCV adalah sebuah library open source computer vision dan machine learning

yang di dalamnya memuat struktur data serta algoritma yang diperlukan untuk melakukan

pengolahan citra secara real-time. OpenCV dapat digunakan dalam berbagai bahasa

pemrograman C++, Python, Java, dan MATLAB. Juga, OpenCV dapat digunakan untuk

object recognition, object identity, object classification, feature extraction secara diskrit

maupun kontinyu [11]. Pada penelitian ini, OpenCV digunakan untuk mengolah citra yang

ditangkap dengan webcam pada robot.

2.5 Preprocessing image

Sebelum memproses citra digital, diperlukan langkah preprocessing image. Ukuran

dan kualitas citra jika telalu besar akan membuat proses menjadi lama. Juga, di setiap citra

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

8

digital pasti memiliki noise yang dapat mengurangi kualitas pengolahan [12][13]. Dengan

menggunakan pustaka OpenCV dapat membantu dalam preprocessing image [14].

cv2.resize(img, dimensi, interpolation) dapat digunakan sebagai pengubah ukuran gambar

dengan parameter img sebagai obyek gambar, dimensi sebagai dimensi (tinggi dan lebar)

yang diinginkan, serta interpolation sebagai mode interpolasi yang diinginkan.

cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) dapat digunakan sebagai segmentasi warna

HSV dengan parameter frame sebagai obyek gambar. cv2.GaussianBlur(image, (kernel), ite)

dapat digunakan sebagai pengurang noise dengan parameter image sebagai obyek gambar,

kernel sebagai kuantitas besarnya matriks untuk blur yang bernilai ganjil, dan ite sebagai

angka iterasi blur. Oleh karena itu, pada penelitian ini diperlukan preprocessing image.

2.6 Ekstraksi Ciri

Ekstraksi ciri berfungsi untuk membedakan objek dari background supaya objek

dapat terdeteksi serta mengurangi jumlah dataset yang ada dengan membuat ekstraksi baru

dari yang sudah ada [15]. Dengan menggunakan pustaka OpenCV dapat membantu dalam

ekstrasi ciri [14]. cv2.inRange(frame, lower_value, upper_value) dapat digunakan untuk

masking citra sesuai warna yang diinginkan dengna parameter frame sebagai obyek gambar,

lower_value sebagai batas bawah warna, dan upper_value sebagai batas atas warna.

cv2.findContours(src, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) dapat

digunakan untuk mencari contour dengan parameter src sebagai obyek gambar, lalu citra

sudah dapat dibedakan dan dipisahkan dalam sebuah array. Oleh karena itu, pada penelitian

ini diperlukan ekstraksi ciri

2.6.1 Ruang Warna HSV

Ruang warna HSV (Hue, Saturation, Value) merupakan model warna yang ditunjukan

pada Gambar 2.3. Hue (H) merupakan representasi spektrum warna cahaya tampak,

saturation (S) merupakan tingkat kepekatan warna, dan value (V) merupakan tingkat

kecerahan warna. Ruang HSV digunakan karena dalam segmentasi warna lebih mudah

daripada ruang warna RGB. Untuk mendapatkan nilai HSV diperlukan konversi nilai RGB

menggunakan persamaan berikut:

[𝑅′𝐺′𝐵′

] = [

𝑅/255𝐺/255𝐵/255

]

(2.1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

9

[𝐶𝑚𝑎𝑥𝐶𝑚𝑖𝑛∆

] = [max (𝑅′, 𝐺′, 𝐵′)

min(𝑅′, 𝐺′, 𝐵′)𝐶𝑚𝑎𝑥 − 𝐶𝑚𝑖𝑛

]

(2.2)

Setelah mendapatkan nilai Cmax, Cmin, dan ∆, nilai-nilai tersebut akan dijadikan

aturan dalam perhitungan setiap nilai pada hue, saturation, dan value [16]. Oleh karena itu

nilai HSV dapat didefinisikan dalam persamaan berikut:

𝐻 =

{

0

60𝐺′ − 𝐵′

60𝐵′ − 𝑅′

∆+ 2

60𝑅′ − 𝐺′

∆+ 4

, 𝑗𝑖𝑘𝑎 ∆ = 0

, 𝑗𝑖𝑘𝑎 𝐶𝑚𝑎𝑥 = 𝑅′

, 𝑗𝑖𝑘𝑎 𝐶𝑚𝑎𝑥 = 𝐺′

, 𝑗𝑖𝑘𝑎 𝐶𝑚𝑎𝑥 = 𝐵′}

(2.3)

𝑆 = {

0 , 𝑗𝑖𝑘𝑎 ∆= 0∆

𝐶𝑚𝑎𝑥, 𝑗𝑖𝑘𝑎 𝐶𝑚𝑎𝑥 ≠ 0

}

(2.4)

V = Cmax (2.5)

2.7 Kinematika tiga omniwheel

y

x

L

L

L

-Vy-Vy

V1

V2

V3

Vx

-Vx

-Vx

θ

Gambar 2.3 Representasi kinematika tiga omniwheels

Pada penelitian ini, model pergerakan robot sepak bola beroda menggunakan

pendekatan kinematika dengan tiga omniwheel. Kinematika berfungsi untuk mengetahui

arah pergerakan suatu robot. Pada Gambar 2.3 ditunjukan ilustrasi representasi kinematika

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

10

robot dengan tiga roda. Posisi robot disimbolkan sebagai 𝑥 dan 𝑦 dalam bidang kartesian

dan 𝜃 sebagai sudut orientasi robot terhadap sumbu x referensi [17]. Kecepatan roda

𝑉𝑖(1, 2, 3) didapatkan dari perkalian kecepatan sudut 𝜔 dengan jari-jari omniwheel 𝑟,

sehingga kecepatan robot menggunakan kinematika maju dapat didefinisikan dalam

persamaan 2.6.

[

𝑉𝑥𝑉𝑦𝑉𝜃

] = [cos 𝜃 −cos 𝜃 0−sin 𝜃 −sin 𝜃 11/𝐿 1/𝐿 1/𝐿

] [𝑉1𝑉2𝑉3

] (2.6)

Di mana 𝑉𝑥 dan 𝑉𝑦 adalah kecepatan ortogonal terhadap kecepatan 𝑉𝑖(1, 2, 3) serta

𝑉𝜃 adalah kecepatan tangensial robot. Menggunakan jarak Euclidean, didapatkan persamaan

2.7 dan didapatkan persamaan arah yang dilambangkan dengan 𝜓 pada persamaan 2.8.

𝑉 = √𝑉𝑥2 + 𝑉𝑦2

(2.7)

𝜓 = 𝑡𝑎𝑛−1 (𝑦

𝑥) (2.8)

Setelah mengetahui persamaan 2.6 dan 2.7 maka didapatkan inverse kinematika

pada persamaan 2.9 [18].

[𝑉1𝑉2𝑉3

] =

[

−1

3−1

√3𝐿/3

−1

3cos 𝜃 +

1

√3sin 𝜃 𝐿/3

2

3cos 𝜃 0 𝐿/3]

[cos𝜓sin𝜓𝑉𝜃

] (2.9)

2.8 Odometri

Odometri adalah penggunaan data dari pergerakan aktuator posisi secara real-time.

Odometri biasa digunakan di bidang robotika yang berguna untuk memperkirakan posisi

relatif terhadap posisi awal [19]. Pada penelitian ini, odometri digunakan untuk mengetahui

posisi diri robot. Metode ini sangat dipengaruhi dengan error yang terjadi selama proses

berlangsung, seperti ketidakterbacanya data, slip roda, dan saat medan yang ditempuh tidak

datar. Posisi relatif dapat dihitung dengan menggunakan persamaan 2.10.

𝑘𝑒𝑙𝑖𝑙𝑖𝑛𝑔_𝑟𝑜𝑑𝑎 = 2𝜋𝑟 (2.10)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

11

𝑝𝑢𝑙𝑠𝑎_𝑝𝑒𝑟_𝑚𝑚 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑠𝑖 𝑒𝑛𝑐𝑜𝑑𝑒𝑟 / 𝑘𝑒𝑙𝑖𝑙𝑖𝑛𝑔 𝑟𝑜𝑑𝑎 (2.11)

Dari persamaan 2.6 dan persamaan 2.11 hasil nilai 𝑉𝑥 , 𝑉𝑦 , dan 𝑉𝜃 serta

𝑝𝑢𝑙𝑠𝑎_𝑝𝑒𝑟_𝑚𝑚 dapat digunakan untuk menentukan perkiraan perpindahan posisi relatif

dengan mengganti kecepatan setiap roda dengan jarak yang ditempuh, sehingga dapat

didefinisikan dalam persamaan 2.12.

[𝑋𝑝𝑜𝑠𝑌𝑝𝑜𝑠𝜃

] = [𝑐𝑜𝑠(𝑉𝜃) −𝑠𝑖𝑛(𝑉𝜃) 0𝑠𝑖𝑛(𝑉𝜃) 𝑐𝑜𝑠(𝑉𝜃) 00 0 1

] [

𝑉𝑥𝑉𝑦𝑉𝜃

]

(2.12)

2.9 Sensor kompas

Sensor kompas HMC5883L merupakan 3-axis digital magnetometer yang dirancang

untuk mendeteksi medan magnet lemah. HMC5883L menggunakan sensor magneto-

resistive HMC118X yang memiliki resolusi 5 mili-Gauss. Sensor ini biasa digunakan

sebagai petunjuk arah mata angin digital. HMC5883L menggunakan protokol I2C untuk

komunikasi dan berperan sebagai slave device. Sensor ini sensitif apabila didekatkan dengan

baterai, motor, permukaan logam, atau medan magnet, hasil yang disebabkan akan kurang

dari aktual dan harus ditempatkan di tempat yang datar. Sensor ini dapat digunakan

digunakan dalam sistem navigasi di kendaraan untuk mendeteksi arah [20]. Pada penelitian

ini, kompas digunakan untuk mengetahui heading robot.

2.10 Arduino Mega 2560

Arduino Mega 2560 adalah mikrokontroler open source yang berbasis Atmega2560.

Board ini memiliki pin I/O sejumlah 52 buah, 15 di antaranya adalah PWM, 16 pin analog

input, 4 pin UART, 16 MHz osilator kristal, koneksi USB, power jack, ICSP header, dan

tombol reset. Pada Arduino Mega 2560 digunakan bahasa pemrograman C++ dengan

beberapa metode spesial dan fungsi. Untuk compile program digunakan Arduino IDE, file

berbentuk ‘sketch’ dalam bahasa C++ diproses menjadi bahasa mesin [21]. Berdasarkan

Tabel 2.3, Arduino Mega 2560 dipilih karena pin I/O cukup banyak dan dapat dihubungkan

ke sensor kompas dan rotary encoder. Untuk dapat berkomunikasi dengan komputer,

Arduino dapat menggunakan protokol komunikasi serial dengan menggunakan port USB-

serial.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

12

Tabel 2.3 Spesifikasi Arduino Mega 2560 [21]

Microcontroller ATmega2560

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limit) 6-20V

Digital I/O Pins 54

Analog Input Pins 16

DC Current per I/O Pin 20 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 256 KB of which 8 KB used by bootloader

SRAM 8 KB

EEPROM 4 KB

Clock Speed 16 MHz

Data yang dikirimkan hanya satu per bit dalam setiap waktunya tergantung baud rate.

Baud rate adalah laju data per detik. Dengan begitu, data dapat dikirim ke komputer

penerima. Arduino juga memiliki banyak modul library yang dapat digunakan seperti modul

kompas, modul fuzzy logic, dan modul kontrol PID. Pada penelitian ini, Arduino digunakan

sebagai kontroler PID.

2.11 Kontrol PID

I

P

D

+ +-

Feedback

Error

Input/Setpoint

Output/Process Value

Proses

Gambar 2.4 Diagram blok kontroler PID pada feedback loop

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

13

Kontrol proportional-integral-derivative (kontrol PID) merupakan metode

pengendali dalam suatu sistem kalang tertutup. Kontrol PID secara kontinu menghitung nilai

error yang diperoleh dari setpoint dikurangi process value. Dengan kontrol PID, setiap

looping akan meminimalisir error yang terjadi, sehingga berguna untuk menstabilkan suatu

sistem [22]. Pada Gambar 2.4 ditunjukan parameter pada sistem yaitu setpoint (input), error

(e(t)), process value(output), 𝐾𝑝, 𝐾𝑖, 𝑑𝑎𝑛 𝐾𝑑. Untuk menghitung nilai output, digunakan

persamaan 2.13.

𝑜𝑢𝑡𝑝𝑢𝑡 = 𝐾𝑝𝑒(𝑡) + 𝐾𝑖∫𝑒(𝑡)𝑑𝑡

𝑡

𝑜

+ 𝐾𝑑𝑑𝑒(𝑡)

𝑑𝑡

(2.13)

Tabel 2.4 Pengaruh parameter kontrol PID [21]

Parameter Rise-time Overshoot Settling time Steady state error

𝐾𝑝 Berkurang Bertambah Sedikit berubah Berkurang

𝐾𝑖 Berkurang Bertambah Bertambah Hilang

𝐾𝑑 Sedikit berubah Berkurang Berkurang Tidak berubah

Berdasarkan Tabel 2.4, kontrol PID dipilih karena dapat menstabilkan suatu sistem

tergantung dengan nilai parameternya. Penentuan nilai parameter dapat ditentukan dengan

metode trial and error, yaitu dengan mengatur nilai parameter saat percobaan.

Juga, kontrol PID menggunakan kalang tertutup untuk menjaga nilai output secara

aktual dari proses yang mendekati nilai setpoint. Pada penelitian ini, kontrol PID digunakan

dalam penentuan lokasi diri robot untuk kontrol posisi relatif robot: 𝑥, 𝑦, dan 𝜃.

2.12 Trigonometri

Trigonometri merupakan metode perhitungan hubungan antara sisi dan sudut pada

segitiga [23]. Pada Gambar 2.5 ditunjukan sebuah segitiga siku-siku yang memiliki tiga sisi:

hypotenus (h), adjacent 𝜃 (a), dan opposite 𝜃 (o). Fungsi dasar trigonometri didefinisikan

pada persamaan 2.14.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

14

θ

h

a

o

Gambar 2.5 Trigonometri Segitiga Siku-Siku

sin 𝜃 =𝑜

ℎ, cos 𝜃 =

𝑎

ℎ, tan 𝜃 =

𝑜

𝑎 (2.14)

Pada penelitian ini, trigonometri digunakan dalam perhitungan penentuan lokasi

dummy robot dan bola.

2.13 Line-line intersection

(x1,y1)

(x3,y3)

(x4,y4)

(x2,y2)

(x,y)

G2

G1

P

Gambar 2.6 Perpotongan dua garis linear

Pada bidang Euclidean, koordinat titik potong dapat ditentukan dari perpotongan dua

garis [24]. Untuk dapat melakukan perhitungan harus memiliki empat koordinat pada garis

yang berpotongan. Koordinat suatu titik perpotongan P(x,y) pada garis G1 dan G2 dalam

Gambar 2.6 dapat didefinisikan apabila diketahui nilai x1, y1 dan x3, y3 pada garis G1 serta

nilai x2, y2, dan x4, y4. Mengacu pada [24], persamaan perpotongan dua garis dapat

didefinisikan dalam persamaan 2.15.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

15

𝑃𝑥, 𝑃𝑦 =

||𝑥1 𝑦1𝑥2 𝑦2

| |𝑥1 1𝑥2 1

|

|𝑥3 𝑦3𝑥4 𝑦4

| |𝑥3 1𝑥4 1

||

||𝑥1 1𝑥2 1

| |𝑦1 1𝑦2 1

|

|𝑥3 1𝑥4 1

| |𝑦3 1𝑦4 1

||

,

||𝑥1 𝑦1𝑥2 𝑦2

| |𝑥1 1𝑥2 1

|

|𝑥3 𝑦3𝑥4 𝑦4

| |𝑥3 1𝑥4 1

||

||𝑥1 1𝑥2 1

| |𝑦1 1𝑦2 1

|

|𝑥3 1𝑥4 1

| |𝑦3 1𝑦4 1

||

(2.15)

Setelah dihitung determinannya, persamaan dapat didefinisikan dalam persamaan

2.16 dan persamaan 2.17.

𝑃𝑥 =

(𝑥1𝑦2 − 𝑥2𝑦1)(𝑥3 − 𝑥4) − (𝑥1 − 𝑥2)(𝑥3𝑦4 − 𝑥4𝑦3)

(𝑥1 − 𝑥2)(𝑦3 − 𝑦4) − (𝑦1 − 𝑦2)(𝑥3 − 𝑥4)

𝑃𝑦 =(𝑥1𝑦2 − 𝑥2𝑦1)(𝑦3 − 𝑦4) − (𝑦1 − 𝑦2)(𝑥3𝑦4 − 𝑥4𝑦3)

(𝑥1 − 𝑥2)(𝑦3 − 𝑦4) − (𝑦1 − 𝑦2)(𝑥3 − 𝑥4)

(2.16)

(2.17)

Pada penelitian ini, line-line intersection digunakan dalam perhitungan penentuan

lokasi dummy robot dan bola.

2.14 Node.js

Node.js adalah open source runtime environtment yang berjalan di sistem operasi

untuk mengeksekusi kode JavaScript yang dibangun dengan V8 JavaScript Engine. Node.js

tidak bergantung dengan browser karena sudah berjalan di sistem operasi. Node.js bersifat

asinkron, non-blocking, dan single threaded. Karena itu, Node.js cocok digunakan untuk

membuat aplikasi yang memerlukan real-time respon. Node.js dapat digunakan di berbagai

sistem operasi seperti Linux, Windows, dan macOS [25].

Pada Gambar 2.7 ditunjukan arsitektur Node.js. Klien mengirimkan request ke web

server, request dapat berupa data nonblok atau blok. Node.js menerima request dan

menambahkan request tersebut ke event queue. Lalu, request akan melewati event loops satu

per satu dan dicek apakah request memerlukan sumber eksternal. Apabila tidak memerlukan

sumber eksternal, event loops akan mengolah data dan mengirim balik ke klien.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

16

Request

Klien

Server Node.js

Computation

Database

File System

EventLoops

Event Queue

Thread Pool

External Sources

Gambar 2.7 Arsitektur Node.js

Single thread pada thread pools bertugas untuk melengkapi sebagian blocking

request dengan mengakses sumber eksternal. Setelah data sudah selesai diolah, event loops

bertugas untuk mengirimkan response kembali ke klien [26]. Pada penelitian ini, Node.js

digunakan sebagai web server pada base station.

2.14.1 JavaScript

JavaScript adalah bahasa pemrograman yang berbasis prototype, single threaded,

mendukung orientasi objek, dan functional programming. Biasa digunakan untuk halaman

web, juga digunakan pada environment bukan browser, seperti Node.js, Apache CouchDB,

dan Adobe Acrobat. JavaScript mampu bekerja secara asinkron dengan menggunakan fitur

event listener dan callback guna menghindari blocking proses [27]. Pada penelitian ini,

JavaScript digunakan dalam basis komunikasi pada base station.

2.14.2 HTML

Hypertext Markup Language (HTML) adalah standar bahasa pemrograman

pembuatan web. Hypertext merujuk ke link penghubung web dengan web lainnya. HTML

menggunakan markup yang terdapat element seperti tag <head>, <body>, dsb. Tag ini

berguna untuk digunakan sesuai kegunaan masing-masing. HTML dapat digunakan

sebagai visualisasi yang terhubung ke program JavaSript dan elemennya dapat diatur

menggunakan CSS [28]. Pada penelitian ini, HTML digunakan dalam visualisasi robot,

dummy robot, dan bola.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

17

2.14.3 CSS

CSS (Cascading Style Sheets) adalah aturan yang mengontrol tampilan web pada

browser. Hal yang dapat dikontrol menggunakan CSS adalah style elemen di dalam HTML.

CSS menggunakan bahasa inggris sederhana berbasis sintaks yang dilengkapi dengan

sekumpulan aturan. CSS tidak hanya dapat mengontrol style elemen pada HMTL saja, tetapi

dapat juga digunakan dalam bahasa SVG atau XML [29].

Gambar 2.8 Pengaplikasian CSS pada HTML

CSS dapat ditulis menggunakan tiga cara, yaitu External CSS, Internal CSS, Inline

CSS. Pada Gambar 2.8 adalah contoh penggunaan Internal CSS, aturan ditulis di dalam tag

<style>. External CSS digunakan dengan menggunakan file berekstensi “.css” dan dikaitkan

pada HTML. Sementara Inline CSS dituliskan di dalam atribut pada tag elemen yang ingin

diberi aturan CSS [30].

2.15 JSON

JavaScript Object Notation (JSON) merupakan format pertukaran data berbasis teks

yang strukturnya mendukung manusia dan komputer dalam pembuatannya. JSON tidak

bergantung pada bahasa pemrograman apapun. Oleh karena itu JSON sangat ideal dijadikan

bahasa pertukaran data. Tipe data yang dapat disimpan antara lain objek, array, string,

number, dan boolean [31].

Gambar 2.9 Struktur penulisan JSON

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

18

Struktur penulisan JSON dapat dilihat pada Gambar 2.9. Pada JavaScript, JSON

dapat dibuat dengan mengonversi objek menggunakan fungsi JSON.parse(). Pada Python

JSON dibaca sebagai dictionary. Dengan berbagai kemampuan JSON yang dapat digunakan

dalam berbagai bahasa pemrograman, maka pada penelitian ini JSON dipilih dalam

pertukaran data.

2.16 WebSockets

WebSockets merupakan protokol komunikasi yang menyediakan komunikasi full

duplex latensi rendah antara klien dan server melalui koneksi Transmission Control

Protocol/Internet Protocol (TCP/IP). Dalam protokol HTTP dengan klien yang hanya bisa

mengirimkan request dan servernya hanya mengirim balik response ke klien. Sebaliknya,

dengan menggunakan protokol WebSockets saat klien dan server dikoneksikan, maka

keduanya dapat saling mengirim data tanpa membuka koneksi baru hingga koneksi diputus

[33]. Juga, WebSockets dapat digunakan di hampir semua browser [34]

Gambar 2.10 Koneksi WebSockets [32]

Pada Gambar 2.10 ditunjukan langkah koneksi WebSockets. Dimulai dari proses

handshake antara klien dan server. Handshake adalah proses otomatis yang terjadi saat klien

dan server memulai sambungan untuk komunikasi sesuai dengan protokol yang digunakan.

Sesudah klien dan server terkoneksi dalam satu jaringan TCP/IP, maka koneksi terbuka.

Selama salah satu sisi tidak menutup kanal, klien dan server bisa mengirim maupun

menerima data secara dua arah. Pada penelitian ini WebSockets digunakan dalam protokol

komunikasi antara robot dan base station.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

19

2.17 Socket.IO

Socket.IO merupakan open source real-time engine yang dibangun pada Node.js.

Socket.IO dapat digunakan di setiap platform, browser, atau device. Komunikasi yang

dihasilkan yaitu real time, bidirectional, dan berbasis event. Karena menggunakan

komunikasi berbasis event, untuk mendapatkan data terbaru tidak memerlukan request.

Akan tetapi, yang perlu dilakukan dengan melakukan listen pada suatu topik selama

WebSockets tetap aktif [35]. Selain itu, Socket.IO dapat digunakan dalam framework yang

menggunakan bahasa pemrograman Python [36]. Pada penelitian ini, Socket.IO digunakan

dalam komunikasi robot dan base station.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

20

BAB III

PERANCANGAN PENELITIAN

Pada bab ini akan dijelaskan mengenai perancangan sistem koordinasi dari robot

sepak bola beroda. Bagian yang akan dibahas yaitu diagram blok sistem, perancangan

perangkat keras, dan perancangan perangkat lunak. Pada perancangan perangkat keras akan

dibahas mengenai rancangan robot sepak bola beroda, interkoneksi rangkaian, lapangan, dan

bola. Pada perancangan perangkat lunak akan dibahas mengenai basis atas, basis bawah, dan

basis komunikasi. Di basis atas akan dibahas mengenai penentukan posisi dummy robot dan

bola. Di basis bawah akan dibahas mengenai penentuan lokasi diri robot. Kemudian, di basis

komunikasi akan dibahas mengenai komunikasi robot sepak bola beroda dan visualisasi

posisi robot, dummy robot, dan bola di dalam base station.

3.1 Diagram blok sistem

Gambar 3.1 Diagram Blok Sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

21

Pada Gambar 3.1 ditunjukan diagram blok sistem yang berisi bagan robot dan base

station. Komponen-komponen pada bagan robot meliputi kompas dan tiga rotary encoder

yang terhubung ke Arduino yang terhubung ke Raspberry Pi 2, serta kamera omnidireksional

yang terhubung ke Raspberry Pi 1. Pada base station terdapat Node.js sebaga server dan

browser sebagai visualisasi. Pada Arduino dilakukan proses kontrol PID lalu data dikirimkan

dengan komunikasi serial ke Raspberry Pi 2 yang kemudian data dikirim dengan

WebSockets ke base station. Pada Raspberry Pi 1 dilakukan proses pengolahan citra

menggunakan OpenCV untuk menentukan lokasi dummy robot dan bola, lalu data

dikirimkan ke base station. Pada base station data-data akan diolah supaya dapat

divisualisasikan.

3.2 Perancangan Perangkat Keras

3.2.1 Perancangan Robot Sepak Bola Beroda

Gambar 3.2 Rancangan Robot Sepak Bola Beroda

Pada penelitian ini, robot yang digunakan adalah robot sepak bola beroda yang sudah

dibuat oleh Tim Kelompok Sepak Bola Beroda Universitas Sanata Dharma seperti yang

ditunjukan pada Gambar 3.2 dan dibagi dalam tiga basis: basis atas, basis tengah, dan basis

bawah untuk mempermudah pembagian sistem. Basis atas dan basis bawah adalah basis

yang akan digunakan dalam penelitian ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

22

3.2.2 Interkoneksi Sistem Rangkaian

Base Station

Arduino

Raspberry Pi1

Raspberry Pi2

rotary encoder

rotary encoder

rotary encoder

kompas

serial

kameraomnidireksional

USB websocket

we

bsock

et

Gambar 3.3 Interkoneksi Sistem Rangkaian

Pada Gambar 3.3 diilustrasikan interkoneksi sistem rangkaian. Komponen-

komponen masukan pada sistem antara lain sensor kompas, tiga rotary encoder, dan kamera

omnidireksional. Kompas dikoneksikan menggunakan protokol I2C ke Arduino yang

memerlukan dua pin (SPL dan SDL) dan membutuhkan sumber tegangan 3.3 V dan ground

pada Arduino, Rotary encoder dikoneksikan ke Arduino dan membutuhkan dua pin untuk

Output A dan B pada masing-nasing rotary encoder. Kamera omnidireksional dikoneksikan

ke Raspberry Pi 1 menggunakan port USB. Arduino dikoneksikan dengan protokol

komunikasi serial yang terhubung dengan Raspberry Pi 2 menggunakan port USB to serial.

Masing-masing Raspberry dikoneksikan menggunakan protokol WebSockets yang

terhubung dengan base station.

3.2.3 Perancangan Lapangan

Berdasarkan peraturan KRI Daring 2020 [5], karakteristik lapangan yang digunakan

ditunjukan pada Gambar 3.4. Lapangan berbentuk setengah lapangan bola (6 x 4,5 m2),

menggunakan satu gawang yang di bawahnya diletakan satu obstacle dan 8 titik peletakan

dua obstacle.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

23

Gambar 3.4 Perancangan lapangan

3.2.4 Perancangan Dummy Robot dan bola

26 cm 26 cm

37 cm 37 cm22 cm

66 cm

tipe I tipe II

Gambar 3.5 Perancangan dummy robot

Dummy robot merupakan benda yang digunakan sebagai obstacle pengganti robot

lawan. Sifat robot ini diam, hanya diletakan pada titik yang sudah dirancang di lapangan.

Pada penelitian ini, dummy robot dibedakan menjadi dua tipe: tipe I sebagai obstacle

defender dan tipe II sebagai obstacle goalkeeper. Berdasarkan peraturan KRI Daring 2020

[5], dummy robot berbentuk kotak, tipe I memiliki ukuran minimum 26 cm x 37 cm x 22 cm

dan berat minimum 10 kg, sedangkan tipe II memiliki ukuran minimum 26 cm x 37 cm x 60

cm dan berat minimum 30 kg. Oleh sebab itu, dalam penelitian ini dummy robot tipe I dibuat

menggunakan dus air mineral botol 600 ml x 24 buah yang diberi pemberat, sedangkan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

24

dummy robot tipe II dibuat dengan tiga tumpukan dus yang sama dengan diberi pemberat di

bagian bawah. Ilustrasi rancangan bisa dilihat di Gambar 3.5.

Jumlah dummy robot yaitu tiga buah, dua bertipe I diletakkan di bagian titik-titik

peletakan obstacle, satu bertipe I diletakkan di bawah mistar gawang. Untuk menghindari

kesalahan baca robot, dummy robot dirancang bewarna kuning. Meskipun dalam

perancangannya dibuat berbeda, pada visualisasinya dummy robot tipe I dan tipe II tetap

disamakan dalam pengenalannya untuk mengurangi algoritma.

Gambar 3.6 Bola ukuran 4

Juga, pada penelitian ini digunakan bola ukuran 4 berwarna jingga yang ditunjukan

pada Gambar 3.6.

3.3 Perancangan Perangkat Lunak

3.3.1 Kontrol PID

START

STOP

masukan dari feedbacksensor kompas dan

rotary encoder

Perhitungan PID

Data dikirim ke RasPi 2

B

A

Apakah adaperintah stop?

A

Delay

B

F

T

masukan setpoint x, y,

dari RasPi 2θ

Gambar 3.7 Diagram alir kontrol PID pada Arduino

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

25

Langkah-langkah kontrol PID pada Arduino diilustrasikan dalam Gambar 3.7.

Dimulai dari masukan setpoint 𝑥, 𝑦, dan 𝜃 sebagai referensi dari Raspberry Pi 2

menggunakan protokol komunikasi serial. Kemudian delay interval waktu untuk

meminimalisir perhitungan yang bertumpuk. Apabila ada perintah stop, maka proses akan

berhenti. Akan tetapi bila tidak ada perintah stop, maka lanjut ke poin A. Pada poin A

dilanjut dengan masukan dari feedback sensor kompas menggunakan protokol I2C dan

sensor rotary encoder yang kemudian dihitung nilai error-nya.

Lalu, dalam perhitungan PID, mengacu pada dasar teori kontrol PID, menurut

persamaan 2.10 dibutuhkan nilai 𝐾𝑝, 𝐾𝑑, dan 𝐾𝑖 untuk menentukan nilai output/process

value-nya. Nilai tersebut akan ditentukan saat percobaan berlangsung menggunakan metode

trial and error. Setelah itu data dikirim ke Raspberry Pi 2 menggunakan protokol

komunikasi serial. Proses dilanjutkan kembali ke poin B.

3.3.1.1 Subrutin pembacaan kompas

START

Konversi radianke derajat

Koreksi sudut

Menghitungsudut deklinasi

RETURN

Apakah adaperintah stop?

B

B

A

A

F

T

keluaransudut heading kompass

Perhitunganheading kompas

Pembacaan datakompas

Inisialisasi alamat registerkompas pada 0x1E,

mode operasi, frekuensi pengukuran, dan jumlah laju sampel

Gambar 3.8 Diagram alir subtrutin pembacaaan kompas

Pada Gambar 3.8, ditunjukan diagram alir pembacaan kompas. Dimulai dengan

menginisialisasi alamat register kompas pada 0x1E dan menentukan mode operasi,

frekuensi, serta jumlah laju sampel yang diinginkan. Lalu, pembacaan data kompas

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

26

parameter yang didapatkan adalah nilai pitch, yaw, dan roll (x, y, z). Untuk menghitung

heading kompas diperlukan perhitungan menggunakan persamaan 3.1 dalam bentuk radian.

ℎ𝑒𝑎𝑑𝑖𝑛𝑔 = atan (

𝑌𝑎𝑥𝑖𝑠

𝑋𝑎𝑥𝑖𝑠) (3.1)

Setelah mendapatkan nilai heading, diperlukan nilai sudut deklinasi untuk ditambah

dengan nilai heading menggunakan persamaan 3.2.

𝑠𝑢𝑑𝑢𝑡𝐷𝑒𝑘𝑙𝑖𝑛𝑎𝑠𝑖 =deg+(

𝑚𝑖𝑛𝑢𝑡𝑒𝑠60 )

180/𝜋 (3.2)

ℎ𝑒𝑎𝑑𝑖𝑛𝑔 = ℎ𝑒𝑎𝑑𝑖𝑛𝑔 + 𝑠𝑢𝑑𝑢𝑡 𝑑𝑒𝑘𝑙𝑖𝑛𝑎𝑠𝑖 (3.3)

Variabel deg dan minutes didapatkan dari nilai deklinasi magnet suatu daerah.

Setelah itu, dilakukan perhitungan koreksi sudut. Apabila nilai heading kurang dari nol,

maka nilai heading ditambah 2𝜋. Apabila nilai heading lebih dari 2𝜋, maka nilai heading

dikurangi 2𝜋. Lalu, nilai heading yang sebelumnya dalam bentuk radian, dikonversi ke

dalam bentuk derajat. Keluaran nilai heading didapatkan dalam bentuk derajat. Disebabkan

oleh pembacaan dilakukan secara kontinu, alir akan berhenti saat mikrokontroler berhenti.

3.3.1.2 Penentuan lokasi diri robot

x

y

robot1 robot2

0,0

Gambar 3.9 Ilustrasi posisi awal robot

Gambar 3.9 adalah ilustrasi posisi awal robot pada bidang x, y yang disesuaikan

dengan titik x = 0 dan y = 0 pada visualisasinya. Posisi awal robot 1 adalah x = 25 dan y =

225, sedangkan robot 2 adalah x = 575 dan y = 225. Pada penelitian ini omniwheel yang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

27

digunakan memiliki diameter 100 mm. Mengacu pada dasar teori kinematika tiga

omniwheels, menurut persamaan 2.6 ditentukan nilai 𝜃 = 60° dengan begitu didapatkan

persamaan 3.4.

[

𝑉𝑥𝑉𝑦𝑉𝜃

] = [0.5 −50 0

−0.866 0.866 11/𝐿 1/𝐿 1/𝐿

] [𝑉1𝑉2𝑉3

]

(3.4)

Gambar 3.10 menunjukan subrutin penentuan lokasi diri robot pada base station.

Data rotary encoder yang diterima oleh base station dalam interval waktu akan dikonversi

menjadi data x, y, dan 𝜃. Untuk mendapatkan nilai 𝑥, 𝑦, dan 𝜃 digunakan persamaan 3.4 dan

persamaan 2.12 pada dasar teori odometri. Karena nilai posisi bergantung dengan persamaan

3.4, selain nilai 𝜃 akan ditentukan saat percobaan dilakukan. Pada penentuan posisi robot 2,

posisi awal adalah berhadapan dengan robot 1. Dengan begitu, pada konversinya pada

bagian 𝜃 akan dikoreksi dengan ditambah 180°. Setelah itu, data dapat divisualisasikan.

START

RETURN

Base station menerimadata rotary encoder

Data dikonversi menjadix, y, dan θ

Data divisualisasikan

Gambar 3.10 Subrutin penentuan lokasi diri robot pada base station

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

28

3.3.2 Penentuan lokasi dummy robot dan bola

Pada penelitian ini, penentuan lokasi dummy robot dan bola menggunakan webcam

yang dipantulkan ke cermin cembung dan menjadi kamera omnidireksional. Warna dummy

robot ditentukan berwarna kuning, sedangkan bola berwarna jingga. Dengan begitu pada

database robot tersimpan kode warna yang akan dideteksi.

(x1,y1)

(x3,y3)

(x4,y4)

(x2,y2)

(x,y)

G2

G1

robot1

robot2

Gambar 3.11 Ilustrasi penentuan lokasi dummy robot dan bola

Berdasarkan pada dasar teori trigonometri dan line-line intersection, mengacu pada

persamaan 2.14 serta persamaan 2.16 dan 2.17 diperlukan empat koordinat x dan y supaya

perhitungan dapat dilakukan. Pada Gambar 3.11 ditunjukan ilustrasi penentuan lokasi

dummy robot dan bola. Nilai x1,y1 dan x3, y3 didapatkan dari posisi diri robot, kemudian

untuk mendapatkan nilai x2,y2 dan x4, y4 yaitu dengan menambahkan konstanta > 0 yang

dikalikan dengan proyeksi sudut menggunakan perhitungan trigonometri. Dengan begitu

didapatkan persamaan 3.5 dan persamaan 3.6.

𝑥2, 𝑦2 = 𝑥1 + 𝑘. cos(𝜃) , 𝑦1 − 𝑘. sin (𝜃)

𝑥4, 𝑦4 = 𝑥3 + 𝑘. cos(𝜃) , 𝑦3 − 𝑘. sin (𝜃)

(3.5)

(3.6)

Apabila pembagi dalam persamaan 2.16 atau 2.17 adalah nol, maka tidak ada titik

perpotongan dikarenakan sejajar.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

29

Gambar 3.12 Diagram alir penentuan lokasi dummy robot dan bola pada Rasberry Pi 1

Langkah-langkah pengolahan citra kamera omnidireksional diilustrasikan pada

Gambar 3.12. Pada awalnya base station akan mengirimkan perintah ke robot untuk tracking

kamera. Kemudian delay pada interval waktu yang ditentukan untuk mengurangi proses

yang sangat banyak. Juga, pengambilan data kamera omnidireksional dilakukan serentak

pada robot. Selanjutnya, apabila ada perintah stop, proses akan selesai. Akan tetapi jika

tidak, citra akan diproses ke poin A.

Pada poin A, data citra yang diambil melalui kamera omnidireksional akan melalui

tahap preprocessing image dan ekstraksi ciri menggunakan modul OpenCV. Selanjutnya,

apabila pada proses ekstraksi ciri, warna tidak terdaftar pada database maka akan kembali

ke poin B. Jika terdaftar, hasil ekstraksi ciri akan diolah dengan perhitungan trigonometri

dan didapatkan hasil berupa nilai sudut. Selanjutnya, data sudut dikirimkan ke base station

untuk dilakukan proses perhitungan line-line intersection lalu kembali lagi ke poin B.

Langkah-langkah penentuan lokasi dummy robot dan bola pada base station

diilustrasikan pada Gambar 3.13. Data sudut yang didapatkan dari dua robot didapatkan.

BSTOP

START

citra yang diambil darisensor kamera atas robot

Ekstraksi Ciri

Apakah warnaterdaftar di database?

PreprocessingImage data sudut dikirm

ke base station

Perhitungan trigonometriuntuk menghitung sudutterhadap heading robot

Base station mengirimperintah tracking kamera

B

A

Apakah adaperintah stop?

A

Delay

B

F

F

T

T

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

30

Setelah itu, mengacu persamaan 2.13. dan 2.14 akan didapatkan perkiraan koordinat. Data

koordinat akan diolah sebagai penentuan lokasi yang akan divisualisasikan.

START

STOP

Base station menerimadata dari dua robot

Apakah adaperintah stop?

Perhitunganline-line intersection

Data divisualisasikan

F

T

Gambar 3.13 Diagram alir penentuan lokasi dummy robot dan bola pada base

station

3.3.2.1 Subrutin preprocessing image

Pada Gambar 3.14, data citra diubah ukurannya dan disesuaikan dengan kebutuhan.

Selanjutnya dilakukan segmentasi HSV untuk memilah citra supaya dapat diidentifikasi

sesuai warna yang diinginkan. Kemudian yang terakhir adalah menghilangkan noise pada

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

31

citra supaya kualitas pengolahan citra lebih baik. Pada akhirnya citra yang sudah melalui

tahapan preprocessing dapat diolah.

START

RETURN

Input citra

Hasil preprocessing

Pembacaan citra

Mengubah ukuran citra

Menghilangkan noisepada citra

Segmentasi HSV

A

A

Gambar 3.14 Diagram alir subrutin preprocessing image

3.3.2.2 Subrutin ekstraksi ciri

START

RETURN

Hasil preprocessing

Hasil ekstraksi ciri

Masking berdasarkanwarna

Mencari contour

Gambar 3.15 Diagram alir subrutin ekstraksi ciri

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

32

Pada Gambar 3.15, hasil preprocessing dibuat mask untuk memfilter berdasarkan

warna yang diinginkan. Setelah itu dicari contour untuk memperoleh deretan objek yang

memiliki contour. Hasil contour adalah hasil ekstraksi ciri dan dapat diolah secara lanjut.

3.3.3 Perancangan komunikasi base station dengan robot

Permintaan koneksi WebSocket

Mengirim pesan

Mengirim ID BaseStation

Mengirim perintah kontrol

Mengirim data sensor

Permintaan koneksi WebSocket

Mengirim pesan

Mengirim ID robot

Mengirim perintah kontrol

Mengirim data sensor

Browser(Klien)

Node.js(Server)

RasPi(Klien)

kendalihardware

Tambah ke daftar koneksi

Gambar 3.16 Langkah komunikasi base station dengan robot

Komunikasi antara robot dan base station menggunakan wireless fidelity (Wi-Fi)

yang tersambung dengan pada jaringan yang sama. Hal ini diilustrasikan pada Gambar 3.16.

Node.js berperan sebagai server, sedangkan Raspberry Pi dan browser berperan sebagai

klien. Saat server dinyalakan dan merespon koneksi WebSockets pada klien, klien akan

mengirim nomor identitas. Identitas setiap klien ditunjukan pada Tabel 3.1. Identitas akan

ditambahkan ke daftar koneksi.

Tabel 3.1 Daftar Socket ID yang digunakan

Nama Socket ID Label Raspberry

Robot 1 Robot1A 1

Robot1B 2

Robot 2 Robot2A 1

Robot2B 2

Base station BaseStation

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

33

Kemudian, base station dan robot dapat berkomunikasi. Sever berperan sebagai

forwarder data supaya base station dapat mengirimkan perintah kontrol ke robot, sebaliknya

robot dapat mengirimkan data sensor ke base station.

3.3.4 Perancangan pengiriman data

Gambar 3.17 Contoh format pengiriman data

Dalam pengiriman data, data yang dikirimkan melalui protokol komunikasi

WebSocket berbentuk JSON. Juga, data yang dikirimkan hanya data real-time, sehingga

tidak pasti semua field dikirimkan. Tabel 3.2 merupakan daftar data yang diterima base

station dari robot. Contoh format pengiriman data menggunakan library Socket.IO yang

ditunjukan pada Gambar 3.17. Pada, setiap event ”data”, akan dikirimkan sebuah JSON yang

berisi seperti contoh data pada Tabel 3.2 dan Tabel 3.3. Lalu, akan diterima oleh server dan

ditambahkan ke database event “data” pada server.

Tabel 3.2 Daftar data yang diterima base station dari robot

Field Deskripsi Range data yang

dikirimkan Contoh data

moved Perubahan posisi x, y robot x: 0 s.d. 600,

y: 0 s.d 500 {‘moved’:[50,-50]}

rotated Perubahan sudut heading

robot dalam degree 𝜃: 0 𝑠. 𝑑. 359 {‘rotated’: 90}

BallFound Sudut deteksi bola 𝜃: 0 𝑠. 𝑑. 359 {‘BallFound’:15}

RobotNearby Posisi deteksi dummy robot x: 0 s.d. 600,

y: 0 s.d 500

{‘RobotNearby’:[25,

9]}

BallCaptured Kondisi tangkapan bola pada

gripper True atau false {‘BallCaptured’:true}

proV Nilai process value 𝑥, 𝑦, 𝜃

x: 0 s.d. 600,

y: 0 s.d 500,

𝜃: 0 𝑠. 𝑑. 359

{‘proV’:[60, 40, 90]}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

34

Data pada tabel 3.2 yang berbentuk JSON akan dikirimkan Raspberry Pi ke base

station. Base station akan mengonversi JSON menjadi tipe data objek, sehingga data dapat

diolah menggunakan JavaScript dalam pengolahan visualisasi.

Tabel 3.3 Daftar data yang dikirim base station ke robot

Field Deskripsi Range data yang

dikirimkan Contoh data

move Robot bergerak sebanyak x, y x: 0 s.d. 600,

y: 0 s.d 500 {‘move’:[50,-50]}

rotate Robot berputar sebanyak 𝜃

degree 𝜃: 0 𝑠. 𝑑. 359 {‘rotate’: 90}

kick Menendang sekarang True atau false {‘kick’:true}

stop Perintah penghentian aksi

tertentu move, rotate, kick {‘stop’:’move’}

CaptureBall Kondisi tangkapan bola pada

gripper True atau false {‘CaptureBall’:true}

setP Nilai setpoint 𝑥, 𝑦, 𝜃

x: 0 s.d. 600,

y: 0 s.d 500,

𝜃: 0 𝑠. 𝑑. 359

{‘setP’:[60, 40, 90]}

Tabel 3.3 merupakan daftar data yang dikirim base station ke robot. Data pada tabel

3.3 yang berbentuk JSON akan dikirimkan base station ke Raspberry Pi. Python akan

mengonversi JSON dan meneruskan ke hardware, sehingga data dapat diolah untuk

mengendalikan aktuator pada robot. Data setP yang sudah dideserialisasi Python akan

teruskan ke Arduino menggunakn protokol komunikasi serial.

Perintah stop berfungsi untuk menghentikan aksi tertentu yang sedang berjalan. Hal

ini berguna apabila terjadi perubahan kondisi, sehingga perintah baru dapat segera diberikan

dari base station ke robot.

3.3.5 Perancangan visualisasi

Secara garis besar, perancangan visualisasi akan dibuat dalam 1 halaman web

browser yang tidak memerlukan scroll. Seperti yang ditunjukan pada Gambar 3.18, isi dari

visualisasi ini antara lain:

1. Lapangan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

35

2. Robot 1 yang berwarna cyan

3. Robot 2 yang berwarna magenta

4. Tiga buah dummy robot yang berwarna kuning

5. Bola yang berwarna jingga

2 3

Gambar 3.18 Perancangan visualisasi

Pada lapangan, akan dibuat seperti pada Gambar 3.4, akan tetapi memiliki dimensi

600 x 450 piksel. Oleh sebab itu, elemen yang lain ukurannya akan disesuaikan mengikuti

dimensi tersebut. Pada Robot 1 dan Robot 2 secara garis besar akan dibuat dalam bentuk

yang sama tetapi memiliki ciri khas warna yang berbeda. Pada tiga buah dummy robot akan

dibuat berbentuk persegi panjang dengan warna kuning. Pada bola, akan dibuat berbentuk

lingkaran berwarna jingga. Apabila dalam praktiknya tidak dihasilkan bentuk dan warna

yang padu, akan disesuaikan kembali.

Setiap kotak grid pada lapangan merepresentasikan jarak 25 cm. Pada kotak nomor

2 akan diberikan keterangan mengenai posisi 𝑥 dan 𝑦 setiap robot, perputaran heading robot,

serta keterangan koneksivitas server, robot, dan base station. Lalu pada kotak nomor 3 akan

diberikan keterangan mengenai posisi dummy robot dan bola dalam bidang x dan y. Apabila

dalam praktiknya tidak dihasilkan layouting yang cocok, maka akan disesuaikan kembali.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

36

BAB IV

HASIL DAN PEMBAHASAN

Pada bab ini akan dibahas mengenai hasil dari perancangan yang telah dibuat di bab

3, perubahan perancangan, hasil perancangan hardware, hasil perancangan software, lalu

analisis hasil pengujian. Hasil pengujian digunakan untuk mengetahui kinerja sensor –

sensor dan aktuator serta kinerja algoritma yang digunakan pada penelitian ini. Data yang

diperoleh dari hasil pengujian akan dianalisis dengan tujuan sebagai catatan evaluasi robot

sepak bola beroda supaya dapat dikembangkan lagi ke depannya.

4.1. Perubahan perancangan

kameraomnidireksional

RasPi 2

Arduino

penendang

sensor jarak

gripper

rotary encoder

omniwheelkompas

servervisualisasi

ROBOT

BASE STATION BASIS KOMUNIKASI

BASIS TENGAH

BASIS BAWAH

Chandra

Hendrik

Chandra

Gambar 4.1 Perubahan diagram blok umum

Pada penelitian ini digunakan hanya 1 robot untuk diuji. Untuk menyesuaikan sistem

dengan Peraturan KRI 2021 divisi KRSBI Beroda, tim memutuskan untuk mengubah sistem

keseluruhan dan mereduksi beberapa komponen yang ada. Gambar 4.1 merupakan

perubahan diagram blok umum yang mengacu pada Gambar 1.1. Dengan demikian, 3

omniwheels dan sensor rotary encoder (yang sebelumnya adalah pengerjaan Hendrikus)

masuk dalam penelitian ini. Lalu, perancangan penentuan lokasi dummy robot dan bola tidak

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

37

dipakai karena dalam Peraturan KRI 2021 divisi KRSBI Beroda, posisi dummy robot akan

diundi penempatannya, serta pencarian bola sudah ada dalam penelitian Hendrikus. Oleh

sebab itu, kamera omnidireksional dalam penelitian ini tidak dipakai, sehingga dapat

digunakan dalam penelitian Hendrikus. Juga, kontrol PID tidak dipakai dalam penelitian ini

untuk menyederhanakan sistem dan supaya penelitian ini lebih fokus ke perancangan

visualisasi penentuan posisi diri robot, kontrol navigasi, dan komunikasi.

4.1.1 Perubahan Komponen Hardware

Pada penelitian ini terjadi perubahan jenis mikrokontroler Arduino dan sensor

kompas menjadi Arduino Due dan sensor kompas GY-26. Hal ini disebabkan oleh Arduino

Mega 2560 pada pin-pinya hanya beberapa yang bisa menjadi Pin Interupt yang membuat

kebutuhan pin kurang dan kecepatan proses sebesar 16 MHz, sedangkan pada Arduino Due

pada semua pin digital dapat dijadikan Pin Interupt dan kecepatan proses 84MHz yang

artinya Arduino Due cukup dan lebih cepat. Lalu, juga ditambahkan driver motor IBT-2,

motor DC 24V dengan sensor rotary encoder, dan 3 omniwheels diameter 10 cm.

4.1.2 Perubahan Diagram blok sistem dan interkoneksi sistem rangkaian

Browser

Raspberry Pi 3

Arduino Due

Modul nirkabel

Driver IBT2 BTS7960

MotorDC

3

3

3

RotaryEncoder

Kompas

Digital

socketIO

ROBOT

BASE STATION

Visualisasidan

Kontrol

Node.js

Gambar 4.2 Perubahan diagram blok sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

38

Pada Gambar 4.2 ditunjukan perubahan diagram blok sistem yang telah direalisasikan.

Dibandingkan dengan Gambar 3.1, perubahan yang ada yaitu penambahan driver motor dan

Motor DC, penggantian Arduino, dan penggunaan hanya 1 Raspberry Pi pada robot. Lalu,

pada Gambar 4.3 ditunjukan perubahan interkoneksi sistem rangkaian. Dibandingkan

dengan Gambar 3.3 perubahan adalah penambahan driver motor dan motor DC, sedangkan

pada koneksi kompas menggunakan protokol serial.

Base Station

Arduino

Raspberry Pi

rotaryencoder

rotaryencoder

rotaryencoder

kompas

serial

websocketDriverMotor

MotorDC

DriverMotor

MotorDC

DriverMotor

MotorDC

Gambar 4.3 Perubahan interkoneksi sistem rangkaian

4.1.3 Perubahan Data Komunikasi

4.1.3.1 Data Komunikasi Socketio

Tabel 4.1 Daftar Perubahan Socket ID yang digunakan

Nama Socket ID

Robot 1 Robot1B

Base station BaseStation

Pada Tabel 4.1 ditunjukan perubahan daftar Socket ID yang digunakan, perubahan

mengacu pada Tabel 3.1 dan perubahannya yaitu pada pengurangan jumlah robot dan pada

kolom Socket ID hanya menggunakan 1 Socket ID. Hal ini disebabkan karena pada robot

hanya menggunakan satu Raspberry Pi. Lalu, daftar data yang dirancang disesuaikan dengan

fokus penelitian ini, yaitu pada pergerakan dan perputaran. Daftar perubahan data yang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

39

diterima base station dari robot ditunjukan pada Tabel 4.2, perubahan mengacu pada Tabel

3.2. Perubahan isi yaitu Field yang diterima hanya data moved dan data rotated.

Tabel 4.2 Daftar perubahan data yang diterima base station dari robot

Field Deskripsi Range data yang

dikirimkan Contoh data

moved Perubahan posisi x, y robot

dalam cm

x: 0 s.d. 600,

y: 0 s.d 500 {‘moved’:[50,-50]}

rotated Perubahan sudut heading

robot dalam degree 𝜃: 0 𝑠. 𝑑. 359 {‘rotated’: 90}

Daftar perubahan data yang dikirim base station ke robot ditunjukan pada Tabel 4.3,

perubahan mengacu pada Tabel 3.3. Perubahan isi yaitu Field yang diterima hanya data

move, data rotate, dan data stop, serta pada deskripsi rotate diganti menjadi robot berputar

menuju 𝜃 derajat yang sebelumnya adalah berputar sejauh 𝜃 derajat. Juga, data yang

dikirimkan Raspberry Pi hanya dikirimkan apabila terjadi perubahan untuk mengurangi

beban data.

Tabel 4.3 Daftar perubahan data yang dikirim base station ke robot

Field Deskripsi Range data yang

dikirimkan Contoh data

move Robot bergerak menuju x, y cm x: 0 s.d. 600,

y: 0 s.d 500 {‘move’:[50,-50]}

rotate Robot berputar menuju 𝜃

derajat 𝜃: 0 𝑠. 𝑑. 359 {‘rotate’: 90}

stop Perintah penghentian aksi

tertentu move, rotate {‘stop’:’move’}

4.1.3.2 Data Komunikasi Serial

Tabel 4.4 Daftar data yang diterima Raspberry Pi dari Arduino

Data Deskripsi

Range data

yang

dikirimkan

Contoh data

Kompas Nilai sudut yang dideteksi

sensor kompas 0 s.d. 359 {‘sudut’:[50,-50]}

Rotary

encoder

Nilai rotary encoder per

interval waktu dengan

urutan roda kiri, roda kanan,

lalu roda belakang

bilangan integer {‘perpindahan’:[−74, 79, 0]}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

40

Protokol komunikasi antara Arduino dengan Raspberry Pi yaitu menggunakan

protokol komunikasi serial. Lalu, format komunikasi menggunakan format JSON yang

dikirimkan. Daftar data yang diterima Raspberry Pi dari Arduino ditunjukan pada Tabel 4.4.

Data diterima secara paket dan Arduino hanya mengirimkan data apabila terjadi perubahan

nilai pada pemrosesan sensor.

Tabel 4.5 Daftar data yang dikirim Raspberry Pi ke Arduino

Data Deskripsi Range data yang

dikirimkan Contoh data

Arah

pergerakan

robot

Nilai arah pergerakan yang

dihasilkan dari arctan (y/x) 0 s.d. 359 {‘atan’:371}

Kecepatan

gerak robot

Nilai PWM untuk robot

bergerak −255 s. d 255 {‘speed’:104}

Sudut robot Nilai sudut tujuan perputaran

robot 0 s.d. 359 {‘wt’:186}

Lalu, daftar data yang dikirim Raspberry Pi ke Arduino ditunjukan pada Tabel 4.5.

Pengiriman data arah pergerakan robot dan kecepatan gerak robot dikirim dalam satu paket

bersamaan, sedangkan data sudut robot dikirimkan secara terpisah. Data serial dikirimkan

saat diinginkan, dan penerimaan data serial diterima setiap interval waktu.

4.1.4 Perubahan Kontrol Navigasi Robot

START

masukan dari Arduinonilai kompas danrotary encoder

B

XY

XYmasukan setpoint

x, y atau θdari Base station

data setpoimtθdan

data nilai kompas

PerhitunganPosisi Relatif

Forward Kinematika

STOP

Apakah adaperintah stop?

Apakah adaperintah

berputar?

B

F

F

T

T

RotasiRobot

PerpindahanRobot

delay

θ

θ

Data x,y setpoint dan

data x,y rotary encoder

Gambar 4.4 Diagram alir kontrol navigasi robot pada Raspberry Pi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

41

Pada penelitian ini, kontrol navigasi dikontrol melalui base station. Diagram alir

kontrol navigasi robot pada Raspberry Pi ditunjukan pada Gambar 4.4, langkah -langkahnya

dimulai dari masukan data x, y, atau 𝜃 (setpoint)yang dikirimkan base station lalu di

konversi menjadi nilai relatif robot serta masukan data rotary encoder dan kompas yang

dikirimkan Arduino dikonversi menggunakan forward kinematika menjadi nilai x,y dan

dikonversi menjadi nilai relatif. Apabila perintah berputar adalah benar, maka data 𝜃 dari

setpoint dan data nilai kompas menjadi masukan subrutin rotasi robot. Apabila bernilai salah,

maka data x,y, dari setpoint dan x,y dari rotary encoder menjadi masukan subrutin

perpindahan robot. Apabila ada perintah stop, sistem akan berhenti, jika salah maka akan

delay supaya data asinkron yang lain bisa berjalan lalu menuju ke titik B.

Sebab kontrol PID tidak jadi digunakan dalam penelitian ini, untuk mengontrol

perpindahan dan perputaran robot, pada penelitian ini digunakan subtrutin perpindahan robot

dan subrutin rotasi robot. Dengan begitu subrutin kontrol PID pada Gambar 3.7 tidak

digunakan.

START

data kompas dan rotary encoder

dikirim ke Raspberry Pi

B

B

A

A

masukan data sudut arah,

kecepatan gerak,atau kecepatan putar

dari Raspberry

keluarankecepatan

3 omniwheels

F

STOP

Apakah adaperintah stop?

T

pembacaanrotary encoder

pembacaan kompas

Inverse Kinematika

Gambar 4.5 Diagram alir program pada Arduino

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

42

Lalu untuk pergerakan robot meliputi aktuator motor juga pembacaan nilai kompas dan

nilai rotary encoder diatur pada mikrokontroler Arduino. Diagram alir program pada

Arduino ditunjukan pada Gambar 4.5. Dimulai dari masukan data dari Raspberry Pi, data

tersebut kemudian akan dikonversi menjadi nilai perputaran setiap roda menggunakan

inverse kinematika pada persamaan 2.8. Lalu menuju ke titik A, proses subrutin pembacaan

kompas kemudian proses subtrutin pembacaan rotary encoder. Data kompas dan rotary

encoder dikirimkan ke Raspberry Pi, dan apabila ada perintah stop adalah benar maka akan

stop, apabila tidak maka akan menuju ke titik B.

4.1.4.1 Subrutin perpindahan robot

START

RETURN

kecepatan = negatif,nilai kecepatan dan arah

dikirim ke Arduino

kecepatan = positif,nilai kecepatan dan arah

dikirim ke Arduino

kecepatan = nol,nilai kecepatan dan arah

dikirim ke Arduino

jarak > batas + akurasi jarak < batas - akurasi

F F

T T

jarak = (dari rotary encoder)

batas = (dari setpoint)

arah (dari setpoint)

Gambar 4.6 Diagram alir subrutin kontrol perpindahan Robot

Diagram alir subrutin kontrol perpindahan robot ditunjukan pada Gambar 4.6. Data

masukan x,y dari setpoint dan x,y rotary encoder dikonversikan menjadi nilai jarak dan nilai

batas menggunakan persamaan 2.7. Juga, data x,y dari setpoint dikonversikan menjadi nilai

arah menggunakan persamaan 2.8. Lalu, apabila jarak lebih dari jumlah batas ditambah

akurasi bernilai benar maka kecepatan bernilai negatif, kemudian data arah dan kecepatan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

43

negatif dikirimkan ke Arduino dan return. Apabila jarak kurang dari jumlah batas dikurang

akurasi bernilai benar maka kecepatan bernilai positif, kemudian data arah dan kecepatan

positif dikirimkan ke Arduino dan return. Selanjutnya, apabila tidak keduanya maka

kecepatan bernilai nol, kemudian data arah dan kecepatan nol dikirimkan ke Arduino dan

return.

4.1.4.2 Subrutin perputaran robot

START

RETURN

Putar counter clockwisedikirim ke Arduino

Putar clockwisedikirim ke Arduino

Berhenti berputardikirim ke Arduino

error > 180

error <= akurasidan

error >= - akurasi

B

B

F

F

F

F

T

T

TT

target < 0

error < 0

target += 360

error +=360

error = target - sudut baca kompas

Gambar 4.7 Diagram alir subrutin kontrol perputaran robot

Diagram alir subrutin kontrol perpindahan robot ditunjukan pada Gambar 4.7. Data

masukan 𝜃 dari setpoint adalah sebagai target dan nilai kompas menjadi sudut baca kompas.

Apabila target bernilai negatif, maka akan ditambahkan nilai 360. Lalu, nilai error dihitung

dengan nilai target dikurangi nilai sudut baca kompas. Selanjutnya, apabila nilai error

bernilai negatif, maka akan ditambahkan nilai 360. Kemudian, apabila nilai error kurang dari

sama dengan akurasi dan lebih dari sama dengan nilai negatif akurasi, data berhenti berputar

akan dikirim ke Arduino dan return. Apabila bernilai salah, maka akan ada kondisi error

kurang dari 180. Apabila kondisi error kurang dari 180 adalah benar, maka data putar counter

clockwise akan dikirim ke Arduino dan return. Apabila kondisi error kurang dari 180 adalah

salah, maka data putar clockwise akan dikirim ke Arduino dan return.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

44

4.1.4.3 Subrutin pembacaan rotary encoder

Diagram alir subrutin pembacaan kompas ditunjukan pada Gambar 4.8. Dimulai,

apabila kondisi channel A sama dengan channel B bernilai benar, maka nilai pembacaan

dikurang 1, apabila bernilai salah nilai pembacaan ditambah 1. Lalu, nilai rotary encoder

sama dengan pembacaan dan pembacaan sama dengan nol kemudian retrun,

RETURN

START

F

T

A == B

pembacaan -= 1

pembacaan+= 1

nilai rotary encoder = pembacaanpembacaan = 0

Gambar 4.8 Diagram alir subrutin pembacaan rotary encoder

4.1.5 Perubahan Subrutin Penentuan Lokasi Diri Robot

START

masukan dari Arduinonilai kompas dan

rotary encoder

data x, y, dan nilai kompas

dikirim ke Base Station

A

A

Perhitungan KinematikaForward

PerhitunganPosisi Relatif

RETURN

Gambar 4.9 Subrutin penentuan lokasi diri robot pada Raspberry Pi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

45

Gambar 4.9 merupakan subrutin penentuan lokasi diri robot pada Rasberry Pi,

subrutin ini ditambahkan pada penelitian ini karena ada perubahan alur perhitungan pada

subbab 3.3.1.2. Dimulai dari masukan Arduino, data nilai kompas dan nilai rotary encoder

lalu dikonversi menggunakan forward kinematika dan dihitung posisi relatifnya, kemudian

data dikirim ke base station dan return.

START

Masukan dari Raspberry Pi

x,y, dan nilai kompas

Data divisualisasikan

RETURN

y = -y

Gambar 4.10 Subrutin penentuan lokasi diri robot pada base station

Lalu dilanjutkan subrutin penenutan lokasi diri robot pada base station seperti yang

ditunjukan pada Gambar 4.10 yang mengacu pada Gambar 3.10. Data dari Raspberry Pi yang

diterima adalah x,y, dan nilai kompas. Setelah itu, nilai y dinegasikan. Kemudian, data

divisualisasikan dan return.

4.2. Hasil Perancangan Hardware

4.2.1 Hasil Perancangan Robot

Gambar 4.11 merupakan hasil perancangan robot. Gambar 4.12 s.d. Gambar 4.14

merupakan hasil perancangan hardware robot. Dalam perancangan ini, ada tiga bagian untuk

peletakan komponen, yaitu bagian atas, belakang, dan bawah. Pada bagian atas adalah

komponen mikrokontroler Arduino, Raspberry Pi, dan sensor kompas, serta sumber

tegangan 12V,5V, dan 3,3V. Pada bagian belakang ada driver IBT dan sumber tegangan

24V. Pada bagian bawah jari-jari yang dibentuk 3 omniwheels sebesar 21 cm. Lalu, untuk

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

46

keterangan pada Gambar 4.11 s.d. Gambar 4.14 perancangan hardware ditunjukan pada

Tabel 4.6.

Gambar 4.11 Hasil perancangan robot

Gambar 4.12 Hasil perancangan hardware bagian atas

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

47

Gambar 4.13 Hasil perancangan hardware bagian belakang

Gambar 4.14 Hasil perancangan hardware bagian bawah

Tabel 4.6 Keterangan perancangan hardware

No Simbol Keterangan

1 s Penghubung Serial antara

Raspberry Pi dan Arduino

2 v Kabel power Raspberry Pi

3 R Raspberry Pi 3

4 A Arduino Due

5 C Kompas GY-26

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

48

Tabel 4.6 (lanjutan) Keterangan perancangan hardware

6 B Buck Converter 5V to 3.3 V

7 BU Buck Converter to USB 5V 2A

8 12V Sumber tegangan 12V

9 5V Sumber tegangan 5V

10 3.3 Sumber tegangan 3V

11 N Titik Ground

10 IBT Driver Motor IBT

12 24V Sumber tegangan 24V

13 V1 Motor Kiri

14 V2 Motor Kanan

15 V3 Motor Belakang

4.2.2 Sistem Kelistrikan

Baterai 24V

Baterai 12V

Step Down 5V

Step Down 3.3V

Driver IBT

SensorRotary Encoder

SensorKompas

Arduino DueRaspberry Pi

Motor DC

Gambar 4.15 Sistem pembagian daya

Sistem pembagian daya ditunjukan pada Gambar 4.15. Ada dua sumber daya utama,

yaitu baterai 12 volt dan baterai 24 volt. Baterai 12 volt digunakan untuk menghidupkan step

down 5 volt yang akan digunakan untuk menghidupkan Raspberry Pi, mikrokontroler driver

IBT, dan step down 3 volt. Step down 3 volt digunakan untuk daya 3 buah sensor rotary

encoder. Raspberry Pi digunakan sebagai sumber daya Arduino Due dan Arduino Due

digunakan sebagai sumber daya sensor kompas. Lalu, baterai 24 volt digunakan untuk

sumber tegangan input 24 volt pada driver IBT yang kemudian digunakan untuk memberi

tegangan pada motor.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

49

4.3. Hasil Perancangan Software

4.3.1 Hasil GUI visualisasi dan kontrol navigasi pada base station

Gambar 4.16 Hasil GUI visualisasi dan kontrol pada base station

Pada Gambar 4.16 ditunjukan hasil perancangan software visualisasi dan kontrol pada

base station. Base station berbasis web yang dapat dijalankan pada browser, pada penelitian

ini digunakan browser Microsoft Edge. Bagian-bagian dari tampilan base station ditunjukan

pada Tabel 4.7.

Tabel 4.7 Keterangan GUI visualisasi dan kontrol pada base station

No Keterangan

1 Visualisasi Robot

2 Kontrol Navigasi Robot

3 Keterangan Koneksi dan Logger

Pada bagian Visualisasi Robot, ditunjukan robot cyan dan robot magenta, lapangan,

dummy robot, dan bola. Robot di dalam visualisasi akan bergerak dan berputar apabila base

station menerima data ‘moved’ dan ‘rotated’. Pada bagian Kontrol Navigasi Robot,

ditunjukan label x, y, dan 𝜃 yang merepresentasikan lokasi dan heading robot. Di sebelah

kanan label, terdapat textbox untuk masukan kontrol dan tombol-tombol. Pada penelitian ini

tombol yang dipakai yaitu ‘Move’, ‘Rotate’, dan ‘Stop’. Tombol ‘Move’ berfungsi untuk

mengirimkan data ‘move’, ‘Rotate’ berfungsi untuk mengirimkan data ‘rotate’, dan ‘Stop’

berfungsi untuk mengirimkan data ‘stop’. Data-data tersebut dikirimkan ke Robot melalui

protokol socketio. Pada bagian Keterangan Koneksi dan Logger ditampilkan status koneksi

Server, Robot1, dan Robot2 serta penampilan data logger.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

50

4.4 Hasil Pengujian Sistem

Pada penelitian ini, sistem-sistem utama yang diuji meliputi pengujian perancangan

komunikasi base station-robot komunikasi socketio, komunikasi serial, perpindahan robot,

perputaran robot, kontrol navigasi dan penentuan posisi robot pada bidang x,y, dan sudut.

Nilai galat didapatkan dengan menggunakan persamaan 4.1.

𝑔𝑎𝑙𝑎𝑡 = |𝑎𝑘𝑡𝑢𝑎𝑙 − 𝑖𝑑𝑒𝑎𝑙| (4.1)

Nilai kesalahan didapatkan dengan menggunakan persamaan 4.2.

𝑘𝑒𝑠𝑎𝑙𝑎ℎ𝑎𝑛 =𝑔𝑎𝑙𝑎𝑡

𝑖𝑑𝑒𝑎𝑙∗ 100% (4.2)

4.4.1 Hasil Pengujian Komunikasi Base Station - Robot

pos1

pos2pos3

PC

Gambar 4.17 Ilustrasi pengambilan data komunikasi

Untuk melihat jarak terjauh base station dengan robot dapat berkomunikasi, dilakukan

pengujian pengiriman data dengan variasi jarak base station.

Tabel 4.8 Keterangan ilustrasi pengambilan data komunikasi

No Simbol Keterangan

1 PC Base station

2 Pos1 Posisi 1 robot

3 Pos2 Posisi 2 robot

4 Pos3 Posisi 3 robot

Pada Tabel 4.8 ditunjukan keterangan keberhasilan konektivitas, Ilustrasi posisi-posisi

robot dan base station ditunjukan pada Gambar 4.17. Pada Gambar 4.17 ditunjukan “PC”

sebagai base station yang diletakan pada luar pojok kanan atas lapangan posisi pertama robot

diletakan di tengah lapangan dengan jarak 4,5 m, posisi kedua robot diletakan di pojok kanan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

51

bawah lapangan dengan jarak 6,36 m, dan posisi ketiga robot diletakan di pojok kanan bawah

lapangan dengan jarak 12,72 m.

Gambar 4.18 Hasil komunikasi base station – robot

Tabel 4.9 Keterangan keberhasilan koneksivitas

No Simbol Jarak (m) Keberhasilan

2 Pos1 4,5 Berhasil

3 Pos2 6,36 Berhasil

4 Pos3 12,72 Berhasil

Pada Gambar 4.18 ditunjukan hasil komunikasi antara base station dengan robot.

Dari percobaan yang telah dilakukan, didapatkan bahwa robot dapat berkomunikasi dengan

base station dengan tingkat keberhasilan 100% pada semua jarak yang diuji, seperti yang

ditunjukan pada Tabel 4.9. Hal ini berpengaruh terhadap kestabilan konektivitas robot

dengan base station di seluruh cakupan lapangan .

4.4.2 Hasil Pengujian Perancangan Komunikasi Socketio

Gambar 4.19 Komunikasi socketio pada Raspberry Pi

Pada penelitian ini, data JSON dikirimkan ke base station dari Raspberry Pi apabila ada

perubahan data dari data penerima komunikasi serial, supaya pada data yang diterima base

station tidak crowded. Pada Gambar 4.19 ditunjukan hasil debug komunikasi socketio pada

Raspberry Pi secara dua arah. Komunikasi data-data yang terdapat pada Tabel 4.2 dan Tabel

4.3 berhasil dikirim dan diterima oleh base station dan Raspberry Pi. Dengan berhasilnya

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

52

komunikasi socketio, dapat dilakukan pengiriman data perintah untuk kontrol navigasi robot

dan penerimaan data untuk visualisasi posisi robot.

4.4.3 Hasil Pengujian Perancangan Komunikasi Serial

Gambar 4.20 merupakan hasil debug komunikasi dua arah antara Arduino dan

Raspberry Pi. Data yang dari Arduino dikirimkan apabila ada perubahan nilai pada sensor,

jadi tidak ada penumpukan data yang tidak diperlukan. Komunikasi data-data yang terdapat

pada Tabel 4.4 dan Tabel 4.5 berhasil dikirim dan diterima oleh Raspberry Pi dan Arduino.

Dengan berhasilnya komunikasi serial, dapat dilakukan pengiriman data perintah untuk

pergerakan robot dan penerimaan data dari sensor kompas dan sensor rotary encoder.

Gambar 4.20 Komunikasi serial Arduino – Raspberry Pi

4.4.4 Hasil Pengujian Perancangan Perpindahan Robot

Gambar 4.21 Pengukuran perpindahan visualisasi robot

Gambar 4.22 Pengukuran perpindahan nyata robot

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

53

Pada pengujian perpindahan robot, dilakukan pengujian dengan delapan variabel

masukan dengan pengulangan lima kali setiap variabelnya. Pengujian dilakukan pada

lapangan yang dirancangan menggunakan karpet, robot dikontrol melalui base station untuk

bergerak dengan perpindahan yang dinginkan. Pengujian perpindahan Visualisasi diukur

dengan melihat data rotary encoder yang telah dikonversi dalam nilai x dan y menggunakan

forward kinematika lalu dihitung jarakmya menggunakan persamaan 2.7 seperti yang

ditunjukan pada Gambar 4.21. Pengujian perpindahan nyata diukur menggunakan meteran

seperti yang ditunjukan pada Gambar 4.22.

Tabel 4.9 Hasil Pengujian Perpindahan Robot

No Nilai yang

diinginkan

Perpindahan Robot Kesalahan

Visualisasi

(cm)

Nyata

(cm) Visualisasi Nyata

1 25 24 23.8 4.00% 4.80%

25 23.8 23.7 4.80% 5.20%

25 23.7 23.4 5.20% 6.40%

25 23.6 23.3 5.60% 6.80%

25 23.8 23.3 4.80% 6.80%

2 50 49.2 49.8 1.60% 0.40%

50 49.2 49.7 1.60% 0.60%

50 46 46 8.00% 8.00%

50 49.5 49.8 1.00% 0.40%

50 46 46 8.00% 8.00%

3 75 71.7 71.5 4.40% 4.67%

75 72.2 71.5 3.73% 4.67%

75 71.4 71 4.80% 5.33%

75 72.4 72 3.47% 4.00%

75 72.5 72 3.33% 4.00%

4 100 96.4 95 3.60% 5.00%

100 99.7 98.5 0.30% 1.50%

100 96.1 95.2 3.90% 4.80%

100 96.4 95.4 3.60% 4.60%

100 96.2 96 3.80% 4.00%

5 125 122.3 121.5 2.16% 2.80%

125 123.6 123 1.12% 1.60%

125 123 122 1.60% 2.40%

125 122.8 121.5 1.76% 2.80%

125 123 122 1.60% 2.40%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

54

Tabel 4.9 (lanjutan) Hasil Pengujian Perpindahan Robot

6 150 146.6 145 2.27% 3.33%

150 146.3 144.5 2.47% 3.67%

150 146.3 144.1 2.47% 3.93%

150 146.4 144.5 2.40% 3.67%

150 146.3 144.8 2.47% 3.47%

7 175 174 171.3 0.57% 2.11%

175 173.8 171.6 0.69% 1.94%

175 173.4 171 0.91% 2.29%

175 172.1 174.7 1.66% 0.17%

175 173.2 170 1.03% 2.86%

8 200 196 193.5 2.00% 3.25%

200 197.1 194.2 1.45% 2.90%

200 197.8 195 1.10% 2.50%

200 197.3 194 1.35% 3.00%

200 196.7 193.5 1.65% 3.25%

Pada Tabel 4.9 ditunjukan hasil pengujian perpindahan robot. Dari data yang

didapatkan, kesalahan pada setiap peningkatan jarak semakin menurun. Kesalahan pada

perpindahan visualisasi yaitu 8%. Kesalahan perpindahan nyata yaitu 8% dari posisi

aktualnya pada setiap perpindahan yang ditempuh. Hal ini disebabkan oleh pengaruh slip

roda, sampling data pembacaan pada rotary encoder, dan akurasi perpindahan. Kesalahan

pada perpindahan berpengaruh terhadap ketepatan robot berpindah menuju lokasi yang

diinginkan dan perbedaan antara perbedaan nilai pada visualisasi dan pada kondisi nyata.

4.4.5 Hasil Pengujian Perancangan Perputaran Robot

Pengujian dilakukan dengan memutar robot melalui base station dengan nilai

perubahan sudut yang diinginkan. Pengujian perputaran visualisasi diukur dengan melihat

data kompas yang diterima di GUI seperti yang ditunjukan pada Gambar 4.23. Pengujian

perputaran nyata diukur menggunakan meteran seperti yang ditunjukan pada Gambar 4.24,

yang diukur adalah perpindahan posisi roda.

Gambar 4.23 Pengukuran perputaran visualisasi robot

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

55

Gambar 4.24 Pengukuran perputaran nyata robot

Gambar 4.25 Cara mengukur perputaran nyata robot

Nilai sudut aktual didapatkan dengan persamaan 4.4. menggunakan perhitungan

trigonometri dan sudut pada segitiga seperti yang ditunjukan pada Gambar 4.25. R adalah

jari-jari lingkaran yang dibentuk 3 omniwheels, d sebagai jarak antara titik awal dan titik

akhir.

𝑠𝑢𝑑𝑢𝑡𝑘𝑎𝑘𝑖 = [cos−1 (

𝑗𝑎𝑟𝑎𝑘

2𝑟) ,

𝑗𝑎𝑟𝑎𝑘

2≤ 𝑟

cos−1 (2𝑟

𝑗𝑎𝑟𝑎𝑘) ,

𝑗𝑎𝑟𝑎𝑘

2> 𝑟

] ; r = 21 (4.3)

𝑠𝑢𝑑𝑢𝑡 = [180 − 2 ∗ 𝑠𝑢𝑑𝑢𝑡𝑘𝑎𝑘𝑖 , 2 ∗ 𝑠𝑢𝑑𝑢𝑡𝑘𝑎𝑘𝑖 ≤ 180

2 ∗ 𝑠𝑢𝑑𝑢𝑡𝑘𝑎𝑘𝑖 , 2 ∗ 𝑠𝑢𝑑𝑢𝑡𝑘𝑎𝑘𝑖 > 180] (4.4)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

56

Tabel 4.10 Hasil Pengujian Perputaran Robot

No Nilai yang

diinginkan

Perputaran Robot Kesalahan

Visualisasi

(derajat)

Nyata

(derajat) Visualisasi Nyata

1 30 25 34.63 16.67% 15.43%

30 28 27.55 6.67% 8.17%

30 30 27.55 0.00% 8.17%

30 26 24.75 13.33% 17.51%

30 25 24.75 16.67% 17.51%

2 45 43 50.75 4.44% 12.79%

45 40 36.06 11.11% 19.86%

45 40 36.06 11.11% 19.86%

45 43 41.85 4.44% 7.00%

45 44 50.75 2.22% 12.79%

3 60 56 68.05 6.67% 13.41%

60 56 51.66 6.67% 13.90%

60 56 53.79 6.67% 10.34%

60 55 66.41 8.33% 10.68%

60 56 66.41 6.67% 10.68%

4 90 86 112.89 4.44% 25.43%

90 86 103.57 4.44% 15.08%

90 88 91.17 2.22% 1.30%

90 88 91.17 2.22% 1.30%

90 85 110.46 5.56% 22.73%

5 120 119 133.57 0.83% 11.31%

120 115 117.99 4.17% 1.67%

120 117 120.70 2.50% 0.58%

120 116 99.26 3.33% 17.28%

120 115 117.99 4.17% 1.67%

6 135 130 129.58 3.70% 4.01%

135 130 140.26 3.70% 3.90%

135 133 136.43 1.48% 1.06%

135 134 115.39 0.74% 14.52%

135 130 144.49 3.70% 7.03%

7 150 147 149.28 2.00% 0.48%

150 149 166.30 0.67% 10.86%

150 149 159.05 0.67% 6.03%

150 147 147.29 2.00% 1.81%

150 148 142.75 1.33% 4.84%

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

57

Tabel 4.10 (lanjutan) Hasil Pengujian Perputaran Robot

8 180 165 166.30 8.33% 7.61%

180 183 162.30 1.67% 9.83%

180 179 168.81 0.56% 6.22%

180 185 162.30 2.78% 9.83%

180 177 180.00 1.67% 0.00%

Pada Tabel 4.10 ditunjukan hasil pengujian perputaran robot. Pada pengujiannya

dilakukan pengujian dengan delapan variabel masukan dengan pengulangan lima kali setiap

variabelnya. Dari data yang didapatkan, kesalahan pada setiap peningkatan jarak semakin

menurun. Kesalahan perputaran visualisasi yaitu 16,67%, sedangkan kesalahan perputaran

nyata yaitu 25,43%. Hal ini kemungkinan disebabkan oleh sampling data pembacaan

kompas saat robot berputar dan nilai akurasi perputaran. Kesalahan perputaran

mempengaruhi posisi heading robot dan menyebabkan perbedaan posisi heading robot pada

visualisasi dan pada kondisi nyata.

4.4.6 Hasil Pengujian Kontrol Navigasi dan Penentuan Lokasi Diri Robot

4.4.6.1 Sumbu X Dan Y

Gambar 4.26 Pengukuran posisi x dan y visualisasi robot

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

58

Gambar 4.27 Pengukuran posisi x dan y nyata robot

Pengujian dilakukan dengan mengontrol posisi akhir robot dan robot berpindah

sesuai arah dan jarak yang diinginkan. Pengujian posisi x dan y visualisasi diukur dengan

melihat nilai x dan y pada GUI seperti yang ditunjukan pada Gambar 4.26. Pengujian posisi

x dan y Nyata diukur menggunakan meteran seperti ditunjukan pada Gambar 4.27.

Representasi sudut yang dibentuk oleh perpindahan x dan y ditunjukan pada Tabel 4.11.

Tabel 4.11 Sudut Arah Percobaan Pada Penentuan Lokasi Diri Robot (𝜃)

No. Percobaan Sudut yang dibentuk (derajat)

1 0

2 180

3 90

4 270

5 60

6 135

7 330

8 200

Pada Tabel 4.12 ditunjukan hasil pengujian penentuan lokasi diri robot pada bidang

x dan y. Pada pengujiannya dilakukan pengujian dengan delapan variabel masukan dengan

pengulangan lima kali setiap variabelnya. Dari data yang didapatkan, kesalahan pada

visualisasi sumbu x yaitu 6% dan sumbu y 9%.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

59

Tabel 4.12 Hasil Pengujian Penentuan Lokasi Diri Robot (x,y)

No

Posisi

Sebelum

Posisi yang

diinginkan

Posisi akhir Kesalahan Galat

Visualisasi

(cm)

Nyata

(cm) Visualisasi

Nyata

(cm)

X Y X Y X Y X Y X Y X Y

1 300 245 300 145 300 149 304.5 146.7 0.00% 2.76% 4.5 1.7

300 245 300 145 300 149 305 147 0.00% 2.76% 5 2

300 245 300 145 300 154 305.2 148 0.00% 6.21% 5.2 3

300 245 300 145 300 150 305 146.7 0.00% 3.45% 5 1.7

300 245 300 145 300 158 306 147.7 0.00% 8.97% 6 2.7

2 300 145 300 245 300 245 302.8 245.5 0.00% 0.00% 2.8 0.5

300 145 300 245 300 241 301.5 243.2 0.00% 1.63% 1.5 1.8

300 145 300 245 300 238 305.5 241.3 0.00% 2.86% 5.5 3.7

300 145 300 245 300 241 305.3 243.6 0.00% 1.63% 5.3 1.4

300 145 300 245 300 237 301.5 242 0.00% 3.27% 1.5 3

3 300 145 200 145 201 145 196.5 152.5 0.50% 0.00% 3.5 7.5

300 145 200 145 204 145 198.4 156.5 2.00% 0.00% 1.6 11.5

300 145 200 145 204 145 193.6 156 2.00% 0.00% 6.4 11

300 145 200 145 204 145 198 155.5 2.00% 0.00% 2 10.5

300 145 200 145 204 145 198 152.2 2.00% 0.00% 2 7.2

4 500 245 400 245 403 245 392.6 252.5 0.75% 0.00% 7.4 7.5

500 245 400 245 395 245 398 251.5 1.25% 0.00% 2 6.5

500 245 400 245 395 245 397.3 252 1.25% 0.00% 2.7 7

500 245 400 245 395 245 398 246.5 1.25% 0.00% 2 1.5

500 245 400 245 395 245 397.8 248.8 1.25% 0.00% 2.2 3.8

5 300 245 387 195 387 195 303 151.5 0.00% 0.00% 84 43.5

300 245 387 195 387 198 300 152.5 0.00% 1.54% 87 42.5

300 245 387 195 381 198 300 154.2 1.55% 1.54% 87 40.8

300 245 387 195 378 200 302 153 2.33% 2.56% 85 42

300 245 387 195 381 198 300 153.7 1.55% 1.54% 87 41.3

6 300 245 372 315 360 320 360 324 3.23% 1.59% 12 9

300 245 372 315 360 320 361 322 3.23% 1.59% 11 7

300 245 372 315 358 318 361.5 318 3.76% 0.95% 10.5 3

300 245 372 315 360 320 363 322 3.23% 1.59% 9 7

300 245 372 315 360 320 361 321 3.23% 1.59% 11 6

7 300 245 213 201 213 195 200 242 0.00% 2.99% 13 41

300 245 213 201 219 198 205.5 240 2.82% 1.49% 7.5 39

300 245 213 201 226 201 206 244 6.10% 0.00% 7 43

300 245 213 201 226 201 206 243.5 6.10% 0.00% 7 42.5

300 245 213 201 220 198 206 245 3.29% 1.49% 7 44

8 300 245 264 345 269 343 285.5 345 1.89% 0.58% 21.5 0

300 245 264 345 270 340 282.5 342.5 2.27% 1.45% 18.5 2.5

300 245 264 345 271 339 285.5 342 2.65% 1.74% 21.5 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

60

Tabel 4.12 (lanjutan) Hasil Pengujian Penentuan Lokasi Diri Robot (x,y)

300 245 264 345 270 342 282.5 343.5 2.27% 0.87% 18.5 1.5

300 245 264 345 270 339 283 343 2.27% 1.74% 19 2

Dalam data no 5, 7, dan 8, arah pergerakan robot yang diinginkan yaitu 60°, 330°,

dan 200° terlihat galat yang diperoleh lebih tinggi daripada percobaan yang lainnya yaitu

pada sumbu x sebesar 87 cm dan sumbu y 43,5 cm. Akan tetapi pada arah yang bernilai

sudut 8 arah mata angin: 0°, 45°,90°, 135°, 180°, 225°, 270°, dan 335° memiliki galat sudut

nyata pada sumbu x yaitu 1,5 cm dan sumbu y yaitu 1,5 cm.

Nilai galat ini disebabkan oleh keterbatasan perhitungan trigonometri pada

mikrokontroler dan perputaran roda. Nilai galat ini berpengaruhi terhadap arah pergerakan

robot dan terhadap visualisasi yang menyebabkan perbedaan posisi pada visualisasi dan pada

kondisi nyata.

4.4.6.2 Sumbu Sudut

Gambar 4.28 Pengukuran posisi visualisasi robot sumbu sudut

Gambar 4.29 Pengukuran posisi nyata robot bidang sudut

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

61

Pada pengujian posisi sudut robot dilakukan pengujian dengan delapan variabel

masukan dengan pengulangan lima kali setiap variabelnya. Pengujian dilakukan dengan

mengontrol posisi sudut akhir robot dan robot berputar sesuai sudut yang. Pengujian posisi

sudut visualisasi diukur dengan melihat data 𝜃 pada GUI seperti yang ditunjukan pada

Gambar 4.28. Pengujian sudut nyata diukur menggunakan meteran yang diukur adalah jarak

perpindahan perputaran roda terhadap titik acuan seperti yang ditunjukan pada Gambar 4.29,

lalu dikonversi menjadi sudut menggunakan persamaan 4.4. Yang dihitung adalah galat

sudut yang diinginkan terhadap posisi nyata.

Tabel 4.13 Hasil Pengujian Penentuan Lokasi Diri Robot (𝜃)

No

Sudut

yang

diinginkan

Sudut akhir Galat Arah

Putar Visualisasi

(derajat)

Nyata

(derajat)

Visualisasi

(derajat)

Nyata

(derajat)

1 0 4 8.19 4 8.19 CCW

0 5 8.19 5 8.19 CCW

0 4 2.73 4 2.73 CCW

0 0 2.73 0 2.73 CCW

0 2 21.96 2 21.96 CW

2 45 44 58.67 1 13.67 CW

45 48 45.00 3 0.00 CCW

45 49 45.00 4 0.00 CCW

45 42 61.43 3 16.43 CW

45 43 57.30 2 12.30 CW

3 90 85 94.09 5 4.09 CCW

90 86 90.00 4 0.00 CCW

90 92 103.67 2 13.67 CW

90 93 102.30 3 12.30 CW

90 86 100.93 4 10.93 CW

4 135 133 135.00 2 0.00 CCW

135 135 135.00 0 0.00 CCW

135 139 156.41 4 21.41 CW

135 138 155.57 3 20.57 CW

135 139 150.05 4 15.05 CW

5 180 185 201.96 5 21.96 CW

180 175 189.56 5 9.56 CCW

180 177 192.30 3 12.30 CCW

180 185 206.15 5 26.15 CW

180 184 201.96 4 21.96 CW

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

62

Tabel 4.13 (lanjutan) Hasil Pengujian Penentuan Lokasi Diri Robot (θ)

6 225 228 241.43 3 16.43 CW

225 220 234.56 5 9.56 CCW

225 225 230.46 0 5.46 CCW

225 227 237.30 2 12.30 CW

225 230 240.05 5 15.05 CW

7 270 273 280.93 3 10.93 CW

270 271 281.48 1 11.48 CW

270 267 285.05 3 15.05 CW

270 267 278.19 3 8.19 CCW

270 265 270.00 5 0.00 CCW

8 315 318 317.73 3 2.73 CCW

315 319 323.19 4 8.19 CCW

315 318 323.19 3 8.19 CCW

315 310 324.56 5 9.56 CW

315 312 323.19 3 8.19 CCW

Pada Tabel 4.13 ditunjukan hasil pengujian penentuan lokasi diri robot pada bidang

sudut. Dari data yang diperoleh, galat sudut visualisasi yaitu sebesar 5 derajat. Pada sudut

nyata sudut yang diperoleh bervariasi dan didapatkan galat 21,41 derajat, galat ini terjadi

saat robot berputar clockwise, sedangkan pada perputaran counter clockwise 15,05 derajat.

Hal ini disebabkan oleh sampling data pada pembacaan kompas saat robot berputar. Nilai

galat ini, berpengaruh terhadap posisi heading robot dan menyebabkan posisi sudut heading

robot tidak sesuai yang diinginkan dan pada pergerakannya di visualisasi berbeda dengan

arah di kondisi nyata.

4.5 Hasil Implementasi Motor

Gambar 4.30 Potongan progam pengendali motor pada Arduino

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

63

Gambar 4.30 merupakan potongan program pengendali motor pada Arduino, fungsi

tersebut berguna untuk membatasi kecepatan putar motor dan arah putar motor. Pada

penelitian ini PWM menggunakan frekuensi 1000 Hz dengan resolusi 8 bit. Jadi nilai

maksimal adalah ± 255 PWM. Lalu, pada Tabel 4.14 ditunjukan data RPM motor kiri,

motor kanan, dan motor belakang terhadap masukan PWM.

Tabel 4.14 Kecepatan motor terhadap PWM

No PWM Kecepatan Putar Motor (RPM)

Motor Kiri Motor Kanan Motor Belakang

1 50 13.8 13.8 14.1

2 60 16.6 16.6 16.9

3 70 19.4 19.4 19.9

4 80 23.1 23.2 23.8

5 90 26 26.1 26.8

6 100 28.8 28.8 29.5

7 110 32.5 32.8 33.3

8 120 35.3 35.6 36.2

Dari data yang diperoleh, motor belakang memiliki galat kurang lebih 0,7 rpm. Hal

ini berpengaruh terhadap gerakan robot terutama tidak bisa bergerak secara lurus pada arah

yang diinginkan.

4.6 Hasil Implementasi Rotary Encoder

Gambar 4.31 Potongan progam rotary encoder pada Arduino

Gambar 4.31 merupakan potongan program pembacaan rotary encoder pada Arduino,

fungsi tersebut akan aktif saat terjadi interupsi, setiap interupsi merepresentasikan pulsa

yang dihasilkan kanal dari sensor rotary encoder. Lalu, nilai akan dikumulasikan dalam

sebuah variabel. Pada penelitian ini, resolusi sensor rotary encoder per perputaran pada

setiap roda ditunjukan pada Tabel 4.15.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

64

Tabel 4.15 Nilai resolusi rotary encoder

No Rotary Encoder Resolusi Encoder (pulsa/rotasi)

1 Roda Kiri 1450

2 Roda Kanan 1478

3 Roda Belakang 1440

Nilai resolusi digunakan untuk menentukan banyaknya perpindahan setiap pulsa.

Lalu, nilai rotary encoder digunakan untuk menghitung perpindahan robot menggunakan

odometry untuk kontrol kapan robot harus berhenti dan untuk visualisasi posisi robot.

4.7 Hasil Implementasi Kompas

Gambar 4.32 Potongan progam pembacaan kompas pada Arduino

Pada Gambar 4.32, ditunjukan potongan program pembacaan kompas pada Arduino.

Pembacaan kompas dilakukan dengan cara mengirim data 0x31 melalui komunikasi serial

ke kompas. Lalu, kompas mengirimkan bit-bit data. Data yang digunakan adalah bit ke 3 s.d.

bit ke 4. Kemudian bit – bit tersebut dijumlahkan. Dengan begitu sudut dari pembacaan

sensor kompas didapatkan.

Tabel 4.16 Nilai pengujian kompas secara manual

No Sudut

(derajat)

Hasil Pengukuran

(derajat)

Galat

(derajat)

1 0 0 0

2 45 43 2

3 90 86 4

4 135 132 3

5 180 180 0

6 225 224 0

7 270 271 1

8 315 318 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

65

Sebelum digunakan, kompas harus ditempatkan ke posisi yang sudah ditentukan, lalu

dilakukan kalibrasi. Sebab kerangka besi dan medan magnet komponen elektronis

mempengaruhi pembacaan kompas. Kalibrasi dilakukan dengan komunikasi serial

mengirimkan data 0xC0 ke kompas, lalu memutar robot dengan pelan sekitar 1 menit per

putaran. Lalu untuk menghentikan kalibrasi, data 0xC1 dikirimkan ke kompas. Pada Tabel

4.16 ditunjukan hasil nilai perolehan pengujuan kompas dengan diputar secara manual

dengan diputar ke arah sudut yang diinginkan. Didapatkan galat sebesar 4 derajat. Hal ini

berpengaruh terhadap batas perputaran robot. Kompas dapat digunakan sebagai heading

robot pada visualisasi.

4.8 Pengujian Nilai Akurasi Perpindahan Dan Perputaran Dalam penentuan perpindahan dan perputaran robot, kecepatan pergerakan robot

mempengaruhi pembacaan sensor rotary encoder dan sensor kompas.

Tabel 4.17 Nilai akurasi perpindahan

No Kecepatan

(PWM)

Step rata-rata

(pulsa/0,1detik)

Step rata-rata

(cm/0,1 detik)

1 30 80 pulse 0.2 cm

2 50 120 pulse 3 cm

3 70 180 pulse 5 cm

4 90 230 pulse 6 cm

5 100 225 pulse 7 cm

Pada Tabel 4.17, ditunjukan nilai akurasi perpindahan terhadap nilai kecepatan robot.

Nilai didapatkan dari menggerakan robot dengan kecepatan yang ditentukan, lalu nilai dari

sensor rotary encoder didapatkan. Dari data tersebut, semakin besar kecepatan robot

semakin tinggi nilai sampling pembacaan sensor rotary encoder.

Tabel 4.18 Nilai akurasi perputaran

No Kecepatan

(PWM)

Step rata-rata

(cm/0,1 detik)

1 30 2

2 50 4

3 70 5

4 90 8

Kemudian, pada Tabel 4.18, ditunjukan nilai akurasi perputaran terhadap nilai

kecepatan robot. Nilai didapatkan dari menggerakan robot dengan kecepatan putar yang

ditentukan, lalu nilai dari sensor kompas didapatkan. Dari data tersebut, semakin besar

kecepatan putar robot semakin tinggi nilai sampling pembacaan sensor kompas.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

66

Pada penelitian ini, untuk untuk menghindari osilasi digunakan akurasi ±4 cm untuk

perpindahan robot dengan kecepatan 65 PWM untuk kecepatan gerak robot, sedangkan

akurasi ±5 derajat untuk perputaran robot dengan kecepatan 50 PWM untuk kecepatan putar

robot. Juga, nilai-nilai tersebut digunakan untuk mendapatkan galat yang tidak terlalu besar

dan pergerakan tidak terlalu lambat.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

67

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Sistem yang dirancang berhasil diimplementasikan dan diuji. Dari hasil pengujian

serta pengambilan data dari robot serta base station, dapat disimpulkan sebagai berikut:

1. Komunikasi pengiriman dan penerimaan data antara robot dan base station berhasil

dilakukan dengan keberhasilan 100% pada posisi cakupan lapangan.

2. Robot dapat bergerak menuju perpindahan dengan keberhasilan 92%. Hal ini

dipengaruhi oleh nilai pembacaan rotary encoder dan perputaran roda.

3. Robot dapat berputar menuju perputaran yang diinginkan dengan keberhasilan

76,43%. Hal ini kemungkinan dipengaruhi oleh nilai pembacaan kompasdan

perputaran roda.

4. Robot dapat bergerak menuju arah dengan koordinat yang ditentukan dengan galat

pada sudut 8 arah mata angin pada sumbu x yaitu 1,5 cm dan sumbu y yaitu 1,5 cm.

Selain pada sudut tersebut, didapatkan galat pada sumbu x yaitu 87 cm dan sumbu y

yaitu 43,5 cm. Hal ini disebabkan oleh keterbatasan perhitungan trigonometri pada

mikrokontroler.

5. Robot dapat berputar menuju sudut yang ditentukan dengan galat 21,41 derajat saat

clock wise dan counter clock wise galat 15,05 derajat. Hal ini kemungkinan

dipengaruhi oleh pembacaan sensor kompas dan perputaran roda.

6. Kontrol navigasi dan visualisasi penentuan posisi diri robot berhasil dilakukan

melalui base station. Visualisasi memiliki keberhasilan 83,33%. Hal ini dipengaruhi

oleh pembacaan nilai sensor kompas dan nilai rotary encoder.

7. Sensor kompas dapat digunakan sebagai penentuan heading robot.

8. Sensor rotary encoder dapat digunakan sebagai penentuan lokasi diri robot.

5.2 Saran

Berdasarkan hasil penelitian ini, saran untuk pengembangan penelitian selanjutnya,

antara lain:

1. Pemakaian roda kecil dalam pembacaan rotary encoder, supaya mendapatkan

resolusi pembacaan yang lebih teliti.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

68

DAFTAR PUSTAKA

[1] Kemdikbud, 2018, BUKU PANDUAN KONTES ROBOT SEPAKBOLA INDONESIA

BERODA (KRSBI Beroda) 2019, Jakarta.

[2] WHO, 2020, Timeline: WHO's COVID-19 response,

https://www.who.int/emergencies/diseases/novel-coronavirus-2019/interactive-

timeline, diakses 7 November 2020.

[3] WHO, 2020, Coronavirus disease (COVID-19) advice for the public,

https://www.who.int/emergencies/diseases/novel-coronavirus-2019/advice-for-

public, diakses 7 November 2020.

[4] Kemdikbud, 2019, Kontes Robot Sepak Bola Indonesia Beroda (KRSBI) Beroda,

Petunjuk Pelaksanaan Kontes Robot Indonesia (KRI) Tahun 2019, Jakarta.

[5] Kemdikbud, 2020, Kontes Robot Sepak Bola Indonesia Beroda (KRSBI) Beroda

Daring 2020, Petunjuk Pelaksanaan Kontes Robot Indonesia (KRI) Tahun 2020,

Jakarta.

[6] Gusnadika, S.A.C., 2020, Visualisasi Posisi Robot Dan Bola Serta Strategi Bermain

Pada Robot Sepakbola, Tugas Akhir, Jurusan Teknik Elektro, FST, Universitas

Sanata Dharma, Yogyakarta.

[7] Bagaskara, N.S., 2020, Penggerak Dan Pengolah Posisi Robot Striker Pada Robot

Sepakbola, Tugas Akhir, Jurusan Teknik Elektro, FST, Universitas Sanata Dharma,

Yogyakarta.

[8] Holden, S., 2018, The Python Wiki, https://wiki.python.org/moin/FrontPage, diakses

30 November 2020.

[9] Raspberry Pi Foundation, 2020, Raspberry Pi 3 Model B,

https://www.raspberrypi.org/products/raspberry-pi-3-model-b, diakses 30

November 2020.

[10] Logitech, 2020, C270, https://www.logitech.com/id-id/product/hd-webcam-c270,

diakses 1 Desember 2020.

[11] OpenCV team, 2020, About, https://opencv.org/about/, diakses 1 Desember 2020.

[12] Canuma, P., 2018, Image Pre-processing, https://towardsdatascience.com/image-

pre-processing-c1aec0be3edf, diakses 9 Februari 2021.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

69

[13] Boyat, A.K., Joshi, B.K., 2015, Noise Models In Digital Image Processing, Signal

& Image Processing : An International Journal (SIPIJ) Vol.6, No.2, April 2015.

[14] OpenCV team, 2021. OpenCV modules, https://docs.opencv.org/master/, diakses 9

Februari 2021.

[15] Ippolito, P.P., 2019, Feature Extraction Techniques,

https://towardsdatascience.com/feature-extraction-techniques-d619b56e31be,

diakses 9 Februari 2021.

[16] Binatha, C, 2016, Hue Saturation Value (HSV) Color Space for Content based Image

Retrieval, IJERT Vol. 5 Issue 04 April 2016.

[17] Oliveira, H.P., Sousa, A.J., Moreira, A.P., Costa, P.J., Modeling and Assesing of

Omni-directional Robotswith Three and Four Wheels, IEEE International

Conference on Robotics and Automation 1:521 – 527 vol.1, Portugal, 2003.

[18] Inthiam, J., Deelerpaiboon, C., 2014, Self-Localization and Navigation of Holonomic

Mobile Robot using Omni-Directional Wheel Odometry, TENCON 2014 - 2014

IEEE Region 10 Conference.

[19] Rakhman, E., Basjaruddin, N.C., Susanto, V.E.P., 2019, Robot Mobile Otonom

Menggunakan Metode Odometry, Techné Jurnal Ilmiah Elektroteknika Vol. 18 No.

02 Oktober 2019 Hal 105 – 116.

[20] ----, ----, Datasheet 3-Axis Digital Compass IC HMC5883L, Honeywell.

[21] ----, ----, Datasheet ATMega 2560, Atmel.

[22] Goodwin, G.C., Graebe, S.F., Salgado, M.E., 2000, Control System Design, Prentice

Hall.

[23] Weisstein, Eric W., 2020, Trigonometry,

https://mathworld.wolfram.com/Trigonometry.html, diakses 30 November 2020.

[24] Weisstein, Eric W., 2020, Line-Line Intersection,

https://mathworld.wolfram.com/Line-LineIntersection.html, diakses 30 November

2020.

[25] OpenJS Foundation, 2021, Introduction to Node.js, https://nodejs.dev/learn, diakses

13 Februari 2021.

[26] OpenJS Foundation, 2021, Node.js Documentation, https://nodejs.org/en/docs/,

diakses 13 Februari 2021.

[27] Mozilla Foundation, 2020, JavaScript, https://developer.mozilla.org/en-

US/docs/Web/JavaScript, diakses 30 November 2020.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

70

[28] Mozilla Foundation, 2020, HTML,

https://developer.mozilla.org/id/docs/Web/HTML, diakses 30 November 2020.

[29] Mozilla Foundation, 2020, CSS, https://developer.mozilla.org/en-

US/docs/Glossary/CSS, diakses 30 November 2020.

[30] Refsnes Data, 2020, CSS Tutorial, https://www.w3schools.com/css, diakses 30

November 2020.

[31] ----, ---- , Introducing JSON, https://www.json.org/json-en.html, diakses 15 Februari

2021.

[32] PubNub Inc., 2021, WebSocketss vs Rest API: Understanding the Difference,

https://www.pubnub.com/blog/WebSocketss-vs-rest-api-understanding-the-

difference/, diakses 15 Februari 2021.

[33] Mozilla Foundation, 2020, WebSockets, https://developer.mozilla.org/en

US/docs/Web/API/WebSockets, diakses 30 November 2020.

[34] caniuse, 2021, Web Sockets, https://caniuse.com/#feat=WebSocketss, diakses 14

Februari 2020.

[35] socket.io, 2021, Introduction, https://socket.io/docs/v3, diakses 15 Februari 2021.

[36] Grinberg, M., 2018, python-socketio, https://python-

socketio.readthedocs.io/en/latest/, diakses 15 Februari 2020.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-1

Lampiran

Bagian program yang digunakan dalam Base Station untuk kontrol robot

sf.component('kontrol-lapangan', {

template: 'vw-halaman/vw-bagian/komponen/kontrol-lapangan/kontrol-lapangan.html'

}, (My, include, $item) => {

console.log($item);

let Lapangan = $item.lapangan;

let Tim = My.Tim = Lapangan.Tim;

My.Bola = Lapangan.bola;

My.whichDummy = 1;

My.DummyControl = [

{id: 3, x: 150, y: 160, occupy: 0},

{id: 8, x: 300, y: 160, occupy: 0},

{id: 6, x: 450, y: 160, occupy: 0},

{id: 2, x: 150, y: 260, occupy: 0},

{id: 7, x: 300, y: 260, occupy: 0},

{id: 5, x: 450, y: 260, occupy: 0},

{id: 1, x: 150, y: 360, occupy: 0},

{id: '', x: 0, y: 0, occupy: 0},

{id: 4, x: 450, y: 360, occupy: 0},

];

My.chooseDummy = function(item){

if(item.id === '') return; // ignore

// Reset

My.DummyControl.forEach(v => {

if(v.occupy === My.whichDummy){

v.occupy = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-2

// Remove the obstacle data

Logic.pathObstacle(v.x, v.y, false);

}

});

// Mark it as active

item.occupy = My.whichDummy;

// Apply the position

Lapangan.Lawan[My.whichDummy].x = item.x;

Lapangan.Lawan[My.whichDummy].y = item.y;

// Update the obstacle data

// Jika tidak diupdate nanti path findingnya ngira disini bisa dilewati

Logic.pathObstacle(item.x, item.y, true);

}

// Kalo modif ini nanti direfresh lagi

My.Tombol = {

Kick(robot) {

robot.tendang();

robot.log("Tendang");

},

Grip(robot) {

robot.gripper();

robot.log("Gripper Nyala");

},

Pass(robot) {

robot.log("Mengoper bola");

Strategy.Action.OperBola();

},

Catch(robot) {

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-3

Strategy.Action.TangkapBola(robot, function(){

robot.log("Ball Captured");

});

},

Move(robot) {

let { prepare } = robot;

robot.moveTo(prepare.x, prepare.y);

},

Rotate(robot) {

let { prepare } = robot;

robot.rotate(prepare.rotasi);

},

Stop(robot) {

robot.stop('move');

robot.stop('rotate');

robot.stop('kick');

robot.log("Stop all");

},

Reset(robot) {

robot.log("Reset");

if (robot.id === 'Robot1') {

robot.x = 300;

robot.y = 245;

}

else if (robot.id === 'Robot2') {

robot.x = 0;

robot.y = 0;

}

},

Visualize(robot) {

robot.log("Visualisasi Klik ");

robot.visualize();

},

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-4

};

[Tim.Robot1, Tim.Robot2].forEach(val => {

val.prepare = {

x: 300, y: 225, rotasi: 0,

action: My.Tombol

}

});

});

Program yang digunakan dalam Raspberry Pi untuk pengiriman - penerimaan data serial,

kontrol perpindahan-perputaran robot, dan pengiriman data ke base station

import aioserial

import asyncio

import json

import time

import math

from config import AmbilData, Socket, Print

from custom.kinematika import kinematika_maju, relative

from custom.movement import perpindahan, perputaran

butuhData = False

stop = True

pindah = [0, 0]

rotar = [0, 0, 0]

kanan = 0

maju = 0

batasGerak = 0

batasRotasi = 0

cepat_putar = 0

gerak = ""

port = "/dev/ttyACM0"

port1 = "/dev/ttyACM1"

portWINDOWS = "COM12"

portWindows = "COM14"

dataSebelumnya = {'perpindahan': [0, 0, 0], 'sudut': 0}

dataDariArduino = {'perpindahan': [0, 0, 0], 'sudut': 0}

ambilDataRotasi = False

async def sendRotateToArduino(val, catat):

kirim = dict([("wt", val)])

kirim = json.dumps(kirim)+"\n"

await ser.write_async(kirim.encode())

if catat == True:

# data Untuk skripsi

Print.toArduino(kirim)

await asyncio.sleep(0.1)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-5

async def sendMoveToArduino(x, y, spd, catat):

sudut = round(math.degrees(math.atan2(y, x)))

if sudut < 0:

sudut += 360

kirim = dict([('atan', sudut), ("speed", spd)])

kirim = json.dumps(kirim)+"\n"

await ser.write_async(kirim.encode())

if catat == True:

# data Untuk skripsi

Print.toArduino(kirim)

await asyncio.sleep(0.1)

async def main_loop():

global dataDariArduino, dataSebelumnya

global butuhData

global ser

global pindah

global ambilDataRotasi

try:

ser = aioserial.AioSerial(portWINDOWS, 9600)

except:

try:

ser = aioserial.AioSerial(portWindows, 9600)

except:

try:

ser = aioserial.AioSerial(port, 9600)

except:

ser = aioserial.AioSerial(port1, 9600)

time.sleep(0.1)

while True:

try:

await asyncio.sleep(0.1)

if ser.isOpen():

terima = await ser.readline_async()

if str(terima, 'utf-8').rstrip() != "noChange":

dataDariArduino = json.loads(terima)

# Data skripsi

# Print.fromArduino(dataDariArduino)

else:

dataDariArduino = dataSebelumnya

if butuhData == True:

kirimServer = kinematika_maju(dataDariArduino["perpindahan"])

# print("geraknya apa == ", gerak)

pindah[0] += kirimServer[0]

pindah[1] += kirimServer[1]

rotar[0] += dataDariArduino["perpindahan"][0]

rotar[1] += dataDariArduino["perpindahan"][1]

rotar[2] += dataDariArduino["perpindahan"][2]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-6

if dataDariArduino['sudut'] != 0:

kompas = 359 - (dataDariArduino['sudut'])

else:

kompas = 0

robot_kanan, robot_maju = relative(

kanan, maju, kompas)

# dataDariArduino

Print.fromArduino(dataDariArduino)

# print(f"R-ENC {rotar}, MOVE {pindah}, COMPASS {kompas}")

if gerak == "move":

await perpindahan(pindah[0], pindah[1],

robot_kanan, robot_maju, kanan, maju, 0.65)

if dataDariArduino != dataSebelumnya:

await Socket.emit('data', {'moved': kirimServer[0:2]})

if gerak == "rotate":

await perputaran(kompas, batasRotasi, 50)

if dataDariArduino != dataSebelumnya:

await Socket.emit('data', {'rotated': kompas})

# await Socket.emit('data', {'rotated': 0})

dataSebelumnya = dataDariArduino

# Data skripsi

# Print.toServer(

# {'moved': kirimServer[0:2], 'rotated': dataDariArduino["sudut"]})

except Exception as e:

await asyncio.sleep(0.1)

print(e)

Socket.start_background_task(main_loop)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-7

Program yang digunakan dalam mikrokontroler Arduino

#include <ArduinoJson.h>

// PIN MOTOR PWM

// di hardware sebaliknya L-R R-L

#define kiri_RPWM 7

#define kiri_LPWM 6

#define kanan_RPWM 11

#define kanan_LPWM 10

#define blk_RPWM 9

#define blk_LPWM 8

//PIN MOTOR ENABLE

#define kiri_L_EN 26

#define kiri_R_EN 27

#define kanan_L_EN 22

#define kanan_R_EN 23

#define blk_L_EN 25

#define blk_R_EN 24

//Define direction

#define CW 1

#define CCW 0

//Setup Rotary Encoder

volatile int motor1Count = 0; //KIRI

int encoder1A = 37;

int encoder1B = 36;

volatile int motor2Count = 0; //KANAN

int encoder2A = 35;

int encoder2B = 34;

volatile int motor3Count = 0; //BELAKANG

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-8

int encoder3A = 33;

int encoder3B = 32;

int currentPwm1 = 100;

int currentPwm2 = 100;

int currentPwm3 = 100;

// Konstanta kinematika

const float cos_p120 = -0.5;

const float cos_m120 = -0.5;

const float sin_p120 = 0.8660;

const float sin_m120 = -0.8660;

// kinematika roda

int kanan, kiri, blk;

int arah_x, arah_y, arah_putar;

//speedFactor

//kiri Input1 = (float)motor1Count / 25.f + 104 / 25.f;

//kanan Input2 = (float)motor2Count / 25.22 + 114.39 / 25.22.f ;

//blk Input3 = (float)motor3Count / 24.163 + 91.7 / 24.163

//JSON Parser

float satan = 0;

float speed = 0;

float wt = 0;

StaticJsonDocument<200> doc;

StaticJsonDocument<200> dataTerima;

StaticJsonDocument<200> dataKirim;

String json;

char data[] =

"{\"perpindahan\":[0,0,0],\"sudut\":0}";

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-9

int x = 0, y = 0;

// Data sebelum

int pindah1 = 0, pindah2 = 0, pindah3 = 0, berputar = 0;

//Set Sampling time

int interval = 1000;

long t0, t1;

// Variable Kompass GY-26

char valorbyte[8];

int graus = 0, theta = 0;

int contador = 0;

byte valor = 1;

// Kalibrasi Kompas

float kali[] = {0, 0};

//^^^ GLOBAL VARIABLE ^^^//

void setup()

{

// put your setup code here, to run once:

Serial.begin(9600);

Serial1.begin(9600);

Serial2.begin(9600);

// Setup Motor

pinMode(kiri_L_EN, OUTPUT);

pinMode(kiri_R_EN, OUTPUT);

pinMode(kiri_LPWM, OUTPUT);

pinMode(kiri_RPWM, OUTPUT);

pinMode(kanan_L_EN, OUTPUT);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-10

pinMode(kanan_R_EN, OUTPUT);

pinMode(kanan_LPWM, OUTPUT);

pinMode(kanan_RPWM, OUTPUT);

pinMode(blk_L_EN, OUTPUT);

pinMode(blk_R_EN, OUTPUT);

pinMode(blk_LPWM, OUTPUT);

pinMode(blk_RPWM, OUTPUT);

pinMode(encoder1A, INPUT);

pinMode(encoder1B, INPUT);

pinMode(encoder2A, INPUT);

pinMode(encoder2B, INPUT);

pinMode(encoder3A, INPUT);

pinMode(encoder3B, INPUT);

//Set Callback

attachInterrupt(digitalPinToInterrupt(encoder1A), motor1interuptA, CHANGE);

attachInterrupt(digitalPinToInterrupt(encoder1B), motor1interuptB, CHANGE);

attachInterrupt(digitalPinToInterrupt(encoder2A), motor2interuptA, CHANGE);

attachInterrupt(digitalPinToInterrupt(encoder2B), motor2interuptB, CHANGE);

attachInterrupt(digitalPinToInterrupt(encoder3A), motor3interuptA, CHANGE);

attachInterrupt(digitalPinToInterrupt(encoder3B), motor3interuptB, CHANGE);

Serial.println("Serial READY");

//time pertama

t0 = millis();

interval = 200;

}

/////////////////////////////////////////////////////////////////////////////////////////////LOOOOOOOP/////////////

void loop()

{

terima(); //data terima dari raspberry

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-11

gerak(satan, speed, wt); //kontrol pergerakan motor sesuai arahr

leitura(); //baca kompas, disimpan di variable

tukang_kirim(0); // kirim data setiap 0.25 detik, rotary enc dan kompas

}

//////CALLBACK FUNCTION//////////////////////////

////interupts

////

void motor1interuptA()

{

if (digitalRead(encoder1A) == digitalRead(encoder1B))

{

motor1Count--;

}

else

{

motor1Count++;

}

}

void motor1interuptB()

{

if (digitalRead(encoder1A) == digitalRead(encoder1B))

{

motor1Count++;

}

else

{

motor1Count--;

}

}

void motor2interuptA()

{

if (digitalRead(encoder2A) == digitalRead(encoder2B))

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-12

{

motor2Count--;

}

else

{

motor2Count++;

}

}

void motor2interuptB()

{

if (digitalRead(encoder2A) == digitalRead(encoder2B))

{

motor2Count++;

}

else

{

motor2Count--;

}

}

void motor3interuptA()

{

if (digitalRead(encoder3A) == digitalRead(encoder3B))

{

motor3Count--;

}

else

{

motor3Count++;

}

}

void motor3interuptB()

{

if (digitalRead(encoder3A) == digitalRead(encoder3B))

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-13

{

motor3Count++;

}

else

{

motor3Count--;

}

}

//////KINEMATIKA/////////////////////////////////

void inv_kinematika(long int degrees)

{

int cosatan = anglookuptable(degrees, 1);

int sinatan = anglookuptable(degrees, 0);

kiri = -0.33 * cosatan - 0.58 * sinatan;

kanan = -0.33 * cosatan + 0.58 * sinatan;

blk = 0.66 * cosatan;

}

void gerak(long int degrees, float speed, float wt)

{

inv_kinematika(degrees);

roda_kiri(round(kiri * speed + wt / 3));

roda_kanan(round(kanan * speed + wt / 3));

roda_blk(round(blk * speed + wt / 3));

}

/////////////////////////////// PWM RODA

void roda_kiri(int power1)

{

if (power1 >= -255 & power1 <= 255 & power1 != 0)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: PERANCANGAN SISTEM KOORDINASI ROBOT SEPAK BOLA …

L-14

{

digitalWrite(kiri_R_EN, 1);

digitalWrite(kiri_L_EN, 1);

if (power1 < 0) //CCW

{

analogWrite(kiri_RPWM, 0);

analogWrite(kiri_LPWM, -power1);

}

else if (power1 > 0) //CW

{

analogWrite(kiri_LPWM, 0);

analogWrite(kiri_RPWM, power1);

}

}

else if (power1 == 0)

{

digitalWrite(kiri_R_EN, 0);

digitalWrite(kiri_L_EN, 0);

analogWrite(kiri_RPWM, 0);

analogWrite(kiri_LPWM, 0);

}

}

void roda_kanan(int power2)

{

if (power2 >= -255 & power2 <= 255 & power2 != 0)

{

digitalWrite(kanan_L_EN, 1);

digitalWrite(kanan_R_EN, 1);

if (power2 < 0) //CCW

{

analogWrite(kanan_RPWM, 0);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI