PENGONTROL ROBOT SOCCER BERODA BERBASIS RASPBERRY PI 3 SEBAGAI PROTOTYPE ERSBI 2017

Ukuran: px
Mulai penontonan dengan halaman:

Download "PENGONTROL ROBOT SOCCER BERODA BERBASIS RASPBERRY PI 3 SEBAGAI PROTOTYPE ERSBI 2017"

Transkripsi

1 TUGAS AKHIR PENGONTROL ROBOT SOCCER BERODA BERBASIS RASPBERRY PI 3 SEBAGAI PROTOTYPE ERSBI 2017 Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh: FENDISH CAKRAWALA STIEFANUS NIM: JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017 i

2 FINAL PROJECT SMALL SIZE SOCCER ROBOT CONTROLLER ON RASPBERRY PI 3 AS ERSBI 2017 PROTOTYPE Presented as Partial Fulfillment of the Requierments To Obtain the Sarjana Teknik Degree In Electrical Engineering Study Program FENDISH CAKRAWALA STIEFANUS NIM: DEPARTMENT OF ELECTRICAL ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017 ii

3 iii

4 iv

5 v

6 HALAMAN PERSEMBAHAN DAN MOTTO HIDUP Motto Hidup: Jangan Pernah Menyerah, Jika Sudah Menyerah Maka Habislah Sudah Jangan Pernah Berkata Tidak Bisa, Mungkin Itu Hanyalah Alasan Untuk Malas Mencoba I Can Do All Things Through Christ Skripsi ini saya persembahkan untuk... Tuhan Yesus Juru selamatku Keluarga dan orang terkasih Teman-teman dari Teknik Elektro dan UKM Basket USD vi

7 vii

8 INTISARI Semakin berkembangnya teknologi robot di Indonesia maka diadakanlah Kontes Robot Indonesia (KRI) yang bertujuan untuk meningkatkan kreativitas dan kemampuan mahasiswa perguruan tinggi dalam pengembangan bidang teknologi robotika, salah satu cabang yang diperlombakan dalam Kontes Robot Indonesia adalah cabang Ekshibisi Robot Soccer Beroda Indonesia (ERSBI). Pada penelitian ini dibuat sebuah prototipe pengontrol robot soccer yang dapat dimanfaatkan oleh Teknik Elektro Sanata Dharma untuk mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia. Pengontrol robot soccer akan menggunakan Raspberry Pi 3 sebagai komputer mini yang akan mengontrol robot secara otomatis berdasarkan masukan video dari Webcam. Analisa masukan video menggunakan pengolahan citra dengan bantuan library python yaitu OpenCV untuk menentukan masing-masing objek berdasarkan warnanya. Hasil dari analisa tersebut adalah posisi x dan y dari masing-masing objek. Posisi x dan y dari masing-masing objek akan digunakan untuk mengendalikan pergerakan robot berdasarkan mode yang diinginkan. Mode pengendalian pergerakan robot terbagi menjadi tiga yaitu bersiap, berhenti, dan bermain. Mode bersiap robot akan bergerak ke posisi tertentu, mode bermain robot akan bergerak mengejar bola, menghindari lawan dengan metode Virtual Force Field (VFF), menendang bola ke gawang dan bertahan dari serangan lawan. Perintah dari sistem untuk robot akan dikirimkan dengan socket python. Sistem pengontrol robot soccer menggunakan Raspberry Pi 3 dengan pencahayaan ruangan yang cukup terang berhasil mendeteksi masing-masing objek berdasarkan warnanya dengan pengolah citra. Sistem berhasil mengendalikan pergerakan robot berdasarkan dengan mode yang diinginkan. Sistem berhasil mengontrol pergerakan robot pada mode bersiap dengan rata-rata error sebesar 1,16% untuk posisi x dan 2,73% untuk posisi y. Sistem berhasil mengontrol pergerakan robot pada mode bermain dengan rata-rata error sudut akhir sebesar 1,67%. Kata kunci: Robotika, Robot soccer, Raspberry Pi, Pengolahan citra, Python, VFF viii

9 ABSTRACT The robot technology develops in Indonesia, Kontes Robot Indonesia (KRI) is held to improve the creativity and ability of college students at robotics technology development. One of the divisions that contested in Kontes Robot Indonesia is Ekshibisi Robot Soccer Beroda Indonesia (ERSBI). This research will make a prototype of soccer robot controller that used by Sanata Dharma University to take part in Kontes Robot Indonesia at division of Ekshibisi Robot Soccer Beroda Indonesia. The soccer robot controller will use Raspberry Pi 3 as a mini computer that automatically control the robot based on video input from a Webcam. Analyze video input using image processing with the help of python library, that is OpenCV, to determine each object based on its color. The result of the analysis is the position of x and y of each object. The x position and y position of each object will be used to control the robot based on the desired mode. Control mode of robot movement divided into three modes, there are bersiap, berhenti, and bermain. The bersiap mode will controling robot to a certain position, the bermain mode will controling after the ball, avoiding the opponent using Virtual Force Field (VFF) method, kicking the ball into the goal and defend from the opponent's attack. Commands from the system for robots will execute with a python socket. The soccer robot control system using Raspberry Pi 3, with enough room lighting, successfully detects each object based on its color with the image processor. The system successfully controls the robot based on the desired mode. The system managed to control the robot in the bersiap mode with an average error of 1.16% for x position and 2.73% for the y position. The system managed to control robots in bermain mode with an average angle error of 1.67%. Keywords: Robotic, Soccer robot, Raspberry Pi, Image processing, Python ix

10 KATA PENGANTAR Puji syukur penulis hantarkan kepada Tuhan Yang Maha Esa, atas berkat karunia-nya sehingga penulis mampu menyelesaikan tugas akhir dengan judul Pengontrol Robot Soccer Beroda Berbasis Raspberry pi 3 sebagai Prototipe ERSBI 2017 dengan baik. Selama pembuatan tugas akhir ini, penulis menyadari adanya bantuan dan dukungan dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada: 1. Ir. Tjendro M. Kom. selaku dosen pembimbing yang memberikan pemikiran, saran, serta kritik yang membangun dalam menyelesaikan tugas akhir ini. 2. Seluruh dosen dan laboran Teknik Elektro yang telah memberikan ilmu serta dukungan kepada penulis saat perkuliahan. 3. Orang tua dan keluarga yang telah mendukung penulis semasa kuliah hingga menyelesaikan tugas akhir ini. 4. Inge Wijayanti Budiawan, George Setiawan kusuma, Edyanto, Andrian yang selalu memberikan motivasi semasa kuliah hingga menyelesaikan tugas akhir ini. 5. Teman-teman di Teknik Elektro, UKF Basket FST, serta UKM Basket USD yang telah membantu penulis menjadi orang yang lebih baik. Penulis menyadari bahwa tulisan ini masih memiliki kekurangan. Oleh karena itu, kritik dan saran dari semua pihak yang membangun sangat diharapkan. Semoga skripsi ini bisa berguna untuk semua pihak. Terima kasih. Yogyakarta, 22 Mei 2017 Penulis x

11 DAFTAR ISI HALAMAN JUDUL... i HALAMAN PERSETUJUAN... ii HALAMAN PENGESAHAN... iii PERNYATAAN KEASLIAN KARYA... iv HALAMAN PERSEMBAHAN DAN MOTTO HIDUP...v LEMBAR PERNYATAAN PERSETUJUAN... vi PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS... vii INTISARI... viii ABSTRACT... ix KATA PENGANTAR...x DAFTAR ISI... xi DAFTAR GAMBAR... xiii DAFTAR TABEL...xvi BAB I PENDAHULUAN Latar Belakang Tujuan dan Manfaat Penelitian Pembatasan Masalah Metodologi Penelitian...3 BAB II DASAR TEORI Raspberry Pi Raspberry Pi USB Webcam Python Tkinter Pengolahan Citra (Image Processing) OpenCV Vektor Virtual Force Field Method Python Socket BAB III RANCANGAN PENELITIAN Proses Kerja Sistem Perancangan Perangkat Keras Desain Coach Computer Pengontrol Robot Soccer Beroda Desain Tata Letak Kamera dan Lapangan xi

12 3.3. Perancangan Perangkat Lunak Diagram Alir Utama Subprogram Bersiap Subprogram Berhenti Subprogram Bermain Subprogram Menentukan Informasi Sudut Robot, serta Posisi Robot, Lawan dan Target Subprogram Tindakan Pengontrolan Bertahan Subprogram Tindakan Pengontrolan Menyerang Subprogram Kirim Perintah ke Robot BAB IV HASIL DAN PEMBAHASAN Perubahan Perancangan Perubahan Desain Tata Letak Kamera dan Lapangan Perubahan Mode Bermain Perubahan Subprogram Kirim Perintah ke Robot Hasil Implementasi Analisa Keberhasilan Sistem Pembahasan Perangkat Keras Pembahasan Perangkat Lunak BAB V KESIMPULAN DAN SARAN Kesimpulan Saran DAFTAR PUSTAKA LAMPIRAN... L1 xii

13 DAFTAR GAMBAR Gambar 1.1 Diagram blok perancangan...3 Gambar 2.1 Wujud dari Raspberry pi [3]...5 Gambar 2.2 USB Webcam yang digunakan [4]...6 Gambar 2.3 Contoh Tkinter Gambar 2.4 contoh penggunaan persamaan (2.1) Gambar 2.5 Contoh dari vektor Gambar 2.6 Konsep Virtual Force Field Gambar 2.7 contoh penggunaan socket pada Python [16] Gambar 3.1 Blok diagram cara kerja sistem Gambar 3.2 Tampilan yang didapat kamera dari atas lapangan [17] Gambar 3.3 Tampak samping kamera serta jangkauannya Gambar 3.4 Kerangka interface program utama Gambar Diagram alir utama Gambar Representasi nilai piksel pada lapangan Gambar Diagram alir subprogram bersiap Gambar Gambaran pergerakan saat bola di tengah lapangan Gambar Gambaran pergerakan saat bola berada di sebelah kiri gawang Gambar Gambaran pergerakan saat bola berada di sebelah kanan gawang Gambar Gambaran pergerakan saat bola berada di pojok kiri gawang Gambar Gambaran pergerakan saat bola berada di pojok kanan gawang Gambar 3.7 Diagram alir subprogram berhenti Gambar 3.8 Diagram alir Bermain Gambar 3.9 Diagram alir Bermain Gambar Diagram alir subprogram menentukan tujuan robot dan posisi lawan Gambar Gambaran arah sudut robot Gambar Diagram alir subprogram tindakan pengontrolan bertahan Gambar Gambaran algoritma bertahan Gambar Diagram alir subprogram tindakan pengontrolan menyerang Gambar Gambaran algoritma menyerang Gambar Gambaran hasil akhir algoritma VFF Gambar 3.13 Diagram alir subprogram kirim perintah ke robot Gambar 4.1 Perubahan desain tata letak kamera Gambar 4.2 Perubahan desain lapangan Gambar 4.3 Diagram alir Bermain xiii

14 Gambar 4.4 Tampilan GUI Gambar 4.5 Tampilan Geany Gambar 4.6 Tampilan pada Lapangan Hasil Analisis OpenCV Gambar 4.7 Tampilan Hasil Analisa dan Perintah yang Dikirim Gambar 4.8 Hasil analisa pada mode bersiap percobaan pertama Gambar 4.9 Hasil analisa pada mode bersiap percobaan kedua Gambar 4.10 Hasil analisa pada mode bersiap percobaan ketiga Gambar 4.11 Hasil analisa pada mode bersiap percobaan keempat Gambar 4.12 Hasil analisa pada mode bersiap percobaan kelima Gambar 4.13 Hasil analisa pada mode bermain percobaan pertama Gambar 4.14 Hasil analisa pada mode bermain percobaan kedua Gambar 4.15 Hasil analisa pada mode bermain percobaan ketiga Gambar 4.16 Hasil analisa pada mode bermain percobaan keempat Gambar 4.17 Hasil analisa pada mode bermain percobaan kelima Gambar 4.18 Hasil analisa pada mode bermain percobaan keenam Gambar 4.19 Hasil analisa pada mode bermain percobaan ketujuh Gambar 4.20 Hasil analisa video ketika pencahayaan ruangan terang Gambar 4.21 Hasil analisa video ketika pencahayaan ruangan redup Gambar 4.21 Hasil analisa video ketika pencahayaan ruangan gelap Gambar 4.22 Sistem coach computer lengkap dengan alat pembantunya Gambar 4.23 Lapangan dan tata letak kamera Gambar 4.24 Listing program pemanggilan modul serta inisialisasi variabel Gambar 4.25 Listing program pengaturan komunikasi dengan robot Gambar 4.26 Listing program tampilan antarmuka Gambar 4.27 Listing program fungsi untuk tombol pada antarmuka Gambar 4.28 Listing program tampilan antarmuka Gambar 4.29 Listing program penentuan posisi dari objek Gambar 4.30 Listing program perubahan format data posisi Gambar 4.31 Listing program penentuan setpoint pada mode bersiap Gambar 4.32 Listing program penentuan setpoint pada mode bermain_ Gambar 4.33 Listing program penentuan setpoint pada mode bermain_ Gambar 4.34 Listing program untuk koreksi sudut saat menghindari lawan Gambar 4.35 Penentuan jarak antara robot dengan lawan atau target Gambar 4.36 Listing program untuk pengontrolan gerak robot Gambar 4.37 Listing program untuk pengontrolan robot menendang bola xiv

15 Gambar 4.38 Listing program untuk perubahan format data sudut dan radius Gambar 4.39 Listing program untuk mengubah data menjadi string lalu dikirim Gambar 4.40 Listing program untuk perpindahan mode bermain xv

16 DAFTAR TABEL Tabel 2.1 Penggunaan bilangan dalam Python...7 Tabel 2.2 Macam-macam operator dalam Python...8 Tabel 2.3 Daftar komponen pada Tkinter Tabel 2.4 Konstanta Keluarga (Family) Protokol Tabel 2.5 Konstanta Type Socket Tabel 3.1 Daftar kode untuk informasi dan perintah kepada robot Tabel 3.2 Format pengiriman informasi dan perintah kepada robot Tabel 3.3 Format pengiriman koreksi sudut belokan robot Tabel 4.1 Format pengiriman informasi kepada robot Tabel 4.2 Format pengiriman perintah kepada robot Tabel 4.3 Format pengiriman koreksi sudut belokan robot Tabel 4.4 Format informasi yang diterima oleh sistem Tabel 4.5 Data dari pengujian pertama pada mode bersiap Tabel 4.6 Error posisi dari percobaan eksekusi mode bersiap Tabel 4.7 Data dari pengujian pertama pada mode bermain Tabel 4.8 Error sudut dari percobaan eksekusi mode bermain Tabel 6.1 Data dari pengujian kedua pada mode bersiap percobaan pertama... L2 Tabel 6.2 Data dari pengujian kedua pada mode bersiap percobaan kedua... L3 Tabel 6.3 Data dari pengujian kedua pada mode bersiap percobaan ketiga... L4 Tabel 6.4 Data pengujian kedua pada mode bermain percobaan pertama... L5 Tabel 6.5 Data pengujian kedua pada mode bermain percobaan kedua... L6 xvi

17 BAB I PENDAHULUAN 1.1. Latar Belakang Semakin berkembangnya teknologi robot di Indonesia maka diadakanlah KRI yaitu Kontes Robot Indonesia yang bertujuan untuk menumbuh kembangkan, meningkatkan kreativitas, dan kepekaan mahasiswa perguruan tinggi dalam pengembangan bidang teknologi robotika, selain itu juga meningkatkan pengetahuan tentang sensor dan teknik kendali yang mutakhir pada mahasiswa perguruan tinggi, serta membudayakan iklim kompetitif yang positif di lingkungan perguruan tinggi [1]. Salah satu cabang yang diperlombakan dalam Kontes Robot Indonesia adalah cabang ERSBI yaitu Ekshibisi Robot Soccer Beroda Indonesia. Ekshibisi Robot Soccer Beroda Indonesia merupakan divisi terbaru pada Kontes Robot Indonesia yang mulai diperkenalkan pada ekshibisi di KRI 2016 Tingkat Nasional. Aturan kompetisi mengacu pada KRSBI (lapangan, permainan, game controller). Robot harus memiliki kamera untuk mendeteksi bola, dengan jumlah dan tipe yang tidak dibatasi. Robot dapat menggunakan komputer luar sebagai pengendali [2]. Dengan mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia, maka nama Universitas Sanata Dharma khususnya program studi Teknik Elektro akan semakin baik di tingkat nasional. Selain itu dengan mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia, maka kemampuan mahasiswa dari program studi Teknik Elektro dalam bidang sensor, teknik kendali, serta teknologi robot akan meningkat. Berdasarkan permasalahan tersebut, pada penelitian ini dibuat sebuah prototipe pengontrol robot soccer yang dapat dimanfaatkan oleh Teknik Elektro Sanata Dharma untuk mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia. Pengontrolannya menurut peraturan liga robot soccer beroda internasional dengan cara membuat komputer yang dapat mengontrol robot untuk mengejar, menggiring, dan menendang bola secara otomatis, serta dilengkapi sebuah kamera yang cakupannya dapat menangkap video dari keseluruhan lapangan permainan bola. Pengontrolan dapat 1

18 2 dilakukan dengan berbagai macam cara baik Fuzy maupun Analisis Vektor dan lain-lain. Penelitian ini akan menggunakan Raspberry Pi 3 sebagai komputer mini yang akan mengontrol robot secara otomatis serta Webcam sebagai pengambil video untuk menentukan posisi robot dengan musuh, bola, dan gawang yang dituju. Robot diharapkan mampu mengejar bola, menggiring bola melewati musuh, mencapai jarak tertentu dari gawang dan menendang bola Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah: 1. Menciptakan suatu pengontrol robot soccer beroda yang menjadi prototipe untuk mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia. Manfaat dari penelitian ini adalah: 1. Untuk masyarakat: Menyediakan sebuah bahan acuan, pedoman, dan rujukan untuk pengembangan pembuatan prototipe pengontrol robot soccer beroda bagi masyarakat luas. 2. Untuk Universitas Sanata Dharma: Menyediakan prototipe yang nantinya digunakan sebagai bahan acuan, pedoman, dan rujukan untuk program studi Teknik Elektro Universitas Sanata Dharma dalam mengikuti Kontes Robot Indonesia dalam bidang Ekshibisi Robot Soccer Beroda Indonesia Pembatasan Masalah Agar tugas akhir ini bisa mengarah pada tujuan dan untuk menghindari terlalu kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah yang sesuai dengan judul dari Tugas Akhir ini. Adapun batasan masalah yang dimaksud adalah: 1. Menggunakan Raspberry Pi 3 sebagai komputer mini yang mengolah video untuk mengontrol robot mengejar dan menggiring bola serta menghindari lawan. 2. Kamera yang digunakan adalah Raspberry Pi USB Camera. 3. Bahasa pemrograman yang digunakan adalah bahasa pemrograman Python. 4. Komunikasi Wireless dengan robot menggunakan Python Socket.

19 3 5. Luas lapangan keseluruhan adalah sekitar 6m x 4m. 6. Kamera digantungkan pada tiang setinggi 3m sampai dengan 4m dan diletakkan tepat di tengah lapangan. 7. Bola yang digunakan adalah bola tenis berwarna orange. 8. Warna dari gawang adalah kuning. 9. Ukuran dari robot adalah 40cm (lebar) dan 30cm (tinggi). Terdapat tanda tim di atasnya 1.4. Metodologi Penelitian Berdasarkan pada tujuan yang ingin dicapai, metode-metode yang digunakan dalam penyusunan tugas akhir ini adalah: 1. Studi literatur, yaitu dengan cara mendapatkan data dengan membaca bukubuku dan jurnal-jurnal yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini. 2. Perancangan subsistem hardware dan software. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai faktor-faktor permasalahan dan kebutuhan yang telah ditentukan. Bagian yang dibuat adalah bagian coach computer yang akan menjadi kontroler bagi robot, pada coach computer akan terdapat monitor, kamera, beserta keyboard dan mouse. Di dalam coach computer akan terdapat program penganalisis video yang akan diproses dengan pengolahan citra sehingga didapatkan posisi objek. Lalu hasil dari pengolahan citra tersebut akan dipakai untuk menghindari lawan saat mengejar atau menggiring bola menuju gawang. Untuk mengirimkan perintah ke robot menggunakan modem wireless. U U TX TX Komunikasi wireless Coach Computer Robot Mouse dan Keyboard USB Webcam Monitor Gambar 1.1 Diagram blok perancangan

20 4 3. Pembuatan subsistem hardware dan software. Tahap ini bertujuan untuk membuat model yang sesuai dengan yang telah dirancang pada tahap sebelumnya. 4. Proses pengambilan data. Data yang diambil adalah informasi atau perintah yang akan dikirim ke robot yaitu nilai posisi x dan y dari objek (gawang, robot, lawan, kiper lawan, tujuan tertentu dan bola), serta koreksi sudut untuk melakukan menghindari lawan. Nilai posisi x dan y didapatkan dari pengolahan citra video masukan dari USB Camera, sedangkan nilai koreksi sudut didapatkan dari analisis vektor berdasarkan nilai x dan y yang telah didapatkan. 5. Analisis dan penyimpulan hasil percobaan. Analisis data dilakukan dengan melihat kemampuan coach computer untuk mengolah masukan video dan dari hasil pengolahan tersebut sudah mampu mengontrol robot untuk mengejar dan menggiring bola serta untuk menghindari lawan sudah sesuai dengan dasar teori. Selain itu juga menganalisis data yang dikirimkan sudah bisa diterima oleh robot sesuai dengan dasar teori. Setelah itu menyimpulkan berdasarkan data yang didapat apakah coach computer sudah berhasil mengendalikan robot soccer beroda dengan baik.

21 BAB II DASAR TEORI 2.1. Raspberry Pi Pada gambar 2.1 Raspberry Pi adalah komputer mini seukuran kartu kredit yang dapat terhubung dengan monitor komputer maupun TV, menggunakan mouse dan keyboard standard. Raspberry Pi adalah suatu perangkat mini yang memungkinkan orang dari berbagai usia untuk belajar lebih dalam tentang dunia komputer dan untuk belajar tentang bagaimana caranya membuat program menggunakan bahasa seperti Python dan Scratch [3]. Gambar 2.1 Wujud dari Raspberry pi [3] Pada Raspberry pi terdapat beberapa bagian seperti CPU sebagai pemroses utama, GPU untuk memproses tampilan, RAM sebagai memori penyimpan proses yang sedang berjalan, serta port sebagai penerima masukan ataupun sebagai keluaran dari Raspberry pi Raspberry Pi 3 Raspberry Pi memiliki beberapa seri. Seri yang akan digunakan dalam penelitian kali ini adalah Raspberry Pi 3 model B. Raspberry Pi 3 model B merupakan seri terbaru dari Raspberry Pi. Berikut ini adalah spesifikasi dari Raspberry Pi 3 model B: a. CPU : 4x ARM Cortex-A53, 1.2GHz b. GPU : Broadcom VideoCore IV c. RAM : 1GB LPDDR2 (900 MHz) d. Networking : 10/100 Ethernet, 2.4GHz n wireless e. Bluetooth : Bluetooth 4.1 Classic, Bluetooth Low Energy f. Ports : HDMI, 3.5mm analogue audio-video jack, 4x USB 2.0, Ethernet. 5

22 USB Webcam Webcam merupakan singkatan dari web dan camera. Webcam adalah sebutan untuk kamera yang mengambil gambar pada saat itu juga (Real time) dan gambarnya dapat dilihat atau ditampilkan secara langsung melalui internet, melalui berbagai macam aplikasi pesan singkat seperti Yahoo Messenger, AOL Instant Messenger (AIM), Windows Live Messenger, dan Skype. Pada gambar 2.2 Webcam adalah sebuah kamera video digital kecil yang dihubungkan ke komputer biasanya melalui USB atau PORTCOM. Pengertian lain dari Webcam adalah sebuah perangkat berupa kamera yang digunakan sebagai penginput citra atau gambar yang dikendalikan oleh sebuah komputer atau jaringan komputer. Untuk kamera yang memiliki lebar lensa sebesar 6mm maka besar sudut view-nya adalah 65 0, sedangkan kamera dengan lebar lensa sebesar 4mm maka besar sudut view-nya adalah 80 0 [4]. Gambar 2.2 USB Webcam yang digunakan [4] 2.4. Python 3 Bahasa pemrograman Python adalah salah satu contoh dari beberapa high-level language, contoh lainnya adalah C++, PHP, Pascal, dan Java. Selain high-level language ada juga low-level language yang sering kali disebut dengan bahasa mesin atau assembly languages. Kebanyakan program dibuat dengan high-level language. Dengan menggunakan highlevel language, program akan lebih mudah dibuat karena bahasa pemrograman tersebut lebih mudah dipahami jika dibandingkan dengan low-level language. Selain itu, high-level

23 7 language lebih portabel artinya bahasa pemrograman tersebut dapat berjalan pada komputer yang berbeda dengan sedikit atau dengan tanpa penyesuaian [5]. Berikut ini adalah beberapa elemen dalam bahasa pemrograman Python [6]: a. Input Input berarti membaca sesuatu dari I/O unit, misalkan keyboard. Pada bahasa Python untuk menerima masukan dari pengguna (user) dapat menggunakan metode input(). Contoh: >>> a=input() 5 >>> b=input() 4 >>> z=a+b >>> z '54' b. Data Data dapat berupa konstanta, variabel, dan struktur yang berisi bilangan, kalimat, ataupun alamat memori. Tabel 2.1 Penggunaan bilangan dalam Python Kategori Contoh Integer normal (long pada C) 123, -123, 0 Integer panjang (panjang tanpa batas) L Floating point(double pada C) e10 12E3 12e-3 Bilangan oktal 0123 Bilangan heksadesimal 0x123 0xA Bilangan kompleks 1+2j Untuk bilangan yang berjenis panjang maka ditambahkan l atau L di belakang bilangan tersebut. Untuk bilangan yang berjenis floating point maka digunakan e atau E sebagai tanda eksponensial. Untuk bilangan yang berjenis oktal dan heksadesimal masingmasing diawali dengan 0 dan 0x, sehingga jika ingin menulis angka 1 desimal tidak boleh dengan cara 01, karena 01 artinya angka 1 oktal. Untuk bilangan kompleks dengan memecahnya menjadi bagian real dan imajiner dan diakhiri dengan j atau J.

24 8 c. Operator Operator akan mengubah suatu nilai menjadi nilai lain, mengombinasikan nilai, dan membandingkan nilai. Yang termasuk operator diantaranya adalah operator Aritmetika dan Assignment. Tabel 2.2 Macam-macam operator dalam Python Operator Definisi Contoh + Penjumlahan a = b + c - Pengurangan a = b - c * Perkalian a = b * c / Pembagian a = b / c % Sisa pembagian a = b % c - Negasi a = - b ** Pemangkatan a = b ** c >> Bitwise shiftright a = b + c << Bitwise shiftleft a = b + c ~ Bitwise komplemen a = ~ b Bitwise or a = b c & Bitwise and a = b && c ^ Bitwise xor a = b ^ c >, >= Perbandingan lebih besar dan lebih besar sama dengan a > b, a >= b <, <= Perbandingan lebih kecil dan lebih kecil sama dengan a < b, a <= b == Perbandingan sama dengan a == b!=, <> Perbandingan tidak sama dengan a <> b, a!= b d. Output Output berarti menuliskan informasi ke layar, disk, atau salah satu I/O unit. Untuk menuliskan output program, pada Python 3 menggunakan fungsi print() untuk kalimat yang ingin ditulis diberikan tanda kutip ganda( ) di awal dan di akhir kalimat. Contoh: >>> print("hello World") Hello World

25 9 e. Kondisional Kondisional berhubungan dengan sejumlah perintah yang akan dijalankan jika kondisi tertentu dipenuhi. Untuk melakukan hal tersebut dapat digunakan if, if else. Contoh: if x==1: print( nilai x adalah 1 ) if x==1: print( nilai x adalah 1 ) else: print( nilai x tidak sama dengan satu ) f. Loop Loop berhubungan dengan sejumlah perintah yang akan dikerjakan beberapa kali, selama beberapa kondisi dipenuhi atau sampai suatu kondisi terpenuhi. Python menggunakan pernyataan for dan while untuk melakukan loop(pengulangan). Contoh: for i in range (10): #mengulangi proses sebanyak 10 kali print( saya adalah anak yang baik ) x=int(input()) while 1: x= x-1 print (x) if x==3 : break g. Modul NumPy NumPy adalah paket dasar untuk perhitungan scientific pada bahasa pemrograman Python, di dalam NumPy terdapat: 1. Perhitungan N-dimensional array 2. Kemampuan untuk mengintegrasi kode C/C++ dan Fortran 3. Operasi aljabar linier, transformasi fourier, dan angka acak 4. Contoh penggunaan NumPy Contoh: Import numpy as np Numpy.array([3, 5, 7, 9, 11])

26 10 h. Subroutine Subroutine adalah sekumpulan perintah yang bisa dijalankan dari setiap tempat dalam program dengan cara memanggil namanya. Python menyebutnya fungsi atau metode. Tata cara penulisan fungsi atau metode di Python yaitu dengan menggunakan pernyataan def nama_fungsi(). Contoh: def mode1(): x=int(input()) while 1: x= x-1 print (x) 2.5. Tkinter Tkinter adalah pustaka standard yang dimiliki oleh Python. Kombinasi Python dan Tkinter ini menghasilkan sebuah tampilan grafik yang mudah untuk dibuat sekaligus menarik. Tkinter menyediakan berbagai komponen grafis diantaranya tombol, label, kotak teks, yang mana komponen-komponen ini sangatlah sering digunakan dalam aplikasi GUI. Komponen Tkinter ini sering disebut widget [7]. Modul Tkinter berisi berbagai kelas dan komponen yang diperlukan untuk membangun sebuah aplikasi GUI. Untuk menggunakan komponen Tkinter maka harus memanggilnya terlebih dahulu. Cara untuk memanggil modul Tkinter adalah sebagai berikut: import Tkinter Bisa juga dengan memanggil semua metode, kelas, dan atribut dari modul Tkinter dengan menggunakan cara seperti berikut: from Tkinter import * Setiap aplikasi GUI seharusnya memiliki sebuah jendela utama (root window), yang dapat berisi berbagai komponen yang diperlukan dalam aplikasi yang akan dibuat. Untuk membuat jendela utama dari suatu aplikasi maka digunakan cara seperti berikut. top = Tkinter.Tk() Jika menggunakan pernyataan from-import untuk memanggil modul Tkinter, maka penulisannya adalah sebagai berikut. top = Tk()

27 11 Gambar 2.3 Contoh Tkinter Dengan menggunakan Tkinter, dapat ditambahkan beberapa komponen pada aplikasi yang dibuat. Komponen ini bisa berdiri sendiri atau dapat diisi komponen lain (container). Komponen yang berdiri sendiri merupakan komponen yang tidak dapat diisi oleh komponen lain, misalkan tombol, checkbox, dan label. Komponen container merupakan komponen yang bisa berisi atau ditempeli oleh komponen lain seperti frame dan window. Gambar 2.3 adalah contoh dari penggunaan Tkinter. Komponen Frame Label Frame Canvas Button Radio Button Scale Text Tabel 2.3 Daftar komponen pada Tkinter Deskripsi Komponen Frame berfungsi sebagai kontainer bagi komponen lain. Komponen Label Frame sama seperti Frame namun terdapat keterangan di atasnya. Komponen Canvas digunakan untuk menggambar bentuk seperti garis, lingkaran, poligon, dan kotak Komponen Button berfungsi untuk menampilkan sebuah tombol. Komponen Radio Button berfungsi menampilkan sejumlah pilihan dalam bentuk tombol radio. Komponen Scale berfungsi sebagai menampilkan skala geser Komponen Text berfungsi sebagai penampil teks dalam multi baris

28 Pengolahan Citra (Image Processing) Saat ini istilah citra sangat populer. Banyak peralatan elektronik yang menghasilkan citra seperti camera, scanner, dan mikroskop digital. Bukan hanya perangkat keras namun banyak juga perangkat lunak untuk mengolah citra seperti Adobe Photoshop. Lalu menurut Jain (1989) pengertian pengolahan citra adalah pemrosesan gambar berdimensi dua melalui komputer digital [8]. Secara fisis atau visual, sebuah citra adalah representasi dari informasi yang terkandung di dalamnya sehingga mata manusia dapat menganalisis dan menginterpretasikan informasi tersebut sesuai dengan tujuan yang diharapkan [9]. Kandungan informasi citra dapat dibagi menjadi dua yaitu informasi dasar dan informasi yang bersifat abstrak. Informasi dasar adalah informasi yang dapat diolah secara langsung tanpa membutuhkan bantuan tambahan pengetahuan khusus. Informasi dasar ini berupa warna (color), bentuk (shape) dan tekstur (texture). Informasi abstrak adalah informasi yang tidak secara langsung dapat diolah kecuali dengan tambahan pengetahuan khusus. Contoh informasi yang bersifat abstrak adalah ekspresi wajah di dalam sebuah citra yang dapat menggambarkan situasi perasaan seseorang (keadaan senang, sedih, marah, dan lainnya). Secara matematis, sebuah citra dapat didefinisikan dengan fungsi dua dimensi f(x,y) dimana x dan y adalah koordinat spasial (plane) dan f adalah nilai intensitas warna pada koordinat x dan y. Nilai f, x, dan y semuanya adalah nilai berhingga. Bila nilai-nilai ini bersifat kontinu maka citranya disebut citra analog. Bila nilai-nilai ini bersifat diskret maka citranya disebut citra digital. Citra digital umumnya dua dimensi (2D) yang dinyatakan dalam bentuk matriks dengan jumlah elemen berhingga. Setiap elemen matriks citra memiliki posisi koordinat x dan y tertentu dan juga memiliki nilai. Secara umum, citra digital merupakan representasi piksel-piksel dalam ruang 2D yang dinyatakan dalam matriks berukuran N baris dan M kolom seperti pada persamaan (2.1). Setiap elemen matriks disebut piksel (picture element, image element, atau pel). Nilai setiap piksel f pada posisi koordinat x dan y merepresentasikan intensitas warna dan dapat dikodekan dalam 24 bit untuk citra berwarna (dengan tiga komponen warna RGB: R = Red, G = Green, dan B = Blue), 8 bit untuk citra gray-level atau 1 bit untuk citra biner. f(0,0) f(0, M) F = [f(x, y)] = [ : : ] (2.1) f(n, 1) f(n, M)

29 13 X 1 y 1 f(x 1,y 1) Gambar 2.4 contoh penggunaan persamaan (2.1) Video adalah sekumpulan citra yang direkam atau diakuisisi selama satu satuan waktu tertentu. Citra di dalam video lebih dikenal dengan istilah frame atau frame citra. Kecepatan standard perekaman dan visualisasi video disesuaikan dengan kecepatan mata manusia dalam memahami dan menganalisis informasi yang terkandung di dalam setiap frame. Mengingat bahwa citra adalah bagian dari video, maka setiap teori pengolahan citra digital juga merupakan teori pengolahan video digital. Secara visual, video adalah sederetan frame citra yang terekam oleh sensor dalam satu satuan waktu tertentu. Normalnya, kecepatan perekaman sebuah video adalah antara 25 sampai 30 citra per detik. Kecepatan ini disesuaikan dengan kecepatan normal visual mata manusia dalam menganalisis dan memahami pergerakan informasi yang terkandung dalam sederetan citra tersebut. Ditinjau dari sudut pandang elektronika analog, video adalah sinyal-sinyal analog dengan amplitudo (yang merepresentasikan intensitas warna cahaya) yang dapat bervariasi dan berubah secara kontinu menurut fungsi spasio-temporal (spasial dan waktu). Secara matematis, sinyal video analog merupakan fungsi 1-D f(t), dan setelah melalui proses sampling dan kuantisasi maka fungsi ini menjadi fungsi diskret f (n, m, t), di mana n = {1, 2,..., N} menyatakan baris ke-n citra dan m = {1, 2,..., M} menyatakan titik sampel ke-m (atau yang lebih dikenal sebagai piksel ke-m dalam baris ke-n citra), t menyatakan frame citra pada waktu t sedangkan f menyatakan nilai intensitas warna piksel pada posisi (n, m) dari frame citra pada waktu t.

30 14 Menurut Gonzalez dan Woods (2002) ruang warna adalah suatu spesifikasi sistem koordinat dan suatu sub ruang dalam sistem tersebut dengan setiap warna dinyatakan dengan satu titik di dalamnya. Tujuan dibentuknya ruang warna adalah untuk memfasilitasi spesifikasi warna dalam bentuk standar. Ada berbagai macam ruang warna contohnya adalah RGB dan HSV [8]. Ruang warna HSV mengacu pada hue, saturation, and value (value identik dengan luminance), dengan ide merepresentasikan nuansa warna dalam koordinat silindris 3-D. Model HSV disebut hexcone model [9]. Persamaan yang digunakan untuk konversi dari ruang RGB ke HSV adalah seperti berikut: V = Maks (2.2) Tidak terdefinisi jika Maks = Min G B ( ) x A jika Maks = R Maks Min H = B R ( + 2) x A jika Maks = G Maks Min R G { ( + 4) x A jika Maks = B Maks Min (2.3) S = { 0 jika Maks = Min (Maks Min) jika lainnya (2.4) Dengan R = Red, G = Green, B = Blue, Maks = max[r, G, B] dan Min = min[r, G, B] dan A = 60 o jika dalam derajat dan A = π bila dalam radian OpenCV OpenCV (Open Computer Vision) adalah sebuah library yang sudah sangat familier pada operasi Pengolahan Citra Computer Vision. Computer Vision itu sendiri adalah cabang dari Bidang Ilmu Pengolahan Citra (Image Processing) yang memungkinkan komputer dapat melihat seperti manusia. Dengan vision tersebut komputer dapat mengambil keputusan, melakukan aksi, dan mengenali terhadap suatu objek. Beberapa pengimplementasian dari Computer Vision adalah Face Recognition, Face Detection, Face or Object Tracking, dan Road Tracking [10]. Berikut ini adalah beberapa contoh function yang terdapat pada library OpenCV [11]:

31 15 a. Mengambil video sebagai input Untuk mengambil video, function yang dibutuhkan adalah VideoCapture(). Parameter yang diisi dalam function tersebut adalah device index atau nama file video tersebut. Device index sebagai nomor untuk memilih kamera mana yang digunakan, jika hanya menggunakan satu kamera maka cukup mengisi parameter tersebut dengan angka 0. Contoh: Import cv2 vid = cv2.videocapture(0) while(true): # Mengambil video per frame ret, frame = vid.read() # Mengambil video dalam mode hitam-putih abu = cv2.cvtcolor(frame, cv2.color_bgr2gray) # Menampilkan frame yang dihasilkan cv2.imshow( frame, abu) if cv2.waitkey(1) & 0Xff == ord( q ):break # menampilkan hasil akhir ketika semua proses telah selesai vid.release() cv2.destroyallwindows() b. Mendeteksi objek berdasarkan warna Untuk mendeteksi suatu objek, manusia dapat melakukan hal tersebut dengan cara mengenali bentuk objek ataupun warna objek tersebut. Begitu juga komputer, dengan computer vision maka komputer bisa mendeteksi suatu objek berdasarkan bentuknya (Edge Detection) atau warnanya (Color Detection). Jika mendeteksi suatu objek berdasarkan warna, opencv dapat menggunakan functioncv2.cvtcolor() untuk mengonversi pemilihan warna berdasarkan metode HSV (Hue Saturation Value) dari BGR (Blue Green Red), pendeteksian warna dengan metode HSV lebih mudah dibandingkan dengan BGR [12]. Selain itu digunakan juga cv2.inrange() untuk menentukan warna apa yang ingin dideteksi. Pendeteksian warna dengan HSV menggunakan perhitungan array sehingga dibutuhkan modul NumPy sebagai bantuan.

32 16 Contoh: import numpy as np import cv2 vid = cv2.videocapture(0) while(1): ret, frame = vid.read() #konversi BGR ke HSV hsv = cv2.cvtcolor(frame, cv2.color_bgr2hsv) #mendefinisikan warna yang dipilih batas_bawah = np.array([110,50,50]) batas_atas = np.array([130,255,255]) #mendeteksi warna yang diinginkan mask = cv2.inrange(hsv, batas_bawah, batas_atas) c. Mendeteksi pergerakan objek dengan camshift Untuk melakukan tracker (mendeteksi pergerakan) suatu objek, OpenCV menyediakan suatu function yaitu camshift. Metode ini mendeteksi objek berdasarkan warna dan juga memperhitungkan perubahan warna yang terjadi ketika objek bergerak. Hal tersebut akan mengakibatkan active windows yang mendeteksi objek tersebut berubah besarnya sesuai dengan pergerakan objek tersebut. Contoh pemanggilan fungsi CamShift(): ret, track_window = cv2.camshift(objek yang ingin dideteksi, batas active window, keadaan tracker berhenti) 2.8. Vektor Sebuah besaran yang memiliki magnitudo dan arah, disebut besaran vektor. Besaran lain yang merupakan vektor adalah perpindahan, gaya, dan momentum. Akan tetapi, banyak juga besaran yang tidak memiliki arah, seperti massa, waktu, dan suhu. Besaran semacam ini dapat dinyatakan secara lengkap dengan angka dan satuan, dan disebut dengan besaran skalar [13]. Pada gambar 2.5 menunjukkan contoh dari sebuah vektor.

33 17 Gambar 2.5 Contoh dari vektor a. Untuk menentukan besar vektor dari suatu objek berdasarkan posisi (x,y): F = x 2 + y 2 (2.5) b. Untuk menentukan besar sudut dari objek tersebut dengan sumbu x: α = arc tan y x (2.6) c. Untuk menentukan selisih sudut kedua objek: d. Untuk menghitung besar resultan kedua gaya: θ = α 1 α 2 ; untuk α 1 > α 2 (2.7) R = F F F 1 F 2 cos (F 1, F 2 ) (2.8) e. Untuk menghitung arah dari resultan kedua gaya: σ = arc sin F 1 sin(180 θ) R f. Untuk menghitung besar vektor perpindahan: (2.9) F = (x 2 + x 1 ) 2 + (y 2 + y 1 ) 2 (2.10) 2.9. Virtual Force Field Method Metode Virtual Force Field dikembangkan oleh Koren dan Borenstein pada tahun Metode ini dapat diartikan sebagai perpaduan dari metode Certain grids dan Potential Fields Method. Sesuai dengan gambar 2.6 metode ini didesain untuk menghindari rintangan secara Real-Time. Sebuah window virtual melingkupi sebuah region yang bergerak bersamaan dengan robot secara tidak terlihat, window virtual tersebut disebut dengan active window dan melingkupi sebuah area dari batas tertentu. Pusat dari window tersebut berada pada titik tengah dari robot [14].

34 18 Active window Gambar 2.6 Konsep Virtual Force Field Jika lawan berada dalam area active window maka program nantinya akan menghitung besar resultan antara dinding dan lawan terhadap robot [15]. Berikut ini adalah langkahlangkahnya: a. Perhitungan besar vektor antara robot dengan lawan atau target menggunakan persamaan 2.10, dimana: F = Besar vektor antara robot dengan lawan atau target x 1 = Nilai X dari robot y 1 = Nilai Y dari robot x 2 = Nilai X dari lawan atau target y 2 = Nilai Y dari lawan atau target b. Menghitung besar sudut antara robot dengan lawan dan robot dengan target menggunakan persamaan 2.2 Keterangan: α = arc tan ( y 2 y 1 x 2 x 1 ) (2.11) α = Besar sudut antara robot dengan lawan atau target x 1 = Nilai X dari robot y 1 = Nilai Y dari robot x 2 = Nilai X dari lawan atau target y 2 = Nilai Y dari lawan atau target

35 19 c. Menghitung selisih antar sudut robot dengan lawan dan sudut robot dengan target menggunakan persamaan 2.7. dimana: θ = Besar jumlah sudut antara robot dengan lawan dan sudut robot dengan target α 1 = Besar sudut antara robot dengan lawan α 2 = Beasr sudut antara robot dengan target d. Menghitung besar resultan dari robot dengan lawan dan robot dengan target menggunakan persamaan 2.8. dimana: R = Besar resultan dari robot dengan lawan dan robot dengan bola F 1 = Besar vektor antara robot dengan lawan F 2 = Beasr vektor antara robot dengan target e. Menghitung besar sudut resultan dari robot dengan lawan dan robot dengan target menggunakan persamaan 2.9. dimana: σ = Besar sudut resultan dari robot dengan lawan dan robot dengan bola F 1 = Besar vektor antara robot dengan lawan R = Besar resultan dari robot dengan lawan dan robot dengan bola θ = Besar selisih sudut antara robot dengan lawan dan sudut robot dengan target Python Socket Python hanya menggunakan dua domain komunikasi, yaitu UNIX (AF_UNIX) dan Internet (AF_INET) domain. Pengalamatan pada UNIX domain direpresentasikan sebagai string, dinamakan dalam lokal path: contoh /tmp/sock. Sedangkan pengalamatan Internet domain direpresentasikan sebagai tuple(host,port), dimana host merupakan string yang merepresentasikan nama host internet yang sah (hostname), misalnya: darkstar.drslump.net atau berupa IP address dalam notasi dotted decimal, misalnya: Dan port

36 20 merupakan nomor port yang sah antara 1 sampai Tetapi dalam keluarga UNIX penggunaan port di bawah 1024 memerlukan akses root privileges. Sebelum menggunakan modul socket dalam Python, modul socket harus terlebih dahulu diimport [16]. Pada gambar 2.7 menunjukkan contohnya: Gambar 2.7 contoh penggunaan socket pada Python [16] Socket dibuat melalui pemanggilan socket(family, type[protokol]). Untuk lebih jelasnya dapat dilihat pada tabel 1 dan tabel 2 berikut ini: Tabel 2.4 Konstanta Keluarga (Family) Protokol Family Penjelasan AF_UNIX Unix Domain Protocol AF_INET IPv4 Protocol AF_INET6 Ipv6 Protocol Tabel 2.5 Konstanta Type Socket Type SOCK_STREAM SOCK_DGRAM SOCK_RAW Penjelasan Stream Socket (TCP) Datagram Socket (UDP) Raw Socket Untuk proto bersifat opsional dan biasanya bernilai 0. Untuk membuat socket stream (TCP) internet domain digunakan statement berikut: sock = socket.socket (socket.af_inet, socket.sock_stream)

37 21 Jika SOCK_STREAM diganti dengan SOCK_DGRAM berarti membuat socket datagram (UDP). Kemudian untuk membuat socket stream dalam UNIX domain: sock = socket.socket(socket.af_unix, socket.sock_stream) Sebuah server adalah sebuah proses yang mendengarkan (listen) pada port tertentu. Ketika proses lain ingin berhubungan dengan server atau menggunakan layanan server, maka proses harus terhubung dengan alamat dan nomor port tertentu yang dispesifikasikan oleh server. Hal ini dilakukan dengan memanggil metode socket connect(address), dimana address adalah sebuah tuple (host, port) untuk internet domain dan pathname untuk UNIX domain. Berikut ini adalah contohnya: sock.connect (('localhost',12345)) atau sock.connect ((' ',12345)) Sedangkan untuk UNIX domain, sock.connect ('/tmp/sock') #Koneksi ke file socket Setelah socket berhasil dibuat, maka Python akan mengembalikan sebuah socket descriptor. Sebelum digunakan, maka socket harus diikatkan (binding) ke alamat dan nomor port yang sesuai agar proses lain dapat ditujukan ke socket. Berikut ini contoh untuk binding socket pada internet domain: sock.bind(('localhost',12345)) atau sock.bind((' ',12345)) Sedangkan untuk mengikatkan (binding) socket pada UNIX domain digunakan : sock.bind('/tmp/sock') #/tmp/sock merupakan file socket Perintah di atas akan membuat file pipe /tmp/sock yang dapat digunakan untuk berkomunikasi antara server dan client. Setelah socket diikatkan (bind), langkah selanjutnya adalah memanggil metode listen (queue). Perintah ini menginstruksikan socket untuk listen pada port-port yang telah diikatkan (bind), dan queue merupakan sebuah integer yang merepresentasikan maksimum antrian koneksi. Berikut ini adalah contoh penggunaannya: sock.listen(5) #Mendengarkan koneksi dengan maksimum antrian sebanyak 5 Untuk menerima koneksi dari permintaan (request) client pada koneksi yang menggunakan socket stream (TCP), metode yang digunakan adalah accept(). Berikut contoh penggunaannya: sock.accept() #Menerima koneksi

38 22 statement di atas akan mengembalikan sebuah tuple (conn, address) dimana conn adalah objek socket baru yang berguna untuk mengirim dan menerima data dari koneksi, dan address merupakan alamat dari client. Menerima koneksi tidak akan berarti tanpa digunakan untuk mengirim dan menerima data. Oleh karena itu, digunakan metode send(string) untuk socket stream (TCP) dan sendto(string,address) untuk socket datagram (UDP). Berikut ini penggunaan untuk socket stream. sock.send('ini pesan dari server') Sedangkan untuk socket datagram digunakan: sock.sendto('pesan dari server', (' ', 12345)) Untuk menerima data yang dikirim dari server digunakan metode recv(bufsize) untuk socket stream dan recvfrom(bufsize). Berikut ini penggunaan untuk socket stream. sock.recv(1024) #Menerima data sebesar 1024 byte Statement di atas akan mengembalikan data yang dikirimkan oleh client. sedangkan untuk socket datagram : sock.recvfrom(1024) #Menerima data sebesar 1024 byte statement di atas akan mengembalikan dua buah field yaitu data dan address. Untuk menutup koneksi yang telah dibuat digunakan metode close(s). Berikut ini adalah penggunaanya : sock.close() #Menutup koneksi.

39 BAB III RANCANGAN PENELITIAN 3.1. Proses Kerja Sistem Perancangan alat ini terdiri dari beberapa bagian utama, yaitu Raspberry Pi 3, Kamera, Monitor, Keyboard, Mouse, Adapter, serta modem wireless. Raspberry Pi 3 bersama Monitor, Keyboard, Mouse, dan Adapter digunakan sebagai komputer mini yang nantinya akan dibuat program utama di dalamnya dengan menggunakan bahasa pemrograman Python untuk mengontrol robot soccer beroda. Kamera yang digunakan adalah USB Webcam. Keyboard, monitor, dan Mouse diperlukan untuk membantu membuat program utama untuk mengontrol robot soccer beroda dalam Raspberry Pi 3. Lalu modem wireless untuk mengirimkan perintah ke robot. U U TX RX Komunikasi wireless Raspberry pi 3 Robot GUI & Socket Python Pengolahan Citra VFF Mouse dan Keyboard USB Webcam Monitor Gambar 3.1 Blok diagram cara kerja sistem Cara kerja sistem secara keseluruhan, di dalam Raspberry Pi 3 yang dilengkapi dengan monitor, keyboard, mouse, dan adapter akan dibuat program utama yang digunakan untuk mengontrol robot soccer beroda. Program tersebut akan memproses input berupa video yang ditangkap oleh USB Webcam sehingga didapatkan nilai posisi x dan y dari robot, lawan, bola, kiper lawan serta gawang yang dituju. 23

40 24 Pemrosesan inputan video menggunakan metode pengolahan citra yang dilakukan dengan bantuan library OpenCV. Dengan pengolahan citra maka setiap objek dapat dibedakan melalui warnanya masing-masing. Setelah warna dari masing-masing objek diidentifikasi maka dengan bantuan OpenCV ditentukan nilai dari x dan y dari masingmasing objek berdasarkan fungsi warnanya menurut dasar teori persamaan 2.1. Nilai x dan y yang sudah didapat akan digunakan mengontrol robot untuk mengejar, menggiring bola menuju gawang yang dituju serta menghindari lawan. Proses tersebut juga akan terus berulang hingga robot berada pada jarak tertentu dari gawang yang dituju lalu robot akan menendang bola. Untuk melakukan tindakan menghindari lawan digunakan metode VFF (Virtual Force Field) yang mengolah nilai x dan y dari masing-masing objek menjadi besaran sudut untuk melakukan pembelokan. Perintah yang dikirimkan oleh program utama di dalam Raspberry Pi 3 akan dikirim melalui modem wireless dengan menggunakan protokol Python Socket agar tidak mendapat gangguan dari luar. Perintah yang dikirim adalah posisi x dan y dari robot, lawan, bola, kiper lawan, serta gawang. Setiap perintah nantinya akan diberikan kode-kode unik yang hanya bisa dibaca oleh robot Perancangan Perangkat Keras Perancangan perangkat keras sistem berupa desain Coach computer sebagai pengontrol robot soccer beroda serta tata letak dari USB camera sesuai dengan ketentuan lomba Desain Coach Computer Pengontrol Robot Soccer Beroda Pada gambar 3.1, perancangan coach computer pengontrol robot soccer beroda, Raspberry pi 3 akan dilengkapi dengan acrylic case khusus untuk Raspberry Pi 3 beserta Heatsink sehingga coach computer tersebut awet digunakan dalam durasi yang lama. Untuk catuan daya akan disediakan oleh PSU Adapter 5V 3A. Adapter tersebut digunakan sebagai power supply Raspberry Pi 3, dengan keluarannya 5V 3A maka Raspberry Pi 3 tidak akan kekurangan daya ketika ditambah dengan USB Webcam. Untuk mempermudah pembuatan program utama maka ditambahkan monitor, keyboard, dan mouse. Coach computer juga akan dilengkapi dengan USB Webcam sebagai penangkap video saat pertandingan sedang berlangsung yang akan dianalisis oleh program utama sebagai inputannya. Lalu akan

41 25 dilengkapi modem wireless sebagai penyedia jaringan internet agar dapat mengirimkan perintah untuk robot saat pertandingan sedang berlangsung Desain Tata Letak Kamera dan Lapangan Pada perancangan tata letak kamera sebagai pendeteksi robot, lawan, bola, serta gawang yang dituju, USB Webcam akan digantungkan pada tiang dengan tinggi 3 4 m sesuai dengan keadaan pada saat lomba. Kamera akan diletakkan tepat di tengah lapangan dengan ketinggian yang telah disesuaikan, dengan posisi tersebut maka kamera dapat mengambil video dari seluruh lapangan. Untuk perancangan lapangan disesuaikan dengan ketentuan yang berlaku pada Ekshibisi Robot Soccer Beroda 2016 yaitu [17]: 1. Luas lapangan keseluruhan adalah sekitar 6m x 4m. 2. Radius lingkaran tengah adalah 60cm. 3. Kotak penalti berukuran 300cm x 60cm. 4. Gawang berukuran lebar 80cm tinggi 40cm diukur dari sisi dalam tiang. 5. Warna dari gawang adalah warna kuning. Gambar 3.2 Tampilan yang didapat kamera dari atas lapangan [17]

42 26 Untuk menentukan spesifikasi kamera yang akan digunakan maka seperti gambar 3.3 dimisalkan nilai ketinggian penggantungan kamera adalah maksimal sesuai aturan lomba yaitu 4m, lalu menghitung besar sudut yang diperlukan untuk mencakup seluruh lapangan menggunakan aturan segitiga. Gambar 3.3 Tampak samping kamera serta jangkauannya Berdasarkan gambar 3.3 maka ditentukan: Panjang alas = 3m Tinggi = 4m Maka berdasarkan aturan segitiga siku-siku besar x adalah: tan x = panjang alas tinggi panjang alas 1 x = tan tinggi 1 3m x = tan = 4m 36,87o Maka besar sudut view yang diperlukan sebesar: 2 36,87 o = 73,74 o. Berdasarkan hal tersebut maka kamera yang digunakan menurut dasar teori adalah kamera yang memiliki lebar lensa sebesar 4mm dengan besar sudut view-nya 80 o. Agar area yang ditangkap oleh kamera efisien maka dihitung kembali ketinggian penggantungan kamera dengan menggunakan aturan segitiga siku-siku. Panjang alas = 3m

43 27 X = 40 o Sudut sisanya = ( ) o = 50 o Maka menurut aturan sin: tinggi sin 50 = 3 sin 40 sin 50 tinggi = 3 sin 40 = 3,57m Berdasarkan hasil perhitungan maka kamera akan digantungkan setinggi 3,57m Perancangan Perangkat Lunak Pada perancangan perangkat lunak akan dibuat program utama yang berisi program untuk menampilkan interface untuk menentukan mode permainan, program pengolah citra yang diberikan oleh USB Webcam agar didapatkan koordinat dari setiap objek, serta program VFF untuk mengontrol robot mengejar atau menggiring bola untuk menghindari lawan Diagram Alir Utama Diagram alir utama ditunjukkan pada gambar 3.5 program utama menunjukkan proses komputer mini mengontrol robot secara keseluruhan. Pada tahap awal program utama pada monitor akan muncul tampilan interface yang berisi 3 tombol yang merupakan keadaan saat lomba. Gambar 3.4 Kerangka interface program utama

44 28 Mulai Menampilkan GUI ke monitor Pilih mode Mode Bersiap? Tidak Mode Berhenti? Tidak Bermain Ya Ya Bersiap Berhenti Selesai Gambar Diagram alir utama Mode bersiap adalah mode yang mengatur robot bergerak ke tengah lapangan untuk bersiap dalam permainan seperti keadaan kick off pada permainan sepak bola ataupun bergerak ke posisi tertentu seperti pada saat bertahan untuk tendangan bebas dari lawan maupun bersiap untuk menendang bola saat robot mendapat tendangan bebas. Mode berhenti adalah mode yang mengatur agar robot menghentikan proses yang sedang berlangsung. Caranya adalah dengan mengganti nilai setpoint dari robot agar robot berhenti yaitu dengan membuat posisi serta sudut robot sekarang menjadi setpoint dan berhenti mengirimkan informasi dan perintah pada robot sehingga robot akan menjadi diam. Mode bermain adalah mode yang mengatur robot untuk mengejar dan menggiring bola menuju gawang lalu menembak bola tersebut ke dalam gawang. Pada saat dalam mode bermain, pertama robot akan mendeteksi apakah bola dalam penguasaan lawan atau tidak. Jika bola dalam penguasaan lawan maka robot akan melakukan tindakan pengontrolan

45 29 bertahan agar dapat merebut bola. Jika bola dalam keadaan bebas maka robot akan melakukan tindakan pengontrolan menyerang. Tindakan pengontrolan bertahan adalah perintah untuk membuat robot berada di depan lawan dan bersiap untuk merebut bola, jika bola sudah direbut maka robot akan melakukan tindakan pengontrolan menyerang yaitu membawa bola menuju gawang dan berusaha membuat goal (mencetak angka). Di dalam masing-masing mode terdapat berbagai macam pengontrolan pergerakan robot. Untuk mengontrol robot digunakan koordinat x dan y dari masing-masing objek yang diolah dengan analisis vektor. Nilai x dan y didapatkan dari pengolahan citra, berdasarkan dasar teori pada subbab 2.5 persamaan 2.1 maka nilai dari setiap piksel di lapangan akan dibuat seperti pada gambar dimana nilai x maksimal adalah 600 dan nilai y maksimal adalah 400. Nilai x dan y dari masing-masing objek yang didapatkan akan dijadikan perintah yaitu berupa setpoint yang diinginkan dan informasi yaitu berupa letak posisi robot serta sudut robot sekarang, posisi lawan, kiper lawan yang akan dikirim tergantung dari mode yang sedang berlangsung pada robot. Gambar Representasi nilai piksel pada lapangan

46 Subprogram Bersiap Pada gambar menunjukkan bagaimana kerja dari mode bersiap. Saat dalam mode bersiap maka kamera akan mengambil video yang akan dianalisis oleh program utama untuk mengontrol robot bergerak mendekati bola dan bersiap untuk mengejar bola. Pada proses ini robot akan dikontrol untuk bergerak ke tengah lapangan untuk bersiap seperti dalam kick off dalam sepak bola yang sebenarnya, serta robot akan dikontrol ke posisi tertentu untuk bersiap menghadapi tendangan bebas dari lawan maupun saat tendangan bebas oleh robot. Nilai x dan y dari robot dan target yang didapat dari proses menentukan pergerakan robot akan dijadikan setpoint serta informasi keberadaan robot sekarang, nilai tersebut akan diolah oleh robot untuk menentukan PWM yang diberikan ke motor. Selain itu nilai x dan y akan diolah berdasarkan dasar teori pada subbab 2.7 agar didapatkan sudut untuk menentukan seberapa besar dan arah robot harus membelok. Mulai Proses menentukan informasi sudut robot, serta posisi robot, dan target Tindakan pengontrolan bersiap Kirim perintah ke robot Tidak Sudah di tujuan? Ya Selesai Gambar Diagram alir subprogram bersiap

47 31 Tindakan pengontrolan bersiap adalah tindakan untuk menentukan posisi setpoint dari robot. Berdasarkan gambar maka ditentukan: a. Jika posisi bola di tengah lapangan seperti pada saat kick off atau tendangan bebas untuk robot, maka nilai setpoint untuk robot adalah x = posisi x bola 60 dan y = posisi y bola. Gambar Gambaran pergerakan saat bola di tengah lapangan b. Jika bola dalam penguasaan lawan artinya tendangan bebas untuk lawan, 60 < posisi x bola < 300 dan posisi y bola < 100, maka nilai setpoint untuk robot adalah x = posisi x bola 60 dan y = posisi y bola Gambar Gambaran pergerakan saat bola berada di sebelah kiri gawang

48 32 c. Jika bola dalam penguasaan lawan artinya tendangan bebas untuk lawan, 60 < posisi x bola < 300 dan posisi y bola > 300, maka nilai setpoint untuk robot adalah x = posisi x bola 60 dan y = posisi y bola 60. Gambar Gambaran pergerakan saat bola berada di sebelah kanan gawang d. Jika bola dalam penguasaan lawan artinya tendangan bebas untuk lawan, posisi x bola < 60 dan posisi y bola < 200, maka nilai setpoint untuk robot adalah x = posisi x bola dan y = 160. Nilai tersebut menunjukkan agar robot diam di depan gawang. Gambar Gambaran pergerakan saat bola berada di pojok k iri gawang

49 33 e. Jika bola dalam penguasaan lawan artinya tendangan bebas untuk lawan, posisi x bola < 60 dan posisi y bola > 200, maka nilai setpoint untuk robot adalah x = posisi x bola dan y = 240. Nilai tersebut menunjukkan agar robot diam di depan gawang. Gambar Gambaran pergerakan saat bo la berada di pojok kanan gawang Subprogram Berhenti Pada gambar 3.7 menunjukkan robot dalam mode berhenti maka semua proses yang berjalan akan dihentikan, mode ini dipakai ketika waktu permainan telah selesai. Caranya adalah dengan mengganti nilai setpoint dari robot agar robot berhenti yaitu dengan membuat posisi serta sudut robot sekarang menjadi setpoint sehingga dan coach computer akan berhenti mengirimkan informasi dan perintah pada robot sehingga robot akan menjadi diam. Berdasarkan hal tersebut maka nilai posisi x setpoint = posisi x robot dan posisi y setpoint = posisi y robot. Mulai Menghentikan semua proses Selesai Gambar 3.7 Diagram alir subprogram berhenti

50 Subprogram Bermain Pada gambar 3.8 menunjukkan robot dalam mode bermain, maka kamera akan mengambil video yang akan dianalisis oleh program utama untuk menentukan informasi sudut robot, posisi robot, lawan dan target, serta menentukan robot untuk bertahan atau menyerang. Jika bola berada dalam penguasaan lawan maka robot akan dikontrol untuk bertahan. Jika bola dalam keadaan bebas maka robot akan dikontrol untuk mengejar bola. Proses tersebut akan terus berulang hingga robot menguasai bola. Mulai Proses menentukan informasi sudut robot, serta posisi robot, lawan dan target Tindakan Pengontrolan Bertahan Ya Bola ada pada lawan? Tidak Tindakan Pengontrolan Menyerang Kirim perintah ke robot Kirim perintah ke robot Sudah merebut bola? Tidak Tidak Sudah di dekat bola? Ya Ya 1 Gambar 3.8 Diagram alir Bermain 1

51 35 Pada gambar 3.9 kamera akan mengambil video yang akan dianalisis oleh program utama untuk mengontrol robot menggiring bola menuju gawang yang dituju. Proses tersebut juga akan terus berulang hingga robot berada pada jarak tertentu dari gawang yang dituju lalu program utama akan mengirimkan perintah untuk menendang bola. Jika bola masih belum masuk maka akan mengulang proses dari mengejar bola kembali sampai menendang bola hingga masuk ke dalam gawang yang dituju. Perintah yang dikirimkan oleh program utama di dalam Raspberry Pi 3 akan dikirim melalui Python Socket. 1 Proses menentukan informasi sudut robot, serta posisi robot, lawan dan target Tindakan Pengontrolan Menyerang Kirim perintah ke robot Sudah di dekat gawang? Tidak Ya Selesai Gambar 3.9 Diagram alir Bermain 2

52 Subprogram Menentukan Informasi Sudut Robot, serta Posisi Robot, Lawan dan Target Untuk menentukan tujuan dari robot, serta posisi lawan maka coach computer akan melakukan analisis terhadap masukan dari USB Webcam berupa video dengan menggunakan metode image processing yang dibantu dengan menggunakan library bantuan yaitu OpenCV yang dapat langsung diintegrasikan dengan Python. OpenCV digunakan untuk memberikan nilai x dan y dari robot, lawan, dan target (bola atau gawang) berdasarkan warna. Untuk pendeteksian warna dilakukan dengan metode HSV, metode tersebut dipilih karena lebih peka terhadap perubahan cahaya. Nilai x dan y dari masing-masing objek yang didapatkan akan dijadikan perintah yaitu berupa setpoint yang diinginkan dan informasi yaitu berupa letak posisi robot, serta sudut robot sekarang, posisi lawan, dan kiper lawan yang akan dikirim tergantung dari mode yang sedang berlangsung pada robot. Berdasarkan titik posisi objek akan dibuat sebuah active window berbentuk lingkaran. Mulai Inisialisasi variabel Input video Konversi warna input dari RGB ke HSV Menentukan warna masing-masing objek Menentukan nilai x dan y masing-masing objek dan arah sudut robot Membuat active window Selesai Gambar Diagram alir subprogram menentukan tujuan robot dan posisi lawan

53 37 Gambar menunjukkan bagaimana proses menganalisis input video dari USB Webcam menggunakan metode pengolahan citra yang dibantu dengan pustaka pada Python yaitu OpenCV. Berdasarkan dasar teori pada subbab 2.6, pertama dilakukan inisialisasi kamera yang akan digunakan lalu menerima masukan input video. Lalu warna dari input video akan dikonversikan menjadi HSV dan setelah itu menentukan warna dari masing-masing objek dengan persamaan 2.2, 2.3, dan 2.4. maka untuk warna dari tanda tim robot adalah cyan dan biru, warna bola adalah orange, dan warna gawang adalah kuning: a. Kuning Red = 255, Green = 250, Blue = 10, min = min[r,g, B] = 10, maks = maks[r,g, B]=255 b. Biru Karena maks = R, maka: H = ( ) 60 = 58, Karena maks min, maka: S = = 245 Nilai V akan dibuat dari kisaran batas bawah 20 dan batas atas 255 agar dapat menyesuaikan dengan berbagai macam kondisi pencahayaan. Red = 10, Green = 50, Blue = 255, min = min[r,g, B] = 10, maks = maks[r,g, B]=255 Karena maks = B, maka: H = ( ) 60 = 230, Karena maks min, maka: S = = 245 Nilai V akan dibuat dari kisaran batas bawah 20 dan batas atas 255 agar dapat menyesuaikan dengan berbagai macam kondisi pencahayaan. c. Orange Red = 255, Green = 110, Blue = 10, min = min[r,g, B] = 10, maks = maks[r,g, B]=255 d. Cyan Karena maks = R, maka: H = ( ) 60 = 24, Karena maks min, maka: S = = 245 Nilai V akan dibuat dari kisaran batas bawah 20 dan batas atas 255 agar dapat menyesuaikan dengan berbagai macam kondisi pencahayaan. Red = 10, Green = 250, Blue = 255, min = min[r,g, B] = 10, maks = maks[r,g, B]=255

54 38 Karena maks = B, maka: H = ( ) 60 = 181, Karena maks min, maka: S = = 245 Nilai V akan dibuat dari kisaran batas bawah 20 dan batas atas 255 agar dapat menyesuaikan dengan berbagai macam kondisi pencahayaan. Setelah warna masing-masing objek telah didapatkan lalu dapat ditentukan nilai x dan y berdasarkan fungsi warna yang dinginkan dari persamaan 2.1 pada dasar teori subbab 2.5. selain itu ditentukan juga besar arah sudut robot saat ini sebagai patokan seberapa besar nantinya robot harus melakukan belokan. Caranya adalah berdasarkan gambar ditentukan besar sudut yang terbentuk dari dua tanda tim tersebut terhadap sumbu x berdasarkan dasar teori subbab 2.8 persamaan Gambar Gambaran arah sudut robot Misal tanda 1 berada pada posisi x = 210 dan y = 110, dan tanda 2 berada pada posisi x = 200 dan y = 100 maka arah dari sudut robot adalah: tan ( ) = 45o Nilai posisi x dan y dari masing-masing objek serta besar arah sudut robot akan dikirimkan sebagai informasi oleh robot. Setelah nilai x dan y didapatkan maka dibuat sebuah active window pada robot dan lawan yang dipakai oleh metode VFF untuk menghindari terjadinya tabrakan, serta mengetahui apakah bola dalam penguasaan robot atau dalam penguasaan lawan.

55 Subprogram Tindakan Pengontrolan Bertahan Berdasarkan gambar , untuk mengontrol robot ketika dalam keadaan bertahan dilakukan dengan cara menggunakan metode VFF ( Virtual Force Field ), metode tersebut akan dapat meminimalisir terjadinya tabrakan antara robot dengan lawan. Ketika mengejar bola dalam keadaan penguasaan lawan, robot akan dikontrol untuk berada di depan lawan. Ketika sudah berada di depan lawan maka robot akan mencoba untuk mencuri bola. Mulai Tidak Bergerak menuju lawan Sudah di dekat lawan? Menghitung besar sudut antara robot dengan lawan, robot dengan target Ya Menghitung selisih sudutnya Menghitung besar resultan vektor Tidak Menghitung arah resultan vektor Sudah di depan lawan? Gambar Diagram alir subprogram tindakan pengontrolan bertahan Ya Selesai

56 40 Gambar Gambaran algoritma bertahan Ketika bola berada dalam wilayah active window lawan maka robot akan masuk dalam submode bertahan. Ketika dalam mode bertahan seperti digambarkan pada gambar , coach computer akan mengubah setpoint yang awalnya adalah posisi x dan y bola menjadi nilai setpoint untuk robot adalah x = posisi x bola 60 dan y = posisi y bola. Contoh: Posisi_x_bola = 450 dan posisi_y_bola = 210 Maka Posisi_x_setpoint = = 390 dan posisi_y_setpoint = posisi_y_bola = 210 Dengan nilai posisi_x_setpoint selalu lebih kecil dari nilai posisi_x_bola dan nilai posisi_y_setpoint sama dengan nilai posisi_y_bola maka setpoint yang dikirimkan kepada robot akan selalu berada pada posisi yang tepat berada di depan lawan. Ketika robot sudah berada di depan lawan yang artinya robot telah berada pada posisi yang dinginkan sesuai setpoint maka robot akan menentukan untuk merebut bola atau hanya menghalangi lawan agar tidak dapat menendang bola ke arah gawang. Ketika robot telah berhasil merebut bola maka mode bertahan akan selesai dan robot akan beralih ke submode menyerang untuk berusaha mencetak gol.

57 Subprogram Tindakan Pengontrolan Menyerang Berdasarkan gambar , untuk melakukan pengontrolan ketika menghindari lawan saat mengejar bola dalam keadaan bebas ataupun pada saat menggiring bola terhadap robot dilakukan dengan cara metode VFF ( Virtual Force Field ). Jika active window mendeteksi adanya lawan maka akan dilakukan perhitungan untuk mendapatkan sudut antara robot dengan lawan dan target menggunakan nilai yang didapatkan pada proses sebelumnya lalu diolah kembali sesuai dengan langkah-langkah pada VFF. Jika active window tidak mendeteksi adanya lawan maka robot akan berjalan lurus menuju target. Mulai Mendeteksi lawan Tidak Apakah ada lawan? Ya Menghitung besar sudut antara robot dengan lawan, robot dengan target Menghitung selisih sudutnya Menghitung besar resultan vektor Menghitung arah resultan vektor Selesai Gambar Diagram alir subprogram tindakan pengontrolan menyerang

58 42 Gambar Gambaran algoritma menyerang Ketika bola berada dalam wilayah active window robot ataupun tidak dalam berada wilayah active window robot dan lawan maka robot akan berada dalam submode menyerang. Ketika bola tidak berada dalam penguasaan robot ataupun lawan maka posisi x dan y setpoint akan sama dengan posisi x dan y bola. Ketika bola telah berada dalam penguasaan robot maka setpoint robot akan diubah menjadi posisi x dan y gawang lawan. Seperti pada gambar bola berada dalam penguasaan robot dan active window robot mendeteksi adanya active window lawan maka akan digunakan metode VFF untuk menghindari lawan. Berdasarkan dasar teori pada subbab 2.8 maka dapat ditentukan berapa besar sudut belok yang harus dilakukan oleh robot yaitu: F1 = ( ) 2 + ( ) 2 = 790 ; F2 = ( ) 2 + ( ) 2 = 996, α1 = arc tan ( ) = o ; α2 = arc tan ( ) = 0o θ = 0 o ( 45) o = 45 o R = , ,2 cos(45 o ) = 1652, sin(180 45) σ1 = arc sin = 19,76 o 1652,16

59 43 Robot akan terus bergerak dengan sudut σ1 dan ketika sudut antara robot dengan lawan adalah 90 o, untuk menentukan sudut σ2 dengan: Posisi_x_robot = 400 ; Posisi_x_lawan = 400 ; Posisi_x_target = 600 Posisi_y_robot = 168 ; Posisi_y_lawan = 100 ; Posisi_y_target = 150 maka: F1 = ( ) 2 + ( ) 2 = 844 ; F2 = ( ) 2 + ( ) 2 = α1 = arc tan ( ) = o ; α2 = arc tan ( ) = 5,13o θ = 90 o ( 5,13) o = 84,87 o R = cos( 84,87 o ) = sin(180 ( 84,47)) σ2 = arc sin = 36,81 o 1402 Gambar Gambaran hasil akhir algoritma VFF Ketika nilai posisi_x_robot telah lebih besar dari posisi_x_lawan maka dapat dikatakan bahwa robot telah berhasil melewati lawan dan robot akan kembali bergerak menuju setpoint yang telah ditentukan yaitu gawang lawan. Ketika telah berada pada setpoint yang diinginkan maka robot akan menentukan untuk menendang bola ke arah gawang, ketika bola berhasil dihalau gawang maka proses akan berulang dari awal submode menyerang hingga kembali menendang bola ke gawang hingga berhasil mencetak angka.

60 Subprogram Kirim Perintah ke Robot Untuk melakukan pengiriman perintah kepada robot dilakukan dengan koneksi wireless menggunakan suatu modem wireless. Agar tidak salah dalam melakukan pengiriman perintah kepada robot, protokol pengiriman yang digunakan adalah protokol Socket Python. Selain itu dengan menggunakan protokol tersebut komunikasi yang dilakukan lebih aman dari gangguan luar. Perintah yang dikirim berupa posisi x dan y dari objek (gawang, robot, lawan, kiper lawan, tujuan tertentu dan bola), koreksi sudut untuk melakukan gerakan berupa belokan saat robot melewati lawan, dan perintah untuk berhenti. Agar perintah tersebut dapat dikenali hanya oleh robot maka digunakan kode unik sebagai header dari setiap perintah. Untuk mengirim perintah ke robot menggunakan metode Sock.sendto( perintah yang dikirim, ( address yang dituju, port yang digunakan)). Port yang digunakan adalah port 32 karena port tersebut digunakan untuk komunikasi data. Untuk lebih jelasnya dapat dilihat pada tabel berikut: Tabel 3.1 Daftar kode untuk informasi dan perintah kepada robot Informasi dan perintah Kode Posisi robot (x,y) 1 Posisi bola (x,y) 2 Posisi lawan (x,y) 3 Posisi gawang (x,y) 4 Posisi kiper lawan (x,y) 5 Setpoint (x,y) 6 Koreksi sudut (sudut sendiri, sudut yang dinginkan) 7 Berhenti 0 Tabel 3.2 Format pengiriman informasi dan perintah kepada robot Kode Informasi dan perintah yang dikirim Posisi x Posisi y

61 45 Tabel 3.3 Format pengiriman koreksi sudut belokan robot Perintah yang dikirim Kode Sudut robot sekarang Sudut yang diinginkan 7 ± ± Misal posisi robot saat ini adalah x=250 dan y=300, lalu posisi setpoint adalah x=250 dan y=100. Dengan sudut robot saat ini +30 o dan sudut yang dinginkan adalah 90 o maka informasi dan perintah yang dikirimkan adalah: sock.sendto(' ', (' ', 32)) sock.sendto(' ', (' ', 32)) sock.sendto(' ', (' ', 32)) Pada gambar 3.13 untuk melakukan pengiriman perintah seperti dalam dasar teori maka pertama dilakukan inisialisasi domain, type, IP Address, serta port yang digunakan. Lalu setelah diinisialisasi maka selanjutnya membuat koneksi dengan address yang diinginkan. Setelah berhasil membuat koneksi lalu mengikat koneksi tersebut (binding). Setelah berhasil maka perintah untuk robot dapat dikirim sesuai dengan ketentuan tabel 3.1. Mulai Inisialisasi domain, type, IP address, port yang digunakan Membuat koneksi dengan robot Mengikat koneksi dengan robot Mengirim perintah ke robot Selesai Gambar 3.13 Diagram alir subprogram kirim perintah ke robot

62 BAB IV HASIL DAN PEMBAHASAN 4.1. Perubahan Perancangan Pada penelitian ini dilakukan perubahan perancangan pada desain tata letak kamera dan lapangan, selain itu juga terdapat perubahan dalam perangkat lunak yaitu perubahan pada mode bermain Perubahan Desain Tata Letak Kamera dan Lapangan Pada penelitian ini dilakukan perubahan desain tata letak kamera dan lapangan, pada bab III kamera digantung pada ketinggian 3m hingga 4m dan dengan ukuran lapangan keseluruhan 6m x 4m. Pada gambar 4.1 dan gambar 4.2, perubahan yang dilakukan adalah Webcam ditambahkan dengan lensa tambahan agar angle view-nya semakin lebar sehingga area yang bisa dicakup oleh Webcam menjadi lebih lebar. Webcam digantung pada ketinggian 3m dan dengan ukuran lapangan keseluruhan adalah 2,6m x 2,0m. Hal tersebut dikarenakan tempat pengujian memiliki tinggi maksimum 3m sehingga kamera hanya mampu melingkupi area seluas 2,6m x 2,0m Gambar 4.1 Perubahan desain tata letak kamera 46

63 47 Gambar 4.2 Perubahan desain lapangan Perubahan Mode Bermain Pada penelitian ini dilakukan perubahan mode bermain, pada bab III mode bermain hanya mengontrol robot untuk mengejar bola lalu menggiring bola tersebut ke gawang. Setelah robot berada di dekat gawang maka robot akan menentukan tindakan untuk mencetak angka tanpa diperintah oleh pengontrol robot soccer beroda. Pada gambar 4.3 perubahan yang dilakukan adalah membuat mode tambahan untuk memerintah robot mencetak angka berdasarkan keputusan pengontrol robot soccer beroda. Caranya adalah dengan mendeteksi sudut robot sekarang lalu menentukan posisi kiper lawan, setelah itu mengubah setpoint menjadi titik sisi gawang yang lebih terbuka lebar dan menghitung sudut titik tersebut pada robot. Ketika sudut robot sudah sesuai dengan sudut setpoint maka robot akan menendang bola. Jika semua hal tersebut dibebankan kepada robot maka robot harus memperhitungkan tindakan untuk menendang bola. Oleh karena itu agar kinerja sistem dari robot menjadi lebih ringan dan robot badan berjalan lebih baik, maka tindakan untuk menendang bola dilakukan oleh sistem

64 48 Bermain 1 Proses menentukan informasi sudut robot, serta posisi robot, lawan dan target Menentukan sisi gawang yang lebih terbuka Menentukan sudut robot dengan titik yang dinginkan Kirim perintah ke robot Sudah di dekat gawang? Tidak Ya Kirim perintah tendang bola Gambar 4.3 Diagram alir Bermain Perubahan Subprogram Kirim Perintah ke Robot Pada penelitian ini dilakukan perubahan subprogram kirim perintah ke robot, pada bab III subprogram kirim perintah ke robot mengirimkan tujuh macam data yaitu posisi robot, posisi bola, posisi lawan, posisi gawang, posisi kiper lawan, posisi tertentu, serta koreksi sudut. Jika semua informasi hanya dikirimkan dari sistem lalu diolah oleh robot sendiri maka kinerja dari robot akan menjadi lebih berat. Pada tabel 4.1 sampai dengan tabel 4.3 perubahan yang dilakukan adalah mengurangi jumlah data yang dikirim menjadi hanya empat data saja yaitu koreksi sudut dan jarak robot dengan target, Serta juga ditambahkan informasi untuk menentukan arah serang robot dan perintah untuk mengatur robot dalam mengirimkan data. Hal tersebut akan membuat kerja dari sistem lebih ringan serta mengurangi perhitungan yang dilakukan oleh robot. Robot

65 49 hanya akan memperhitungkan PID berdasarkan koreksi sudut serta perhitungan jarak hasil dari perhitungan pengontrol robot soccer beroda. Pada tabel 4.1 menunjukkan format untuk mengatur arah serang dari robot, ketika robot diperintah untuk menyerang ke kanan maka sistem akan mengirimkan perintah berupa teks 9A dan sebaliknya ketika robot diperintahkan untuk menyerang ke arah kiri maka sistem akan mengirimkan perintah berupa teks 9B. Pada tabel 4.2 menunjukkan format untuk mengatur pergerakan dari robot baik dalam mengejar bola, menggiring bola menuju gawang, serta menendang bola. Radius merupakan jarak dari robot menuju setpoint, misal radius antara robot dengan setpoint adalah 053 maka sistem akan mengirimkan perintah berupa teks Tendang adalah perintah untuk membuat robot menendang bola, jika sistem diperintahkan untuk menendang bola maka sistem akan mengirimkan perintah berupa teks 61 dan sebaliknya ketika robot diperintahkan untuk tidak menendang maka sistem akan mengirimkan perintah berupa teks 60. Kirim adalah perintah untuk membuat robot mengirimkan data untuk memberitahukan bahwa robot telah mendapatkan bola atau belum, jika sistem diperintahkan untuk mengirim data maka sistem akan mengirimkan perintah berupa teks 51 dan sebaliknya ketika robot diperintahkan untuk tidak mengirimkan data maka sistem akan mengirimkan perintah berupa teks 50. Untuk tabel 4.3 masih sama dengan perancangan pada bab III namun lebih banyak datanya menjadi tiga digit. Tabel 4.1 Format pengiriman informasi kepada robot Kode Informasi yang dikirim Serang Kanan Serang Kiri 9 A B Tabel 4.2 Format pengiriman perintah kepada robot Kode Format Perintah yang dikirim Perintah Range 8 Radius Tendang Kirim 0 1

66 50 Tabel 4.3 Format pengiriman koreksi sudut belokan robot Perintah yang dikirim Kode Sudut robot sekarang Sudut yang diinginkan 7 ± ± Hasil Implementasi Implementasi sistem hasil perancangan ditunjukkan dari gambar 4.4 sampai dengan gambar 4.7. Untuk mempermudah penggunaan pengontrol robot soccer beroda dalam penelitian maka dibuat GUI sesuai dengan gambar 4.4, dengan bantuan keyboard dan mouse dalam mengoperasikannya. Pengoperasian GUI tersebut adalah sebagai berikut: 1. Mode bersiap adalah mode yang mengatur robot bergerak ke tengah lapangan untuk bersiap dalam permainan seperti keadaan kick off pada permainan sepak bola ataupun bergerak ke posisi tertentu seperti pada saat bertahan untuk tendangan bebas dari lawan maupun bersiap untuk menendang bola saat robot mendapat tendangan bebas. 2. Mode berhenti adalah mode yang mengatur agar robot menghentikan proses yang sedang berlangsung. Caranya adalah dengan mengganti nilai setpoint dari robot agar robot berhenti yaitu dengan membuat posisi serta sudut robot sekarang menjadi setpoint dan berhenti mengirimkan informasi dan perintah pada robot sehingga robot akan menjadi diam. 3. Mode bermain adalah mode yang mengatur robot untuk mengejar dan menggiring bola menuju gawang lalu menembak bola tersebut ke dalam gawang. Pada saat dalam mode bermain, pertama robot akan mendeteksi apakah bola dalam penguasaan lawan atau tidak. Jika bola dalam penguasaan lawan maka robot akan melakukan tindakan pengontrolan bertahan agar dapat merebut bola. Jika bola dalam keadaan bebas maka robot akan melakukan tindakan pengontrolan menyerang. Tindakan pengontrolan bertahan adalah perintah untuk membuat robot berada di depan lawan dan bersiap untuk merebut bola, jika bola sudah direbut maka robot akan melakukan tindakan pengontrolan menyerang yaitu membawa bola menuju gawang dan berusaha membuat goal (mencetak angka). 4. Mode serang kiri dan serang ke kanan untuk mengatur tampilan Webcam sehingga saat pergantian babak sistem mampu memberikan posisi x dan y yang sesuai. Mode yang dipilih tergantung dari undian arah robot menyerang.

67 51 Gambar 4.4 Tampilan GUI Video akan diambil oleh Webcam yang ditambahkan dengan lensa tambahan agar jangkauannya lebih lebar lalu video tersebut akan dianalisa oleh Raspberry Pi menggunakan bahasa pemrograman Python yang dieksekusi melalui perangkat lunak Geany. Perangkat lunak tersebut digunakan karena lebih cepat dalam melakukan proses pengontrolan terhadap robot. Pada gambar 4.5 menunjukkan tampilan dari Geany. Gambar 4.5 Tampilan Geany Proses menganalisa masukan video dari Webcam dilakukan pengolahan citra dengan bantuan library tambahan Python yaitu OpenCV. Hasil dari pengolahan citra adalah posisi x dan y dari masing-masing objek, lalu posisi tersebut akan diolah untuk mengontrol robot soceer beroda. OpenCV juga akan menampilkan keadaan di lapangan ditambah dengan keterangan seperti pada gambar 4.6

68 52 Gambar 4.6 Tampilan pada Lapangan Hasil Analisis OpenCV Perintah akan dikirim ke robot menggunakan bantuan library pada Python yaitu Socket dengan jenis komunikasi yang dilakukan adalah UDP. Perintah yang dikirim adalah sudut robot sekarang, sudut setpoint robot, serta radius robot dengan setpoint yang diinginkan. Dengan sudut setpoint dan radius maka sistem dapat mengontrol pergerakan robot soccer beroda. Pada gambar 4.7 adalah tampilan hasil analisa serta perintah yang dikirimkan ke robot. Angka pada digit pertama merupakan kode untuk masing-masing objek, angka pada digit kedua hingga keempat merupakan angka untuk posisi x, angka pada digit kelima hingga ketujuh merupakan angka untuk posisi y. Kode serta banyaknya digit yang digunakan tersebut sudah sesuai dengan perancangan pada bab III. Pada mode bersiap hanya terjadi komunikasi satu arah yaitu sistem memberikan perintah serta informasi ke robot sedangkan pada mode bermain terjadi komunikasi dua arah yaitu sistem memberikan informasi serta perintah pergerakan untuk robot dan robot mengirimkan informasi bahwa robot sudah dalam penguasaan robot atau masih dalam robot pengejaran, informasi tersebut didapat dari sensor yang terdapat di robot. Pada tabel 4.4 adalah format informasi yang dikirimkan oleh robot, jika data yang diterima berisi 1 maka bola masih dalam proses pengejaran sedangkan jika data yang diterima berisi 2 maka bola sudah dalam penguasaan robot.

69 53 Gambar 4.7 Tampilan Hasil Analisa dan Perintah yang Dikirim Tabel 4.4 Format informasi yang diterima oleh sistem Informasi yang diterima Bola dalam pengejaran Bola dalam penguasaan Analisa Keberhasilan Sistem Pengujian untuk menganalisa keberhasilan sistem dilakukan dengan melihat kemampuan sistem menentukan objek berdasarkan warnanya, sistem mampu menentukan posisi x dan y dari masing-masing objek tersebut, sistem mampu menentukan tindakan yang akan dilakukan oleh robot dan mengendalikan pergerakannya berdasarkan mode yang dipilih yaitu bersiap atau bermain. Pengujian sistem terbagi menjadi dibagi menjadi dua bagian pada setiap mode. Pengujian pertama yaitu menguji hasil analisis sistem terhadap masukan video untuk menentukan objek berdasarkan warnanya lalu menentukan posisi x dan y dari masing-masing objek tersebut. Sistem diharapkan mampu menentukan masing-masing objek berdasarkan warnanya serta menentukan posisi x dan y dari masing-masing objek untuk diolah menjadi perintah untuk robot pada setiap mode sesuai dengan perancangan pada bab III. Pengujian

70 54 kedua yaitu menguji sistem untuk mengendalikan pergerakan robot berdasarkan koreksi sudut dan radius hasil perhitungan sistem. Sistem diharapkan mampu mengendalikan robot untuk bergerak ke posisi dan arah tertentu berdasarkan hasil perhitungan koreksi sudut serta radius yang ditentukan sesuai dengan setpoint yang diinginkan pada setiap mode sesuai dengan perancangan pada bab III. Data pengujian pertama pada mode bersiap ditunjukkan oleh gambar 4.8 sampai dengan gambar 4.13 serta tabel 4.5. Data pengujian kedua pada mode bersiap ditunjukkan oleh tabel 6.1 sampai tabel 6.3. Data pengujian pertama pada mode bermain ditunjukkan oleh gambar 4.13 sampai dengan gambar 4.19 serta tabel 4.6. Data pengujian kedua pada mode bermain ditunjukkan oleh tabel 6.4 sampai dengan 6.5. Pada tabel 4.5, 4.6, 6.1 sampai dengan tabel 6.5 data dibandingkan dengan hasil yang dinginkan sesuai dengan perancangan pada bab III. Berdasarkan pada gambar 4.8 sampai dengan gambar 4.13 serta tabel 4.5 menunjukkan sistem mampu memberikan hasil sesuai dengan yang dinginkan. Sistem mampu menentukan jenis objek berdasarkan warnanya dan menentukan posisi x dan y dari masing-masing objek dengan pengolahan citra menggunakan library OpenCV. Sistem juga mampu menentukan setpoint yang akan diolah oleh sistem untuk mengatur pergerakan robot sesuai dengan perancangan pada subbab III yaitu pada subprogram bersiap. Tabel 4.5 Data dari pengujian pertama pada mode bersiap Gambar Posisi Bola (x,y) Setpoint yang Diharapkan (x,y) Setpoint Hasil Sistem (x,y) 4.8 (403,263) (343,263) (343,263) 4.9 (188,365) (128,305) (128,305) 4.10 (079,441) (019,381) (019,381) 4.11 (226,036) (166,096) (166,096) 4.12 (103,020) (043,080) (043,080)

71 55 Gambar 4.8 Hasil analisa pada mode bersiap percobaan pertama Gambar 4.9 Hasil analisa pada mode bersiap percobaan kedua Gambar 4.10 Hasil analisa pada mode bersiap percobaan ketiga

72 56 Gambar 4.11 Hasil analisa pada mode bersiap percobaan keempat Gambar 4.12 Hasil analisa pada mode bersiap percobaan kelima Pada tabel 6.1 sampai dengan tabel 6.3 yang terdapat di lampiran menunjukkan data dari pergerakan robot dalam mode bersiap ketika menuju posisi yang dinginkan sesuai dengan setpoint yang diberikan. Berdasarkan data yang didapatkan maka sistem mampu mengarahkan robot menuju setpoint yang dinginkan. Berdasarkan pada tabel 6.1 yang terdapat di lampiran, dari data nomor satu sampai dengan nomor tujuh sistem memberikan koreksi sudut yang lebih besar dari sudut robot saat itu agar robot bergerak ke arah yang benar, ketika sudut robot sudah melewati batas yang dinginkan maka sistem akan menurunkan sudut yang dinginkan seperti yang terlihat pada data nomor delapan sampai dengan nomor 23 dan sistem akan terus memperbaiki sudut dari robot hingga robot mencapai tujuan. Radius yang dikirimkan oleh sistem semakin lama semakin kecil agar saat robot sudah mencapai tujuan yang dinginkan maka robot akan

73 57 berhenti. Pada percobaan pertama mode bersiap sistem mampu mengendalikan robot untuk mencapai tujuan dengan error terhadap posisi akhir yang dinginkan sebesar 2,5% untuk posisi x dan 2,08% untuk posisi y. Berdasarkan pada tabel 6.2 yang terdapat di lampiran, dari data nomor satu sampai dengan nomor 20 sistem memberikan koreksi sudut yang lebih besar dari sudut robot saat itu agar robot bergerak ke arah yang benar, ketika sudut robot sudah melewati batas yang dinginkan maka sistem akan menurunkan sudut yang dinginkan seperti yang terlihat pada data nomor 21 sampai dengan selesai hingga robot mencapai tujuan. Radius yang dikirimkan oleh sistem semakin lama semakin kecil agar saat robot sudah mencapai tujuan yang dinginkan maka robot akan berhenti. Ketika robot berhenti sudut robot masih belum sama dengan yang dinginkan namun radius robot dengan tujuan yang dinginkan sudah sama dengan nol sehingga robot berhenti gerak. Pada percobaan kedua mode bersiap sistem mampu mengendalikan robot untuk mencapai tujuan dengan error terhadap posisi akhir yang dinginkan sebesar 0,94% untuk posisi x dan 6,04% untuk posisi y. Berdasarkan pada tabel 6.3 yang terdapat di lampiran, sama seperti percobaan sebelumnya dari data nomor satu sampai dengan nomor 26 sistem memberikan koreksi sudut yang lebih kecil dari sudut robot saat itu agar robot bergerak ke arah yang benar, ketika sudut robot sudah melewati batas yang dinginkan maka sistem akan menaikan sudut yang dinginkan seperti yang terlihat pada data nomor 27 sampai dengan selesai hingga robot mencapai tujuan. Radius yang dikirimkan oleh sistem semakin lama semakin kecil agar saat robot sudah mencapai tujuan yang dinginkan maka robot akan berhenti. Ketika robot berhenti sudut robot masih belum sama dengan yang dinginkan namun radius robot dengan tujuan yang dinginkan sudah sama dengan nol sehingga robot berhenti gerak. Pada percobaan ketiga mode bersiap sistem mampu mengendalikan robot untuk mencapai tujuan dengan error terhadap posisi akhir yang dinginkan sebesar 0,03% untuk posisi x dan 0,08% untuk posisi y. Berdasarkan pembahasan diatas serta tabel 4.6 maka mode bersiap dari sistem sudah sesuai dengan yang dinginkan perancangan pada bab III. Tingkat keberhasilan dari mode bersiap cukup tinggi dengan rata-rata error dari setiap percobaan sebesar 1,16% untuk posisi x dan 2,73% untuk posisi y. Dengan error yang cukup kecil maka robot dapat berjalan mengejar bola lalu menggiring bola tersebut dengan baik, jika error yang terdapat masih cukup besar maka akan terjadi kemungkinan robot menjadi sulit untuk menggiring bola. Hal

74 58 tersebut dikarenakan jika robot mengejar bola dari jarak yang cukup jauh maka nantinya robot akan sulit untuk menempatkan bola pada bagian penggiringnya. Tabel 4.6 Error posisi dari percobaan eksekusi mode bersiap Percobaan Error terhadap posisi x Error terhadap posisi y Percobaan 1 2,50% 2,08% Percobaan 2 0,94% 6,04% Percobaan 3 0,03% 0,08% Rata-rata 1,16% 2,73% Berdasarkan pada gambar 4.13 sampai dengan gambar 4.19 serta tabel 4.7 menunjukkan sistem mampu memberikan hasil sesuai dengan yang dinginkan. Sistem mampu menentukan jenis objek berdasarkan warnanya dan menentukan posisi x dan y dari masing-masing objek dengan pengolahan citra menggunakan library OpenCV. Sistem juga mampu menentukan setpoint yang akan diolah oleh sistem untuk mengatur pergerakan robot serta koreksi sudut untuk menghindari benturan dengan lawan saat mengejar bola, menggiring bola ke gawang, dan mengerahkan robot menendang saat didepan gawang untuk mencetak angka sesuai dengan perancangan pada subbab III yaitu pada subprogram bermain. Berdasarkan pada gambar 4.13 sampai dengan 4.15 robot dalam keadaan mengejar bola, dalam keadaan ini sistem hanya mendeteksi robot, bola, dan lawan. Pada gambar 4.13 robot dalam keadaan menyerang maka setpoint yang diinginkan adalah posisi x dan y dari bola. Pada gambar 4.14 lawan telah memasuki area dari active window maka sistem memberikan koreksi sudut yang dinginkan untuk menghindari lawan, setpoint yang diinginkan adalah posisi x dan y dari bola. Pada gambar 4.15 robot dalam keadaan bertahan karena bola dalam pengawasan lawan maka maka setpoint yang diinginkan adalah posisi x dan y dari posisi yang berada persis di depan lawan. Berdasarkan pada gambar 4.16 dan 4.17 robot dalam keadaan menuju ke gawang, dalam keadaan ini sistem hanya mendeteksi robot, lawan, dan kiper lawan. Pada gambar 4.16 robot dalam keadaan menyerang maka setpoint sudut yang diinginkan adalah besar sudut robot terhadap posisi x dan y dari sisi gawang yang lebih jauh jangkauannya dari kiper lawan. Pada gambar 4.17 lawan telah memasuki area dari active window maka sistem

75 59 memberikan koreksi sudut yang dinginkan untuk menghindari lawan, setpoint yang diinginkan adalah posisi x dan y dari gawang. Berdasarkan pada gambar 4.18 dan 4.19 robot dalam keadaan ingin mencetak angka, dalam keadaan ini sistem akan mengirimkan perintah untuk menendang bola. Gambar 4.18 robot dalam keadaan bersiap menendang bola untuk mencetak angka maka sistem akan mengirimkan perintah untuk menendang bola yaitu berupa teks 91. Pada gambar 4.19 robot telah menendang bola ke arah yang diinginkan namun bola masih belum memasuki gawang maka sistem memberikan perintah kepada robot untuk kembali mengejar bola, pada dalam keadaan tersebut sistem mendeteksi robot, lawan, dan bola. Setpoint yang diinginkan adalah posisi x dan y dari gawang. Ketika robot sudah kembali mendapatkan bola maka sistem akan memberikan perintah kepada robot untuk kembali mencetak angka. Proses ini akan terus berulang sampai dengan robot berhasil mencetak angka. Gambar Posisi Bola (x,y) Tabel 4.7 Data dari pengujian pertama pada mode bermain Posisi Lawan (x,y) Posisi Kiper Lawan (x,y) Setpoint yang Diinginkan (x,y) Setpoint Hasil Sistem (x,y) Koreksi Sudut Radius Tendang Bola 4.13 (446,225) (350,037) - (446,225) (446,225) -008, Tidak 4.14 (446,226) (240,152) - (446,226) (446,226) -006, Tidak 4.15 (431,298) (464,289) - (404,289) (404,289) -003, Tidak (128,324) (590,243) (640,184) (640,184) -003, Tidak (150,350) (590,243) (640,184) (640,184) +000, Tidak (129,324) (590,243) (640,184) (640,184) - - Ya 4.19 (518,268) (129,324) - (518,268) (518,268) -003, Tidak Gambar 4.13 Hasil analisa pada mode bermain percobaan pertama

76 60 Gambar 4.14 Hasil analisa pada mode bermain percobaan kedua Gambar 4.15 Hasil analisa pada mode bermain percobaan ketiga Gambar 4.16 Hasil analisa pada mode bermain percobaan keempat

77 61 Gambar 4.17 Hasil analisa pada mode bermain percobaan kelima Gambar 4.18 Hasil analisa pada mode bermain percobaan keenam Gambar 4.19 Hasil analisa pada mode bermain percobaan ketujuh

78 62 Berdasarkan pada tabel 6.4 dan 6.5 yang terdapat di lampiran menunjukkan data dari pergerakan robot dalam mode bermain ketika menuju posisi yang dinginkan sesuai dengan setpoint yang diberikan. Berdasarkan data yang didapatkan maka sistem mampu mengarahkan robot menuju setpoint yang dinginkan. Namun pada mode bermain memiliki kelemahan yaitu adanya delay perhitungan yang disebabkan oleh banyaknya objek yang dideteksi. Akibat dari delay tersebut adalah sistem menjadi kurang responsif terhadap perubahan data yang dikirimkan oleh robot. untuk mengatasi hal tersebut maka sistem akan mengirimkan perintah untuk mengatur robot mengirimkan data. Ketika sistem mengirimkan perintah kirim maka artinya sistem telah selesai melakukan perhitungan sehingga data yang masuk dari robot tidak akan menumpuk. Berdasarkan pada tabel 6.4 yang terdapat di lampiran, dari data nomor satu sampai dengan nomor 25 robot dalam kondisi mengejar bola sehingga sistem memberikan setpoint sesuai dengan posisi bola. Ketika robot berhasil mendapatkan bola sistem masih mengirimkan radius sebesar 36 satuan, hal tersebut disebabkan adanya jarak dari tanda robot dengan bola. Dari data nomor 26 sampai dengan nomor 46 robot sudah mendapatkan bola yang ditandai dengan adanya masukan dari sensor pada robot, maka robot akan mengirimkan informasi yang membuat sistem mengganti setpoint sesuai dengan sisi gawang yang lebih terbuka. Pada data nomor 47 sampai dengan nomor 51 robot telah berhasil menggiring bola menuju gawang sehingga sistem akan mengirimkan perintah kepada robot untuk menendang bola. Pada percobaan pertama mode bermain sistem telah berhasil mengejar bola, menggiring bola tersebut menuju gawang, dan menendang bola ke arah gawang yang lebih terbuka untuk mencetak angka dengan error sudut akhir yang dihasilkan adalah 3,33%. Berdasarkan pada tabel 6.5 yang terdapat di lampiran, dari data nomor satu sampai dengan nomor 24 robot dalam kondisi mengejar bola sehingga sistem memberikan setpoint sesuai dengan posisi bola. Ketika robot berhasil mendapatkan bola sistem masih mengirimkan radius sebesar 39 satuan, hal tersebut disebabkan adanya jarak dari tanda robot dengan bola. Dari data nomor 25 sampai dengan nomor 40 robot sudah mendapatkan bola yang ditandai dengan adanya masukan dari sensor pada robot, maka robot akan mengirimkan informasi yang membuat sistem mengganti setpoint sesuai dengan sisi gawang yang lebih terbuka. Pada data nomor 41 sampai dengan nomor 52 robot telah berhasil menggiring bola menuju gawang sehingga sistem akan mengirimkan perintah kepada robot untuk menendang bola. Pada percobaan kedua mode bermain sistem telah berhasil mengejar bola, menggiring

79 63 bola tersebut menuju gawang, dan menendang bola ke arah gawang yang lebih terbuka untuk mencetak angka dengan error sudut akhir yang dihasilkan adalah 0%. Berdasarkan pembahasan diatas serta tabel 4.8 maka mode bermain dari sistem sudah sesuai dengan yang dinginkan perancangan pada bab III. Tingkat keberhasilan dari mode bersiap cukup tinggi dengan rata-rata error sudut akhir dari setiap percobaan sebesar 1,67%. Dengan error yang cukup kecil maka robot dapat menendang bola tepat ke arah sisi gawang yang lebih terbuka sehingga dapat mencetak angka, jika error yang terdapat masih cukup besar maka akan terjadi kemungkinan robot menjadi sulit untuk mencetak angka. Hal tersebut dikarenakan robot masih belum mengarah ke gawang ataupun robot belum mengarah ke sisi gawang yang lebih terbuka. Tabel 4.8 Error sudut dari percobaan eksekusi mode bermain Percobaan Error koreksi sudut Percobaan 1 3,33% Percobaan 2 0,00% Rata-rata 1,67% Ketika robot keluar dari area lapangan ataupun area yang ditangkap oleh Webcam sistem akan mengalami error. Ketika robot keluar dari area Webcam maka sistem akan mecari objek lain yang kode warnanya hampir sama, namun sering kali sistem hanya akan mendeteksi noise dari Webcam maka posisi dari masing-masing objek akan menjadi acak. Jika posisi objek menjadi acak maka jalannya robot akan menjadi tidak beraturan. Untuk mengatasi hal tersebut sesuai dengan peraturan lomba maka user akan menekan tombol berhenti dan memasukan kembali robot ke dalam lapangan. Berdasarkan gambar 4.20 dan gambar 4.21 sistem masih mampu bekerja dengan baik ketika pencahayaan ruang pengujian dalam keadaan terang hingga redup, sistem masih mampu mendeteksi masing-masing objek dengan baik. Namun pada gambar 4.22 sistem tidak akan bekerja dengan baik ketika pencahayaan pada ruang pengujian menjadi gelap, hal tersebut dikarenakan Webcam tidak dapat menghasilkan gambar dengan kualitas yang baik dalam pencahayaan ruangan yang sangat gelap. Gambar yang dihasilkan oleh Webcam akan menjadi dominan hitam sehingga kode warna yang diberikan tidak lagi menjadi cocok. Jika kode warna tidak cocok maka posisi dari masing-masing objek akan menjadi acak karena Webcam terlalu banyak membaca noise. Jika posisi objek menjadi acak maka jalannya robot

80 64 akan menjadi tidak beraturan. Oleh karena hal tersebut sistem harus dijalankan dalam ruangan yang memiliki pencahayaan yang cukup terang sehingga Webcam mampu menghasilkan video dengan warna yang baik. Gambar 4.20 Hasil analisa video ketika pencahayaan ruangan terang Gambar 4.21 Hasil analisa video ketika pencahayaan ruangan redup

81 65 Gambar 4.21 Hasil analisa video ketika pencahayaan ruangan gelap 4.4. Pembahasan Perangkat Keras Berdasarkan pada gambar 4.20 Coach computer pengontrol robot soccer beroda berbasis Raspberry pi 3 akan dilengkapi dengan case khusus untuk Raspberry Pi 3 beserta Heatsink sehingga coach computer tersebut awet digunakan dalam durasi yang lama. Untuk catuan daya akan disediakan oleh PSU Adapter 5V 3A. Adapter tersebut digunakan sebagai power supply Raspberry Pi 3, dengan keluarannya 5V 3A maka Raspberry Pi 3 tidak akan kekurangan daya ketika ditambah dengan USB Webcam. Untuk mempermudah pembuatan program utama maka ditambahkan monitor, keyboard, dan mouse. Coach computer juga akan dilengkapi dengan USB Webcam sebagai penangkap video saat pertandingan sedang berlangsung yang akan dianalisis oleh program utama sebagai inputannya. Pada gambar 4.21 dilakukan perubahan desain tata letak kamera dan lapangan. Webcam digantung pada ketinggian 3m dan dengan ukuran lapangan keseluruhan adalah 2,6m x 2,0m. Pada Webcam ditambahkan lensa tambahan agar memperlebar daerah yang ditangkap oleh Webcam, pada gambar 4.23 menunjukkan bentuk fisik Webcam. Karena resolusi dari Webcam adalah 640x480 maka nilai maksimum dari posisi x adalah 640 satuan dan nilai maksimum dari posisi y adalah 480 satuan.

82 Gambar 4.22 Sistem coach computer lengkap dengan alat pembantunya 4 3 Keterangan gambar 4.22: 1. Raspberry Pi 3 2. Monitor 3. Mouse 4. Keyboard 1 Gambar Lapangan dan tata letak kamera Keterangan gambar 4.23: 1. Webcam 2. Lapangan

83 Pembahasan Perangkat Lunak Perangkat lunak terdiri atas program inti, program pendeteksi objek berdasarkan warna, program mode bersiap, program mode bermain, program mode berhenti, dan program antarmuka. Program inti berisi pemanggilan modul, inisialisasi variabel, dan pengaturan untuk komunikasi dengan robot. Pada program inti dilakukan pemanggilan program mode bersiap, program mode bermain, dan program mode berhenti yang dibuat dalam bentuk fungsi-fungsi. Program antarmuka dibuat untuk mempermudah pemilihan mode pengontrolan robot. import cv2 import numpy as np import math from Tkinter import * from socket import * vid = cv2.videocapture(0) a = 0 p = 0 lower_gawang = np.array([25, 100, 100], dtype=np.uint8) upper_gawang = np.array([30, 255, 255], dtype=np.uint8) lower_robot_belakang = np.array([100, 100, 100], dtype=np.uint8) upper_robot_belakang = np.array([109, 255, 255], dtype=np.uint8) lower_robot_depan = np.array([0, 100, 100], dtype=np.uint8) upper_robot_depan = np.array([9, 255, 255], dtype=np.uint8) lower_lawan = np.array([170, 100, 100], dtype=np.uint8) upper_lawan = np.array([175, 255, 255], dtype=np.uint8) lower_bola = np.array([10, 100, 100], dtype=np.uint8) upper_bola = np.array([15, 255, 255], dtype=np.uint8) Gambar 4.24 Listing program pemanggilan modul serta inisialisasi variabel Pada gambar 4.24 menunjukkan Listing program untuk pemanggilan modul pada python serta memberikan inisialisasi variabel yang akan digunakan. Modul pemrograman yang dipanggil adalah cv2, numpy, math, Tkinter, dan socket. Modul cv2 digunakan untuk melakukan pengolahan citra dari masukan video dari Webcam. Numpy dan math digunakan untuk membantu perhitungan pengontrolan robot berdasarkan mode masing-masing. Tkinter digunakan untuk membuat tampilan antarmuka pemilihan mode pengontrol robot. Socket digunakan untuk melakukan komunikasi pengiriman perintah ke robot serta penerimaan informasi dari robot. Variabel vid adalah inisial untuk masukan video dari Webcam, diberikan angka 0 artinya sistem mengambil masukan video dari kamera satu. Variabel a digunakan untuk menentukan mode pengontrolan robot yaitu bersiap, bermain, dan berhenti. Variabel q digunakan untuk menentukan arah serang dari robot. Variabel lower_gawang,

84 68 lower_robot_belakang, lower_robot_depan, upper_robot_belakang, upper_robot_depan, untuk menginisialisasi kode warna dari masing-masing dalam HSV. lower_lawan, lower_bola, upper_gawang, upper_lawan, dan upper_bola digunakan host = " " #ip address robot host1 = "" port = #port kirim perintah ke robot port1 = #port terima informasi dari robot buf = 1024 #jumlah maksimal karakter yang diterima addr = (host, port) addr1 = (host1, port1) UDPSock = socket(af_inet, SOCK_DGRAM) UDPSock.bind(addr1) Gambar 4.25 Listing program pengaturan komunikasi dengan robot Pada gambar 4.25 menunjukkan Listing program untuk melakukan pengaturan komunikasi dengan robot. Komunikasi dilakukan dua arah yaitu dari robot ke sistem dan juga dari sistem ke robot. Untuk dapat melakukan komunikasi dua arah maka dipakai dua port yang berbeda, satu port digunakan untuk mengirim perintah ke robot dan port lainnya digunakan untuk menerima informasi dari robot. Variabel addr digunakan untuk alamat tujuan dari perintah yang dikirim oleh sistem. Variabel addr1 digunakan untuk alamat asal pengirim informasi ke sistem. Variabel UDPSock digunakan untuk menentukan jenis komunikasi antara sistem dengan robot yaitu komunikasi dengan protokol Ipv4 dan jenis socket yang digunakan adalah UDP. root = Tk() root.title("pengontrol Robot Soccer Beroda") frm1 = LabelFrame(root, text="mode yang Dipilih") frm1.pack() frm2 = Frame(frm1, background="white") frm2.pack() frm3 = Frame(frm1) frm3.pack(side = BOTTOM) mode = IntVar() btn1 = Button(frm2, text="bersiap", command=bersiap, padx=50, pady=50) btn1.pack(side=left) btn2 = Button(frm2, text="bermain", command=bermain, padx=50, pady=50) btn2.pack(side=left) btn3 = Button(frm2, text="berhenti", command=berhenti, padx=50, pady=50) btn3.pack(side=left) btn4 = Radiobutton(frm3, text="serang ke Kanan", variable=mode, value=1, command=m1) btn4.pack(side=bottom) btn5 = Radiobutton(frm3, text="serang ke Kiri", variable=mode, value=2, command=m2) btn5.pack(side=bottom) txt = Entry(frm3) txt1 = Entry(frm3) Gambar 4.26 Listing program tampilan antarmuka

85 69 Pada gambar 4.26 menunjukkan listing program diatas adalah program untuk membuat tampilan antarmuka sebagai pembantu pengguna untuk menentukan mode pengendalian robot. Pembuatan antarmuka menggunakan modul Tkinter. Perintah root.title() digunakan untuk memberikan judul pada antarmuka, perintah LabelFrame() digunakan untuk membuat frame yang memiliki label, perintah Frame() digunakan untuk membuat frame yang akan berisi tombol-tombol, perintah Button() dan RadioButtton() adalah perintah untuk membuat tombol, dan perintah Entry() adalah perintah untuk membuat textbox yang digunakan untuk menyimpan variabel modeb. Tampilan antarmuka berisi tiga tombol yang berfungsi untuk memanggil macam-macam fungsi mengendalikan pergerakan robot serta dua RadioButton untuk menentukan arah serangan robot. def Bersiap(): global a, q a = 1 q = 2 def Bermain(): global modeb, a, q a = 2 q = 2 def Berhenti(): global a, modeb a = 3 def m1(): global q q = 0 UDPSock.sendto('9A', addr) def m2(): global q q = 1 UDPSock.sendto('9B', addr) Gambar 4.27 Listing program fungsi untuk tombol pada antarmuka Pada gambar 4.27 ketika salah satu Button dipilih maka salah satu fungsi dari bersiap, bermain dan berhenti akan dipanggil, sehingga isi dari variabel a akan berubah. Isi dari variabel a akan dipakai untuk menentukan mode pengendalian pergerakan robot. Ketika salah satu RadioButton dipilih maka salah satu fungsi dari m1 dan m2 akan dipanggil, sehingga isi dari variabel q akan berubah. Isi dari variabel q akan dipakai untuk menentukan arah serangan robot.

86 70 ret_val, frame = vid.read() if q==0: frame = cv2.flip(frame,2) frame = cv2.flip(frame,2) if q==1: frame = cv2.flip(frame,2) hsv = cv2.cvtcolor(frame, cv2.color_bgr2hsv) lower = lower_bola upper = upper_bola track_objects() format_data() cv2.puttext(blur,'bola',(int(cx),int(cy)),cv2.font_hershey_simplex, 1, (0, 125, 255), 2) cx_bola, cy_bola = cx, cy lower = lower_robot_belakang upper = upper_robot_belakang track_objects() format_data() cv2.puttext(blur,'robot',(int(cx),int(cy)),cv2.font_hershey_simplex, 1, (255, 0, 0), 2) cx_robot_belakang, cy_robot_belakang = cx, cy lower = lower_robot_depan upper = upper_robot_depan track_objects() format_data() cv2.puttext(blur,'robot',(int(cx),int(cy)),cv2.font_hershey_simplex, 1, (0, 0, 255), 2) cx_robot_depan, cy_robot_depan = cx, cy cv2.imshow('tampilan pada Lapangan', blur) key = cv2.waitkey(1) & 0Xff Gambar 4.28 Listing program tampilan antarmuka Pada gambar 4.28 listing program diatas adalah program untuk melakukan pengolahan citra dari masukan Webcam menggunakan library tambahan python itu OpenCV. Hasil masukan dari Webcam dimasukan ke variabel frame lalu sistem akan mendeteksi arah serang robot berdasarkan masukan dari pengguna, cara kerjanya adalah dengan menggunakan fungsi flip pada library OpenCV. Setelah itu agar memudahkan pengolahan citra masukan dari Webcam maka isi variabel frame dikonversi menjadi HSV sesuai dengan perancangan pada bab III. Langkah selanjutnya adalah menentukan warna yang dideteksi sebagai objek sesuai dengan variabel yang telah diberikan pada inisialisasi, batas bawah dan batas atas diperlukan agar sistem tetap mampu mendeteksi suatu warna dalam berbagai macam pencahayaan. Lalu sistem akan memanggil fungsi track_objects untuk menentukan posisi x dan y dari objek tersebut. Selanjutnya sistem akan memanggil fungsi data_format untuk membuat format data sesuai dengan perancangan pada bab III. Hasil dari fungsi data_format berupa posisi x dan y dari objek yang dideteksi yang disimpan dalam variabel cx dan cy,

87 71 variabel tersebut akan diubah menjadi variabel lain sesuai dari objek yang dideteksi seperti contoh variabel cx_robot_depan dan cy_robot_depan agar dapat diolah untuk mengontrol pergerakan robot. Sistem akan memberikan keterangan pada tampilan untuk memudahkan pengguna serta indikator bahwa sistem sudah berhasil mendeteksi masing-masing objek berdasarkan warnanya menggunakan fungsi cv2.puttext yang terdapat dalam library OpenCV. Banyaknya objek yang dideteksi tergantung dari masing-masing mode yang dipilih untuk mengontrol robot. Setelah semua proses telah selesai maka sistem akan menampilkan hasilnya pada antarmuka menggunakan fungsi cv2.imshow yang terdapat dalam library OpenCV. def track_objects(): tresh = cv2.inrange(hsv, lower, upper) image, contours, hierarcy = cv2.findcontours(tresh, cv2.retr_list, cv2.chain_approx_simple) max_area = 0 best_cnt = 1 for cnt in contours: area = cv2.contourarea(cnt) if area > max_area: max_area = area best_cnt = cnt M = cv2.moments(best_cnt) cx,cy = int(m['m10']/m['m00']),int(m['m01']/m['m00']) cv2.circle(blur, (cx,cy), 10, (0, 0, 255), -1) Gambar 4.29 Listing program penentuan posisi dari objek Pada gambar 4.29 listing program diatas adalah fungsi untuk melakukan penentuan posisi dari x dan y dari masing-masing objek berdasarkan warnanya masing-masing. Fungsi cv2.inrange digunakan untuk menetukan batasan nilai dari warna suatu objek, nilai warna yang diinginkan akan disimpan di variabel tresh. Setelah dibatasi lalu sistem akan mendapatkan suatu kontur berdasarkan batasan warna yang telah diberikan oleh variabel tresh, lalu dengan menggunakan cv2.retr_list maka hasilnya akan berupa daftar vektor dari kontur yang terdeteksi, agar menghemat kerja sistem maka pendekatan kontur objek maka digunakan cv2.chain_approx_simple yang hanya akan mendeteksi pinggiran dari kontur yang terdeteksi, hasilnya akan disimpan dalam variabel contours. Walaupun sudah dikurangi namun masih ada noise dari Webcam maka untuk mengatasi hal tersebut maka menggunakan instruksi for untuk melakukan seleksi dari isi variabel contours, isi variabel contours yang paling besar adalah objek yang dinginkan. Setelah itu agar nilai variabel contours yang telah diseleksi dapat diolah untuk menggerakan robot maka

88 72 digunakan fungsi cv2.moments. Untuk menentukan posisi x dan y berdasarkan titik tengah objek tersebut maka digunakan persamaan 4.1[18]. CX = M10 M01 ; CY = M00 M00 (4.1) Nilai x dan y berdasarkan titik tengah objek tersebut akan disimpan dalam variabel cx dan cy. Lalu dibuat tanda dengan fungsi cv2.circle untuk memudahkan pengguna serta indikator bahwa sistem sudah berhasil mendeteksi objek tersebut. def format_data(): global cx, cy if cx<10: cx ='0'+'0'+str(cx) elif cx<100: cx ='0'+str(cx) if cy<10: cy ='0'+'0'+str(cy) elif cy<100: cy ='0'+str(cy) Gambar 4.30 Listing program perubahan format data posisi Pada gambar 4.30 listing program diatas adalah fungsi untuk melakukan perubahan format data sesuai dengan perancangan pada bab III. Perubahan format data dilakukan agar robot dapat mengerti perintah yang diberikan oleh sistem dalam mengatur pergerakan robot itu sendiri. Hasilnya akan berupa variabel dengan type data string. if int(cx_bola) > 315 : set_posisi_x_robot = int(cx_bola) - 60 set_posisi_y_robot = int(cy_bola) elif 300 > int(cx_bola) > 60 : if int(cy_bola) < 100 : set_posisi_x_robot = int(cx_bola) - 60 set_posisi_y_robot = int(cy_bola) + 60 elif 300 > int(cy_bola) > 100: set_posisi_x_robot = int(cx_bola) - 60 set_posisi_y_robot = int(cy_bola) elif int(cy_bola) > 300 : set_posisi_x_robot = int(cx_bola) - 60 set_posisi_y_robot = int(cy_bola) - 60 elif int(cx_bola) < 60 : if int(cy_bola) < 100 : set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = 160 elif int(cy_bola) > 100 : set_posisi_x_robot = int(cx_bola) set_posisi_y_robot = 240 Gambar 4.31 Listing program penentuan setpoint pada mode bersiap

89 73 Pada gambar 4.31 listing program diatas adalah program untuk melakukan penentuan setpoint pada mode bersiap sesuai dengan perancangan pada bab III. Pada mode bersiap penentuan setpoint dilakukan dengan melihat posisi dari bola, penentuan setpoint tersebut dilakukan dengan menggunakan if dan elif berdasarkan kondisi yang sudah dirancang pada bab III. ##menentukan bola dalam penguasaan musuh atau tidak k1 = (int(cx_lawan)-int(cx_bola))**2 k2 = (int(cy_lawan)-int(cy_bola))**2 radius1 = math.sqrt(k1+k2) if int(radius1) < 100 : ##Mode bertahan diaktifkan set_posisi_x_robot = int(cx_lawan) - 60 set_posisi_y_robot = cy_lawan elif int(radius1) > 100 : ##Mode Menyerang diaktifkan set_posisi_x_robot = cx_bola set_posisi_y_robot = cy_bola Gambar 4.32 Listing program penentuan setpoint pada mode bermain_1 Pada gambar 4.32 listing program diatas adalah program untuk melakukan penentuan setpoint pada mode bermain_1 sesuai dengan perancangan pada bab III. Pada mode bermain_1 robot dikendalikan untuk mengejar bola, maka penentuan setpoint dilakukan dengan melihat posisi dari bola, jika bola berada dalam penguasaan lawan maka robot akan diperintahkan bertahan dan jika bola tidak berada dalam penguasaan lawan maka robot akan diperintahkan untuk menyerang. Penentuan setpoint tersebut dilakukan dengan menggunakan if dan elif berdasarkan kondisi yang sudah dirancang pada bab III. set_posisi_x_robot = cx_kiper_lawan if int(cy_kiper_lawan)<=240: set_posisi_y_robot = int(cy_kiper_lawan)+60 elif int(cy_kiper_lawan)>240: set_posisi_y_robot = int(cy_kiper_lawan)-60 Gambar 4.33 Listing program penentuan setpoint pada mode bermain_2 Pada gambar 4.33 listing program diatas adalah program untuk melakukan penentuan setpoint pada mode bermain_2 sesuai dengan perancangan pada bab III. Pada mode bermain_2 robot dikendalikan untuk menuju ke sisi gawang yang lebih terbuka, maka penentuan setpoint dilakukan dengan melihat posisi dari kiper lawan. Jika posisi y kiper lawan berada di atas 240 maka setpoint yang diberikan adalah sisi kiri dari kiper lawan dan untuk kebalikannya jika posisi y berada di bawah 240 maka setpoint yang diberikan adalah sisi kanan dari kiper lawan. Ketika robot sudah berada di dekat gawang maka sistem akan memberikan perintah untuk menghentikan jalannya lalu langsung menendang bola.

90 74 Penentuan mode tersebut dilakukan dengan menggunakan if berdasarkan kondisi yang sudah dirancang pada bab III. ##metode penghindaran lawan j1 = (int(cx_robot_depan)-int(cx_lawan))**2 j2 = (int(cy_robot_depan)-int(cy_lawan))**2 radius3 = math.sqrt(j1+j2) if int(radius3) < 100 : ##aktifkan metode VFH try: F2=math.sqrt( (int(cx_robot_depan)+int(set_posisi_x_robot))**2 + (int(cy_robot_depan)+int(set_posisi_y_robot))**2 ) F2=float(F2) F1=math.sqrt( (int(cx_robot_depan)+int(cx_lawan))**2 + (int(cy_robot_depan)+int(cy_lawan))**2 ) F1=float(F1) a1=math.degrees(math.atan2( (int(cy_lawan) - int(cy_robot_depan)), (int(cx_lawan)-int(cx_robot_depan))) ) a2=math.degrees(math.atan2( (int(set_posisi_y_robot) - int(cy_robot_depan)), (int(set_posisi_x_robot)-int(cx_robot_depan))) ) if a1>0: if a1<a2 : t = a1 - a2 elif a2<a1: t = a2 - a1 elif a1<0: if a1>a2: t = a1 - a2 elif a2>a1: t = a1 - a2 t=float(t) r = math.sqrt((f1)**2 + (F2)**2 + (2*F1*F2*(math.cos(math.radians(t))))) r=float(r) selisih = math.sin(math.radians(180)-math.radians(t)) set_sudut = int(round(math.degrees(math.asin(f1*selisih/r)))) except ValueError: pass Gambar 4.34 Listing program untuk koreksi sudut saat menghindari lawan Pada gambar 4.34 listing program diatas adalah program untuk melakukan penentuan koreksi sudut untuk menghindari lawan pada mode bermain menggunakan metode Virtual Force Field (VFF) sesuai dengan perancangan pada bab III. Sistem akan mendeteksi adanya lawan dalam suatu lingkaran virtual yang berpusat pada titik tengah robot dengan radius 150 satuan menggunakan perintah if, nilai radius didapatkan dari jarak antara robot dengan lawan menggunakan persamaan dasar pythagoras seperti yang ditunjukkan persamaan 4.2 serta gambar Sesuai dengan dasar teori pada subbab 2.9. langkah pertama adalah menghitung besar vektor antara robot dengan lawan, menghitung besar vektor antara robot dengan target, menghitung besar sudut antara robot dengan lawan, menghitung sudut antara robot dengan target, menghitung besar selisih sudutnya, menghitung besar resultan vektornya dan terakhir menghitung besar sudut dari vektor resultan. Ketika robot telah

91 75 berhasil menghindari lawan perhitungan pada langkah menentukan resultan vektor akan menghasilkan nilai imajiner maka dilakukan metode Try dan Except dalam menjalankan perhitungan VFF, jika hasil perhitungan tidak menunjukkan ValueError maka perintah VFF akan dilanjutkan untuk menentukan koreksi sudut, jika hasil perhitungan menunjukkan maka perhitungan dihentikan dan koreksi sudut akan mengikuti koreksi sudut awal yaitu koreksi sudut untuk langsung menuju target. BX FX X FY Radius R = Radius BY Y Gambar 4.35 Penentuan jarak antara robot dengan lawan atau target BX = Posisi X robot dan BY = Posisi Y robot R = (BX FX) 2 + (BY FY) 2 (4.2) Dimana: FX = Posisi X lawan atau target dan FY = Posisi Y lawan atau target s1 = int(cy_robot_depan)-int(cy_robot_belakang) s2 = int(cx_robot_depan)-int(cx_robot_belakang) s = math.degrees(math.atan2(s1, s2)) sudut=int(round(s)) n1 = int(set_posisi_y_robot)-int(cy_robot_depan) n2 = int(set_posisi_x_robot)-int(cx_robot_depan) n = math.degrees(math.atan2(n1, n2)) setpoint = int(round(n)) nr = int(round(math.sqrt(n1**2+n2**2))) if nr < 50: nr=0 Gambar 4.36 Listing program untuk pengontrolan gerak robot Pada gambar 4.36 listing program diatas adalah program untuk melakukan pengontrolan pergerakan robot. Setelah posisi x dan y dari setpoint ditentukan maka sistem

92 76 akan menghitung sudut robot saat itu dan juga menghitung sudut robot terhadap setpoint menggunakan persamaan dari dasar teori subbab 2.8 persamaan selanjutnya sistem akan menghitung jarak dari robot dengan setpoint menggunakan persamaan 4.2. Nilai radius akan dianggap sama dengan nol ketika radius bernilai di bawah 50 satuan agar robot dapat berhenti tepat di posisi yang diinginkan sesuai dengan setpoint, ketika nilai radius menghasilkan nilai dibawah nol maka dengan menggunakan if nilai radius akan dibuat sama dengan nol agar tidak terjadi error pada robot. Nilai dari sudut sekarang akan disimpan dalam variabel sudut, nilai dari sudut robot terhadap setpoint akan disimpan dalam variabel setpoint dan nilai dari jarak robot terhadap lawan disimpan dalam variabel nr. Nilai dari sudut robot saat itu, sudut robot terhadap setpoint dan radius akan digunakan untuk mengatur pergerakan robot. selisih = sudut - setpoint if cx_robot_depan > 450 and 10 > math.fabs(selisih): UDPSock.sendto('8000', addr) UDPSock.sendto('61', addr) UDPSock.sendto('60', addr) print 'Tendang' if cx_robot_depan > 500: UDPSock.sendto('8000', addr) UDPSock.sendto('61', addr) UDPSock.sendto('60', addr) print 'Tendang' Gambar 4.37 Listing program untuk pengontrolan robot menendang bola Pada gambar 4.37 listing program diatas adalah program untuk melakukan pengontrolan robot untuk menendang bola. Ketika sudut robot telah sesuai dengan yang diinginkan serta posisi robot telah dekat dengan gawang maka robot akan diperintah untuk berhenti sejenak lalu menendang. Untuk membuat robot menendang bola maka dikirimkan perintah dengan kode 61 yang berfungsi untuk memberikan tegangan pada solenoid di robot, lalu sistem akan memberikan perintah dengan kode 60 yang berfungsi untuk menghentikan tegangan pada solenoid di robot, agar driver solenoid pada robot tidak mengalami kerusakan.

93 77 if nr<10: nr ='0'+'0'+str(nr) elif nr<100: nr ='0'+str(nr) if int(sudut)>=100: sudut = '+'+str(sudut) elif 100>int(sudut)>=10: sudut = '+'+'0'+str(sudut) elif int(sudut)==0: sudut = '+000' elif 10>int(sudut)>0: sudut = '+'+'00'+ str(sudut) elif 0>int(sudut)>-10: sudut1 = int(round(math.fabs(int(sudut)))) sudut = '-'+'00'+str(sudut1) elif -10>=int(sudut)>-100: sudut11 = int(round(math.fabs(int(sudut)))) sudut = '-'+'0'+str(sudut11) if int(setpoint)>=100: setpoint = '+'+str(setpoint) elif 100>int(setpoint)>=10: setpoint = '+'+'0'+str(setpoint) elif int(setpoint)==0: setpoint = '+000' elif 10>int(setpoint)>0: setpoint = '+'+'00'+ str(setpoint) elif 0>int(setpoint)>-10: sudut2 = int(round(math.fabs(int(setpoint)))) setpoint = '-'+'00'+str(sudut2) elif -10>=int(setpoint)>-100: sudut21 = int(round(math.fabs(int(setpoint)))) setpoint = '-'+'0'+str(sudut21) Gambar 4.38 Listing program untuk perubahan format data sudut dan radius Pada gambar 4.38 listing program diatas adalah program untuk melakukan perubahan format data sesuai dengan perancangan pada bab III. Perubahan format data dilakukan agar robot dapat mengerti perintah yang diberikan oleh sistem dalam mengatur pergerakan robot itu sendiri. Hasilnya akan berupa variabel dengan type data string. Perubahan format data dilakukan dengan menggunakan perintah if dan elif. l1=str(cx_robot_belakang)+str(cy_robot_belakang) data1 = '1'+l1 l2=str(cx_bola)+str(cy_bola) data2 = '2'+l2 l6=str(set_posisi_x_robot)+str(set_posisi_y_robot) data6 = '6'+l6 data7 = '7' + str(sudut) + str(setpoint) l8=str(nr) data8 = '8'+l8 print str(data1),", ",str(data2),", ",str(data6),", ",str(data7),", ",str(data8) UDPSock.sendto(data7, addr) UDPSock.sendto(data8, addr) Gambar 4.39 Listing program untuk mengubah data menjadi string lalu dikirim

94 78 Pada gambar 4.39 listing program diatas adalah program untuk melakukan perubahan bentuk data dan perintah menjadi data string serta menambah kode didepan masing-masing data perintah sesuai dengan perancangan pada bab III. Perubahan bentuk dilakukan agar robot dapat mengerti perintah yang diberikan oleh sistem dalam mengatur pergerakan robot itu sendiri serta data yang didapat bisa diambil dalam bentuk.txt sehingga memudahkan pengambilan data. Untuk pengambilan data dapat dilakukan dengan perintah f.write(). Setelah format perintah dirubah lalu dikirimkan ke robot menggunakan koneksi socket yang telah dibuat, menggunakan perintah UDPSock.sendto(). berhenti_kirim= txt1.get() (data,addr1) = UDPSock.recvfrom(buf) if data[0]=='1': txt.delete(0, END) txt.insert(0, 1) txt1.delete(0, END) elif data[0]=='2' and berhenti_kirim!= 'ya': txt.delete(0, END) txt.insert(0, 2) modeb = txt.get() if modeb=='1': detect_1() elif modeb=='2': detect_2() Gambar 4.40 Listing program untuk perpindahan mode bermain Pada gambar 4.40 listing program diatas adalah program untuk melakukan penentuan mode bermain yang dipilih berdasarkan informasi yang dikirimkan dari robot. Untuk menerima informasi dari robot digunakan perintah UDPSock.recvfrom() data hasil informasi dari robot disimpan pada variabel data. Data yang didapatkan akan digunakan untuk menentukan mode bermain dengan menggunakan perintah if dan elif. Hasil dari penentuan mode bermain akan disimpan dalam textbox yang tidak ditampilkan dalam antarmuka karena hanya untuk menyimpan variabel modeb.

95 BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Dari hasil pengujian dan pengambilan data dari sistem pengontrol robot soccer beroda berbasis Raspberry pi 3 sebagai prototipe ERSBI 2017, dapat diambil kesimpulan: 1. Dengan pencahayaan ruangan yang cukup terang sistem mampu menganalisa masukan berupa video yang dihasilkan oleh Webcam untuk menghasilkan titik-titik koordinat yang mengarahkan pergerakan robot berdasarkan berbagai mode menggunakan pengolahan citra dengan library OpenCV. 2. Dengan pencahayaan ruangan yang cukup terang sistem mampu mengarahkan robot untuk menuju setpoint yang dinginkan dan mampu menghindari lawan menggunakan metode VFF dengan rata-rata error sebesar 1,16% untuk posisi x dan 2,73% untuk posisi y pada mode bersiap. Sedangkan pada mode bermain dengan rata-rata error sudut akhir sebesar 1,67%. 3. Sistem mampu mengirimkan perintah untuk menggerakan robot menggunakan socket Python Saran Saran untuk pengembang penelitian selanjutnya antara lain: 1. Membuat algoritma yang mengatur gerak robot, ketika robot telah keluar dari area lapangan ataupun area Webcam. 2. Menggunakan Webcam dengan angle view yang lebih besar dan kualitas gambar yang lebih baik. 79

96 DAFTAR PUSTAKA [1] Tujuan Kontes Robot Indonesia, diakses 25 Oktober 2016 [2] ERSBI, diakses 25 Oktober 2016 [3] Raspberry Pi 3 Model B, model-b, diakses 01 Oktober 2016 [4] Pengertian dan fungsi Webcam, diakses 25 Oktober 2016 [5] Wentworth, Peter., et al. 2012, How to Think Like a Computer Scientist Learning Pyhton 3, 3 th ed, Free Software Foundation,--. [6] Noprianto., 2002, Python & Pemrograman Linux, ANDI, Yogyakarta. [7] Grayson, John E. 2000, Python and Tkinter Programming, MANNING, Greenwich. [8] Kadir, Abdul, Adhi Susanto, 2013, Teori dan Aplikasi Pengolahan Citra, ANDI, Yogyakarta. [9] Prof. Dr. Madenda, Sarifuddin, 2015, Pengolahan Citra & Video Digital, Erlangga, Jakarta. [10] Mordvintsev, Alexander, Abid K., 2016, Introduction of opencv, diakses 01 November 2016 [11] Mordvintsev, Alexander, Abid K., 2016, opencv-python Tutorials, diakses 01 November 2016 [12] Mordvintsev, Alexander, Abid K., 2016, Changing Colorspaces, diakses 01 November 2016 [13] Giancoli, Douglas C., 2014, Fisika, 7 th ed, jilid 1, Erlangga, Jakarta. [14] J.C. Wolf, P. Robinson, J.M. Davies. Vektor Field Path Planning and Control of An Autonomous Robot In a Dynamic Environment. url : NING_AND_CONTROL_OF_AN_AUTONOMOUS_ROBOT_IN_A_DYNAMIC_E NVIRONMENT.pdf, diakses 01 Oktober

97 81 [15] Bastan, Muhammet., 2004, Visual Servoing of Mobile Rrobots Using Potential Fields, BOTS_USING_POTENTIAL_.pdf, diakses 01 Oktober 2016 [16] Pemrograman Socket dengan Python, diakses 28 Oktober 2016 [17] --, 2016, Panduan Ekshibisi Sepakbola Robot Beroda Indonesia ESRBI 2016, diakses 01 Oktober 2016 [18] Mordvintsev, Alexander, Abid K., 2016, Contour features, diakses 13 April 2017

98 LAMPIRAN Datasheet Raspberry pi 3 L1

Implementasi OpenCV pada Robot Humanoid Pemain Bola Berbasis Single Board Computer

Implementasi OpenCV pada Robot Humanoid Pemain Bola Berbasis Single Board Computer Implementasi OpenCV pada Robot Humanoid Pemain Bola Berbasis Single Board Computer Disusun Oleh: Nama : Edwin Nicholas Budiono NRP : 0922004 Jurusan Teknik Elektro, Fakultas Teknik,, Jl. Prof.Drg.Suria

Lebih terperinci

COMPUTER VISION UNTUK PENGHITUNGAN JARAK OBYEK TERHADAP KAMERA

COMPUTER VISION UNTUK PENGHITUNGAN JARAK OBYEK TERHADAP KAMERA Seminar Nasional Teknologi Terapan SNTT 2013 (26/10/2013) COMPUTER VISION UNTUK PENGHITUNGAN JARAK OBYEK TERHADAP KAMERA Isnan Nur Rifai *1 Budi Sumanto *2 Program Diploma Elektronika & Instrumentasi Sekolah

Lebih terperinci

BAB III PERANCANGAN. Gambar 3.1. Sistem instruksi dan kontrol robot.

BAB III PERANCANGAN. Gambar 3.1. Sistem instruksi dan kontrol robot. BAB III PERANCANGAN Membahas perancangan sistem yang terdiri dari gambaran umum sistem dan bagaimana mengolah informasi yang didapat dari penglihatan dan arah hadap robot di dalam algoritma penentuan lokasi

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN Langkah selanjutnya setelah melakukan analisa dan perancangan adalah pengkodean (implementasi) dan pengujian, implementasi merupakan perancangan aplikasi yang dapat dimengerti

Lebih terperinci

Konsep Dasar Pengolahan Citra. Pertemuan ke-2 Boldson H. Situmorang, S.Kom., MMSI

Konsep Dasar Pengolahan Citra. Pertemuan ke-2 Boldson H. Situmorang, S.Kom., MMSI Konsep Dasar Pengolahan Citra Pertemuan ke-2 Boldson H. Situmorang, S.Kom., MMSI Definisi Citra digital: kumpulan piksel-piksel yang disusun dalam larik (array) dua-dimensi yang berisi nilai-nilai real

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM BAB 3 PERANCANGAN SISTEM 3.1 Metode Perancangan Perancangan sistem didasarkan pada teknologi computer vision yang menjadi salah satu faktor penunjang dalam perkembangan dunia pengetahuan dan teknologi,

Lebih terperinci

ABSTRAK Robovision merupakan robot yang memiliki sensor berupa indera penglihatan seperti manusia. Untuk dapat menghasilkan suatu robovision, maka

ABSTRAK Robovision merupakan robot yang memiliki sensor berupa indera penglihatan seperti manusia. Untuk dapat menghasilkan suatu robovision, maka ABSTRACT Robovision is a robot that has a sensor in the form of the human senses such as vision. To be able to produce a robovision, it is necessary to merge the technologies of robotics and computer vision

Lebih terperinci

Realisasi Perangkat Color Object Tracking Menggunakan Raspberry Pi

Realisasi Perangkat Color Object Tracking Menggunakan Raspberry Pi Realisasi Perangkat Color Object Tracking Menggunakan Raspberry Pi Disusun Oleh: Iona Aulia Risnadi (0922049) Jurusan Teknik Elektro, Fakultas Teknik, Jl. Prof.Drg.Suria Sumantri, MPH no. 65, Bandung,

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN Pada bab ini, akan membahas implementasi dan hasil pengujian dari program aplikasi yang telah dibuat. Pada perancangan aplikasi ini meliputi perbedaan citra hasil foto

Lebih terperinci

PENGOLAHAN CITRA DIGITAL

PENGOLAHAN CITRA DIGITAL PENGOLAHAN CITRA DIGITAL Aditya Wikan Mahastama mahas@ukdw.ac.id Sistem Optik dan Proses Akuisisi Citra Digital 2 UNIV KRISTEN DUTA WACANA GENAP 1213 v2 Bisa dilihat pada slide berikut. SISTEM OPTIK MANUSIA

Lebih terperinci

BAB III PERANCANGAN SISTEM. Pada dewasa sekarang ini sangat banyak terdapat sistem dimana sistem tersebut

BAB III PERANCANGAN SISTEM. Pada dewasa sekarang ini sangat banyak terdapat sistem dimana sistem tersebut BAB III PERANCANGAN SISTEM 3.1 Definisi Masalah Pada dewasa sekarang ini sangat banyak terdapat sistem dimana sistem tersebut sudah terintegrasi dengan komputer, dengan terintegrasinya sistem tersebut

Lebih terperinci

GRAFIK KOMPUTER DAN PENGOLAHAN CITRA. WAHYU PRATAMA, S.Kom., MMSI.

GRAFIK KOMPUTER DAN PENGOLAHAN CITRA. WAHYU PRATAMA, S.Kom., MMSI. GRAFIK KOMPUTER DAN PENGOLAHAN CITRA WAHYU PRATAMA, S.Kom., MMSI. PERTEMUAN 8 - GRAFKOM DAN PENGOLAHAN CITRA Konsep Dasar Pengolahan Citra Pengertian Citra Analog/Continue dan Digital. Elemen-elemen Citra

Lebih terperinci

SAMPLING DAN KUANTISASI

SAMPLING DAN KUANTISASI SAMPLING DAN KUANTISASI Budi Setiyono 1 3/14/2013 Citra Suatu citra adalah fungsi intensitas 2 dimensi f(x, y), dimana x dan y adalahkoordinat spasial dan f pada titik (x, y) merupakan tingkat kecerahan

Lebih terperinci

PERANCANGAN PENDETEKSI WAJAH DENGAN ALGORITMA LBP (LOCAL BINARY PATTERN) BERBASIS RASPBERRY PI

PERANCANGAN PENDETEKSI WAJAH DENGAN ALGORITMA LBP (LOCAL BINARY PATTERN) BERBASIS RASPBERRY PI PERANCANGAN PENDETEKSI WAJAH DENGAN ALGORITMA LBP (LOCAL BINARY PATTERN) BERBASIS RASPBERRY PI Nadia R.W (0822084) Email: neko882neko@yahoo.co.id Jurusan Teknik Elektro, Fakultas Teknik,, Jl. Prof. Drg.

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI Bab ini berisi landasan-landasan teori yang penulis gunakan untuk seluruh laporan penelitian ini. Landasan-landasan teori ini dijelaskan untuk membentuk pemahaman yang sama antara

Lebih terperinci

Pertemuan 2 Representasi Citra

Pertemuan 2 Representasi Citra /29/23 FAKULTAS TEKNIK INFORMATIKA PENGOLAHAN CITRA DIGITAL ( DIGITAL IMAGE PROCESSING ) Pertemuan 2 Representasi Citra Representasi Citra citra Citra analog Citra digital Matrik dua dimensi yang terdiri

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM 29 BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Sistem Blok diagram sistem absensi ini dapat dilihat pada gambar 3.1 di bawah ini. Gambar 3.1. Diagram Blok Sistem Fungsi fungsi dari blok diatas adalah sebagai

Lebih terperinci

JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 1

JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 1 JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 1 Rancang Bangun Sistem Pemantau Ruangan Berbasis Multi Kamera untuk Smartphone Android pada Jaringan Pikonet yang Adaptif terhadap Perubahan Situasi Ruangan

Lebih terperinci

Realisasi Robot Yang Mengikuti Objek Bergerak Menggunakan Kamera Wireless via Wifi

Realisasi Robot Yang Mengikuti Objek Bergerak Menggunakan Kamera Wireless via Wifi Realisasi Robot Yang Mengikuti Objek Bergerak Menggunakan Kamera Wireless via Wifi M. Rifki.M / 0522043 E-mail : Croinkz@yahoo.co.id Jurusan Teknik Elektro, Fakultas Teknik, Jalan Prof. Drg. Suria Sumantri

Lebih terperinci

Secara garis besar, arsitektur sistem Real Time Auto Door-Lock terbagi menjadi 6 bagian, yaitu:

Secara garis besar, arsitektur sistem Real Time Auto Door-Lock terbagi menjadi 6 bagian, yaitu: 7 DOOR-Lock BAB 2 SISTEM REAL TIME AUTO SISTEM REAL TIME AUTO DOOR-LOCK Bab ini akan menjelaskan tentang arsitektur dari sistem, proses analisis kebutuhan dan desain dari perangkat lunak sistem, skema

Lebih terperinci

BAB 1 PENDAHULUAN. dalam kehidupan manusia. Perkembangan robot dari zaman ke zaman terus

BAB 1 PENDAHULUAN. dalam kehidupan manusia. Perkembangan robot dari zaman ke zaman terus BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Teknologi robotika di masa sekarang sudah menjadi bagian penting dalam kehidupan manusia. Perkembangan robot dari zaman ke zaman terus meningkat dengan sangat

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengenalan Citra Citra adalah suatu representasi (gambaran), kemiripan atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa

Lebih terperinci

SISTEM PENJEJAK POSISI OBYEK BERBASIS UMPAN BALIK CITRA

SISTEM PENJEJAK POSISI OBYEK BERBASIS UMPAN BALIK CITRA SISTEM PENJEJAK POSISI OBYEK BERBASIS UMPAN BALIK CITRA Syahrul 1, Andi Kurniawan 2 1,2 Jurusan Teknik Komputer, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia Jl. Dipati Ukur No.116,

Lebih terperinci

BAB 2 TINJAUAN TEORETIS

BAB 2 TINJAUAN TEORETIS BAB 2 TINJAUAN TEORETIS 2. Citra Digital Menurut kamus Webster, citra adalah suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda. Citra digital adalah representasi dari citra dua dimensi

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN 44 BAB III ANALISIS DAN PERANCANGAN 3.1. Analisis Sistem Pada bagian ini akan dibahas tentang perancangan sistem keamanan yang akan dibuat. Secara garis besar sistem pengamanan yang dibuat terdiri dari

Lebih terperinci

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Istilah komputer (computer) berasal dari bahasa latin computere yang berarti menghitung. Dalam bahasa Inggris komputer berasal dari kata to compute yang artinya

Lebih terperinci

BAB II DASAR TEORI. CV Dokumentasi CV berisi pengolahan citra, analisis struktur citra, motion dan tracking, pengenalan pola, dan kalibrasi kamera.

BAB II DASAR TEORI. CV Dokumentasi CV berisi pengolahan citra, analisis struktur citra, motion dan tracking, pengenalan pola, dan kalibrasi kamera. BAB II DASAR TEORI Pada bab ini akan dibahas teori yang berkaitan dengan skripsi ini, meliputi pustaka OpenCV, citra, yaitu citra grayscale dan citra berwarna, pengolahan citra meliputi image enhancement

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. menggunakan serial port (baudrate 4800bps, COM1). Menggunakan Sistem Operasi Windows XP.

BAB 4 IMPLEMENTASI DAN EVALUASI. menggunakan serial port (baudrate 4800bps, COM1). Menggunakan Sistem Operasi Windows XP. BAB 4 IMPLEMENTASI DAN EVALUASI Bab ini menjelaskan tentang hasil penelitian yang berupa spesifikasi sistem, prosedur operasional penggunaan program, dan analisa sistem yang telah dibuat. 4.1 Spesifikasi

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 4 BAB II TINJAUAN PUSTAKA 2.1 Citra Digital Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau picture element ). Setiap piksel digambarkan sebagai satu kotak kecil. Setiap piksel

Lebih terperinci

BAB II DASAR TEORI Gambar 2.1. Cubieboard2

BAB II DASAR TEORI Gambar 2.1. Cubieboard2 BAB II DASAR TEORI Pada bab ini membahas dasar teori yang digunakan dalam perancangan skripsi ini. Teori yang digunakan pada skripsi ini adalah Cubieboard 2, Raspberry Pi, web server, Apache web server,

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM Pada bab ini akan dijelaskan mengenai perancangan dari perangkat keras, serta perangkat lunak dari algoritma robot. 3.1. Perancangan Perangkat Keras Pada bagian ini akan dijelaskan

Lebih terperinci

Aplikasi Tracking Object pada Sistem Web Streaming dengan Protokol TCP/IP sebagai Sistem Navigasi Mobile Robot Berbasis Mini PC

Aplikasi Tracking Object pada Sistem Web Streaming dengan Protokol TCP/IP sebagai Sistem Navigasi Mobile Robot Berbasis Mini PC Aplikasi Tracking Object pada Sistem Web Streaming dengan Protokol TCP/IP sebagai Sistem Navigasi Mobile Robot Berbasis Mini PC Awaluddhin Choliq Azis penyok1058@gmail.com Universitas Jember Widya Cahyadi

Lebih terperinci

DETEKSI KEBAKARAN BERBASIS WEBCAM SECARA REALTIME DENGAN PENGOLAHAN CITRA DIGITAL

DETEKSI KEBAKARAN BERBASIS WEBCAM SECARA REALTIME DENGAN PENGOLAHAN CITRA DIGITAL DETEKSI KEBAKARAN BERBASIS WEBCAM SECARA REALTIME DENGAN PENGOLAHAN CITRA DIGITAL Ari Sutrisna Permana 1, Koredianto Usman 2, M. Ary Murti 3 Jurusan Teknik Elektro - Institut Teknologi Telkom - Bandung

Lebih terperinci

Pembentukan Citra. Bab Model Citra

Pembentukan Citra. Bab Model Citra Bab 2 Pembentukan Citra C itra ada dua macam: citra kontinu dan citra diskrit. Citra kontinu dihasilkan dari sistem optik yang menerima sinyal analog, misalnya mata manusia dan kamera analog. Citra diskrit

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN Dalam tugas akhir ini penguji melakukan pengujian dari judul tugas akhir sebelumnya, yang dilakukan oleh Isana Mahardika. dalam tugas akhir tersebut membahas pendeteksian tempat

Lebih terperinci

Bab III Perangkat Pengujian

Bab III Perangkat Pengujian Bab III Perangkat Pengujian Persoalan utama dalam tugas akhir ini adalah bagaimana mengimplementasikan metode pengukuran jarak menggunakan pengolahan citra tunggal dengan bantuan laser pointer dalam suatu

Lebih terperinci

BAB 3 PERANCANGAN ALAT DAN PROGRAM

BAB 3 PERANCANGAN ALAT DAN PROGRAM BAB 3 PERANCANGAN ALAT DAN PROGRAM Sistem akuisisi data ekonomis berbasis komputer atau personal computer (PC) yang dibuat terdiri dari beberapa elemen-elemen sebagai berikut : Sensor, yang merupakan komponen

Lebih terperinci

BAB II LANDASAN TEORI. Citra digital sebenarnya bukanlah sebuah data digital yang normal,

BAB II LANDASAN TEORI. Citra digital sebenarnya bukanlah sebuah data digital yang normal, BAB II LANDASAN TEORI II.1 Citra Digital Citra digital sebenarnya bukanlah sebuah data digital yang normal, melainkan sebuah representasi dari citra asal yang bersifat analog [3]. Citra digital ditampilkan

Lebih terperinci

BAB 2 LANDASAN TEORI. Istilah komputer ( computer ) berasal dari bahasa latin computere yang berarti

BAB 2 LANDASAN TEORI. Istilah komputer ( computer ) berasal dari bahasa latin computere yang berarti BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Istilah komputer ( computer ) berasal dari bahasa latin computere yang berarti menghitung. Dalam bahasa Inggris berasal dari kata computer yang artinya menghitung.

Lebih terperinci

BAB II CITRA DIGITAL

BAB II CITRA DIGITAL BAB II CITRA DIGITAL DEFINISI CITRA Citra adalah suatu representasi(gambaran),kemiripan,atau imitasi dari suatu objek. DEFINISI CITRA ANALOG Citra analog adalahcitra yang bersifat kontinu,seperti gambar

Lebih terperinci

PERANCANGAN PENDETEKSI KEDIPAN MATA UNTUK FUNGSI KLIK PADA MOUSE MELALUI KAMERA WEB ABSTRAK

PERANCANGAN PENDETEKSI KEDIPAN MATA UNTUK FUNGSI KLIK PADA MOUSE MELALUI KAMERA WEB ABSTRAK PERANCANGAN PENDETEKSI KEDIPAN MATA UNTUK FUNGSI KLIK PADA MOUSE MELALUI KAMERA WEB Daniel / 0722020 Email : b_aso_1989@hotmail.com Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha

Lebih terperinci

GERAKAN BERJALAN OMNIDIRECTIONAL UNTUK ROBOT HUMANOID PEMAIN BOLA

GERAKAN BERJALAN OMNIDIRECTIONAL UNTUK ROBOT HUMANOID PEMAIN BOLA GERAKAN BERJALAN OMNIDIRECTIONAL UNTUK ROBOT HUMANOID PEMAIN BOLA Disusun oleh : Nama : Christian Hadinata NRP : 0822017 Jurusan Teknik Elektro, Fakultas Teknik,, Jl.Prof.Drg.Suria Sumantri, MPH No. 65,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 7 BAB 2 LANDASAN TEORI 2.1 Citra Digital Citra digital merupakan sebuah fungsi intensitas cahaya, dimana harga x dan y merupakan koordinat spasial dan harga fungsi f tersebut pada setiap titik merupakan

Lebih terperinci

BAB III METODE PENELITIAN. melacak badan manusia. Dimana hasil dari deteksi atau melacak manusia itu akan

BAB III METODE PENELITIAN. melacak badan manusia. Dimana hasil dari deteksi atau melacak manusia itu akan BAB III METODE PENELITIAN 3.1. Model Pengembangan Tujuan dari tugas akhir ini adalah untuk membuat sebuah aplikasi untuk mengatur kontras pada gambar secara otomatis. Dan dapat meningkatkan kualitas citra

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Pada bab ini akan dibahas teori yang berkaitan dengan pemrosesan data untuk sistem pendeteksi senyum pada skripsi ini, meliputi metode Viola Jones, konversi citra RGB ke grayscale,

Lebih terperinci

IMPLEMENTASI METODE SPEED UP FEATURES DALAM MENDETEKSI WAJAH

IMPLEMENTASI METODE SPEED UP FEATURES DALAM MENDETEKSI WAJAH IMPLEMENTASI METODE SPEED UP FEATURES DALAM MENDETEKSI WAJAH Fitri Afriani Lubis 1, Hery Sunandar 2, Guidio Leonarde Ginting 3, Lince Tomoria Sianturi 4 1 Mahasiswa Teknik Informatika, STMIK Budi Darma

Lebih terperinci

BAB 2 LANDASAN TEORI. Komputer berasal dari bahasa Latin computare yang artinya menghitung. Jadi

BAB 2 LANDASAN TEORI. Komputer berasal dari bahasa Latin computare yang artinya menghitung. Jadi BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Komputer berasal dari bahasa Latin computare yang artinya menghitung. Jadi komputer dapat diartikan sebagai alat untuk menghitung. Perkembangan teknologi dan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Istilah komputer (computer) berasal dari bahasa latin computere yang berarti menghitung. Dalam bahasa inggris dari kata computer yang berarti menghitung. Dapat

Lebih terperinci

TEKNIK PENGOLAHAN CITRA MENGGUNAKAN METODE KECERAHAN CITRA KONTRAS DAN PENAJAMAN CITRA DALAM MENGHASILKAN KUALITAS GAMBAR

TEKNIK PENGOLAHAN CITRA MENGGUNAKAN METODE KECERAHAN CITRA KONTRAS DAN PENAJAMAN CITRA DALAM MENGHASILKAN KUALITAS GAMBAR TEKNIK PENGOLAHAN CITRA MENGGUNAKAN METODE KECERAHAN CITRA KONTRAS DAN PENAJAMAN CITRA DALAM MENGHASILKAN KUALITAS GAMBAR Zulkifli Dosen Tetap Fakultas Ilmu Komputer Universitas Almuslim Email : Zulladasicupak@gmail.com

Lebih terperinci

BAB III DESAIN DAN IMPLEMENTASI SISTEM

BAB III DESAIN DAN IMPLEMENTASI SISTEM BAB III DESAIN DAN IMPLEMENTASI SISTEM 3.1 Sasaran Kemampuan Sistem Untuk menjawab beberapa pertanyaan pada rumusan masalah di bagian pendahuluan, sistem yang diusulkan harus memiliki kemampuan sebagai

Lebih terperinci

KAMERA PENDETEKSI GERAK MENGGUNAKAN MATLAB 7.1. Nugroho hary Mindiar,

KAMERA PENDETEKSI GERAK MENGGUNAKAN MATLAB 7.1. Nugroho hary Mindiar, KAMERA PENDETEKSI GERAK MENGGUNAKAN MATLAB 7.1 Nugroho hary Mindiar, 21104209 Mahasiswa Sarjana Strata Satu (S1) Jurusan Sistem Komputer, Fakultas Ilmu Komputer Universitas Gunadarma mindiar@yahoo.com

Lebih terperinci

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D 30 BAB IV HASIL PENELITIAN DAN PEMBAHASAN 4.1 Pengembangan Sistem Pengenalan Wajah 2D Penelitian ini mengembangkan model sistem pengenalan wajah dua dimensi pada citra wajah yang telah disiapkan dalam

Lebih terperinci

PENGOLAHAN CITRA DIGITAL ( DIGITAL IMAGE PROCESSING )

PENGOLAHAN CITRA DIGITAL ( DIGITAL IMAGE PROCESSING ) FAKULTAS TEKNIK INFORMATIKA PENGOLAHAN CITRA DIGITAL ( DIGITAL IMAGE PROCESSING ) Pertemuan 1 Konsep Dasar Pengolahan Citra Pengertian Citra Citra atau Image merupakan istilah lain dari gambar, yang merupakan

Lebih terperinci

Modul Pengantar Aplikasi Komputer (PAK 240) Prodi S1 P.Akuntansi UNY Pengampu : Annisa Ratna Sari, S.Pd PENGENALAN KOMPUTER

Modul Pengantar Aplikasi Komputer (PAK 240) Prodi S1 P.Akuntansi UNY Pengampu : Annisa Ratna Sari, S.Pd PENGENALAN KOMPUTER 1 PENGENALAN KOMPUTER DEFINISI KOMPUTER Istilah komputer mempunyai arti yang luas dan berbeda bagi setiap orang. Istilah komputer (computer) diambil dari bahasa Latin computare yang berarti menghitung

Lebih terperinci

BAB 2 LANDASAN TEORI. dari sudut pandang matematis, citra merupakan fungsi kontinyu dari intensitas cahaya

BAB 2 LANDASAN TEORI. dari sudut pandang matematis, citra merupakan fungsi kontinyu dari intensitas cahaya 5 BAB 2 LANDASAN TEORI 2.1 Citra Secara harfiah citra atau image adalah gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi kontinyu dari intensitas cahaya pada

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Seiring dengan perkembangan teknologi informasi dan semakin luasnya pemanfaatan teknologi komputer di berbagai bidang kehidupan, kebutuhan akan efisiensi pengelolaan

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM BAB 3 PERANCANGAN SISTEM Sistem vision yang akan diimplementasikan terdiri dari 2 bagian, yaitu sistem perangkat keras dan perangkat lunak. Perangkat lunak yang digunakan dalam sistem vision ini adalah

Lebih terperinci

BAB 2 LANDASAN TEORI. Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi

BAB 2 LANDASAN TEORI. Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi BAB 2 LANDASAN TEORI 2.1 Pengertian Perangkat Lunak Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan, struktur data yang

Lebih terperinci

Muhammad Zidny Naf an, M.Kom. Gasal 2015/2016

Muhammad Zidny Naf an, M.Kom. Gasal 2015/2016 MKB3383 - Teknik Pengolahan Citra Pengolahan Citra Digital Muhammad Zidny Naf an, M.Kom. Gasal 2015/2016 CITRA Citra (image) = gambar pada bidang 2 dimensi. Citra (ditinjau dari sudut pandang matematis)

Lebih terperinci

PERANCANGAN DAN REALISASI DINDING PRESENTASI INTERAKTIF DENGAN PENDETEKSIAN POSISI SINAR POINTER LASER SEBAGAI OPERATOR KURSOR MOUSE ABSTRAK

PERANCANGAN DAN REALISASI DINDING PRESENTASI INTERAKTIF DENGAN PENDETEKSIAN POSISI SINAR POINTER LASER SEBAGAI OPERATOR KURSOR MOUSE ABSTRAK PERANCANGAN DAN REALISASI DINDING PRESENTASI INTERAKTIF DENGAN PENDETEKSIAN POSISI SINAR POINTER LASER SEBAGAI OPERATOR KURSOR MOUSE Naftali Inafiar Yonida 0822077 Email : naph_yon@yahoo.com Jurusan Teknik

Lebih terperinci

Perancangan Prototipe Sistem Pencarian Tempat Parkir Kosong dengan Kamera Web Sebagai Pemantau

Perancangan Prototipe Sistem Pencarian Tempat Parkir Kosong dengan Kamera Web Sebagai Pemantau Perancangan Prototipe Sistem Pencarian Tempat Parkir Kosong dengan Kamera Web Sebagai Pemantau Bobby Wirawan / 0522010 E-mail : Leon_bobby@yahoo.com Jurusan Teknik Elektro, Fakultas Teknik, Jalan Prof.

Lebih terperinci

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN Rudy Adipranata 1, Liliana 2, Gunawan Iteh Fakultas Teknologi Industri, Jurusan Teknik Informatika, Universitas Kristen Petra Jl. Siwalankerto

Lebih terperinci

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Teknologi mengalami perkembangan pesat hingga saat ini, berbagai macam inovasi dan integrasi di segala aspek terutama pada sistem keamanan. Keamanan dasar yang sudah

Lebih terperinci

TRACKING OBJECT MENGGUNAKAN METODE TEMPLATE MATCHING BERBASIS STEREO VISION

TRACKING OBJECT MENGGUNAKAN METODE TEMPLATE MATCHING BERBASIS STEREO VISION TRACKING OBJECT MENGGUNAKAN METODE TEMPLATE MATCHING BERBASIS STEREO VISION Indra Pramana, M Zen Hadi Samsono, Setiawardhana Jurusan Telekomunkasi - Politeknik Elektronika Negeri Surabaya Institut Teknologi

Lebih terperinci

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

BAB III DESKRIPSI DAN PERANCANGAN SISTEM BAB III DESKRIPSI DAN PERANCANGAN SISTEM 3.1. DESKRIPSI KERJA SISTEM Gambar 3.1. Blok diagram sistem Satelit-satelit GPS akan mengirimkan sinyal-sinyal secara kontinyu setiap detiknya. GPS receiver akan

Lebih terperinci

DAFTAR ISI. Lembar Pengesahan Penguji... iii. Halaman Persembahan... iv. Abstrak... viii. Daftar Isi... ix. Daftar Tabel... xvi

DAFTAR ISI. Lembar Pengesahan Penguji... iii. Halaman Persembahan... iv. Abstrak... viii. Daftar Isi... ix. Daftar Tabel... xvi DAFTAR ISI Halaman Judul... i Lembar Pengesahan Pembimbing... ii Lembar Pengesahan Penguji... iii Halaman Persembahan... iv Halaman Motto... v Kata Pengantar... vi Abstrak... viii Daftar Isi... ix Daftar

Lebih terperinci

DESAIN DAN IMPLEMENTASI KONTROL ROBOT JARAK JAUH DENGAN KOMUNIKASI WIFI

DESAIN DAN IMPLEMENTASI KONTROL ROBOT JARAK JAUH DENGAN KOMUNIKASI WIFI Powered by TCPDF (www.tcpdf.org) DESAIN DAN IMPLEMENTASI KONTROL ROBOT JARAK JAUH DENGAN KOMUNIKASI WIFI Edy Cahyono¹, Istikmal², M.ary Murti³ ¹Teknik Telekomunikasi,, Universitas Telkom Abstrak Penggunaan

Lebih terperinci

MACAM-MACAM INPUT DAN OUTPUT KOMPUTER DAN 4 BAGIAN CPU

MACAM-MACAM INPUT DAN OUTPUT KOMPUTER DAN 4 BAGIAN CPU TUGAS PIK MACAM-MACAM INPUT DAN OUTPUT KOMPUTER DAN 4 BAGIAN CPU Disusun Oleh : Muhammad Raihan Jaya 2014010015 MI / V Dosen : Matalangi.,S.Kom.,M.Kom ALAT INPUT DAN OUTPUT PADA KOMPUTER BESERTA FUNGSINYA

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Pengolahan Citra Pengolahan citra (image processing) merupakan proses untuk mengolah pixel-pixel dalam citra digital untuk tujuan tertentu. Beberapa alasan dilakukan pengolahan

Lebih terperinci

BAB I TINJAUAN UMUM SISTEM OPERASI

BAB I TINJAUAN UMUM SISTEM OPERASI BAB I TINJAUAN UMUM SISTEM OPERASI Sistem operasi berkaitan erat dengan pengoperasian computer. Computer merupakan perangkat elektronik yang dirancang untuk membantu penyelesaian permasalahan yang dihadapi

Lebih terperinci

DAFTAR ISI Daerah SR(Special Relay) Daerah TR(Tempory Relay) Daerah DM (Data Memory) Daerah HR(Holding Relay)..

DAFTAR ISI Daerah SR(Special Relay) Daerah TR(Tempory Relay) Daerah DM (Data Memory) Daerah HR(Holding Relay).. DAFTAR ISI HALAMAN JUDUL. i LEMBAR PENGESAHAN. ii LEMBAR PERNYATAAN. iii KATA PENGANTAR..... iv-v UCAPAN TERIMA KASIH vi-vii DAFTAR ISI.. viii-xiii DAFTAR GAMBAR xiv-xv DAFTAR TABEL. xvi INTISARI. xvii

Lebih terperinci

REALISASI SISTEM PENJEJAKAN WAJAH DENGAN ALGORITMA FISHERFACE BERBASIS RASPBERRY PI ABSTRAK

REALISASI SISTEM PENJEJAKAN WAJAH DENGAN ALGORITMA FISHERFACE BERBASIS RASPBERRY PI ABSTRAK REALISASI SISTEM PENJEJAKAN WAJAH DENGAN ALGORITMA FISHERFACE BERBASIS RASPBERRY PI Disusun oleh : Natalio Andor Pangihutan Sihite (1022052) Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen

Lebih terperinci

Aplikasi Raspberry Pi Untuk Prototype Pengendalian Mobil Jarak Jauh Melalui Web Browser ABSTRAK

Aplikasi Raspberry Pi Untuk Prototype Pengendalian Mobil Jarak Jauh Melalui Web Browser ABSTRAK Aplikasi Raspberry Pi Untuk Prototype Pengendalian Mobil Jarak Jauh Melalui Web Browser Disusun Oleh: Oktavianus Yosudha (0922029) Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1 Kebutuhan Sistem Kebutuhan fungsional sistem merupakan paparan mengenai fitur-fitur yang akan dimasukan kedalam aplikasi yang akan dibangun. Fitur fitur tersebut harus memenuhi

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Gambaran Umum Sistem Pada tugas akhir ini, akan dibuat aplikasi desktop berbasis komputer menggunakan bahasa pemrograman VB.NET yang diberi nama Aplikasi virtual

Lebih terperinci

Copyright Tabratas Tharom 2003 IlmuKomputer.Com

Copyright Tabratas Tharom 2003 IlmuKomputer.Com Pengolahan Citra Pada Mobil Robot Tabratas Tharom tharom@yahoo.com Copyright Tabratas Tharom 2003 IlmuKomputer.Com BAB 1 PENDAHULUAN 1.1. PERANCANGAN PENGOLAHAN CITRA SEBUAH MOBIL ROBOT Perancangan pengolahan

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. menerapkan Pengontrolan Dan Monitoring Ruang Kelas Dengan Menggunakan

BAB 4 IMPLEMENTASI DAN EVALUASI. menerapkan Pengontrolan Dan Monitoring Ruang Kelas Dengan Menggunakan BAB 4 IMPLEMENTASI DAN EVALUASI Pada bab ini akan dijelaskan mengenai implementasi dan evaluasi pada saat menerapkan Pengontrolan Dan Monitoring Ruang Kelas Dengan Menggunakan Controller Board ARM2368.

Lebih terperinci

LEMBAR PENGESAHAN TUGAS AKHIR...

LEMBAR PENGESAHAN TUGAS AKHIR... DAFTAR ISI HALAMAN SAMPUL... i HALAMAN JUDUL... ii PERNYATAAN... iii LEMBAR PENGESAHAN TUGAS AKHIR... iv BERITA ACARA TUGAS AKHIR...v KATA PENGANTAR... vi ABSTRAK... vii ABSTRACT... viii DAFTAR ISI...

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Citra Citra merupakan salah satu komponen multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Meskipun sebuah citra kaya akan informasi, namun sering

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Komputer (computer) berasal dari bahasa Latin computare yang berarti menghitung. Komputer mempunyai arti yang sangat luas dan berbeda untuk orang yang berbeda.

Lebih terperinci

Aplikasi Raspberry Pi pada Perangkat Absensi Portable Menggunakan RFID

Aplikasi Raspberry Pi pada Perangkat Absensi Portable Menggunakan RFID Aplikasi Raspberry Pi pada Perangkat Absensi Portable Menggunakan RFID Disusun Oleh: Panji Rakhmat Ginanjar (0922039) Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof.Drg.Suria

Lebih terperinci

PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL

PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL Pelita Informatika Budi Darma, Volume : IV, Nomor:, Agustus 23 ISSN : 23-9425 PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL Harry Suhartanto Manalu (9259) Mahasiswa

Lebih terperinci

Sistem Deteksi Bola Berdasarkan Warna Bola Dan Background Warna Lapangan Pada Robot Barelang FC

Sistem Deteksi Bola Berdasarkan Warna Bola Dan Background Warna Lapangan Pada Robot Barelang FC Sistem Deteksi Bola Berdasarkan Warna Bola Dan Background Warna Lapangan Pada Robot Barelang FC Hanjaya Mandala (1).EkoRudiawan,S.ST (2).HendawanSoebhakti,ST.,MT (3). (1) (2) (3) Politeknik Negeri Batam

Lebih terperinci

Rancang Bangun Sistem Pengujian Distorsi Menggunakan Concentric Circle Method Pada Kaca Spion Kendaraan Bermotor Kategori L3 Berbasis Edge Detection

Rancang Bangun Sistem Pengujian Distorsi Menggunakan Concentric Circle Method Pada Kaca Spion Kendaraan Bermotor Kategori L3 Berbasis Edge Detection JURNAL TEKNIK POMITS Vol., No., (22) -6 Rancang Bangun Sistem Pengujian Distorsi Menggunakan Concentric Circle Method Pada Kaca Spion Kendaraan Bermotor Kategori L3 Berbasis Edge Detection Muji Tri Nurismu

Lebih terperinci

Bab 3. Perancangan Sistem

Bab 3. Perancangan Sistem Bab 3 Perancangan Sistem 3.1 Aplikasi Serupa 3.1.1 SODIC (Sound and Digital Classroom) SODIC adalah sebuah software tool yang membantu dosen/guru dalam proses mengajar di laboratorium bahasa dan hanya

Lebih terperinci

BAB II DASAR TEORI. pemperbaiki kualitas citra agar mendapatkan hasil citra yang baik dan mudah

BAB II DASAR TEORI. pemperbaiki kualitas citra agar mendapatkan hasil citra yang baik dan mudah BAB II DASAR TEORI 2.1 Visi Komputer (Computer Vision) Visi komputer merupakan ilmu yang mempelajari bagaimana komputer dapat mengenali objek yang akan diamati/ diobservasi. Hal ini dilakukan bertujuan

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Dalam merancang sistem pengendali sepeda motor berbasis android ini, terdapat beberapa masalah yang harus dicermati dan dipecahkan. Permasalahan tersebut

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

Perangkat Keras (Hardware) Komputer dan Fungsinya. Didiek Prasetya M.sn

Perangkat Keras (Hardware) Komputer dan Fungsinya. Didiek Prasetya M.sn Perangkat Keras (Hardware) Komputer dan Fungsinya Didiek Prasetya M.sn Perangkat keras (hardware) komputer dan fungsinya- Secara umum perangkat komputer terbagi menjadi 3 bagian yaitu Hardware,software

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER Dalam analisis dan perancangan sistem program aplikasi ini, disajikan mengenai analisis kebutuhan sistem yang digunakan, diagram

Lebih terperinci

Model Citra (bag. 2)

Model Citra (bag. 2) Model Citra (bag. 2) Ade Sarah H., M. Kom Resolusi Resolusi terdiri dari 2 jenis yaitu: 1. Resolusi spasial 2. Resolusi kecemerlangan Resolusi spasial adalah ukuran halus atau kasarnya pembagian kisi-kisi

Lebih terperinci

PERANCANGAN PERGERAKAN WEBCAM BERDASARKAN PERUBAHAN POSISI WAJAH MENGGUNAKAN METODE EIGENFACE BERBASIS RASPBERRY PI

PERANCANGAN PERGERAKAN WEBCAM BERDASARKAN PERUBAHAN POSISI WAJAH MENGGUNAKAN METODE EIGENFACE BERBASIS RASPBERRY PI PERANCANGAN PERGERAKAN WEBCAM BERDASARKAN PERUBAHAN POSISI WAJAH MENGGUNAKAN METODE EIGENFACE BERBASIS RASPBERRY PI Disusun oleh : Regina Vania Cahyadi (1122003) Jurusan Teknik Elektro, Fakultas Teknik,

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1. Citra Digital Istilah citra biasanya digunakan dalam bidang pengolahan citra yang berarti gambar. Suatu citra dapat didefinisikan sebagai fungsi dua dimensi, di mana dan adalah

Lebih terperinci

BAB III METODE PENELITIAN. tracking obyek. Pada penelitian tugas akhir ini, terdapat obyek berupa bola. Gambar 3.1. Blok Diagram Penelitian

BAB III METODE PENELITIAN. tracking obyek. Pada penelitian tugas akhir ini, terdapat obyek berupa bola. Gambar 3.1. Blok Diagram Penelitian BAB III METODE PENELITIAN 3.1 Metode Penelitian Metode penelitian yang digunakan dalam pengerjaan Tugas Akhir ini adalah studi literatur, pembuatan program serta melakukan deteksi dan tracking obyek. Pada

Lebih terperinci

Analisa Hasil Perbandingan Metode Low-Pass Filter Dengan Median Filter Untuk Optimalisasi Kualitas Citra Digital

Analisa Hasil Perbandingan Metode Low-Pass Filter Dengan Median Filter Untuk Optimalisasi Kualitas Citra Digital Analisa Hasil Perbandingan Metode Low-Pass Filter Dengan Median Filter Untuk Optimalisasi Kualitas Citra Digital Nurul Fuad 1, Yuliana Melita 2 Magister Teknologi Informasi Institut Saint Terapan & Teknologi

Lebih terperinci

PENDETEKSI TEMPAT PARKIR MOBIL KOSONG MENGGUNAKAN METODE CANNY

PENDETEKSI TEMPAT PARKIR MOBIL KOSONG MENGGUNAKAN METODE CANNY PENDETEKSI TEMPAT PARKIR MOBIL KOSONG MENGGUNAKAN METODE CANNY Minati Yulianti 1, Cucu Suhery 2, Ikhwan Ruslianto 3 [1] [2] [3] Jurusan Sistem Komputer, Fakultas MIPA Universitas Tanjungpura Jl. Prof.

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1 Diagram Blok Sistem berikut: Secara umum sistem yang dibangun dijelaskan dalam diagram blok sistem 6 1 Baterai Sensor: - GPS 2 Sensor Suhu dan Kelembapan 4 Mikrokontroler

Lebih terperinci

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL 2.1 Citra Secara harafiah, citra adalah representasi (gambaran), kemiripan, atau imitasi pada bidang dari suatu objek. Ditinjau dari sudut pandang matematis,

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 4 IMPLEMENTASI DAN EVALUASI BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Spesifikasi Sistem 4.1.1 Spesifikasi Perangkat Keras Proses pengendalian mobile robot dan pengenalan image dilakukan oleh microcontroller keluarga AVR, yakni ATMEGA

Lebih terperinci

PENERAPAN GRABBER PADA OPTICAL FLOW UNTUK MENGGERAKKAN CURSOR MOUSE MENGGUNAKAN BOLPOIN

PENERAPAN GRABBER PADA OPTICAL FLOW UNTUK MENGGERAKKAN CURSOR MOUSE MENGGUNAKAN BOLPOIN PENERAPAN GRABBERPADA OPTICAL FLOWUNTUK MENGGERAKKAN CURSORMOUSEMENGGUNAKAN BOLPOIN PENERAPAN GRABBER PADA OPTICAL FLOW UNTUK MENGGERAKKAN CURSOR MOUSE MENGGUNAKAN BOLPOIN Anton Setiawan Honggowibowo,

Lebih terperinci