The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.) (z-lib.org)

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Perpustakaan SMK Telkom Banjarbaru, 2022-04-01 00:00:13

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.)

Robotika Teori dan Aplikasi (Wisnu Jatmiko, Petrus Mursanto, M Iqbal Tawakal etc.) (z-lib.org)

MANET terdiri dari beberapa mobileplatform (sebuah router dengan
beberapa host dan peralatan komunikasi wireless) yang dapat
bergerak bebas. Sistem MANET dapat beroperasi dalam keadaan
terisolasi maupun terhubung dengan sebuah gateway ataupun
interface dengan sebuah jaringan tetap (fixed network). Selain hal-hal
di atas, karakteristik penting yang dimiliki oleh MANET adalah sebagai
berikut:

1. Topologi yang dinamis
Node dapat bergerak dengan bebas, sehingga topologi jaringan
dapat berubah secara acak dan cepat dalam waktu yang tidak
dapat diprediksi. Setiap keterhubungan antar node dapat terdiri
dari keterhubungan dua arah (bidirectional) maupun
keterhubungan satu arah (unidirectional).

2. Bandwidth-constrained, capacity link yang berubah-ubah
Wireless link mempunyai kapasitas jaringan yang lebih rendah
daripada hardwiredlink. Oleh karena itu, throughput dari
komunikasi wireless, setelah mempertimbangkan efek dari noise
dan interferensi seringkali jauh lebih sedikit dari laju transmisi
maksimum dari radio.

3. Energy-constrained operation
Beberapa atau keseluruhan node pada MANET bergantung pada
baterai atau sumber tenaga lain yang terbatas. Untuk node-node
tersebut, kriteria perancangan sistem yang paling penting untuk
optimisasi salah satunya adalah penyimpanan tenaga.

4. Keamanan fisik yang terbatas
Mobilewireless networks secara umum lebih rentan terhadap
gangguan keamanan dibandingkan jaringan yang fixed-cable. Oleh
karena itu, kemungkinan-kemungkinan eavesdropping, spoofing,
dan denial-of-service perlu secara serius diperhatikan.

101

2.5.2 Ad-hoc Routing Protocol
Ad-hoc routing protocol adalah konvensi atau standar yang
mengontrol bagaimana kumpulan node-node menyetujui rute paket
mana yang ditempuh diantara computing devices dalam sebuah
mobilead-hoc network (MANET). Routing protocol dalam sebuah
MANET dapat diklasifikasikan menjadi proaktif (table-driven) dan
reaktif (on-demand) protocol.

1. Proactive Protocol
Proactive Protocol merupakan protocol routing yang
memungkinkan host dalam protokol tersebut akan
menginformasikan hal yang berhubungan dengan routing kepada
host tetangga apabila terdapat perubahan status keterhubungan
antar node. Informasi yang ada akan digunakan untuk perhitungan
routing table oleh masing-masing mobilehost. Mobilehost yang ada
akan menyebarkan informasi tersebut. Besarnya informasi akan
berbanding lurus dengan besarnya cakupan MANET. Contoh
proactive routing protocol diantaranya : Source Tree Adaptive
Routing (STAR), Wireless Routing Protocol (WRP) Distributed
Bellman-Ford (DBF), dan Destination Sequenced Distance Vector
(DSDV).

2. Reactive protocol
Reactive protocol (On Demand Protocol) adalah protocol yang
menyusun suatu rute ketika ada permintaan rute tersebut.
Reactive protocol melakukan penjelajahan rute ketika ada
permintaan rute yang menghubungkan node ke node lain.
Pengembangan Reactive protocol memiliki tujuan untuk
mengurangi overhead dengan mempertahankan rute yang aktif
saja. Contoh reactive routing protocol diantaranya Ad-hoc On-
Demand Distance Vector Routing (AODV), Dynamic Source Routing
(DSR), Signal Stability-based Adaptive Routing (SSA), dan
Temporally Ordered Routing Algorithm (TORA).

102

3. Hybrid Protocol
Hybrid protocol merupakan protokol yang mengkombinasikan
kelebihan dari proactive dan reactive routing protocol. Hybrid
protocol membatasi kumpulan forwardingnode (node perantara)
dan menggunakan proactive routing algorithm untuk node-node
berdekatan. Contoh dari Hybrid protocol ini diantaranya adalah
Zone Resolution Procotol (ZRP), Core Extraction Distributed Ad Hoc
Routing (CEDAR), dan Zone-based Hierarchical Link State (ZHLS).

2.5.3 Macam-Macam Routing Protocol Algorithm
Terdapat beberapa macam ad hoc routing protocol yang dapat
dipasang di atas MANET. Beberapa diantaranya adalah:

1. Ad-hoc On Demand Distance Vector
Algoritma Ad-hoc On Demand Distance Vector (AODV) diusulkan
oleh Charles E. Perkins dan Elizabeth M. Royer (Charles et al,
1999). Algoritma ini membuat rute yang menuju suatu node akan
diperoleh ketika dibutuhkan saja (on demand) tanpa ada
pemberitahuan secara periodik dari node lain (periodic
advertisement). Keuntungan dari algoritma ini diantaranya
mencegah adanya routing loop, mengurangi kebutuhan
bandwidth (tidak membutuhkan periodic advertisement), dan
membuat mobile host beroperasi sebagai sebuah router.
Algoritma ini akan berfungsi optimal pada network yang
topologinya dinamis.

2. Dynamic Source Routing (DSR)
Dynamic Source Routing (DSR) dipublikasikan oleh David B.
Johnson dan David A. Maltz pada tahun 1996 (David B. Johnson et
al., 1999). Algoritma ini menggunakan konsep source routing,
dimana node pengirim secara eksplisit mendaftarkan node
berikutnya dalam header dari paket. Informasi tersebut
selanjutnya digunakan untuk mengindentifikasi node berikutnya
yang digunakan untuk mengirimkan paket kepada node tujuan.
Algoritma ini juga dapat beradaptasi dengan cepat terhadap

103

perubahan routing karena perpindahan yang sering dari mobile
host.

3. Novel Cluster Based Routing (NCBR)
Novel Cluster Based Routing Protocol (NCBR) dipublikasikan oleh
(Bager Zarei et al., 2010). Konsep Cluster Based Routing Protcol
digunakan untuk mengembangkan algoritma ini sehingga dapat
mencapai performa yang baik dari segi waktu hidup dengan
menyeimbangkan penggunaan energi diantara seluruh node.
Tahapan pertama dalam protokol ini ialah membuat cluster
dengan menggunakan faktor-faktor tertentu, kemudian membuat
spanning tree untuk mengirim data ke base station.

4. Novel Cluster Based Routing - Modified (NCBRM)
NCBRM adalah algoritma modifikasi yang dipublikasikan oleh
Enrico Budianto (Budianto 2011). Algoritma ini memodifikasi
algoritma NCBR yang sudah ada dengan menambahkan seleksi
terhadap cluster head menggunakan algoritma Ant Colony
Optimization (ACO).

2.6 Kesimpulan dan Pengembangan Lebih Lanjut

Bab ini telah menjelaskan mengenai berbagai metode dan pendekatan
yang digunakan untuk menyelesaikan permasalahan lumpuhnya
jaringan komunikasi di daerah bencana. Algoritma pembentukan
jaringan, Position by Line, Extended Position by Line, dan Self
Deployment telah disimulasikan dalam bentuk simulasi 3D dan
terbukti efektif. Implementasi dengan riil robot, Al-Fath, juga berhasil
membuktikan efektivitas algoritma yang diusung. Beberapa algoritma
routing yang bias dipasang di atas robot Al-Fath untuk meningkatkan
kemampuan mengirim pesan dalam jaringan juga telah dijelaskan
secara ringkas. Diharapkan di masa depan sistem ini dapat digunakan
ketika terjadi bencana alam dan menjadi bagian dalam sistem
manajemen bencana Indonesia.

Untuk pengembangan lebih lanjut, Pesawat Udara Nir Awak (PUNA)
atau Unmanned Aerial Vehicle (UAV) dapat digunakan sebagai

104

pengganti mobile robot untuk melakukan penyebaran dan
penjelajahan pada daerah bencana. UAV memiliki kelebihan dalam
bentuk kemampuan untuk bermanuver dalam tiga dimensi (3D)
sehingga bisa melewati halangan yang mungkin tidak bisa dilewati
oleh mobile robot yang bergerak menggunakan roda (seperti
reruntuhan atau jurang). Penjelasan mengenai pembuatan jaringan
komunikasi menggunakan UAV akan dijelaskan secara mendalam pada
Bab 3.

105

106

3|BAB

3. BAB 3| Penerapan Robot UAV

Robot penjelajah udara yang akan dibahas pada bab ini adalah
Unmanned Aerial Vehicle (UAV) atau Pesawat Udara Nir Awak (PUNA).
UAV merupakan kendaraan udara tanpa awak (pilot pengendali) di
dalamnya. Karena tidak memiliki awak, UAV harus dikendalikan dari
jarak jauh menggunakan remote control dari luar kendaraan atau biasa
disebut Remotely Piloted Vehicle (RPV). Selain itu, UAV juga dapat
bergerak secara otomatis berdasarkan program yang sudah
ditanamkan pada sistem komputernya.

Pada masa kini UAV telah berkembang dengan sangat pesat dan
digunakan dalam berbagai aplikasi. Berikut ini merupakan beberapa
contoh aplikasi dari UAV:
1. Melakukan penginderaan jarak jauh, seperti memantau jaringan

listrik, melakukan pemetaan suatu daerah, melihat keadaan
geologi suatu daerah, dan memantau lahan pertanian.
2. Melakukan respons terhadap bencana yang terjadi, seperti
melakukan pemantauan kerusakan akibat bencana banjir dan
melakukan pemantauan kebakaran hutan.
3. Melakukan pengawasan hukum, seperti patroli keamanan suatu
lokasi, pemantauan keadaan lalu lintas, patroli keadaan pesisir,
kelautan, dan perbatasan.
4. Melakukan pencarian dan penyelamatan pada daerah yang sulit
dijangkau.
5. Melakukan perjalanan transportasi, seperti membawa kargo kecil,
kargo besar hingga mengangkut penumpang.
6. Menjadi alat penghubung komunikasi permanen ataupun
sementara dan juga untuk menyalurkan siaran seperti siaran
televisi dan radio.

107

7. Membawa dan mengirimkan suatu muatan, seperti membawa air
untuk memadamkan kebakaran atau membawakan zat kimia
untuk merawat tanaman.

8. Melakukan pengambilan gambar untuk keperluan perfilman dan
juga hiburan.

Agar dapat mengenal serta membedakan UAV yang ada saat ini, kita
dapat melakukan pengelompokan ataupun klasifikasi terhadapnya.
Sebernarnya terdapat banyak jenis pengelompokan UAV yang bisa
digunakan, seperti pengelompokan berdasarkan kegunaan,
berdasarkan motor penggerak, dan pengelompokan berdasarkan hal
lainnya. Namun, yang paling sering digunakan dalam kajian ilmiah
adalah pengelompokan berdasarkan bobot dari suatu UAV.

Parameter bobot dipilih sebagai parameter pengelompokkan karena
terdapat banyak karakteristik performa suatu UAV yang berhubungan
langsung dengan bobot dari UAV tersebut. Contohnya, besar gaya
angkat dan gaya dorong yang dibutuhkan suatu UAV bergantung pada
bobot UAV tersebut. Selain itu, bobot juga mempengaruhi lebar
baling-baling yang digunakan, serta sumber energi yang dapat dipakai.
Contohnya, UAV yang ringan biasanya akan menggunakan motor
elektrik sebagai penggerak utamanya dan UAV dengan bobot sangat
berat biasanya menggunakan turbo jet ataupun turbo fan.

Pada Tabel 3-1 merupakan pengelompokan UAV berdasarkan
bobotnya, yang dilakukan oleh Dr. Maziar (Arjomandi 2006):

Tabel 3-1. Pengelompokan Jenis UAV

Sebutan Rentang berat Contoh UAV
Super Heavy >2000 kg Global Hawk

Heavy 200 – 2000 kg A-160
Medium 50 – 200 kg Cypher
5-50 kg Neptune
Light <5 kg Dragon Eye
Micro

108

Salah satu jenis UAV yang termasuk kedalam kategori micro dan cukup
banyak digunakan adalah quadcopter. UAV jenis ini memiliki ciri
khusus yang mudah dikenali yaitu memiliki empat buah baling-baling
motor yang digunakan sebagai penggeraknya. Gambar 3.1
menunjukkan salah satu contoh dari quadcopter.

Gambar 3.1. Quadcopter
Pada gambar tersebut nampak sebuah quadcopter dengan empat
buah baling-baling yang terpasang di bagian kiri dan kanan. Dengan
empat buah baling-baling tersebut memudahkan quadcopter untuk
bermanuver sehingga dengan cepat dapat bergerak kesegala arah. Hal
ini menjadi salah satu kelebihan dari quadcopter. Selain empat buah
baling-baling, quadcopter juga dilengkapi dengan sensor diantaranya
sensor Global Positioning System (GPS) yang digunakan untuk
bernavigasi, sensor Inertial Measurement Unit (IMU) yang berfungsi
untuk menghitung percepatan serta orientasi arah pergerakan, sensor
ultra sonic untuk mendeteksi keberadaan benda dan sensor-sensor
lainnya yang mendukung fungsi dan kinerja dari quadcopter.
Penjelasan lebih lanjut mengenai quadcopter, mulai dari komponen
pembentuk, prinsip kerja dan kemampuannya akan dijelaskan pada
subbab 3.1.

Dengan manuverabilitas yang tinggi, rancangan yang sederhana dan
kelengkapan sensor yang digunakan, membuat banyak peneliti
menjadikan quadcopter sebagai komponen utama dalam
penelitiannya. Beberapa penelitian yang dilakukan tim peneliti dari
Fakultas Ilmu Komputer, Universitas Indonesia, menggunakan
quadcopter untuk memulihkan jaringan komunikasi, dimana pada
penelitian tersebut digunakan beberapa buah quadcopter yang

109

digunakan untuk pemulihan jaringan komunikasi. Penjelasan
mengenai bagaimana hal tersebut dapat dilakukan dan bagaimana
cara melakukannya terdapat pada subbab 3. Selain sebagai pemulih
jaringan komunikasi masih terdapat penelitian lain yang dilakukan tim
peneliti dari Fasilkom, diantaranya pendeteksian dan pelacakan objek
dengan menggunakan sensor kamera dan pembentukan formasi untuk
mengekplorasi ruangan pada suatu bangunan. Penjelasan mengenai
kedua aplikasi tersebut terdapat pada subbab 3.3 dan 3.4.

3.1 Desain Robot Quadcopter

Telah dijelaskan sebelumnya bahwa quadcopter merupakan salah satu
jenis UAV yang cukup banyak digunakan. Berikut ini akan dijelaskan
hal-hal yang berkaitan dengan quadcopter diantaranya komponen
pembentuk, prinsip kerja, kemampuannya, dan salah satu jenis
quadcopter yaitu AR.Drone.

3.1.1 Komponen Pembentuk Quadcopter
Secara umum sebuah quadcopter terdiri dari komponen piranti keras
dan piranti lunak. Pada komponen piranti keras, terdiri dari sistem
mekanik dan elektronik. Pada sistem elektronik, quadcopter dibentuk
oleh beberapa rangkaian elektronik, seperti sensor, motor driver dan
microcontroller. Komponen-komponen tersebut diletakan di bagian
tengah membentuk lingkaran atau kotak, serta empat baling-baling di
sekitarnya pada posisi yang bersilangan. Struktur penyusun
persilangan tersebut cukup tipis dan ringan, tetapi juga cukup kuat
untuk menghubungkan struktur keempat motor baling-baling. Setiap
baling-baling terhubung ke motor melalui reduction gear (roda gigi
yang mengurangi kecepatan putaran masukan pada keluarannya).
Sumbu rotasi setiap baling-balingnya selalu tetap dan paralel. Hal ini
menunjukkan bahwa struktur ini cukup kaku, dimana hanya kecepatan
baling-baling yang bisa divariasikan. Kecepatan baling-baling ini
berperan penting terhadap pergerakan dari quadcopter.

Pergerakan sebuah quadcopter bergantung kepada informasi-
informasi mengenai lingkungannya yang diperoleh melalui sensor.
Untuk mengetahui keadaan lingkungannya tersebut, quadcopter dapat
menggunakan banyak sensor sesuai keperluan. Terdapat beberapa

110

sensor yang dimiliki hampir setiap quadcopter. Sensor-sensor tersebut
diperlukan untuk mendukung pergerakan mendasar dari quadcopter,
diantaranya:

1. Global Positioning System (GPS)
GPS adalah sistem navigasi dengan menggunakan satelit. Sistem
ini dikelola oleh pemerintah Amerika Serikat and bebas diakses
oleh siapa saja. Sensor ini bekerja dengan menerima data yang
berisi waktu dan posisi satelit ketika data dikirimkan, melalui
sinyal yang dipancarkan oleh satelit GPS. Dengan menerima data
dari tiga satelit dengan posisi yang berbeda, data navigasi dapat
dihitung secara realtime. Data navigasi dapat berupa posisi, arah,
dan kecepatan pergerakan yang sedang terjadi.

2. Inertial Measurement Unit (IMU)
IMU merupakan sensor yang berfungsi untuk menghitung
percepatan serta orientasi arah pergerakan dari kendaraan udara
dengan menggunakan kombinasi dari sensor accelerometer dan
gyroscope. Dengan adanya IMU, kendaraan udara bisa
menghitung dan mengetahui pergerakan yang dilakukannya,
sehingga dapat membantu kendaraan tersebut untuk mengetahui
posisi serta lintasan yang dilaluinya tanpa menggunakan GPS
(misalkan ketika tidak mendapatkan sinyal GPS).

Secara umum IMU bekerja dengan menggunakan tiga sensor
accelerometer yang digunakan untuk menghitung percepatan di
sumbu x, y, dan z. Nantinya, accelerometer akan dipadukan
dengan gyroscope untuk menentukan arah mana yang sedang
diambil oleh quadcopter ketika melakukan percepatan tersebut.
Dengan mencatat dan menggabungkan semua perhitungan
tersebut, akan didapatkan posisi baru dari quadcopter yang
bergerak, serta jalur pergerakan yang diambilnya.

3. Ultrasonic Range Sensor
Sensor ini digunakan untuk mendeteksi benda yang ada di sekitar
quadcopter. Selain itu sensor ini juga dapat digunakan untuk

111

mengetahui ketinggian terbang yang dilakukan, dengan cara
mendeteksi benda yang berada di bawahnya. Hal ini berguna
untuk menjaga ketinggian terbang, misalnya ketika berada di
dalam ruangan tertutup.

4. Kamera
Pada quadcopter, kamera tidak hanya digunakan sebagai alat
untuk mengambil gambar saja, tapi juga dapat digunakan sebagai
sensor, misalkan untuk mendeteksi dan mengenali objek tertentu.
Hal ini dilakukan dengan bantuan teknik/algoritma tertentu,
misalkan image processing.

3.1.2 Prinsip kerja quadcopter
Quadcopter memiliki dua pasang baling-baling seperti yang terlihat
pada gambar 3.2, dimana pasangan tersebut bergerak berlawanan arah
dengan pasangan lainnya. Baling-baling bagian depan dan belakang
quadcopter bergerak berlawanan arah jarum jam, sedangkan baling-
baling bagian kiri dan kanan bergerak searah jarum jam. Konfigurasi
arah berlawanan dari baling-baling ini dapat menggantikan kebutuhan
untuk memiliki baling-baling di ekor sebagaimana yang dimiliki
helikopter standar, yang digunakan untuk mengatur arah pergerakan.

Gambar 3.2. Gambar Arah Putaran Baling-baling Quadcopter
Quadcopter memiliki ketentuan tersendiri terhadap variasi kecepatan
perputaran setiap baling-balingnya untuk dapat melakukan
pergerakan tertentu. Dalam melakukan terbang melayang di udara,

112

yang dikenal dengan sebutan hover, quadcopter perlu menggerakkan
keempat baling-balingnya dengan kecepatan yang sama. Setiap
pasangan baling-baling memiliki arah gaya dorong yang memiliki
fungsi berbeda, satu pasang sebagai pendorong (pusher) dan satu
pasang sebagai penarik (puller). Dengan adanya pergerakan yang
menghasilkan gaya dorong serta gaya tarik yang melawan gaya
gravitasi tersebut, quadcopter dapat terbang melayang di udara
dengan stabil.

Selain gerakan melayang, quadcopter juga memiliki aturan tersendiri
untuk gerakan-gerakan lainnya. Beberapa pergerakan pada
quadcopter adalah:

- Gerakan naik turun. Untuk bergerak terbang ke atas dan ke bawah,
quadcopter perlu menaikkan atau menurunkan kecepatan putar setiap
baling-baling dengan jumlah yang sama. Menaikkan kecepatan akan
mengakibatkan quadcopter terbang ke atas, dan menurunkan
kecepatan akan mengakibatkan quadcopter terbang ke bawah.

- Gerakan berputar pada sumbu datar (menggulung). Untuk
melakukan gerakan tersebut, perlu dilakukan perubahan kecepatan
perputaran baling-baling pada salah satu pasangan baling-baling.
Untuk berputar pada sumbu x (roll) perubahan kecepatan dilakukan
pada pasangan baling-baling kiri dan kanan, sedangkan untuk berputar
pada sumbu y (pitch) perubahan kecepatan dilakukan pada pasangan
baling-baling depan dan belakang. Perubahannya adalah salah satu
anggota pasangan baling-baling dikurangi kecepatannya dan anggota
pasangan baling-baling lainnya dinaikkan dengan selisih kecepatan
yang sama, sedangkan baling-baling lainnya dibiarkan dengan
kecepatan tetap. Dengan pengaturan seperti ini, quadcopter akan
bergerak memutar dari arah pasangan baling-baling yang
berkecepatan lebih rendah, ke arah pasangan baling-baling yang
berkecepatan lebih tinggi.

- Gerakan ke samping kanan dan kiri pada sumbu z (yaw). Gerakan ini
dilakukan dengan menurunkan kecepatan satu pasang baling-baling,

113

atas-bawah atau kiri-kanan, dan menaikkan kecepatan satu pasangan
baling-baling lainnya. Nantinya, quadcopter akan bergerak berputar ke
arah perputaran pasangan baling-baling yang lebih lambat
kecepatannya dibandingkan pasangan yang lainnya.

3.1.3 Kemampuan Quadcopter
Quadcopter memiliki beberapa kelebihan yang menjadikannya cocok
untuk melakukan pekerjaan tertentu. Bentuknya yang kecil membuat
quadcopter cukup leluasa untuk bergerak di tempat-tempat yang sulit.
Quadcopter juga dapat terbang secara vertikal, yang berarti ia tidak
memerlukan landasan pacu untuk dapat terbang. Selain itu
quadcopter juga dapat bergerak ke delapan arah mata angin tanpa
perlu memutar badannya terlebih dahulu. Jika dibandingkan dengan
kendaraan udara bersayap, quadcopter jauh lebih unggul dalam hal
manuver. Hal ini terkait dengan lebih sedikitnya ruang gerak yang
dibutuhkan dalam melakukan take off ataupun melakukan pergantian
arah.

Kelebihan lainnya adalah quadcopter memiliki baling-baling yang
cukup kecil, sehingga lebih aman untuk digunakan pada pekerjaan
yang melibatkan interaksi dengan objek yang dekat. Dari segi desain,
quadcopter lebih sederhana jika dibandingkan helikopter standar,
yaitu dalam hal pembuatan, pemeliharaan, dan perbaikan. Selain itu
quadcopter juga memiliki kemampuan mengangkat muatan dengan
cukup baik walaupun ukurannya kecil. Kemampuan itu bisa digunakan
untuk mendukung pekerjaannya, seperti membawa kamera untuk
mengambil gambar dari udara.

Walaupun memiliki banyak kelebihan, quadcopter juga memiliki
kelemahan yang cukup mempengaruhi kinerjanya. Quadcopter hanya
dapat terbang dalam jangka waktu pendek, jika dibandingkan dengan
UAV lainnya. Hal ini terjadi karena quadcopter menggunakan tenaga
elektrik untuk bergerak dengan kapasitas baterai yang terbatas.
Jangka waktu yang pendek tersebut secara tidak langsung akan
mempengaruhi kapasitas bawaan, kecepatan terbang, dan jarak
tempuh quadcopter tersebut.

114

3.1.4 AR.Drone
AR.Drone merupakan salah satu jenis quadcopter yang dikembangkan
oleh perusahaan Parrot, yang bermarkas di Paris. AR.Drone dapat
digunakan untuk kepentingan permainan, aeromodeling, dan
augmented reality. AR.Drone dapat dijalankan oleh beberapa
perangkat, seperti Windows, Linux, iPhone, dan Android melalui
jaringan nirkabel. AR.Drone tidak hanya digunakan sebagai permainan
saja, tetapi juga untuk kepentingan pendidikan dan penelitian. Hal ini
dikarenakan AR.Drone memiliki harga yang cukup terjangkau,
ukurannya yang tidak terlalu besar, serta sudah mendukung sistem
piranti keras dan piranti lunak yang dibutuhkan untuk melakukan
penelitian (Thomas, AR-Drone). Dalam hal ini piranti lunak yang
digunakan pada AR.Drone adalah Robot Operating System (ROS).

ROS merupakan sekumpulan dari package dan tool pembangun
perangkat lunak untuk robot. Setiap package atau aplikasi di dalam
ROS disebut node. Beberapa keuntungan digunakannya perangkat
lunak ROS, yaitu platform open source, dapat dikembangkan dengan
menggunakan berbagai bahasa permograman seperti C++, python dan
java. Serta dapat dijalankan pada berbagai platform seperti ARM CPUS
dan Xeon Clusters.

Gambar 3.3. Parrot AR Drone
AR.Drone pada gambar 3.3 dapat dikendalikan melalui perangkat
kontrol yang terhubung melalui jaringan wireless. AR.Drone sudah
memiliki perangkat utama yang dibutuhkan oleh UAV quadcopter,
seperti sensor IMU, sensor pengukur ketinggian, dan lain-lain.
AR.Drone juga cukup aman digunakan, karena sudah disediakan
sistem pengamanan yang cukup baik, seperti terdapatnya pelindung

115

yang terbuat dari bahan gabus yang dipasang di sekitar baling-baling,
serta adanya mekanisme berhenti secara otomatis dari baling-baling
jika bersentuhan dengan suatu objek. Tabel 3-2 menunjukkan
spesifikasi lengkap dari UAV AR.Drone.

Tabel 3-2. Spesifkasi AR Drone

Sistem komputer  ARM9 468 MHz
bawaan  DDR 128 Mbyte at 200MHz
 Wifi b/g
Bentuk  USB high speed
 Linux OS
Baterai
Kecepatan  Berat:
Sistem pengamanan 380 gram tanpa pelindung
Perangkat pendukung 420 gram dengan pelindung
 Dimensi:
45x29 cm tanpa pelindung
52,5x51,5 cm dengan pelindung

 Waktu pengisian baterai : 1 jam 30
menit

 Waktu terbang : sekitar 12 menit
Kecepatan terbang 5 m/s (18 km/h)

 Gabus pelindung dalam ruangan
 Kunci baling-baling otomatis ketika

ada kontak

 Pengukur ketinggian ultrasound
 Sensor IMU
 Kamera depan beresolusi 640 x 480

pixel dan kemampuan menangkap
video 15 fps
 Kamera bawah beresolusi 176 x 144
pixel dan kemampuan menangkap
video 60 fps

116

3.2 Penerapan UAV untuk Pemulihan Jaringan
Komunikasi

Robot UAV Quadcopter untuk pemulihan jaringan komunikasi
merupakan pengembangan lebih lanjut dari penelitian sebelumnya,
yaitu pemulihan jaringan komunikasi menggunakan mobile robot. Hal
tersebut telah dijelaskan secara rinci pada bab 2. Pada penelitian
tersebut agen yang digunakan untuk membangun jaringan komunikasi
menggunakan mobile robot (Budianto at al., 2011). Namun terdapat
beberapa kendala yang mungkin dihadapi pada saat dilakukan
implementasi pada lingkungan nyata.

Seringkali setelah terjadinya bencana alam, tidak hanya jalur
komunikasi yang terputus namun jalur lalu lintas juga tertutup
reruntuhan atau robohnya jembatan yang menghubungkan lokasi
bantuan dengan lokasi bencana. Hal ini mengakibatkan robot agen
yang berfungsi untuk menghubungkan jaringan komunikasi menjadi
sulit untuk bernavigasi bahkan menjadi terhambat menuju titik
sasaran. Sehingga dalam penelitian ini dikembangkan sebuah
algoritma untuk membangun jaringan komunikasi dengan
menggunakan quadcopter, dalam hal ini AR.Drone, sebagai agen.
Penggunaan AR.Drone akan meminimalisasi permasalahan navigasi
robot untuk mencapai titik yang sasaran untuk memulihkan jaringan
komunikasi.

Pada subbab ini khusus menjelaskan mengenai implementasi
pemulihan jaringan komunikasi antara dua buah node menggunakan
AR.Drone sebagai agen. Penjelasan diawali dengan modifikasi agen,
tujuannya adalah agar agen yang digunakan memiliki spesifikasi yang
sesuai dengan kebutuhan. Penjelasan mengenai modifikasi agen
terdapat pada subbab 3.2.1. Kemudian penjelasan dilanjutkan dengan
perancangan sistem secara keseluruhan, yang terdapat pada subbab
3.2.2. Selanjutnya penjelasan mengenai implementasi terdapat pada
subbab 3.2.3.

117

3.2.1 Perancangan Agen
Proses pemenuhan kebutuhan penelitian dilakukan dengan modifikasi
dan penambahan beberapa modul. Modifikasi pada perangkat keras
yang dilakukan adalah dengan menambahkan suatu sistem untuk
menentukan lokasi yaitu dengan menggunakan Global Position System
(GPS). Tipe GPS yang digunakan adalah 20 Channel EM-406A SIRF III
receiver dengan antenna. Berikut ini adalah bentuk fisik dari modul
GPS.

Gambar 3.4. Modul GPS 20 Cannel EM-406A SIRF
Di dalam modul tersebut telah dilengkapi dengan rangkaian voltage
regulator, led indicator, battery backed RAM, dan built-in patch
antenna 6-pin. Selain modul GPS, terdapat modul lain yang
ditambahkan pada AR.Drone yaitu modul XBee. Fungsi dari modul ini
adalah untuk membentuk jaringan ad-hoc antara AR.Drone yang satu
dengan AR. Drone yang lainnya kemudian saling mengirimkan paket
data. Tampak pada gambar 3.5. posisi pemasangan dari modul GPS
dan modul XBee.

Gambar 3.5. Posisi Pemasangan modul GPS dan XBee pada ARDrone

3.2.2 Perancangan Sistem Secara keseluruhan
Setelah proses modifikasi pada AR.Drone selesai dilakukan, maka
tahapan selanjutnya adalah melakukan perancangan sistem secara

118

keseluruhan. Pada sistem tersebut digunakan beberapa AR.Drone
sebagai agen, PC, sink, dan target. Selain itu digunakan juga sebuah
wireless router yang berfungsi sebagai central terminal untuk
menghubungkan antar komponen-komponen tersebut. Gambar 3.6.
menunjukkan sistem secara keseluruhan.

Gambar 3.6. Rancangan Agen
Pada sistem tersebut digambarkan dua buah menara BTS yang
terputus (ditandai dengan garis merah putus-putus). Tugas dari agen
adalah menghubungkan jaringan komunikasi antara kedua menara
BTS tersebut. Beberapa agen akan terbang dan membentuk formasi
untuk menghubungkan komunikasi antar menara. Setelah setiap agen
berada di posisi yang tepat dalam formasi, maka dibentuk jaringan ad-
hoc. Dengan menggunakan jaringan ad-hoc ini, informasi dapat
dikirimkan menuju BTS. Algoritma yang digunakan untuk membentuk
formasi adalah algoritma Self-Deployment (W. Jatmiko et al., 2009,
Takahashi et al., 2007). Algoritma ini sudah dijelaskan secara rinci
pada subbab 2.3.3. Setelah perancangan selesai dilakukan maka
tahapan selanjutnya adalah melakukan implementasi pada AR.Drone.
proses implementasi di jelaskan pada subbab selanjutnya.

3.2.3 Proses implementasi
Pada proses implementasi, kebutuhan AR.Drone untuk mengetahui
posisi, baik posisinya sendiri maupun posisi AR.Drone lain, menjadi
salah satu tujuan dari penelitian ini. Hal tersebut diperlukan agar

119

AR.Drone dapat melakukan navigasi sesuai dengan posisi yang
diinginkan. Untuk mengetahui posisi AR.Drone dapat dilakukan
dengan dua cara yaitu dengan menggunakan GPS atau menggunakan
sensor Inertia Measurement Unit (IMU). Pada perangkat AR.Drone
telah dilengkapi dengan dua sensor IMU yaitu gyrometer dan
accelerometer. Nilai posisi yang dihasilkan oleh sensor IMU diperoleh
dari hasil navigasi yang dilakukan oleh AR.Drone yaitu berupa
kecepatan terhadap setiap sumbu Vx, Vy, dan Vz. Berikut ini
merupakan gambar pemodelan dari pergerakan kecepatan AR.Drone.

Gambar 3.7. Pemodelan Kecepatan ARDrone

Pada umumnya AR.Drone memiliki dua jenis kecepatan yakni
kecepatan global dan kecepatan lokal. Kecepatan global merupakan
kecepatan yang sesuai dengan sumbu tiga dimensi (x,y,z), sedangkan
kecepatan lokal merupakan nilai vektor kecepatan yang telah
dirotasikan agar pergerakan yang diperoleh pergerakan sesuai yang
diinginkan. Sensor IMU menghasilkan beberapa informasi yang
penting, diantaranya informasi mengenai kondisi baterai, derajat
rotasi dalam 3 sumbu (RotX, RotY, Rotz), kecepatan dalam 3 sumbu
(Vx, Vy, Vz) dan ketinggian. Nilai-nilai tersebut, khususnya nilai rotasi,
digunakan untuk mendapatkan posisi koordinat AR.Drone. Agar dapat
dikonversi menjadi kecepatan, maka data-data tersebut
ditransformasikan terlebih dahulu dengan menggunakan persamaan
rotasi matriks berikut ini.

− + +
+ −+
Rotasi Matriks =


120

Setelah dilakukan rotasi, selanjutnya dilakukan perhitungan jarak
sehingga dapat memberikan informasi mengenai koordinat tiga
dimensi yang diinginkan. Untuk melakukan monitoring terhadap posisi
dari AR.Drone, kami telah mengembangkan sebuah aplikasi yang
dibangun di atas platform ROS yang digunakan untuk melihat seluruh
koordinat data setiap AR.Drone. Berikut ini adalah screenshot hasil
monitoring dari pada saat AR.Drone sedang membentuk formasi.

Gambar 3.8. Monitoring posisi ARDrone
Selain menggunakan sensor IMU, proses penentuan posisi juga
dilakukan dengan menggunakan GPS. Tujuan dari penggunaan sensor
GPS adalah untuk mendapatkan koordinat posisi AR.Drone yang lebih
akurat dibandingkan dengan sensor IMU. Berikut ini adalah hasil
screenshot AR.Drone pada peta UI.

121

Posisi robot
ARDrone

Gambar 3.9. Penentuan posisi ARDrone menggunakan GPS
Pencarian informasi mengenai posisi merupakan tahapan awal dalam
pemulihan jaringan komunikasi. Tahapan selanjutnya adalah
menerapkan algoritma self-deployment yang digunakan untuk
melakukan pencarian tujuan dari setiap agen. Sebuah agen akan
bergerak dari suatu titik ke titik yang lain hingga membentuk formasi
yang diinginkan. Pengaturan kecepatan setiap agen ketika bergerak
dari satu titik ke titik lainnya menggunakan konsep PID untuk
mengurangi tingkat kesalahan. Berikut ini adalah diagram yang
menggambarkan rancangan perilaku setiap agen.

Gambar 3.10. Flow Diagram Perancangan Behavioral Agent
122

Pada proses pengujian ini dilakukan dengan dua skenario yang
berbeda. Pada skenario A, setiap agen memiliki posisi awal
membentuk garis lurus antara sink dan target (Gambar 3.11. (a)). Pada
skenario B, setiap agen diletakkan secara menyebar antara sink dan
target (Gambar 3.11. (b)).

(a)

(b)
Gambar 3.11. Skema ujicoba (a) skenario A dan (b) skenario B
123

Akhir dari pengujian ini adalah seluruh agen berhasil membentuk
formasi, dan setiap agen dapat saling berkomunikasi satu sama lain.
Ini menandakan bahwa jaringan komunikasi berhasil disambungkan.

Gambar 3.12. Kondisi Akhir Setiap Agent Berhasil Saling Terhubung

Tampak pada gambar 3.12 setiap agen saling terhubung satu dengan
yang lain. Selain itu, formasi dari quadcopter juga berhasil
menyambungkan sink dan target.

3.3 Penerapan UAV Sebagai Pendeteksi dan Pelacak
Objek

Hasil penelitian lain yang akan dijelaskan pada subbab ini adalah
penerapan UAV untuk mendeteksi dan melakukan pelacakan suatu
objek. Untuk dapat melakukan pendeteksian dan pelajakan objek
diperlukan suatu alat yang berfungsi untuk menangkap gambar atau
merekam video mengenai objek yang akan dideteksi. Pada UAV jenis
quadcopter, yaitu AR.Drone, telah dilengkapi suatu sensor yang dapat
menangkap gambar maupun merekam video, sensor tersebut adalah
sensor kamera. Sensor ini diletakkan di bagian depan dan di bagian
bawah badan AR.Drone.

124

Posisi Sensor Kamera

Gambar 3.13. Posisi kamera pada AR.Drone

Tampak pada gambar 3.13 posisi dari sensor kamera pada AR.Drone.
Dengan adanya dua sensor kamera tersebut dapat difungsikan sebagai
pendeteksi objek yang berada di bagian depan maupun di bagian
bawah AR.Drone. Pada penelitian ini contoh objek yang akan dideteksi
adalah objek topi. Proses pendeteksian topi memiliki beberapa
tahapan. Tahapan awal dilakukan pengambilan bentuk gambar topi
yang ingin dideteksi, kemudian dilakukan proses pengolahan awal
atau pre-processing. Tujuan dari proses ini adalah untuk mencari
karakteristik atau ciri dari topi yang akan di deteksi. Perolehan ciri ini
disebut ekstraksi ciri. Setelah dilakukan ekstraksi ciri maka tahapan
selanjutnya adalah menentukan ciri mana yang paling
merepresentasikan dari objek topi yang ingin dideteksi karena tidak
semua ciri yang diperoleh memiliki tingkat representasi yang tinggi
sehingga hanya dipilih beberapa ciri yang paling merepresentasikan.
Proses pemilihan ciri ini disebut feature selection.
Setelah diperoleh ciri yang paling representatif, maka tahapan
selanjutnya adalah melakukan pencarian suatu algoritma yang
digunakan untuk melakukan pendeteksian objek topi. Fungsi dari
algoritma tersebut adalah membedakan objek mana yang ingin

125

dideteksi dan mana yang bukan. Dalam Ilmu Komputer, proses ini
disebut sebagai klasifikasi. Algoritma yang digunakan untuk melakukan
klasifikasi adalah algoritma Generalize Learning Vector Quantization
(GLVQ). Berdasarkan hasil eksperimen, algoritma ini telah mampu
mendeteksi objek yang ingin dideteksi. Penjelasan lebih lanjut
mengenai algoritma GLVQ terdapat pada subbab 3.3.1.3.
Pada proses implementasinya secara garis besar terbagi menjadi dua
tahapan. Pada tahap pertama dilakukan pengambilan gambar dari
kamera bawah AR.Drone serta implementasi program pengolahan
data gambar, program pelatihan dan program pengujian
menggunakan algoritma GLVQ. Keseluruhan program tersebut
berjalan pada komputer PC. Oleh karena itu, dapat dikatakan bahwa
proses pengerjaan tahap pertama adalah proses pengembangan yang
dilakukan tanpa menerbangkan AR.Drone. Diagram blok dari
keseluruhan proses tahap pertama dapat dilihat pada gambar 3.14.

Gambar 3.14. Tahap Pengembangan Sistem Tanpa Menerbangkan AR-
Drone

126

Pada tahap kedua merupakan proses pengembangan sistem yang
dilakukan menggunakan AR.Drone. Pada tahap ini, hampir sebagian
besar program yang dijalankan di PC sebelumnya disesuaikan kembali
untuk dapat digunakan sebagai node di ROS. Sebagai tambahan,
dibuat juga program untuk dapat mengontrol pergerakan AR.Drone
sesuai dengan posisi koordinat ditemukannya topi pada gambar yang
ditangkap kamera. Proses keseluruhan pada tahap kedua ini dapat
dilihat pada gambar 3.15.

Gambar 3.15. Tahap Pengembangan Sistem pada AR-Drone
127

Selanjutnya akan dijelaskan kedua tahapan tersebut, yaitu
pengembangan sistem pendeteksi objek tanpa menerbangkan
AR.Drone dan sistem pendeteksi dan pelacakan dengan
menerbangkan AR.Drone.

3.3.1 Proses Pengerjaan Tanpa Menerbangkan AR-Drone
Pada bagian sebelumnya telah diketahui bahwa tahap pertama adalah
tahap pengembangan yang mencakup pengambilan gambar,
pemosesan awal data, pelatihan dan pengujian menggunakan GLVQ.
Program yang dibuat pada tahap ini antara lain adalah program
pemrosesan awal data mulai dari pengambilan gambar, ekstraksi ciri
hingga seleksi ciri, program pelatihan menggunakan algoritma GLVQ,
serta proses pengujiannya. Berikut adalah penjelasan lebih lanjut
mengenai tahapan-tahapannya.

3.3.1.1 Proses Pengambilan Gambar
Proses pengambilan gambar merupakan proses yang paling pertama
dilakukan dalam implementasi sistem secara keseluruhan. Ada
beberapa hal yang harus diperhatikan dalam pengambilan data
gambar. Hal Ini sangat penting terkait apakah data yang diambil dapat
mewakili karakteristik objek yang dimaksud (topi) dengan baik atau
tidak. Hal-hal tersebut antara lain adalah sebagai berikut.
1. Gambar topi yang diambil sebisa mungkin sangat kontras dengan

latar belakangnya.
2. Kombinasi orientasi topi perlu diperhatikan agar gambar-gambar

yang diambil dapat mewakili karakteristik objek topi. Kombinasi
orientasi ini ditentukan sebanyak delapan buah (perbedaan 450
setiap kombinasinya) untuk pembatasan masalah. Kombinasi
tersebut dapat dilihat pada gambar 3.16.
3. Gambar non-topi diwakili oleh gambar bagian-bagian lantai. Hal ini
juga dilakukan untuk pembatasan masalah. Contoh-contoh gambar
ini dapat dilihat pada gambar 3.17.

128

(a) (b) (c)

Gambar 3.16. Beberapa Gambar Objek Topi 70x70 pixel dengan
Orientasi (a) 450, (b) 900, dan (c) 3150

Gambar 3.17. Beberapa Gambar Objek Non-Topi
Proses pengambilan gambar pada gambar 3.17 dilakukan secara
manual menggunakan tombol PrintScreen di keyboard. Selanjutnya
gambar dipotong menggunakan GIMP 2.6.11 – GNU Image
Manipulation Program. Gambar dipotong dengan resolusi 70x70 pixel.
Gambar ini sesuai dengan ukuran penuh topi yang difoto dalam jarak
100 cm dari kamera bawah AR.Drone. Gambar penuh dari tangkapan
ini dapat dilihat pada Gambar 3.18. Proses ini selesai ketika jumlah
gambar yang dibutuhkan sudah mencukupi.

Gambar 3.18. Gambar Penuh Kamera Bawah AR.Drone (176x144 pixel)
3.3.1.2 Proses Awal Data
Proses awal data (data preprocessing) merupakan proses ekstraksi
fitur pada pengolahan data gambar untuk mendapatkan jumlah fitur
data yang seminimum mungkin namun serepresentatif mungkin.
129

Beberapa teknik pengolahan citra digunakan untuk melakukan
ekstraksi fitur tersebut. Pengolahan citra yang digunakan dalam proses
ini dilakukan menjadi tiga tahapan.

Tahap pertama adalah perubahan gambar menjadi hanya
memperhatikan derajat keabuan (grayscale), tahap ke dua gambar
dibuat menjadi binary image (citra biner), dan tahap ke tiga adalah
mengubah data pixel menjadi Centroid-Contour Distance (CCD). Alasan
dari penggunaan metode CCD adalah karena metode ini mampu
merepresentasikan objek daun dengan baik. Daun disini memiliki
karakteristik hampir yang sama dengan topi yang digunakan sebagai
model yang dideteksi. Kemiripan daun dengan topi disini adalah
bentuknya yang merupakan objek satuan (single object) dengan tepi
yang dapat dicapai dari sebuah titik di tengahnya.

CCD merupakan teknik untuk mendapatkan fitur gambar berdasarkan
karakteristik bentuk sisinya (contour). Nilai CCD adalah jarak dari suatu
titik tetap tertentu ke semua titik contour di sekelilingnya (Wang dan
Feng, 2003). Ilustrasi penghitungan nilai CCD dapat dilihat pada gambar
3.19. Dalam gambar 3.19 tersebut dapat dilihat bahwa 2 fitur CCD yang
dihitung, a dan b. Pada gambar tersebut dapat dilihat bahwa fitur CCD
diambil setiap 100, sehingga ada total sebanyak 36 fitur (termsuk a
dan b) yang dihasilkan.

Gambar 3.19. Fitur CCD

130

Berikut daftar dari teknik pemrosesan citra yang digunakan disini.
1. Grayscale: pada implementasinya digunakan fungsi library

OpenCV. Gambar diambil hitam putih dengan berbagai tingkat
derajat keabuan.
2. Citra biner: mengubah nilai derajat keabuan menjadi hanya daun
warna saja, hitam dan putih, berdasarkan batas atau rentang nilai
yang dipilih.
3. CCD: dalam implementasinya akan diambil nilai setiap 10o, jadi
total fiturnya ada 36 buah.
Proses selanjutnya dalam pemrosesan data ini adalah feature selection
(seleksi ciri) dengan metode Principal Component Analysis (PCA). PCA
adalah suatu prosedur matematika yang menggunakan transformasi
orthogonal untuk mentransformasi data yang kemungkinan memiliki
korelasi antar variabelnya ke dalam ruang dengan vektor basis yang
tidak berkorelasi secara linear. Vektor basis ini disebut dengan
principal component.

Metode PCA dimulai dengan menghitung matriks kovarian (covariant
matrix) dari data. Setelah itu, dekomposisi eigen value dari matriks
tersebut dihitung. Keluaran dari proses dekomposisi eigen value
adalah vektor Eigen dan nilai Eigen. Vektor Eigen kemudian diurutkan
berdasarkan nilai Eigen-nya masing-masing. Pada fase terakhir, data
awal dikalikan dengan matriks transformasi yang diisi oleh vektor
Eigen. Jumlah vektor Eigen yang dipakai pada matriks transformasi
tergantung dari jumlah fitur yang kita inginkan pada tahap terakhir.
Proses PCA dapat dilihat pada gambar 3.20.

Gambar 3.20. Bagan Proses PCA
131

a. Rata-rata

1
̅=

b. Kovarian

1
= ( − ̅ )( − ̅ )

c. Dekomposisi Eigen



d. Mengurutkan nilai Eigen dari yang terbesar
e. Pengurangan fitur

Misal, jumlah vektor p, dan pengurangan r, maka:
jumlah vektor setelah dikurangi = p-r

11 1 −
⋮⋮
1−

11 1 11 1 1 1

⋮ ⋮ ⋮ ⋮ =⋮ ⋮

11 1

Dengan metode ini diharapkan jumlah fitur data dapat dikurangi
selama masih dapat merepresentasikan data aslinya. Metode PCA
digunakan pada penelitian ini dikarenakan proses pelatihan dan
validasi keakuratan melibatkan banyak data. Data yang banyak ini
pada proses algoritma jaringan syaraf tiruan (JST) akan cukup
memberatkan karena level iterasi yang ada di dalamnya berjumlah
empat level (N4). Level iterasi tersebut antara lain adalah iterasi
pembelajaran (epoch), iterasi data, iterasi kelas, dan iterasi fitur.
Dengan demikian mengurangi jumlah fitur akan meringankan proses
yang dilakukan. Oleh karena alasan-alasan itulah metode PCA
digunakan.

Proses PCA disini memiliki input berupa hasil dari pengolahan citra
yang telah dilakukan sebelumnya. Dalam implementasinya,

132

pengurangan fitur yang dilakukan ada sebanyak 34 fitur. Dengan
demikian, fitur yang akan dihasilkan setelah proses ini dilakukan ada
sebanyak satu buah. Hal ini ditentukan berdasarkan hasil percobaan
yang dilakukan.

3.3.1.3 Proses Pelatihan GLVQ
Setelah dilakukan seleksi fitur menggunakan metode PCA maka
tahapan selanjutnya adalah melakukan proses klasifikasi. Dalam
proses ini terdiri dari dua fase yaitu fase pelatihan dan fase pengujian.
Fase pelatihan merupakan fase yang digunakan untuk mendapatkan
bobot yang sesuai dengan kelas yang dituju sehingga setiap data dapat
diklasifikasikan dengan benar. Pada fase ini digunakan algoritma
Generalize Learning Vector Quantization (GLVQ). Algoritma ini
merupakan algoritma jaringan syaraf tiruan (JST) yang dikembangkan
oleh A. Sato dan Yamada pada tahun 1995 (Sato et al., 1996).
Algoritma ini merupakan pengembangan dari algoritma jaringan saraf
tiruan lainnya yaitu algoritma Learning Vector Quantization (LVQ) yang
dikembangkan oleh Kohonen (Kohonen, 1997). Pada algoritma GLVQ
konvergensi bobot terjamin walau datanya tidak terurut dengan baik.
Hal tersebut dapat dicapai karena metode yang digunakan
berdasarkan pada proses minimisasi dari cost function yaitu miss-
classification error dengan metode optimasi gradient descent.

Cost function yang digunakan dalam GLVQ adalah fungsi yang

monoton naik, dalam hal ini fungsi sigmoid. Penurunan dari fungsi

sigmoid ini dijadikan gain factor untuk proses perbaruan bobot.

a. Missclassification error

( )= −
+

b. Fungsi sigmoid

( , ) = 1 1
+
c. Gain factor (penurunan fungsi sigmoid)

d. Update bobot = ( , )(1 − ( , )) (4.1)
← + (− )

()

133

← + ( )( − ) (4.2)
Berikut ini adalah pseudocode dari algoritma GLVQ.

Algoritma GLVQ
Require: X in round-robin mode
Initialize weight vectorW
Initialize learning rate a0
Initialize maximum iteration tmax
t 0
while at 6= 0 or t < tmax do

for xi 2 X do
d1  closestDistance1(x;W) where Cx =Cwi
d2  closestDistance2(x;W) where dj = maxj^j6=i(dj)^(Cx 6=Cwj )
mce equation 2.5
factor1  4d2 / ((d1+d2)^2)
factor2  4d1 / ((d1+d2)^2)
{adjust prototype 1}
w1  equation 4.1
{adjust prototype 2}
w2  equation 4.2
end for
end while
a(t+1)  a*(1-t/tmax)
)

Alasan lain dipilihnya algoritma ini dikarenakan pada tahapan
implementasinya memiliki keunggulan dalam menghitung miss-
classification error (Sato dan Yamada, 1995) serta proses berjalannya
yang tidak terlalu berat untuk aplikasi real-time. Kelas tujuan dalam
program ini adalah kelas topi dan bukan topi (non-topi). Proses ini
dijalankan dengan menentukan jumlah epoch (jumlah pelatihan)
terlebih dahulu. Gambaran mengenai model arsitektur jaringan untuk
kasus ini dapat dilihat pada gambar 3.21.

134

3.3.1.4 Proses Pengujian GLVQ
Setelah dilakukan proses pelatihan, maka diperoleh keluaran berupa
bobot vektor pewakil yang merepresentasikan dari masing-masing
kelas, dalam hal ini kelas topi dan bukan topi. Pada tahapan
berikutnya yang akan dilakukan adalah proses pengujian. Pada proses
pengujian ini dibuat sebuah program pengujian yang dibagi menjadi
dua, yaitu program pengujian dengan keluaran berupa nilai persentase
keakuratan (program validasi keakuratan) dan program yang
menghasilkan koordinat posisi topi pada gambar penuh (program
pencarian koordinat objek). Program ini dijalankan dengan
memasukkan data gambar untuk pengujian.

Algoritma pengujian yang terkandung di dalam keduanya sama saja.
Perbedaan antara program pertama dan kedua terletak pada nilai
input dan hasil keluarannya. Pada program pertama masukannya
adalah data gambar yang banyak, sedangkan keluarannya adalah
persentase keakuratan dari keluaran tersebut (apakah menunjuk kelas
yang sesuai atau tidak). Pada program kedua, masukannya adalah
sebuah gambar yang penuh dari kamera bawah AR.Drone (176x144
pixel), keluarannya adalah koordinat posisi topi pada gambar tersebut
(jika ditemukan topi). Arsitektur penerapan algoritma GLVQ dapat
dilihat pada gambar 3.21.

W21 W2n

W11 W22 W1n W2n-1
W12
W1n-1

Gambar 3.21. Arsitektur GLVQ untuk Kasus Topi
135

Program validasi keakuratan ini merupakan program yang berfungsi
untuk menunjukkan keakuratan hasil program pelatihannya. Hal ini
dilakukan untuk menemukan metode yang paling baik dari setiap
kombinasi metode yang digunakan sebelumnya.

Program pencarian koordinat objek adalah program utama yang akan
digunakan untuk mengetahui posisi topi. Hal ini penting untuk
menentukan pergerakan AR.Drone pada tahap kedua pengembangan
sistem. Prosesnya secara garis besar adalah mengecek beberapa posisi
yang memiliki luas segmen sebesar 70 x 70 pixel dari gambar penuh
berukuran 176 x 144 pixel.

3.3.2 Proses Pengembangan dengan Menerbangkan AR.Drone
Proses pengerjaan pada tahap dua adalah proses pengembangan
dengan menerbangkan AR.Drone. Tahap ini dibagi menjadi tiga proses
besar. Proses pertama adalah membuat program pendeteksi
koordinat posisi topi dalam gambar penuh menjadi node di ROS.
Proses kedua adalah membuat program pergerakan AR.Drone yang
berfungsi mengatur pergerakan sesuai dengan posisi topi yang
dideteksi program sebelumnya. Proses ketiga adalah percobaan yang
dilakukan menggunakan AR.Drone. Percobaan ini sangat penting
karena hal ini merupakan tujuan akhir dari implementasi sistem ini.
Berikutnya merupakan penjelasan dari ketiga proses tersebut.

3.3.2.1 Membuat Program Menjadi Node di ROS
Pada pengembangan sistem ini penulis menggunakan ROS (Robot
Operating System). Pada ROS setiap program yang telah dibuat dapat
berkomunikasi secara langsung untuk dapat menjalankan berbagai
perintah. Dalam penggunaannya, program pendeteksi koordinat topi
dibuat menjadi node dalam ROS. Hal ini dilakukan agar program
nantinya dapat menampilkan koordinat topi (jika ditemukan adanya
topi).

3.3.2.2 Membuat Program Pergerakan ARDrone
Program pergerakan ini melakukan perintah pergerakan yang sesuai
dengan posisi topi yang ditemukan pada kamera. Program ini
menjalankan perintah dengan mem-publish twist topic. Di sini ada

136

yang perlu diperhatikan bahwa pergerakan menggunakan twist
memerlukan informasi kecepatan quadcopter, sehingga memiliki
koordinat yang berbeda dengan koordinat pada pixel. Koordinat ini
diistilahkan dengan koordinat kecepatan dan dijelaskan pada gambar
3.24. Sebagai perbandinganya gambar 3.22 menjelaskan koordinat pixel
yang umum dipakai. Oleh karena perbedaan tersebut, pada program ini
posisi topi yang ditemukan pada kamera bawah AR.Drone dikonversi
menjadi koordinat posisi dalam sumbu kartesian.

Gambar 3.22. Koordinat Pixel Kamera Bawah AR-Drone

Rumus konversi dari sumbu pixel ke koordinat kartesian adalah
sebagai berikut:

= −x ,

=y − ,

Dalam implementasi yang dilakukan nilai x = 88 sedangkan

y = 72. Konstanta-konstanta tersebut diperoleh dari

setengah panjang dan tinggi gambar hasil keluaran kamera bawah

AR.Drone (Gambar 3.23).

137

Gambar 3.23. Koordinat Posisi dalam Sumbu Kartesian
Rumus konversi dari sumbu koordinat kartesian ke koordinat
kecepatan (Gambar 3.24) adalah sebagai berikut:

− =,
=,

Gambar 3.24. Koordinat Kecepatan AR-Drone untuk Perintah Twist
Dalam program pergerakan AR.Drone ini digunakan kontrol
proporsional untuk mengatur kecepatannya. Hal ini dilakukan karena
pada aplikasi dunia nyata banyak sekali terjadi error yang disebabkan
oleh kondisi fisik alam yang memiliki banyak ketidakpastian.
Ketidakpastian itu muncul akibat terlalu banyaknya parameter-
parameter di alam yang tidak dapat dirinci satu per satu dan bersifat
kontinu (tidak diskret). Penjelasan mengenai kontrol proporsional
terdapat pada subbab 3.2.2. namun pada penjelasan subbab tersebut
dijelaskan pula jenis yang lain, yaitu kontrol integral dan differential.

138

3.3.2.3 Pengujian pada AR.Drone
Program pengujian dilakukan dengan menjalankan perintah-perintah
pemanggilan program pada perangkat lunak ROS. Beberapa hal yang
diuji pada saat penerbangan AR.Drone adalah tingkat keberhasilan
pendeteksian objek dan tingkat keberhasilan pelacakan objek. Proses
ini diawali dengan menerbangkan AR.Drone, kemudian diletakkan
objek (topi) di bagian bawah AR.Drone. Hasil dari pengujian berupa
data log pergerakan dan pendeteksian AR.Drone. Berikut ini adalah
tahapan pengujian yang dilakukan.

(a) (b)

(c)
Gambar 3.25. Proses pengujian (a) posisi awal ARDrone (b) Pesisi

peletakan objek (c) hasil pendeteksian oleh ARDrone
Proses pelacakan objek oleh AR.Drone dilakukan dengan menggerakan
objek ke arah kiri atau kanan.

139

Gambar 3.26. Proses Pengujian Pelacakan Objek Topi

Dari hasil pengujian, robot AR.Drone telah berhasil melakukan
pendeteksian dan pelacakan objek topi. Namun dalam pengujian ini
area di mana objek topi diletakkan harus memiliki warna yang kontras
terhadap warna topi. Hal ini masih menjadi issue permasalahan yang
dihadapi karena pada keadaan sebenarnya bisa saja warna lingkungan
di mana objek topi di letakkan memiliki warna yang tidak jauh berbeda
bahkan sama dengan warna objek topi.

3.4 Penerapan UAV untuk Pembentukan Formasi UAV
Dalam Mengeksplorasi Ruang

Telah dijelaskan pada bagian awal bahwa salah satu kegunaan dari
UAV adalah untuk melakukan pencarian dan penyelamatan pada
daerah yang sulit dijangkau. Daerah yang sulit dijangkau tersebut
dapat berupa area terbuka atau area tertutup, seperti di dalam
gedung. Untuk melakukan pencarian di dalam gedung maka UAV
harus dapat bernavigasi untuk menelusuri seluruh ruang yang
terdapat di dalam gedung tersebut. Satu buah UAV mungkin cukup
untuk menelusuri sebuah gedung yang kecil, namun bagaimana jika
gedung yang akan ditelusuri memiliki lantai yang cukup banyak. Hal
tersebut tetap dapat dilakukan namun pastinya memerlukan waktu
yang lebih lama. Oleh karena itu, untuk mempercepatnya diperlukan
beberapa buah UAV untuk menelusuri seluruh ruang.

140

Dalam menelusuri ruang secara bersamaan diperlukan sebuh formasi
untuk menjaga robot agar tidak saling bertabrakan. Oleh karena itu,
diperlukan algoritma untuk pembentukan formasi dan penghindar
tabrakan. Beberapa algoritma tersebut diantaranya obstacle
avoidance yang berfungsi untuk menghindari obstacle agar tidak
tertabrak, algoritma Leader-Follower untuk mengatur bagaimana
beberapa UAV mengikuti sebuah UAV sebagai leader-nya. Serta
algoritma lain yang berfungsi untuk membentuk formasi.

Pada proses implementasinya, algoritma-algoritma tersebut tidak
dijalankan pada UAV secara riil. Hal ini dikarenakan terdapatnya
beberapa kendala yagn dihadapi diantaranya sulitnya melakukan
implementasi pembentukan formasi secara langsung pada UAV yang
dapat mengakibatkan kerusakan fisik pada UAV. Selain itu
keterbatasan kendala lain adalah jumlah AR.Drone yang dimiliki
terbatas sehingga proses implementasi pembuatan formasi untuk
menelusuri ruang hanya dilakukan secara simulasi. Pada proses
simulasi ini digunakan model jenis UAV yang sama dengan quadcopter
AR.Drone.

Perlu diketahui bahwa proses simulasi merupakan suatu bagian yang
sangat penting dalam sebuah penelitian. Proses ini biasanya dilakukan
setelah proses perancangan sistem dan sebelum dilakukan proses
implementasi sistem tersebut pada robot riil, dalam hal ini UAV.
Beberapa keuntungan yang didapatkan dari proses simulasi
diantaranya:

1. Dengan melakukan simulasi kita dapat mengetahui gambaran
yang lebih jelas mengenai sistem yang sudah dirancang.

2. Dapat mengetahui kineja dari sistem yang sudah dirancang
apakah sudah baik atau belum dengan waktu yang relatif lebih
cepat dibandingkan dengan melakukan implementasi secara
langsung pada robot.

3. Dengan melakukan simulasi dapat diketahui kelemahan dan
kelebihan dari sistem dengan cara menganalisis hasil simulasi.

141

4. Mengantisipasi kemungkinan-kemungkinan adanya kesalahan
pada sistem yang sudah dirancang.

Namun terdapat juga beberapa kekurangan dari proses simulasi.
Beberapa kekurangannya antara lain:
1. Hasil simulasi terkadang tidak merepresentasikan keadaan

sebenarnya pada dunia nyata karena kesulitan untuk
memodelkan lingkungan sebenarnya dalam lingkungan simulasi.
2. Dalam proses simulasi biasanya dilakukan dengan menggunakan
suatu tool atau perangkat lunak sehingga diperlukan biaya
tambahan untuk membelinya atau jika membuat sendiri,
diperlukan waktu tambahan untuk membangunnya.

Proses simulasi UAV dilakukan menggunakan sebuah perangkat lunak
V-REP. Perangkat lunak tersebut digunakan untuk membuat simulasi
robot dalam wujud 3 dimensi (3D) dengan bentuk lingkungan yang
terintegrasi dan arsitektur kontrol yang terdistribusi. Pada proses
simulasi ini akan digunakan beberapa model quadcopter Parrot
AR.Drone.

Sebelum memasuki pembahasan mengenai proses simulasi model
quadcopter Parrot AR.Drone, terlebih dahulu akan dijelaskan
mengenai perangkat lunak V-REP (subbab 3.4.1), kemudian dilakukan
proses melengkapi komponen model quadcopter (subbab 3.4.2).
Setelah itu penjelasan dilanjutkan dengan proses implementasi
metode pengontrolan Leader-Follower, implementasi algoritma
obstacle avoidance dan implementasi pembentukan formasi UAV pada
subbab 3.4.3. Pada subbab tersebut dijelaskan beberapa formasi yang
dibentuk, diantaranya adalah formasi garis lurus, formasi lingkaran,
formasi segitiga, dan formasi jajar genjang.

3.4.1 Piranti lunak V-REP
V-REP (Virtual Robot Experimentation Platform) merupakan perangkat
lunak komputer yang digunakan untuk membuat simulasi robot dalam
wujud 3 dimensi (3D), dengan lingkungan pengembangan yang
terintegrasi dan berdasarkan arsitektur kontrol yang terdistribusi.
Karena kemampuannya tersebut, V-REP sangat cocok digunakan untuk
membuat model robot yang sesuai dengan kenyataan dan melakukan

142

pemrograman padanya. V-REP ini merupakan perangkat lunak yang
bisa dipakai secara gratis, dengan menggunakan lisensi “student
version” seperti yang terlihat pada gambar 3.27. Perangkat lunak ini
tersedia dan dapat diunduh di situs http://www.v-rep.eu/.

Gambar 3.27. Tampilan Layar Perangkat Lunak V-Rep
V-REP menyediakan model (bentuk tiruan 3 dimensi) benda yang
cukup lengkap, dimulai dari model berbagai jenis robot yang umum
digunakan sampai dengan model objek-objek lain yang ada di
lingkungan sekitar pada umumnya. Contoh objek tersebut seperti
manusia, dinding, meja, dan lain sebagainya. Selain itu V-REP juga
sudah menyediakan banyak sensor yang dibutuhkan oleh robot,
seperti sensor proximity, sensor vision, dan lain-lain.
Pemrograman pada V-REP dilakukan dengan menggunakan bahasa
LUA dan bahasa C, dimana V-REP sudah menyediakan fungsi-fungsi
yang diperlukan pada V-REP API. Program tersebut nantinya ditulis
pada script yang sudah disediakan pada lingkungan simulasi.
Perangkat lunak V-REP juga sudah dilengkapi dengan physics engine
berupa bullet physics engine dan ODE physics engine. Physics engine
merupakan perangkat lunak yang dapat membuat suatu lingkungan
simulasi yang menyerupai keadaan asli sebenarnya, dengan cara

143

mengatur beberapa sifat bawaan dari benda serta variabel dari
lingkungan. Contoh pengaturannya adalah pengaturan pergerakan
benda, perbenturan benda (collision), perubahan benda, gravitasi
lingkungan, dorongan angin, dan lain sebagainya. Dengan adanya
physics engine tersebut, lingkungan yang ada dapat mempengaruhi
keberadaan robot, misalkan quadcopter dapat terjatuh jika menabrak
dinding, dan juga quadcopter dapat kehilangan keseimbangan jika
berada terlalu dekat sumber dorongan angin.

Pemograman pada V-REP dilakukan pada script yang telah tersedia
pada objek-objek yang memang dibuat untuk dapat diprogram.
Masing-masing script tersebut berjalan sendiri secara terpisah, dan
dapat dihubungkan melalui sistem signal secara manual.

3.4.2 Melengkapi Model Quadcopter
Model quadcopter yang ada sudah memiliki perangkat bawaan dari
quadcopter Parrot AR.Drone yaitu, kamera depan, kamera bawah,
sensor ketinggian menggunakan sonar, dan sensor untuk mengetahui
posisi, seperti sensor IMU dan GPS. Untuk sensor-sensor serta
perangkat lainnya yang diperlukan dapat ditambahkan sendiri melalui
model yang sudah disediakan. Model tersebut juga dilengkapi dengan
kode program yang sesuai. Berikut adalah komponen-komponen yang
ditambahkan ke model quadcopter, untuk meningkatkan
kemampuannya.

1.4.2.1. Sistem komunikasi wireless
Sistem komunikasi wireless merupakan alat komunikasi bawaan yang
tersedia pada quadcopter pada umumnya, dimana komunikasi
dilakukan dengan menggunakan wireless transmission. Jaringan
wireless bisa menghubungkan satu quadcopter dengan quadcopter
lainnya dengan jarak yang cukup jauh, sesuai dengan spesifikasi
jaringan wireless yang digunakan.

Jaringan komunikasi wireless dibangun dengan memasang dua
peralatan pada quadcopter, yaitu transceiver sebagai pemancar dan
penerima sinyal, serta antenna untuk membantu menangkap sinyal.

144

Pemasangan dilakukan menggunakan dummy object (objek yang tidak
memiliki wujud nyata) sebagai kedua peralatan tersebut, dan
dipasangkan di tiap-tiap quadcopter sebagai child object. Untuk
menggunakannya, kita cukup memasukkan kode bahasa
pemrograman yang diinginkan ke dalam script objek transceiver.

Untuk menghubungkan quadcopter dengan transceiver, digunakan
sistem signal sebagai alat komunikasinya. Signal dapat berisi data
dengan tipe string maupun integer. Signal akan mulai dikirimkan dari
script quadcopter, dengan kode program yang digunakan sebagai
berikut:

simSetIntegerSignal(“KirimData”,1)

Satu fungsi dibuat di script transceiver untuk menangkap signal. Jika
signal terdeteksi, maka transceiver akan melakukan pengiriman data
menggunakan fungsi pengiriman melalui media wireless yang sudah
disediakan di V-REP. Selain mengirimkan data dan juga header sebagai
pengenal, fungsi yang disediakan juga dapat mengatur seberapa besar
jangkauan dari jaringan wireless yang digunakan. Kode program yang
digunakan adalah sebagai berikut:

kirim = simGetIntegerSignal("kirimData")

if (kirim == 1) then

simSendData(sim_handle_all,0,"posisiKetua",posisi[1],si
mGetObjectHandle("

Antenna"),2,3.1415*2,3.1415*2)

end

Sedangkan untuk menangkap data yang dikirimkan, digunakan fungsi
penerima data dari wireless dengan kode sebagai berikut:

data=simReceiveData(0,"posisiKetua",simGetObjectHandle(
"Antenna"))

Data yang dikirimkan bisa diterima oleh transceiver lain jika header
data yang dikirimkan sesuai antara pengirim dan penerima.

145

1.4.2.2. Sensor proximity
Sensor proximity secara utuh sudah disediakan di V-REP, hanya perlu
dilakukan pemasangan pada bodi quadcopter agar dapat digunakan.
Agar quadcopter dapat mengetahui objek dari segala arah, dilakukan
pemasangan 4 sensor proximity, masing-masing di posisi depan,
belakang, samping kiri, dan samping kanan dari bodi.

Sensor proximity yang dipakai adalah sensor yang berbentuk disk
seperti yang terlihat pada gambar 3.28. Bentuk disk dipilih karena
quadcopter hanya perlu sekedar mengetahui jika ada benda lain di
sekitar bodinya. Sedangkan benda di bagian atas dan bawah tidak
perlu diketahui, karena benda tersebut tidak akan mengganggu
selama ketinggian terbang yang digunakan adalah ketinggian normal.

Gambar 3.28. Proximity Sensor
Sensor proximity dipasang dengan cara menjadikan sensor
tersebut child object dari quadcopter. Untuk menyesuaikan
posisinya, akan dilakukan penyesuaian koordinat secara manual,
sesuai dengan posisi yang diinginkan.

Sedangkan untuk di bagian script, akan dimasukkan kode handle
yang berguna untuk mengambil keluaran dari sensor proximity.
Hasil dari pembacaan dapat dilakukan dengan memakai fungsi
pembacaan dari sensor proximity yang sudah disediakan di V-REP.
Jika sensor mendeteksi suatu benda, fungsi akan mengembalikan
nilai 1. Ketika sensor diketahui mendeteksi benda, maka akan
dijalankan suatu perintah yang kita tentukan, misalkan

146

menjalankan algoritma obstacle avoidance untuk menghindari
benda tersebut. Kode programnya adalah sebagai berikut:

sensorProximity1=simGetObjectHandle("proximitySensor1")
hasilSensorProximity1=simReadProximitySensor(sensorProxim
ity1)

if (hasilSensorProximity1 == 1) then
//algoritma obstacle avoidance

end

3.4.3 Implementasi Algoritma pada Proses simulasi
Pada proses simulasi, akan diimplementasikan beberapa algoritma
diantaranya algoritma leader-follower, algoritma obstacle avoidace
dan pembentukan formasi. Berikut ini adalah penjelasan dari Ketiga
algoritma tersebut.

3.4.3.1 Implementasi Algoritma Pengontrolan Leader-Follower
Penggunaan algoritma ini diperlukan untuk mengatur agar pergerakan
yang dilakukan quadcopter dapat dikontrol dengan baik melalui
sebuah quadcopter yang ditugaskan menjadi pemimpin bagi yang
lainnya (Yun et al., 2010). Penggunaan metode ini lebih sederhana
dibanding pada UAV jenis lainnya, dikarenakan quadcopter bisa
bergerak ke segala arah tanpa harus memutar seluruh bagian
quadcopter terlebih dahulu. Dengan begitu, algoritma ini tidak perlu
menggunakan metode untuk mengatur arah dari pergerakan robot,
agar sesuai dengan robot pemimpin. Quadcopter kepala cukup
memberikan posisinya secara berkala ke quadcopter lainnya
menggunakan jaringan wireless, dan quadcopter lainnya nanti akan
menyesuaikan posisinya masing-masing. Pemberian posisinya dapat
dilakukan menggunakan jaringan wireless secara broadcast. Kode
script yang digunakan adalah sebagai berikut:

147

If (i==1) then

Posisi=simGetObjectPosition(qr,-1)

simSendData(sim_handle_all,0,“posisiUpdateX”,posisi[1]
,simGetObjectHandle(“Antenna”),3,3.1415*2,3.1415*2)

simSendData(sim_handle_all,0,“posisiUpdateY”,posisi[2]
,simGetObjectHandle(“Antenna”),3,3.1415*2,3.1415*2)

end

Untuk mempertahankan bentuk formasi yang sedang dijalankan, akan
dilakukan penjagaan jarak antara sejumlah pasangan robot. Dengan
begitu, posisi setiap robot akan berada di tempat yang seharusnya
selama robot bergerak menuju posisi yang diinginkan, sehingga
formasi tetap terjaga selama pergerakan dilakukan.

3.4.3.2 Implementasi Algoritma Obstacle Avoidance
Pada penggunaan quadcopter di dalam ruangan digunakan algoritma
untuk menghindari tabrakan. Algoritma tersebut adalah obstacle
avoidance. Algoritma yang dibuat dikhususkan untuk menghindari dua
dinding di samping, dan dinding akhir di bagian depan. Untuk menjaga
formasi, maka pergerakan untuk menghindari penghalang akan
dilakukan secara berkelompok, dipimpin oleh quadcopter kepala.
Dengan begitu, tidak akan terjadi tabrakan antar quadcopter, serta
formasi tetap terjaga. Algoritma ini cukup banyak digunakan pada
robot, salah satunya yang diterapkan pada robot beroda (Wu 2011).

Algoritma ini akan bekerja dengan menggunakan input dari sensor
proximity. Jika suatu sensor proximity mendeteksi benda, maka
quadcopter akan mengambil tindakan untuk menghindar. Tabel 3-3
menjelaskan aturan gerakan agar helikopter dapat menghindar:

Tabel 3-3. Aturan Gerakan dari Algoritma Obstacle Avoidance

Sensor proximity yang mendeteksi Aksi yang dilakukan
Sensor kanan Bergeser ke kiri
Sensor kiri Bergeser ke kanan
Sensor depan Balik arah ke belakang

148

3.4.3.3 Implementasi Pembuatan Formasi Quadcopter
Simulasi pembuatan formasi ini bertujuan untuk mencoba penerapan
algoritma pembentukan formasi pada quadcopter. Pada simulasi ini,
beberapa quadcopter akan bergerak membentuk formasi. Quadcopter
akan bekerja secara semi autonomous, yaitu sebagian pergerakan
didasari dari informasi yang diberikan user, dan sebagian lainnya
didapatkan melalui perhitungan berdasarkan laporan dari sensor-
sensornya.

Formasi yang ingin dibentuk adalah formasi lingkaran. Pembentukan
dilakukan secara bertahap, dari formasi acak, menjadi garis, lalu
menjadi formasi lingkaran. Pembentukan formasi ini menggunakan
enam buah quadcopter. Nantinya masing-masing quadcopter akan
diprogram sesuai dengan target yang ingin dicapai nantinya.
1. Formasi Garis

Pembuatan pola garis dimulai dengan menomori setiap
quadcopter yang ada secara berurutan, dari 1 sampai 6.
Penomoran dilakukan langsung dengan memasukkan variabel
nomor ke script program, sehingga setiap quadcopter mengetahui
nomornya masing-masing. Quadcopter yang menjadi kepala
(bertugas memimpin quadcopter lainnya) adalah quadcopter
bernomor 1.

Gambar 3.29. Koordinat X dan Y di V-REP
Pada tahap awal, quadcopter kepala bergerak menuju koordinat
yang ditentukan dengan bergeser pelan-pelan ke samping, menuju
titik di sumbu y tersebut. Setelah sampai di koordinat y yang sesuai
dengan target posisi, quadcopter memberikan pemberitahuan ke

149

quadcopter bernomor setelahnya untuk melakukan pergerakan.
Setelah itu, quadcopter tersebut melanjutkan pergerakan ke
depan menuju titik di sumbu x dari target posisi. Pergerakan
secara perlahan ini dilakukan agar keseimbangan dari pergerakan
quadcopter tetap terjaga, sehingga posisinya tidak keluar jalur.

Dalam teknis pengerjaannya, untuk melakukan pergerakan secara
perlahan dilakukan perpindahan posisi target objek sedikit demi
sedikit. Perpindahan tersebut dilakukan dengan memindahkan
target objek ke arah tujuan sejauh sekitar 0.3 unit dalam ukuran
koordinat V-REP, setiap kali iterasinya. Iterasi dilakukan ketika
quadcopter sudah menyentuh target objek. Angka 0.3 dipilih
mengikuti lebar quadcopter. Karena dalam tahapan ini quadcopter
hanya bergerak dalam garis lurus, maka perhitungan jarak cukup
dilakukan dengan mengurangkan posisi quadcopter dengan posisi
target objek dalam sumbu yang berhubungan, yaitu sumbu x atau
sumbu y.

Setelah sampai ke posisi yang diinginkan, quadcopter akan
berhenti dan memberikan koordinat posisinya ke quadcopter
selanjutnya melalui jaringan wireless. Pseudocode dari tahapan
algortima ini adalah sebagai berikut:

ambil posisi quadcopter
ambil posisi target objek
jarak = akar ((y quadcopter - y target objek)^2)

if (jarak <0.2 and x quadcopter < x target posisi)
set posisi ke x target objek, y target objek + 0.1, z

target objek
else

kirim perintah ke quadcopter selanjutnya dan selesai
end

Quadcopter dengan nomor selanjutnya (nomor 2 ke atas)
kemudian melakukan tahapan-tahapan yang sama dengan
quadcopter sebelumnya, yaitu bergerak perlahan ke titik di sumbu
x sesuai koordinat x yang dituju oleh ketua, memberikan
pemberitahuan ke quadcopter selanjutnya, dan bergerak menuju

150


Click to View FlipBook Version