Anda di halaman 1dari 69

1

Percayalah,
Bahwa Tuhan telah merencanakan
setiap pertemuan-pertemuan hebat sejak jauh-jauh hari.
Dengan maksud yang kini belum kita mengerti,
dengan maksud yang masih harus kita cari dan pahami.
Termasuk pertemuan Anda dengan buku ini. Hari ini.
Selamat Berkelana!

GERAKAN MENULIS BUKU INDONESIA

2
Sanksi Pelanggaran Pasal 113
Undang-undang Nomor 28 Tahun 2014
Perubahan atas Undang-undang Nomor 7 Tahun 1987
Perubahan atas Undang-undang Nomor 6 Tahun 1982
Perubahan atas Undang-undang Nomor 19 Tahun 2002
Tentang Hak Cipta
(1) Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan
Secara Komersial dipidana dengan pidana penjara paling lama 1 (satu)
tahun dan/atau pidana denda paling banyak Rp100.000.000 (seratus juta
rupiah).
(2) Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau
pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf c, huruf d, huruf f,
dan/atau huruf h untuk Penggunaan Secara Komersial dipidana dengan
pidana penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling
banyak Rp500.000.000,00 (lima ratus juta rupiah).
(3) Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau
pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf a, huruf b, huruf e,
dan/atau huruf g untuk Penggunaan Secara Komersial dipidana dengan
pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling
banyak Rp1.000.000.000,00 (satu miliar rupiah).
(4) Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3)
yang dilakukan dalam bentuk pembajakan, dipidana dengan pidana penjara
paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak
Rp4.000.000.000,00 (empat miliar rupiah). Pasal 114 Setiap Orang yang
mengelola tempat perdagangan dalam segala bentuknya yang dengan
sengaja dan mengetahui membiarkan penjualan dan/atau penggandaan
barang hasil pelanggaran Hak Cipta dan/atau Hak Terkait di tempat
perdagangan yang dikelolanya sebagaimana dimaksud dalam Pasal 10,
dipidana dengan pidana denda paling banyak Rp100.000.000,00 (seratus
juta rupiah). Pasal 115 Setiap Orang yang tanpa persetujuan dari orang yang
dipotret atau ahli warisnya melakukan Penggunaan Secara Komersial,
Penggandaan, Pengumuman, Pendistribusian, atau Komunikasi atas Potret
sebagaimana dimaksud dalam Pasal 12 untuk kepentingan reklame atau
periklanan untuk Penggunaan Secara Komersial baik.

3
Penerbit CV Kekata Group, Surakarta 2018
4
Inovasi & Teknologi Drone
Copyright © Prof. Dr. Widodo Budiharto, S.Si., M.Kom.
Dr. Ir. Jarot S. Suroso, M.Eng.
Dr. Alexander Agung Santoso Gunawan, S.T., M.Si, M.Sc.
Andry Chowanda, S.Kom., MM., Ph.D., MBCS

Penulis: Prof. Dr. Widodo Budiharto, S.Si., M.Kom.


Dr. Ir. Jarot S. Suroso, M.Eng.
Dr. Alexander Agung Santoso Gunawan, S.T., M.Si, M.Sc.
Andry Chowanda, S.Kom., MM., Ph.D., MBCS
Editor: Aditya Kusuma Putra
Penata Letak: Arif Tunjung Pradana
Penata Sampul: Raditya Pramono
Sebagian ilustrasi diambil dari internet

CV KEKATA GROUP
Kekata Publisher
kekatapublisher@kekatagroup.co.id
kekatapublisher.com
Fanspage: Kekata Publisher
“Cafebaca” Jalan Kartika, Gang Sejahtera 1 No. 3, Jebres,
Surakarta, Indonesia

Cetakan Pertama, Desember 2018


Surakarta, Kekata Publisher, 2018
ix + 59 hal; 18,2×25,7 cm
ISBN: 978-602-476-235-3

Dicetak oleh
Percetakan CV Oase Group
Isi di luar tanggung jawab percetakan

Anggota IKAPI Provinsi Jawa Tengah


Katalog Dalam Terbitan

Hak cipta dilindungi Undang-Undang


All Right Reserved
Dilarang mengutip atau memperbanyak sebagian atau
seluruh isi buku ini tanpa izin tertulis dari penerbit

5
Kata Pengantar

Kemajuan teknologi Drone serta pemrosesan citra dan Computer Vision


menghasilkan berbagai peranti lunak dan keras yang berguna bagi masyarakat terutama
untuk surveillance, bisnis serta pertanian. Materi Teknologi Drone pada buku ini
diperdalam konsep arsitektur drone, pemrograman, hingga deteksi obyek untuk
menghasilkan sistem drone yang handal untuk masa depan. Inovasi merupakan kata
kunci di dalam menghasilkan produk yang berguna bagi masyarakat. Harapan kami,
dengan hadirnya buku teks ini dapat dijadikan pegangan utama mata kuliah teknologi
Unmanned Aerial Vehicle (UAV, pesawat tanpa awak) / Drone serta Computer Vision di
seluruh jurusan Teknik Informatika/Sistem Komputer/Pertanian/Elektro dan MIPA di
Indonesia. Buku ini diharapkan juga dapat digunakan bagi para praktisi pengembang
teknologi drone di Indonesia untuk mendukung teknologi yang memajukan era Industry
4.0 sekarang ini.
Penulis mengucapkan terima kasih kepada rekan-rekan yang membantu penulis
dan memberikan masukan dalam penyelesaian buku ini sehingga memiliki isi materi yang
berbobot. Penulis mengucapkan banyak terima kasih atas dukungan dari Yayasan Bina
Nusantara yang mendukung penuh penelitian ini hingga para penulis dapat menerbitkan
buku ini. Selain itu penulis juga mengucapkan terima kasih atas dukungan penuh dari
Bapak Prof. Dr. Ir. Harjanto Prabowo, MM. sebagai Rektor BINUS University Jakarta untuk
melakukan riset lanjutan di bidang teknologi drone melalui hibah Penelitian Unggulan
Binus (PUB) 2018-2021. Mencoba praktek langsung merupakan suatu keharusan untuk
mencapai sukses pada riset drone. Untuk permintaan pelatihan serta pemesanan
perangkat trainer drone serta drone komersial yang telah kita kembangkan, dapat
menghubungi penulis di wbudiharto@binus.edu.

Jakarta, 20 September 2018

Widodo Budiharto, Jarot S. Suroso,


Alexander Agung Santoso Gunawan dan Andry Chowanda

6
Daftar Isi

Bab 1................................................................................................................ 1
Mengenal Teknologi Drone ............................................................................ 1
1.1 Mengenal Teknologi Drone ...........................................................................1
1.2 Cara Kerja Drone ............................................................................................3
1.3 Inovasi dan Riset Teknologi Drone................................................................5
Bab 2................................................................................................................ 7
Perkembangan Teknologi Drone ................................................................... 7
2.1 Implementasi Drone .......................................................................................7
2.2 Jenis-jenis Drone .............................................................................................7
2.3 Cara Kerja Drone.............................................................................................7
2.4 Manfaat Drone.................................................................................................8
2.5 Kelebihan dan kekurangan drone .................................................................8
Bab 3.............................................................................................................. 10
Komponen Utama Drone .............................................................................. 10
3.1 Komponen Utama Drone .............................................................................. 10
3.2 Robot Operating System (ROS) .................................................................... 14
3.3 Global Positioning System (GPS) ................................................................... 15
3.4 Google Maps API ............................................................................................ 16
Bab 4.............................................................................................................. 19
Desain Perangkat Drone .............................................................................. 19
4.1 Pendahuluan ................................................................................................. 19
4.2 Parrot AR Drone ............................................................................................ 20
4.3 Erle Quadcopter dan Hexacopter Drone ..................................................... 21
Bab 5.............................................................................................................. 24
Dasar Pemrograman Drone ......................................................................... 24

1
5.1 Pendahuluan ................................................................................................. 24
5.2 Pemrograman Dasar Scratch ....................................................................... 24
5.3 Pemrograman Dasar Python ........................................................................ 27
5.4 Navigasi Parrot AR Drone............................................................................. 28
5.5 Marker detection .......................................................................................... 33
Bab 6.............................................................................................................. 35
Pemrograman Lanjutan Drone .................................................................... 35
6.1 Deep Learning untuk Object Detection di Drone .......................................... 35
6.2 Implementasi Deep Learning Pada Drone .................................................. 36
Bab 7.............................................................................................................. 41
Computer Vision & Pengolahan Citra .......................................................... 41
7.1 Pendahuluan ................................................................................................. 41
7.2 Sampling dan Image Processing .................................................................. 42
7.4 Histogram Equalization ................................................................................ 45
7.5 Embedded System untuk Pengolahan Citra ................................................ 46
Bab 8.............................................................................................................. 50
Image Filtering untuk Drone........................................................................ 50
8.1 Penggunaan Kamera .................................................................................... 50
8.2 Konsep Image Filtering ................................................................................ 51
Glossary ......................................................................................................... 57

2
1
Bab 1

Mengenal Teknologi Drone

Tujuan Instruksional Umum


 Setelah memelajari Bab ini, mahasiswa mampu menjelaskan dasar teknologi
drone

Tujuan Instruksional Khusus:


 Mahasiswa mampu menjelaskan definisi dan desain dasar teknologi drone
 Mahasiswa mampu menjelaskan berbagai fungsi dari drone
 Mahasiswa dapat menjelaskan cara kerja dan komponen utama teknologi drone

1.1 Mengenal Teknologi Drone

Menurut Kamus Besar Bahasa Indonesia (KBBI), arti kata inovasi adalah
pemasukan atau pengenalan hal-hal yang baru; pembaharuan. Inovasi adalah suatu
penemuan baru yang berbeda dari yang sudah ada atau yang sudah dikenal sebelumnya.
Inovasi merupakan gabungan dari penemuan ide-ide baru yang diwujudkan dalam
bentuk teknologi yang dikomersialisasikan dengan baik. Stephen Robbins (1994),
Mendefinisikan, inovasi sebagai suatu gagasan baru yang diterapkan untuk
memprakarsai atau memperbaiki suatu produk atau proses dan jasa. Pesawat berbentuk
Drone dengan bantuan Kecerdasan buatan yang dapat digunakan untuk pengiriman
barang, pemantauan serta kebutuhan penyebaran pupuk dari udara untuk keperluan
pertanian merupakan salah satu inovasi terkini.
Menurut Russel dan Norvig, Kecerdasan Buatan adalah cabang ilmu komputer
yang bertujuan mengembangkan sistem komputer dengan kemampuan sebagai berikut:
thinking humanly, thinking rationally, acting humanly dan acting rationally (Russell &
Norvig, 2010). Teknologi berbasis kecerdasan buatan (Artificial Intelligence) berkembang
pesat dan sangat dibutuhkan di berbagai bidang, kini maupun masa akan datang, tidak
terkecuali pada teknologi keamanan dan pertahanan.
Pesawat Udara Tanpa Awak (PTA) atau istilah lainnya yaitu Unmanned Aerial
Vehicle (UAV) adalah pesawat yang dapat terbang tanpa dikendalikan manusia. UAV
sangat penting peranannya di bidang Pertahanan dan Keamanan NKRI. Hal tersebut
dikatakan penting karena banyak misi yang dapat dilakukan menggunakan UAV. Misi-
misi tersebut antara lain membantu dalam melakukan serangan udara, menjaga
perbatasan, melakukan pengintaian markas musuh, melakukan pengawalan, konservasi
daerah hutan lindung, pengiriman obat-obatan atau mendeteksi sumber asap akibat
1
kebakaran hutan. Pesawat UAV atau yang kemudian lebih dikenal sebagai Drone
ditujukan untuk misi perekaman foto dan video dari udara, pengawasan (surveilance) dan
pertolongan pertama (first aid) jika terdapat keadaan darurat yang membutuhkan obat
atau peralatan medis tertentu (misal alat pacu jantung atau peralatan penghenti
pendarahan) yang harus dikirim secepat mungkin, sesuai dengan kondisi geografis
Negara Indonesia yang luas, dan terpisah oleh sungai dan lautan. Drone juga memiliki
kemampuan menjangkau area sempit/terbatas dimana pesawat lain tidak mampu
menjangkaunya (Steven, 2016).
Pada awalnya, pesawat jenis drone digunakan sebagai alat pengintaian dan
penyerangan atau secara umum dimanfaatkan oleh pihak militer. Menurut sejarahnya,
ide pengembangan pesawat tanpa pilot sudah ada sejak 22 Agustus 1849. Waktu itu,
Austria berusaha menyerang kota Venesia di Italia dengan menggunakan balon tak
berawak yang penuh akan bahan peledak namun tidak
maksimal. Cara kerja drone sederhana ini tidak sepenuhnya berhasil. Agar dapat
digunakan secara praktis, maka teknologi drone ini dapat dikendalikan dengan remote
controller menggunakan teknologi GPS dan berbagai sensor, Wi-Fi bahkan smartphone
android. Sedangkan definisi dari situs http://internetofthingsagenda.techtarget.com,
drone adalah:

A drone, in a technological context, is an unmanned aircraft. Drones are more formally


known as unmanned aerial vehicles (UAVs) or unmanned aircraft systems (UASes).
Essentially, a drone is a flying robot.

Gambar 1.1 menggambarkan contoh drone yang dapat dikontrol melalui remote
controller. Terdapat beberapa jenis drone sesuai dengan kebutuhannya. Ada drone yang
memiliki beberapa sensor-sensor yang digunakan dari accelerometer, gyroscope, infrared,
dan camera. Kegunaan drone juga sangat bervariasi, mulai dari digunakan sebagai hobi,
alat transportasi pengantaran barang, sampai digunakan dalam militer sebagai pesawat
tanpa awak yang dikirimkan ke medan perang.

Gambar 1.1. Drone untuk keperluan hiburan dan hobi

2
1.2 Cara Kerja Drone
Dalam pembuatannya, umumnya drone dirancang dalam bentuk multi-rotor
dimana jenis paling populer yaitu quadcopters atau kendaraan dengan empat rotor
(penggerak). Adapula jenis flapping wings dimana bentuk rancangannya menyerupai
burung. Semakin canggih teknologi yang ditanam dalam suatu desainnya, semakin rumit
pula cara kerja drone. Namun, kemudahan mengatur pesawat tanpa awak ini secara jarak
jauh justru memberikan fleksibilitas bagi pengguna melakukan suatu misi di area tertentu
atau tidak mudah dijangkau oleh manusia. Sebagai contoh saat melakukan tinjauan di
area yang terkena bencana. Saat tim penyelamat masih kesulitan menjangkau tempat
tersebut untuk melakukan penyusuran dan evakuasi, satu atau beberapa drone dapat
dikirim untuk meninjau lokasi dan mengirimkan laporan dengan lebih cepat.

Teknologi drone semakin menarik perhatian banyak kalangan, terutama di bidang


bisnis. Fungsinya yang mampu diterapkan ke dalam berbagai misi menjadi pertimbangan
utama. Hal ini ternyata dapat membantu dalam peningkatan produktivitas, penekanan
biaya operasional dan minimalisasi resiko kecelakaan. Selain itu, banyaknya pihak yang
menginginkan drone, tentunya membuka peluang bagi para ahli dalam teknologi robotika
untuk mengkomersilkan keahliannya. Drone yang akan di terbangkan menggunakan GPS
bergantung dengan kekuatan sinyal GPS. Karena drone yang di terbangkan dengan GPS
tidak terikat jarak antara pilot dengan drone, jadi dimanapun kita berada drone akan
tetap terbang sesuai perintah. Hal ini dikarenakan ada perantara yaitu satelit GPS. Kamu
mengirimkan data ke satelit dan satelit mengirimkan data ke drone. Itu kenapa sinyal
harus kuat atau jika tidak drone kamu akan hilang selamanya bisa juga lost control. Model
kontrol seperti ini yang harus para pengembang untuk kembangkan. Drone dengan
kemampuan GPS sudah di wajibkan untuk dilakukan setting home base (tempat pulang)
melalui koordinat sesuai keinginan pengguna.

Penggunaan helikopter dengan empat baling-baling atau helikopter quad rotor


(quadcopter drone) sebagai model penelitian banyak berkembang belakangan ini. Banyak
sekali perguruan tinggi maupun lembaga penelitian di dunia yang telah melakukan
penelitian menggunakan quadcopter (B.B.V.L & Singh, 2016). Lembaga-lembaga tersebut
antara lain adalah CSAIL Robust Robotics Group di MIT, GRASP Lab di University of
Pennsylvania, dan NIMBUS Lab. Keunggulan pengembangan UAV menggunakan
quadcopter antara lain adalah kendali yang lebih mudah karena tidak menggunakan
sistem kemiringan baling-baling pada helikopter, banyaknya platform quadcopter yang
sudah dapat diprogram saat ini, ukurannya yang tidak terlalu besar, dan ketahanannya
terhadap benturan jika terjadi kesalahan. Teknologi gimbal sangat penting untuk
menangkap foto udara, film, atau citra 3D berkualitas. Gimbal memungkinkan getaran
dari drone untuk tidak mencapai kamera. Gimbal memungkinkan Anda memiringkan
kamera saat dalam penerbangan, menciptakan sudut yang unik. Banyak gimbal stabil 3
sumbu dengan 2 mode kerja yaitu Mode Non-FPV dan mode FPV. Berikut contoh DJI
Mavic Air – GPS, 4k Camera dan Autopilot dengan kemampuan autopilot seperti
ActiveTrack quicshot, tapFly serta waypoints.

3
Gambar 1.2. Mavic Air Drone

Bagian penting drone adalah adanya motor yang disebut multirotor, microcontroller,
GPS serta sensor jarak dan gyro. Ilustrasi elemen yang berbeda dari drone multirotor
dilengkapi dengan kontroler Pixhawk seperti ditunjukkan pada gambar 1.3.

Gambar 1.3. Drone multi rotor

4
Gambar 1.4 mengilustrasikan hubungan antara berbagai multirotor elemen drone
dengan controller penerbangan menggunakan Pixhawk 3D. Hal ini hanya salah satu dari
banyak konfigurasi yang mungkin dibuat, itu dilakukan dengan menambah mesin dengan
tidak menggunakan telemetri, menambahkan baterai, sonar, dll

Gambar 1.4. Sistem koneksi drone multi rotor

1.3 Inovasi dan Riset Teknologi Drone


Berbagai inovasi telah dikembangkan untuk menerapkan drone sebagai
perangkat komersial untuk pengiriman barang atau surveilance dan pemetaan pertanian.
Lembaga-lembaga riset yang mengembangkan teknologi drone antara lain adalah CSAIL
Robust Robotics Group di MIT, GRASP Lab di University of Pennsylvania, dan Lab
Robotics and Intelligent Systems Binus University, Jakarta. Keunggulan pengembangan
UAV menggunakan quadcopter antara lain adalah kendali yang lebih mudah karena tidak
menggunakan sistem kemiringan baling-baling pada helikopter, banyaknya platform
quadcopter yang sudah dapat diprogram saat ini, ukurannya yang tidak terlalu besar, dan
ketahanannya terhadap benturan jika terjadi kesalahan.

5
Latihan:

1. Jelaskan definisi dan peranan dari drone untuk keperluan komersial dan militer.
2. Jelaskan cara kerja drone dan perangkat utama yang dibutuhkan.

Referensi:

1. Steven Otfinoski (2016), Drones: Science, Technology, and Engineering (Calling


All Innovators)
2. Russell, S., & Norvig, P. (2010). Artificial Intelligence: a Modern Approach (3rd
edition ed.). Pearson Publisher.
3. Stephen P. Robbins (1994), Management, Prentice Hall Publisher.
4. Ambulance Drone is a flying first aid kit that could save lives. (2014). Retrieved
from Spring Wise: https://www.springwise.com/ambulance-drone-flying-aid-kit-
save-lives/
5. B.B.V.L, D., & Singh, P. (2016). A survey on design and development of an
unmanned aerial vehicle (quadcopter). International Journal of Intelligent
Unmanned Systems, 70 -106.

6
Bab 2

Perkembangan Teknologi Drone

Tujuan Instruksional Umum


 Setelah memelajari Bab ini, mahasiswa mampu menjelaskan mengenai
perkembangan teknologi drone

Tujuan Instruksional Khusus:


 Mahasiswa mampu menjelaskan bentuk dasar dari drone
 Mahasiswa mampu menjelaskan konfigurasi dasar dari drone
 Mahasiswa dapat menjelaskan manfaat dari penggunaan drone
 Mahasiswa dapat menjelaskan kelebihan serta kekurangan dari drone

2.1 Implementasi Drone


Drone memliki bentuk, ukuran, konfigurasi dan karakter yang bervariasi. Sejarah
pesawat tanpa awak adalah drone, drone digunakan sebagai sasaran tembak.
Perkembangan kontrol otomatis membuat drone mampu berubah menjadi pesawat tanpa
awak yang kompleks dan rumit. Kontrol drone ada dua variasi utama, pertama yaitu
dikendalikan melalui pengendali jarak jauh dan kedua adalah pesawat yang terbang
secara mandiri berdasarkan program yang dimasukan kedalam drone sebelum terbang.

Saat ini, drone mampu melakukan misi pengintaian dan penyerangan. Walaupun
banyak laporan mengatakan bahwa banyak serangan drone yang berhasil tetapi drone
mempunyai banyak drone digunakan untuk menyerang secara berlebihan atau
menyerang target yang salah. Drone juga semakin banyak digunakan untuk keperluan
sipil (non militer) seperti pemadam kebakaran, keamanan non militer, situasi darurat
(emergency situation) atau pemeriksaan jalur pemipaan. Drone sering digunakan juga
untuk melakukan tugas yang dianggap sulit dan berbahaya bila dilakukan oleh pesawat
berawak.

2.2 Jenis-jenis Drone


Ada banyak jenis drone dilihat dari bentuk, ukuran, konfigurasi, serta fungsi yang
sangat bervariasi. Secara garis besar saat ini ada 2 tipe drone:
1. Drone dengan Kontrol Jarak Jauh (Pilot).
2. Drone dengan Autopilot (mengendalikan dirinya sendiri).

2.3 Cara Kerja Drone


Drone merupakan pesawat nirawak atau pesawat tanpa awak. Pesawat ini tidak
membutuhkan seorang pilot untuk memandunya, serta sering disebut sebagai pesawat

7
UAV atau Unmanned Aerial Vehicle. Teknologi ini menjadi salah satu yang berkembang
pesat di dunia.
Tidak hanya dimanfaatkan dalam dunia militer, drone juga dapat digunakan
dalam berbagai bidang kehidupan, seperti kesehatan, pengiriman barang dan bahkan
berselfie ria. Tak jarang juga di masyarakat, model pesawat tanpa awak menjadi mainan
dan olahraga populer. Sebagai pesawat tak berawak, tentunya tidak ada manusiapun di
dalam sebuah drone. Bentuknya bermacam-macam mengikuti tujuan utama penggunaan.
Sedangkan cara kerja drone yaitu memanfaatkan kendali jarak jauh atau sistem remote
dimana pilote memegang kontrol dari darat. Dengan semakin berkembangnya teknologi,
kini ada pula drone yang memiliki kemampuan untuk mengendalikan dirinya secara
mandiri setelah diprogram menggunakan komputer onboard yang dipasangkan di drone
itu sendiri.

2.4 Manfaat Drone


Dewasa ini pemanfaatan teknologi drone juga menjalar ke area sipil (non-
militer). Tujuan utama yang tadinya seperti rudal, kini berubah sebagai alat yang
bermanfaat untuk pemetaan wilayah, fotografi, pemadam kebakaran, situasi darurat
(emergency situation), pemeriksaan jalur pemipaan dan sebagainya. Tentunya cara kerja
drone disesuaikan dengan fungsi dan tujuan penggunaan. Sampai saat ini, drone telah
dimanfaatkan pula dalam industri bisnis dan diaplikasikan ke dalam berbagai layanan,
seperti namun tidak terbatas pada:
1. Pengiriman komersil
2. Pengawasan keamanan komersil
3. Eksplorasi tambang, minyak dan mineral
4. Bantuan kesehatan darurat
5. Pembuatan film

2.5 Kelebihan dan kekurangan drone


Perkembangan drone yang begitu pesat serta penggunaannya yang begitu
kompleks membuat drone banyak mempunyai kelebihan serta di lain sisi juga
mempunyai kekurangan. Beberapa poin utama dalam kelebihan dan kekurangan
dijelaskan secara singkat pada paragraph dibawah ini.

1. Kelebihan drone:
a. Tidak perlu tenaga ahli atau pilot untuk menerbangkannya.
b. Harga lebih murah dibandingkan memakai pesawat umum berawak.
c. Biaya perawatan lebih terjangkau.
d. Bersifat portable sehingga bisa lebih mudah dibawa kemana saja.
e. Keamanan pada manusia lebih terjamin jika terjadi kesalahan system.
f. Ukurannya kecil dan beratnya pun sangat ringan.
g. Sistem navigasi yang canggih.
h. Control jarak jauh terutama bila menggunakan teknologi GPS (Global
Positioning System).
8
2. Kekurangan drone:
a. Tidak bisa menjangkau tempat yang jauh karena keterbatasan daya tahan
baterai/bahan bakar.
b. Sangat rawan rusak jika terjadi badai di lautan karena ukurannya yang kecil.
c. Harus memiliki banyak tempat pemberhentian untuk mengisi battery/bahan
bakar.
d. Harus orang yang mengerti untuk pengoperasiannya.

Latihan:

1. Jelaskan implementasi dan jenis-jenis drone yang ada.


2. Jelaskan cara kerja drone dan kegunaannya saat ini.

Referensi:

1. Steven Otfinoski (2016), Drones: Science, Technology, and Engineering


(Calling All Innovators)

2. Anonim. 2012. Pengertian pesawat tanpa awak. http://id.wikipedia.org/


wiki/ Pesawat_tanpa_awak.

3. Syahputra, W. 2014. Komitmen Indonesia terhadap perkembangan drone.


http:// www.antaranews.com/berita/440/komitmen-indonesia.

4. B.B.V.L, D., & Singh, P. (2016). A survey on design and development of an


unmanned aerial vehicle (quadcopter). International Journal of Intelligent
Unmanned Systems, 70 -106.

9
Bab 3

Komponen Utama Drone

Tujua Instruksional Umum


 Setelah memelajari Bab ini, mahasiswa mampu menjelaskan komponen utama
dan cara kerja drone

Tujuan Instruksional Khusus:


 Mahasiswa mampu menjelaskan komponen utama pembentuk drone
 Mahasiswa mampu menjelaskan berbagai fungsi komponen utama dari drone
 Mahasiswa dapat menjelaskan cara kerja lebih detil dari multirotor dan ROS
drone

3.1 Komponen Utama Drone

Secara umum, ada dua jenis drone, yaitu fixed wing dan multi-rotor (multi-motor).
Fixed wing drone, memiliki bentuk dan bekerja dengan prinsip-prinsip yang sama
dengan pesawat terbang. Motornya diletakkan horizontal, sehingga baling-balingnya
dapat menggerakkan badan drone secara horizontal pula. Sayap dan badan drone
dibuat aerodinamis, untuk mendapat daya angkat optimal pada saat drone bergerak
horizontal. Multi-rotor drone bekerja dengan prinsip-prinsip yang sama dengan
helikopter. Motornya diletakkan vertikal, sehingga baling-balingnya dapat membuat
daya angkat (thrust) secara vertikal pula. Drone multi-rotor inilah yang menjadi fokus
pembahasan di buku ini. Komponen uatama drone adalah:

1. Motor
Drone 4-motor sering dikenal juga dengan nama quadcopter (quad = 4).
Sementara saudara-saudara lainnya: 3-motor dikenal dengan nama tricopter, 6-
motor dengan namahexacopter dan 8-motor dengan nama octocopter seperti
ditunjukkan pada gambar 3.1.

10
Gambar 3.1. Model drone quadcopter yang membuat dapat
terbang

2. Frame
Sebuah drone memerlukan kerangka/frame. Sebuah drone memerlukan kerangka
atau dalam bahasa Inggris disebut sebagai frameataupun rig. Kerangka drone 4-
motor, biasanya menyerupai huruf "x" ataupun tanda "+". Keempat motor terpasang
pada ujung-ujung kerangka tersebut. Perbedaan utama antara keduanya adalah ke
arah ke mana "muka" dari pengendali utama atau flight controller menghadap.
Gambar 3.2 berikut dapat memberikan ilustrasi perbedaan antara keduanya.

Gambar 3.2 Model Kerangka pada drone

3. Baling-Baling
Motor dan baling-baling adalah penggerak utama yang mengakibatkan drone
dapat terbang di udara. Drone 4-motor memiliki 2 motor yang menggerakkan
baling-baling searah jarum jam (clockwise - cw). Dan 2 motor lainnya lagi
menggerakkan berlawanan arah jarum jam (counter-clockwise - ccw). Gambar
3.3 mengilustrasikan baling-baling yang digunakan untuk drone.

11
Gambar 3.3. Baling-baling untuk drone

4. Pengendali Utama (Controller) serta sensor


Pengendali Utama, dikenal dalam bahasa Inggris sebagai flight
controller (FC) ataupu Main Controller (MC), merupakan komputer
mini yang dipasang sebagai pengendali utama sebuah drone. Biasanya
FC ini diprogram menggunakan Robot Operating Systems (ROS) (Erle
robotics, 2018). Dia bertugas mengumpulkan dan mengelola informasi
ketinggian, kecepatan, arah, kemiringan dan lain-lain dan
mengusahakan agar drone tetap dalam keadaan yang sesuai dengan
yang diharapkan. Sebuah flight controller yang baik dapat
mengumpulkan sebanyak-banyaknya informasi melalui berbagai
peralatan sensor, yang "tertanam" dalam flight controller itu sendiri,
maupun yang terhubung dengannya. Semakin banyak sensor, semakin
bagus flight controller tersebut. Gambar 3.4 mengilustrasikan contoh
dari controller untuk drone yang memiliki basis ROS dengan nama
Erle-Brain. Adapun jenis sensor yang umum digunakan dalam sebuah
flight controller adalah sebagai berikut:

• Accellerometer, sensor pendeteksi kecepatan dan perubahan posisi,


• Magnetometer, sensor pendeteksi ke arah mana flight controller
menghadap (kompas)
• Gyroscope, sensor pendeteksi perubahan arah gerak,
• Barometer, sensor pendeteksi perubahan tekanan udara (penentu
ketinggian),

12
• dan biasanya juga sensor GPS.

Gambar 3.4. Controller Drone berbasis ROS bernama Erle-Brain


(sumber: erlerobotics.com)

5. Electronic Speed Control (ESC)


Bagian ini merupakan bagian yang cukup penting mengatur kecepatan dari
setiap motor. ESC ini biasanya akan otomatis mengatur kecepatan atau arus ke
setiap motor. Praktek sederhananya adalah ketika posisi pesawat sedang miring,
maka ESC otomatis akan mengirimkan atau membuat salah satu atau beberapa
motor berputar lebih cepat demi membuat keseimbangan pesawat. Dalam
quadcopter dibutuhkan 4 ESC sesuai jumlah rotornya.

6. Battery dan Charger


Komponen selanjutnya adalah sumber tenaganya. Baterai yang biasa digunakan
adalah jenis Lithium Polymer (LiPo), dan untuk penggunaan pada multirotor
biasanya menggunakan jenis kemasan softpack untuk meminimalkan beban. Yang
diperlukan dalam pemilihan baterai adalah berdasarkan jumlah cell dan
kapasitasnya. Selain itu juga diperhatikan bentuk konektornya, yang cukup umum
digunakan adalah konektor model XT60 atau Deans Plug. Jumlah cell menentukan
berapa voltage baterai tersebut. Satu cell LiPo adalah sebesar 3.7 Volt, jadi apabila
menggunakan LiPo 3 cell, berat memiliki ukuran 11.1 Volt. Sesuaikan dengan Motor
dan ESC yang akan digunakan bersama-sama.
Untuk charger baterai, banyak pilihan dengan berbagai fitur, misalnya ada yang
dilengkapi dengan fitur charge beberapa baterai sekaligus atau ada juga yang bisa

13
melakukan balance charging . Yang jelas menggunakan charger yang baik dengan
teknik charging yang baik bisa membuat umur baterai lebih lama.

7. Remote Control
Remote control merupakan bagian yang penting. Sekalipun sudah merakit drone
quadcopter dengan baik tapi tak bisa terbang tanpa remote. Yang perlu diperhatikan
dalam memilih remote quadcopter adalah jumlah Channel yang mampu di control
oleh Radio Transmitternya. Pada quadcopter minimal diperlukan 4 channel yaitu
untuk mengendalikan Throttle, Yaw, Pitch dan Roll. Channel tambahan bisa
digunakan untuk keperluan lain misalnya mengganti flight mode, atau
menggerakkan camera untuk menggambil foto atau video udara.

3.2 Robot Operating System (ROS)


Robot Operating System (ROS) (Koubaa, 2016) adalah sebuah meta-operating system
sumber terbuka untuk robot. ROS menyediakan servis-servis sama halnya dengan sebuah
sistem operasi seperti pengabstrakan perangkat keras, kontrol alat level rendah,
implementasi fungsi-fungsi yang sudah umum, mengirim pesan antar proses, serta
memanajemen paket. ROS juga menyediakan perlengkapan-perlengkapan dan pustaka-
pustaka untuk membuat dan menjalankan kode melewati beberapa komputer. ROS
memiliki sebuah runtime yang merupakan jaringan peer-to-peer yang menghubungkan
antar proses satu dengan lainnya dalam infrastruktur komunikasi ROS. Dengan demikian,
setiap program yang akan dijalankan dalam ROS akan berkomunikasi satu sama lain
seperti dalam sebuah jaringan. Beberapa perangkat utama ROS beserta istilah istilahnya
dapat diliat pada daftar dibawah ini.
a. The ROS Master. Merupakan perangkat utama dari ROS. ROS Master menyediakan
penamaan dan registrasi servis-servis kepada nodes dalam ROS. ROS Master juga
mengatur setiap ROS publisher dan subscriber agar dapat digunakan dalam
komunikasinya. Hal ini dilakukan agar lokalisasinya tertata dengan baik sehingga
setiap node dapat berkomunikasi peer-to-peer satu sama lain. ROS Master dijalankan
menggunakan perintah roscore. Perintah ini me-load ROS Master bersamaan dengan
komponen penunjang lainnya.
b. ROS Node. Sebuah node dalam ROS adalah sebuah proses yang melakukan komputasi.
Nodes berhubungan satu dengan yang lain dan membentuk sebuah graph. Nodes ini
berkomunikasi satu dengan lainnya menggunakan topics, services, dan Parameter
Server. Contoh dari penggunaan node adalah sebuah node melakukan lokalisasi, node
laiinnya melakukan deteksi objek, sedangkan node lainnya mengatur pergerakan.
c. ROS Topic. Merupakan penamaan dari sebuah media komunikasi antar nodes dalam
mengirim dan menerima pesan. Topik ini dapat di-publish maupun di-subscribe dari
sebuah node. Node yang mem-publish suatu topik adalah node yang mengirimkan
pesan sedangkan node yang men-subscribe suatu topik adalah node yang menerima
pesan.
d. ROS publisher dan subscriber. Merupakan istilah untuk sebuah node ROS. Publisher
node berarti node yang mem-publish (mengirim) sebuah pesan melalui sebuah topik.
14
Subscriber node berarti node yang men-subscribe (menerima) pesan melalui sebuah
topik.
e. Messages dalam ROS. Merupakan sebuah data struktur ataupun tipe data primitif
yang nilainya dikirim melalui topik.
f. ROS Service. Merupakan cara selain topik untuk menyampaikan pesan. Hal ini
digunakan karena paradigma publish dan subscribe yamg menggunakan transportasi
many-to-many one-way tidak sesuai dengan interaksi RPC request / reply yang sering
dibutuhkan pada sebuah distributed system. Request / reply yang dilakukan servis
didefinisikan sebagai sepasang pesan, satu untuk request dan satu untuk reply.
g. rxgraph. Digunakan untuk melihat node-node yang berjalan serta
hubunganhubungannya melalui topik-topik ROS.
h. rxplot. Digunakan untuk melakukan plotting data yang dijalankan secara realtime.

3.3 Global Positioning System (GPS)


Global Positioning System (GPS) adalah sistem radio navigasi dan penentuan posisi
dengan menggunakan satelit yang dimiliki dan dikelola oleh Departemen Pertahanan
Keamanan Amerika Serikat. Sistem ini didesain untuk memberikan posisi dan kecepatan
tiga dimensi dan informasi mengenai waktu secara kontinu. GPS terdiri dari tiga segmen
utama: segmen angkasa (space segment) yang terdiri dari satelit-satelit GPS, segmen
sistem kontrol (control segment) yang terdiri dari stasiun-stasiun pemonitor dan
pengontrol satelit, dan segmen pemakai (user segment) yang terdiri dari pemakai GPS
termasuk alat dan pengolah sinyal data GPS. Dalam gambar 3.5 terdapat ilustrasi
bagaimana data dari GPS digunakan untuk mengendalikan hexacopter.

Gambar 3.5 Pengendalian hexacopter dengan GPS

15
Unit penerima sinyal GPS mengoleksi sinyal yang dikirimkan dari sistem 24
satelit. Sistem ini bernama NAVSTAR dan dikelola oleh Amerika Serikat. Setiap saat, lima
unit penerima sinyal GPS di permukaan bumi. Penentuan posisi dapat dilakukan dengan
trilateration Untuk menentukan posisi dengan tepat maka diperlukan tiga nilai jarak
antara unit penerima sinyal GPS satelit GPS. Ketiga jarak tersebut membentuk lingkaran
pada masing-masing satelit dengan titik potong ketiga lingkaran tersebut (lihat gambar
3.6) mendefinisikan posisi dari unit penerima sinyal GPS.

Gambar 3.6. Trilateration Menggunakan Tiga Satelit

Perlu diketahui bahwa tingkat akurasi GPS dipengaruhi oleh beberapa hal antara lain:
 Teknik pengukuran dengan GPS yang dilakukan (misalnya Autonomous, WADGPS,
DGPS, RTK, dll.)
 Kondisi lingkungan (visibilitas satelit dan multipath)
 Jumlah satelit yang terlihat
 Geometri satelit (HDOP, GDOP, PDOP, dll.)
 Jarak dari Reference Receiver(s) (GPS non-autonomous misalnya: WADGPS, DGPS,
RTK)
 Kondisi ionosfer dan kualitas penerima sinyal GPS
 Ketersediaan selektif (selective availability, gangguan yang dihasilkan oleh
Departemen Pertahanan Keamanan Amerika Serikat pada sinyal GPS)

3.4 Google Maps API


Menurut Google Developers, Google Maps API yang berbasis JavaScript dalam
penggunaannya memungkinkan peta digital Google (maps.google.com) digunakan pada
16
halaman-halaman web. Application Programming Interface (API) ini memberikan
fungsifungsi untuk memanipulasi peta. Google Maps API membantu developer untuk
merancang aplikasi berbasis Maps. Dengan API ini aplikasi dapat dibuat pada berbagai
platform seperti web, Android, iOS, server, dan GIS software.
Dalam penelitian ini, akan digunakan smartphone Android sebagai pengendali.
Android merupakan sistem operasi berbasis Linux yang dirancang khusus untuk
smartphone dengan teknologi touchscreen. Menurut Rubin pada artikel Markoff tahun
2007, Android merupakan platform yang terbuka bebas untuk para software developer.
Seorang developer hanya memerlukan sebuah komputer yang sudah terpasang Android
Software Development Kit (SDK) dan phone emulator. Aplikasi yang sudah
dikembangkan dapat diunggah oleh developer ke dalam situs third-party atau toko online
seperti Google Play.
Untuk dapat melakukan penerbangan secara autonomous, UAV memiliki
kontroller yang umumnya berbasis PID. Dengan loop penerbangan yang diklasifikasikan
sebagai Inner loops (ρ=1): yaw rate, roll rate, and pitch rate. Outer loops (ρ>1): roll, pitch,
yaw, pitch-airspeed, throttle air speed, throttle-altitude, and pitch-altitude. Penelitian ini
akan memanfaatkan platform terbuka (open source), yaitu Robotics Operating Systems
(ROS). ROS sangat universal sebagai sistem pengendali robot dan berisi sekumpulan tools
dan library terkini. Sedangkan user interface aplikasi dari sistem Drone ini akan berbasis
Android.

Latihan:
1. Jelaskan cara kerja umum dari drone yang digunakan untuk operasi militer
sebagai alat pengintai!
2. Jelaskam cara kerja umum dari GPS untuk drone!

Referensi:

1. Sarah E. Kreps (2016). Drones: What Everyone Needs to Know


2. Kendall, A. G., Salvapantula, N. N., & Stol, K. A. (2014). On-Board Object Tracking
Control of a Quadcopter with Monocular Vision. International Conference on
Unmanned Aircraft Systems (ICUAS). Orlando.
3. Koubaa, A. (2016). Robot Operating System (ROS): The Complete Reference.
Springer.
4. Leichtfried, M., Kaltenriner, C., Mossel, A., & Kaufmann, H. (2013). Autonomous
Flight using a Smartphone as On-Board Processing Unit in GPS-Denied
Environments. Proceedings of International Conference on Advances in Mobile
Computing & Multimedia MoMM '13. Vienna.
5. Pice, B. T. (1991). Unmanned Aerial Vehicles: The Force Multiplier of the 1990s .
Airpower Journal, V(1).
6. Pressman, R. S., & Maxim, B. (2014). Software Engineering: A Practitioner's
17
Approach. McGraw-Hill Education.
7. Walsh, J. I. (2013). The effectiveness of Drone Strikes in Counterinsurgency and
Coutnerterrorism Campaigns. U.S. Army War College Press.
8. Zhang, T., Kahn, G., Levine, S., & Abbeel, P. (2016 ). Learning deep control policies
for autonomous aerial vehicles with MPC-guided policy search. Robotics and
Automation (ICRA), 2016 IEEE International Conference on. Stockholm: IEEE.
9. http://mbengkelyuk.blogspot.co.id/2017/07/prinsip-dan-
komponen-utama-drone.html
10. http://erlerobotics.com/blog/

18
Bab 4

Desain Perangkat Drone

Tujuan Instruksional Umum


 Setelah mempelajari Bab ini, mahasiswa mampu menjelaskan dasar desain
perangkat drone untuk bergerak secara autonomous

Tujuan Instruksional Khusus:


 Mahasiswa mampu menjelaskan desain dasar teknologi drone
 Mahasiswa mampu menyebutkan berbagai desain dan perangkat sensor penting
dari drone

4.1 Pendahuluan
Untuk mengembangkan dan mendesain drone, dapat dilihat fishone diagram
gambar 4.1 di bawah, dimana dibutuhkan sistemds kendali yang handal, sistem
sensor, sistem kamera kecepatan tinggi dan sumber catuan yang tahan lama dan
kemampuan motor untuk mengangkat beban yang memadai. Sistem utama yang
digambarkan pada diagram Fishbone pada gambar 4.1 di bawah ini dapat digunakan
sebagai acuan umum dan dasar untuk pengembangan pada bidang drone. Setiap
sistem yang terdapat pada drone seperti sistem kendali, sistem sensor, sistem motor,
dan sistem kamera harus dilengkapi dengan algoritma yang bekerja secara efektif dan
efisien. Sehingga beban kerja drone tidak terlalu tinggi dan bekerja secara efisien
untuk menghemat daya drone yang dimana sampai saat ini masih menjadi kendala
utama dalam penerbangan pesawat tanpa awak. Ada beberapa macam drone yang
dapat digunakan untuk riset dan pemrograman. Contoh dari drone tersebut akan
dijelaskan pada beberapa sub-bab dibawah ini.

19
Gambar 4.1 Diagram Fishbone pengembangan drone

4.2 Parrot AR Drone


Parrot AR Drone merupakan salah satu drone yang popular
digunakan untuk umum maupun penelitian dibidang pesawat tanpa awak.
Beberapa spesifikasi Parrot AR Drone yang dilansir melalui situs resminya
adalah sebagai berikut:
 Processor: ARM Cortex A8 1 GHz 32-bit processor with DSP video 800 MHz
TMS320DMC64x
 OS: Linux 2.6.32
 RAM: DDR2 1 GB at 200 MHz
 USB: High-speed USB 2.0 for extensions
 Wi-Fi b/g/n
 Gyroscope: 3 axles, accuracy of 2,000°/second
 Accelerometer: 3 axles, accuracy of +/- 50 mg
 Magnetometer: 3 axles, accuracy of 6°
 Pressure sensor: Accuracy of +/- 10 Pa
 Altitude ultrasound sensor: Measures altitude
 720p 30fps HD camera
 Wide-angle lens: 92° diagonal
 Basic encoding profile: H264
 Photo format: JPEG
 Connection: Wi-Fi
 4 "inrunner" type brush-free motors: 14.5 watts and 28,500 rev/min
20
 Micro ball bearing: Yes
 Nylatron Gears: Yes
 Bronze self-lubricating ball bearings: Yes
 Weight with internal frame 380 g

4.3 Erle Quadcopter dan Hexacopter Drone


Gambar 4.2 mengilustrasikan contoh Hexacopter awal yang akan dikembangkan
peneliti dengan Erle robotics. Beberapa spesifikasi Erle Hexacopter yang dilansir melalui
situs resminya adalah sebagai berikut:

Gambar 4.2. HexaCopter yang dapat mengangkut beban lebih berat.

Spesifikasi dari Hexacopter:


 Telemetry radio mencapai 2 km
 Processor: Sitara AM3358BZCZ100 1GHz, 2000 MIPS
 Graphics engine: SGX530 3D 20M Polygons/S
 SDRAM Memory: 512 DDR3L 800MHz Onboard flash: 4GB,
 8-bit Embedded MMC
 3 accelerometers, 3 gyroscopes and 1 temperature sensor

Erle-Brain 3 menyertakan gravity sensor, gyroscopes, kompas digital,


sensor tekanan, untuk memudahkan computer embedded Linux berjalan
dengan cepat dan kompak. Selain itu, ada fitur dukungan autopilot bernama
PX4 autopilot software yang dapat mengendalikan penerbangan dengan
baik. ROS terdiri dari ROS MASTER. Master mengizikan seluruh ROS node

21
lainnya untuk dapat berkomunikasi. Gambar 4.3 menggambarkan otak dari
Erle Hexacopter yang disebut juga Erle-Brain 3.

Gambar 4.3. Erle-Brain 3

Terdapat juga fitur simulasi quadcopter dengan software Gazebo, setelah deprogram dapat
diisikan ke quadcopter dengan hasil yang sama. Gambar 4.4 menggambarkan software sebagai
simulasi untuk drone yang bernama Gazebo. Program simulasi ini berguna pada tahapan
pengembangan awal dimana code dapat disimulasikan dengan program tersebut sebelum
diaplikasikan pada drone.

22
Gambar 4.4. software simulasi Gazebo

Latihan:

1. Jelaskan desain dasar dari drone yang dapat digunakan untuk mengantar obat-
obatan untuk daerah yang terpencil!
2. Sebutkan beberapa kompenen utama dari sensor drone!

23
Bab 5

Dasar Pemrograman Drone

Tujuan Instruksional Umum


 Setelah memelajari Bab ini, mahasiswa mampu menjelaskan dasar desain
perangkat drone untuk bergerak secara autonomous

Tujuan Instruksional Khusus:


 menjelaskan Mahasiswa mampu desain dasar teknologi drone
 Mahasiswa mampu menyebutkan berbagai desain dan perangkat sensor penting
drone

5.1 Pendahuluan
Drone dapat diprogram dengan menggunakan beberapa bahasa pemrograman
popular seperti python, c++. Namun ada beberapa drone dapat diprogram dengan
menggunakan bahasa pemrograman blok simple seperti Scratch. Bahasa pemrograman
Python memungkinkan untuk memproses fungsi atau instruksi yang kompleks seperti
pengenalan citra atau obyek, dan penerapan deep learning untuk drone. Sekarang ini
terdapat banyak API yang dikelola oleh perusahaan produsen drone yang dapat
digunakan untuk pemrograman dasar drone. Dengan menggunakan bahasa
pemrograman python, API untuk pemrograman dasar drone dapat dikombinasikan
dengan beberapa API untuk pemrograman lanjutan. Namun bagi pemula dibidang
pemrograman drone dapat menggunakan bahasa pemrograman Scratch. Ada beberapa
drone yang dapat diprogram dengan menggunakan Scratch. Sub-bab 5.2 menjabarkan
beberapa syntax dasar dari bahasa pemrograman Scratch untuk drone. Sub-bab 5.3
sampai dengan sub-bab 5.5 menjelaskan dengan lengkap pemrograman drone dasar dan
lanjutan dengan menggunakan python.

5.2 Pemrograman Dasar Scratch


Salah satu jenis drone yang relatif murah harganya dan dapat diprogram dengan
menggunakan Scratch adalah DJI Tello. Untuk dapat menggunakan Scratch untuk
melakukan drone programming pada drone DJI Tello, ada beberapa langkah yang harus
dilakukan terlebih dahulu, antara lainnya adalah:
1. Unduh serta lakukan instalasi terhadap program Scratch 2.0 Offline Editor
dari halaman https://scratch.mit.edu/download.
2. Unduh serta lakukan instalasi node.js from https://nodejs.org/en/

24
3. Unduh serta lakukan instalasi terhadap program Adobe Air pada halaman
resmi Adobe Air. Khusus untuk pengguna Mac, versi minimal untuk Adobe Air
yang dibutuhkan adalah Adobe Air 2.0
4. Unduh beberapa berkas yang dibutuhkan untuk pemrograman pada drone DJI
Tello yang dapat diunduh pada halaman situs Ryze Robotics sebagai
pengembang piranti lunak untuk pemrograman drone dengan menggunakan
aplikasi Scratch 2.0 (https://dl-
cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip)
5. Setelah berkas Scratch.zip selesai diunduh, buka terminal atau command
prompt pada komputer Anda dan arahkan ke folder tempat dimana
Scratch.zip terunduh dan ketikkan perintah node Tello.js (lihat gambar 5.1).
6. Terakhir, buka program Scratch 2.0 Offline Editor, lalu tahan tombol “Shift”
dan click menu “File” yang terdapat diatas interface Scratch 2.0 Offline Editor.
Lalu pilih menu "Import Experimental HTTP Extension" dan pilih berkas
"Tello.s2e" (lihat gambar 5.2).
7. Setelah berkas "Tello.s2e", maka Anda dapat langsung menggunakan
perintah-perintah blok untuk dapat menerbangkan drone secara autonomous.
8. Untuk dapat melakukan upload instruksi atau perintah pada Scratch 2.0
Offline Editor, Anda dapat menghubungkan komputer ke drone DJI Tello Anda
dengan detail: IP: 192.168.10.1 UDP PORT: 8889.

Gambar 5.1 Cara Mengaktifkan node.js milik Tello

25
Gambar 5.2 Cara melakukan import berkas "Tello.s2e"

Dengan menggunakan Scratch 2.0 Offline Editor, Anda dapat menggerakan drone
secara autonomous dengan menggunakan beberapa perintah seperti move 10 steps, turn
left 10 degrees, glide 2 seconds to x:0 y:0 ; Gambar 5.3 memberikan ilustrasi dari
environment Scratch 2.0 Offline Editor serta beberapa contoh blok perintah yang dapat
digunakan untuk membangun autonomous drone. Blok perintah lainnya dapat dilihat
pada menu “More Blocks” pada menu yang terdapat pada Scratch 2.0 Offline Editor.

26
Gambar 5.3 Blok perintah pada Scratch 2.0 Offline Editor

5.3 Pemrograman Dasar Python


Python merupakan salah satu bahasa pemrograman yang digunakan untuk
pemrograman drone. Salah satu drone yang dapat diprogram dengan menggunakan
bahasa pemrograman python adalah Parrot AR Drone. Piranti lunak utama yang
dibutukan untuk Parrat AR Drone ialah Node JS sebagai aplikasi web dengan JavaScript
yang harus Anda unduh. Contoh program untuk membuat drone terbang dan landing:

var arDrone = require('ar-drone');


var client = arDrone.createClient();
client.takeoff();
client.land();

Potongan code diatas menggunakan API yang sudah disediakan oleh AR Droinstne. Untuk
dapat menerbangkannya, syntax yang digunakan adalah client.takeoff(); Sedangkan untuk

27
dapat menginstruksikan agar drone dapat landing, cukup dengan memanggil instruksi
client.land(); Dengan code sederhana seperti diatas, Anda sudah dapat dengan mudah
untuk menerbangkan dan melakukan landing drone secara autonomous. Hanya saja ada
beberapa hal yang masih perlu diperhatikan untuk dapat menavigasikan drone secara
fully automated yang akan dijelaskan melalui bab ini dan bab-bab selanjutnya.

5.4 Navigasi Parrot AR Drone


Untuk berkomunikasi dengan AR Drone, dapat digunakan sumber kode program yang
dapat diunduh pada laman berikut :

https://github.com/venthur/python-ardrone/blob/master/demo.py

Program yang sudah jadi dikombinasikan dengan program image detection (sumber kode
program: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-
learning-and-opencv/), berikut adalah kode program lengkap untuk navigasi drone yang
dapat digunakan untuk membuat fully automated drone :

NavigasiDrone.py:
#!/usr/bin/env python

import pygame
from pyardrone import ARDrone
import cv2
import numpy as np
from imutils.video import FPS
import imutils
import time

PROTOTXT = "MobileNetSSD_deploy.prototxt.txt"
MODEL = "MobileNetSSD_deploy.caffemodel"
CONFINDENCE = 0.2

def main():
drone = ARDrone()
clock = pygame.time.Clock()
print("ready")
drone.navdata_ready.wait()

running = True
drone.video_ready.wait()
img = drone.video_client.frame
height, width, channels = img.shape
28
pygame.init()
W, H = width, height
screen = pygame.display.set_mode((W, H))

speed = 1.0
CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat",
"bottle", "bus", "car", "cat", "chair", "cow", "diningtable",
"dog", "horse", "motorbike", "person", "pottedplant", "sheep",
"sofa", "train", "tvmonitor"]
COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3))

print("[INFO] loading model...")


net = cv2.dnn.readNetFromCaffe(PROTOTXT, MODEL)

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
drone.emergency()
running = False
elif event.type == pygame.KEYUP:
#drone.hover()
pass
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
drone.emergency()
running = False
# takeoff / land
elif event.key == pygame.K_RETURN:
drone.takeoff()
elif event.key == pygame.K_SPACE:
drone.land()
# emergency
elif event.key == pygame.K_BACKSPACE:
drone.emergency()
# forward / backward
elif event.key == pygame.K_w:
drone.move(forward=speed)
elif event.key == pygame.K_s:
drone.move(backward=speed)
# left / right
elif event.key == pygame.K_a:
drone.move(left=speed)
29
elif event.key == pygame.K_d:
drone.move(right=speed)
# up / down
elif event.key == pygame.K_UP:
drone.move(up=speed)
elif event.key == pygame.K_DOWN:
drone.move(down=speed)
# turn left / turn right
elif event.key == pygame.K_LEFT:
drone.move(ccw=speed)
elif event.key == pygame.K_RIGHT:
drone.move(cw=speed)
# speed
elif event.key == pygame.K_1:
speed = 0.1
elif event.key == pygame.K_2:
speed = 0.2
elif event.key == pygame.K_3:
speed = 0.3
elif event.key == pygame.K_4:
speed = 0.4
elif event.key == pygame.K_5:
speed = 0.5
elif event.key == pygame.K_6:
speed = 0.6
elif event.key == pygame.K_7:
speed = 0.7
elif event.key == pygame.K_8:
speed = 0.8
elif event.key == pygame.K_9:
speed = 0.9
elif event.key == pygame.K_0:
speed = 1.0

try:
print("[INFO] TIME 1: {:.2f}".format(time.time()))
img = drone.video_client.frame
fps = FPS().start()
print("[INFO] TIME 2: {:.2f}".format(time.time()))

(h, w) = img.shape[:2]
blob =
cv2.dnn.blobFromImage(cv2.resize(img,(300,300)),0.007843,(300,300),127.5)
30
net.setInput(blob)
detections = net.forward()
print("[INFO] TIME 3: {:.2f}".format(time.time()))

for i in np.arange(0, detections.shape[2]):


confidence = detections[0, 0, i, 2]

if confidence > CONFINDENCE:


idx = int(detections[0, 0, i, 1])
box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
(startX, startY, endX, endY) = box.astype("int")
print("[INFO] TIME 3.1: {:.2f}".format(time.time()))

label = "{}: {:.2f}%".format(CLASSES[idx], confidence * 100)


cv2.rectangle(img, (startX,startY),(endX,endY),COLORS[idx],2)
print("[INFO] TIME 3.2: {:.2f}".format(time.time()))

y = startY -15 if startY - 15 > 15 else startY + 15

cv2.putText(img,label,(startX,y),cv2.FONT_HERSHEY_COMPLEX,0
.5,COLORS[idx],2)
print("[INFO] TIME 3.3: {:.2f}".format(time.time()))

print("[INFO] TIME 4: {:.2f}".format(time.time()))

img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)


img2 = np.rot90(img2)
img2 = np.flip(img2,0)
img2 = pygame.surfarray.make_surface(img2)

fps.update()

print("[INFO] TIME 5: {:.2f}".format(time.time()))

screen.blit(img2, (0, 0))


except:
pass

pygame.display.flip()
clock.tick(60)
pygame.display.set_caption("FPS: %.2f" % clock.get_fps())

fps.stop()
31
print("[INFO] FPS: {:.2f}".format(fps.fps()))
print("Shutting down...")
drone.close()
print("Ok.")

if __name__ == '__main__':
main()

Gambar 5.4 menggambarkan hasil kendali drone secara manual dengan


menggunakan remote controller yang disediakan oleh produsen. Gambar 5.5 menujukkan
hasil visual dari code yang diberikan diatas untuk pengenalan obyek dengan
menggunakan deep learning dengan menggunakan model MobileNetSSD.

Gambar 5.4 Hasil kendali drone dengan remote controller

32
Gambar 5.5 Hasil deteksi Obyek

5.5 Marker detection


Untuk kalibrasi kamera, dapat menggunakan script pada Camera yang dapat diunduh
pada laman: http://answers.opencv.org/question/98447/camera-calibration-using-
charuco-and-python/

CameraCalibration.py
esPose = cv2.aruco.estimatePoseSingleMarkers(res[0],0.176,matrix,dist)
rvec = esPose[0][0][0]
tvec = esPose[1][0][0]
rmat, jacob = cv2.Rodrigues(rvec)
qrvec = toQuaternion(rmat)
pt = PoseStamped()
pt.header.frame_id = "my_frame"
pt.pose.position.x = tvec[0]
pt.pose.position.y = tvec[1]
pt.pose.position.z = tvec[2]

pt.pose.orientation.x = qrvec[1]
pt.pose.orientation.y = qrvec[2]
pt.pose.orientation.z = qrvec[3]
pt.pose.orientation.w = qrvec[0]
drone.posePub.publish(pt)
cv2.aruco.drawAxis(frame, matrix, dist, rvec, tvec, 0.01)
for corner in corners:
center = (corner[0],corner[1])
cv2.circle(frame, center,5,(0,0,255),-1)

33
Gambar 5.6 menggambarkan contoh control drone dengan marker detection dan pose
estimation

Gambar 5.6 Contoh Pose estimation

Latihan:
1. Buatlah sebuah program untuk drone untuk dapat take-off, jalan
sejauh 3-meter dan kemudian landing dengan menggunakan
Scratch 2.0!
2. Buatlah sebuah program untuk drone untuk dapat take-off, jalan
sejauh 3-meter dan kemudian landing dengan menggunakan
Python!

34
Bab 6

Pemrograman Lanjutan Drone

Tujuan Instruksional Umum


 Setelah memelajari Bab ini, mahasiswa mampu menjelaskan dasar desain
perangkat drone untuk bergerak secara autonomous

Tujuan Instruksional Khusus:


 Mahasiswa mampu menjelaskan desain dasar teknologi drone
 Mahasiswa mampu menyebutkan berbagai desain dan perangkat sensor penting
drone

6.1 Deep Learning untuk Object Detection di Drone


Pada tahun 2006, Geoffrey Hinton memperkenalkan salah satu varian jaringan saraf
tiruan yang disebut deep belief nets, ide untuk men-train model jaringan saraf tiruan ini
adalah dengan men-train dua layer kemudian tambahkan satu layer diatasnya,
kemudian train hanya layer teratas dan begitu seterusnya. Dengan strategi ini kita dapat
men-train model jaringan saraf tiruan dengan layer lebih banyak dari model-model
sebelumnya (Geoffrey Hinton, 2006). Paper ini merupakan awal populernya istilah deep
learning untuk membedakan arsitektur jaringan saraf tiruan dengen banyak layer. Dalam
istilah praktis, deep learning merupakan bagian dari machine learning yang
menggabungkan Artificial Neural Networks (ANNs), AI, graphical modeling dan optimisasi
(N.D Lewis, 2016). Kekuatan dari model deep learning berasar dari kemampuannya
mengklasifikasi atau memrediksi data nonlinear mengunakan sejumlah langkah-langkah
nonlinear secara paralel. Model deep learning memelajari fitur data input dari data input
mentah untuk mengklasifikasi data. Di tiap layer akan mengekstraksi fitur dari output
layer sebelumnya. Deep learning saat ini digunakan untuk keperluan deteksi dan rekognisi
obyek.
Contoh dari penggunaan model deep learning bisa dilihat dari Facebook dan AlphaGo
milik Google. Google menciptakan program komputer yang belajar bermain sebuah game
sejenis catur dari China bernama Go. Tentunya, game ini membutuhkan pemikiran dan
intuisi yang tajam untuk menang. Dengan bermain melawan pemain Go profesional, deep
learning AlphaGo mempelajari bagaimana ia bermain di tingkat yang belum terjamah
sebelumnya dalam kecerdasan buatan. Hebatnya, apa yang dilakukannya tanpa instruksi
apapun ketika melancarkan gerakan-gerakan spesifik. Gambar 6.1 menampilkan dasar
dari Deep learning menggunakan Convolutional Neural Network (CNN). CNN dilatih
35
menggunakan supervised learning, dimana kita menampilkan jaringan berupa beberapa
gambar, misalnya gambar mobil dan jaringan harus menyesuaikan bobot sesuai dengan
pelatihan yang kita berikan. Sebuah unit yang menerapkan rectifier disebut rectified
linear unit (ReLU).

Gambar 6.1 Model dasar CNN untuk deep learning

6.2 Implementasi Deep Learning Pada Drone


CNN umumnya digunakan untuk klasifikasi citra dan pendeteksi obyek. Selain itu,
Object detector terkenal di deep learning adalah Single Shot Detector (SSD) yang
menggunakan single activation map untuk prediksi. R-CNN merupakan system deteksi
obyek yang mengombinasikan region proposals yang kaya akan fitur dan dihitung oleh
CNN, gambar 6.2 mengilustrasikan arsitektur R-CNN yang terdiri dari proses extract region
proposal dan perhitungan fitur serta klasifikasi region.

Gambar 6.2 Model R-CNN.

Sebagai contoh berikut penerapan Deep learning dengan Python dan Tensorflow untuk
deteksi obyek pada Drone. Anda harus mengaktifkan Anaconda prompt, mengaktifkan
tensorflow lalu menjalankan program di bawah ini:

RealtimeDeteksiObyekDrone.py:
//Object detection for Parrot ARDrone
//Copyright Widodo Budiharto and team 2018
# python RealtimeDeteksiObyekDrone.py --prototxt
MobileNetSSD_deploy.prototxt.txt --model MobileNetSSD_deploy.caffemodel
# import paket-paket
36
from imutils.video import VideoStream
from imutils.video import FPS
import numpy as np
import argparse
import imutils
import time
import cv2

# parsing argumen
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--prototxt", required=True, help="path to Caffe 'deploy'
prototxt file")
ap.add_argument("-m", "--model", required=True, help="path to Caffe pre-trained
model")
ap.add_argument("-c", "--confidence", type=float, default=0.2, help="minimum
probability to filter weak detections")
args = vars(ap.parse_args())
#inisialisasi kelas MobileNet SSD
CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat","bottle", "bus",
"car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person",
"pottedplant", "sheep", "sofa", "train", "tvmonitor"]
COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3))
# loading model
print("[INFO] loading model...")
net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"])
# inisialialisasi video stream
print("Memulai video stream...")
vs = VideoStream(src=0).start()
time.sleep(1.0)
fps = FPS().start()
# loop frame
while True:
frame = vs.read()
frame = imutils.resize(frame, width=400)
# ambil frame dan konversi ke blob
(h, w) = frame.shape[:2]
blob = cv2.dnn.blobFromImage(frame, 0.007843, (300, 300), 127.5)
# prediksi
net.setInput(blob)
detections = net.forward()
# loop
for i in np.arange(0, detections.shape[2]):
# ekstraksi confidence
37
confidence = detections[0, 0, i, 2]
# filter out weak detections by ensuring the `confidence` is
# greater than the minimum confidence
if confidence > args["confidence"]:
# extract the index of the class label from the detections`
idx = int(detections[0, 0, i, 1])
box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
(startX, startY, endX, endY) = box.astype("int")
# gambar prediksi di frame
label = "{}: {:.2f}%".format(CLASSES[idx], confidence * 100)
cv2.rectangle(frame, (startX, startY), (endX, endY), COLORS[idx], 2)
y = startY - 15 if startY - 15 > 15 else startY + 15
cv2.putText(frame, label, (startX, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5,
COLORS[idx], 2)
# show the output frame
cv2.imshow("Frame", frame)
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
# update FPS counter
fps.update()
# stop timer dan menampilkan FPS
fps.stop()
print("[INFO] elapsed time: {:.2f}".format(fps.elapsed()))
print("[INFO] approx. FPS: {:.2f}".format(fps.fps()))
cv2.destroyAllWindows()
vs.stop()

Gambar 6.3 menunjjukan contoh hasil dari pendeteksian obyek dari citra dengan
menggunakan deep learning model MobileNetSSD dengan menggunakan Caffe. Model dan
code yang diberikan di atas dapat kemudian diimplementasikan ke dalam Parrot AR
drone dengan menggunakan kamera internal Parrot AR drone.

38
Gambar 6.3 Hasil program mampu mendeteksi obyek orang, anjing dan kurda
menggunakan Drone dan kamera Parrot AR Drone.

Untuk navigasi drone menggunakan GPS dan Erle Drone, digunakan algoritma berikut:
Algoritma 1: Navigation Systems untuk Drone

initiate motors and sensors


input goal.latitude
input goal.longitude
set home.latitude = current.latitude
set home.longitude = current.longitude
set default_altitude = 4
set drone_is_flying = False
wait until item loaded
arm_and_takeoff_sequence()
send_goal_coordinate(goal.latitude, goal.longitude)
wait until drone land
wait until item unloaded
wait 5 seconds
arm_and_takeoff_sequence()
send_goal_coordinate(home.latitude, home.longitude)
# For arm_and_takeoff_sequence()
call ros service /mavros/set_mode to “GUIDED”
call ros service /mavros/cmd/arming
wait 5 seconds
call ros service /mavros/cmd/takeoff with altitude default_altitude
wait 5 seconds
#For send_goal_coordinate(latitude, longitude)

39
set destination.latitude = latitude
set destination.longitude = longitude
set drone_is_flying = True
#For a function that triggers every time current latitude and longitude is reported from
/mavros/global_position/global
If drone_is_flying = True then:
if HubenyDistance between (current.latitude,
current.longitude) and (destination.latitude,
destination.longitude) <= 1.5 m then:
call /mavros/set_mode to “LAND”
set drone_is_flying = False
else:
publish to ros topic /mavros/setpoint_raw/global with message
(destination.latitude, destination.longitude, default_altitude)
end if
end if

Referensi:

1. Steven Otfinoski (2016), Drones: Science, Technology, and Engineering (Calling


All Innovators)
2. Widodo Budiharto, Aurello Patrik, Gaudi Utama, Alexander Agung Gunawan,
Andry Chowanda and Jarot Santoso (2018), Fast Object Detection for Quad Copter
Drone using Deep Learning, IEEE International Conference on Computer and
Communication Systems (ICCCS 2018), pp. 192-195, Singapore.

40
Bab 7

Computer Vision & Pengolahan Citra

Tujuan Instruksional Umum :


 Mahasiswa mampu menjelaskan peranan dan konsep computer vision dan
pemrograman pengolahan citra

Tujuan Instruksional Khusus :


 Mahasiswa dapat menjelaskan fungsi computer vision dan dasar image
processing di OpenCV dan Python.
 Mahasiswa dapat menjelaskan beberapa penerapan point based image
processing
 Mahasiswa dapat membuat program object detection menggunakan
thresholding
 Mahasiswa dapat menggunakan embedded System untuk image processing

7.1 Pendahuluan
Struktur mata manusia sesungguhnya serupa dengan sebuah kamera. Mata manusia
memiliki lensa yang serupa dengan lensa pada kamera, juga retina yang berfungsi untuk
menangkap informasi cahaya seperti pada film atau sensor cahaya pada kamera. Prinsip
ini yang digunakan juga pada Computer vision. Computer Vision adalah ilmu pengetahuan
dan teknologi dari suatu sistem komputer yang mampu memiliki kemampuan akuisisi,
memroses dan memahami (understanding) dari suatu image/streaming video.
Definisinya dapat dibagi sesuai perspektif ilmu, diantaranya:
 Sebagai sebuah ilmu pengetahuan
Sebuah teori untuk membangun sistem cerdas yang mendapatkan
informasi dari sebuah citra.
 Sebagai image data
Sebuah video sequence, view dari multiple camera, atau data
multidimensional dari sebuah scanner medis.
 Sebagai sebuah disiplin teknologi
Pembangunan dari sistem computer vision.

Sehingga apabila dirumuskan, Computer Vision adalah:

Computer Vision = Camera + Computer + Pattern Recognition

41
Computer vision merupakan teknologi paling penting di masa yang akan datang
dalam pengembangan robot yang interaktif. Computer Vision merupakan bidang
pengetahuan yang berfokus pada bidang sistem kecerdasan buatan dan berhubungan
dengan akuisisi dan pemrosesan images. Contoh penerapan computer vision pada
dunia riset dan industri ialah :
 Object detection pada Drone
 Pengontrolan proses industri
 Pendeteksi nomor plat kendaraan
 3D model building (photogrammetry)
 Robot Vision, Humanoid Robot dan Robot Soccer.
 Surveillance (monitor penyusup, analisa trafik jalan tol dan lainnya)
 Interaksi manusia dan robot (Human Robot Interaction)

7.2 Sampling dan Image Processing


Untuk representasi pada komputer, fungsi (misalnya intensitas) harus
disampling pada interval diskrit. Sampling adalah memetakan nilai intensitas ke
interval diskrit. Titik-titik dimana image disampling disebut element gambar atau
piksel. Sedangkan resolusi menentukan jarak diantara titik-titik. Pada spatial
digitization (sampling) persamannya adalah:

I(x,y) =f(x,y).s(x,y)
Dimana s(x,y) =1 untuk setiap nilai dari x dan y

Metode point prosessing adalah yang paling primitive dimana piksel lama
dikonversi ke piksel baru berdasarkan fungsi yang telah ditentukan. Pada
pengolahan citra dasar, biasanya edge detection, threshold dan countour sangat
dibutuhkan. Konsepnya dapat menggunakan triangle algorithm untuk mencari
nilai threshold seperti gambar di bawah:

42
Gambar 7. 1 Triangle algorithm

Pada thresholding dengan image I(m,n) dengan Threshold T, maka untuk


memisahkan obyek terang dari gelap digunakan:
If I(m,n) >= T I[m,n] =object=1
else I[m,n]=background=0

Untuk mengubah image warna ke grayscale digunakan persamaan beriut

grayscale image = ( (0.3 * R) + (0.59 * G) + (0.11 * B) ).

Tujuan dari image processing adalah:


1. Visualization – observasi obyek yang tidak terlihat.
2. Image sharpening and restoration – untuk membuat image yang lebih bagus terlihat
3. Image retrieval - mencari image of interest.
4. Measurement of pattern – mengukur berbagai obyek pada image
5. Image Recognition – membedakan antara obyek di image

Gambar 7.2 color image (a) and grayscale image (b)

7.3 Threshoding
Thresholding merupakan method segmenetasi yang paling mudah, sebagai contoh
memisahkan area image suatu obyek dengan area lainnya dengan cara variasi
intensitas (dengan membuat image orisinal menjadi gray) diantara piksel obyek
43
tersebut dengan piksel background dengan nilai ambang(threshold) tertentu. Proses
melakukan thresholding pada OpenCV menggunakan fungsi threshold dan didukung
oleh fitur adaptive thresholding. Anda membutuhan program Python dan OpenCV versi
3.4 untuk mempelajari computer vision di buku ini. Berikut contohnya:

Threshold.py:

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img = cv.imread('lena.jpg',0)
img = cv.medianBlur(img,5)
ret,th1 = cv.threshold(img,127,255,cv.THRESH_BINARY)
th2 = cv.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_MEAN_C,\
cv.THRESH_BINARY,11,2)
th3 = cv.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv.THRESH_BINARY,11,2)
titles = ['Original Image', 'Global Thresholding (v = 127)',
'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
images = [img, th1, th2, th3]
for i in xrange(4):
plt.subplot(2,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()

44
Gambar 7.3 Program Threshold pada Lena.jpg

7.4 Histogram Equalization


Histogram equalization merupakan representasi grafis dari distribusi
intensitas dari image, yang mengkuantifikasi jumlah piksel untuk tiap intensitas.
Histogam equalization merupakan representasi grafis dari distribusi intensitas image,
perhatikan gambar di bawah dimana idealnya intensitas pixel menyebar.

Gambar 7.4 Histogram equalization

Berikut kode demo Histogram Equalization yang dapat digunakan pada pendeteksi
objek di system robotika:

Histogram.py:
//Demo Histogram Eequalization
import cv2 as cv
import numpy as np
45
from matplotlib import pyplot as plt
img = cv.imread('lena.jpg',0)
equ = cv.equalizeHist(img)
res = np.hstack((img,equ)) #stacking images side-by-side
cv.imwrite('res.jpg',res)

Gambar 7.5 Hasil Histogram equalization

7.5 Embedded System untuk Pengolahan Citra


Pada saat ini, beberapa sistem embedded yang terkenal untuk dapat melakukan
image processing ialah Raspberry Pi yang dilengkapi dengan kamera parallel kecepatan
tinggi dan Odroid-XU berbasiskan quad prosesor, misalnya untuk tracking pada robot [5].
Gambar di bawah ini menampilkan Raspberri Pi dan Odroid-XU.

46
(a) (b)

Gambar 7.6 Raspberry Pi model B 512M dengan kamera parallel (a) dan Odroid-
XU (b)

Sistem embedded biasanya digunakan untuk aplikasi-aplikasi akuisisi data,


pengontrol multifungsi dengan daya yang dibutuhkan minimal, misalnya:

1. Pengontrolan robot berbasis vision


2. Transaksi dan display di jalan toll.
3. Telemetri di tempat-tempat remote.
4. Industri mainan anak-anak/games
5. Electronics smart devices di mall dan industry
6. Telepresence robot
7. Robot humanoid dan robot soccer

Agar dapat bekerja dengan power yang rendah dan cepat, sistem embedded memiliki 2
komponen utama, yaitu:

1. Hardware

 Catu daya stabil bertegangan dan berarus rendah


 Mikrorosesor ARM Cortex, Propeller, Intel dan lainnya
 Memori DRAM
 Timer
 Port HDMI
 Port USB
 Port Audio stereo
 Port I/O

47
2. Software

Sistem Embedded memiliki software yang ditulis dalam bahasa yang lebih
dekat/dikenali oleh hardware, misalnya C++ dan Java, dengan sistem Operasi seperti
Linux Ubuntu jika menggunakan Odroid dan Raspbian jika menggunakan Raspberry Pi 3.

3. Kamera

Berikut contoh camera untuk riset bernama cmucam5

Gambar 7.7 Camera CmuCam5

Dengan spesifikasi:

 Berukuran kecil dan mudah digunakan


 Dapat belajar untuk mendeteksi obyek yang telah kita ajarkan
 Outputs what it detects 50 times per second
 Koneksi ke Arduino juga dapat digunakan pada Raspberry Pi dan BeagleBone
 All libraries for Arduino, Raspberry Pi, etc. are provided
 Mendukung C/C++ dan Python
 Antarmuka komunikasi: SPI, I2C, UART, USB atau analog/digital output

Latihan:
1. Jelaskan fungsi dari Histogram equalization
2. Buat program untuk mengambil obyek bola dari lingkungannya menggunakan
thresholding, smoothing dan histogram equalization.
3. Jelaskan hasil program berikut ini:

img = cv2.imread('messi5.jpg',0)
rows,cols = img.shape

M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
48
dst = cv2.warpAffine(img,M,(cols,rows))

Gambar 7.8 Hasil Program rotasi

Referensi:
1. Forsyth, D., Ponce, J. (2012). Computer Vision: A Modern Approach. 2nd ed.
Prentice Hall. ISBN: 978-0-27-376414-4
2. Opencv.org
3. Richard Szeliski. (2015). Computer Vision: Algorithms and Applications.
4. Widodo Budiharto, Alexander Agung Santoso Gunawan, Jarot S. Sembodo and
Andry Chowanda (2018). Fast Object Detection for Drone using Deep Learning,
ICCCS 2018, Nagoya Japan.
5. Budiharto, W.(2015), Robot Modern, Andi Offset Publisher- Yogyakarta.
6. Budiharto, W. (2015). Intelligent Surveilance Robot with Obstacle Avoidance
Capabilities using Neural Network, Computational Intelligence and Neuroscience,
2015

49
Bab 8

Image Filtering untuk Drone

Tujuan Instruksional Umum:


 Mahasiswa mampu menjelaskan konsep dan memprogram image filtering untuk
camera di drone

Tujuan Instruksional Khusus:


 Mahasiswa dapat membuat program untuk mengakses kamera
 Menjelaskan fungsi dari image filtering
 Mampu melakukan operasi dasar image filtering seperti blurring, resizing,
eroding dan dilating
 Membuat program deteksi tepi dan sudut
 Mahasiswa dapat menjelaskan konsep Morphological Filtering

8.1 Penggunaan Kamera


Kamera sangat penting pada dunia machine vision. Secara umum, struktur umum
dari penggunaan machine vision pada dunia industri atau riset dapat digambarkan pada
gambar 8.1 berikut :

Gambar 8.1 Struktur umum dari Machine vision

Fungsi untuk menampilkan image menggunakan kamera pada OpenCV ialah:

Camera.py:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
50
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

Gambar 8.2 Contoh penerapan kamera dengan deteksi wajah di OpenCV

8.2 Konsep Image Filtering


Sebuah mask ialah sebuah matrik kecil dimana nilainya disebut weights. Linear
filtering adalah filtering dimana nilai dari tiap piksel output merupakan sebuah
kombinasi linear dari nilai piksel pada input. Linear filtering dilakukan melalui operasi
convolution. Sebuah filter ialah sebuah fungsi yang mengambil nilai input signal dan
menghasilkan output yang sesuai dengan persamaan yang ada pada fungsi tersebut.

A. Blurring Image

Blurring sebuah image ialah langkah untuk mengurangi ukuran image tanpa
mengubah tampilan gambar terlalu banyak, menggunakan matrik kernel. Blurring dapat
dilakukan dengan mengganti tiap pixel image dengan beberapa nilai rata-rata di
sekitarnya. Kernel Gaussian umum digunakan pada proses ini dengan nilai:

1 4 6 4 1
4 16 24 16 4
6 24 36 24 6
4 16 24 16 4
1 4 6 4 1

51
Blurring.py:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread(‘lena.jpg’)
blur = cv2.blur(img,(5,5))
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.show()

Gambar 8.3 Hasil blurring sebuah image

B. Dilasi dan Erosi


Erosi dan dilasi merupakan 2 operasi morfologis pada image. Contoh erosi
menggunakan 5x5 kernel dengan penuh berisi 1:

Erosi.py:
import cv2
import numpy as np

img = cv2.imread('j.png',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1)
dilation = cv2.dilate(img,kernel,iterations = 1)

52
(a) (b) (c)
Gambar 8.4. Gambar asli (a) dan gambar hasil erosi (b) dan dilasi (c)

C. Operasi Morphologis
Operasi Opening diperoleh dengan proses erosi pada image diikuti dengan dilasi
dengan hasil penghapusan daerah putih yang kecil pada image. Penerapannya misalnya
pada smoothing image untuk deteksi obyek yang akan diambil oleh lengan robot berbasis
vision (Forsyth, 2012). Operasi Closing diperoleh dengan dilasi image diikuti dengan
proses erosi yang berakibat pada efek sebaliknya. Kedua operasi ini berfungsi utuk
menghapus noise dari image.

opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)


closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

(a) (b)
Gambar 8.5 Hasil Opening (a) dan closing (b)

8.3 Canny Edge Detector


Edge atau tepi ialah titik-titik di image dimana gradient dari image tersebut
cukup tinggi. Gradient image dihitung menggunakan gradient pada arah X dan Y dan
dikombinasikan dengan teorema phythagoras. Arah X dan Y dihitung dengan konvolusi
image dengan kernel berikut

-3 0 3
-10 0 10
-3 0 3 ( untuk arah X)

53
dan

-3 -10 -3
0 0 0
3 10 3 (untuk arah Y)
Gambar yang sudah dihaluskan difilter dengan kernel Sobeldalam bentuk
horizontal dan vertikal direction untuk memperoleh turunan pertama horizontal
direction Gx dan vertical direction Gy dan dengan nilai gradient G:

Canny.py:
//Canny Edge Detector
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('messi5.jpg',0)
edges = cv2.Canny(img,100,200)

plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()

Gambar 8.6 Hasil Canny Edge Detector

8.4 Implementasi: Color-Based Object Detector

54
Untuk membuat color-based object detector, dapat menggunakan fungsi inRange
di openCV sebagai berikut:

mask=cv2.inRange(imgHSV,lowerBound,upperBound)

colorbased.py:
//Color-Based Object Detector
import cv2
import numpy as np

lowerBound=np.array([33,80,40])
upperBound=np.array([102,255,255])
cam= cv2.VideoCapture(0)
kernelOpen=np.ones((5,5))
kernelClose=np.ones((20,20))
font=cv2.cv.InitFont(cv2.cv.CV_FONT_HERSHEY_SIMPLEX,2,0.5,0,3,1)
while True:
ret, img=cam.read()
img=cv2.resize(img,(340,220))
#convert BGR to HSV
imgHSV= cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# create the Mask
mask=cv2.inRange(imgHSV,lowerBound,upperBound)
#morphology
maskOpen=cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernelOpen)
maskClose=cv2.morphologyEx(maskOpen,cv2.MORPH_CLOSE,kernelClose)

maskFinal=maskClose

conts,h=cv2.findContours(maskFinal.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_N
ONE)

cv2.drawContours(img,conts,-1,(255,0,0),3)
for i in range(len(conts)):
x,y,w,h=cv2.boundingRect(conts[i])
cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255), 2)
cv2.cv.PutText(cv2.cv.fromarray(img), str(i+1),(x,y+h),font,(0,255,255))
cv2.imshow("maskClose",maskClose)
cv2.imshow("maskOpen",maskOpen)
cv2.imshow("mask",mask)
cv2.imshow("cam",img)
cv2.waitKey(10)

55
Gambar 8.7 Hasil streaming object detecter yang masih terlihat adanya noise

Latihan:
1. Buatlah program untuk menyimpan hasil streaming kamera yang sudah
dismoothing ke dalam file .avi.

Referensi:
1. Forsyth, D., Ponce, J. (2012). Computer Vision: A Modern Approach. 2nd ed.
Prentice Hall. ISBN: 978-0-27-376414-4
2. Opencv.org
3. Widodo Budiharto (2018). Pemrograman Python untuk Ilmu Komputer dan
Teknik. Andi Offset Yogyakarta.
4. Budiharto, W. (2014). Fast Vision-Based Grasping for Manipulator using SIFT
Keypoint Detector, IEEE International Conference on Advanced Mechatronics
Systems, pp. 458-452, 10-12 August 2014, Kumamoto-Japan.

56
Glossary

Abstrak
Abstrak adalah ringkasan singkat sebuah literatur atau tulisan.

Data
Data adalah catatan atas kumpulan fakta. Data merupakan bentuk jamak dari datum,
berasal dari bahasa Latin yang berarti "sesuatu yang diberikan"

Data set
Data set adalah kumpulan seluruh data yang diambil dari sampel.

Drone
Drone adalah pesawat tanpa awak yang dikendalikan dari jarak jauh. Pesawat tanpa awak
atau Pesawat nirawak (english = Unmanned Aerial Vehicle/UAV), adalah sebuah mesin
terbang yang berfungsi dengan kendali jarak jauh oleh pilot atau mampu mengendalikan
dirinya sendiri, menggunakan hukum aerodinamika untuk mengangkat dirinya, bisa
digunakan kembali dan mampu membawa muatan baik senjata maupun muatan lainnya.

GPS
GPS adalah sistem untuk menentukan letak di permukaan bumi dengan bantuan
penyelarasan sinyal satelit.

Artificial Intelligence
Kecerdasan buatan (AI) adalah kemampuan meniru pemikiran manusia dan proses
kognitif untuk memecahkan masalah yang kompleks secara otomatis. AI menggunakan
teknik untuk menulis kode komputer untuk mewakili dan memanipulasi pengetahuan.
Aplikasi yang benar-benar cerdas hanya akan dicapai dengan kecerdasan buatan dan itu
adalah tanda seorang desainer sukses membuat software AI untuk memberikan
fungsionalitas yang tidak dapat disampaikan tanpa menggunakan AI.

Action-Based Planning
Tujuan dari perencanaan berbasis tindakan adalah untuk menentukan bagaimana
mendekomposisi aksi tingkat tinggi ke jaringan subactions yang melakukan tugas yang
diperlukan.

Algorithm
Algoritma adalah suatu set instruksi atau rule yang menjelaskan bagaimana untuk
memecahkan masalah. Hal ini biasanya pertama dinyatakan dalam bahasa Inggris dan

57
aritmatika, dan dari ini, seorang programmer dapat menerjemahkannya ke dalam kode
executable (yaitu, kode yang akan dijalankan pada komputer).

Bayesian Networks
Sebuah teknik pemodelan yang menyediakan formalisme matematis untuk mewakili dan
penalaran tentang ketidakpastian, ketidaktepatan, atau ketidakpastian dalam
pengetahuan kita. Misalnya, melihat bahwa halaman depan basah, orang mungkin ingin
menentukan apakah hujan pada malam sebelumnya. Algoritma inferensi dapat
menggunakan struktur jaringan Bayesian untuk menghitung probabilitas bersyarat
berdasarkan data apa pun yang telah diamati (misalnya, jalan tidak muncul basah,
sehingga 90% kemungkinan bahwa kebasahan karena alat penyiram). Bayesian jaringan
menawarkan atau mengaktifkan satu set manfaat tidak disediakan oleh sistem lain untuk
menangani ketidakpastian - yang mudah untuk memahami representasi grafis, dasar
matematika yang kuat, dan mekanisme penyetelan otomatis yang efektif.

Classification
Alat klasifikasi otomatis seperti pohon keputusan telah terbukti sangat efektif untuk
membedakan dan karakterisasi volume yang sangat besar data. Mereka menempatkan
item ke salah satu set kelas standar benda didasarkan pada seperangkat fitur yang
diamati. Sebagai contoh, seseorang mungkin menentukan apakah jamur tertentu
"beracun" atau "dimakan" didasarkan pada warna, ukuran, dan ukuran insang.

Clustering
Clustering adalah suatu pendekatan pembelajaran yang berusaha untuk menempatkan
objek ke dalam kelompok yang berarti secara otomatis berdasarkan kesamaan mereka.
Clustering, seperti klasifikasi, tidak memerlukan kelompok untuk menjadi standar
dengan harapan bahwa algoritma akan menentukan pengelompokan berguna tetapi
tersembunyi titik data

Cognitive Science

Kecerdasan buatan dapat didefinisikan sebagai meniru pemikiran manusia untuk


melakukan tugas-tugas yang berguna, seperti memecahkan masalah yang kompleks.

Inovasi
Inovasi adalah suatu penemuan baru yang berbeda dari yang sudah ada atau yang sudah
dikenal sebelumnya. Inovasi merupakan gabungan dari penemuan ide-ide baru yang
diwujudkan dalam bentuk teknologi yang dikomersialisasikan dengan baik.

Sampling
Sampling adalah memetakan nilai intensitas ke interval diskrit.

Variabel
58
Variabel adalah karakteeristik atau nilai numeric yang bervariasi dari individu ke
individu.

59
60

Anda mungkin juga menyukai