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!
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
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
Dicetak oleh
Percetakan CV Oase Group
Isi di luar tanggung jawab percetakan
5
Kata Pengantar
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
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:
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.
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.
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.
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
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:
6
Bab 2
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.
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.
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:
Referensi:
9
Bab 3
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.
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
12
• dan biasanya juga sensor GPS.
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.
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.
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)
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:
18
Bab 4
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
21
lainnya untuk dapat berkomunikasi. Gambar 4.3 menggambarkan otak dari
Erle Hexacopter yang disebut juga 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
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.
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.
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
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.
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))
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()))
cv2.putText(img,label,(startX,y),cv2.FONT_HERSHEY_COMPLEX,0
.5,COLORS[idx],2)
print("[INFO] TIME 3.3: {:.2f}".format(time.time()))
fps.update()
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()
32
Gambar 5.5 Hasil deteksi Obyek
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
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
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
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:
40
Bab 7
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.
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)
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
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
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)
46
(a) (b)
Gambar 7.6 Raspberry Pi model B 512M dengan kamera parallel (a) dan Odroid-
XU (b)
Agar dapat bekerja dengan power yang rendah dan cepat, sistem embedded memiliki 2
komponen utama, yaitu:
1. Hardware
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
Dengan spesifikasi:
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))
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
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()
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()
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.
(a) (b)
Gambar 8.5 Hasil Opening (a) dan closing (b)
-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()
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
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