Anda di halaman 1dari 75

TUGAS AKHIR

Sebagai Salah Satu Syarat Untuk Memperoleh Gelar


SARJANA TEKNIK
Pada Jurusan Teknik Elektro Universitas Malikussaleh

PERANCANGAN DAN IMPLEMENTASI SISTEM KONTROL


QUADCOPTER MENGGUNAKAN PENGOLAHAN CITRA WARNA

Oleh

MULQI MAULI FAHMI


NIM: 160150116

FAKULTAS TEKNIK
UNIVERSITAS MALIKUSSALEH
LHOKSEUMAWE
2020
SURAT PERNYATAAN ORISINALITAS

Saya yang bertanda tangan di bawah ini:

Nama : MULQI MAULI FAHMI


NIM : 160150116
Jurusan : Teknik Elektro
Judul : Perancangan dan Implementasi Sistem Kontrol
Quadcopter Menggunakan Pengolahan Citra warna

Dengan ini menyatakan dengan sesungguhnya bahwa di dalam Tugas Akhir ini
adalah benar karya sendiri bukan merupakan jiplakan dari institusi lain.
Apabila di kemudian hari ditemukan ketidak aslian di dalam tugas akhir ini, maka
saya bersedia diberikan sanksi akademik sesuai yang berlaku dalam peraturan
Universitas Malikussaleh.

Lhokseumawe, 24 Desember 2020


Hormat saya,

Mulqi Mauli Fahmi


NIM: 160150116

i
LEMBAR PENGESAHAN PEMBIMBING

Judul TGA : Perancangan dan Implementasi Sistem Kontrol


Quadcopter Menggunakan Pengolahan Citra Warna
Nama : Mulqi Mauli Fahmi
NIM : 160150116
Jusuran/Prodi : Teknik Elektro
Tanggal Sidang : 16 Desember 2020

Bukit Indah, 24 Desember 2020


Penulis,

Mulqi Mauli Fahmi


NIM: 160150116

Menyetujui:
Pembimbing Utama, Pembimbing Pendamping,

Dr. Muhammad Daud, S.T., M.T. Andik Bintoro, S.T., M.Eng.


NIP 197610292003121003 NIP 198007102006041006

ii
LEMBAR PENGESAHAN FAKULTAS

Judul TGA : Perancangan dan Implementasi Sistem Kontrol


Quadcopter Menggunakan Pengolahan Citra Warna
Nama : Mulqi Mauli Fahmi
NIM : 160150116
Jurusan/Prodi : Teknik Elektro
Tanggal Sidang : 16 Desember 2020

Bukit Indah, 24 Desember 2020

Disahkan oleh: Disetujui oleh:


Dekan Fakultas Teknik, Ketua Jurusan,

Dr. Muhammad, S.T., M.Sc. Andik Bintoro, S.T., M.Eng.


NIP 196805252002121004 NIP 198007102006041006

iii
ABSTRAK
Beberapa tahun belakangan ini, penggunaan drone semakin digemari di Indonesia
terutama untuk keperluan peliputan berita seperti video bencana, kemacetan lalu
lintas, dan selebrasi acara tertentu. Penelitian ini bertujuan merancang dan
mengimplementasikan sistem kontrol pada drone jenis quadcopter yaitu drone
yang memiliki empat baling-baling, dengan berbasis pada pengolahan citra warna.
Quadcopter yang digunakan adalah Parrot AR Drone 2.0 yang dilengkapi dengan
sensor dan kamera sehingga dapat memantau suatu obyek dari jarak jauh. Sistem
kontrol quadcopter ini dibangun menggunakan program komputer berbasis bahasa
Phyton yang memberikan instruksi kepada quadcopter untuk mendeteksi obyek
tertentu berdasarkan pengolahan citra warna. Dengan pengolahan citra ini maka
quadcopter memiliki banyak kemampuan untuk melakukan misi seperti take off,
landing, dan tracking object. Quadcopter mengolah warna citra yang
diperolehnya dari sensor vision (webcam) dan dijadikannya sebagai obyek
tracking. Pengolahan citra berupa color filtering yang dilakukan pada ruang
warna model hue saturation value (HSV) dan digunakan oleh quadcopter sebagai
target untuk diikutinya sesuai instruksi dari program komputer. Berdasarkan hasil
pengujian, diperoleh bahwa quadcopter mampu mengenali dan mengikuti dengan
baik citra yang dijadikan obyek target serta mampu bergerak kembali menuju
obyek target ketika quadcopter dipindahkan secara manual. Adapun waktu
diperlukan untuk kembali ke obyek target adalah 10 detik meskipun quadcopter
berada pada jarak yang berbeda-beda yaitu 40 cm, 60 cm, 80 cm, dan 100 cm.

Kata Kunci: Sistem kontrol, quadcopter, Parrot AR Drone 2.0, pengolahan citra
warna, hue saturation value (HSV), tracking object.

iv
KATA PENGANTAR

Puji syukur kepada Allah SWT berkat karunia, rahmat, dan hidayah-Nya
yang tercurah limpah sehingga penulis dapat menyelesaikan Tugas Akhir yang
berjudul “Perancangan Dan Implementasi Sistem Kontrol Quadcopter
Menggunakan Pengolahan Citra Warna”.
Tugas akhir ini dibuat sebagai syarat untuk menyelesaikan pendidikan
sarjana (S-1) di Teknik Elektro Fakultas Teknik Universitas Malikussaleh. Penulis
berharap kedepannya tugas akhir ini dapat menjadi inspirasi bagi mahasiswa
dalam mengembangkan penelitian ini.
Dalam penyusunan tugas akhir ini banyak kendala yang dihadapi penulis
dalam menyusunnya, namun berkat bantuan berbagai pihak, tugas akhir ini dapat
diselesaikan oleh penulis. Pada kesempatan ini penulis ingin mengucapkan terima
kasih kepada:
1. Ayah dan Ibu yang telah memberikan motivasi dan semangat kepada penulis.
2. Bapak Dr. Herman Fithra, S.T., M.T. selaku Rektor Universitas Malikussaleh.
3. Bapak Dr. Muhammad, S.T., M.Sc. selaku Dekan Fakultas Teknik.
4. Bapak Andik Bintoro, S.T., M.Eng. selaku Ketua Jurusan Teknik Elektro
Universitas Malikussaleh sekaligus sebagai Dosen Pembimbing II yang telah
membimbing saya dalam penelitian tugas akhir ini.
5. Bapak Arnawan Hasibuan, S.T., M.T. selaku Dosen Pembimbing Akademik
yang telah membimbing saya dalam hal akademik.
6. Bapak Dr. Muhammad Daud, S.T., M.T. selaku Dosen Pembimbing I yang
telah membimbing saya dalam penelitian tugas akhir ini.
7. Rekan-rekan seperjuangan khususnya angkatan 2016.

Penulis menyadari bahwa buku tugas akhir ini jauh dari kesempurnaan
karena keterbatasan pengetahuan, untuk itu kritik dan saran sangat di harapkan
agar pada masa yang akan datang penulis dapat melakukan perbaikan untuk
penulisan ilmiah lainnya.

v
Akhirnya kepada Allah jualah kita menyerahkan segalanya semoga
penulisan ini dapat manfaat dan terima kasih.

Penulis,

Mulqi Mauli Fahmi


NIM 160150116

vi
DAFTAR ISI

SURAT PERNYATAAN ORISINALITAS..........................................................i


LEMBAR PENGESAHAN PEMBIMBING.......................................................ii
LEMBAR PENGESAHAN FAKULTAS...........................................................iii
ABSTRAK.............................................................................................................iv
KATA PENGANTAR............................................................................................v
DAFTAR ISI........................................................................................................vii
DAFTAR GAMBAR.............................................................................................ix
DAFTAR TABEL.................................................................................................xi
BAB I PENDAHULUAN......................................................................................1
1.1. Latar Belakang..............................................................................................1
1.2. Rumusan Masalah.........................................................................................2
1.3. Tujuan...........................................................................................................2
1.4. Manfaat.........................................................................................................3
1.5. Batasan Masalah...........................................................................................3
1.6. Sistematika Penulisan...................................................................................4
BAB II DASAR TEORI.........................................................................................5
2.1. Quadcopter....................................................................................................5
2.2. Pengertian Citra Digital ...............................................................................6
2.3. Hue Saturation Value (HSV)........................................................................7
2.3.1. Sistem Ruang Warna HSV (Hue Saturation Value)..............................8
2.3.2. Sistem Koordinat Warna RGB (NTSC)...............................................12
2.4. Pendeteksi Citra Warna...............................................................................15
2.5. Pengolahan Citra.........................................................................................17
2.6. Open CV.....................................................................................................17
2.7. Color Filtering.............................................................................................19
2.8. Sistem Operasi Linux Ubuntu.....................................................................20

vii
BAB III METODE PENELITIAN.....................................................................21
3.1. Tahap-tahap Penelitian................................................................................21
3.2. Desain Sistem..............................................................................................23
3.3. Deteksi Warna.............................................................................................23
3.4. Komunikasi Sistem.....................................................................................26
3.5. Pergrerakan Drone......................................................................................27
BAB IV HASIL DAN PEMBAHASAN............................................................29
4.1. Realisasi Sistem...........................................................................................29
4.2. Implementasi Program................................................................................30
4.2.1 Menghubungkan Drone dengan API Client.........................................30
4.2.2. Mendekteksi dan Melacak Objek.........................................................30
4.3. Pengujian ....................................................................................................31
4.3.1. Pengujian Drone pada saat Target Diam..............................................33
4.3.2. Pengujian Drone pada saat Target Dipindahkan..................................34
4.3.3. Pengujian Drone pada saat Dua Target Berbeda Warna......................35
4.3.4. Program Sistem Kontrol Drone menggunakan Pengolahan Citra...........
Warna ………………………………………………………………..41
BAB V KESIMPULAN DAN SARAN..............................................................50
5.1. Kesimpulan.................................................................................................50
5.2. Saran............................................................................................................50
DAFTAR PUSTAKA...........................................................................................51
LAMPIRAN..........................................................................................................53

viii
DAFTAR GAMBAR
Gambar 2.1. Parrot AR. Drone 2.0..........................................................................5

Gambar 2.2. Koordinat Citra Digital.......................................................................6

Gambar 2.3.Ilustrasi Digitalisasi Citra pixel pada koordinat ..................................7

Gambar 2.4. Ruang Warna HSV..............................................................................8

Gambar 2.5. Nilai hue, saturation dan value...........................................................9

Gambar 2.6. Cakram Warna HSV...........................................................................9

Gambar 2.7. Ruang Warna HSV Sebagai Roda Warna.........................................10

Gambar 2.8. Koordinat HSV dalam Kubus Warna RGB......................................10

Gambar 2.9 Tristimulus Warna dan Diagram Krominan Untuk Sistem Penerima
Utama NTSC...................................................................................13

Gambar 2.10. Sistem Ruang Warna NTSC RGB..................................................14

Gambar 2.11. Spektrum Cahaya Nampak..............................................................15

Gambar 2.12. Warna Cahaya RGB........................................................................16

Gambar 2.13. Proses Pengolahan Citra..................................................................17

Gambar 2.14. Blok Diagram Struktur Open CV....................................................18

Gambar 2.15. Cara Mengaplikasikan Open CV....................................................19

Gambar 2.16. Pengaplikasi Color Filtering...........................................................20

Gambar 2.17. Sistem Operasi Linux Ubuntu.........................................................20

Gambar 3.1. Diagram Alur Penelitian...................................................................21

Gambar 3.2. Blok Diagram Desain Sistem............................................................23

Gambar 3.3. Perancangan Luas pada Frame Pembacaan......................................24

Gambar 3.4. Diagram Deteksi Warna....................................................................26

Gambar 3.5. Block Komunikasi pada Sistem........................................................26

ix
Gambar 3.6. Pergerakan Parrot AR. Drone 2.0.....................................................27

Gambar 3.7. Alur Kontrol Pergerakan menggunakan Pengolahan Citra...............28

Gambar 4.1. Bentuk Keseluruhan Alat.................................................................29

Gambar 4.2. Mendekteksi dan Melacak Objek......................................................31

Gambar 4.3. Luas Deteksi Kamera AR Drone.......................................................32

Gambar 4.4. Grafik Pengujian Sistem Kontrol pada saat Target Diam.................33

Gambar 4.5. Grafik Pengujian Sistem Kontrol pada saat Target Dipindahkan.....35

Gambar 4.6. a. Target Warna yang telah ditentukan b. Target Warna yang tidak
ditentukan ............................................................................................36

Gambar 4.7. Pengujian dengan Target yang ditentukan........................................37

Gambar 4.8. Pengujian dengan Target yang tidak ditentukan..............................38

Gambar 4.9. Pengujian pada saat dua Target Warna Bermunculan.......................39

Gambar 4.10. Posisi Drone pada Pengujian dua Warna Bermunculan..................40

Gambar 4.11. Program Kerja Sistem Main.py......................................................41

Gambar 4.12. Program Kerja Sistem VideoWritter.py...........................................48

x
DAFTAR TABEL
Tabel 2.1. Gabungan Nilai Warna Dasar dan Krominan untuk Warna Pokok pada
Sistem Penerima Utama NTSC............................................................13

Tabel 4.1. Pengujian Drone pada saat Target Diam .............................................33

Tabel 4.2. Pengujian Drone pada saat Target Dipindahkan ..................................34

Tabel 4.3. Pengujian Drone dengan Warna Target yang Berbeda ........................36

xi
BAB I
PENDAHULUAN

1.1. Latar Belakang

Unmanned Aerial Vehicle (UAV) atau pesawat tanpa awak atau drone
adalah sebuah mesin yang mampu terbang dan dikendalikan oleh pilot dari jarak
jauh. Beberapa tahun belakangan, UAV mulai digemari di Indonesia terutama
untuk keperluan peliputan berita seperti peliputan video bencana, kemacetan lalu
lintas ataupun selebrasi acara tertentu. Industri hiburan dan sipil juga
menggunakan UAV sebagai alat penangkap foto maupun video yang dirasa lebih
baik hasilnya jika diambil dari udara. Parrot AR Drone 2.0 merupakan salah satu
UAV jenis quadrotor. Parrot AR. Drone 2.0 merupakan salah satu contoh
pesawat tanpa awak yang berjenis multirotor dan biasa digunakan untuk riset [1].

Sejak dirilisnya Parrot AR Drone 2.0, banyak programmer dan developer


yang mengembangkan sistem Parrot AR Drone 2.0. Banyak produsen drone yang
berkonsentrasi mengembangkan sistem pengolahan citra digital. Sehingga, banyak
penelitian maupun lomba dengan menggunakan Parrot AR Drone 2.0 yang telah
dikembangkan. Lomba tersebut salah satunya mengharuskan Parrot AR. Drone
2.0 untuk terbang dan mendarat pada landasan secara autonomous dengan
memanfaatkan pengolahan citra digital untuk mendeteksi landasan. Deteksi objek
dalam pengolahan citra digital adalah suatu proses yang digunakan untuk
menentukan keberadaan objek tertentu di dalam suatu citra digital [2].
Dengan adanya permasalah tersebut maka, untuk mendeteksi objek diperlukannya
deteksi warna sebagai langkah awal untuk bisa mendeteksi objek. Pada penelitian
ini dilakukan implementasi pengolahan citra pada quadcopter. Quadcopter yang
digunakan adalah Parrot AR. Drone 2.0, karena quadcopter jenis ini merupakan
salah satu quadcopter yang telah memiliki built in camera sehingga tidak
diperlukan kamera tambahan sehingga dapat memaksimalkan pergerakan

1
2

quadcopter. Penelitian ini difokuskan kepada cara pengiriman data citra dari
quadcopter ke komputer dan bagaimana mengolah data tersebut menjadi sebuah
pendeteksi warna. Agar kamera quadcopter bisa digunakan untuk mengenali
warna maka akan digunakan metode color filtering HSV. Pemilihan HSV ini
karena menurut [3-4] metode ini memiliki keuntungan yaitu sederhana dalam
pemrograman dan prosesnya cepat sehingga cocok untuk aplikasi real time. Data
citra yang didapatkan dari kamera quadcopter akan dikirim pada komputer untuk
dilakukan pengolahan citra, data yang diambil merupakan data RGB yang akan
dikonveter pada ruang warna HSV yang selanjutkan akan dilakukan pemisahan
berdasarkan range warna yang sudah ditentukan.

Beberapa penelitian yang menerapkan pengolahan citra seperti pada


ringkas dalam pengoperasiannya. Quadcopter juga dapat dikendalikan jarak jauh
sehingga dapat digunakan untuk menggantikan peran manusia. Selain itu
quadcopter dapat digunakan sebagai deteksi dan following objek [5].

1.2. Rumusan Masalah


Berdasarkan latar belakang di atas, rumusan masalah yang akan dibahas
dalam penelitian ini adalah:
1. Bagaimana koordinat sesuai dengan pergerakan pada Quadcopter
menggunakan pengolahan citra warna.
2. Bagaimana respon pengolahan citra warna berpengaruh pada posisi dan
jarak tertentu.

1.3. Tujuan
Tujuan dari pembuatan penelitian tugas akhir ini adalah:
1. Untuk mengetahui koordinat pada Quadcopter yang akan di control
dengan citra warna.
2. Untuk mengetahui respon Quadcopter terhadap Citra Warna dimana
akurasi pada Quadcopter.
3

3. Untuk mengembangkan sistem control pengolahan citra warna pada


Quadcopter.

1.4. Manfaat
Adapun manfaat yang dapat diperoleh dari tugas akhir ini adalah:
1. Program ini menumbuhkan kreativitas dan inovasi bagi pelaksana dalam
mengembangkan teknologi di Era sekarang yang mampu memberikan
manfaaat bagi mahasiswa dikalangan akademik.
2. Sebagai referensi untuk produksi pesawat tanpa awak menggunakan
sistem kontrol pengolahan citra warna.
3. Mengimplementasi Quadcopter untuk sarana kebutuhan media
pembelajaran baik di dalam maupun luar akademik.

1.5. Batasan Masalah


Berdasarkan latar belakang diatas dan untuk menghindari meluasnya
masalah maka diberikan batasan-batasan masalah sebagai berikut:
1. Hanya membahas mengenai rancangan pada Quadcopter
2. Sitem kontrol menggunakan pengolahan citra warna, yaitu merah, hijau,
dan biru.
3. Tidak membahas sistem pengiriman data, gambar, dan video.
4. Hanya membahas sensor pada camera pada deteksi warna meah, hijau, dan
biru.
.
4

1.6. Sistematika Penulisan


Dalam penyusunan tugas akhir ini penulis menyusun dengan sistematika
bab dan juga sub bab, sehingga penulis membentuk dan menyusun tugas akhir ini
dengan pedoman format dan sistematika sebagai berikut :

BAB I PENDAHULUAN
Bab ini memuat tentang latar belakang, rumusan masalah, batasan
masalah, tujuan penelitian, manfaat penelitian, metoda penelitian,
dan sistematika penulisan.

BAB II DASAR TEORI


Bab ini memuat tentang dasar teori yang menjelaskan tentang
fungsi dari perangkat-perangkat yang digunakan dalam pembuatan
tugas akhir ini.

BAB III METODOLOGI PENELITIAN


Bab ini memuat tentang penjelasan mengenai cara melakukan
penelitian mulai dari desain, implementasi, dan pengujian
perangkat yang akan dibuat.

BAB IV HASIL DAN PEMBAHASAN


Bab ini berisikan tentang hasil dan pembahasan dari hasil
penelitian yang telah dilakukan dengan hasil pengujian peralatan
yang telah dilakukan penelitian.

BAB V PENUTUP
Dalam Bab ini berisikan tentang ringkasan dan kesimpulan dari
pada hasil analisis dan pembahasan beserta saran-saran.
BAB II
DASAR TEORI

2.1. Quadcopter

Quadcopter adalah sebuah kerangka berbentuk menyilang yang memiliki


empat buah motor Pada tiap motor terpasang baling-baling yang berfungsi sebagai
penggerak dari quadcopter. Baling-baling tersebut menghasilkan aliran udara
yang memiliki daya angkat agar quadcopter dapat terbang. Quadcopter memiliki
empat pergerakan yaitu roll (gerakan ke kiri dan kanan searah sumbu y), pitch
(gerakan ke depan belakang searah sumbu x), gaz (gerakan ke atas dan bawah
searah sumbu z), serta yaw (gerakan berputar kiri dan kanan yang berotasi pada
sumbu z) [6]. Untuk detail dari pergerakan bisa dilihat pada Gambar 2.1 berikut
ini.

Gambar 2.1. Parrot AR. Drone 2.0 [6].

Jumlah baling-baling bisa bermacam-macam, yaitu:


1. Tiga baling-baling (3Copter)
2. Empat baling-baling (QuadCopter)
3. Enam baling-baling (HexaCopter)
4. Delapan baling-baling (OctaCopter).

5
6

2.2. Pengertian Citra Digital

Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan
N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik
koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik
tersebut. Apabila nilai x,y dan nilai amplitudo f secara keseluruhan berhingga
(finite) dan bernilai distrit maka dapat dikatakan bahwa citra tersebut adalah citra
digital. Gambar 2.2 menunjukkan posisi citra koordinat citra digital [7].

Gambar 2.2. Koordinat Citra Digital [7].

Citra digital dapat ditulis dalam bentuk matrik sebagai berikut.


 f (0, 0) f (0,1)  f (0, N  1) 
 f (1, 0) f (1,1)  f (1, N  1) 
f ( x, y )  
    
 
 f ( M  1, 0) f ( M  1,1)  f ( M  1, N  1)  ...............................(2.1)

Nilai pada suatu irisan antara baris dan kolom (pada posisi x,y) disebut
dengan picture elements, image elements, pels, dan pixels. Istilah pixels paling
7

sering digunakan pada citra digital. Gambar 2.3 menunjukkan ilustrasi digitalisasi
citra dengan M=16 baris dan N=16 kolom.

Gambar 2.3. Ilustrasi Digitalisasi Citra pixel pada koordinat [7].

2.3. Hue Saturation Value (HSV)

Istilah kromatis merupakan kualitas warna cahaya yang ditentukan oleh


panjang gelombang. Karakteristik persepsi mata manusia dalam membedakan satu
warna dengan warna yang lain berupa hue, saturation, dan brightness.

Hue merupakan warna yang dikenal manusia seperti merah dan hijau,
warna yang ditangkap oleh mata manusia berdasarkan panjang gelombang yang
dihasilkan. Saturation menyatakan level kemurnian warna atau banyaknya cahaya
putih yang tercampur dengan hue. Setiap warna murni memiliki nilai saturasi
100%. Value menyatakan intensitas pantulan dari objek yang diterima mata,
dinyatakan sebagai perubahan warna putih menuju abu-abu dan terakhir mencapai
ke warna hitam, atau yang dikenal dengan istilah aras keabuan atau grayscale.

Pemilihan mengkonversi ke dalam ruang warna Hue Saturation Value


(HSV) karena pada ruang warna tersebut citra lebih terlihat dibandingkan di
dalam ruang warna lainnya [8]. Berikut ruang warna HSV dapat dilihat pada
Gambar 2.4 di bawah ini.
8

Gambar 2.4. Ruang Warna HSV

Hue merupakan corak warna dengan jangkauan nilai 0-360 derajat.


Saturation merupakan kejenuhan warna dengan jangkauan nilai 0-100. Value
merupakan kecerahan warna dengan jangkauan nilai 0-100. Pada Gambar 2.5
merupakan bentuk ruang warna HSV. Untuk menentukan luas kontur untuk
seleksi warna hsv. Luas kontur yang digunakan adalah 800-2000 pixel. Apabila
luas kontur sesuai dengan ketentuan maka langkah selanjutnya menyelesi warna
berdasarkan range HSV yang sudah di tentukan [8].

2.3.1. Sistem Ruang Warna HSV (Hue Saturation Value)

Model HSV (Hue Saturation Value) menunjukkan ruang warna dalam


bentuk tiga komponen utama yaitu hue, saturation, dan value (atau disebut bentuk
juga brightness). Hue adalah sudut dari 0 sampai 360 derajat, biasanya 0 adalah
merah, 60 derajat adalah kuning, 120 derajat adalah hijau, 180 derajat adalah
cyan, 240 derajat adalah biru, dan 300 derajat adalah magenta. Hue menunjukkan
jenis warna (seperti merah, biru, atau kuning) atau corak warna yaiut tempat
warna tersebut ditemukan dalam spektrum warna. Merah, kuning, dan ungu
(purple) adalah kata-kata yang menunjukkan hue. Saturasi (saturation) dari suatu
warna adalah ukuran seberapa besar kemurnian dari warna tersebut. Sebagai
contoh suatu warna yang semuanya merah tanpa putih adalah saturasi penuh. Jika
ditambahkan warna putih ke merah, hasilnya menjadi lebih menjadi berwarna-
warni dan warna digeserkan dari merah ke merah muda (pink). Hue masih tetap
merah tetapi nilai saturasi (saturation) biasanya bernilai dari 0 sampai 1 (atau 0
9

sampai 100%) dan menunjukkan nilai keabu-abuan warna dimana 0


menunujukkan abu-abu dan 1 menunjukkan warna primer murni. Komponen
ketiga dari HSV adalah value atau disebut juga intensitas (intensity) yaitu ukuran
seberapa besar kecerahan dari suatu warna atau seberapa warna besar cahaya
datang dari suatau warna. Value dapat bernilai dari 0 sampai 100%, dapat dilihat
pada Gambar 2.5 dibawah ini [7].

Gambar 2.5. Nilai hue, saturation dan value [7].

Suatu warana dengan nilai value 100% akan tampak secerah mungkin dan
suatu warna dengan nilai value 0 akan tampak segelap mungkin. Sebagai contoh
jika hue adalah merah dan value bernilai tinggi maka warna kelihatan cerah tetapi
ketika nilai value rendah maka warna tersebut akan kelihatan gelap, dapat dilihat
pada Gambar 2.6 dibawah ini [7].

Gambar 2.6. Cakram Warna HSV [7].


10

Jika ruang warna digambarkan oleh cakram dengan variasi lightness maka
hue dan saturasi (saturation) ekuivalen dengan koordinat polar (r, theta) pada
setiap titik dalam cakram. HSV adalah transformasi nonlinier dari ruang warna
RGB, dapat dilihat pada Gambar 2.7 dibawah ini [7].

Gambar 2.7. Ruang Warna HSV sebagai sebuah Roda Warna [7].

Roda warna HSV dan variasinya pada umumnya dipakai dalam aplikasi
grafis untuk memilih warna-warna dalam ruang warna HSV. Lingkaran tertular
menunjukkan saturasi (saturation) pada sumbu vertikal dan value pada sumbu
horizontal. Dengan cara ini, warna dapat dipilih dengan pertama kali menetapkan
hue pada lingkaran tertular kemudian memilih saturasi (saturation) dan value
yang diinginkan dari segitiga didalamnya, dapat dilihat pada Gambar 2.8 dibawah
ini.

Gambar 2.8. Koordinat HSV dalam Kubus Warna RGB [7].


11

Dengan sistem koordinat HSV berarti beberapa pengamatan dapat dibuat


tentang daerah warna kubus RGB. Pertama yaitu vertek-vertek cyan, magenta, dan
kuning dari kubus menunjukkan warna yang lebih cerah daripada merah, hijau,
dan biru karena merah, hijau, dan biru diproyeksi lebih rendah ke sumbu netral.
Dengan cara yang sama, semua dalam piramida yang ditunjukkan vertek-vertek C,
Y, M, dan W berhubungan ke warna-warna lebih terang dan piramida yang
ditunjukkan oleh titik pusat dan vertek-vertek R, G, dan B berhubungan ke warna-
warna lebih gelap. Warna- warna dekat sumbu netral dalam kubus akan
mempunyai banyak warna-warna karena saturasinya kurang dan warna-warna
yang lebih jauh dari sumbu ini akan tampak lebih hidup (vivid) [7].
Perhitungan konversi RGB menjadi HSV dapat dirumuskan sebagai
berikut:
 3(G  B ) 
H  tan  
 ( R  G )  ( R  B )  ...............................................................................(2.2)
min( R, G, B )
S  1
V ..........................................................................................(2.3)
RG  B
V
3 ....................................................................................................(2.4)
Namun pada rumus diatas, apabila S = 0 maka H tidak dapat ditentukan.
Unutk itu diperlukan normalisasi RGB terlebih dahulu dengan rumus sebagai
berikut.
R
r
R  G  B ....................................................................................................(2.5)

G
g
R  G  B ....................................................................................................(2.6)

B
b
R  G  B ....................................................................................................(2.7)
12

Dengan memanfaatkan nilai R, G, dan B yang telah dinormalisasi, rumus


transformasi RGB ke HSV sebagai berikut.
V  max( r , g , b) (2.8)

0
 jika V  0
S  min( r , g , b)
V jika V  0
 V .....................................................................(2.9)
0
 S 0
 60 x( g  b) jika
 SxV jika V r

S   (b  r ) 
60 x  2  SxV  jika V g
  
  (r  g ) 
60 x  4  SxV  jika V b
   ............................................................(2.10)

H  H  360 jika V  b ..........................................................................(2.11)

2.3.2. Sistem Koordinat Warna RGB (NTSC)

NTSC (National Television System Committee) adalah komite nasional


yang menciptakan standar warna (RN, GN, BN) untuk pesawat penerima televisi.
Komite ini menentukan tiga buah phospor utama dari spektrum sinar yang ada
yaitu merah, hijau, dan biru. Untuk warna referensi adalah warna putih dimana
merupakan gabungan (trismulus) dari tiga buah warna utama dengan RN = GN =
BN = 1. Tabel 2.1 berikut menunjukkan nilai gabungan dari ketiga warna tersebut
untuk beberapa warna-warna utama dari koordinat warna NTSC sedangkan r N, gN,
bN, adalah nilai-nilai krominannya [7].
13

Tabel 2.1. Gabungan Nilai Warna Dasar dan Krominan Untuk Warna
Pokok Pada Sistem Penerima Utama NTSC [7].

Gambar 2.9. Tristimulus Warna dan Diagram Krominan Untuk Sistem


Penerima Utama NTSC [7].

Koordinat ruang warna untuk sistem transmisi NTSC (Y, I, Q) dibangun


untuk fasilitas transmisi gambar berwarna yang menggunakan jalur televisi
monochrome yang telah ada tanpa menambah lebar pita yang diperlukan.
Koordinat Y adalah melambangkan luminance sedangkan I dan Q melambangkan
hue dan saturation dari sebuah warna yang memiliki lebar pita jauh lebih kecil
dibandingkan sinyal luminance. Komponen I, Q ditransmisikan pada sebuah jalur
subpembawa menggunakan quadrature sehingga spektrum dari I, Q tidak saling
tumpang tindih dengan spektrum Y dan lebar pita yang diperlukan untuk transmisi
tidak berubah. Hubungan sistem Y, I, Q dengan sistem RN, GN, BN, merupakan
transformasi linier seperti berikut [7].
14

Y  0.299 0.587 0.114   RN 


 I   0.596 0.275 0.321 . G 
     N
Q  0.212 0.523 0.311   BN 
.........................................................(2.12)

Untuk menentukan sistem kebalikannya adalah dengan


mentransformasinya terhadap matrik inversnya. Sistem warna NTSC RGB
berbeda dengan sistem warna CIE RGB. Tranformasi dari sistem warna NTSC
RGB ke sistem warna CIE RGB dan XYZ dapat dilakukan dengan transformasi
linier berikut [7].

 RCIE   1.167 0.146 0.151  R 


G    0.114 0.753 0.159  . G 
 CIE     
 BCIE   0.001 0.059 1.128   B 
.......................................................(2.13)

 X  0.607 0.174 0.201  R 


Y   0.299 0.587 0.114  . G 
     
 Z  0.000 0.066 1.117   B 
................................................................(2.14)

Gambar 2.10. Sistem Ruang Warna NTSC RGB [7].

Pada Gambar 2.10 memperlihatkan sistem koordinat 3 dimensi NTSC


RGB. Dalam gambar ini terlihat bahwa warna cyan, magenta, dan yellow
merupakan komplemen warna red, green, dan blue sehingga warna cyan,
magenta, dan yellow sering disebut sebagai subtractive primaries sedangkan
warna red, green, dan blue, sering disebut dengan additive primaries. Koordinat
15

CYM dengan mudah dapat diperoleh dari koordinat RGB melalui persamaan
berikut:

C  1  R ............................................................................................................(2.15)

M  1  R .........................................................................................................(2.16)
Y  1  B ............................................................................................................(2.17)

Dalam mencetak citra berwarna, sistem CYM ini tidak dapat


menghasilkan warna hitam dengan baik sehingga sistem ini diganti dengan sistem
CMYK melalui persamaan berikut:

K  min(C , M , Y ) .............................................................................................(2.18)

C  C  K .........................................................................................................(2.19)

M  M  K .......................................................................................................(2.20)
Y  Y  K .........................................................................................................(2.21)
K merupakan komponen warna keempat yang merepresentasikan warna hitam [7].

2.4. Pendektesi Citra Warna

Setiap objek yang difoto dengan nilai RGB yang berbeda dan luas pixel.
Untuk mengetahui warna api dengan melihat nilai RGB api, dan luas pixel api dari
video yang dideteksi oleh webcam sebagai input data.Perbedaan warna dasar foto
yang dapat dipengaruhi oleh cahaya. Pada cahaya, warna dasar penyusunannya
yaitu merah, hijau dan biru atau lebih dikenal dengan istilah warna RGB (Red,
Green, Blue). Warna yaitu spektrum tertentu yang terdapat didalam cahaya
sempurna (berwarna putih). Identitas warna ditentukan panjang panjang
gelombang cahaya. Cahaya tampak Gambar 2.11 bagian spektrum yang
mempunyai panjang gelombang antara lebih kurang 380 nanometer (nm) dan 780
nanometer (nm) dalam udara [7].
16

Gambar 2.11. Spektrum Cahaya Nampak [9].

Model warna cahaya RGB Gambar 2.11 berdasarkan konsep penambahan


kuat cahaya primer yaitu Red, Green dan Blue. Dalam suatu ruang yang sama
sekali tidak ada cahaya, maka ruangan tersebut adalah gelap total. Tidak ada
signal gelombang cahaya yang diserap oleh mata atau RGB (0,0,0). Apabila
menambahkan cahaya merah pada ruangan tersebut, maka ruangan akan berubah
warna menjadi merah misalnya RGB (255,0,0), semua benda dalam ruangan
tersebut hanya dapat terlihat berwarna merah Demikian apabila cahaya ganti
dengan hijau atau biru dapat dilihat pada Gambar 2.12 dibawah ini [9].

Gambar 2.12. Warna Cahaya RGB [9].


17

2.5. Pengolahan Citra

Pengolahan citra adalah pemrosesan citra atau image processing,


khususnya dengan menggunakan komputer menjadi citra yang kualitasnya lebih
baik. Proses pengolahan citra dilakukan dengan masukan (input) berupa citra
(image) dan hasilnya (output) juga berupa citra (image). Pada awalnya
pengolahan citra dilakukan untuk memperbaiki kualitas citra, namun dengan
berkembangnya dunia komputasi yang ditandai dengan semakin meningkatnya
kapasitas dan kecepatan proses komputer, serta munculnya ilmu-ilmu komputer
yang memungkinkan manusia dapat mengambil informasi dari suatu citra maka
image processing tidak dapat dilepaskan dengan bidang computer vision.
Pengolahan citra yang memanfaatkan teknologi pengolahan citra, untuk mengatur
general purpose input/output, berikut dapat dilihat pada Gambar 2.13 di bawah ini
[9].

Gambar 2.13. Proses Pengolahan Citra [9]


.

2.6. Open CV

Open Computer Vision (OpenCV) yaitu Application Programming


Interface (API). Library yang sudah familiar pada pengolahan citra computer
vision. Computer Vision itu sendiri adalah salah satu cabang dari bidang ilmu
pengolahan citra (image processing) yang memungkinkan komputer dapat melihat
seperti manusia. Dengan vision tersebut komputer dapat mengenali terhadap suatu
18

objek yang diamati. Beberapa pengimplementasian dari computer vision adalah


face recognition, face detection, face/object tracking, dan road tracking. OpenCV
library untuk computer vision dan C/C++. OpenCV didesain untuk aplikasi real-
time, fungsi-fungsi akuisisi yang baik untuk image/video. OpenCV terdiri dari 5
library, yaitu:

a. CV: untuk algoritma Image processing dan Vision


b. ML: untuk machine learning library
c. Highgui: untuk GUI, Image dan Video I/O
d. CXCORE: untuk struktur data, support XML dan fungsi-fungsi grafis.
e. CvAux

Dari kelima library yang terdapat pada OpenCv yang diaplikasikan kedalam
pendeteksi warna foto yaitu CV dan HighGui. Diagram blok (Gambar 2.14)
mengenai struktur OpenCv [9].

Gambar 2.14. Blok Diagram Struktur Open CV [9].


19

Berikut contoh cara mengaplikasikan open cv, dapat dilihat pada Gambar 2.15
dibawah ini:

Gambar 2.15. Cara Mengaplikasikan Open CV [9].

2.7. Color Filtering

Color filtering adalah suatu teknik pengolahan citra yang dipakai untuk
memanipulasi suatu citra berdasarkan warna spesifik. Cara kerjanya adalah
dengan membandingkan komponen warna setiap setiap pixel citra dengan warna
spesifikasi. Apabila warnanya sesuai dengan warna spesifik komponen warna
pixel tersebut dibiarkan saja. Bila warnanya tidak sesuai dengan warna spesifik
maka komponen warna pixel tersebut diubah menjadi warna background,
biasanya menjadi warna hitam. Warna yang digunakan dalam color filtering dapat
direpresentasikan dalam berbagai ruang warna. Ada beberapa ruang warna yang
dikenal, antara lain Red, green, blue (RGB), Hue, Saturation and Value (HSV),
YcbCr [8]. Berikut contoh proses pengaplikasi color filtering pada kamera, dapat
dilihat pada Gambar 2.16 dibawah ini.
20

Gambar 2.16. Pengaplikasi Color Filtering

2.8. Sistem Operasi Linux Ubuntu

Ubuntu merupakan salah satu distribusi Linux yang berbasiskan Debian.


Proyek Ubuntu resmi disponsori oleh Canonical Ltd yang merupakan perusahaan
milik seorang kosmonot asal Afrika Selatan Mark Shuttleworth. Nama Ubuntu
diambil dari nama sebuah konsep ideologi di Afrika Selatan, “Ubuntu” berasal
dari bahasa kuno Afrika, yang berarti “rasa perikemanusian terhadap sesama
manusia”. Tujuan dari distribusi Linux Ubuntu adalah membawa semangat yang
terkandung di dalam Filosofi Ubuntu ke dalam dunia perangkat lunak. Ubuntu
adalah sistem operasi lengkap berbasis Linux, tersedia secara bebas dan
mempunyai dukungan baik yang berasal dari komunitas maupun tenaga ahli
professional [10]. Berikut sistem operasi Linux Ubuntu dapat dilihat pada Gambar
2.17 di bawah ini.

Gambar 2.17. Sistem Operasi Linux Ubuntu


BAB III
METODE PENELITIAN

3.1. Tahap-Tahap Penelitian

Pada tahapan kita membuat diagram alir yang dapat memudahkan untuk
menganalisa dan mengimplementasikan sebuah sistem kontrol pada Parrot
AR.Drone dengan menggunakan pengolahan citra warna. Berikut ini dapat dilihat
pada Gambar 3.1 dibawah ini:

Mulai

Studi
Literatur

Penyusunan Program

Pengujian Pengujian Alat

Bekerja Sesuai
Perbaiki
Rencana?

Pengumpulan dan
Pengolahan Data Alat

Analisi

Pengambilan
Kesimpulan

Selesai

Gambar 3.1. Diagram Alir Penelitian

21
22

Dari proses penelitian diagram alir diatas dapat diuraikan :


1. Melakukan perancangan dengan studi literatur yaitu dengan melakukan
tinjauan kepustakaan yang terkait dengan masalah yang dibahas. Yang
diharapkan dapat memberikan keyakinan bahwa penelitian ini dapat
dilaksanakan dan memberikan arahan untuk mengurangi kesalahan dalam
penelitian.
2. Selanjutnya mendesain rangkaian yaitu pemilihan komponen yang sesuai
dengan perancangan, pembuatan layout jalur sistem dan yang terakhir
merangkai sistem control pada Parrot AR. Drone 2.0, setelah perancangan
siap didesain selanjutnya mendesain software.
3. Menyusun program pada Library PS-Drone, kemudian melakukan
perancangan alat Setelah rangkaian dan software selesai dibuat,
selanjutnya dilakukan pengujian alat dengan cara mengoperasikan alat
Parrot AR. Drone 2.0 untuk aktif secara otomatis yang dideteksi. Apabila
pengolahan citra warna terdeteksi dengan kamera, maka hardware dan
software sudah beroperasi dengan baik, namun apabila sistem tidak bisa
beroperasi dengan baik maka perlu dievaluasi dan di analisis apa sebab
dari gagalnya alat tersebut, kemudian setelah dapat sebabnya dilakukan
perbaikan pada hardware ataupun software tersebut.
4. Setelah alat dapat beroperasi dengan baik, kemudian kita analisa dari hasil
kerja alat tersebut dilakukan pengambilan data. Pengambilan data tersebut
untuk mengetahui karakteristik komponen pada sistem Parrot AR. Drone
2.0 yang menggunakan sistem kontrol pengolahan citra warna.
5. Pengambilan data yang terdeteksi dengan kamera dilakukan untuk
mengetahui seberapa tepat atau sesuai kamera tersebut, agar sistem
kontrol dengan menggunakan pengolahan citra warna berjalan konsisten
pada saat diaplikasikan.
6. Setelah pengambilan data sudah dilakukan dan Parrot AR. Drone 2.0 bisa
beroperasi dengan baik, maka tahap penelitian selesai.
23

3.2. Desain Sistem

Pada penelitian ini perancangan dan implementasi di bagi menjadi 3


bagian yaitu seperti pada Gambar 3.2 ialah komunikasi sistem, pergerakan Drone,
deteksi warna.

Perancangan dan
Deteksi Warna Komunikasi Sistem Pergerakan Drone
Implementasi

Gambar 3.2. Blok Diagram Desain Sistem

Dalam blok diagram desain sistem ini melalui beberapa tahap-tahapan


yaitu melakukan perancangan dan implementasi pada Parrot Ar. Drone 2.0 yaitu
membuat program sehingga quadcopter dapat mendeteksi warna sesuai yang
diinginkan, komunikasi sistem disini ialah pengiriman data yang diterima oleh
quadcopter dan data yang diterima akan dikirimkan ke laptop melalui jaringan
wifi. quadcopter bergerak sesuai objek yang ditentukan.

3.3. Deteksi Warna

Dalam perancangan deteksi warna pada Parrot AR. Drone 2.0 akan
mengambil data dari kamera. Pertama akan dilakukan mengubah data pixel citra
(RGB) di konversi ke HSV, setelah itu warna terdekteksi dan data nilai X dan Y
didapat pada titik koordinat. Berikut dapat dilihat pada Gambar 3.3 dibawah ini.
24

Gambar 3.3 Perancangan Luas Frame Pembacaan

Ukuran Frame pembacaan seperti Gambar 3.3 yaitu x=240 dan y=320,
setelah permukaan koordinat yang digunakan untuk mengambil data RGB. Nilai
RGB diambil pada koordinat x=-0.00131944444444 dan y=-0.000634920634921,
kemudian data akan disimpan pada array dan akan diconverter ke nilai HSV
dengan rumus sebagai berikut:

R
R' 
255 ..............................................................................................................(3.1)

G
G' 
255 ...........................................................................................................(3.2)

B
B' 
255 ..............................................................................................................(3.3)

Nilai R’ didapatkan dari nilai Red pada RGB lalu dibagi dengan 255 yang
merupakan nilai maksimal dari 8 bit. Untuk nilai Green dan Blue juga akan dibagi
dengan 255.

C max  max( R ' .G ' .B ' ) ......................................................................................(3.4)

C min  min( R ' .G ' .B ' ) ........................................................................................(3.5)


  C max  C min .............................................................................................(3.6)
25

Nilai Cmax merupakan nilai maksimal 1 nilai R’, B’, G’. Sedangkan nilai
Cmin nilai minimal R’, B dan G’. Delta dari hasil pengurangan dari nilai
maksimal dikurangi dengan nilai minimal.

0,   0

60 x G ' B ' mod 6, C max  R '
 

H  B ' R '
60 x   2, C max  G
'


60 x R  G  4, C max  B '
' '

  ..................................................................(3.7)

H merupakan nilai hue


0, C max  0

S  
 C max , C max  0
......................................................................................(3.8)
S merupakan nilai saturation
V  C max .........................................................................................................(3.9)
V merupakan nilai value

Hue merupakan corak warna dengan jangkauan nilai 0-360 derajat. Saturation
merupakan kejenuhan warna dengan jangkauan nilai 0-100. Value merupakan
kecerahan warna dengan jangkauan nilai 0-100. Berikut diagram dapat dilihat
pada Gambar 3.4 dibawah ini:
26

Mulai

Citra Masukan

Citra Asli (RGB)


Konversi ke HSV

Warna Terdeteksi ?

Data X dan Y
didapat

Tampilkan / Tandai

Selesai

Gambar 3.4. Diagram Deteksi Warna

3.4. Komunikasi Sistem

Komunikasi sistem ini dilakukan menggunakan komputer yang terdapat


sistem operasi Ubuntu untuk mengkontrol Parrot AR. Drone 2.0 menggunakan
AR. Drone Autonomy, ROS (Robot Operating Sistem), Open CV melalui jaringan
wifi sehingga Parrot AR. Drone 2.0 dapat bergerak. Dapat di lihat pada Gambar
3.5 berikut ini.

Gambar 3.5. Block Komunikasi pada Sistem.


27

3.5. Pergerakan Drone

Pergerakan drone ini dilakukan menggunakan computer yang di kontrol


melalui input keyboard untuk Take Off, Hover, dan Landing oleh pengguna.
Setelah itu pengguna akan memberikan intruksi pergerkan pada quadcopter
dengan keyboard dan Parrot AR. Drone 2.0 akan terbang sesuai intruksi yang
diberikan oleh pengguna. Berikut dapat di lihat pada Gambar 3.6 di bawah ini:

Mulai

Inisialisasi Koneksi
Quadcopter

Memberikan Intruksi pada


Keyboard

Main.py Take Off

ESC Landing

Selesai

Gambar 3.6. Pergerakan Parrot AR. Drone 2.0

Untuk pergerakan kiri dan kanan menggunakan sistem kontrol pengolahan


citra warna. Pertama akan dilakukan pengambilan gambar dari kamera dan
mengubah pixel gambar dari RGB ke HSV, color filtering disini berfungsi untuk
memanipulasi suatu citra berdasarkan spesifik data. Thresholding untuk
mengubah warna menjadi hitam putih, Edge Detector disini bertujuan untuk
mengidentifikasi titik-titik dalam gambar digital sehingga object ditemukan dan
28

mendapatkan nilai X dan Y, dan Parrot AR. Drone 2.0 bergerak sesuai titik
koodinat yang ditentukan oleh pengguna. Berikut dapat dilihat pada Gambar 3.7
di bawah ini:

Mulai

Ambil Gambar A

Konversi Ruang Warna


RGB ke HSV Object Warna
Ditemukan?

Color Filtering

Mendapatkan
Nilai X dan Y
Thersholding

AR.Drone Bergerak Sesuai


Titik Koordinat
Edge Detector

A Selesai

Gambar 3.7. Alur Keseluruhan Kontrol Pergerakan Menggunakan Pengolahan


Citra
BAB IV
HASIL DAN PEMBAHASAN

Pada bab ini akan dibahas tentang pengujian berdasarkan perancangan dari
sistem yang telah dibuat. Pengujian ini dilakukan untuk mengetahui kemampuan
dari sistem dan untuk mengetahui apakah sistem sudah berjalan dengan
perencanaan, sekaligus mengetahui kelebihan dan kekurangan sistem yang di
rancang.

4.1. Realisasi Sistem

Setelah selesai merancang sebuah program untuk mengontrol Parrot A.


Drone 2.0, terlebih dahulu melakukan pengecekan pada setiap program.
Selanjutnya melakukan simulasi pada program, apabila terjadi kesalahan pada
program maka akan dilakukan evaluasi pada program tersebut. Setelah hasil
evaluasi sesuai dengan tujuan yang di inginkan maka akan dilakukan pengujian
untuk pengambilan data pada pergerakan Parrot AR. Drone 2.0. Bentuk fisik dari
program dan Parrot AR. Drone 2.0 dapat kita lihat pada Gambar 4.1 dibawah ini.

Gambar 4.1. Bentuk Keseluruhan Alat

29
30

4.2. Implementasi Program

Pada implementasi program untuk mengontrol Parrot AR. Drone 2.0 saya
menggunakan sistem operasi Linux Ubuntu dan perpustakaan open-cv berdasarkan
Drone. Ini termasuk bagian utama kontrol manual, mendapatkan aliran data dan
video, dan mengirim perintah ke drone. Loop utama beroperasi dengan 30 Hz
karena perintah harus dikirim secara teratur (direkomendasikan 30 kali) untuk
stabilitas.

4.2.1. Menghubungkan Drone dengan API Client

Untuk menghubungkan API Client dengan Parrot AR. Drone 2.0


menggunakan koneksi Wi-Fi untuk tehubung dengan program Client. Parrot AR.
Drone 2.0 dapat dikontrol oleh perangkat apapun yang dapat mendukung koneksi
Wi-Fi. Berikut ini adalah proses koneksi antara Client dan Drone:

1. Ketika drone dinyalakan, koneksi Wi-Fi pada drone akan hidup dengan
sendirinya dengan ESSID default dari format dengan IP Address
192.168.1.1.
2. Karena drone sebagai server, perangkat Client meminta alamat IP Address
dari drone DHCP serve.
3. Server DHCP drone kemudian mengalokasikan prgram Client alamat IP
Address, dimana alamat IP Address adalah IP Address drone di tambah
angka secara acak antara 1 dan 4 untuk Parrot AR. Drone 2.0.
4. Komunikasi dapat dilakukan anata Client dan drone melalui port layanan
(UDP dan TCP).

4.2.2. Mendekteksi dan Melacak Objek

Pada saat drone diterbangkan kamera drone akan melacak objek target,
dengan ketinggian drone pada target 140 cm, dapat dilihat pada Gambar 4.2
dibawah ini:
31

Gambar 4.2. Mendektesi dan Melacak Objek

4.3. Pengujian

Pengujian ini dilakukan untuk mengetahui fungsi dan kinerja dari


keseluruhan sistem. Program pengujian disimulasikan disuatu sistem operasi
Linux Ubuntu. Pada pengujian ini dilakukan untuk mengetahui kehandalan dari
suatu sistem dan untuk mengetahui apakah sudah sesuai dengan perencanaan atau
belum. Quadcopter mengirimkan data dan gambar dari kamera (Parrot AR.
Drone 2.0) ke laptop. Pada proses ini saya menggunakan laptop untuk menerima
data dan gambar menggunakan open-cv untuk memfilter, mengubah gambar Hue
Saturation Value (HSV), thresholding, menghitung kesalahan posisi. Berdasarkan
kesalahan itu, saya mengirimkan sinyal kontrol (roll, pitch, dan ketinggian) ke
quadcopter untuk melacak objek, dapat dilihat pada Gambar 4.3 berikut ini.
32

Gambar 4.3. Luas Deteksi pada Kamera AR Drone

Luas deteksi kamera AR Drone membentuk sudut 93 ֯ yang terlihat,


ketinggian drone pada target yang telah ditentukan ialah 140cm dengan nilai
x=−0,00131944444444 dan y=−0,000634920634921, panjang dari tag merah
ke tag lingakaran hijau ialah 17 cm dan dari tag merah ke tag lingkaran biru ialah
60cm yang diukur menggunakan meteran secara manual.
33

4.3.1 Pengujian Drone Pada Saat Target Diam

Pengujian pertama yaitu proses drone bergerak dan terget diam untuk
mencari kecepatan delay drone kembali pada target. Dalam penelitian ini, akan
diukur delay drone kembali pada target dan akan di dapatkan nilai x dan y pada
saat drone bergerak dan kembali pada target. Pengujian dilakukan 4 tahapan yaitu
pada jarak 40 cm, 60 cm, 80 cm, dan 100 cm. Adapun hasil dari pengujian ini
dapat dilihat pada Tabel 4.1 dibawah ini:

Tabel 4.1. Pengujian Drone Pada Saat Target Diam

No Jarak X Y Delay
1 40 cm -0.00159722222222 0.0141798941799 02:49-03:01
2 60 cm -0.00159722222222 0.0174603174603 03:09-03:19
3 80 cm -0.00506944444444 0.0169312169312 04:08-04:18
4 100 cm 0.00222222222222 0.0155555555556 05:35-05:45

Dari tabel 4.1 dapat dilihat pengujian drone bergerak dan taget diam,
dimana dilakukan 4 kali pengujian dengan jarak yang berbeda dan delay drone
kembali ke target juga berbeda. Disini didapatkan perbedaan delay drone kembali
ke target dengan perbedaan delay 10 detik, dapat dilihat pada Gambar 4.4 berikut
ini.

0.02 Target Diam


0.02 0.02 0.02
0.01
0.02

0.01
0.01 0
00 0
40 cm 60 cm 80 cm 100 cm
-0.01 -0.01
-0.01

Gambar 4.4. Grafik Pengujian Sistem Kontrol Drone Pada Saat Target Diam
34

Berdasarkan hasil pengujian pada Tabel 4.1 ditunjukan pada Gambar 4.3
pada saat target diam dimana sumbu Y mengalami kenaikan pada jarak 60 cm dan
mengalami penurunan pada jarak 80 cm sampai dengan 100 cm, dimana sumbu X
pada jarak 60 cm tidak mengalami perubahan sama seperti pada jarak 40 cm dan
mengalami penurunan pada jarak 80 cm selanjutnya jarak 100 cm mengalami
kenaikan sehingga mencapai 0.00222222222222.

4.3.2 Pengujian Drone Pada Saat Target Dipindahkan

Pengujian kedua yaitu proses drone bergerak mengikuti target yang


dipindahkan untuk mencari kecepatan delay drone mengikuti target yang
dipindahkan. Dalam penelitian ini, akan diukur delay drone mengikuti target yang
di pindahkan dan akan didapatkan nilai x dan y pada saat drone bergerak
mengikuti target yang dipindahkan. Pengujian dilakukan 4 tahapan yaitu pada
jarak 40 cm, 60 cm, 80 cm, dan 100 cm. Adapun hasil dari pengujian ini di dapat
dilihat pada Tabel 4.2 dibawah ini:

Tabel 4.2. Pengujian Drone Pada Saat Target Dipindahkan

No
Jarak X Y Delay
.
1 40 cm 0.00708333333333 -0.00412698412698 03:00 - 03:10
2 60 cm -0.00972222222222 0.00582010582011 03:36 - 03:46
3 80 cm -0.00611111111111 0.00275132275132 04:20 - 04:30
4 100 cm 0.00923611111111 -0.000846560846561 05:20 - 05:30

Dari tabel 4.2 dapat dilihat pengujian drone bergerak dan taget diam,
dimana dilakukan 4 kali pengujian dengan jarak yang berbeda dan delay drone
kembali ke target juga berbeda. Disini didapatkan perbedaan delay drone kembali
ke target dengan perbedaan delay 10 detik, dapat dilihat pada Gambar 4.5
dibawah ini.
35

Target Dipindahkan
0.02
0.01
0
0.01
0.01
0.010

0
40 cm 60 cm
0.01 800cm 100 cm
-0.01
-0.01
-0.01
-0.01

-0.02

Gambar 4.5. Grafik Pengujian Sistem Kontrol Drone Pada Saat Target
Dipindahkan

Berdasarkan hasil pengujian tabel 4.2 ditunjukan pada gambar 4.4 dimana
sumbu X mengalami penurunan yang sangat drastis pada jarak 60 cm dan
mengalami kenaikan pada jarak 80 cm sampai jarak 100 cm. Dimana sumbu Y
mengalami penurunan tidak terlalu drastis seperti sumbu X pada jarak 60 cm dan
mengalami kenaikan pada jarak 80 cm sampai jarak 100 cm mengalami kenaikan.

4.3.3. Pengujian Drone Pada Saat Target Dengan Berbeda Warna

Pengujian drone pada saat dua target dimuculkan yaitu proses drone
bergerak mengikuti target yang telah ditentukan tetapi pada saat target
bermunculan dengan secara bersamaan bagaimana drone memilih sebuah target
yang telah di tentukan dan tidak memilih target dengan warna berbeda, apabila
target yang muncul dengan warna yang berbeda maka drone tidak dapat
mendeteksi target. Adapun hasil dari pengujian ini di dapat dilihat pada Gambar
4.6 dibawah ini:
36

Gambar 4.6. a. target warna yang telah ditentukan b. target warna yang
tidak ditentukan

Berdasarkan Gambar 4.6 ditunjukan dimana warna target yang berbeda


jika ditampilkan pada kamera drone maka drone akan memilih warna target yang
telah ditentukan pada program yang dibuat. Dapat dilihat pada tabel 4.3 dibawah
ini.

Tabel 4.3 Pengujian Drone dengan Warna Target yang berbeda


37

Adapun warna yang muncul pada kamera drone berbeda dengan warna
target yang dibuat pada program maka drone tidak akan terdeteksi dikarenakan
pada saat pemograman nilai warna yang telah di tentukan ialah 65, 60, 60 berupa
warna merah dan nilai 80, 255, 255 berupa warna hijau dan drone tidak dapat
mendeteksi warna selain warna yang telah ditentukan. Dapat dilihat pada Gambar
4.7 pada saat pengujian berikut ini.

Gambar 4.7. Pengujian Dengan Target Yang Ditentukan

Berdasarkan pada Gambar 4.7 disini pada saat pengujian drone dengan
target yang telah ditentukan maka drone akan mendeteksi warna tersebut dan
membetuk lingkaran sesuai dengan lingakaran taget yang telah ditentukan.
38

Gambar 4.8. Pengujian Dengan Target Yang Tidak Ditentukan

Berdasarkan pada Gambar 4.8 disini pada saat pengujian drone dengan
target yang tidak ditentukan maka drone tidak mendeteksi target dengan warna
yang berbeda, pada saat tidak muncul maka data yang muncul yaitu data yang
sebelumnya pada saat target warna yang telah ditentukan, jadi untuk data dengan
warna yang tidak ditentukan tidak akan bermunculan pada display komputer.
39

Gambar 4.9. Pengujian Pada Saat Dua Target warna bermunculan

Berdasarkan pada Gambar 4.9 disini pada saat pengujian dua target warna
bermunculan maka drone akan memilih target yang telah ditentukan dalam
program, dimana pada saat pemograman sudah ditentukan target yang akan
terdeteksi oleh kamera drone dan akan mengikuti target tersebut, dapat dilihat
pada Gambar 4.9 di atas. Pada gambar diatas terlihat bahwa drone hanya
mendeteksi warna yang telah di program dan membentuk lingkaran pada target
dimana lingkaran merah ialah luas pada warna hijau dan warna biru ialah area
batas drone medeteksi target dan garis merah yang memiliki titik biru ialah posisi
drone berada, jika drone keluar dari area garis biru maka drone tidak akan
mendeteksi target lagi, dan drone akan terbang tidak sesuai kendali.
40

Gambar 4.10. Posisi Drone Pada Pengujian Dua Warna Bermunculan

Pada Gambar 4.10 dapat dilihat drone memilih target yang telah di
program awal untuk mendeteksi warna merah dan hijau, dapat disimpulkan bahwa
drone tidak mengenal warna yang berbeda pada saat drone ditarik tidak keluar
dari lingkaran biru maka drone akan kembali lagi ke target yang telah ditentukan
begitu juga pada saat target dipindahkan drone akan mengikuti target kemana pun
target tersebut.
41

4.3.4. Program Sistem Kontrol Drone Menggunakan Pengolahan Citra


Warna

Pada bagian ini terdapat langkah-langkah pembuatan program dengan


menggunakan sistem operasi Linux Ubuntu, dimana dapat dilihat bekerja atau
tidak suatu sistem kontrol drone menggunakan pengolahan citra warna tersebut,
sistem Operasi Linux Ubuntu adalah sistem operasi yang berfungsi untuk menulis
dan mengupload kode bahasa pemograman python dari komputer ke Parrot AR.
Drone 2.0, dapat dilihat pada gambar dibawah ini.

Gambar 4.11. Program Kerja Sistem Main.py

Berdasarkan pada Gambar 4.6 dimana untuk perancangan program disini


menggunakan Visual Studio Code atau bisa disebut juga dengan text editor.
Visual Studio Code (VS Code) ini adalah sebuah text editor ringan dan handal
yang dibuat oleh Microsoft untuk sistem operasi multiplatform, artinya tersedia
42

juga untuk versi Linux, Mac, dan Windows. Text editor ini secara lansung
mendukung bahasa pemograman JavaScript, TypeScript, dan Node.js, serta
bahasa pemograman lainnya dengan bantuan plugin yang dapat dipasang via
marketplace Visual Studio Code (Seperti C++, C#, Python, Go, Java, dst). Banyak
sekali fitur-fitur yang disediakan oleh Visual Studio Code, diantaranya
Intellisense, Git Integration, Debugging, dan fitur ekstensi yang menambah
kemampuan teks editor. Pada Gambar 4.6 Program Kerja Sistem Main.py disini
semua program untuk menjalankan Parrot AR. Drone 2.0 sesuai dengan titik
koordinat yang telah ditentukan.

import cv2
import numpy as np
import imutils
import time
from collections import deque
import ps_drone

Pada langkah awal dalam pemograman harus melakukam import kedalam


satu folder sehingga dapat menjalannya program sesuai library yang telah di
import, dimana setelah di import langkah selanjutnya akan melakukan config
yang akan di perintahkan.

#config
Altitude = 1300

Config disini ialah menentukan Altitude (ketinggian) pada drone terhadap


target yang telah di tentukan, disini ketinggian ialah 1300 dan pada saat dilakukan
pengujian langsung ketinggian drone pada target ialah sekitar 140cm. Langkah
selanjutnya ialah membuat program kontrol Altitude (ketinggian).

#Controller config
UpdateRate = 1
43

MaxMovementRatePositive = 0.020
MaxMovementRateNegative = -0.020
DivisionValueX = 14400
DivisionValueY = 9450
TargetCircleMultiplayer = 3

Controller config disini ialah menentukan range nilai X dan Y pada drone,
dimana X ialah ketinggian dan Y ialah panjang, MaxMovementRatePositive disini
di beri nilai ialah 0.020 dan MaxMovementRateNegative disini di beri nilai ialah
-0.020, dan DevisionValueX disini 14400 ketinggiannya dan DevisionValueY
disini 9450 panjang koordinat drone dan taget yang telah di tentukan.
TargetCircleMultiplayer disini ada 3 range lingkaran yang telah dibuat dengan
pemograman dengan garis lingkaran merah dan biru, dimana garis lingkaran
merah pada posisi warna hijau dan garis lingkaran berwarna biru pada luar
lingkaran warna hijau dimana luar pada warna hijau disini batas maximum drone
jika drone keluar pada garis berwarna biru disini drone akan hilang terkendali oleh
target yang telah ditentukan. Langkah selanjutnya akan membuat variabel yang
telah ditentukan.

#variables
points = deque(maxlen=32)
counter = 0
(dX, dY) = (0, 0)
direction = ""
Run = True
Direction1 = "error"
Direction2 = "error"
raduis = 0
CircleLostCount = 0
InsideCircle = False
TargetCircleRaduis = 0

Variables disini ialah nilai titik koordinat disebutkan dengan


points=deque(maxlen=32) ialah menampilkan titik drone dimana berada pada
display komputer atau posisi drone, counter disini ialah dimana pada saat posisi
44

drone dipindahkan dari posisi drone semula drone akan melawan atau kembali
pada posisi awal drone dimana berada dan di beri nilai 0, dX dan dY disini sama
perlakuannya seperti counter dimana posisi drone jika dipindahkan maka nilai X
dan Y akan berubah dan di tampilkan pada direction=” ” dan jika dijalankan (run)
sebuah program maka akan di tampilkan Direction1=”error” dan
Direction2=”error” maka drone tidak terkendali pada saat landing (terbang awal)
karena sebuah target yang telah ditentukan tidak dibaca oleh sebuah drone. Radius
disini diberikan nilai 0, CircleLostCount diberikan nilai 0 karena pada saat
lingkaran yang telah ditentukan kehilangan nilai maka pada display akan
menampilkan notifikasi error pada display komputer. Jika InsideCircle bernilai
false maka drone akan mengirim data error pada display komputer dan
TargetCircleRadius disini ialah target lingkaran radius maka diberikan nilai 0.

#Displayvariables
DisplayDx = 0.0
DisplayDy = 0.0
DisplayTreshhold = 0
font = cv2.FONT_HERSHEY_SIMPLEX
print("starting....")
drone = ps_drone.Drone()
drone.startup()
drone.reset()
while (drone.getBattery()[0] == -1): time.sleep(0.1)
print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1])

Diplay Variables disini hanya sebagai notifikasi bagaimana drone akan


dijalankan, disini hanya menampilkan kapasitas battre pada drone, menampilkan
nilai X dan Y, menampilkan ketinggian drone pada target, dan mempilkan kemana
harus drone akan pergi dan apakah drone harus terbang ke atas lebih tinggi lagi.

#setup
drone.useDemoMode(False)
drone.getNDpackage(["demo","pressure_raw","altitude","magneto","wifi"])
drone.setConfigAllID()
drone.sdVideo()
drone.frontCam()
CDC = drone.ConfigDataCount
45

while CDC == drone.ConfigDataCount: time.sleep(0.0001)


drone.startVideo()
IMC = drone.VideoImageCount
time.sleep(2.0)
drone.takeoff()
while(Run):
while drone.VideoImageCount==IMC:
time.sleep(0.01)
IMC = drone.VideoImageCount
key = drone.getKey()
if key:
Run = Falseframe = drone.VideoImage
blurred = cv2.GaussianBlur(frame, (11, 11), 0)
hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV)
Greenmask = cv2.inRange(hsv, (65,60,60), (80, 255,255))
Greenmask = cv2.erode(Greenmask, None, iterations=2)
Greenmask = cv2.dilate(Greenmask, None, iterations=2)
FoundedContours=cv2.findContours(Greenmask.copy(),cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
FoundedContours = imutils.grab_contours(FoundedContours) center = None
if len(FoundedContours) > 0:
Circle = max(FoundedContours, key=cv2.contourArea)
((x,y),raduis) = cv2.minEnclosingCircle(Circle)
Middle = cv2.moments(Circle)
center = (int(Middle["m10"] / Middle["m00"]), int(Middle["m01"] /
Middle["m00"]))
if raduis > 10:
cv2.circle(frame,(int (x),int (y)),int(raduis),(0,0,255),2)
TargetCircleRaduis = raduis * TargetCircleMultiplayer
cv2.circle(frame,(int (x),int (y)),int(TargetCircleRaduis),(255,255,0),2)
cv2.circle(frame,center,5,(0,255,255),-1)
points.appendleft(center)
else:
cv2.putText(frame,"ErrornocircelFound",(10,700),font, 1,
(255,255,255),2,cv2.LINE_AA
DxCount = 0.0
DyCount = 0.0
for i in np.arange(1, len(points)):
if points[i - 1] is None or points[i] is None:
continue
if counter >= 10 and i == 1:
print("Y points: " + str(points[i][1]))
DxCount = float(points[i][0])-320.0
DyCount = 170 - float(points[i][1])
cv2.line(frame, points[i - 1], (320,170), (0, 0, 255), 5)
if(DxCount < 0):
46

Direction1 = "Need to go Left"


if(DxCount > 0):
Direction1 = "Need to go Right"
if(DyCount < 0):
Direction2 = "Need to go Up"
if(DyCount > 0):
Direction2 = "Need to go Down"
if (int(points[i][0]) - 320)**2 + (int(points[i][1]) - 170)**2 <
(TargetCircleRaduis)**2:
InsideCircle = True
else:
InsideCircle = False
cv2.putText(frame,"Inside circel" + str(InsideCircle),(10,120), font, 1,
(255,0,0),2,cv2.LINE_AA)
CurrentAltitude = drone.NavData["altitude"][3]
if(counter % UpdateRate) == 0:
DisplayDx = DxCount
DisplayDy = DyCount
DisplayTreshhold = CurrentAltitude - Altitude
Xmovement = DxCount / DivisionValueX #6400
Ymovement = (DyCount / DivisionValueY) #4200
if Xmovement > MaxMovementRatePositive:
Xmovement = MaxMovementRatePositive
elif Xmovement < MaxMovementRateNegative:
Xmovement = MaxMovementRateNegative
if Ymovement > MaxMovementRatePositive:
Ymovement = MaxMovementRatePositive
elif Ymovement < MaxMovementRateNegative:
Ymovement = MaxMovementRateNegative
print("X: " + str(Xmovement) + " Y:" + str(Ymovement) )
AltitudeCommand = 0.0
if (CurrentAltitude - Altitude) > 80:
AltitudeCommand = -0.2
elif (CurrentAltitude - Altitude) < -80:
AltitudeCommand = 0.2
else:
AltitudeCommand = 0.0
if(InsideCircle == False):
drone.move(Xmovement, Ymovement, AltitudeCommand, 0)
else:
if(AltitudeCommand != 0.0):
drone.move(0, 0, AltitudeCommand, 0)
else:
drone.stop()
cv2.putText(frame,Direction1,(10,30), font, 1,(255,0,0),2,cv2.LINE_AA)
cv2.putText(frame,Direction2,(10,60), font, 1,(255,0,0),2,cv2.LINE_AA)
47

cv2.putText(frame,"Altitude Treshhold: " + str(DisplayTreshhold),(10,90), font,


1,(255,0,0),2,cv2.LINE_AA)
cv2.circle(frame,(320,170),10,(255,0,0),-1)
cv2.imshow("Detected",frame)
counter += 1
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()

Setup disini ialah dimana pada saat demo alat akan dijalankan drone akan
menampilkan semua notifikasi yang telah di buat pada program variables dan
akan di tampilkan pada program display variables dimana semua notifikasi yang
telah di program akan di tampilkan pada display komputer maupun berupa
ketinggian drone, nilai X dan Y, dan maupun posisi drone berada. Disini pada saat
drone takeoff (terbang awal) camera pada drone akan mencari sebuah target yang
telah di tentukan akan mengunci sebuah target sehingga drone akan terbang
terkendali oleh sebuah target dan pada saat target dipindahkan drone akan
mengikuti target tersebut maupun jika drone dipindahkan drone akan kembali ke
target yang telah ditentukan. Disini juga untuk mengubah sebuah warna RGB
menjadi warna HSV (Hue Saturation Value) sehingga warna memiliki nilai yaitu
(65,60,60) berupa warna merah dan (80,255,255) berupa warna hijau. Greenmask
disini ialah pembacaan gambar berupa warna yang telah ditentukan berupa objek
(target), maka pada saat pembacaan warna sesuai dengan sebuah program maka
drone akan terbang dan melakukan penguncian target yang telah ditentukan.
DxCount dan DyCount ialah berupa nilai X dan Y, jika DxCount lebih kecil dari 0
maka drone akan bergerak ke kiri dan jika DxCount lebih besar dari 0 maka drone
akan bergerak ke kanan, dan DyCount lebih kecil dari 0 maka drone akan
bergerak ke atas dan jika DyCount lebih besar dari 0 maka drone akan bergerak
turun ke bawah maka untuk menstabilkan drone pada posisi yang telah ditentukan
akan membuat algoritma pada program sehingga drone akan stabil.
48
49

Gambar 4.12. Program Kerja Sistem VideoWriter.py

Berdasarkan pada Gambar 4.7 Program Kerja Sistem VideoWritter.py disini


sebuah program untuk menampilkan suatu vidio atau gambar yang tampil pada
laptop seperti tampilan baterai indikator, nilai X dan Y, altitude (ketinggian)
antara drone dan target.

##Startup##
import time, sys
import ps_drone
import cv2
drone = ps_drone.Drone()
drone.startup()

drone.reset()
while (drone.getBattery()[0]==-1):
time.sleep(0.1)
print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1])
50

drone.useDemoMode(True)

##Setup##
drone.setConfigAllID()
drone.sdVideo()
drone.frontCam()
CDC = drone.ConfigDataCount
while CDC == drone.ConfigDataCount: time.sleep(0.0001)
drone.startVideo()

##Detection##
IMC = drone.VideoImageCount
stop = False
out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10,
(800,800))
while not stop:
while drone.VideoImageCount==IMC:
time.sleep(0.01)
IMC = drone.VideoImageCount
key = drone.getKey()

if key:
stop = True
img = drone.VideoImage
resize = cv2.resize(img,(800,800))

#out.write(resize)
cv2.imshow('Drones video',resize)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.waitKey(1)
cv2.destroyAllWindows()

Pada command VideoWritter.py untuk langkah awal ialah mengimport


library yang telah dibuat pada program Main.py sehingga program saling interaksi
(berhubungan) dimana pada program Main.py untuk sebuah perlakuan drone
bergerak dan VideoWritter.py untuk mengambil gambar atau vidio pada kamera
drone dan dikirimkan pada komputer sehingga muncul pada display komputer
berupa notifikasi yang telah di buat pada program Main.py.
BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan
Berdasarkan hasil dari pengujian rangkaian sistem yang telah dilakukan,
maka dapat ditarik kesimpulan sebagai berikut:
1. Algoritma untuk mendektesi target dan mengikuti sebuah objek target
yang telah dibuat maka sistem dapat mendekteksi dan mengikuti
sebuah objek yang di pindahkan.

2. Intensitas cahaya mempengaruhi delay video streaming, semakin kecil


intensistas cahaya maka semakin besar delay video streaming dan
semakin besar instensitas cahaya maka semakin kecil delay video
streaming.

3. Target dapat terdekteksi dengan kamera drone dengan jarak minimal


40 cm dan maksismal 100 cm untuk target dengan diameter 35 cm.
Ketika melewati batas maksimal, target tidak dapat lagi terdeteksi oleh
kamera drone dan drone tidak terkendali lagi.

5.2 Saran
Dalam sebuah sistem alat pasti memiliki kelebihan dan kekurangan, maka
berikut ini adalah saran-saran untuk pengembangan ke depan agar lebih baik:

1. Penggabungan dengan metode tracking, agar AR. Drone dapat


mendeteksi objek jadi dari jarak tertentu sehingga objek tidak terlihat
pada jangkauan kamera bawah.

2. Alat atau sistem yang dipakai adalah alat yang sudah jadi, maka untuk
melakukan pengembangan dibidang pemograman masih banyak lagi
yang bisa dikembangkan, seperti image processing, tracking mapping,
sistem GPS, dan masih banyak lagi yang bisa dikembangkan di bidang
pemograman pada AR. Drone.

51
DAFTAR PUSTAKA

[1] Ritya L., Andriana G., Indah G., "Pengendalian Ar Drone 2.0 dan
Pengambilan Data Citra Berdasarkan Koordinat GPS,” Proceeding Appl.
Sci., vol. 1, no. 2, pp. 996–1003, 2015.
[2] D. Nagataries, S. Hardiristanto, M. H. Purnomo, and A. A. G. Klasik,
“Deteksi Objek pada Citra Digital Menggunakan Algoritma Genetika untuk
Studi Kasus Sel Sabit,” J. Electr. Eng., vol. 1, no. 1, 2012.
[3] T. Sutoyo, E. Mulyanto, V. Suhartono, O.D.  Nurhayati, Wijanarto, 'Teori
Pengolahan Citra Digital, Penerbit Andi, Yogyakarta, 2009.
[4] F. Guo, Q. Cao, "Sistem Deteksi Bola Menggunakan Pustaka OPENCV
dengan Kombinasi Dua Kamera (Logitech 720p & Kinnect XBOX 360) di
Robot Sepak Bola Beroda"," Proceedings of the 5th World Congress on
Intelligent Control and Automation, Hangzhou, P.R. China, 2004.
[5] S.S.Nestinger, H.H.Cheng. (2010). "Traffic surveillance, air pollution
monitoring, area mapping, agricultural application, and the remote
inspection require high manoeuvrability and robustness with respect to
disturbances". Institute of Electrical and Electronics Engineers (IEEE), pp
66-77.
[6] W. Kusuma, R. Effendi, and E. Iskandar, “Perancangan dan Implementasi
Kontrol Fuzzy-PID pada Pengendalian Auto Take-Off Quadcopter UAV,”
J. Tek. POMITS, vol. 1, no. 1, pp. 1–6, 2012.
[7] I Ketut Gede Darma Putra, Pengolahan Citra Digital, Yogyakarta, ANDI,
2010.
[8] A. S. Putri and G. E. Setyawan, “Sistem Deteksi Warna pada Quadcopter
AR Drone Menggunakan Metode Color Filtering Hue Saturation and Value
(HSV),” J. Pengemb. Teknol. Inf. dan Ilmu Komput. Univ. Brawijaya, vol.
2, no. 9, pp. 3202–3207, 2018.
[9] Kurniawan, Adhadi, “Pengujian Tracking Color Menggunakan IP Webcam
untuk Deteksi Ketinggian Air,” Journal Rekayasa dan Teknologi Elektro,

52
vol.1, no. 3, pp.1-10, 2015.
[10] F. I. Komputer and U. D. Nuswantoro, “Sistem Informasi Pelayanan
Perangkat Teknologi Informasi (SIPP Ti ).”
[11] B. A. A. Sumbodo and A. Rahardian, “Rancang Bangun Sistem Pendeteksi
ARTag sebagai Landasan Pacu AR.Drone Menggunakan Platform ROS
(Robot Operating System),” Indonesian J. Electron. Instrum. Syst. (IJEIS),
vol. 8, no. 2, p. 131, 2018, doi: 10.22146/ijeis.23031.
[12] R. D. Kusumanto, A. N. Tompunu, and S. Pambudi, “Klasifikasi Warna
Menggunakan Pengolahan Model Warna HSV Abstrak,” J. Ilm. Tek.
Elektro, vol. 2, no. 2, pp. 83–87, 2011.

53
LAMPIRAN

Lampiran 1: Tampilan Drone Mengikuti Objek

54
Lampiran 2: Tampilan Camera Drone Pada Laptop

55
Lampiran 3: Tampilan Camera Drone Pada Laptop Dengan Warna Berbeda

56
Lampiran 4: Tampilan Camera Drone Pada Laptop Dengan Dua Warna

57
Lampiran 5: Tampilan Posisi Drone Pada Saat Dua Target Muncul

58
Lampiran 6: Program Python Main.py

import cv2
import numpy as np
import imutils
import time
from collections import deque
import ps_drone

#config
Altitude = 1300

#Controller config
UpdateRate = 1
MaxMovementRatePositive = 0.020
MaxMovementRateNegative = -0.020
DivisionValueX = 14400
DivisionValueY = 9450
TargetCircleMultiplayer = 3

#variables
points = deque(maxlen=32)
counter = 0
(dX, dY) = (0, 0)
direction = ""
Run = True
Direction1 = "error"
Direction2 = "error"
raduis = 0
CircleLostCount = 0
InsideCircle = False
TargetCircleRaduis = 0

#Display variables
DisplayDx = 0.0
DisplayDy = 0.0
DisplayTreshhold = 0
font = cv2.FONT_HERSHEY_SIMPLEX
print("starting....")
drone = ps_drone.Drone()
drone.startup()
drone.reset()
while (drone.getBattery()[0] == -1): time.sleep(0.1)

# Wait until the drone has done its reset

59
print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1]) # Gives a
battery-status

#setup
drone.useDemoMode(False)
drone.getNDpackage(["demo","pressure_raw","altitude","magneto","wifi"])
drone.setConfigAllID()
drone.sdVideo()
drone.frontCam()
CDC = drone.ConfigDataCount
while CDC == drone.ConfigDataCount: time.sleep(0.0001)
drone.startVideo()
IMC = drone.VideoImageCount
time.sleep(2.0)
drone.takeoff()
while(Run):
while drone.VideoImageCount==IMC:
time.sleep(0.01)

IMC = drone.VideoImageCount
key = drone.getKey()
if key:
Run = False

#if(CircleLostCount == 5):
# drone.land()
frame = drone.VideoImage
blurred = cv2.GaussianBlur(frame, (11, 11), 0)
hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV)
Greenmask = cv2.inRange(hsv, (65,60,60), (80, 255,255))
Greenmask = cv2.erode(Greenmask, None, iterations=2)
Greenmask = cv2.dilate(Greenmask, None, iterations=2)
FoundedContours=cv2.findContours(Greenmask.copy(),cv2.RETR_EXTERNAL,cv2.CHAI
N_APPROX_SIMPLE)
FoundedContours = imutils.grab_contours(FoundedContours)
center = None
if len(FoundedContours) > 0:
Circle = max(FoundedContours, key=cv2.contourArea)
((x,y),raduis) = cv2.minEnclosingCircle(Circle)
Middle = cv2.moments(Circle)
center = (int(Middle["m10"] / Middle["m00"]), int(Middle["m01"] / Middle["m00"]))
if raduis > 10:
cv2.circle(frame,(int (x),int (y)),int(raduis),(0,0,255),2)
TargetCircleRaduis = raduis * TargetCircleMultiplayer
cv2.circle(frame,(int (x),int (y)),int(TargetCircleRaduis),(255,255,0),2)
cv2.circle(frame,center,5,(0,255,255),-1)
points.appendleft(center)

60
else:
cv2.putText(frame,"Error no circel Found",(10,700), font, 1,
(255,255,255),2,cv2.LINE_AA)

#CircleLostCount+= 1
else:
cv2.putText(frame,"Error no circel Found",(10,700), font, 1,
(255,255,255),2,cv2.LINE_AA)

#CircleLostCount+= 1
DxCount = 0.0
DyCount = 0.0
for i in np.arange(1, len(points)):
if points[i - 1] is None or points[i] is None:
continue

#check if 400,400 is in surface of circle ((x,y),raduis) if case then no need to do


calculations
if counter >= 10 and i == 1:
print("Y points: " + str(points[i][1]))
DxCount = float(points[i][0])-320.0
DyCount = 170 - float(points[i][1])
cv2.line(frame, points[i - 1], (320,170), (0, 0, 255), 5)

#cv2.putText(frame,str(DxCount),(10,100), font, 1,(255,0,0),2,cv2.LINE_AA)


#cv2.putText(frame,str(DyCount),(10,150), font, 1,(255,0,0),2,cv2.LINE_AA)
if(DxCount < 0):
Direction1 = "Need to go Left"
if(DxCount > 0):
Direction1 = "Need to go Right"
if(DyCount < 0):
Direction2 = "Need to go Up"
if(DyCount > 0):
Direction2 = "Need to go Down"

if (int(points[i][0]) - 320)**2 + (int(points[i][1]) - 170)**2 <


(TargetCircleRaduis)**2:
InsideCircle = True
else:
InsideCircle = False
cv2.putText(frame,"Inside circel" + str(InsideCircle),(10,120), font, 1,
(255,0,0),2,cv2.LINE_AA)
CurrentAltitude = drone.NavData["altitude"][3]
if(counter % UpdateRate) == 0:
DisplayDx = DxCount
DisplayDy = DyCount

61
DisplayTreshhold = CurrentAltitude - Altitude
Xmovement = DxCount / DivisionValueX #6400
Ymovement = (DyCount / DivisionValueY) #4200
if Xmovement > MaxMovementRatePositive:
Xmovement = MaxMovementRatePositive
elif Xmovement < MaxMovementRateNegative:
Xmovement = MaxMovementRateNegative
if Ymovement > MaxMovementRatePositive:
Ymovement = MaxMovementRatePositive
elif Ymovement < MaxMovementRateNegative:
Ymovement = MaxMovementRateNegative
print("X: " + str(Xmovement) + " Y:" + str(Ymovement) )
AltitudeCommand = 0.0
if (CurrentAltitude - Altitude) > 80:
AltitudeCommand = -0.2
elif (CurrentAltitude - Altitude) < -80:
AltitudeCommand = 0.2
else:
AltitudeCommand = 0.0
if(InsideCircle == False):
drone.move(Xmovement, Ymovement, AltitudeCommand, 0)

else:
if(AltitudeCommand != 0.0):
drone.move(0, 0, AltitudeCommand, 0)
else:
drone.stop()

#time.sleep((DxCount / 320.0 + DyCount / 210.0) / 2.0)


cv2.putText(frame,Direction1,(10,30), font, 1,(255,0,0),2,cv2.LINE_AA)
cv2.putText(frame,Direction2,(10,60), font, 1,(255,0,0),2,cv2.LINE_AA)
cv2.putText(frame,"Altitude Treshhold: " + str(DisplayTreshhold),(10,90), font, 1,
(255,0,0),2,cv2.LINE_AA)
cv2.circle(frame,(320,170),10,(255,0,0),-1)
cv2.imshow("Detected",frame)
counter += 1
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()

62
Lampiran 7: Program VideoWriter

##Startup##
import time, sys
import ps_drone
import cv2
drone = ps_drone.Drone()
drone.startup()
drone.reset()
while (drone.getBattery()[0]==-1):
time.sleep(0.1)
print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1])
drone.useDemoMode(True)

##Setup##
drone.setConfigAllID()
drone.sdVideo()
drone.frontCam()
CDC = drone.ConfigDataCount
while CDC == drone.ConfigDataCount: time.sleep(0.0001)
drone.startVideo()

##Detection##
IMC = drone.VideoImageCount
stop = False
out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10,(800,800))
while not stop:
while drone.VideoImageCount==IMC:
time.sleep(0.01)
IMC = drone.VideoImageCount
key = drone.getKey()

if key:
stop = True

img = drone.VideoImage
resize = cv2.resize(img,(800,800))
#out.write(resize)
cv2.imshow('Drones video',resize)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.waitKey(1)
cv2.destroyAllWindows()

63

Anda mungkin juga menyukai